From 9ecbe33f5ea07a3b19ea569a55a54f5f415e5b06 Mon Sep 17 00:00:00 2001 From: Mark Friedrich Date: Fri, 6 Dec 2019 17:38:36 +0100 Subject: [PATCH] - Improved signature 'ID' (e.g. ABC-123) parsing, closed #876 --- app/main/model/pathfinder/systemsignaturemodel.php | 2 +- js/app/ui/module/system_signature.js | 10 ++++------ public/js/v1.5.5/app/ui/module/system_signature.js | 10 ++++------ 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/app/main/model/pathfinder/systemsignaturemodel.php b/app/main/model/pathfinder/systemsignaturemodel.php index 94ed95d6..06be9f3a 100644 --- a/app/main/model/pathfinder/systemsignaturemodel.php +++ b/app/main/model/pathfinder/systemsignaturemodel.php @@ -167,7 +167,7 @@ class SystemSignatureModel extends AbstractMapTrackingModel { */ protected function validate_name(string $key, string $val): bool { $valid = true; - if(mb_strlen($val) < 3){ + if(!mb_ereg('^[a-zA-Z]{3}-\d{3}$', $val)){ $valid = false; $this->throwValidationException($key); } diff --git a/js/app/ui/module/system_signature.js b/js/app/ui/module/system_signature.js index e590ff3a..9cd89c4e 100644 --- a/js/app/ui/module/system_signature.js +++ b/js/app/ui/module/system_signature.js @@ -142,7 +142,7 @@ define([ reason = jqXHR.statusText; }else if(jqXHR.name){ // validation error new sig (new row data save function) - reason = jqXHR.name; + reason = jqXHR.name.msg; // re-open "name" fields (its a collection of fields but we need "id" field) jqXHR.name.field.$element.editable('show'); }else{ @@ -1641,11 +1641,9 @@ define([ }, validate: function(value){ let msg = false; - let mbLength = [...$.trim(value)].length; // unicode beware - if(mbLength < 3){ - msg = 'Id is less than min of "3"'; - }else if(mbLength > 10){ - msg = 'Id is more than max of "10"'; + //let mbLength = [...$.trim(value)].length; // unicode beware + if(! value.trimChars().match(/^[a-zA-Z]{3}-\d{3}$/)){ + msg = 'ID format invalid. E.g.: ABC-123'; } if(msg){ diff --git a/public/js/v1.5.5/app/ui/module/system_signature.js b/public/js/v1.5.5/app/ui/module/system_signature.js index e590ff3a..9cd89c4e 100644 --- a/public/js/v1.5.5/app/ui/module/system_signature.js +++ b/public/js/v1.5.5/app/ui/module/system_signature.js @@ -142,7 +142,7 @@ define([ reason = jqXHR.statusText; }else if(jqXHR.name){ // validation error new sig (new row data save function) - reason = jqXHR.name; + reason = jqXHR.name.msg; // re-open "name" fields (its a collection of fields but we need "id" field) jqXHR.name.field.$element.editable('show'); }else{ @@ -1641,11 +1641,9 @@ define([ }, validate: function(value){ let msg = false; - let mbLength = [...$.trim(value)].length; // unicode beware - if(mbLength < 3){ - msg = 'Id is less than min of "3"'; - }else if(mbLength > 10){ - msg = 'Id is more than max of "10"'; + //let mbLength = [...$.trim(value)].length; // unicode beware + if(! value.trimChars().match(/^[a-zA-Z]{3}-\d{3}$/)){ + msg = 'ID format invalid. E.g.: ABC-123'; } if(msg){