aboutsummaryrefslogtreecommitdiffstats
path: root/Software/.jxbrowser-data/Cache/f_0000cd
diff options
context:
space:
mode:
Diffstat (limited to 'Software/.jxbrowser-data/Cache/f_0000cd')
-rw-r--r--Software/.jxbrowser-data/Cache/f_0000cd3342
1 files changed, 0 insertions, 3342 deletions
diff --git a/Software/.jxbrowser-data/Cache/f_0000cd b/Software/.jxbrowser-data/Cache/f_0000cd
deleted file mode 100644
index 47da68a70..000000000
--- a/Software/.jxbrowser-data/Cache/f_0000cd
+++ /dev/null
@@ -1,3342 +0,0 @@
-Polymer({ is : "ti-rov-panel",
- behaviors: [
- Polymer.IronResizableBehavior
- ],
-
- properties: {
- dashboardVersion : {
- type : String,
- value : '1.0'
- },
- allModules : {
- type: Array,
- value: function() { return [];}
- },
- viewableModules : {
- type: Array,
- value: []
- },
- favoriteModules : {
- type: Array,
- value: []
- },
- favoriteTocItems : {
- type: Array,
- value: function() { return [];}
- },
- curTocModules : {
- type: Array,
- value: function() { return [];}
- },
- tocItems : {
- type: Array,
- value: function() { return [];}
- },
- allModulesVisible : {
- type: Boolean,
- value: false
- },
- dashboards : {
- type: Object
- },
- rovData : {
- type: Object,
- value: function() { return {};}
- },
- matchedModules : {
- type: Array,
- value: function() { return [];}
- },
- matchedModuleNames : {
- type: Array,
- value: function() { return [];}
- },
- filterValue : {
- type: String,
- value: ''
- },
- showFilterButtonLeft : {
- type: Boolean,
- value: false
- },
- showFilterButtonRight : {
- type: Boolean,
- value: false
- },
- viewList : {
- type: Object,
- value: function() { return {};}
- },
- toggleIcon : {
- type: String,
- value: 'chevron-left'
- },
- toggleTooltip : {
- type: String,
- value: 'Hide Modules'
- },
- rovModuleViews : {
- type: Array,
- value: function() { return [];}
- },
- dashboardNames : {
- type: Array,
- value: function() { return [];}
- },
- refreshInterval : {
- type : Number,
- value : 1000
- },
- dataTimeoutPeriod : {
- type : Number,
- value : 10000
- },
- connectTimeoutPeriod : {
- type : Number,
- value : 20000
- },
- repeatHandle : {
- type : Number,
- value : 0
- },
- confirmTitle : {
- type : String,
- value : ''
- },
- confirmLabel : {
- type : String,
- value : ''
- },
- confirmProps : {
- type : Object,
- value : {}
- },
- rovSettings : {
- type: Object,
- value: {}
- },
- inRepeatRefresh : {
- type: Boolean,
- value: false
- },
- favoriteMenuItem : {
- type: String,
- value: ''
- },
- statusItems : {
- type: Array,
- value: []
- },
- rovInit : {
- type: Object,
- value: {}
- },
- connectMessage : {
- type: String,
- value: ''
- },
- currentDashboard : {
- type: String,
- value: ''
- },
- exeName : {
- type: String,
- value: ''
- },
- viewToTopList : {
- type: Array,
- value: []
- },
- curModsLabel : {
- type: String,
- value: 'Viewable Modules'
- },
- otherModsLabels : {
- type: Array,
- value: []
- },
- rovViews : {
- type: Array,
- value: function() { return [];}
- },
- enableOtherViews : {
- type: Boolean,
- value: false
- },
- otherViews : {
- type: Array,
- value: []
- },
- addOnMrus : {
- type: Array,
- value: []
- },
- commLinkMrus : {
- type: Array,
- value: []
- },
- exeMrus : {
- type: Array,
- value: []
- },
- viewsStorageItems : {
- type: Array,
- value: []
- },
- dashboardConflicts : {
- type: Array,
- value: []
- },
- overwriteDashboardsItems : {
- type: Array,
- value: []
- },
- addOnsHash : {
- type: Array,
- value: []
- },
- ccs7 : {
- type: Boolean,
- value: false
- },
- /* addOn views tooltips were being cached for this.otherViews
- * to workaround, use this array to display this.otherViews in dialogs,
- * setting it to this.otherViews before showing the dialog and
- * then setting it to empty when the dialog is closed
- */
- dlgOtherViews : {
- type: Array,
- value: []
- },
- panelWidth : {
- type: Number,
- value: -1
- },
- viewContainer : {
- type : Object,
- value : {}
- },
- useCurrentProgram : {
- type : String,
- value : '<Use the program currently being debugged>'
- },
- inited : {
- type: Boolean,
- value: false
- },
- dragData : {
- type: Array,
- value: []
- },
- discoveredAddOns : {
- type: Array,
- value: []
- },
- dlgDiscoveredAddOns : {
- type: Array,
- value: []
- },
- autoConnectMessage : {
- type : String,
- value : ''
- },
- introMessage : {
- type: String,
- value: ''
- },
- introModulesMessage : {
- type: String,
- value: ''
- }
- },
- listeners: {
- 'iron-resize': 'onIronResize'
- },
- attached : function () {
- this.set('dashboards', rovUtils.getLocalStorageObject('dashboards-storage'));
- var favoritesStorage = rovUtils.getLocalStorageObject('favorites-storage');
- if (Object.keys(favoritesStorage).length > 0) {
- this.set('favoriteModules', favoritesStorage);
- }
- this.set('rovInit', rovUtils.getLocalStorageObject('rovInit-storage'));
- this.setRovSettings(rovUtils.getLocalStorageObject('rovSettings-storage'));
- if (this.rovInit.autoConnect) {
- this.autoConnect();
- }
- else {
- this.showConnectDialog();
- }
- this.$.rovDrawerPanel.disableEdgeSwipe = true;
- this.$.rovDrawerPanel.disableSwipe = true;
- this.viewContainer = this.$.rovHeaderPanel.$.mainContainer;
- this.$.openDashboardFileButton.hidden = !this.ccs7;
- this.$.overflowOpenDashboardFileButton.hidden = !this.ccs7;
- /* initial toolbar state */
- this.$.rovTitle.hidden = false;
- this.$.titleSpan.hidden = true;
- this.$.dashboardDiv.hidden = true;
- },
- ready : function () {
- this.ccs7 = window.ccs7_browser;
- this.rovData = document.querySelector('#rovData');
- },
- addDiscoveredAddOnClicked : function (e) {
- var selected = [];
- var listItems = this.$.discoveredAddOnsList.items;
- for (var i = 0; i < listItems.length; i++) {
- if (listItems[i].lastElementChild.checked) {
- selected.push({path: this.dlgDiscoveredAddOns[i].path,
- root: this.dlgDiscoveredAddOns[i].root,
- name: this.dlgDiscoveredAddOns[i].name,
- elem: listItems[i].firstElementChild,
- index: i});
- }
- }
- for (var i = 0; i < selected.length; i++) {
- var path = this.parseAddOnPath(selected[i].path);
- this.addOnsHash[path] = selected[i];
- this.importHref(path,
- function(e){
- var key = this.getAddOnHashKey(e.target.outerHTML);
- var item = this.addOnsHash[key];
- if (this.createAddOn(e, item.path, item.root)) {
- item.elem.checked = false;
- }
- this.syncDiscoveredAddOnsList();
- this.sanityCheckSelectAllBox('selectAllCurrentAddOnsCheckbox', 'curAddOnsList');
- },
- function(e){
- var key = this.getAddOnHashKey(e.target.outerHTML);
- this.addOnsHash[key].href = 'error';
- this.showStatus('Error importing ' + e.target.href, 'error');
- }
- );
- }
- },
- addFavorite : function (mod) {
- var tempModules = rovUtils.shallowCopy(this.favoriteModules);
- tempModules.push(mod);
- this.set('favoriteModules', tempModules);
- this.set('favoriteTocItems', this.makeModulesToc(this.favoriteModules));
- rovUtils.setLocalStorageObject('favorites-storage', this.favoriteModules);
- },
- addOnDoneClicked : function (e) {
- var dialog = document.getElementById('manageAddOnsDialog');
- if (dialog) {
- /* clean up */
- this.$.curAddOnsList.selected = -1;
- this.$.discoveredAddOnsList.selected = -1;
- this.$.removeAddOnButton.disabled = true;
- this.$.selectAllCurrentAddOnsCheckbox.checked = false;
- this.$.selectAllDiscoveredAddOnsCheckbox.checked = false;
- this.$.addDiscoveredAddOnButton.disabled = true;
- this.$.loadAddOnButton.disabled = true;
- this.showAddOnInput(false);
- if (this.$.addOnErrorToast.opened) {
- this.$.addOnErrorToast.text = '';
- this.$.addOnErrorToast.close();
- }
- this.$.addOnInput.value = '';
- dialog.close();
- this.set('dlgOtherViews', []);
- this.set('dlgDiscoveredAddOns', []);
- }
- },
- addOnErrorCloseClicked : function(e) {
- this.$.addOnErrorToast.close();
- this.$.addOnErrorToast.text = '';
- },
- addOnKeyPress : function (e) {
- var keyCode = e.keyCode || e.which;
- if (keyCode === 13 && this.$.addOnInput.value != '') {
- this.loadAddOnClicked(e);
- }
- },
- addOnOnInput : function (e) {
- if (this.$.addOnErrorToast.opened) {
- this.$.addOnErrorToast.text = '';
- this.$.addOnErrorToast.close();
- }
- this.$.loadAddOnButton.disabled = e.currentTarget.value == '';
- },
- addOnMruSelected : function (e) {
- this.mruSelected(e);
- if (this.$.addOnErrorToast.opened) {
- this.$.addOnErrorToast.text = '';
- this.$.addOnErrorToast.close();
- }
- this.$.loadAddOnButton.disabled = false;
- },
- addOnViewsClicked : function (e) {
- var dialog = document.getElementById('manageAddOnsDialog');
- if (dialog) {
- this.set('dlgOtherViews', this.otherViews);
- this.set('dlgDiscoveredAddOns', this.discoveredAddOns);
- this.$.selectAllCurrentAddOnsCheckbox.disabled = (this.dlgOtherViews.length == 0);
- this.populateDiscoveredAddOns();
- this.$.selectAllDiscoveredAddOnsCheckbox.disabled = (this.dlgDiscoveredAddOns.length == 0);
- dialog.open();
- dialog.style.zIndex = String(this.getMaxZindex() + 1);
- this.$.addOnInput.value = '';
- if (this.$.addOnErrorToast.opened) {
- this.$.addOnErrorToast.text = '';
- this.$.addOnErrorToast.close();
- }
- }
- },
- autoConnect : function () {
- var exe = (this.ccs7 && this.rovInit.noExe) ? '' : this.rovInit.exe;
- var dialog = this.$.autoConnectProgressDialog;
- if (dialog) {
- dialog.open();
- dialog.style.zIndex = String(this.getMaxZindex() + 1);
- if (!this.rovInit.progressInfo) {
- this.rovInit.progressInfo = {};
- this.rovInit.progressInfo.min = 0;
- this.rovInit.progressInfo.max = 10;
- this.rovInit.progressInfo.step = 1;
- }
- this.$.autoConnectProgress.min = this.rovInit.progressInfo.min;
- this.$.autoConnectProgress.max = this.rovInit.progressInfo.max;
- this.$.autoConnectProgress.step = this.rovInit.progressInfo.step;
- this.rovInit.progressInfo.notifyCount = 0;
- this.$.autoConnectProgress.value = this.rovInit.progressInfo.step;
- var exeName = exe;
- if (exeName.length > 0) {
- exeName = exeName.replace(/\\/g, '/');
- exeName = exeName.substr(exeName.lastIndexOf('/') + 1);
- this.exeName = exeName;
- exeName += ', ';
- }
- this.autoConnectMessage = 'Connecting to ' + exeName + this.rovInit.commLink;
- this.connectMessage = 'Working...';
- }
- this.initRov(exe, this.rovInit.commLink);
- },
- averageIntroProgess : function () {
- if (!this.rovInit.progressInfo.average) {
- this.rovInit.progressInfo.average = this.rovInit.progressInfo.notifyCount;
- this.rovInit.progressInfo.numLoads = 1;
-
- }
- else {
- /* cumulative moving average */
- this.rovInit.progressInfo.average = (this.rovInit.progressInfo.notifyCount +
- (this.rovInit.progressInfo.numLoads * this.rovInit.progressInfo.average)) /
- ++this.rovInit.progressInfo.numLoads;
-
- }
- this.rovInit.progressInfo.max = this.rovInit.progressInfo.average + this.rovInit.progressInfo.step;
- },
- checkForMissingDashboardAddOns : function (dashboard) {
- for (var i = 0; i < dashboard.length; i++) {
- if (dashboard[i].elemName) { /* is otherView */
- if (!this.otherViewsHaveElem(dashboard[i].elemName)) {
- this.loadMissingDashboardAddOn(dashboard[i], false);
- }
- }
- }
- },
- clearAllLocalStorage: function () {
- rovUtils.setLocalStorageObject('dashboards-storage', null);
- rovUtils.setLocalStorageObject('favorites-storage', null);
- rovUtils.setLocalStorageObject('rovInit-storage', null);
- rovUtils.setLocalStorageObject('rovSettings-storage', null);
- rovUtils.setLocalStorageObject('viewsData-storage', null);
- if (this.$.manageStorageDialog.opened) {
- this.$.manageStorageDialog.close();
- }
- },
- clearAllStorageClicked : function (e) {
- this.confirmDialog('Clear all ROV storage', 'Are you sure?', 'clearAll');
- },
- clearAViewChecked : function (e) {
- if (!this.$.manageStorageDialog.opened) {
- return;
- }
- this.listItemWithSelectAllOptionClicked(e, 'selectAllViewsStorageCheckbox',
- 'viewsStorageList');
- this.enableChecklistDialogActionButton(e, 'viewsStorageList',
- 'clearViewStorageButton');
- },
- clearFavorite : function(idx) {
- /* modifying 'favoriteModules' directly didn't work, only first item was displayed */
- var tempModules = rovUtils.shallowCopy(this.favoriteModules);
- tempModules.splice(idx, 1);
- this.set('favoriteModules', tempModules);
- this.set('favoriteTocItems', this.makeModulesToc(this.favoriteModules));
- rovUtils.setLocalStorageObject('favorites-storage', this.favoriteModules);
- },
- clearFavoriteConfirm : function (mod) {
- var idx = this.favoriteModules.indexOf(mod);
- var title = 'Remove Favorite';
- var label = 'Remove ' + this.favoriteModules[idx] + ' ?';
- this.confirmDialog(title, label, 'favorite', idx);
- },
- clearViewStorageClicked : function (e) {
- var viewsStorage = rovUtils.getLocalStorageObject('viewsData-storage');
- var listItems = this.$.viewsStorageList.items;
- for (var i = 0; i < listItems.length; i++) {
- if (listItems[i].lastElementChild.checked) {
- viewsStorage[listItems[i].innerText.trim()] = null;
- listItems[i].lastElementChild.checked = false;
- }
- }
- rovUtils.setLocalStorageObject('viewsData-storage', viewsStorage);
- /* repopulate list */
- var keys = Object.keys(viewsStorage);
- var nonNullKeys = [];
- for (var i = 0; i < keys.length; i++) {
- if (viewsStorage[keys[i]]) {
- nonNullKeys.push(keys[i]);
- }
- }
- if (nonNullKeys.length > 0) {
- nonNullKeys.sort();
- this.set('viewsStorageItems', nonNullKeys);
- this.$.clearViewStorageButton.disabled = true;
- }
- else {
- this.$.manageStorageDialog.close();
- }
- this.$.selectAllViewsStorageCheckbox.checked = false;
- this.$.selectAllViewsStorageCheckbox.disabled = nonNullKeys.length == 0;
- },
- closeAllClicked : function () {
- this.closeAllViews();
- },
- closeAllViews : function() {
- var ids = [];
- for (var i = 0; i < this.rovModuleViews.length; i++) {
- ids.push(this.rovModuleViews[i].id);
- }
- for (var i = 0; i < this.rovViews.length; i++) {
- ids.push(this.rovViews[i].id);
- }
- for (var i = 0; i < ids.length; i++) {
- this.closeView(ids[i]);
- }
- },
- closeView : function(viewId) {
- var rovViews = [];
- var found = false;
- for (var i = 0; i < this.rovModuleViews.length; i++) {
- if (this.rovModuleViews[i].id != viewId) {
- rovViews.push(rovUtils.shallowCopy(this.rovModuleViews[i]));
- }
- else {
- found = true;
- }
- }
- if (found) {
- this.rovModuleViews = rovViews;
- }
- else {
- rovViews = [];
- found = false;
- for (var i = 0; i < this.rovViews.length; i++) {
- if (this.rovViews[i].id != viewId) {
- rovViews.push(rovUtils.shallowCopy(this.rovViews[i]));
- }
- else {
- found = true;
- }
- }
- if (found) {
- this.rovViews = rovViews;
- }
- }
- var chNodes = Polymer.dom(this.$.contentDiv).childNodes;
- for (var i = 0; i < chNodes.length; i++) {
- if (chNodes[i].id == viewId) {
- contentDiv.removeChild(chNodes[i]);
- Polymer.dom.flush();
- break;
- }
- }
- this.toolbarButtonsState();
- this.dashboardButtonsState();
- },
- confirmDialog : function(title, label, objName, sel) {
- var dialog = document.getElementById('confirmDialog');
- if (dialog) {
- this.confirmProps = {};
- this.confirmProps.objName = objName;
- this.confirmProps.sel = sel;
- this.confirmTitle = title;
- this.confirmLabel = label;
- dialog.open();
- dialog.style.zIndex = String(this.getMaxZindex() + 2);
- }
- },
- confirmOkClicked : function (e) {
- this.$.confirmDialog.close();
- if (this.confirmProps.objName == 'dashboard') {
- this.deleteDashboard(this.confirmProps.sel);
- }
- else if (this.confirmProps.objName == 'favorite') {
- this.clearFavorite(this.confirmProps.sel);
- }
- else if (this.confirmProps.objName == 'dashboardConflict') {
- this.saveDroppedDashboard(this.confirmProps.sel.name,
- this.confirmProps.sel.dashboard,
- this.confirmProps.sel.show);
- }
- else if (this.confirmProps.objName == 'clearAll') {
- this.clearAllLocalStorage();
- }
- },
- connectClicked : function (e) {
- this.rovInit.autoConnectChecked = this.$.autoConnectCheckbox.checked;
- rovUtils.setLocalStorageObject('rovInit-storage', this.rovInit);
- this.$.connectMessageDiv.hidden = true;
- var useProgram = this.$.exeInput.value == this.useCurrentProgram;
- var exeInvalid = !useProgram && this.$.exeInput.value.length == 0;
- var commLinkInvalid = this.$.commLinkInput.value.length == 0;
- this.$.exeInputInvalid.hidden = !exeInvalid;
- this.$.commLinkInputInvalid.hidden = !commLinkInvalid;
- if (exeInvalid || commLinkInvalid) {
- return;
- }
- if (!useProgram) {
- var exe = this.$.exeInput.value.replace(/\\/g, '/');
- if (exe.indexOf('/') >= 0) {
- exe = exe.substr(exe.lastIndexOf('/') + 1);
- }
- this.exeName = exe;
- this.connectMessage = 'Connecting to ' + this.exeName + ', ' + this.$.commLinkInput.value;
- }
- else {
- this.connectMessage = 'Connecting to ' + this.$.commLinkInput.value;
- }
- this.$.connectErrorIcon.hidden = true;
- this.$.connectMessageDiv.hidden = false;
- this.$.connectProgress.hidden = false;
- this.$.connectButton.disabled = true;
- this.initRov(useProgram ? '' : this.$.exeInput.value, this.$.commLinkInput.value);
- this.rovInit.progressInfo.notifyCount = 0;
- this.$.connectProgress.value = this.rovInit.progressInfo.step;
- },
- connectKeyPress : function (e) {
- var keyCode = e.keyCode || e.which;
- if (keyCode === 13 && this.$.connectButton.disabled == false) {
- this.connectClicked(e);
- }
- },
- createAddOn : function (e, path, root) {
- var addOn = {};
- addOn.path = path;
- addOn.root = root;
- addOn.element = this.getImportedAddOnId(e.target.import.activeElement);
- var elem = document.createElement(addOn.element);
- if (elem.viewName == undefined || elem.textContent.length == 0) {
- this.$.addOnErrorToast.text = 'Error creating element <' + addOn.element + '>';
- this.$.addOnErrorToast.fitInto = this.$.manageAddOnsDialog;
- this.$.addOnErrorToast.open();
- Polymer.dom.flush();
- return (false);
- }
- addOn.name = elem.viewName;
- addOn.href = e.target.href;
- var other = (this.otherViews.length > 0) ? rovUtils.shallowCopy(this.otherViews) : [];
- other.unshift(addOn);
- this.set('otherViews', other);
- this.set('dlgOtherViews', other);
- this.$.curAddOnsTemplate.render();
- this.$.selectAllCurrentAddOnsCheckbox.disabled = (this.dlgOtherViews.length == 0);
- this.$.curAddOnsList.selected = -1;
- this.$.removeAddOnButton.disabled = true;
- if (!this.enableOtherViews) {
- this.enableOtherViews = true;
- if (this.$$('#otherViewsButton')) {
- this.$$('#otherViewsButton').disabled = true;
- }
- }
- this.saveAddOnMru(addOn.path);
- var rovSettings = rovUtils.getLocalStorageObject('rovSettings-storage');
- rovSettings.otherViews = this.otherViews;
- rovUtils.setLocalStorageObject('rovSettings-storage', rovSettings);
- return (true);
- },
- curAddOnClicked : function (e) {
- if (!this.$.manageAddOnsDialog.opened) {
- return;
- }
- this.listItemWithSelectAllOptionClicked(e, 'selectAllCurrentAddOnsCheckbox',
- 'curAddOnsList');
- this.enableChecklistDialogActionButton(e, 'curAddOnsList',
- 'removeAddOnButton');
- },
- dashboardButtonsState : function() {
- var hasSavedDashboards = this.hasSavedDashboards();
- this.enableOpenDashboardButton(hasSavedDashboards);
- this.$.deleteDashboardButton.disabled = !hasSavedDashboards;
- this.$.overflowDeleteDashboardButton.disabled = this.$.deleteDashboardButton.disabled;
- this.$.exportDashboardsClicked.hidden = !hasSavedDashboards;
- var allViewsLength = this.rovModuleViews.length + this.rovViews.length;
- this.$.openDashboardFileButton.disabled = false;
- this.$.overflowOpenDashboardFileButton.disabled = this.$.openDashboardFileButton.disabled;
- this.$.saveDashboardButton.disabled = allViewsLength == 0;
- this.$.overflowSaveDashboardButton.disabled = this.$.saveDashboardButton.disabled;
- if (allViewsLength == 0) {
- this.setCurrentDashboard('');
- }
- },
- dashboardConflictsDialog : function () {
- var dialog = document.getElementById('overwriteDashboardsDialog');
- if (dialog) {
- var names = [];
- for (var i = 0; i < this.dashboardConflicts.length; i++) {
- names.push(this.dashboardConflicts[i].name);
- }
- names.sort();
- this.set('overwriteDashboardsItems', names);
- dialog.open();
- dialog.style.zIndex = String(this.getMaxZindex() + 10);
-
- /* Init checkboxes and clear selection button */
- var listItems = this.$.overwriteDashboardsList.items;
- for (var i = 0; i < listItems.length; i++) {
- listItems[i].lastElementChild.checked = true;
- }
- this.$.overwriteDashboardsList.selected = -1;
- this.$.overwriteDashboardsButton.disabled = false;
- }
- },
- dashboardDrag : function (e) {
- if (e.preventDefault) {
- e.preventDefault();
- }
- if (this.ccs7) {
- return;
- }
- if (this.isOverOpenButton(e)) {
- e.dataTransfer.dropEffect = 'copy';
- // e.dataTransfer.effectAllowed = 'copy';
- this.enableOpenDashboardButton(true, 'dodgerblue');
- }
- else {
- this.enableOpenDashboardButton(this.hasSavedDashboards());
- }
- },
- dashboardDragEnter : function (e) {
- this.dashboardDrag(e);
- },
- dashboardDragOver : function (e) {
- this.dashboardDrag(e);
- },
- dashboardFileLoaded : function (file, e) {
- var valid = false;
- var error = null;
- try {
- var dashboard = JSON.parse(e.target.result);
- if (rovUtils.isArray(dashboard)) {
- if (dashboard[0].moduleName || dashboard[0].elemName) {
- valid = true;
- var name = dashboard.pop();
- var savedDashboards = Object.keys(this.dashboards);
- if (savedDashboards.length > 0 && savedDashboards.indexOf(name) >= 0) {
- this.confirmDialog('Overwite dashboard',
- 'Overwite ' + name + ' ?',
- 'dashboardConflict',
- {name: name, dashboard: dashboard,
- show: true, file: file});
- }
- else {
- this.saveDroppedDashboard(name, dashboard, true);
- }
- }
- else if (dashboard[0].fileName && dashboard[0].numDashboards) {
- valid = true;
- dashboard.shift();
- this.dashboardsArrayLoaded(dashboard);
- }
- }
- }
- catch (e) {
- error = e;
- }
- if (!valid) {
- this.showStatus(file.name + ' is not a valid dashboard file', 'error');
- }
- if (error) {
- this.showStatus(error, 'error');
- }
- },
- dashboardsArrayLoaded : function (dashboardsArr) {
- var savedDashboards = Object.keys(this.dashboards);
- this.dashboardConflicts = [];
- for (var i = 0; i < dashboardsArr.length; i++) {
- var name = dashboardsArr[i].pop();
- if (savedDashboards.length > 0 && savedDashboards.indexOf(name) >= 0) {
- this.dashboardConflicts.push({name: name, dashboard: dashboardsArr[i], file: null});
- }
- else {
- this.dashboards[name] = dashboardsArr[i];
- rovUtils.setLocalStorageObject('dashboards-storage', this.dashboards);
- if (savedDashboards.length == 0) {
- this.enableOpenDashboardButton(true);
- this.$.deleteDashboardButton.disabled = false;
- }
- this.showStatus('Saved dashboard ' + name, 'info');
- }
- }
- if (this.dashboardConflicts.length > 0) {
- this.resolveSaveDashboardsConflicts();
- }
- },
- /*
- * dashboard storage {
- * id : '',
- * moduleName : '',
- * viewName : '',
- * left : '',
- * top : '',
- * width : '',
- * height : '',
- * zIndex : ''
- * }
- *
- */
- dashboardSelected : function(e) {
- var dialog = e.target.offsetParent;
- if (dialog) {
- var sel = e.currentTarget.selectedItem.textContent.trim();
- this.$.dashboardNamesMenu.selected = -1;
- if (dialog.name == 'Open' || dialog.name == 'Intro') {
- if (dialog.name == 'Intro') {
- this.$.introDialog.close();
- }
- dialog.close();
- /* Get the original dashboard in case one in memory has been changed */
- var dashboards = rovUtils.getLocalStorageObject('dashboards-storage');
- var dashboard = dashboards[sel] ? dashboards[sel] : this.dashboards[sel]; /* defensive */
- this.showDashboard(dashboard, sel);
- }
- else if (dialog.name == 'Delete') {
- this.confirmDialog('Delete dashboard',
- 'Delete ' + sel + ' ?',
- 'dashboard', sel);
- }
- else if (dialog.name == 'Save') {
- dialog.close();
- this.$.saveDashboardInput.value = sel;
- this.$.saveDashboardComment.value = this.dashboards[sel][0].comment ?
- this.dashboards[sel][0].comment : '';
- }
- }
- },
- dataOptionsClicked : function (e) {
- var dialog = document.getElementById('dataOptionsDialog');
- if (dialog) {
- dialog.addEventListener('iron-overlay-closed', function() {
- var reason = this.closingReason;
- return (false);
- });
- dialog.open();
- dialog.style.left = this.isNarrow() ? '0px': rovUtils.leftPaneWidth + 'px';
- dialog.style.zIndex = String(this.getMaxZindex() + 1);
- this.$.repeatRefreshInput.value = String(this.refreshInterval);
- this.$.repeatRefreshInputInvalid.hidden = true;
- this.$.dataTimeoutInput.value = String(this.dataTimeoutPeriod);
- this.$.dataTimeoutInputInvalid.hidden = true;
- this.$.connectTimeoutInput.value = String(this.connectTimeoutPeriod);
- this.$.connectTimeoutInputInvalid.hidden = true;
- }
- },
- dataOptionsKeyPress : function (e) {
- var keyCode = e.keyCode || e.which;
- if (keyCode === 13 && this.$.repeatRefreshInput.value != '' && this.$.dataTimeoutInput.value != '') {
- this.saveDataOptionsOkClicked(e);
- }
- },
- dataViewsShowing : function () {
- var count = this.moduleViewsShowing();
- for (var i = 0; i < this.rovViews.length; i++) {
- var elem = this.getViewById(this.rovViews[i].id);
- if (elem) {
- if (elem.hasViewableContent && elem.hasViewableContent()) {
- ++count;
- }
- }
- else {
- console.error('Undefined view, id: ' + this.rovViews[i].id);
- }
- }
- return (count);
- },
- debuggerEvent : function (event) {
- if (event == 'TargetHalt') {
- if (this.inRepeatRefresh) {
- this.stopRepeatRefresh(true);
- }
- this.refreshAllClicked();
- }
- },
- deleteDashboard : function(sel) {
- this.$.listDashboardsDialog.close();
- var dashboards = {};
- for (var name in this.dashboards) {
- if (name != sel) {
- dashboards[name] = this.dashboards[name];
- }
- }
- if (sel == this.currentDashboard) {
- this.setCurrentDashboard('');
- }
- this.dashboards = dashboards;
- rovUtils.setLocalStorageObject('dashboards-storage', this.dashboards);
- this.dashboardButtonsState();
- },
- deleteDashboardClicked : function(e) {
- this.listDashboardsDialog('Delete', e);
- },
- destroyClickedElement : function(event) {
- document.body.removeChild(event.target);
- },
- dialogCloseClicked : function (e) {
- var dlgId = e.target.id.replace(/Close/, '');
- this.$[dlgId].cancel(e);
- },
- dialogClosed : function (e) {
- /* re-enable toolbar buttons */
- this.$.rovOptionsButton.disabled = false;
- this.$.dashboardOverflowDialogButton.disabled = false;
- if (this.$$('#otherViewsButton')) {
- this.$$('#otherViewsButton').disabled = false;
- }
- this.toolbarButtonsState();
- this.dashboardButtonsState();
- },
- dialogOpened : function () {
- /* disable toolbar buttons */
- this.$.viewToTopButton.disabled = true;
- this.$.saveAllButton.disabled = true;
- this.$.repeatRefreshButton.disabled = true;
- this.$.overflowRepeatRefreshButton.disabled = true;
- this.$.refreshAllButton.disabled = true;
- this.$.overflowRefreshAllButton.disabled = true;
- this.$.closeAllButton.disabled = true;
- this.$.overflowCloseAllButton.disabled = true;
- this.$.titleOverflowDialogButton.disabled = true;
- if (this.$$('#otherViewsButton')) {
- this.$$('#otherViewsButton').disabled = true;
- }
-
- this.$.rovOptionsButton.disabled = true;
- this.$.dashboardOverflowDialogButton.disabled = true;
- this.enableOpenDashboardButton(false);
- this.$.deleteDashboardButton.disabled = true;
- this.$.saveDashboardButton.disabled = true;
- this.$.openDashboardFileButton.disabled = true;
- },
- discoverAddOns : function () {
- this.$.rediscoverAddOnButton.disabled = true;
- this.rovData.discoverAddOns(this);
- },
- discoverAddOnsCallback : function (res, addOns) {
- if (res == null) {
- var discoveredAddOns = [];
- for (var i = 0; i < addOns.length; i++) {
- discoveredAddOns.push({path : addOns[i].path,
- root : addOns[i].root,
- name : addOns[i].name});
- }
- this.set('discoveredAddOns', discoveredAddOns);
- if (this.$.manageAddOnsDialog.opened) {
- this.populateDiscoveredAddOns();
- var listItems = this.$.discoveredAddOnsList.items;
- for (var j = 0; j < listItems.length; j++) {
- listItems[j].lastElementChild.checked = false;
- }
- this.$.addDiscoveredAddOnButton.disabled = true;
- this.$.selectAllDiscoveredAddOnsCheckbox.checked = false;
- this.$.selectAllDiscoveredAddOnsCheckbox.disabled = (discoveredAddOns.length == 0);
- }
- }
- else {
- if (this.$.manageAddOnsDialog.opened) {
- this.$.addOnErrorToast.text = res;
- this.$.addOnErrorToast.fitInto = this.$.manageAddOnsDialog;
- this.$.addOnErrorToast.open();
- return (false);
- }
- else {
- this.showStatus(res, 'error');
- return (false);
- }
- }
- this.$.rediscoverAddOnButton.disabled = false;
- return (true);
- },
- discoveredAddOnClicked : function (e) {
- if (!this.$.manageAddOnsDialog.opened) {
- return;
- }
- this.listItemWithSelectAllOptionClicked(e, 'selectAllDiscoveredAddOnsCheckbox',
- 'discoveredAddOnsList');
- this.enableChecklistDialogActionButton(e, 'discoveredAddOnsList',
- 'addDiscoveredAddOnButton');
- },
- dlgClicked : function(e) {
- e.currentTarget.style.zIndex = String(this.getMaxZindex() + 1);
- },
- enableChecklistDialogActionButton : function (e, checklistId, buttonId) {
- var btnDisabled = true;
- if (e && e.currentTarget.checked) {
- btnDisabled = false;
- }
- else {
- var listItems = this.$[checklistId].items;
- for (var i = 0; i < listItems.length; i++) {
- if (listItems[i].lastElementChild.checked) {
- btnDisabled = false;
- break;
- }
- }
- }
- this.$[buttonId].disabled = btnDisabled;
- },
- enableOpenDashboardButton : function (enable, color) {
- if (enable) {
- this.$.openDashboardButton.style.color = color ? color : tiRovStyles.titleToolbarColor;
- this.$.openDashboardButton.style.cursor = 'pointer';
- this.$.openDashboardButton.title = 'Open a dashboard';
- }
- else {
- this.$.openDashboardButton.style.color = tiRovStyles.titleToolbarDisabledColor;
- this.$.openDashboardButton.style.cursor = 'default';
- this.$.openDashboardButton.title = '';
- }
- this.$.overflowOpenDashboardButton.style.color = this.$.openDashboardButton.style.color;
- this.$.overflowOpenDashboardButton.style.cursor = this.$.openDashboardButton.style.cursor;
- this.$.overflowOpenDashboardButton.title = this.$.openDashboardButton.title;
- },
- exeInputClicked : function (e) {
- this.$.exeInput.$.input.select();
- },
- exportADashboardChecked : function (e) {
- if (!this.$.exportDashboardsDialog.opened) {
- return;
- }
- this.listItemWithSelectAllOptionClicked(e, 'selectAllExportDashboardsCheckbox',
- 'exportDashboardsList');
- if (this.$.exportDashboardsInput.value == '') {
- this.$.exportDashboardsButton.disabled = true;
- }
- else {
- this.enableChecklistDialogActionButton(e, 'exportDashboardsList',
- 'exportDashboardsButton');
- }
- },
- exportDashboard : function(dashName, dashArr) {
- dashArr.push(dashName);
- var textToWrite = JSON.stringify(dashArr, null, '\t');
- dashArr.pop();
- var fileNameToSaveAs = (dashName + '.rov.json');
- rovUtils.downloadText(textToWrite, fileNameToSaveAs);
- },
- exportDashboards : function(fileName, dashboardsArr) {
- var fileNameToSaveAs = (fileName + '.rov.json');
- dashboardsArr.unshift({fileName: fileNameToSaveAs, numDashboards: dashboardsArr.length});
- var textToWrite = JSON.stringify(dashboardsArr, null, '\t');
- rovUtils.downloadText(textToWrite, fileNameToSaveAs);
- },
- exportDashboardsButtonClicked : function (e) {
- var fileName = this.$.exportDashboardsInput.value;
- var checkedDashboards = [];
- var listItems = this.$.exportDashboardsList.items;
- for (var i = 0; i < listItems.length; i++) {
- if (listItems[i].lastElementChild.checked) {
- checkedDashboards.push(listItems[i].innerText.trim());
- }
- }
- var dashArr = [];
- for (var i = 0; i < checkedDashboards.length; i++) {
- var dashboard = this.dashboards[checkedDashboards[i]];
- dashboard.push(checkedDashboards[i]);
- dashArr.push(rovUtils.shallowCopy(dashboard));
- dashboard.pop();
- }
- this.$.exportDashboardsDialog.close();
- this.$.exportDashboardsList.selected = -1;
- this.$.exportDashboardsInput.value = '';
- this.$.exportDashboardsButton.disabled = true;
- this.exportDashboards(fileName, dashArr);
- },
- exportDashboardsClicked : function (e) {
- this.initDashboardsDialogList();
- var dialog = this.$.exportDashboardsDialog;
- if (dialog) {
- dialog.open();
- dialog.style.left = this.isNarrow() ? '0px': rovUtils.leftPaneWidth + 'px';
- dialog.style.zIndex = String(this.getMaxZindex() + 10);
-
- /* Init checkboxes and clear selection button */
- var listItems = this.$.exportDashboardsList.items;
- for (var i = 0; i < listItems.length; i++) {
- listItems[i].lastElementChild.checked = true;
- }
- this.$.exportDashboardsList.selected = -1;
- this.$.exportDashboardsInput.value = '';
- this.$.exportDashboardsButton.disabled = true;
- }
- },
- exportDashboardsKeyPress : function (e) {
- var keyCode = e.keyCode || e.which;
- if (keyCode === 13 && this.$.exportDashboardsButton.disabled == false) {
- this.exportDashboardsButtonClicked(e);
- }
- },
- exportDashboardsOnInput : function (e) {
- if (e.currentTarget.value == '') {
- this.$.exportDashboardsButton.disabled = true;
- }
- else {
- this.enableChecklistDialogActionButton(null, 'exportDashboardsList',
- 'exportDashboardsButton');
- }
- },
- filterLeftClicked : function(e) {
- this.set('showFilterButtonRight', true);
- this.set('showFilterButtonLeft', false);
- },
- filterModules : function(filterStr) {
- var exp = RegExp('^' + filterStr, 'i');
- var filterArr = (this.curModsLabel == 'All Modules') ? this.allModules : this.viewableModules;
- var foundModules = [];
- for (var i = 0; i < filterArr.length; i++) {
- if (String(filterArr[i]).search(exp) == 0) {
- foundModules.push(filterArr[i]);
- }
- }
- if (foundModules.length == 0 && filterStr.length > 2) {
- exp = RegExp(filterStr + '$', 'i');
- var exp2 = RegExp(filterStr, 'i');
- for (var i = 0; i < filterArr.length; i++) {
- if (String(filterArr[i]).search(exp) > 0) {
- foundModules.push(filterArr[i]);
- }
- else if (String(filterArr[i]).search(exp2) > 0) {
- foundModules.push(filterArr[i]);
- }
- }
- }
- var equal = rovUtils.strArrCompare(this.curTocModules, foundModules);
- if (!equal) {
- this.set('curTocModules', foundModules);
- this.set('tocItems', this.makeModulesToc(foundModules));
- }
- return (!equal);
- },
- filterModulesChanged : function(e) {
- this.filterValue = e.currentTarget.value;
- this.filterModules(this.filterValue);
- },
- filterRightClicked : function(e) {
- if (this.allModules.length > 0) {
- this.set('showFilterButtonRight', false);
- this.set('showFilterButtonLeft', true);
- }
- },
- getAddOnHashKey : function (href) {
- var key = href;
- key = key.substr(key.indexOf('href=') + 6);
- return (key.substr(0, key.indexOf('"')));
- },
- getAddOnInfo : function (elemName, path) {
- var info = null;
- for (var i = 0; i < this.otherViews.length; i++) {
- if (this.otherViews[i].element == elemName && this.otherViews[i].path == path) {
- info = this.otherViews[i];
- break;
- }
- }
- return (info);
- },
- getAllModules : function () {
- return (this.allModules);
- },
- getImportedAddOnId : function (activeElement) {
- for (var i = 0; i < activeElement.children.length; i++) {
- if (activeElement.children[i].localName == 'dom-module') {
- return (activeElement.children[i].id);
- }
- }
- return ('');
- },
- getMaxZindex : function () {
- var max = 0;
- for (var i = 0; i < this.rovModuleViews.length; i++) {
- var elem = this.getViewById(this.rovModuleViews[i].id);
- if (elem.style.zIndex != '') {
- if (Number(elem.style.zIndex) > max) {
- max = Number(elem.style.zIndex);
- }
- }
- }
- for (var i = 0; i < this.rovViews.length; i++) {
- var elem = this.getViewById(this.rovViews[i].id);
- if (elem.style.zIndex != '') {
- if (Number(elem.style.zIndex) > max) {
- max = Number(elem.style.zIndex);
- }
- }
- }
- return (max);
- },
- getNewClickedViewPosition : function () {
- var offset = (this.rovModuleViews.length + this.rovViews.length - 1) * 28;
- var left = offset;
- var top = offset;
- if (this.viewContainer.scrollLeft > 0) {
- left += this.viewContainer.scrollLeft;
- }
- if (this.viewContainer.scrollTop > 0) {
- top += this.viewContainer.scrollTop;
- }
- return ({left : left, top : top});
- },
- getNewModuleViewId : function () {
- var maxId = -1;
- for (var i = 0; i < this.rovModuleViews.length; i++) {
- var arr = this.rovModuleViews[i].id.split('_');
- if (Number(arr[1]) > maxId) {
- maxId = Number(arr[1]);
- }
- }
- return ('rovModuleView_' + (maxId + 1));
- },
- getNewViewId : function () {
- var maxId = -1;
- for (var i = 0; i < this.rovViews.length; i++) {
- var arr = this.rovViews[i].id.split('_');
- if (Number(arr[1]) > maxId) {
- maxId = Number(arr[1]);
- }
- }
- return ('rovView_' + (maxId + 1));
- },
- getRovData : function () {
- return (this.rovData);
- },
- getTocIndex : function (id, tocItems) {
- var index = -1;
- for (var i = 0; i < tocItems.length; i++) {
- if (tocItems[i].id == id) {
- index = i;
- break;
- }
- }
- return (index);
- },
- getViewableModules : function () {
- return (this.viewableModules);
- },
- getViewById : function(viewId) {
- var view;
- var chNodes = Polymer.dom(this.$.contentDiv).childNodes;
- for (var i = 0; i < chNodes.length; i++) {
- if (chNodes[i].id == viewId) {
- view = chNodes[i];
- break;
- }
- }
- if (view == undefined) {
- console.error('getViewById, undefined view, id: ' + viewId);
- for (var i = 0; i < chNodes.length; i++) {
- console.log(' child node[' + i + '] '+ chNodes[i]);
- }
- }
- return (view);
- },
- getViewList : function () {
- return (this.viewList);
- },
- getViewListCallback : function (error, viewList) {
- if (error == null) {
- this.viewList = viewList;
- var keys = Object.keys(this.viewList);
- var viewTabs;
- for (var i = 0; i < keys.length; i++) {
- this.allModules.push(keys[i]);
- viewTabs = rovUtils.getViewTabs(this.viewList, keys[i]);
- if (viewTabs.length > 1) {
- this.viewableModules.push(keys[i]);
- }
- }
- this.setCurModsList(this.curModsLabel);
- }
- else {
- alert(error);
- }
- this.discoverAddOns();
- if (this.rovInit.showIntro != false) {
- this.introDialog();
- }
- },
- getViewSaveData : function (elem) {
- var viewData = elem.onSaveView();
- var info = {};
- if (elem.moduleName) {
- info.module = elem.moduleName;
- }
- info.view = elem.viewName;
- if (elem.argsId) {
- var viewArgs = elem.getViewArgs(elem.argsId);
- if (viewArgs) {
- info.args = {};
- for (var i = 0; i < viewArgs.args.length; i++) {
- info.args[viewArgs.args[i].name] = viewArgs.args[i].value;
- }
- }
- }
- return (JSON.stringify([info, viewData], null, '\t'));
- },
- hasSavedDashboards : function (e) {
- return (Object.keys(this.dashboards).length > 0);
- },
- hasView : function(moduleName, viewName) {
- var viewTabs = rovUtils.getViewTabs(this.viewList, moduleName);
- var found = false;
- for (var i = 0; i < viewTabs.length; i++) {
- if (viewName == viewTabs[i].name) {
- found = true;
- break;
- }
- }
- return (found);
- },
- hasViewsStorage : function () {
- var viewsStorage = rovUtils.getLocalStorageObject('viewsData-storage');
- var keys = Object.keys(viewsStorage);
- for (var i = 0; i < keys.length; i++) {
- if (viewsStorage[keys[i]]) {
- return (true);
- }
- }
- return (false);
- },
- hideStatus : function () {
- this.$.statusConsole.hidden = true;
- this.statusItems = [];
- },
- initDashboardsDialogList : function () {
- var namesSort = [];
- for (var name in this.dashboards) {
- namesSort.push(name);
- }
- namesSort.sort();
- var namesArr = [];
- for (var i = 0; i < namesSort.length; i++) {
- namesArr.push({name : namesSort[i], comment : this.dashboards[namesSort[i]][0].comment});
- }
- this.dashboardNames = namesArr;
- },
- initRov : function (exe, commLink) {
- var fullPath = exe + '?' + 'comm=' + (commLink == 'Debugger' ? 'DSLite' : commLink);
- if ((commLink == 'DSLite' || commLink == 'Debugger') && window.ti != undefined) {
- fullPath = fullPath + ":" + window.ti.debug.cloudagent.dsPort;
- }
- this.rovData.setExecutable(fullPath, this);
- },
- introDashboardsClicked : function(event) {
- if (this.hasSavedDashboards()) {
- this.initDashboardsDialogList();
- var dialog = document.getElementById('introListDashboardsDialog');
- if (dialog) {
- dialog.name = 'Intro';
- dialog.style.left = rovUtils.leftPaneWidth + event.currentTarget.offsetLeft + 4 + 'px';
- dialog.style.top = 43 + event.currentTarget.offsetTop + event.currentTarget.clientHeight - 5 + 'px';
- dialog.style.width = event.currentTarget.clientWidth + 'px';
- dialog.open();
- var introDialog = document.getElementById('introDialog');
- dialog.style.zIndex = String(Number(introDialog.style.zIndex) + 1);
- this.$.introDashboardNamesMenu.selected = -1;
- }
- }
- else {
- this.openDashboardFileClicked();
- this.$.introDialog.close();
- }
- },
- introDialog : function () {
- var dialog = this.$.introDialog;
- if (dialog) {
- dialog.name = 'Intro';
- dialog.open();
- dialog.style.position = 'fixed';
- dialog.style.left = rovUtils.leftPaneWidth + 'px !important';
- dialog.style.top = '48px !important';
- this.introMessage = 'Welcome to Runtime Object View. To begin';
- this.introModulesMessage = 'click on a module';
- if (this.hasSavedDashboards() || this.ccs7) {
- this.introMessage += ', either';
- }
- else {
- this.introModulesMessage += ' in this list';
- this.$.introOr.hidden = true;
- this.$.introDashboardsButton.hidden = true;
- }
- }
- },
- introDialogClosed : function (e) {
- this.dialogClosed();
- this.rovInit.showIntro = !this.$.noIntroCheckbox.checked;
- rovUtils.setLocalStorageObject('rovInit-storage', this.rovInit);
- },
- isADragDropFile : function (e) {
- if (e.dataTransfer.types) {
- return (e.dataTransfer.types[0] == 'Files' ||
- e.dataTransfer.types[0] == 'public.file-url');
- }
- else if (e.dataTransfer.files) {
- return (e.dataTransfer.files.length == 1);
- }
- return (false);
- },
- isDiscoveredAddOn : function (path) {
- var lowerPath = this.parseAddOnPath(path).toLowerCase();
- for (var i = 0; i < this.discoveredAddOns.length; i++) {
- var lowerOther = this.parseAddOnPath(this.discoveredAddOns[i].path).toLowerCase();
- if (lowerOther == lowerPath) {
- return (true);
- }
- }
- return (false);
- },
- isDupAddOn : function (path) {
- var lowerPath = path.toLowerCase();
- for (var i = 0; i < this.otherViews.length; i++) {
- if (lowerPath == this.otherViews[i].path.toLowerCase()) {
- return (true);
- }
- }
- return (false);
- },
- isNarrow : function () {
- return (this.$.rovDrawerPanel.narrow);
- },
- isOverOpenButton : function (e) {
- return ((e.target.id == 'openDashboardButton' ||
- e.target.id == 'overflowOpenDashboardButton' ||
- (e.target.id == 'icon' && e.target.icon == 'dashboard')) &&
- this.isADragDropFile(e));
- },
- listDashboardsDialog : function(dlgName, event) {
- this.initDashboardsDialogList();
- var id = (dlgName == 'Save') ? 'listSavedDashboardsDialog' : 'listDashboardsDialog';
- var dialog = document.getElementById(id);
- if (dialog) {
- dialog.name = dlgName;
- if (dlgName == 'Save') {
- dialog.style.left = event.x + 'px';
- dialog.style.top = (event.y + 14) + 'px';
- }
- else if (dlgName == 'Open' || dlgName == 'Delete') {
- dialog.style.marginRight = '0px';
- dialog.style.marginLeft = '0px';
- if (event.currentTarget.id.indexOf('overflow') == 0) {
- dialog.style.left = '';
- dialog.style.right = '4px';
- dialog.style.top = (event.currentTarget.id.indexOf('overflow') == 0) ? (event.y - 4) + 'px' : '24px';
- }
- else {
- dialog.style.right = '';
- dialog.style.left = (event.x - 34) + 'px';
- dialog.style.top = '24px';
- }
- }
- dialog.open();
- if (dlgName == 'Save') {
- var saveDialog = document.getElementById('saveDashboardDialog');
- dialog.style.zIndex = String(Number(saveDialog.style.zIndex) + 1);
- this.$.listSavedDashboardsMenu.selected = -1;
- }
- else {
- dialog.style.zIndex = String(this.getMaxZindex() + 2);
- this.$.dashboardNamesMenu.selected = -1;
- }
- }
- },
- listDashboardsDialogClosed : function () {
- if (this.$.dashboardOverflowDialog.opened) {
- this.$.dashboardOverflowDialog.close();
- }
- },
- listItemWithSelectAllOptionClicked : function (e, selectAllCheckboxId, checkListId) {
- if (!e.currentTarget.checked) {
- if (this.$[selectAllCheckboxId].checked) {
- this.$[selectAllCheckboxId].checked = false;
- }
- }
- else {
- this.sanityCheckSelectAllBox(selectAllCheckboxId, checkListId);
- }
- this.$[checkListId].selected = -1;
- },
- loadAddOnClicked : function (e) {
- if (this.$.addOnErrorToast.opened) {
- this.$.addOnErrorToast.text = '';
- this.$.addOnErrorToast.close();
- }
- var path = this.parseAddOnPath(this.$.addOnInput.value);
- if (this.isDupAddOn(path)) {
- this.$.addOnErrorToast.text = path + ' has already been added';
- this.$.addOnErrorToast.fitInto = this.$.manageAddOnsDialog;
- this.$.addOnErrorToast.open();
- return;
- }
- this.addOnInputPath = this.$.addOnInput.value;
- this.importHref(path,
- function(e) {
- if (this.createAddOn(e, this.addOnInputPath)) {
- this.$.addOnInput.value = '';
- this.syncDiscoveredAddOnsList();
- this.sanityCheckSelectAllBox('selectAllCurrentAddOnsCheckbox',
- 'curAddOnsList');
- }
- },
- function(e){
- this.$.addOnErrorToast.text = 'Error importing ' + e.target.href;
- this.$.addOnErrorToast.fitInto = this.$.manageAddOnsDialog;
- this.$.addOnErrorToast.open();
- }
- );
- },
- loadMissingDashboardAddOn : function(dashboardAddOnView, showIt) {
- var path = this.parseAddOnPath(dashboardAddOnView.elemPath);
- this.addOnsHash[path] = dashboardAddOnView;
- this.importHref(path,
- function(e){
- var key = this.getAddOnHashKey(e.target.outerHTML);
- var dashboardItem = this.addOnsHash[key];
- var elem = document.createElement(dashboardItem.elemName);
- if (elem.viewName == undefined || elem.textContent.length == 0) {
- this.showStatus('Error creating ' + dashboardItem.viewName + ' element', 'error');
- Polymer.dom.flush();
- }
- else {
- var addOn = {};
- addOn.element = dashboardItem.elemName;
- addOn.path = dashboardItem.elemPath;
- addOn.root = dashboardItem.elemRoot;
- addOn.name = elem.viewName;
- addOn.href = e.target.href;
- if (showIt) {
- this.newDashboardRovView(dashboardItem);
- }
- var other = (this.otherViews.length > 0) ? rovUtils.shallowCopy(this.otherViews) : [];
- other.push(addOn);
- this.set('otherViews', other);
- this.enableOtherViews = true;
- var rovSettings = rovUtils.getLocalStorageObject('rovSettings-storage');
- rovSettings.otherViews = this.otherViews;
- rovUtils.setLocalStorageObject('rovSettings-storage', rovSettings);
- }
- },
- function(e){
- var dashboardItem = this.addOnsHash[this.getAddOnHashKey(e.target.outerHTML)];
- this.showStatus('Error importing ' + dashboardItem.viewName + ' at ' + e.target.href, 'error');
- }
- );
- },
- manageStorageKeyPress : function (e) {
- var keyCode = e.keyCode || e.which;
- if (keyCode === 13) {
- if (!this.$.clearViewStorageButton.disabled) {
- this.clearViewStorageClicked();
- }
- if (this.$.manageStorageDialog.opened) {
- this.$.manageStorageDialog.close();
- }
- }
- },
- makeModulesToc : function(modules) {
- var info = rovUtils.getPackagesInfo(modules);
- var modulesToc = [];
- /* Get all units and sort by name */
- var units = [];
- for (var i = 0; i < info.pkgNames.length; i++) {
- var pkg = info.pkgs[info.pkgNames[i]];
- for (var j = 0; j < pkg.units.length; j++) {
- pkg.units[j].qual = info.pkgNames[i];
- units.push(pkg.units[j]);
- }
- }
- units.sort(rovUtils.objNameCompare);
-
- var i = 0;
- while (i < units.length - 1) {
- if (units[i + 1].name == units[i].name) {
- var j = i + 1;
- var uSame = [units[i], units[j]];
- while (j < units.length - 1) {
- if (units[j + 1].name == units[j].name) {
- uSame.push(units[++j]);
- }
- else {
- ++j;
- break;
- }
- }
- uSame.sort(rovUtils.objQualCompare);
-
- var tocItem = {};
- tocItem.name = units[i].name;
- if (uSame.length) {
- tocItem.id = units[i].name;
- tocItem.hasDups = true;
- tocItem.expanded = false;
- tocItem.dups = [];
- for (k = 0; k < uSame.length; k++) {
- var dup = {};
- dup.name = uSame[k].qual;
- dup.id = uSame[k].qual + '.' + uSame[k].name;
- tocItem.dups.push(dup);
- }
-
- }
- else {
- tocItem.id = units[i].qual + '.' + units[i].name;
- }
- modulesToc.push(tocItem);
- i = j;
- continue;
- }
- else {
- var tocItem = {};
- tocItem.name = units[i].name;
- tocItem.id = units[i].qual + '.' + units[i].name;
- modulesToc.push(tocItem);
- }
- ++i;
- }
- if (i == units.length - 1 &&
- (i == 0 || (i > 0 && units[i].name != units[i - 1].name))) {
- var tocItem = {};
- tocItem.name = units[i].name;
- tocItem.id = units[i].qual + '.' + units[i].name;
- modulesToc.push(tocItem);
- }
- return (modulesToc);
- },
- modClicked : function(e) {
- if (this.$.introDialog.opened) {
- this.$.introDialog.close();
- }
- var viewsData = rovUtils.getLocalStorageObject('viewsData-storage');
- var moduleName = e.currentTarget.id;
- var viewName = null;
- var viewArgs = null;
- if (viewsData[moduleName]) {
- viewName = viewsData[moduleName].defaultViewName;
- viewArgs = viewsData[moduleName].viewArgs;
- }
- else if (this.viewList[moduleName]) {
- var viewTabs = rovUtils.getViewTabs(this.viewList, moduleName);
- viewName = viewTabs[0].name;
- }
- var elem = this.newModuleView(moduleName, viewName, false, viewArgs);
- elem.style.zIndex = String(this.getMaxZindex() + 1);
- var offset = this.getNewClickedViewPosition();
- if (offset.left > 0) {
- elem.style.left = offset.left + 'px';
- }
- if (offset.top > 0) {
- elem.style.top = offset.top + 'px';
- }
- var key = moduleName + '.' + viewName;
- if (viewsData[key] && viewsData[key].width) {
- elem.$.viewPaperCard.style.width = viewsData[key].width;
- elem.$.viewPaperCard.style.height = viewsData[key].height;
- elem.$.viewContentDiv.style.position = 'absolute';
- }
- },
- modContextMenu : function (e) {
- e.preventDefault();
- if (this.allModulesVisible) {
- var idx = this.favoriteModules.indexOf(e.currentTarget.id);
- this.favoriteMenuItem = idx == -1 ? 'Add to' : 'Remove from';
- }
- else {
- this.favoriteMenuItem = 'Remove from';
- }
- this.favoriteMenuItem += ' Favorite Modules';
- var dialog = this.$.modContextDialog;
- dialog.style.left = event.x + 'px';
- dialog.style.top = event.y + 'px';
- dialog.selectedMod = e.currentTarget.id;
- dialog.open();
- },
- modContextMenuItemClicked : function (e) {
- var selectedMod = this.$.modContextDialog.selectedMod;
- var menuItem = e.currentTarget.textContent;
- this.$.modContextDialog.close();
- if (menuItem.indexOf('Add') == 0) {
- this.addFavorite(selectedMod);
- }
- else {
- this.clearFavoriteConfirm(selectedMod);
- }
- },
- modulesViewItemSelected : function (e) {
- var sel = e.currentTarget.selectedItem.textContent.trim();
- this.$.selectModulesViewMenu.selected = -1;
- var dialog = this.$.selectModulesViewDialog;
- if (dialog) {
- dialog.close();
- }
- this.setCurModsList(sel);
- var rovSettings = rovUtils.getLocalStorageObject('rovSettings-storage');
- rovSettings.curModsLabel = sel;
- rovUtils.setLocalStorageObject('rovSettings-storage', rovSettings);
- },
- moduleViewsShowing : function () {
- var count = 0;
- for (var i = 0; i < this.rovModuleViews.length; i++) {
- var elem = this.getViewById(this.rovModuleViews[i].id);
- if (elem) {
- if (elem.viewIsShowing || elem.viewSelected) {
- ++count;
- }
- }
- else {
- console.error('Undefined view, id: ' + this.rovModuleViews[i].id);
- }
- }
- return (count);
- },
- mruClicked : function (e) {
- var dlgId = e.currentTarget.id.replace(/Button/, 'Dialog');
- var dialog = document.getElementById(dlgId);
- if (dialog) {
- dialog.open();
- dialog.style.left = (event.x + 4) + 'px';
- dialog.style.top = (event.y + 14) + 'px';
- }
- },
- mruSelected : function (e) {
- var pre = e.currentTarget.id.replace(/MruMenu/, '');
- var sel = e.currentTarget.selectedItem.textContent.trim();
- this.$[e.currentTarget.id].selected = -1;
- this.$[pre + 'MruDialog'].close();
- this.$[pre + 'Input'].value = sel;
- },
- multiDashboardFileLoaded : function (file, done, e) {
- var valid = false;
- var error = null;
- try {
- var dashboard = JSON.parse(e.target.result);
- if (rovUtils.isArray(dashboard) &&
- (dashboard[0].moduleName || dashboard[0].elemName)) {
- valid = true;
- var name = dashboard.pop();
- var savedDashboards = Object.keys(this.dashboards);
- if (savedDashboards.length > 0 && savedDashboards.indexOf(name) >= 0) {
- this.dashboardConflicts.push({name: name, dashboard: dashboard, file: file});
- }
- else {
- this.dashboards[name] = dashboard;
- rovUtils.setLocalStorageObject('dashboards-storage', this.dashboards);
- if (savedDashboards.length == 0) {
- this.enableOpenDashboardButton(true);
- this.$.deleteDashboardButton.disabled = false;
- }
- this.showStatus('Saved dashboard ' + name, 'info');
- }
- }
- }
- catch (e) {
- error = e;
- }
- if (!valid) {
- this.showStatus(file.name + ' is not a valid dashboard file', 'error');
- }
- if (error) {
- this.showStatus(error, 'error');
- }
- if (done && this.dashboardConflicts.length > 0) {
- this.resolveSaveDashboardsConflicts();
- }
- },
- newDashboardRovView : function (dashboardItem) {
- var view = this.newRovView(dashboardItem.elemName, dashboardItem.elemPath, dashboardItem.elemRoot);
- view.style.left = dashboardItem.left + 'px';
- view.style.top = dashboardItem.top + 'px';
- view.$.viewPaperCard.style.width = dashboardItem.width;
- view.$.viewPaperCard.style.height = dashboardItem.height;
- view.style.zIndex = dashboardItem.zIndex;
- },
- newModuleView : function(moduleName, viewName, dashboardViewsData, viewArgs) {
- var rovViews = [];
- if (this.rovModuleViews.length > 0) {
- for (var i = 0; i < this.rovModuleViews.length; i++) {
- rovViews.push(rovUtils.shallowCopy(this.rovModuleViews[i]));
- }
- }
- var newView = {};
- newView.id = this.getNewModuleViewId();
- rovViews.push(newView);
- this.rovModuleViews = rovViews;
-
- var view = document.createElement('ti-rov-view');
- view.setAttribute('id', newView.id);
- if (dashboardViewsData) {
- view.dashboardView = true;
- view.viewsData = dashboardViewsData;
- }
- if (viewArgs) {
- view.viewArgs = viewArgs;
- }
-
- /* this triggers moduleNameChanged() in ti-rov-view.js */
- view.moduleName = moduleName;
-
- Polymer.dom(this.$.contentDiv).appendChild(view);
- Polymer.dom.flush();
- if (viewName) {
- view.showView(viewName, false, false, true);
- }
- this.toolbarButtonsState();
- this.dashboardButtonsState();
- return (view);
- },
- newRovView : function(elemName, elemPath, elemRoot, toTop) {
- var rovViews = [];
- if (this.rovViews.length > 0) {
- for (var i = 0; i < this.rovViews.length; i++) {
- rovViews.push(rovUtils.shallowCopy(this.rovViews[i]));
- }
- }
- var newView = {};
- newView.id = this.getNewViewId();
- rovViews.push(newView);
- this.rovViews = rovViews;
-
- var elem = document.createElement(elemName);
- elem.setAttribute('id', newView.id);
- elem.name = elemName;
- elem.path = elemPath;
- elem.root = elemRoot;
-
- Polymer.dom(this.$.contentDiv).appendChild(elem);
- Polymer.dom.flush();
- this.toolbarButtonsState();
- this.dashboardButtonsState();
- if (toTop) {
- elem.style.zIndex = String(this.getMaxZindex() + 1);
- }
- return (elem);
- },
- onIronResize: function(e) { /* height only resize */
- if (!this.inited || this.panelWidth == this.$.rovDrawerPanel.offsetWidth) {
- return;
- }
- if (!this.$.rovDrawerPanel.narrow) {
- if (this.$.rovDrawerPanel.offsetWidth < 875 &&
- (this.$.rovDrawerPanel.offsetWidth < this.panelWidth || this.panelWidth == -1)) {
-
- this.toggleDrawerClicked();
- }
- else {
- this.toolbarResponseToResize(false);
- }
- }
- else {
- this.toolbarResponseToResize(true);
- }
- this.panelWidth = this.$.rovDrawerPanel.offsetWidth;
- },
- openDashboardClicked : function(e) {
- if (this.hasSavedDashboards()) {
- this.listDashboardsDialog('Open', e);
- }
- },
- openDashboardDrop : function (e) {
- this.dashboardButtonsState();
- if (this.isADragDropFile(e)) {
- e.preventDefault();
- var files = e.dataTransfer.files;
- if (files.length == 1) {
- var reader = new FileReader();
- reader.onload = this.dashboardFileLoaded.bind(this, files[0]);
- reader.readAsText(files[0]);
- }
- else {
- this.dashboardConflicts = [];
- for (var i = 0; i < files.length; i++) {
- var reader = new FileReader();
- reader.onload = this.multiDashboardFileLoaded.bind(this, files[i], i == (files.length - 1));
- reader.readAsText(files[i]);
- }
- }
- if (this.$.dashboardOverflowDialog.opened) {
- this.$.dashboardOverflowDialog.close();
- }
- }
- else {
- alert('Not a valid dashboard file');
- }
- },
- openDashboardFileClicked : function (e) {
- this.$.openDashboardFileInput.value = '';
- this.$.openDashboardFileInput.click();
- },
- openDashboardFileSelected : function (e) {
- var files = e.currentTarget.files;
- if (files.length == 1) {
- if (files[0].name.match(/\.rov\.json$/) != null) {
- var reader = new FileReader();
- reader.onload = this.dashboardFileLoaded.bind(this, files[0]);
- reader.readAsText(files[0]);
- }
- else {
- this.showStatus(files[0].name + ' is not a valid dashboard file', 'error');
- }
- this.$.openDashboardFileInput.value = '';
- }
- },
- otherViewsDialog : function(event) {
- var dialog = document.getElementById('otherViewsDialog');
- if (dialog) {
- this.set('dlgOtherViews', this.otherViews);
- /* 24 is the padding + 10 */
- dialog.style.left = (event.x - 34) + 'px';
- dialog.open();
- dialog.style.zIndex = String(this.getMaxZindex() + 1);
- if (this.$.otherViewsMenu.selected != undefined) {
- this.$.otherViewsMenu.selected = -1;
- }
- }
- },
- otherViewsDialogClosed : function(e) {
- this.set('dlgOtherViews', []);
- },
- otherViewSelected : function(e) {
- var elemName = e.detail.item.id;
- var elemInfo = this.getAddOnInfo(elemName, e.detail.item.title);
- var elem = this.newRovView(elemName, elemInfo.path, elemInfo.root, true);
- this.$.otherViewsMenu.selected = -1;
- var dialog = document.getElementById('otherViewsDialog');
- if (dialog) {
- dialog.close();
- }
- var offset = this.getNewClickedViewPosition();
- if (offset.left > 0) {
- elem.style.left = offset.left + 'px';
- }
- if (offset.top > 0) {
- elem.style.top = offset.top + 'px';
- }
- },
- otherViewsHaveElem : function (elemName) {
- for (var i = 0; i < this.otherViews.length; i++) {
- if (this.otherViews[i].element == elemName) {
- return (true);
- }
- }
- return (false);
- },
- overflowToolbarButtonClicked : function (e) {
- var dialogId = e.currentTarget.id.replace(/Button/, '');
- var dialog = this.$[dialogId];
- if (dialog.opened) {
- dialog.close();
- }
- else {
- dialog.open();
- dialog.style.zIndex = String(this.getMaxZindex() + 1);
- }
- },
- overwriteADashboardChecked : function (e) {
- if (!this.$.overwriteDashboardsDialog.opened) {
- return;
- }
- this.enableChecklistDialogActionButton(e, 'overwriteDashboardsList',
- 'overwriteDashboardsButton');
- },
- overwriteDashboardsClicked : function (e) {
- var listItems = this.$.overwriteDashboardsList.items;
- /* make list of checked and unchecked items */
- var checked = [];
- var unchecked = [];
- for (var i = 0; i < listItems.length; i++) {
- if (listItems[i].lastElementChild.checked) {
- checked.push(listItems[i].innerText.trim());
- listItems[i].lastElementChild.checked = false;
- }
- else {
- unchecked.push(listItems[i].innerText.trim());
- }
- }
- /* save all checked dashboards */
- for (var i = 0; i < this.dashboardConflicts.length; i++) {
- if (checked.indexOf(this.dashboardConflicts[i].name) >= 0) {
- this.saveDroppedDashboard(this.dashboardConflicts[i].name,
- this.dashboardConflicts[i].dashboard,
- false);
- }
- }
- if (unchecked.length > 0) { /* redisplay unchecked dashboards */
- unchecked.sort();
- this.set('overwriteDashboardsItems', unchecked);
- this.$.overwriteDashboardsButton.disabled = true;
- }
- else {
- this.$.overwriteDashboardsDialog.close();
- }
- },
- overwriteDashboardsKeyPress : function (e) {
- var keyCode = e.keyCode || e.which;
- if (keyCode === 13) {
- if (!this.$.overwriteDashboardsButton.disabled) {
- this.overwriteDashboardsClicked();
- }
- if (this.$.overwriteDashboardsDialog.opened) {
- this.$.overwriteDashboardsDialog.close();
- }
- }
- },
- parseAddOnPath : function (path) {
- /* If path does not end in '.html', assume it is either the
- * add on files directory, or the add on .html file with the
- * '.html' missing.
- */
- if (path) {
- if (path.search(/\.html$/) == -1) {
- path = path.replace(/\\/g,'/');
- if (path.search(/\/$/) > 0) {
- path = path.slice(0, -1);
- }
- /* Get the add on files directory from the path */
- if (path.indexOf('/') != -1) {
- var dirName = path.substr(path.lastIndexOf('/'));
- /* Also check if full name was entered w/o '.html' at the end */
- var checkStr = path.slice(0, dirName.length * -1);
- var rgex = new RegExp(dirName + '$');
- if (checkStr.search(rgex) == -1) {
- /* Is just the directory, append it before adding '.html' */
- path += dirName;
- }
- }
- else {
- path = path + '/' + path;
- }
- path += '.html';
- }
- path = path.replace(/([^:])\/\/+/g, '$1/'); /* clean any dup '/' */
- }
- return (path);
- },
- parseDiscoveredAddOn : function (addOn) {
- var parsed = addOn.replace(/\\/g,'/').replace(/\.html$/, '');
- return (parsed.substr(parsed.lastIndexOf('/') + 1));
- },
- populateDiscoveredAddOns : function () {
- var addOns = [];
- for (var i = 0; i < this.discoveredAddOns.length; i++) {
- if (!this.isDupAddOn(this.discoveredAddOns[i].path)) {
- addOns.push(this.discoveredAddOns[i]);
- }
- }
- this.set('dlgDiscoveredAddOns', addOns);
- this.$.discoveredAddOnsTemplate.render();
- },
- queryViewSearchModules : function(module, searchArr) {
- /* First, search for exact match */
- var foundArr = [];
- if (searchArr.indexOf(module) >= 0) {
- foundArr.push({module : module});
- }
- else {
- /* If not found, try case insensitive and suffixes */
- var exp = RegExp(module + '$', 'i');
- var exp2 = RegExp(module, 'i');
- for (var i = 0; i < searchArr.length; i++) {
- if (searchArr[i].search(exp) >= 0) {
- foundArr.push({module : searchArr[i]});
- }
- else if (searchArr[i].search(exp2) >= 0) {
- foundArr.push({module : searchArr[i]});
- }
- }
- }
- return (foundArr);
- },
- rediscoverAddOnsClicked : function (e) {
- this.discoverAddOns();
- },
- refreshAllClicked : function() {
- for (var i = 0; i < this.rovModuleViews.length; i++) {
- var elem = this.getViewById(this.rovModuleViews[i].id);
- if (elem.viewName) {
- elem.showView(elem.viewName, true, false);
- }
- }
- /* Notify any other views */
- for (var i = 0; i < this.rovViews.length; i++) {
- var view = this.getViewById(this.rovViews[i].id);
- if (view && view.onRefresh) {
- view.onRefresh();
- }
- }
- },
- removeAddOnClicked : function (e) {
- var otherViews = [];
- var listItems = this.$.curAddOnsList.items;
- for (var i = 0; i < listItems.length; i++) {
- if (!listItems[i].lastElementChild.checked) {
- for (var j = 0; j < this.otherViews.length; j++) {
- if (this.otherViews[j].path == listItems[i].firstElementChild.title) {
- otherViews.push(this.otherViews[j]);
- break;
- }
- }
- }
- else {
- listItems[i].lastElementChild.checked = false;
- }
- }
- this.set('otherViews', otherViews);
- this.set('dlgOtherViews', otherViews);
- this.syncDiscoveredAddOnsList();
- this.$.removeAddOnButton.disabled = true;
- this.$.selectAllCurrentAddOnsCheckbox.checked = false;
- this.$.selectAllCurrentAddOnsCheckbox.disabled = (this.dlgOtherViews.length == 0);
- this.$.curAddOnsList.selected = -1;
- this.enableOtherViews = this.otherViews.length > 0;
- var rovSettings = rovUtils.getLocalStorageObject('rovSettings-storage');
- rovSettings.otherViews = this.otherViews;
- rovUtils.setLocalStorageObject('rovSettings-storage', rovSettings);
- },
- repeatRefreshAll: function () {
- if (this.repeatHandle != 0) {
- if (this.dataViewsShowing() > 0) {
- this.refreshAllClicked();
- this.repeatHandle = this.async(this.repeatRefreshAll, this.refreshInterval);
- }
- else {
- this.repeatHandle = 0;
- this.stopRepeatRefresh(true);
- this.toolbarButtonsState();
- }
- }
- },
- repeatRefreshClicked : function () {
- this.inRepeatRefresh = true;
- this.$.refreshAllButton.disabled = true;
- this.$.overflowRefreshAllButton.disabled = true;
- if (this.repeatHandle == 0) {
- this.refreshAllClicked();
- this.repeatHandle = this.async(this.repeatRefreshAll, this.refreshInterval);
- }
- },
- resolveSaveDashboardsConflicts : function() {
- if (this.dashboardConflicts.length == 1) {
- this.confirmDialog('Overwite dashboard',
- 'Overwite ' + this.dashboardConflicts[0].name + ' ?',
- 'dashboardConflict',
- {name: this.dashboardConflicts[0].name,
- dashboard: this.dashboardConflicts[0].dashboard,
- show: false});
- }
- else {
- this.dashboardConflictsDialog();
- }
- },
- rovOptionsClicked : function(e) {
- var dialog = this.$.rovOptionsMenuDialog;
- if (dialog) {
- dialog.open();
- dialog.style.zIndex = String(this.getMaxZindex() + 1);
-
- /* set disabled state of storage options button */
-// this.$.storageOptionsDialog.disabled = !this.hasViewsStorage();
-
- /* show/disable connect dialog at startup */
- this.$.showConnectDialogCheckbox.checked = !this.rovInit.autoConnect;
- }
- },
- rovOptionsItemSelected : function (e) {
- var selected = e.currentTarget.selectedItem.id;
- this.$.rovOptionsMenu.selected = -1;
- this.$.rovOptionsMenuDialog.close();
- if (selected != 'showConnectDialogItem') {
- this[selected](e); /* id of the item is the function name */
- }
- },
- sanityCheckAddOns : function () {
- if (this.otherViews.length) {
- var others = [];
- var errFound = false;
- for (var i = 0; i < this.otherViews.length; i++) {
- if (this.otherViews[i].href != 'error') {
- others.push(this.otherViews[i]);
- }
- else if (!errFound) {
- errFound = true;
- }
- }
- if (errFound) {
- this.otherViews = rovUtils.shallowCopy(others);
- var rovSettings = rovUtils.getLocalStorageObject('rovSettings-storage');
- rovSettings.otherViews = this.otherViews;
- rovUtils.setLocalStorageObject('rovSettings-storage', rovSettings);
- }
- }
- },
- sanityCheckSelectAllBox : function (selectAllCheckboxId, checkListId) {
- var allChecked = true;
- var listItems = this.$[checkListId].items;
- for (var i = 0; i < listItems.length; i++) {
- if (!listItems[i].lastElementChild.checked) {
- allChecked = false;
- break;
- }
- }
- this.$[selectAllCheckboxId].checked = allChecked && listItems.length > 0;
- this.$[selectAllCheckboxId].disabled = (listItems.length == 0);
- },
- saveAddOnMru : function (addOnPath) {
- if (!this.isDiscoveredAddOn(addOnPath)) {
- this.saveMru(addOnPath, this.addOnMrus.indexOf(addOnPath), 'addOnMrus',
- rovUtils.shallowCopy(this.addOnMrus));
- }
- },
- saveAllViews : function (e) {
- var textToWrite = '';
- for (var i = 0; i < this.rovModuleViews.length; i++) {
- var elem = this.getViewById(this.rovModuleViews[i].id);
- if (elem.viewName) {
- textToWrite += this.getViewSaveData(elem) + '\n\n';
- }
- }
- /* Notify any other views */
- for (var i = 0; i < this.rovViews.length; i++) {
- var elem = this.getViewById(this.rovViews[i].id);
- if (elem && elem.onSaveView) {
- textToWrite += this.getViewSaveData(elem) + '\n\n';
- }
- }
- var fileNameToSaveAs = this.currentDashboard != '' ? this.currentDashboard : 'currentViews';
- fileNameToSaveAs = fileNameToSaveAs.replace(/ /g,'_') + '.rod.json';
- rovUtils.downloadText(textToWrite, fileNameToSaveAs);
- },
- saveCommLinkMru : function (commLink) {
- if (this.ccs7) {
- this.commLinkMrus.shift(); /* remove 'Debugger' from top */
- }
- var lwrCommLink = commLink.toLowerCase();
- var index = -1;
- for (var i = 0; i < this.commLinkMrus.length; i++) {
- if (this.commLinkMrus[i].toLowerCase() == lwrCommLink) {
- index = i;
- break;
- }
- }
- this.saveMru(commLink, index, 'commLinkMrus', rovUtils.shallowCopy(this.commLinkMrus));
- },
- saveDashboardClicked : function(e) {
- if (this.$.dashboardOverflowDialog.opened) {
- this.$.dashboardOverflowDialog.close();
- }
- var dialog = document.getElementById('saveDashboardDialog');
- if (dialog) {
- dialog.addEventListener('iron-overlay-closed', function() {
- var reason = this.closingReason;
- return (false);
- });
- dialog.open();
- dialog.style.zIndex = String(this.getMaxZindex() + 1);
- this.$.saveDashboardInput.value = this.currentDashboard;
- if (this.currentDashboard != '' && this.dashboards[this.currentDashboard][0].comment) {
- this.$.saveDashboardComment.value = this.dashboards[this.currentDashboard][0].comment;
- }
- else {
- this.$.saveDashboardComment.value = '';
- }
- this.$.showSavedDashboardsButton.disabled = !this.hasSavedDashboards();
- this.$.exportDashboardCheckbox.checked = false;
- }
- },
- saveDashboardKeyPress : function (e) {
- var keyCode = e.keyCode || e.which;
- if (keyCode === 13 && this.$.saveDashboardInput.value != '') {
- this.saveDashboardOkClicked(e);
- }
- },
- saveDashboardOkClicked : function (e) {
- var dashName = this.$.saveDashboardInput.value;
- if (dashName.length) {
- this.$.saveDashboardInput.value = '';
- var dashComment = this.$.saveDashboardComment.value;
- this.$.saveDashboardComment.value = '';
- var exportChecked = this.$.exportDashboardCheckbox.checked;
- this.$.saveDashboardDialog.close();
- var dashArr = [];
- for (var i = 0; i < this.rovModuleViews.length; i++) {
- var elem = this.getViewById(this.rovModuleViews[i].id);
- elem.setDashboardView(true);
- var elemObj = {};
- elemObj.id = elem.id;
- elemObj.moduleName = elem.moduleName;
- elemObj.viewName = elem.viewName;
- elemObj.viewsData = {};
- if (elem.viewName) {
- elemObj.viewsData[elem.moduleName + '.' + elem.viewName] =
- elem.getViewsData()[elem.moduleName + '.' + elem.viewName];
- }
- if (elem.viewArgs) {
- elemObj.viewArgs = elem.viewArgs;
- }
- elemObj.left = elem.offsetLeft;
- elemObj.top = elem.offsetTop;
- elemObj.width = elem.$.viewPaperCard.offsetWidth;
- elemObj.height = elem.$.viewPaperCard.offsetHeight;
- elemObj.zIndex = elem.style.zIndex;
- elemObj.dashboardVersion = this.dashboardVersion;
- dashArr.push(elemObj);
- /* If any changes are made to the fields here, make sure to change */
- /* the dashboard version property!!!!!!!!! */
- }
- for (var i = 0; i < this.rovViews.length; i++) {
- var elem = this.getViewById(this.rovViews[i].id);
- var elemObj = {};
- elemObj.elemName = elem.name;
- elemObj.elemPath = elem.path;
- elemObj.elemRoot = elem.root;
- elemObj.id = elem.id;
- elemObj.viewName = elem.viewName;
- elemObj.left = elem.offsetLeft;
- elemObj.top = elem.offsetTop;
- elemObj.width = elem.$.viewPaperCard.style.width;
- elemObj.height = elem.$.viewPaperCard.style.height;
- elemObj.zIndex = elem.style.zIndex;
- elemObj.dashboardVersion = this.dashboardVersion;
- dashArr.push(elemObj);
- /* If any changes are made to the fields here, make sure to change */
- /* the dashboard version property!!!!!!!!! */
- }
- dashArr[0].comment = dashComment;
- this.dashboards[dashName] = dashArr;
- this.setCurrentDashboard(dashName);
- rovUtils.setLocalStorageObject('dashboards-storage', this.dashboards);
- if (exportChecked) {
- this.exportDashboard(dashName, dashArr);
- }
- this.dashboardButtonsState();
- }
- },
- saveDataOptionsOkClicked: function(e) {
- this.$.repeatRefreshInputInvalid.hidden = true;
- this.$.dataTimeoutInputInvalid.hidden = true;
- var invalidInterval = false;
- var invalidDataTimeout = false;
- var invalidConnectTimeout = false;
- var interval = this.$.repeatRefreshInput.value;
- var dataTimeout = this.$.dataTimeoutInput.value;
- var connectTimeout = this.$.connectTimeoutInput.value;
- if (!interval.match(/^[1-9][0-9]*$/)) {
- invalidInterval = true;
- this.$.repeatRefreshInputInvalid.hidden = false;
- }
- if (!dataTimeout.match(/^[1-9][0-9]*$/)) {
- invalidDataTimeout = true;
- this.$.dataTimeoutInputInvalid.hidden = false;
- }
- if (!connectTimeout.match(/^[1-9][0-9]*$/)) {
- invalidConnectTimeout = true;
- this.$.connectTimeoutInputInvalid.hidden = false;
- }
- if (!invalidInterval && !invalidDataTimeout && !invalidConnectTimeout) {
- this.refreshInterval = Number(interval);
- this.dataTimeoutPeriod = Number(dataTimeout);
- this.connectTimeoutPeriod = Number(connectTimeout);
- this.rovData.setRequestTimeout(dataTimeout);
- this.rovData.setConnectTimeout(connectTimeout);
- var rovSettings = rovUtils.getLocalStorageObject('rovSettings-storage');
- rovSettings.refreshInterval = this.refreshInterval;
- rovSettings.dataTimeoutPeriod = this.dataTimeoutPeriod;
- rovSettings.connectTimeoutPeriod = this.connectTimeoutPeriod;
- rovUtils.setLocalStorageObject('rovSettings-storage', rovSettings);
- this.$.dataOptionsDialog.close();
- }
- },
- saveDroppedDashboard : function (name, dashboard, show) {
- this.dashboards[name] = dashboard;
- rovUtils.setLocalStorageObject('dashboards-storage', this.dashboards);
- if (show) {
- this.showDashboard(dashboard, name);
- }
- else {
- this.dashboardButtonsState();
- }
- this.showStatus('Saved dashboard: ' + name, 'info');
- },
- saveExeMru : function (exe) {
- if (this.ccs7) {
- this.exeMrus.shift(); /* remove 'use current program' from top */
- }
- exe = exe.replace(/\\/g, '/');
- var lwrExe = exe.toLowerCase();
- var index = -1;
- for (var i = 0; i < this.exeMrus.length; i++) {
- if (this.exeMrus[i].toLowerCase() == lwrExe) {
- index = i;
- break;
- }
- }
- this.saveMru(exe, index, 'exeMrus', rovUtils.shallowCopy(this.exeMrus));
- },
- saveMru : function (mru, mruIndex, mrusProp, mrusArr) {
- if (mruIndex > 0) {
- mrusArr.splice(mruIndex, 1);
- mrusArr.unshift(mru);
- }
- else if (mruIndex < 0) {
- mrusArr.unshift(mru);
- }
- if (mrusArr.length > 8) {
- while (mrusArr.length > 8) {
- mrusArr.pop();
- }
- }
- this.set(mrusProp, mrusArr);
- var rovSettings = rovUtils.getLocalStorageObject('rovSettings-storage');
- rovSettings[mrusProp] = this[mrusProp];
- rovUtils.setLocalStorageObject('rovSettings-storage', rovSettings);
- },
- selectAllClicked : function (e, checklistId, actionButtonId) {
- var listItems = this.$[checklistId].items;
- for (var i = 0; i < listItems.length; i++) {
- if (!listItems[i].lastElementChild.disabled) {
- listItems[i].lastElementChild.checked = e.currentTarget.checked;
- }
- }
- if (actionButtonId) {
- this.$[actionButtonId].disabled = !e.currentTarget.checked;
- }
- },
- selectAllCurrentAddOnsClicked : function (e) {
- if (!this.$.manageAddOnsDialog.opened) {
- return;
- }
- this.selectAllClicked(e, 'curAddOnsList', 'removeAddOnButton');
- },
- selectAllDiscoveredAddOnsClicked : function (e) {
- if (!this.$.manageAddOnsDialog.opened) {
- return;
- }
- this.selectAllClicked(e, 'discoveredAddOnsList', 'addDiscoveredAddOnButton');
- },
- selectAllExportDashboardsClicked : function (e) {
- if (!this.$.exportDashboardsDialog.opened) {
- return;
- }
- this.selectAllClicked(e, 'exportDashboardsList');
- this.$.exportDashboardsButton.disabled = !e.currentTarget.checked ||
- this.$.exportDashboardsInput.value == '';
- },
- selectAllViewStorageClicked : function(e) {
- if (!this.$.manageStorageDialog.opened) {
- return;
- }
- this.selectAllClicked(e, 'viewsStorageList', 'clearViewStorageButton');
- },
- selectModulesViewDialogClicked : function (e) {
- if (this.allModules.length > 0) {
- var dialog = this.$.selectModulesViewDialog;
- if (dialog) {
- dialog.style.left = (e.x) + 'px';
- dialog.open();
- this.$.selectModulesViewMenu.selected = -1;
- }
- }
- },
- setCurModsList : function (label) {
- if (label != 'Favorite Modules') {
- this.set('showFilterButtonRight', true);
- this.set('showFilterButtonLeft', false);
- this.set('allModulesVisible', true);
- this.set('curModsLabel', label);
- if (label == 'Viewable Modules') {
- this.set('otherModsLabels', ['All Modules', 'Favorite Modules']);
- var curModules = this.viewableModules;
- }
- else {
- this.set('otherModsLabels', ['Favorite Modules', 'Viewable Modules']);
- var curModules = this.allModules;
- }
- this.set('curTocModules', curModules);
- this.set('tocItems', this.makeModulesToc(curModules));
- }
- else {
- this.set('allModulesVisible', false);
- if (this.favoriteModules.length > 0 && this.favoriteTocItems.length == 0) {
- this.set('favoriteTocItems', this.makeModulesToc(this.favoriteModules));
- }
- this.set('curModsLabel', label);
- this.set('otherModsLabels', ['All Modules', 'Viewable Modules']);
- }
- if (this.allModulesVisible && this.filterValue!= '') {
- this.filterModules(this.filterValue);
- }
- },
- setCurrentDashboard : function (name) {
- this.currentDashboard = name;
- if (name == '') {
- this.$.currentDashboardDiv.title = '';
- }
- else {
- this.$.currentDashboardDiv.title = this.dashboards[name][0].comment ?
- this.dashboards[name][0].comment :
- 'Current dashboard';
- }
- },
- setExecutableCallback : function (resObj) {
- var res = resObj.resStr;
- if (res != 'OK') {
- if (this.$.connectDialog.hidden == false) {
- this.$.connectButton.disabled = false;
- this.connectMessage = res;
- this.$.connectErrorIcon.hidden = false;
- this.$.connectMessageDiv.hidden = false;
- this.$.connectProgress.hidden = true;
- }
- else if (this.$.autoConnectProgressDialog.opened) {
- this.$.autoConnectProgressDialog.close();
- if (this.rovInit.autoConnect) {
- this.rovInit.autoConnect = false;
- rovUtils.setLocalStorageObject('rovInit-storage', this.rovInit);
- }
- this.showConnectDialog(res);
- }
- else {
- this.showStatus(res, 'error');
- }
- return;
- }
- if (this.$.connectDialog.hidden == false) {
- this.rovInit.exe = this.$.exeInput.value;
- this.rovInit.commLink = this.$.commLinkInput.value;
- this.rovInit.autoConnect = this.$.autoConnectCheckbox.checked;
- this.rovInit.noExe = this.$.exeInput.value == this.useCurrentProgram;
- this.averageIntroProgess();
- rovUtils.setLocalStorageObject('rovInit-storage', this.rovInit);
- this.$.connectDialog.hidden = true;
- this.$.connectDialog.style.display = 'none';
- }
- else if (this.$.autoConnectProgressDialog.opened) {
- this.averageIntroProgess();
- rovUtils.setLocalStorageObject('rovInit-storage', this.rovInit);
- this.$.autoConnectProgressDialog.close();
- }
- if (this.exeName == '' && resObj.exeName.length > 0) {
- var exe = resObj.exeName.replace(/\\/g, '/');
- this.$.rovTitleToolbar.title = exe;
- this.exeName = exe.substr(exe.lastIndexOf('/') + 1);
- }
- else {
- this.$.rovTitleToolbar.title = this.rovInit.exe;
- }
- document.title = "ROV: " + this.exeName;
- if (resObj.coreName && resObj.coreName.length > 0) {
- document.title += ' - ' + resObj.coreName;
- this.$.rovTitleToolbar.title += ' - ' + resObj.coreName;
- }
- if (window.rov_setTitle) {
- window.rov_setTitle(document.title);
- }
-
- /* Enable toolbars */
- this.$.toggleDrawerBtn.disabled = false;
- this.$.rovOptionsButton.disabled = false;
- this.$.dashboardOverflowDialogButton.disabled = false;
- this.$.openDashboardButton.disabled = false;
- this.$.overflowOpenDashboardButton.disabled = false;
- this.panelWidth = this.$.rovDrawerPanel.offsetWidth;
- this.toolbarResponseToResize(false);
- this.dashboardButtonsState();
- this.toolbarButtonsState();
- this.sanityCheckAddOns();
- if (!this.ccs7 || !this.rovInit.noExe) {
- this.saveExeMru(this.rovInit.exe);
- }
- else if (exe) {
- this.saveExeMru(exe);
- }
- if (this.rovInit.commLink != 'Debugger') {
- this.saveCommLinkMru(this.rovInit.commLink);
- }
- this.rovData.getViewList(this);
- this.inited = true;
- },
- setExecutableProgressCallback : function (res) {
- if (this.$.connectDialog.hidden == false && this.$.connectProgress.hidden == false) {
- this.$.connectProgress.value += this.rovInit.progressInfo.step;
- ++this.rovInit.progressInfo.notifyCount;
- }
- else if (this.$.connectDialog.hidden == true && this.rovInit.autoConnect) {
- this.$.autoConnectProgress.value += this.rovInit.progressInfo.step;
- ++this.rovInit.progressInfo.notifyCount;
- }
- this.connectMessage = res;
- },
- setRovSettings : function(rovSettings) {
- this.set('rovSettings', rovSettings);
- if (this.rovSettings.refreshInterval) {
- this.refreshInterval = this.rovSettings.refreshInterval;
- }
- if (this.rovSettings.dataTimeoutPeriod) {
- this.dataTimeoutPeriod = this.rovSettings.dataTimeoutPeriod;
- this.rovData.setRequestTimeout(this.dataTimeoutPeriod);
- }
- if (this.rovSettings.connectTimeoutPeriod) {
- this.connectTimeoutPeriod = this.rovSettings.connectTimeoutPeriod;
- this.rovData.setConnectTimeout(this.connectTimeoutPeriod);
- }
- if (this.rovSettings.curModsLabel) {
- this.curModsLabel = this.rovSettings.curModsLabel;
- if (this.curModsLabel == 'All Modules' || this.curModsLabel == 'Viewable Modules') {
- this.set('allModulesVisible', true);
- this.set('showFilterButtonRight', true);
- this.set('showFilterButtonLeft', false);
- }
- }
- if (this.rovSettings.otherViews) {
- this.otherViews = rovUtils.shallowCopy(this.rovSettings.otherViews);
- for (var i = 0; i < this.otherViews.length; i++) {
- var path = this.parseAddOnPath(this.otherViews[i].path);
- this.addOnsHash[path] = this.otherViews[i];
- this.importHref(path,
- function(e){
- var key = this.getAddOnHashKey(e.target.outerHTML);
- var importedElem = this.getImportedAddOnId(e.target.import.activeElement);
- if (this.addOnsHash[key].element == importedElem) {
- this.addOnsHash[key].href = e.target.href;
- }
- else {
- this.addOnsHash[key].href = 'error';
- this.showStatus('Error importing <' + this.addOnsHash[key].element + '> at ' + e.target.href, 'error');
- this.showStatus('Element mismatch <' + this.addOnsHash[key].element + '> vs <' + importedElem + '>');
- }
- },
- function(e){
- var key = this.getAddOnHashKey(e.target.outerHTML);
- this.addOnsHash[key].href = 'error';
- this.showStatus('Error importing ' + e.target.href, 'error');
- }
- );
- }
- }
- if (this.rovSettings.addOnMrus) {
- this.addOnMrus = rovUtils.shallowCopy(this.rovSettings.addOnMrus);
- }
- if (this.rovSettings.exeMrus) {
- this.exeMrus = rovUtils.shallowCopy(this.rovSettings.exeMrus);
- }
- if (this.rovSettings.commLinkMrus) {
- this.commLinkMrus = rovUtils.shallowCopy(this.rovSettings.commLinkMrus);
- }
- },
- showAddOnInput : function (show) {
- this.$.manageAddOnsDialog.style.height = show ? '270px' : '240px';
- this.$.showAddOnInput.disabled = show;
- this.$.hideAddOnInput.hidden =
- this.$.addOnMruButton.hidden =
- this.$.addOnInput.hidden =
- this.$.loadAddOnButton.hidden = !show;
- this.$.closeManageAddOnsDialogButton.style.marginTop = show ? '10px' : '0px';
- if (show) {
- this.$.addOnInput.focus();
- }
- },
- showAddOnInputClicked : function (e) {
- var show = e.currentTarget.id.indexOf('show') != -1;
- this.showAddOnInput(show);
- },
- showConnectDialog : function (autoConnectError) {
- this.$.connectMessageDiv.hidden = true;
- this.$.commLinkInputInvalid.hidden = true;
- this.$.exeInputInvalid.hidden = true;
- if (this.rovInit.exe) {
- this.$.exeInput.value = this.rovInit.exe;
- }
- else if (this.ccs7) {
- this.$.exeInput.value = this.useCurrentProgram;
- }
- if (this.rovInit.commLink) {
- this.$.commLinkInput.value = this.rovInit.commLink;
- }
- else if (this.ccs7) {
- this.$.commLinkInput.value = 'Debugger';
- }
- if (this.ccs7) {
- var exeMrus = [this.useCurrentProgram];
- for (var i = 0; i < this.exeMrus.length; i++) {
- exeMrus.push(this.exeMrus[i]);
- }
- this.set('exeMrus', exeMrus);
-
- var commLinkMrus = ['Debugger'];
- for (i = 0; i < this.commLinkMrus.length; i++) {
- if (this.commLinkMrus[i] != 'Debugger') {
- commLinkMrus.push(this.commLinkMrus[i]);
- }
- }
- this.set('commLinkMrus', commLinkMrus);
- }
- this.$.autoConnectCheckbox.checked = (this.rovInit.autoConnectChecked) == true ? true : false;
- if (!this.rovInit.progressInfo) {
- this.rovInit.progressInfo = {};
- this.rovInit.progressInfo.min = 0;
- this.rovInit.progressInfo.max = 10;
- this.rovInit.progressInfo.step = 1;
- }
- this.$.connectProgress.min = this.rovInit.progressInfo.min;
- this.$.connectProgress.max = this.rovInit.progressInfo.max;
- this.$.connectProgress.step = this.rovInit.progressInfo.step;
- this.$.connectProgress.value = 0;
- this.$.connectButton.disabled = false;
- if (autoConnectError) {
- this.connectMessage = autoConnectError;
- this.$.connectErrorIcon.hidden = false;
- this.$.connectMessageDiv.hidden = false;
- this.$.connectProgress.hidden = true;
- }
- this.$.connectDialog.hidden = false;
- this.$.connectDialog.style.display = 'inline-block';
- },
- showConnectDialogChecked : function (e) {
- this.$.rovOptionsMenu.selected = -1;
- this.rovInit.autoConnect = !e.currentTarget.checked;
- rovUtils.setLocalStorageObject('rovInit-storage', this.rovInit);
- },
- showDashboard : function (dashboard, dashName) {
- if (dashboard.length > 0 &&
- (!dashboard[0].dashboardVersion ||
- dashboard[0].dashboardVersion != this.dashboardVersion)) {
- this.showStatus('Incompatible dashboard', 'warning');
- }
- this.closeAllViews();
- this.setCurrentDashboard(dashName);
- for (var i = 0; i < dashboard.length; i++) {
- if (dashboard[i].moduleName) {
- if (this.allModules.indexOf(dashboard[i].moduleName) >= 0) {
- var view = this.newModuleView(dashboard[i].moduleName, dashboard[i].viewName,
- dashboard[i].viewsData, dashboard[i].viewArgs);
- view.style.left = dashboard[i].left + 'px';
- view.style.top = dashboard[i].top + 'px';
- view.$.viewContentDiv.style.position = 'absolute';
- view.$.viewPaperCard.style.width = dashboard[i].width + 'px';
- view.$.viewPaperCard.style.height = dashboard[i].height + 'px';
- view.style.zIndex = dashboard[i].zIndex;
- }
- else {
- this.showStatus('Module ' + dashboard[i].moduleName + ' is not present in ' + document.title, 'warning');
- }
- }
- else if (dashboard[i].elemName) { /* is otherView */
- if (!this.otherViewsHaveElem(dashboard[i].elemName)) {
- this.loadMissingDashboardAddOn(dashboard[i], true);
- }
- else {
- this.newDashboardRovView(dashboard[i]); }
- }
- }
- },
- showSavedDashboardsClicked : function (event) {
- this.listDashboardsDialog('Save', event);
- },
- showStatus : function (message, type) {
- var statusItems = [];
- if (this.statusItems.length > 0) {
- statusItems = rovUtils.shallowCopy(this.statusItems);
- }
- var statusItem = {};
- if (!type) {
- statusItem.iconHidden = true;
- statusItem.style = 'margin-left:33px';
- }
- else {
- statusItem.style = '';
- statusItem.iconHidden = false;
- if (type == 'warning') {
- statusItem.icon = 'warning';
- statusItem.iconStyle = 'color:goldenrod;--iron-icon-stroke-color:black';
- statusItem.iconClass = 'consoleWarningIcon';
- }
- else if (type == 'error') {
- statusItem.icon = 'error';
- statusItem.iconStyle = 'color:red';
- statusItem.iconClass = 'consoleErrorIcon';
- }
- else if (type == 'info') {
- statusItem.icon = 'info-outline';
- statusItem.iconStyle = 'color:blue';
- statusItem.iconClass = 'consoleStatusIcon';
- }
- }
- statusItem.message = message;
- statusItems.push(statusItem);
- var fontInfo = tiRovStyles.rovContentFontSize + 'pt ' + 'Open Sans';
- var consoleWidth = 0;
- for (var i = 0; i < statusItems.length; i++) {
- var width = rovUtils.getStringWidth(statusItems[i].message, fontInfo);
- if (width > consoleWidth) {
- consoleWidth = width;
- }
- }
- consoleWidth += 24;
- var maxWidth = this.isNarrow() ? document.documentElement.clientWidth : (document.documentElement.clientWidth - rovUtils.leftPaneWidth);
- if (consoleWidth >= maxWidth) {
- consoleWidth = maxWidth - 2;
- }
- this.$.statusConsole.style.width = String(consoleWidth) + 'px';
- if (statusItems.length > 10) {
- if (this.$.statusConsole.style.overflowY != 'auto') {
- this.$.statusConsole.style.overflowY = 'auto';
- }
- this.$.statusConsole.style.height = String(11 * 24) + 'px';
- }
- this.set('statusItems', statusItems);
- this.$.statusConsole.hidden = false;
- },
- snapCorner : function (event, id, xOffset, yOffset, elem, top, left, right, bottom, allViews) {
- var cornerFound = false;
- for (var i = 0; i < allViews.length; i++) {
- if (allViews[i].id != id) {
- var siblingElem = this.getViewById(allViews[i].id);
- if (siblingElem.style.top == '') {
- var siblingTop = siblingElem.clientTop;
- var siblingLeft = siblingElem.clientLeft;
- }
- else {
- var siblingTop = Number(siblingElem.style.top.replace(/px/, ''));
- var siblingLeft = Number(siblingElem.style.left.replace(/px/, ''));
- }
- var siblingRight = siblingLeft + siblingElem.clientWidth;
- var siblingBottom = siblingTop + siblingElem.clientHeight;
- if (left > siblingRight - 20 && left < siblingRight + 20) { /* elem left edge at sibling right edge */
- if (top > siblingTop - 20 && top < siblingTop + 20) { /* elem top left -> sibling top right */
- top = siblingTop;
- left = siblingLeft + siblingElem.clientWidth + 1;
- cornerFound = true;
- }
- else if (top > siblingBottom - 20 && top < siblingBottom + 20) { /* elem top left -> sibling bottom right */
- top = siblingBottom - 8;
- left = siblingLeft + siblingElem.clientWidth + 1;
- cornerFound = true;
- }
- else if (bottom > siblingTop - 20 && bottom < siblingTop + 20) { /* elem bottom left -> sibling top right */
- top = siblingTop - elem.clientHeight + 7;
- left = siblingLeft + siblingElem.clientWidth + 1;
- cornerFound = true;
- }
- else if (bottom > siblingBottom - 20 && bottom < siblingBottom + 20) { /* elem bottom left -> sibling bottom right */
- top = siblingBottom - elem.clientHeight;
- left = siblingLeft + siblingElem.clientWidth + 1;
- cornerFound = true;
- }
- }
- else if (right > siblingLeft - 20 && right < siblingLeft + 20) { /* elem right edge at sibling left edge */
- if (top > siblingTop - 20 && top < siblingTop + 20) { /* elem top right -> sibling top left */
- top = siblingTop;
- left = siblingLeft - elem.clientWidth - 1;
- cornerFound = true;
- }
- else if (top > siblingBottom - 20 && top < siblingBottom + 20) { /* elem top right -> sibling bottom left */
- top = siblingBottom - 8;
- left = siblingLeft - elem.clientWidth - 1;
- cornerFound = true;
- }
- else if (bottom > siblingBottom - 20 && bottom < siblingBottom + 20) { /* elem bottom right -> sibling bottom left */
- top = siblingBottom - elem.clientHeight;
- left = siblingLeft - elem.clientWidth - 1;
- cornerFound = true;
- }
- else if (bottom > siblingTop - 20 && bottom < siblingTop + 20) { /* elem bottom right -> sibling top left */
- top = siblingTop - elem.clientHeight + 7;
- left = siblingLeft - elem.clientWidth - 1;
- cornerFound = true;
- }
- }
- if (!cornerFound) {
- if (top > siblingBottom - 30 && top < siblingBottom + 20) { /* elem top edge at sibling bottom edge */
- if (left > siblingLeft - 20 && left < siblingLeft + 20) { /* elem top left -> sibling bottom left */
- top = siblingBottom - 8;
- left = siblingLeft;
- cornerFound = true;
- }
- else if (right > siblingRight - 20 && right < siblingRight + 20) { /* elem top right -> sibling bottom right */
- top = siblingBottom - 8;
- left = siblingRight - elem.clientWidth - 1;
- cornerFound = true;
- }
- }
- else if (bottom > siblingTop - 20 && bottom < siblingTop + 20) { /* elem bottom edge at sibling top edge */
- if (left > siblingLeft - 20 && left < siblingLeft + 20) { /* elem bottom left -> sibling top left */
- top = siblingTop - elem.clientHeight + 7;
- left = siblingLeft;
- cornerFound = true;
- }
- else if (right > siblingRight - 20 && right < siblingRight + 20) { /* elem bottom right -> sibling top right */
- top = siblingTop - elem.clientHeight + 7;
- left = siblingRight - elem.clientWidth - 1;
- cornerFound = true;
- }
- }
- }
- if (cornerFound) {
- break;
- }
- }
- }
- return ({top : top,
- left : left,
- cornerFound : cornerFound,
- leftAssigned : false,
- topAssigned : false});
- },
- snapEdge : function (event, id, xOffset, yOffset, elem, top, left, right, bottom, allViews) {
- var topAssigned = false;
- var leftAssigned = false;
- for (var i = 0; i < allViews.length; i++) {
- if (allViews[i].id != id) {
- var siblingElem = this.getViewById(allViews[i].id);
- if (siblingElem.style.top == '') {
- var siblingTop = siblingElem.clientTop;
- var siblingLeft = siblingElem.clientLeft;
- }
- else {
- var siblingTop = Number(siblingElem.style.top.replace(/px/, ''));
- var siblingLeft = Number(siblingElem.style.left.replace(/px/, ''));
- }
- var siblingRight = siblingLeft + siblingElem.clientWidth;
- var siblingBottom = siblingTop + siblingElem.clientHeight;
- if (left > siblingRight - 20 && left < siblingRight + 20) { /* elem left edge -> sibling right edge */
- left = siblingLeft + siblingElem.clientWidth + 1;
- leftAssigned = true;
- }
- else if (top > siblingBottom - 30 && top < siblingBottom + 20) { /* elem top edge -> sibling bottom edge */
- top = siblingBottom - 8;
- topAssigned = true;
- }
- else if (right > siblingLeft - 20 && right < siblingLeft + 20) { /* elem right edge -> sibling left edge */
- left = siblingLeft - elem.clientWidth - 1;
- leftAssigned = true;
- }
- else if (bottom > siblingTop - 20 && bottom < siblingTop + 20) { /* elem bottom edge -> sibling top edge */
- top = siblingTop - elem.clientHeight + 7;
- topAssigned = true;
- }
- }
- if (leftAssigned || topAssigned) {
- break;
- }
- }
- return ({top : top,
- left : left,
- cornerFound : false,
- leftAssigned : leftAssigned,
- topAssigned : topAssigned});
- },
- stopRepeatRefresh : function (cancelAll) {
- this.inRepeatRefresh = false;
- this.$.repeatRefreshButton.disabled =
- this.$.refreshAllButton.disabled = (this.dataViewsShowing() < 1);
- this.$.overflowRepeatRefreshButton.disabled = this.$.repeatRefreshButton.disabled;
- this.$.overflowRefreshAllButton.disabled = this.$.refreshAllButton.disabled;
- if (this.repeatHandle != 0) {
- var handle = this.repeatHandle;
- this.repeatHandle = 0;
- this.cancelAsync(handle);
- }
- if (cancelAll) {
- this.rovData.cancelAllPendingRequests();
- }
- },
- stopRepeatRefreshClicked : function () {
- this.stopRepeatRefresh(true);
- },
- storableRovViewsShowing : function() {
- var count = 0;
- for (var i = 0; i < this.rovViews.length; i++) {
- var elem = this.getViewById(this.rovViews[i].id);
- if (elem) {
- if (elem.hasStorableContent && elem.hasStorableContent()) {
- ++count;
- }
- }
- }
- return (count);
- },
- storageOptionsDialog : function (e) {
- var dialog = document.getElementById('manageStorageDialog');
- if (dialog) {
- var viewsStorage = rovUtils.getLocalStorageObject('viewsData-storage');
- var keys = Object.keys(viewsStorage);
- var nonNullKeys = [];
- var maxWidth = 0;
- for (var i = 0; i < keys.length; i++) {
- if (viewsStorage[keys[i]]) {
- nonNullKeys.push(keys[i]);
- var width = rovUtils.getStringWidth(keys[i]);
- if (width > maxWidth) {
- maxWidth = width;
- }
- }
- }
- nonNullKeys.sort();
- this.set('viewsStorageItems', nonNullKeys);
- dialog.open();
- this.$.viewsStorageList.style.width = maxWidth + 'px';
- dialog.style.left = this.isNarrow() ? '0px': rovUtils.leftPaneWidth + 'px';
- dialog.style.zIndex = String(this.getMaxZindex() + 10);
-
- /* Init checkboxes and clear selection button */
- var listItems = this.$.viewsStorageList.items;
- for (var i = 0; i < listItems.length; i++) {
- listItems[i].lastElementChild.checked = false;
- }
- this.$.viewsStorageList.selected = -1;
- this.$.clearViewStorageButton.disabled = true;
- this.$.selectAllViewsStorageCheckbox.checked = false;
- this.$.selectAllViewsStorageCheckbox.disabled = nonNullKeys.length == 0;
- }
- },
- subMenuClicked : function (event) {
- if (this.allModulesVisible) {
- var index = this.getTocIndex(event.currentTarget.id, this.tocItems);
- if (index >= 0) {
- var str = 'tocItems.' + index + '.expanded';
- this.set(str, !this.tocItems[index].expanded);
- }
- }
- else {
- var index = this.getTocIndex(event.currentTarget.id, this.favoriteTocItems);
- if (index >= 0) {
- var str = 'favoriteTocItems.' + index + '.expanded';
- this.set(str, !this.favoriteTocItems[index].expanded);
- }
- }
- },
- syncDiscoveredAddOnsList : function () {
- var hash = [];
- var listItems = this.$.discoveredAddOnsList.items;
- for (var i = 0; i < listItems.length; i++) {
- hash[listItems[i].lastElementChild.title] = {};
- hash[listItems[i].lastElementChild.title].checked = listItems[i].lastElementChild.checked;
- }
- var addOns = [];
- for (var i = 0; i < this.discoveredAddOns.length; i++) {
- if (!this.isDupAddOn(this.discoveredAddOns[i].path)) {
- addOns.push(this.discoveredAddOns[i]);
- if (!hash[this.discoveredAddOns[i].path]) {
- hash[this.discoveredAddOns[i].path] = {};
- hash[this.discoveredAddOns[i].path].checked = false;
- }
- }
- }
- this.set('dlgDiscoveredAddOns', addOns);
- this.$.discoveredAddOnsTemplate.render();
- listItems = this.$.discoveredAddOnsList.items;
- var foundUnchecked = false;
- var foundChecked = false;
- for (var i = 0; i < listItems.length; i++) {
- listItems[i].lastElementChild.checked = hash[listItems[i].lastElementChild.title].checked;
- if (!foundUnchecked && !listItems[i].lastElementChild.checked) {
- foundUnchecked = true;
- }
- if (!foundChecked && listItems[i].lastElementChild.checked) {
- foundChecked = true;
- }
- }
- this.$.discoveredAddOnsTemplate.render();
- this.$.selectAllDiscoveredAddOnsCheckbox.checked = !foundUnchecked && this.dlgDiscoveredAddOns.length > 0;
- this.$.selectAllDiscoveredAddOnsCheckbox.disabled = (this.dlgDiscoveredAddOns.length == 0);
- this.$.addDiscoveredAddOnButton.disabled = !foundChecked;
- },
- toggleDrawerClicked : function (e) {
- var narrow = !this.$.rovDrawerPanel.narrow;
- this.$.rovDrawerPanel._responsiveChange(narrow);
- this.set('toggleIcon', narrow ? 'chevron-right' : 'chevron-left');
- this.set('toggleTooltip', narrow ? 'Show modules list' : 'Hide modules list');
- this.$.rovTitle.hidden = narrow;
- this.$.titleSpan.style.left = narrow ? '30px' : '210px';
- this.toolbarResponseToResize(narrow);
- },
- toolbarButtonsState : function() {
- var allViewsLength = this.rovModuleViews.length + this.rovViews.length;
- this.$.viewToTopButton.disabled = allViewsLength <= 1;
- this.$.saveAllButton.disabled = (this.moduleViewsShowing() + this.storableRovViewsShowing()) < 1;
- this.$.repeatRefreshButton.disabled = this.$.refreshAllButton.disabled =
- (this.dataViewsShowing() < 1 || this.repeatHandle != 0);
- this.$.overflowRepeatRefreshButton.disabled = this.$.repeatRefreshButton.disabled;
- this.$.overflowRefreshAllButton.disabled = this.$.refreshAllButton.disabled;
- this.$.closeAllButton.disabled = allViewsLength == 0;
- this.$.overflowCloseAllButton.disabled = this.$.closeAllButton.disabled;
- this.$.titleOverflowDialogButton.disabled = this.$.overflowRefreshAllButton.disabled && this.$.overflowCloseAllButton.disabled;
- if (this.$.titleOverflowDialogButton.disabled &&
- this.$.titleOverflowDialog.opened) {
- this.$.titleOverflowDialog.close();
- }
- if (allViewsLength == 0) {
- this.setCurrentDashboard('');
- }
- this.enableOtherViews = this.otherViews.length > 0;
- },
- toolbarDragEnter : function (e) {
- this.dashboardDrag(e);
- },
- toolbarDragOver : function (e) {
- this.dashboardDrag(e);
- },
- toolbarResponseToResize : function (narrow) {
- var panelWidth = this.$.rovDrawerPanel.offsetWidth;
- if (!narrow) {
- if (panelWidth < 775) {
- this.$.rovTitle.hidden = true;
- this.$.titleSpan.style.left = '30px';
- }
- else {
- this.$.rovTitle.hidden = false;
- this.$.titleSpan.style.left = '210px';
- }
- this.$.titleSpan.hidden = panelWidth < 455;
- this.$.dashboardDiv.hidden = panelWidth < 585;
- if (panelWidth >= 215 && panelWidth < 300) {
- this.$.titleOverflowDialogButton.style.left = '14px';
- this.$.titleOverflowDialog.style.left = '194px';
- }
- if (panelWidth < 215) {
- this.$.rovOptionsButton.hidden = true;
- this.$.titleOverflowDialogButton.hidden = true;
- this.$.dashboardOverflowDialogButton.hidden = true;
- }
- else if (panelWidth < 250) {
- this.$.rovOptionsButton.hidden = true;
- this.$.titleOverflowDialogButton.hidden = false;
- this.$.dashboardOverflowDialogButton.hidden = true;
- }
- else if (panelWidth < 275) {
- this.$.rovOptionsButton.hidden = true;
- this.$.titleOverflowDialogButton.hidden = false;
- this.$.dashboardOverflowDialogButton.hidden = false;
- this.$.dashboardOverflowDialogButton.style.right = '0px';
- this.$.dashboardOverflowDialog.style.right = '0px';
- }
- else {
- this.$.titleOverflowDialogButton.hidden = !this.$.titleSpan.hidden;
- this.$.dashboardOverflowDialogButton.hidden = !this.$.dashboardDiv.hidden;
- if (panelWidth < 300) {
- this.$.rovOptionsButton.hidden = true;
- this.$.dashboardOverflowDialogButton.style.right = '16px';
- this.$.dashboardOverflowDialog.style.right = '12px';
- }
- else {
- this.$.rovOptionsButton.hidden = false;
- if (!this.$.titleOverflowDialogButton.hidden) {
- this.$.titleOverflowDialogButton.style.left = '24px';
- this.$.titleOverflowDialog.style.left = '206px';
- }
- if (panelWidth < 480 && this.$.titleOverflowDialogButton.hidden) {
- this.$.rovOptionsButton.style.right = '5px';
- this.$.dashboardOverflowDialogButton.style.right = '25px';
- this.$.dashboardOverflowDialog.style.right = '21px';
- }
- else {
- this.$.rovOptionsButton.style.right = '12px';
- if (!this.$.dashboardOverflowDialogButton.hidden) {
- this.$.dashboardOverflowDialogButton.style.right = '40px';
- this.$.dashboardOverflowDialog.style.right = '36px';
- }
- }
- }
- }
- }
- else {
- this.$.rovOptionsButton.hidden = false;
- this.$.dashboardDiv.hidden = panelWidth < 400;
- this.$.dashboardOverflowDialogButton.hidden = !this.$.dashboardDiv.hidden;
- this.$.titleSpan.hidden = panelWidth < 265;
- this.$.titleOverflowDialogButton.hidden = !this.$.titleSpan.hidden;
- if (panelWidth < 300) {
- if (!this.$.titleOverflowDialogButton.hidden) {
- this.$.titleOverflowDialogButton.style.left = '24px';
- this.$.titleOverflowDialog.style.left = '206px';
- }
- else {
- this.$.titleSpan.style.left = '18px';
- }
- this.$.rovOptionsButton.style.right = '2px';
- this.$.dashboardOverflowDialogButton.style.right = '28px';
- this.$.dashboardOverflowDialog.style.right = '24px';
- }
- else {
- this.$.titleSpan.style.left = '30px';
- this.$.rovOptionsButton.style.right = '12px';
- this.$.dashboardOverflowDialogButton.style.right = '40px';
- this.$.dashboardOverflowDialog.style.right = '36px';
- }
- }
- if (this.$.listDashboardsDialog.opened &&
- (this.$.listDashboardsDialog.name == 'Open' || this.$.listDashboardsDialog.name == 'Delete')) {
- this.$.listDashboardsDialog.close();
- }
- if (this.$.dashboardOverflowDialogButton.hidden &&
- this.$.dashboardOverflowDialog.opened) {
- this.$.dashboardOverflowDialog.close();
- }
- if (this.$.titleOverflowDialogButton.hidden &&
- this.$.titleOverflowDialog.opened) {
- this.$.titleOverflowDialog.close();
- }
- },
- viewDragEnd : function (event) {
- if (!rovUtils.validDragElement(event.target)) {
- return;
- }
- var elem = this.getViewById(event.target.parentElement.dataHost.id);
- if (elem.$.viewContentDiv) { /* re-enable mouse events in content */
- elem.$.viewContentDiv.style.pointerEvents = '';
- }
- },
- viewDragEnter : function (event) {
- if (!rovUtils.validDragElement(event.target)) {
- return;
- }
- event.preventDefault();
- },
- viewDragOver : function (event) {
- if (!rovUtils.validDragElement(event.target)) {
- return;
- }
- if (event.target.id == 'contentDiv' || event.target.id == 'mainContainer' ||
- event.target.id.indexOf('rovModuleView_') >= 0 ||
- event.target.id.indexOf('rovView_') >= 0) {
-
- event.preventDefault();
- }
- },
- viewDragStart : function (event) {
- if (event.target.id != 'dragDiv') {
- if (rovUtils.validDragElement(event.target)) {
- event.preventDefault();
- }
- return;
- }
- var id = event.target.parentElement.dataHost.id;
- var elem = this.getViewById(id);
- /* disable mouse events in content when dragging over our own view */
- if (elem.$.viewContentDiv) {
- elem.$.viewContentDiv.style.pointerEvents = 'none';
- }
- var rect = elem.getBoundingClientRect();
- var cyOffset = String(event.screenY - event.clientY);
- var cxOffset = String(event.screenX - event.clientX);
- var data = [id, String(rect.left + this.viewContainer.scrollLeft), String(rect.top + this.viewContainer.scrollTop), cyOffset, cxOffset].join(',');
- this.dragData = data;
- event.dataTransfer.setData('text', data);
- event.dataTransfer.effectAllowed = 'all';
- event.dataTransfer.dropEffect = 'move';
- var img = new Image();
- img.src = './client/images/dragger.png';
- img.alt = '';
- event.dataTransfer.setDragImage(img, 0, 0);
- },
- viewDrop : function (event) {
- var data = event.dataTransfer.getData('text');
- if (!data || data.length == 0 || data.indexOf('cell: ') == 0) {
- return;
- }
- event.preventDefault();
- data = data.split(',');
- var id = data[0];
- var begClientX = Number(data[1]);
- var begClientY = Number(data[2]);
- var xOffset = Number(event.clientX) - begClientX + this.viewContainer.scrollLeft;
- var yOffset = Number(event.clientY) - begClientY + this.viewContainer.scrollTop;
- if (begClientY + yOffset < 48) {
- yOffset = 48 - begClientY;
- }
- this.viewDropDisplay(event, id, xOffset, yOffset);
- },
- viewDropDisplay : function (event, id, xOffset, yOffset) {
- var elem = this.getViewById(id);
- var top;
- var left;
- if (elem.style.top == '') {
- top = yOffset;
- left = xOffset;
- }
- else {
- top = Number(elem.style.top.replace(/px/, ''));
- left = Number(elem.style.left.replace(/px/, ''));
- top = top + yOffset;
- left = left + xOffset;
- }
- var right = left + elem.clientWidth;
- var bottom = top + elem.clientHeight - 10;
- var allViews = [];
- for (var i = 0; i < this.rovModuleViews.length; i++) {
- allViews.push(this.rovModuleViews[i]);
- }
- for (var i = 0; i < this.rovViews.length; i++) {
- allViews.push(this.rovViews[i]);
- }
- var snapObj = this.snapCorner(event, id, xOffset, yOffset, elem, top, left, right, bottom, allViews);
- if (!snapObj.cornerFound) {
- snapObj = this.snapEdge(event, id, xOffset, yOffset, elem, top, left, right, bottom, allViews);
- }
- if (!snapObj.cornerFound && !snapObj.topAssigned) {
- snapObj.top -= 8; /* -8 for cursor arrow */
- }
- elem.style.top = snapObj.top + 'px';
- elem.style.left = snapObj.left + 'px';
- elem.style.zIndex = String(this.getMaxZindex() + 1);
- },
- viewToTopDialog : function(event) {
- this.viewToTopList = [];
- var viewList = [];
- for (var i = 0; i < this.rovModuleViews.length; i++) {
- var listItem = {};
- var elem = this.getViewById(this.rovModuleViews[i].id);
- listItem.name = elem.shortModuleName;
- listItem.fullName = elem.moduleName + ' ' + elem.viewName;
- listItem.id = elem.id;
- viewList.push(listItem);
- }
- for (var i = 0; i < this.rovViews.length; i++) {
- var listItem = {};
- var elem = this.getViewById(this.rovViews[i].id);
- listItem.name = elem.viewName;
- listItem.fullName = elem.viewName;
- listItem.id = elem.id;
- viewList.push(listItem);
- }
- this.set('viewToTopList', viewList);
- var dialog = document.getElementById('listViewsDialog');
- if (dialog) {
- /* 24 is the padding + 10 */
- dialog.style.left = (event.x - 34) + 'px';
- dialog.open();
- dialog.style.zIndex = String(this.getMaxZindex() + 1);
- if (this.$.viewToTopMenu.selected != undefined) {
- this.$.viewToTopMenu.selected = -1;
- }
- }
- },
- viewToTopMenuItemSelected : function (e) {
- var elem = this.getViewById(e.detail.item.id);
- if (elem) {
- elem.style.zIndex = String(this.getMaxZindex() + 1);
- }
- this.$.viewToTopMenu.selected = -1;
- var dialog = document.getElementById('listViewsDialog');
- if (dialog) {
- dialog.close();
- }
- }
-});