From 26aa58b242dd30c50c42c25b795cdd56206dee67 Mon Sep 17 00:00:00 2001 From: Olga Brani Date: Wed, 1 Jun 2016 15:48:03 +0300 Subject: [PATCH] admin-ui: Client-side validation for 'modify e-mail' --- .../synnefo_admin/admin/static/js/common.js | 29 +++++++++++++++++-- .../synnefo_admin/admin/static/js/details.js | 4 +++ .../synnefo_admin/admin/static/js/tables.js | 4 +++ .../admin/static/sass/_modals.scss | 11 ++++++- 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/snf-admin-app/synnefo_admin/admin/static/js/common.js b/snf-admin-app/synnefo_admin/admin/static/js/common.js index 88a2eb94e..ee647159f 100644 --- a/snf-admin-app/synnefo_admin/admin/static/js/common.js +++ b/snf-admin-app/synnefo_admin/admin/static/js/common.js @@ -167,6 +167,23 @@ snf = { } return noError; }, + toggleEmailErrorSign: function(el){ + var val = el.val(); + var errorSign = el.siblings('.error-sign'); + var isValid = snf.modals.validateEmail(val); + if (!isValid) { + errorSign.show(); + } else { + errorSign.hide(); + } + }, + validateModifyEmailForm: function(modal) { + var $modal = $(modal); + $modal.find('.new-email').each(function(i, el){ + snf.modals.toggleEmailErrorSign($(el)); + }); + return $modal.find('.error-sign:visible').length >0 ? false: true ; + }, resetInputs: function(modal) { var $modal = $(modal); $modal.find('input').each(function() { @@ -179,7 +196,7 @@ snf = { }, html: { singleItemInfo: '
Name:
<%= name %>
ID:
<%= id %>
', - singleItemInfoWithEmailInput: '
Name:
<%= name %>
ID:
<%= id %>
New e-mail:
', + singleItemInfoWithEmailInput: '
Name:
<%= name %>
ID:
<%= id %>
New e-mail:
', removeLogLine: 'X', notifyPending: '

Action "<%= actionName %>"<% if (itemsCount==1) { %> for <%= itemsCount %> item <% } else if (itemsCount>0) { %> for <%= itemsCount %> items <% } %> is pending.<%= removeBtn %>

', notifySuccess: '

Action "<%= actionName %>"<% if (itemsCount==1) { %> for <%= itemsCount %> item <% } else if (itemsCount>0) { %> for <%= itemsCount %> items <% } %> succeeded.<%= removeBtn %>

', @@ -193,7 +210,7 @@ snf = { warningDuplicates: '

Duplicate accounts have been detected.

', commonRow: ' <% if(hidden) { %> class="hidden-row" <% } %> ><%= itemName %><%= itemID %><%= ownerName %>
X<%= ownerEmail %>
', contactRow: ' title="related with: <%= associations %>" <% } %> data-itemid=<%= itemID %> <% if(hidden) { %> class="hidden-row" <% } %> ><%= fullName %>
X<%= email %>
', - modifyEmailRow: ' <% if(hidden) { %> class="hidden-row" <% } %> ><%= fullName %>
<%= email %>
X', + modifyEmailRow: ' <% if(hidden) { %> class="hidden-row" <% } %> ><%= fullName %>
<%= email %>
X', } }, @@ -214,7 +231,7 @@ snf = { } }, timer: 0, - ajaxdelay: 400 + ajaxdelay: 400, }; function setThemeIcon() { @@ -331,3 +348,9 @@ $(document).ready(function(){ } }); }); + +$('.modal').on('focusout', '.new-email', function(e){ + var el = $(this); + snf.modals.toggleEmailErrorSign(el); +}); + diff --git a/snf-admin-app/synnefo_admin/admin/static/js/details.js b/snf-admin-app/synnefo_admin/admin/static/js/details.js index 4e77ab020..ebe03cfb9 100644 --- a/snf-admin-app/synnefo_admin/admin/static/js/details.js +++ b/snf-admin-app/synnefo_admin/admin/static/js/details.js @@ -160,6 +160,10 @@ $(document).ready(function() { if($modal.attr('data-type') === 'contact') { noError = snf.modals.validateContactForm($modal); } + if($modal.attr('data-type') === 'modify_email') { + var validForm = snf.modals.validateModifyEmailForm($modal); + noError = noError && validForm; + } if(!noError) { e.preventDefault(); e.stopPropagation(); diff --git a/snf-admin-app/synnefo_admin/admin/static/js/tables.js b/snf-admin-app/synnefo_admin/admin/static/js/tables.js index c84f1b569..6ff6e0b06 100644 --- a/snf-admin-app/synnefo_admin/admin/static/js/tables.js +++ b/snf-admin-app/synnefo_admin/admin/static/js/tables.js @@ -713,6 +713,10 @@ $(document).ready(function() { var validForm = snf.modals.validateContactForm($modal); noError = noError && validForm; } + if($modal.attr('data-type') === 'modify_email') { + var validForm = snf.modals.validateModifyEmailForm($modal); + noError = noError && validForm; + } if(!noError) { e.preventDefault(); e.stopPropagation(); diff --git a/snf-admin-app/synnefo_admin/admin/static/sass/_modals.scss b/snf-admin-app/synnefo_admin/admin/static/sass/_modals.scss index 7207d8b67..dbea862c7 100644 --- a/snf-admin-app/synnefo_admin/admin/static/sass/_modals.scss +++ b/snf-admin-app/synnefo_admin/admin/static/sass/_modals.scss @@ -73,7 +73,6 @@ p.progress-area { border-color: $gray-dark; } } - } .modal { @@ -249,5 +248,15 @@ p.progress-area { text-decoration: none; } } + .new-email { + &+.error-sign { + right: -25px; + top: 10px; + } + } + + } + .info-list dd { + position: relative; } } -- GitLab