Repository: incubator-ignite Updated Branches: refs/heads/ignite-843 b52a7dc02 -> 69f3c170e
IGNITE-843 Added support for focus and enter/esc for detailed tables on cluster screen. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/69f3c170 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/69f3c170 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/69f3c170 Branch: refs/heads/ignite-843 Commit: 69f3c170e99efe4501fbd9bdfb636f33c3082f88 Parents: b52a7dc Author: AKuznetsov <akuznet...@gridgain.com> Authored: Tue Aug 4 10:46:12 2015 +0700 Committer: AKuznetsov <akuznet...@gridgain.com> Committed: Tue Aug 4 10:46:12 2015 +0700 ---------------------------------------------------------------------- .../main/js/controllers/clusters-controller.js | 27 +++++++++++++------- .../src/main/js/views/includes/controls.jade | 4 +-- 2 files changed, 20 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/69f3c170/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 bcbdac2..64588d8 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 @@ -15,7 +15,7 @@ * limitations under the License. */ -controlCenterModule.controller('clustersController', ['$scope', '$http', '$common', '$confirm', '$copy', '$table', function ($scope, $http, $common, $confirm, $copy, $table) { +controlCenterModule.controller('clustersController', ['$scope', '$http', '$common', '$focus', '$confirm', '$copy', '$table', function ($scope, $http, $common, $focus, $confirm, $copy, $table) { $scope.joinTip = $common.joinTip; $scope.getModel = $common.getModel; @@ -95,6 +95,18 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$commo {value: 'JdkMarshaller', label: 'JdkMarshaller'} ]; + var simpleTables = { + addresses: {msg: 'Such IP address already exists!', id: 'IpAddress'}, + regions: {msg: 'Such region already exists!', id: 'Region'}, + zones: {msg: 'Such zone already exists!', id: 'Zone'} + }; + + function focusInvalidField(index, id) { + $focus(index < 0 ? 'new' + id : 'cur' + id); + + return false; + } + $scope.tableSimpleValid = function (item, field, val, index) { var model = $common.getModel(item, field)[field.model]; @@ -103,16 +115,13 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$commo // Found duplicate. if (idx >= 0 && idx != index) { - var msg = 'Such IP address already exists!'; - - if (field.model == 'regions') - msg = 'Such region already exists!'; - if (field.model == 'zones') - msg = 'Such zone already exists!'; + var simpleTable = simpleTables[field.model]; - $common.showError(msg); + if (simpleTable) { + $common.showError(simpleTable.msg); - return false; + return focusInvalidField(index, simpleTable.id); + } } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/69f3c170/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 7ca9017..acee1d4 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 @@ -155,12 +155,12 @@ mixin details-row label.labelField {{$index + 1}}) +btn-save('tableSimpleSaveVisible(curValue)', 'tableSimpleSave(tableSimpleValid, backupItem, detail, curValue, $index)') .input-tip.form-group.has-feedback - input.form-control(id='{{::detail.focusCurItemId}}' name='{{detail.model}}.edit' type='text' ng-model='curValue' placeholder='{{::detail.placeholder}}' on-escape='tableReset()')&attributes(customValidators) + input.form-control(id='{{::detail.focusCurItemId}}' name='{{detail.model}}.edit' type='text' ng-model='curValue' placeholder='{{::detail.placeholder}}' on-enter='tableSimpleSave(tableSimpleValid, backupItem, detail, curValue, $index)' on-escape='tableReset()')&attributes(customValidators) +ico-exclamation('{{detail.model}}.edit', 'ipaddress', 'Invalid address, see help for format description.') button.btn.btn-primary.fieldButton(ng-disabled='!newValue' ng-click='tableSimpleSave(tableSimpleValid, backupItem, detail, newValue, -1)') Add +tipField('detail.tip') .input-tip.form-group.has-feedback - input.form-control(name='{{detail.model}}' type='text' ng-model='newValue' ng-focus='tableNewItem(detail)' placeholder='{{::detail.placeholder}}')&attributes(customValidators) + input.form-control(name='{{detail.model}}' type='text' ng-model='newValue' ng-focus='tableNewItem(detail)' placeholder='{{::detail.placeholder}}' on-enter='tableSimpleSave(tableSimpleValid, backupItem, detail, newValue, -1)' on-escape='tableReset()')&attributes(customValidators) +ico-exclamation('{{detail.model}}', 'ipaddress', 'Invalid address, see help for format description.') mixin table-db-field-edit(databaseName, databaseType, javaName, javaType, focusId, index)