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')