晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/public_html/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_Edit3_Js("Reports_ChartEdit3_Js",{
registerFieldForChosen : function() {
vtUtils.showSelect2ElementView(jQuery('#groupbyfield'));
vtUtils.showSelect2ElementView(jQuery('#datafields'));
},
initSelectValues : function() {
var groupByField = jQuery('#groupbyfield');
var dataFields = jQuery('#datafields');
var groupByFieldValue = jQuery('input[name=groupbyfield]').val();
var dataFieldsValue = jQuery('input[name=datafields]').val();
var groupByHTML = jQuery('#groupbyfield_element').clone().html();
var dataFieldsHTML = jQuery('#datafields_element').clone().html();
groupByField.html(groupByHTML);
dataFields.html(dataFieldsHTML);
if(dataFieldsValue)
dataFieldsValue = JSON.parse(dataFieldsValue);
var selectedChartType = jQuery('input[name=charttype]').val();
groupByField.select2().select2("val", groupByFieldValue);
if(selectedChartType == 'pieChart') {
if(!dataFieldsValue){
dataFieldsValue = dataFields.find('option:first').val();
}
dataFields.attr('multiple', false).select2().select2("val", dataFieldsValue[0]);
} else if(dataFieldsValue && dataFieldsValue[0]) {
dataFields.attr('multiple', true).select2({maximumSelectionSize: 3}).select2("val", dataFieldsValue);
}
if(selectedChartType) {
jQuery('ul[name=charttab] li.active').removeClass('active');
jQuery('ul[name=charttab] li a[data-type='+selectedChartType+']').addClass('active contentsBackground backgroundColor').trigger('click');
} else {
jQuery('ul[name=charttab] li a[data-type=pieChart]').addClass('contentsBackground backgroundColor').trigger('click'); // by default piechart should be selected
}
var primaryModule = jQuery('input[name="primary_module"]').val();
var inventoryModules = ['Invoice', 'Quotes', 'PurchaseOrder', 'SalesOrder'];
var secodaryModules = jQuery('input[name="secondary_modules"]').val();
var secondaryIsInventory = false;
inventoryModules.forEach(function (entry) {
if (secodaryModules.indexOf(entry) != -1) {
secondaryIsInventory = true;
}
});
if ((jQuery.inArray(primaryModule, inventoryModules) !== -1 || secondaryIsInventory) && selectedChartType !== 'pieChart') {
var reg = new RegExp(/vtiger_inventoryproductrel*/);
if (dataFields.val() && reg.test(dataFields.val())) {
jQuery('#datafields option').not('[value^="vtiger_inventoryproductrel"]').remove();
} else {
jQuery('#datafields option[value^="vtiger_inventoryproductrel"]').remove();
}
}
}
},{
initialize : function(container) {
if(typeof container == 'undefined') {
container = jQuery('#chart_report_step3');
}
if(container.is('#chart_report_step3')) {
this.setContainer(container);
} else {
this.setContainer(jQuery('#chart_report_step3'));
}
},
registerForChartTabClick : function() {
var dataFields = jQuery('#datafields');
var thisInstance = this;
jQuery('ul[name=charttab] li a').on('click', function(e){
var chartType = jQuery(e.currentTarget).data('type');
if(chartType == 'pieChart') {
var dataFieldsValue = dataFields.val();
var dataFieldsHTML = jQuery('#datafields_element').clone().html();
dataFields.html(dataFieldsHTML);
if(!dataFieldsValue){
dataFieldsValue = dataFields.find('option:first').val();
}
dataFields.attr('multiple', false).select2().select2("val",dataFieldsValue);
} else {
if (thisInstance.isInventoryModule) {
var reg = new RegExp(/vtiger_inventoryproductrel*/);
if (dataFields.val() && reg.test(dataFields.val())) {
jQuery('#datafields option').not('[value^="vtiger_inventoryproductrel"]').remove();
} else {
jQuery('#datafields option[value^="vtiger_inventoryproductrel"]').remove();
}
}
dataFields.attr('multiple', true).select2({maximumSelectionSize: 3});
}
jQuery('input[name=charttype]').val(chartType);
jQuery('ul[name=charttab] li.active a').removeClass('contentsBackground backgroundColor');
jQuery(this).addClass('contentsBackground backgroundColor');
});
},
calculateValues : function(){
//handled advanced filters saved values.
var advfilterlist = jQuery('#advanced_filter','#chart_report_step2').val();// value from step2
jQuery('#advanced_filter','#chart_report_step3').val(advfilterlist);
},
registerSubmitEvent : function() {
var thisInstance = this;
jQuery('#generateReport').on('click', function(e) {
var legend = jQuery('#groupbyfield').val();
var sector = jQuery('#datafields').val();
var form = thisInstance.getContainer();
if(sector && legend) {
vtUtils.hideValidationMessage(jQuery('#s2id_groupbyfield'));
vtUtils.hideValidationMessage(jQuery('#s2id_datafields'));
form.submit();
} else if(!legend){
vtUtils.showValidationMessage(jQuery('#s2id_groupbyfield'), app.vtranslate('JS_PLEASE_SELECT_ATLEAST_ONE_OPTION'));
e.preventDefault();
}else if(!sector){
vtUtils.showValidationMessage(jQuery('#s2id_datafields'), app.vtranslate('JS_PLEASE_SELECT_ATLEAST_ONE_OPTION'));
e.preventDefault();
}
});
},
/**
* Function is used to limit the calculation for line item fields and inventory module fields.
* only one of these fields can be used at a time
*/
lineItemCalculationLimit: function () {
var thisInstance = this;
var dataFields = jQuery('#datafields');
if (thisInstance.isInventoryModule()) {
dataFields.on('change', function (e) {
var value = dataFields.val();
var reg = new RegExp(/vtiger_inventoryproductrel*/);
var selectedChartType = jQuery('input[name=charttype]').val();
if (selectedChartType !== 'pieChart') {
if (value && value.length > 0) {
if (reg.test(value)) {
// line item field selected remove module fields
jQuery('#datafields option').not('[value^="vtiger_inventoryproductrel"]').remove();
} else {
jQuery('#datafields option[value^="vtiger_inventoryproductrel"]').remove();
}
} else {
//If nothing is selected then reset it.
var dataFieldsHTML = jQuery('#datafields_element').clone().html();
dataFields.html(dataFieldsHTML);
}
thisInstance.displayLineItemFieldLimitationMessage();
}
});
}
},
isInventoryModule: function () {
var primaryModule = jQuery('input[name="primary_module"]').val();
var inventoryModules = ['Invoice', 'Quotes', 'PurchaseOrder', 'SalesOrder'];
// To limit the calculation fields if secondary module contains inventoryModule
var secodaryModules = jQuery('input[name="secondary_modules"]').val();
var secondaryIsInventory = false;
inventoryModules.forEach(function (entry) {
if (secodaryModules.indexOf(entry) != -1) {
secondaryIsInventory = true;
}
});
if (jQuery.inArray(primaryModule, inventoryModules) !== -1 || secondaryIsInventory) {
return true;
} else {
return false;
}
},
displayLineItemFieldLimitationMessage: function () {
var message = app.vtranslate('JS_CALCULATION_LINE_ITEM_FIELDS_SELECTION_LIMITATION');
if (jQuery('#calculationLimitationMessage').length == 0) {
jQuery('#datafields').parent().append('<div id="calculationLimitationMessage" class="alert alert-info">' + message + '</div>');
} else {
jQuery('#calculationLimitationMessage').html(message);
}
},
registerEvents : function(){
this._super();
this.calculateValues();
this.registerForChartTabClick();
this.lineItemCalculationLimit();
Reports_ChartEdit3_Js.registerFieldForChosen();
Reports_ChartEdit3_Js.initSelectValues();
}
});