Files
CRM/layouts/vlayout/modules/Reports/resources/ChartEdit3.js
BACHIR SOULDI 2794e62571 first commit
2025-09-28 08:49:37 +01:00

107 lines
4.0 KiB
JavaScript

/*+***********************************************************************************
* 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() {
app.changeSelectElementView(jQuery('#groupbyfield'), 'select2');
app.changeSelectElementView(jQuery('#datafields'), 'select2');
},
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') {
dataFields.attr('multiple', false).select2().select2("val", dataFieldsValue);
} else if(dataFieldsValue && dataFieldsValue[0]) {
dataFields.attr('multiple', true).select2({maximumSelectionSize: 3, closeOnSelect: false}).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
}
}
},{
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');
jQuery('ul[name=charttab] li a').on('click', function(e){
var chartType = jQuery(e.currentTarget).data('type');
if(chartType == 'pieChart') {
dataFields.attr('multiple', false).select2().select2("val", "");
} else {
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 != '') {
jQuery('#s2id_groupbyfield').validationEngine('hideAll');
form.submit();
} else {
jQuery('#s2id_groupbyfield').validationEngine('showPrompt',app.vtranslate('JS_PLEASE_SELECT_ATLEAST_ONE_OPTION'),'',"bottomRight",true);
e.preventDefault();
}
});
},
registerEvents : function(){
this._super();
this.calculateValues();
this.registerForChartTabClick();
Reports_ChartEdit3_Js.registerFieldForChosen();
Reports_ChartEdit3_Js.initSelectValues();
}
});