dojo.provide("TM1WebWebSheetWidget"); dojo.require("bux.Helper"); dojo.require("bux.iwidget.utilities.UtilityWidgetBase"); //For Bux Action Button issue, can't remove dojo.require("bux.dialogs.WidgetPropertiesFromJSON"); //fix for BUX resource loading dojo.declare("TM1WebWebSheetWidget", [tm1.iwidget.utilities.Filter], { iframeCtrl: null, iframeCtrlCantLoadDojo: null, dimensionNames: null, elementNames:null, elementNameCounter: 0, subscriptionHandle:null, cubeViewState:null, app: null, inDoMore:false, _Widget: null, cantLoadDojo: false, onbeforeunloadHandler: null, // Filter variable filterFieldName: "tm1CubeView", // ====== Multilingual Support - Start ======== _productLocale:null, _tm1messages:null, // ====== Multilingual Support - End ======== _firstVisible:false, onLoad : function() { // ====== Multilingual Support - Start ======== // Remember where we were loaded from: this is our path for future AJAX calls and .js loads dojo.registerModulePath("TM1WebWebSheetWidget", this.iContext.io.rewriteURI("js")); this.setLanguage().then(dojo.hitch(this, "getWidgetAttributes")); // ====== Multilingual Support - End ======== }, loadWithAttributes: function () { // load tm1web css file var element = document.createElement('link'); element.href = this.tm1WebURL + "/css/websheeter.css"; element.rel = 'stylesheet'; element.type = 'text/css'; document.body.appendChild(element); element = document.createElement('link'); element.href = this.tm1WebURL + "/scripts/tm1web/themes/tm1web/tm1web.css"; element.rel = 'stylesheet'; element.type = 'text/css'; document.body.appendChild(element); dojo.addClass(document.body, "tm1web"); dojo.registerModulePath("tm1web", this.tm1WebURL + "/scripts/tm1web"); //if (this.getCookie("tm1webwremote") != "") { // this.cantLoadDojo = true; //} else { try { var self = this; require([ "tm1web/websheet/Workbook" ], function(TM1Widget) { self._Widget = TM1Widget; self.app = null; if (self.areTM1ParametersValid()) { self.refreshView(); } else { self.onGetProperties(null, true); } }); } catch (err) { this.cantLoadDojo = true; // document.cookie = "tm1webwremote=true; path=/"; this.app = null; if (this.areTM1ParametersValid()) { this.refreshView(); } else { this.onGetProperties(null, true); } } //} }, updateView: function() { this.setLanguage(); }, getCookie: function (name) { if ( document.cookie.length <= 0 ) return(""); // no cookies var search = name + "="; var offset = document.cookie.indexOf(search); if ( offset == -1 ) return(""); // cookie does not exist offset += search.length; // set index of beginning of value var end = document.cookie.indexOf(";", offset); // set index of end of cookie value if ( end == -1 ) end = document.cookie.length; return(unescape(document.cookie.substring(offset, end))); }, setLanguage: function() { // Setup Localization tables - Use the BUX preferences for locale. Use Product locale for loading strings var curProductLocale=bux.Helper.getUserPreference("productLocale"); if (this._productLocale != curProductLocale) { this._productLocale = curProductLocale; var deferred = new dojo.Deferred(); var self = this; dojo.requireLocalization("TM1WebWebSheetWidget","tm1ContentWebSheetViewerWidget_msg", curProductLocale); dojo.ready(function() { self._tm1messages = dojo.i18n.getLocalization("TM1WebWebSheetWidget", "tm1ContentWebSheetViewerWidget_msg", curProductLocale); deferred.resolve(); }); return deferred; } }, createBasicWidgetToolbar: function () { var toolbarItems = [ { _root: [ {separator: true }, {name: "Restart", action: "IDM_RESTART", label: this._tm1messages.MEN.TMX_MEN_BLUEDOT_RESTART, showLabel: false, "iconClass": "tutorial-toolbar-icon-canada"} ] } ]; this.iContext.iEvents.fireEvent("com.ibm.bux.widgetchrome.toolbar.init", null, toolbarItems); }, createWidgetToolbar: function () { var toolbarItems = [ { _root: [ {separator: true }, {name: "Refresh", action: "IDM_RECALCULATE", label: this._tm1messages.MEN.TMX_MEN_BLUEDOT_REFRESH, showLabel: false, "iconClass": "bux-refresh-image"}, {name: "Restart", action: "IDM_RESTART", label: this._tm1messages.MEN.TMX_MEN_BLUEDOT_RESTART, showLabel: false, "iconClass": "tutorial-toolbar-icon-canada"} ] } ]; toolbarItems = this.addToolbutton(toolbarItems, "IDM_COMMIT"); // toolbarItems = this.addToolbutton(toolbarItems, "IDM_REVIEWDATACHANGES"); // toolbarItems = this.addSeparator(toolbarItems); toolbarItems = this.addToolbuttonWithSubmenu (toolbarItems, "IDM_EXPORT"); toolbarItems = this.addSeparator(toolbarItems); toolbarItems = this.addToolbutton(toolbarItems, "IDM_SAVEDATACHANGES"); toolbarItems = this.addSeparator(toolbarItems); toolbarItems = this.addToolbutton(toolbarItems, "IDM_SANDBOX_UNDO"); toolbarItems = this.addToolbutton(toolbarItems, "IDM_SANDBOX_REDO"); toolbarItems = this.addSeparator(toolbarItems); toolbarItems = this.addToolbutton(toolbarItems, "IDM_RECALCULATE"); toolbarItems = this.addToolbutton(toolbarItems, "IDM_REBUILDACTIVEFORMS"); // toolbarItems = this.addToolbutton(toolbarItems, "IDM_TOGGLE_AUTOMATICRECALCULATE"); toolbarItems = this.addToolbutton(toolbarItems, "IDM_AUTO_FIT_COL"); // toolbarItems = this.addToolbutton(toolbarItems, "IDM_ZOOM_IN"); // toolbarItems = this.addToolbutton(toolbarItems, "IDM_ZOOM_OUT"); // toolbarItems = this.addToolbutton(toolbarItems, "IDM_ZOOM_NORMAL"); toolbarItems = this.addSeparator(toolbarItems); // toolbarItems = this.addToolbutton(toolbarItems, "IDM_RESET_DATA"); toolbarItems = this.addToolbuttonWithSubmenu (toolbarItems, "IDM_SANDBOX"); toolbarItems = this.addToolbuttonWithSubmenu (toolbarItems, "IDM_SANDBOXITEMS"); this.iContext.iEvents.fireEvent("com.ibm.bux.widgetchrome.toolbar.init", null, toolbarItems); }, addSeparator: function (toolbarItems) { var separator = { "separator": true }; return toolbarItems.concat(separator); }, addToolbutton: function (toolbarItems, toolbarAction) { if (this.isToolbuttonVisible(toolbarAction)) { return toolbarItems.concat(this.createSimpleToolbutton(toolbarAction)); } else { return toolbarItems; } }, addToolbuttonWithSubmenu: function (toolbarItems, toolbarAction) { if (this.isToolbuttonVisible(toolbarAction)) { return toolbarItems.concat(this.createToolbuttonWithSubmenu(toolbarAction)); } else { return toolbarItems; } }, createSimpleToolbutton: function (toolbarAction) { var toolbutton = { "name" : toolbarAction, "action" : toolbarAction, "label": this.getToolbuttonTooltip(toolbarAction), "iconClass": this.getToolbuttonImage(toolbarAction), "disabled": this.isToolbuttonDisabled(toolbarAction) } return toolbutton; }, appendSandboxMenuChoice: function (menuItems, sandboxIndex, sandboxName, activeSandbox) { var toolbarAction = "SANDBOXCHOICE" + sandboxIndex; var toolbutton = { "name" : toolbarAction, "action" : toolbarAction, "label": sandboxName, "iconClass": (activeSandbox == sandboxName ? "tm1-menu-radioselection" : "tm1-menu-empty") } return menuItems.concat(toolbutton); }, createToolbuttonWithSubmenu: function (toolbarAction) { var menuitems = null; if (toolbarAction == "IDM_EXPORT") { var menuItems = []; menuItems = this.addToolbutton(menuItems, "IDM_SLICE_TO_EXCEL"); menuItems = this.addToolbutton(menuItems, "IDM_SNAPSHOT_TO_EXCEL"); menuItems = this.addToolbutton(menuItems, "IDM_EXPORT_TO_PDF"); var toolbutton = { "name" : toolbarAction, "action" : toolbarAction, "label": this.getToolbuttonTooltip(toolbarAction), "iconClass": this.getToolbuttonImage(toolbarAction), "disabled": this.isToolbuttonDisabled(toolbarAction), "items" : menuItems } return toolbutton; } else if (toolbarAction == "IDM_SUPPRESS_ZEROS") { var menuItems = []; menuItems = this.addToolbutton(menuItems, "IDM_SUPPRESS_ZEROS_ROWS_COLUMNS"); menuItems = this.addToolbutton(menuItems, "IDM_SUPPRESS_ZEROS_ROWS"); menuItems = this.addToolbutton(menuItems, "IDM_SUPPRESS_ZEROS_COLUMNS"); var toolbutton = { "name" : toolbarAction, "action" : toolbarAction, "label": this.getToolbuttonTooltip(toolbarAction), "iconClass": this.getToolbuttonImage(toolbarAction), "disabled": this.isToolbuttonDisabled(toolbarAction), "items" : menuItems } return toolbutton; } else if (toolbarAction == "IDM_CHART-SELECT") { var menuItems = []; menuItems = this.addToolbuttonWithSubmenu (menuItems, "IDM_CHARTTYPE"); var toolbutton = { "name" : toolbarAction, "action" : toolbarAction, "label": this.getToolbuttonTooltip(toolbarAction), "iconClass": this.getToolbuttonImage(toolbarAction), "disabled": this.isToolbuttonDisabled(toolbarAction), "items" : menuItems } return toolbutton; } else if (toolbarAction == "IDM_CHARTTYPE") { var menuItems = []; //menuItems = this.addToolbutton(menuItems, "IDM_CHART_POINT"); menuItems = this.addToolbutton(menuItems, "IDM_CHART_BUBBLE"); menuItems = this.addToolbutton(menuItems, "IDM_CHART_LINE"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_SPLINE"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_STEPLINE"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_FASTLINE"); menuItems = this.addToolbutton(menuItems, "IDM_CHART_BAR"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_STACKEDBAR"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_STACKEDBAR100"); menuItems = this.addToolbutton(menuItems, "IDM_CHART_COLUMN"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_STACKEDCOLUMN"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_STACKEDCOLUMN100"); menuItems = this.addToolbutton(menuItems, "IDM_CHART_AREA"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_STACKEDAREA"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_STACKEDAREA100"); menuItems = this.addToolbutton(menuItems, "IDM_CHART_PIE"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_DOUGHNUT"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_STOCK"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_CANDLESTICK"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_RANGE"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_SPLINERANGE"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_GANTT"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_RANGECOLUMN"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_RADAR"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_POLAR"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_BOXPLOT"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_FUNNEL"); //menuItems = this.addToolbutton(menuItems, "IDM_CHART_PYRAMID"); var toolbutton = { "name" : toolbarAction, "action" : toolbarAction, "label": this.getToolbuttonTooltip(toolbarAction), "iconClass": this.getToolbuttonImage(toolbarAction), "disabled": this.isToolbuttonDisabled(toolbarAction), "items" : menuItems } return toolbutton; } else if (toolbarAction == "IDM_SANDBOX") { var menuItems = []; menuItems = this.addToolbutton(menuItems, "IDM_CREATE_SANDBOX"); menuItems = this.addToolbutton(menuItems, "IDM_DELETE_SANDBOX"); var toolbutton = { "name" : toolbarAction, "action" : toolbarAction, "label": this.getToolbuttonTooltip(toolbarAction), "iconClass": this.getToolbuttonImage(toolbarAction), "disabled": this.isToolbuttonDisabled(toolbarAction), "items" : menuItems } return toolbutton; } else if (toolbarAction == "IDM_SANDBOXITEMS") { var menuItems = []; if (this.sandboxNames) { menuItems = this.appendSandboxMenuChoice(menuItems, 0, "[Base]", this.sandboxNames.currentSandbox); if (this.sandboxNames.sandboxes.length > 1) { for (i=1; i 0) { this.camPassport = cookieValue; } } this.loadWithAttributes(); this._firstVisible = true; }, refreshView : function () { if (this.cantLoadDojo) { if (this.iframeCtrlCantLoadDojo) { this.iframeCtrlCantLoadDojo.setUrl(this.getIFrameUrl()); // } else { var widgetTitle = "widgetTitle"; var domObject = this.iContext.getElementById("_" + this.iContext.widgetId + "_" + "widgetFrame"); this.iframeCtrlCantLoadDojo = new tm1.iwidget.utilities.IFrame({ url: this.getIFrameUrl(), // frameTitle: widgetTitle }, domObject); this.iframeCtrlCantLoadDojo.startup(); } this.createBasicWidgetToolbar(); } else { var loadDeferred = new dojo.Deferred(); this.app = new this._Widget({ adminHost: this.tm1Host, tm1Server: this.tm1Server, camPassport: this.camPassport, sessionToken: this.sessionToken, username: !this.sessionToken ? (this.tm1UserName || undefined) : "", password: !this.sessionToken ? (this.tm1UserName ? (this.tm1Password ? this.tm1Password : "") : undefined) : "", path: this.tm1CubeView, style: "width: 100%; height: 100%", onLoad: function() { loadDeferred.resolve(); } }).placeAt(dojo.byId("_" + this.iContext.widgetId + "_" + "widgetFrame")); this.app.startup(); loadDeferred.then(dojo.hitch(this, this.createCompleteCallback)); } }, refreshMore : function () { if (this.app != null) { if (this.subscribeToActiveSheetChangedNotifications) { this.app._widget.unsubscribeFromActiveSheetChangedNotifications(this.subscribeToActiveSheetChangedNotifications); } if (this.subscriptionHandle) { this.app._widget.unsubscribeFromStateChangeUpdates(this.subscriptionHandle); } this.app.destroy(); this.app = null; } if (this.iframeCtrl ) { this.iframeCtrl.setUrl( this.getIFrameUrl());// + "&ObjectId=" + this.widg1.getObjectId()); } else { var widgetTitle = "widgetTitle"; this.iframeCtrl = new tm1.iwidget.utilities.IFrame({ url: this.getIFrameUrl(),// + "&ObjectId=" + this.widg1.getObjectId(), frameTitle: widgetTitle }, this.iContext.getElementById("_" + this.iContext.widgetId + "_" + "widgetFrameA")); this.iframeCtrl.startup(); } }, getIFrameUrl: function () { return this.tm1WebURL + "/UrlApi.jsp#Action=Open&Type=WebSheet&Workbook=" + this.tm1CubeView + (!this.sessionToken ? ("&TM1Server=" + this.tm1Server + "&AdminHost=" + this.tm1Host + (this.camPassport ? ("&CamPassport=" + this.camPassport) : ("&UserName=" + this.tm1UserName + "&Password=" + (this.tm1Password ? this.tm1Password : "")))) : ("&SessionToken=" + this.sessionToken)); }, createCompleteCallback: function (value) { if (!this.inDoMore) { //this.app._widget.toggleDimensionBar(true); this.createWidgetToolbar(); if(this.onbeforeunloadHandler != null) { window.onbeforeunload = this.onbeforeunloadHandler; this.onbeforeunloadHandler = null; } this.sessionToken = this.app.sessionToken; } if (this.subscribeToActiveSheetChangedNotifications) { try { this.app._widget.unsubscribeFromActiveSheetChangedNotifications(this.subscribeToActiveSheetChangedNotifications); } catch (error) {} } try { this.subscribeToActiveSheetChangedNotifications = this.app._widget.subscribeToActiveSheetChangedNotifications(dojo.hitch(this, this.getActiveSheetChangesCallback)); } catch (error) { this.subscribeToActiveSheetChangedNotifications = null; } this.getActiveSheetChangesCallback(""); // may not be needed if (this.subscriptionHandle) { try { this.app._widget.unsubscribeFromStateChangeUpdates(this.subscriptionHandle); } catch (error) {} } try { this.subscriptionHandle = this.app._widget.subscribeToStateChangeUpdates(dojo.hitch(this, this.getCubeViewStateCallback)); } catch (error) { this.subscriptionHandle = null;; } }, getActiveSheetChangesCallback: function (value) { var dimensionNamePromise = this.app._widget.getDimensionNames(); dimensionNamePromise.promise.then(dojo.hitch(this, function (inDimensionNames) { this.dimensionNames=inDimensionNames; this.elementNameCounter = 0; this.elementNames = []; if (inDimensionNames != null && inDimensionNames.length > 0) { var elementsPromise = this.app._widget.getElementNames(this.dimensionNames[0]); elementsPromise.promise.then( dojo.hitch(this, this.getElementNamesCallback)); } })); }, onView: function(iEvent) { if (this.inDoMore) { this.inDoMore = false; if ((dojo.isIE || dojo.isTrident) && window.onbeforeunload != null) { this.onbeforeunloadHandler = window.onbeforeunload; window.onbeforeunload = null; } this.refreshView(); } }, onEdit: function(iEvent) { this.refreshView(); // example of a toolbar for edit mode this.iContext.iEvents.fireEvent("com.ibm.bux.widgetchrome.toolbar.init", null, [{ label: "Edit action", iconClass: "bux-toolbar-button-edit", action: "action.edit" }]); }, onMore: function(iEvent) { if (!this.inDoMore) { this.inDoMore = true; this.refreshMore(); } // example of a toolbar for more mode (not supported by BUX right now) // this.iContext.iEvents.fireEvent("com.ibm.bux.widgetchrome.toolbar.init", null, [{ // label: "More action", // iconClass: "bux-toolbar-button-more", // action: "action.more" // }]); }, // ui actions doMode: function(mode) { // switch back to view mode this.iContext.iEvents.fireEvent("onModeChanged", null, { newMode: mode }); }, onModeChanged: function (mode) { }, onToolbarAction: function(evt) { if (evt.payload == "IDM_RESTART") { if (this.app != null) { if (this.subscribeToActiveSheetChangedNotifications) { this.app._widget.unsubscribeFromActiveSheetChangedNotifications(this.subscribeToActiveSheetChangedNotifications); } if (this.subscriptionHandle) { this.app._widget.unsubscribeFromStateChangeUpdates(this.subscriptionHandle); } this.app.destroy(); this.app = null; } this.refreshView(); } else if (this.app == null) { return; } else if (evt.payload == "IDM_RESET") { this.app._widget.resetView (); } else if (evt.payload == "IDM_COMMIT") { this.app._widget.commitSandbox(); } else if (evt.payload == "IDM_SAVEVIEW") { alert ("not implemented yet"); } else if (evt.payload == "IDM_SAVEAS") { alert ("not implemented yet"); } else if (evt.payload == "IDM_SAVEDATACHANGES") { this.app._widget.saveData(); } else if (evt.payload == "IDM_REVIEWDATACHANGES") { alert ("not implemented yet"); } else if (evt.payload == "IDM_RECALCULATE") { this.app.recalculate(); } else if (evt.payload == "IDM_REBUILDACTIVEFORMS") { this.app.rebuildActiveForms(); } else if (evt.payload == "IDM_AUTO_FIT_COL") { this.app._widget.autoFitSelectedColumns(); } else if (evt.payload == "IDM_SLICE_TO_EXCEL") { this.app._widget.displayExportOptions("SLICE"); } else if (evt.payload == "IDM_SNAPSHOT_TO_EXCEL") { this.app._widget.displayExportOptions("SNAPSHOT"); } else if (evt.payload == "IDM_EXPORT_TO_PDF") { this.app._widget.displayExportOptions("PRINTTOPDF"); } else if (evt.payload == "IDM_SUPPRESS_ZEROS_ROWS_COLUMNS") { this.app._widget.SuppressZerosBoth(); this.createWidgetToolbar(); } else if (evt.payload == "IDM_SUPPRESS_ZEROS_ROWS") { this.app._widget.SuppressZerosRows(); this.createWidgetToolbar(); } else if (evt.payload == "IDM_SUPPRESS_ZEROS_COLUMNS") { this.app._widget.SuppressZerosCols(); this.createWidgetToolbar(); } else if (evt.payload == "IDM_CHART") { this.app._widget.ChangeDisplayMode("Chart"); } else if (evt.payload == "IDM_CHARTANDGRID") { this.app._widget.ChangeDisplayMode("GridAndChart"); } else if (evt.payload == "IDM_GRID") { this.app._widget.ChangeDisplayMode("Grid"); } else if (evt.payload == "IDM_CHART_POINT") { this.app._widget.ChartTypeChanged(0); } else if (evt.payload == "IDM_CHART_BUBBLE") { this.app._widget.ChartTypeChanged(1); } else if (evt.payload == "IDM_CHART_LINE") { this.app._widget.ChartTypeChanged(2); } else if (evt.payload == "IDM_CHART_SPLINE") { this.app._widget.ChartTypeChanged(3); } else if (evt.payload == "IDM_CHART_STEPLINE") { this.app._widget.ChartTypeChanged(4); } else if (evt.payload == "IDM_CHART_FASTLINE") { this.app._widget.ChartTypeChanged(5); } else if (evt.payload == "IDM_CHART_BAR") { this.app._widget.ChartTypeChanged(6); } else if (evt.payload == "IDM_CHART_STACKEDBAR") { this.app._widget.ChartTypeChanged(7); } else if (evt.payload == "IDM_CHART_STACKEDBAR100") { this.app._widget.ChartTypeChanged(8); } else if (evt.payload == "IDM_CHART_COLUMN") { this.app._widget.ChartTypeChanged(9); } else if (evt.payload == "IDM_CHART_STACKEDCOLUMN") { this.app._widget.ChartTypeChanged(10); } else if (evt.payload == "IDM_CHART_STACKEDCOLUMN100") { this.app._widget.ChartTypeChanged(11); } else if (evt.payload == "IDM_CHART_AREA") { this.app._widget.ChartTypeChanged(12); } else if (evt.payload == "IDM_CHART_SPLINEAREA") { this.app._widget.ChartTypeChanged(13); } else if (evt.payload == "IDM_CHART_STACKEDAREA") { this.app._widget.ChartTypeChanged(14); } else if (evt.payload == "IDM_CHART_STACKEDAREA100") { this.app._widget.ChartTypeChanged(15); } else if (evt.payload == "IDM_CHART_PIE") { this.app._widget.ChartTypeChanged(16); } else if (evt.payload == "IDM_CHART_DOUGHNUT") { this.app._widget.ChartTypeChanged(17); } else if (evt.payload == "IDM_CHART_STOCK") { this.app._widget.ChartTypeChanged(18); } else if (evt.payload == "IDM_CHART_CANDLESTICK") { this.app._widget.ChartTypeChanged(19); } else if (evt.payload == "IDM_CHART_RANGE") { this.app._widget.ChartTypeChanged(20); } else if (evt.payload == "IDM_CHART_SPLINERANGE") { this.app._widget.ChartTypeChanged(21); } else if (evt.payload == "IDM_CHART_GANTT") { this.app._widget.ChartTypeChanged(22); } else if (evt.payload == "IDM_CHART_RANGECOLUMN") { this.app._widget.ChartTypeChanged(23); } else if (evt.payload == "IDM_CHART_RADAR") { this.app._widget.ChartTypeChanged(24); } else if (evt.payload == "IDM_CHART_POLAR") { this.app._widget.ChartTypeChanged(25); } else if (evt.payload == "IDM_CHART_BOXPLOT") { this.app._widget.ChartTypeChanged(26); } else if (evt.payload == "IDM_CHART_FUNNEL") { this.app._widget.ChartTypeChanged(27); } else if (evt.payload == "IDM_CHART_PYRAMID") { this.app._widget.ChartTypeChanged(28); } else if (evt.payload == "IDM_RESET_DATA") { this.app._widget.resetData(); } else if (evt.payload == "IDM_SANDBOX_UNDO") { this.app.undo(); } else if (evt.payload == "IDM_SANDBOX_REDO") { this.app.redo(); } else if (evt.payload == "IDM_CREATE_SANDBOX") { this.app._widget.createSandbox(); } else if (evt.payload == "IDM_DELETE_SANDBOX") { this.app._widget.deleteSandboxes(); } else if (evt.payload.substring(0, 13) == "SANDBOXCHOICE") { var sandBoxId = evt.payload.substring(13, evt.payload.length); if (sandBoxId == 0) { this.app._widget.setActiveSandbox("[Base]"); } else { this.app._widget.setActiveSandbox(this.sandboxNames.sandboxes[sandBoxId].name); } } }, getCubeViewStateCallback: function ( inCubeViewState) { this.cubeViewState = inCubeViewState; var sandboxPromise = this.app._widget.getSandboxes(); sandboxPromise.then(dojo.hitch(this, this.getSandboxNamesCallback)); }, getSandboxNamesCallback: function( inSandboxNames ) { this.sandboxNames = inSandboxNames; this.createWidgetToolbar(); }, onUnload: function(evt) { if(this.recalPromise) { this.recalPromise.then(dojo.hitch(this, this.doOnUnload)); } else { this.doOnUnload(); } this.unloaded = true; }, doOnUnload: function() { if (this.app) { if (this.subscribeToActiveSheetChangedNotifications) { this.app._widget.unsubscribeFromActiveSheetChangedNotifications(this.subscribeToActiveSheetChangedNotifications); } if (this.subscriptionHandle) { this.app._widget.unsubscribeFromStateChangeUpdates(this.subscriptionHandle); } this.app.destroy(); this.app.logout(); this.app = null; this.sessionToken = null; } if (this.iframeCtrl != null) { this.iframeCtrl.destroy(); } if (this.iframeCtrlCantLoadDojo != null) { this.iframeCtrlCantLoadDojo.destroy(); } }, onSetVisible: function(evt) { if(!this.unloaded) { if (evt.payload.isVisible) { if (this.app != null) { this.recalPromise = this.app.recalculate(); } } } }, onWidgetRefresh: function(evt) // Invoked when User preferences get modified (Including locales) { if (this.app != null) { this.app.recalculate(); } return; }, onWidgetSave: function() { var saveDonePayload = {'status':true}; this.iContext.iEvents.fireEvent("com.ibm.bux.widget.save.done", null, saveDonePayload); }, onWidgetResize: function(e) { if (this.inDoMore) { var newWidth = e.payload.resize.w; var newHeight = e.payload.resize.h; this.iframeCtrl.resize({ w: newWidth, h: newHeight - 40 }); } else if (this.cantLoadDojo) { var newWidth = e.payload.resize.w; var newHeight = e.payload.resize.h; this.iframeCtrlCantLoadDojo.resize({ w: newWidth, h: newHeight }); } else { if (!this._preferredSizeSet) { if(!this._firstVisible) { setTimeout(dojo.hitch(this, this.onWidgetResize, e), 10); return; } var attributes = this.iContext.getiWidgetAttributes(); var width = parseInt(((this.tm1Width != null) && (this.tm1Width > 0)) ? this.tm1Width : attributes.getItemValue("viewWidth")); var height = parseInt(((this.tm1Height != null) && (this.tm1Height > 0)) ? this.tm1Height : attributes.getItemValue("viewHeight")); var chromeObjectId = bux.Helper.widgetIdToChromeId(this.iContext.widgetId); var chromeObject = bux.Helper.getChromeById(chromeObjectId); chromeObject.setPreferredSize({w: width, h: height}); this._preferredSizeSet = true; chromeObject.doChromeAutoResize(); } if (this.app != null) { this.app.resize(); this.tm1Height = e.payload.resize.h; this.tm1Width = e.payload.resize.w; this.iContext.getiWidgetAttributes().setItemValue("tHeight", this.tm1Height); this.iContext.getiWidgetAttributes().setItemValue("tWidth", this.tm1Width); } } }, onGetProperties: function (evt, init) { /* var attributes = this.iContext.getiWidgetAttributes(); var _properties = { 'label': this.iContext.getiWidgetAttributes().getItemValue("tm1Host"), 'serverLabel': this.iContext.getiWidgetAttributes().getItemValue("tm1Server"), 'cubeLabel': this.iContext.getiWidgetAttributes().getItemValue("tm1Cube"), 'cubeViewLabel': this.iContext.getiWidgetAttributes().getItemValue("tm1CubeView"), 'userNameLabel': this.iContext.getiWidgetAttributes().getItemValue("tm1UserName"), 'passwordLabel': this.iContext.getiWidgetAttributes().getItemValue("tm1Password") }; var propertiesDialog = new CubeViewPropertiesPane({ properties: _properties, title: dojo.string.substitute(BUXMSG.WDG.IDS_WDG_PROPERTIES_DIALOG_TITLE, [attributes.getItemValue("widgetTitle")]), sourceWidget: this, cancelPropertiesCallback: (init) ? dojo.hitch(this, this._onCancelProperties) : null }); this._propertiesDialog = propertiesDialog; var _payload = {properties: _properties, propertiesDialogSpec:null, propertiesDialogTab: propertiesDialog}; this.iContext.iEvents.fireEvent("com.ibm.bux.widget.properties.get.done", null, _payload); */ }, _onCancelProperties: function() { if (this._firstRender == true) { var chromeObjectId = bux.Helper.widgetIdToChromeId(this.iContext.widgetId); var chromeObject = bux.Helper.getChromeById(chromeObjectId); chromeObject.widgetRemoveConfirmed(); } }, onSetProperties: function(evt) { if (evt.payload.properties) { var attributes = this.iContext.getiWidgetAttributes(); var host = this._propertiesDialog.labelInput.value; var server = this._propertiesDialog.serverLabelInput.value; var cube = this._propertiesDialog.cubeLabelInput.value; var cubeView = this._propertiesDialog.cubeViewLabelInput.value; var userName = this._propertiesDialog.userNameLabelInput.value; var password = this._propertiesDialog.passwordLabelInput.value; if (host != attributes.getItemValue("tm1Host") || server != attributes.getItemValue("tm1Server") || cube != attributes.getItemValue("tm1Cube") || cubeView != attributes.getItemValue("tm1CubeView") || userName != attributes.getItemValue("tm1UserName") || password != attributes.getItemValue("tm1Password")) { this.tm1Host = host; this.tm1Server = server; this.tm1Cube = cube; this.tm1CubeView = cubeView; this.tm1UserName = userName; this.tm1Password = password; // attributes.save(); this.refreshView(); } return; } }, _onCancelProperties: function () { if (this._firstRender == true) { this.removeWidget(); } }, removeWidget: function () { var chromeObjectId = bux.Helper.widgetIdToChromeId(this.iContext.widgetId); var chromeObject = bux.Helper.getChromeById(chromeObjectId); chromeObject.widgetRemoveConfirmed(); }, _excludeList: ["copyright", "version"], _getProps: function(asDialog) { var results = {}; var names = this.iContext.getiWidgetAttributes().getAllNames(); for (var i = 0, l = names.length; i < l; i++) { var name = names[i]; if (-1 != dojo.indexOf(this._excludeList, name)) { // skip read-only attributes // BUG: can't use enabler's isReadOnly() fails with a bizare javascript error. continue; } var value = this.iContext.getiWidgetAttributes().getItemValue(name); results[name] = (asDialog) ? { value: value } : value; } return results; } });