IGNITE-843: Open panel by id.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/1363b0b9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/1363b0b9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/1363b0b9 Branch: refs/heads/ignite-843 Commit: 1363b0b95ab02ec1deb33fff08058ba393d85809 Parents: 9716913 Author: AKuznetsov <akuznet...@gridgain.com> Authored: Mon Aug 17 16:43:13 2015 +0700 Committer: AKuznetsov <akuznet...@gridgain.com> Committed: Mon Aug 17 16:43:13 2015 +0700 ---------------------------------------------------------------------- .../main/js/controllers/caches-controller.js | 2 +- .../main/js/controllers/clusters-controller.js | 26 ++++++++--------- .../src/main/js/controllers/common-module.js | 30 ++++++++++++-------- .../main/js/controllers/metadata-controller.js | 2 +- .../src/main/js/controllers/models/caches.json | 15 ++++++++++ .../main/js/controllers/models/clusters.json | 1 + .../main/js/controllers/models/metadata.json | 1 + .../main/js/views/configuration/clusters.jade | 2 +- .../src/main/js/views/includes/controls.jade | 8 +++--- 9 files changed, 55 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1363b0b9/modules/control-center-web/src/main/js/controllers/caches-controller.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/caches-controller.js b/modules/control-center-web/src/main/js/controllers/caches-controller.js index bf1149b..96b81f2 100644 --- a/modules/control-center-web/src/main/js/controllers/caches-controller.js +++ b/modules/control-center-web/src/main/js/controllers/caches-controller.js @@ -229,7 +229,7 @@ controlCenterModule.controller('cachesController', [ // Add new cache. $scope.createItem = function () { $table.tableReset(); - $common.ensureActivePanel($scope.panels, 0); + $common.ensureActivePanel($scope.panels, 'general-data'); $scope.selectedItem = undefined; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1363b0b9/modules/control-center-web/src/main/js/controllers/clusters-controller.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/clusters-controller.js b/modules/control-center-web/src/main/js/controllers/clusters-controller.js index e45d79c..570722b 100644 --- a/modules/control-center-web/src/main/js/controllers/clusters-controller.js +++ b/modules/control-center-web/src/main/js/controllers/clusters-controller.js @@ -33,6 +33,8 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$commo $scope.tableSimpleDown = $table.tableSimpleDown; $scope.tableSimpleDownVisible = $table.tableSimpleDownVisible; + $scope.hidePopover = $common.hidePopover; + $scope.templates = [ {value: {discovery: {kind: 'Multicast', Vm: {addresses: ['127.0.0.1:47500..47510']}, Multicast: {}}},label: 'multicast'}, {value: {discovery: {kind: 'Vm', Vm: {addresses: ['127.0.0.1:47500..47510']}}}, label: 'local'} @@ -209,7 +211,7 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$commo // Add new cluster. $scope.createItem = function () { $table.tableReset(); - $common.ensureActivePanel($scope.panels, 0); + $common.ensureActivePanel($scope.panels, "general-data"); $scope.selectedItem = undefined; @@ -226,37 +228,35 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$commo // Check cluster logical consistency. function validate(item) { - var pnls = $scope.panels; - if ($common.isEmptyString(item.name)) - return $common.showPopoverMessage(pnls, 0, 'clusterName', 'Name should not be empty'); + return $common.showPopoverMessage($scope.panels, 'general-data', 'clusterName', 'Name should not be empty'); if (item.discovery.kind == 'Vm' && item.discovery.Vm.addresses.length == 0) - return $common.showPopoverMessage(pnls, 0, 'addresses', 'Addresses are not specified'); + return $common.showPopoverMessage($scope.panels, 'general-data', 'addresses', 'Addresses are not specified'); if (item.discovery.kind == 'S3' && $common.isEmptyString(item.discovery.S3.bucketName)) - return $common.showPopoverMessage(pnls, 0, 'bucketName', 'Bucket name should not be empty'); + return $common.showPopoverMessage($scope.panels, 'general-data', 'bucketName', 'Bucket name should not be empty'); if (item.discovery.kind == 'Cloud') { if ($common.isEmptyString(item.discovery.Cloud.identity)) - return $common.showPopoverMessage(pnls, 0, 'identity', 'Identity should not be empty'); + return $common.showPopoverMessage($scope.panels, 'general-data', 'identity', 'Identity should not be empty'); if ($common.isEmptyString(item.discovery.Cloud.provider)) - return $common.showPopoverMessage(pnls, 0, 'provider', 'Provider should not be empty'); + return $common.showPopoverMessage($scope.panels, 'general-data', 'provider', 'Provider should not be empty'); } if (item.discovery.kind == 'GoogleStorage') { if ($common.isEmptyString(item.discovery.GoogleStorage.projectName)) - return $common.showPopoverMessage(pnls, 0, 'projectName', 'Project name should not be empty'); + return $common.showPopoverMessage($scope.panels, 'general-data', 'projectName', 'Project name should not be empty'); if ($common.isEmptyString(item.discovery.GoogleStorage.bucketName)) - return $common.showPopoverMessage(pnls, 0, 'bucketName', 'Bucket name should not be empty'); + return $common.showPopoverMessage($scope.panels, 'general-data', 'bucketName', 'Bucket name should not be empty'); if ($common.isEmptyString(item.discovery.GoogleStorage.serviceAccountP12FilePath)) - return $common.showPopoverMessage(pnls, 0, 'serviceAccountP12FilePath', 'Private key path should not be empty'); + return $common.showPopoverMessage($scope.panels, 'general-data', 'serviceAccountP12FilePath', 'Private key path should not be empty'); if ($common.isEmptyString(item.discovery.GoogleStorage.serviceAccountId)) - return $common.showPopoverMessage(pnls, 0, 'serviceAccountId', 'Account ID should not be empty'); + return $common.showPopoverMessage($scope.panels, 'general-data', 'serviceAccountId', 'Account ID should not be empty'); } if (!item.swapSpaceSpi || !item.swapSpaceSpi.kind && item.caches) { @@ -269,7 +269,7 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$commo if (cache.swapEnabled) { $scope.ui.expanded = true; - return $common.showPopoverMessage(pnls, 8, 'swapSpaceSpi', + return $common.showPopoverMessage($scope.panels, 'swap-data', 'swapSpaceSpi', 'Swap space SPI is not configured, but cache "' + cache.label + '" configured to use swap!'); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1363b0b9/modules/control-center-web/src/main/js/controllers/common-module.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/common-module.js b/modules/control-center-web/src/main/js/controllers/common-module.js index 68e6d97..41526c5 100644 --- a/modules/control-center-web/src/main/js/controllers/common-module.js +++ b/modules/control-center-web/src/main/js/controllers/common-module.js @@ -393,18 +393,24 @@ controlCenterModule.service('$common', [ var popover = null; - function ensureActivePanel(panels, pnlIdx) { + function ensureActivePanel(panels, id) { if (panels) { - var activePanels = panels.activePanels; + var idx = _.findIndex($('div.panel-collapse'), function(pnl) { + return pnl.id == id; + }); + + if (idx >= 0) { + var activePanels = panels.activePanels; - if (!activePanels || activePanels.length < 1) - panels.activePanels = [pnlIdx]; - else if (!_.contains(activePanels, pnlIdx)) { - var newActivePanels = activePanels.slice(); + if (!activePanels || activePanels.length < 1) + panels.activePanels = [idx]; + else if (!_.contains(activePanels, idx)) { + var newActivePanels = activePanels.slice(); - newActivePanels.push(pnlIdx); + newActivePanels.push(idx); - panels.activePanels = newActivePanels; + panels.activePanels = newActivePanels; + } } } } @@ -531,11 +537,11 @@ controlCenterModule.service('$common', [ return result; }, - ensureActivePanel: function (panels, pnlIdx) { - ensureActivePanel(panels, pnlIdx); + ensureActivePanel: function (panels, id) { + ensureActivePanel(panels, id); }, - showPopoverMessage: function (panels, panelIndex, id, message) { - ensureActivePanel(panels, panelIndex); + showPopoverMessage: function (panels, panelId, id, message) { + ensureActivePanel(panels, panelId); var el = $('body').find('#' + id); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1363b0b9/modules/control-center-web/src/main/js/controllers/metadata-controller.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/metadata-controller.js b/modules/control-center-web/src/main/js/controllers/metadata-controller.js index cb2e6dd..a460be7 100644 --- a/modules/control-center-web/src/main/js/controllers/metadata-controller.js +++ b/modules/control-center-web/src/main/js/controllers/metadata-controller.js @@ -324,7 +324,7 @@ controlCenterModule.controller('metadataController', [ // Add new metadata. $scope.createItem = function () { $table.tableReset(); - $common.ensureActivePanel($scope.panels, 0); + $common.ensureActivePanel($scope.panels, 'metadata-data'); $scope.selectedItem = undefined; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1363b0b9/modules/control-center-web/src/main/js/controllers/models/caches.json ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/models/caches.json b/modules/control-center-web/src/main/js/controllers/models/caches.json index 78f9c84..5046fd7 100644 --- a/modules/control-center-web/src/main/js/controllers/models/caches.json +++ b/modules/control-center-web/src/main/js/controllers/models/caches.json @@ -20,6 +20,7 @@ "general": [ { "label": "General", + "id": "general-data", "fields": [ { "label": "Name", @@ -30,6 +31,20 @@ "id": "defaultFocusId" }, { + "label": "Clusters", + "type": "dropdown-multiple", + "model": "clusters", + "placeholder": "Choose clusters", + "items": "clusters", + "tip": [ + "Select clusters to start in cluster or add a new cluster." + ], + "addLink": { + "label": "Add cluster(s)", + "ref": "/configuration/clusters" + } + }, + { "label": "Mode", "type": "select", "model": "mode", http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1363b0b9/modules/control-center-web/src/main/js/controllers/models/clusters.json ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/models/clusters.json b/modules/control-center-web/src/main/js/controllers/models/clusters.json index 288800d..1c5afd5 100644 --- a/modules/control-center-web/src/main/js/controllers/models/clusters.json +++ b/modules/control-center-web/src/main/js/controllers/models/clusters.json @@ -655,6 +655,7 @@ }, { "label": "Swap", + "id": "swap-data", "tip": [ "Settings for overflow data to disk if it cannot fit in memory." ], http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1363b0b9/modules/control-center-web/src/main/js/controllers/models/metadata.json ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/models/metadata.json b/modules/control-center-web/src/main/js/controllers/models/metadata.json index aeec92b..74f8724 100644 --- a/modules/control-center-web/src/main/js/controllers/models/metadata.json +++ b/modules/control-center-web/src/main/js/controllers/models/metadata.json @@ -27,6 +27,7 @@ "metadata": [ { "label": "Metadata common", + "id": "metadata-data", "tip": [ "Metadata properties common to Query and Store." ], http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1363b0b9/modules/control-center-web/src/main/js/views/configuration/clusters.jade ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/views/configuration/clusters.jade b/modules/control-center-web/src/main/js/views/configuration/clusters.jade index bd01786..01dcc19 100644 --- a/modules/control-center-web/src/main/js/views/configuration/clusters.jade +++ b/modules/control-center-web/src/main/js/views/configuration/clusters.jade @@ -43,5 +43,5 @@ block content +advanced-options-top .section button.btn.btn-primary(ng-click='saveItem()') Save - button.btn.btn-primary(ng-show='backupItem._id' ng-disabled='inputForm.$invalid' ng-click='saveItemAs()') Copy + button.btn.btn-primary(ng-show='backupItem._id' ng-click='saveItemAs()') Copy button.btn.btn-primary(ng-show='backupItem._id' ng-click='removeItem()') Remove http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1363b0b9/modules/control-center-web/src/main/js/views/includes/controls.jade ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/views/includes/controls.jade b/modules/control-center-web/src/main/js/views/includes/controls.jade index dd8b50b..6bffa21 100644 --- a/modules/control-center-web/src/main/js/views/includes/controls.jade +++ b/modules/control-center-web/src/main/js/views/includes/controls.jade @@ -430,8 +430,8 @@ mixin group(title, fields, dataSource) .panel.panel-default .panel-heading h3 - a(bs-collapse-toggle) #{title} - .panel-collapse(bs-collapse-target) + a(bs-collapse-toggle ng-click='hidePopover()') #{title} + .panel-collapse(bs-collapse-target id='#{fields + "-data"}' number='0') .panel-body .settings-row(ng-repeat='field in #{fields}') +form-row(dataSource) @@ -440,10 +440,10 @@ mixin groups(groups, dataSource) .panel.panel-default(ng-repeat='group in #{groups}' ng-click='triggerDigest=true') .panel-heading h3 - a(bs-collapse-toggle) {{::group.label}} + a(bs-collapse-toggle ng-click='hidePopover()') {{::group.label}} i.tipLabel.fa.fa-question-circle(ng-if='group.tip' bs-tooltip='joinTip(group.tip)' type='button') i.tipLabel.fa.fa-question-circle.blank(ng-if='!group.tip') - .panel-collapse(role='tabpanel' bs-collapse-target) + .panel-collapse(role='tabpanel' bs-collapse-target id='{{::group.id}}' number='{{::group.number}}') .panel-body .settings-row(ng-repeat='field in group.fields') +form-row(dataSource)