From 9a5b1cfe3e2115fd8d861f705030405057d2aa67 Mon Sep 17 00:00:00 2001 From: Aura Esteban Date: Mon, 12 Mar 2018 16:50:38 +0800 Subject: [PATCH 1/4] [DD-3320] Validate number only names when adding new item --- .../ModelFieldReference/ModelFieldReference.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/client/common/directives/ModelFieldReference/ModelFieldReference.js b/client/common/directives/ModelFieldReference/ModelFieldReference.js index 6360c68c..d8108215 100644 --- a/client/common/directives/ModelFieldReference/ModelFieldReference.js +++ b/client/common/directives/ModelFieldReference/ModelFieldReference.js @@ -19,7 +19,7 @@ angular.module('dashboard.directives.ModelFieldReference', [ }; }) -.directive('modelFieldReferenceEdit', function($compile, $cookies, Config, GeneralModelService) { +.directive('modelFieldReferenceEdit', function($compile, $cookies, Config, GeneralModelService, AlertModalService) { function getTemplate(multiple, matchTemplate, choiceTemplate) { var template = ''; if (multiple) { @@ -286,10 +286,15 @@ angular.module('dashboard.directives.ModelFieldReference', [ var textValue = item[scope.options.searchField]; if (item && item[scope.options.searchField] == "[Add New Item]") { //console.log("should add " + $select.search); + var numRegex = new RegExp('^[0-9]+$'); var value = element.find("input.ui-select-search").val().trim(); - if (value.length === 0) { + var isNewItemInvalid = typeof scope.options.allowNumericName !== 'undefined' && !scope.options.allowNumericName && numRegex.test(value) ? true : false; + if (value.length === 0 || isNewItemInvalid) { scope.data = null; textValue = ""; + if (isNewItemInvalid) { + AlertModalService.show('Please enter a valid ' + (scope.property.display.label || 'name') + '.'); + } } else { scope.data = value; var newItem = {}; From 60e41d6034e2f77da80ec8bbc8e754219dba2d62 Mon Sep 17 00:00:00 2001 From: Aura Esteban Date: Thu, 15 Mar 2018 15:11:10 +0800 Subject: [PATCH 2/4] [DD-3320] Update code format and validation --- .../directives/ModelFieldReference/ModelFieldReference.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/client/common/directives/ModelFieldReference/ModelFieldReference.js b/client/common/directives/ModelFieldReference/ModelFieldReference.js index d8108215..be633421 100644 --- a/client/common/directives/ModelFieldReference/ModelFieldReference.js +++ b/client/common/directives/ModelFieldReference/ModelFieldReference.js @@ -284,15 +284,17 @@ angular.module('dashboard.directives.ModelFieldReference', [ //emit an event when an item is selected scope.$emit('onModelFieldReferenceSelect', scope.modelData, scope.key, item); var textValue = item[scope.options.searchField]; - if (item && item[scope.options.searchField] == "[Add New Item]") { + if (item && item[scope.options.searchField] == '[Add New Item]') { //console.log("should add " + $select.search); var numRegex = new RegExp('^[0-9]+$'); - var value = element.find("input.ui-select-search").val().trim(); + var value = element.find('input.ui-select-search').val().trim(); var isNewItemInvalid = typeof scope.options.allowNumericName !== 'undefined' && !scope.options.allowNumericName && numRegex.test(value) ? true : false; - if (value.length === 0 || isNewItemInvalid) { + if (!value.length || isNewItemInvalid) { scope.data = null; textValue = ""; if (isNewItemInvalid) { + scope.selected.item = {}; + scope.modelData = {}; AlertModalService.show('Please enter a valid ' + (scope.property.display.label || 'name') + '.'); } } else { From dbf7005ff5836541193fa9d8b4208083fb0431e4 Mon Sep 17 00:00:00 2001 From: Aura Esteban Date: Thu, 15 Mar 2018 15:13:44 +0800 Subject: [PATCH 3/4] [DD-3320] Change to single quotes --- .../directives/ModelFieldReference/ModelFieldReference.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/common/directives/ModelFieldReference/ModelFieldReference.js b/client/common/directives/ModelFieldReference/ModelFieldReference.js index be633421..923cf5b0 100644 --- a/client/common/directives/ModelFieldReference/ModelFieldReference.js +++ b/client/common/directives/ModelFieldReference/ModelFieldReference.js @@ -291,7 +291,7 @@ angular.module('dashboard.directives.ModelFieldReference', [ var isNewItemInvalid = typeof scope.options.allowNumericName !== 'undefined' && !scope.options.allowNumericName && numRegex.test(value) ? true : false; if (!value.length || isNewItemInvalid) { scope.data = null; - textValue = ""; + textValue = ''; if (isNewItemInvalid) { scope.selected.item = {}; scope.modelData = {}; From b9ad9e02aba1b2efff77092cfd3e18c6195ee65f Mon Sep 17 00:00:00 2001 From: Aura Esteban Date: Thu, 15 Mar 2018 16:20:57 +0800 Subject: [PATCH 4/4] [DD-3320] Change to strict equality --- .../directives/ModelFieldReference/ModelFieldReference.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/common/directives/ModelFieldReference/ModelFieldReference.js b/client/common/directives/ModelFieldReference/ModelFieldReference.js index 923cf5b0..d5205786 100644 --- a/client/common/directives/ModelFieldReference/ModelFieldReference.js +++ b/client/common/directives/ModelFieldReference/ModelFieldReference.js @@ -284,7 +284,7 @@ angular.module('dashboard.directives.ModelFieldReference', [ //emit an event when an item is selected scope.$emit('onModelFieldReferenceSelect', scope.modelData, scope.key, item); var textValue = item[scope.options.searchField]; - if (item && item[scope.options.searchField] == '[Add New Item]') { + if (item && item[scope.options.searchField] === '[Add New Item]') { //console.log("should add " + $select.search); var numRegex = new RegExp('^[0-9]+$'); var value = element.find('input.ui-select-search').val().trim();