diff --git a/datagear-web/src/main/java/org/datagear/web/controller/ChartController.java b/datagear-web/src/main/java/org/datagear/web/controller/ChartController.java index 618a15ab..1a30eda3 100644 --- a/datagear-web/src/main/java/org/datagear/web/controller/ChartController.java +++ b/datagear-web/src/main/java/org/datagear/web/controller/ChartController.java @@ -1,7 +1,7 @@ /* - * Copyright 2018 datagear.tech - * - * Licensed under the LGPLv3 license: + * Copyright 2018 datagear.tech + * + * Licensed under the LGPLv3 license: * http://www.gnu.org/licenses/lgpl-3.0.html */ @@ -409,7 +409,7 @@ public class ChartController extends AbstractChartPluginAwareController implemen HtmlTplDashboardWidget dashboardWidget = new HtmlTplDashboardWidget(id, this.chartShowHtmlTplDashboardWidgetHtmlRenderer.simpleTemplateContent("UTF-8", htmlTitle, " position:absolute;\n left:1em;\n right:1em;\n top:1em;\n bottom:1em;\n margin:0 0;\n width:auto;\n height:auto;\n", - new String[] { id }, "dg-chart-disable-setting=\"{param:false,data:false}\""), + new String[] { id }, "dg-chart-disable-setting=\"false\""), this.chartShowHtmlTplDashboardWidgetHtmlRenderer); String responseEncoding = dashboardWidget.getTemplateEncoding(); @@ -435,7 +435,8 @@ public class ChartController extends AbstractChartPluginAwareController implemen WebContext webContext = createInitWebContext(request); - webContext.addAttribute(DASHBOARD_UPDATE_URL_NAME, addJsessionidParam("/analysis/chart/showData", session.getId())); + webContext.addAttribute(DASHBOARD_UPDATE_URL_NAME, + addJsessionidParam("/analysis/chart/showData", session.getId())); webContext.addAttribute(DASHBOARD_LOAD_CHART_URL_NAME, addJsessionidParam("/analysis/dashboard/loadChart", session.getId())); addHeartBeatValue(request, webContext); diff --git a/datagear-web/src/main/resources/org/datagear/web/static/script/datagear-chartFactory.js b/datagear-web/src/main/resources/org/datagear/web/static/script/datagear-chartFactory.js index eb33ceda..9fa690fd 100644 --- a/datagear-web/src/main/resources/org/datagear/web/static/script/datagear-chartFactory.js +++ b/datagear-web/src/main/resources/org/datagear/web/static/script/datagear-chartFactory.js @@ -510,42 +510,53 @@ this.echartsThemeName(themeName); }; - + /** * 初始化图表是否禁用交互设置。 * 此方法从图表元素的"dg-chart-disable-setting"属性获取是否禁用值。 */ chartBase._initDisableSetting = function() { - var disableSetting = this.elementJquery().attr("dg-chart-disable-setting"); + var globalSetting = $(document.body).attr("dg-chart-disable-setting"); + var localSetting = this.elementJquery().attr("dg-chart-disable-setting"); - if(disableSetting == null) - disableSetting = $(document.body).attr("dg-chart-disable-setting"); + globalSetting = this._evalDisableSettingAttr(globalSetting); - var setting = + if(localSetting != null && localSetting != "") { - param: false, - //通常情况下图表不需显示数据透视表,所以这里默认禁用 - data: true - }; + localSetting = this._evalDisableSettingAttr(localSetting); + localSetting = $.extend({}, globalSetting, localSetting); + } + else + localSetting = globalSetting; - if(disableSetting == "false") + this.disableSetting(localSetting); + }; + + chartBase._evalDisableSettingAttr = function(settingAttr) + { + var setting = {}; + + if(settingAttr == null || settingAttr == "") + settingAttr == "false"; + + if(settingAttr == "false" || settingAttr == false) { setting.param = false; setting.data = false; } - else if(disableSetting == "true") + else if(settingAttr == "true" || settingAttr == true) { setting.param = true; setting.data = true; } else { - var tmpSetting = chartFactory.evalSilently(disableSetting, {}); + var tmpSetting = chartFactory.evalSilently(settingAttr, {}); setting = $.extend(setting, tmpSetting); } - this.disableSetting(setting); + return setting; }; /** @@ -712,21 +723,47 @@ /** * 获取/设置初始图表是否禁用设置。 * - * @param setting 可选,禁用设置,没有则执行获取操作且不会返回null。 + * @param setting 可选,禁用设置,没有则执行获取操作且返回格式为:{param: true||false, data: true||false}。 * 禁用设置格式为: + * //全部禁用 + * true、"true"、 + * //全部启用 + * false、"false"、 + * //详细设置 * { - * //是否禁用参数 + * //可选,是否禁用参数 * param: false || true, - * //是否禁用数据透视表 + * //可选,是否禁用数据透视表 * data: true || false * } */ chartBase.disableSetting = function(setting) { + var defaultSetting = + { + //影响图表主体功能,因此默认启用 + param: false, + //不影响图表主体功能,因此默认禁用 + data: true + }; + if(setting === undefined) - return (this._disableSetting == null ? {param: false, data: true} : this._disableSetting); + { + return (this._disableSetting == null ? defaultSetting : this._disableSetting); + } else - this._disableSetting = setting; + { + if(setting == true || setting == "true") + { + setting = {param: true, data: true}; + } + else if(setting == false || setting == "false") + { + setting = {param: false, data: false}; + } + + this._disableSetting = $.extend(defaultSetting, setting); + } }; /**