You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/08/17 11:43:05 UTC

[2/2] incubator-ignite git commit: IGNITE-843: Open panel by id.

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 <ak...@gridgain.com>
Authored: Mon Aug 17 16:43:13 2015 +0700
Committer: AKuznetsov <ak...@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)