Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-843 2316b22b6 -> 0c64be58b


IGNITE-843 WIP on tables.


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

Branch: refs/heads/ignite-843
Commit: 0c64be58bb552d2ca9f7599d33d482a87aab5283
Parents: 2316b22
Author: AKuznetsov <akuznet...@gridgain.com>
Authored: Thu Aug 13 10:49:31 2015 +0700
Committer: AKuznetsov <akuznet...@gridgain.com>
Committed: Thu Aug 13 10:49:31 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/controllers/common-module.js    |  3 +
 .../main/js/controllers/metadata-controller.js  | 72 +++++++++++++-------
 .../src/main/js/views/includes/controls.jade    |  2 +-
 .../src/main/js/views/templates/layout.jade     |  4 +-
 4 files changed, 55 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0c64be58/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 b18240e..e596ea8 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
@@ -687,6 +687,9 @@ controlCenterModule.service('$table', [
 
                 _tableFocus('GroupName', -1);
             }
+            else if (ui == 'table-query-group-fields') {
+                _tableFocus('FieldName', -1);
+            }
         }
 
         return {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0c64be58/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 99fcc49..a6b0e7a 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
@@ -495,23 +495,23 @@ controlCenterModule.controller('metadataController', [
                     !$common.isEmptyString(dbFieldValue.javaName) && 
$common.isDefined(dbFieldValue.javaType);
             };
 
-            var dbFields = {
+            var dbFieldTables = {
                 keyFields: {msg: 'Key field', id: 'KeyField'},
                 valueFields: {msg: 'Value field', id: 'ValueField'}
             };
 
             $scope.tableDbFieldSave = function (field, index) {
-                var dbField = dbFields[field.model];
+                var dbFieldTable = dbFieldTables[field.model];
 
-                if (dbField) {
+                if (dbFieldTable) {
                     var dbFieldValue = tableDbFieldValue(field, index);
 
-                    var backupItem = $scope.backupItem;
+                    var item = $scope.backupItem;
 
-                    var model = backupItem[field.model];
+                    var model = item[field.model];
 
-                    if (!$common.isValidJavaIdentifier(dbField.msg + ' java 
name', dbFieldValue.javaName))
-                        return focusInvalidField(index, 'JavaName' + 
dbField.id);
+                    if (!$common.isValidJavaIdentifier(dbFieldTable.msg + ' 
java name', dbFieldValue.javaName))
+                        return focusInvalidField(index, 'JavaName' + 
dbFieldTable.id);
 
                     if ($common.isDefined(model)) {
                         var idx = _.findIndex(model, function (dbMeta) {
@@ -522,7 +522,7 @@ controlCenterModule.controller('metadataController', [
                         if (idx >= 0 && index != idx) {
                             $common.showError('Field with such database name 
already exists!');
 
-                            return focusInvalidField(index, 'DatabaseName' + 
dbField.id);
+                            return focusInvalidField(index, 'DatabaseName' + 
dbFieldTable.id);
                         }
 
                         idx = _.findIndex(model, function (dbMeta) {
@@ -533,25 +533,33 @@ controlCenterModule.controller('metadataController', [
                         if (idx >= 0 && index != idx) {
                             $common.showError('Field with such java name 
already exists!');
 
-                            return focusInvalidField(index, 'JavaName' + 
dbField.id);
+                            return focusInvalidField(index, 'JavaName' + 
dbFieldTable.id);
                         }
 
                         if (index < 0) {
                                 model.push(dbFieldValue);
                         }
                         else {
-                            var item = model[index];
+                            var dbField = model[index];
 
-                            item.databaseName = dbFieldValue.databaseName;
-                            item.databaseType = dbFieldValue.databaseType;
-                            item.javaName = dbFieldValue.javaName;
-                            item.javaType = dbFieldValue.javaType;
+                            dbField.databaseName = dbFieldValue.databaseName;
+                            dbField.databaseType = dbFieldValue.databaseType;
+                            dbField.javaName = dbFieldValue.javaName;
+                            dbField.javaType = dbFieldValue.javaType;
                         }
                     }
-                    else
-                        backupItem[field.model] = [dbFieldValue];
+                    else {
+                        model = [dbFieldValue];
 
-                    $table.tableReset();
+                        item[field.model] = model;
+                    }
+
+                    if (index < 0)
+                        $table.tableNewItem(field);
+                    else  if (index < model.length - 1)
+                        $table.tableStartEdit(item, field, index + 1);
+                    else
+                        $table.tableNewItem(field);
                 }
             };
 
@@ -581,8 +589,6 @@ controlCenterModule.controller('metadataController', [
                     }
                 }
 
-                $table.tableReset();
-
                 var item = $scope.backupItem;
 
                 if (index < 0) {
@@ -595,12 +601,27 @@ controlCenterModule.controller('metadataController', [
                 }
                 else
                     item.groups[index].name = groupName;
+
+                if (index < 0)
+                    $scope.tableGroupNewItem(field, item.groups.length - 1);
+                else {
+                    var group = item.groups[index];
+
+                    if (group.fields || group.fields.length > 0)
+                        $scope.tableGroupItemStartEdit(field, index, 0);
+                    else
+                        $scope.tableGroupNewItem(field, index);
+                }
             };
 
-            $scope.tableGroupNewItem = function (groupIndex) {
+            $scope.tableGroupNewItem = function (field, groupIndex) {
                 var groupName = $scope.backupItem.groups[groupIndex].name;
 
-                return $table.tableNewItem({model: groupName});
+                $table.tableNewItem({ui: 'table-query-group-fields', model: 
groupName});
+
+                field.newFieldName = null;
+                field.newClassName = null;
+                field.newDirection = false;
             };
 
             $scope.tableGroupNewItemActive = function (groupIndex) {
@@ -681,8 +702,6 @@ controlCenterModule.controller('metadataController', [
                     }
                 }
 
-                $table.tableReset();
-
                 var group = $scope.backupItem.groups[groupIndex];
 
                 if (index < 0) {
@@ -690,6 +709,8 @@ controlCenterModule.controller('metadataController', [
                         group.fields.push(groupItemValue);
                     else
                         group.fields = [groupItemValue];
+
+                    $scope.tableGroupNewItem(field, groupIndex);
                 }
                 else {
                     var groupItem = group.fields[index];
@@ -697,6 +718,11 @@ controlCenterModule.controller('metadataController', [
                     groupItem.name = groupItemValue.name;
                     groupItem.className = groupItemValue.className;
                     groupItem.direction = groupItemValue.direction;
+
+                    if (index < group.fields.length - 1)
+                        $scope.tableGroupItemStartEdit(field, groupIndex, 
index + 1);
+                    else
+                        $scope.tableGroupNewItem(field, groupIndex);
                 }
             };
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0c64be58/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 648edc9..ac73462 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
@@ -388,7 +388,7 @@ mixin form-row-custom(lblClasses, fieldClasses, dataSource)
                                     .col-sm-12(ng-show='!tableEditing(field, 
$index)')
                                         
a.labelFormField(ng-click='tableStartEdit(backupItem, field, $index)') {{$index 
+ 1}}) {{group.name}}
                                         +btn-remove('tableRemove(backupItem, 
field, $index)', 'field.removeTip')
-                                        +btn-add('tableGroupNewItem($index)', 
'field.addItemTip')
+                                        +btn-add('tableGroupNewItem(field, 
$index)', 'field.addItemTip')
                                     div(ng-if='tableEditing(field, $index)')
                                         label.labelField {{$index + 1}})
                                         
+btn-save('tableGroupSaveVisible(field, $index)', 'tableGroupSave(field, 
$index)')

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0c64be58/modules/control-center-web/src/main/js/views/templates/layout.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/templates/layout.jade 
b/modules/control-center-web/src/main/js/views/templates/layout.jade
index 6a624b8..dc118a6 100644
--- a/modules/control-center-web/src/main/js/views/templates/layout.jade
+++ b/modules/control-center-web/src/main/js/views/templates/layout.jade
@@ -21,10 +21,10 @@ html(ng-app='ignite-web-control-center' ng-init='user = 
#{JSON.stringify(user)};
 
         block css
             // Bootstrap
-            link(rel='stylesheet', 
href='//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.css')
+            link(rel='stylesheet', 
href='//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.css')
 
             // Font Awesome Icons
-            link(rel='stylesheet', 
href='//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.css')
+            link(rel='stylesheet', 
href='//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.css')
 
             // Font
             link(rel='stylesheet', 
href='//fonts.googleapis.com/css?family=Roboto+Slab:700:serif|Roboto+Slab:400:serif')

Reply via email to