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/07/21 08:33:39 UTC

incubator-ignite git commit: IGNITE-843 Added check for group item name.

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-843 576c87d2f -> 2030dfb8f


IGNITE-843 Added check for group item name.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/2030dfb8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/2030dfb8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/2030dfb8

Branch: refs/heads/ignite-843
Commit: 2030dfb8fea41ae8efc38561f6c3bd961dcaa823
Parents: 576c87d
Author: AKuznetsov <ak...@gridgain.com>
Authored: Tue Jul 21 13:33:37 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Tue Jul 21 13:33:37 2015 +0700

----------------------------------------------------------------------
 .../nodejs/controllers/metadata-controller.js   | 55 ++++++++++++++------
 1 file changed, 40 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2030dfb8/modules/web-control-center/nodejs/controllers/metadata-controller.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/controllers/metadata-controller.js b/modules/web-control-center/nodejs/controllers/metadata-controller.js
index f577dea..bf08194 100644
--- a/modules/web-control-center/nodejs/controllers/metadata-controller.js
+++ b/modules/web-control-center/nodejs/controllers/metadata-controller.js
@@ -506,7 +506,7 @@ controlCenterModule.controller('metadataController', ['$scope', '$http', '$commo
 
             if ($common.isDefined(groups)) {
                 var idx = _.findIndex(groups, function (group) {
-                    return group.name == groupName
+                    return group.name == groupName;
                 });
 
                 // Found itself.
@@ -576,25 +576,50 @@ controlCenterModule.controller('metadataController', ['$scope', '$http', '$commo
             return $common.isNonEmpty(fieldName) && $common.isNonEmpty(className);
         };
 
-        $scope.tableGroupItemSave = function (fieldName, className, direction, groupIndex, index) {
-            $table.tableReset();
+        function tableGroupItemValid(fieldName, groupIndex, index) {
+            var groupItems = $scope.backupItem.groups[groupIndex].fields;
 
-            var group = $scope.backupItem.groups[groupIndex];
+            if ($common.isDefined(groupItems)) {
+                var idx = _.findIndex(groupItems, function (groupItem) {
+                    return groupItem.name == fieldName;
+                });
 
-            if (index < 0) {
-                var newGroupItem = {name: fieldName, className: className, direction: direction};
+                // Found itself.
+                if (index >= 0 && index == idx)
+                    return true;
 
-                if (group.fields)
-                    group.fields.push(newGroupItem);
-                else
-                    group.fields = [newGroupItem];
+                // Found duplicate.
+                if (idx >= 0) {
+                    $common.showError('Field with such name already exists in group!');
+
+                    return false;
+                }
             }
-            else {
-                var groupItem = group.fields[index];
 
-                groupItem.name = fieldName;
-                groupItem.className = className;
-                groupItem.direction = direction;
+            return true;
+        }
+
+        $scope.tableGroupItemSave = function (fieldName, className, direction, groupIndex, index) {
+            if (tableGroupItemValid(fieldName, groupIndex, index)) {
+                $table.tableReset();
+
+                var group = $scope.backupItem.groups[groupIndex];
+
+                if (index < 0) {
+                    var newGroupItem = {name: fieldName, className: className, direction: direction};
+
+                    if (group.fields)
+                        group.fields.push(newGroupItem);
+                    else
+                        group.fields = [newGroupItem];
+                }
+                else {
+                    var groupItem = group.fields[index];
+
+                    groupItem.name = fieldName;
+                    groupItem.className = className;
+                    groupItem.direction = direction;
+                }
             }
         };