From b45ed915dc41b5d0e286bfc2517fb776eec4dc80 Mon Sep 17 00:00:00 2001
From: jpl
Date: Wed, 28 Jun 2017 17:45:46 +0200
Subject: Refs #3862: adding validation on ITL form
---
 .../javascripts/routing_constraint_zones.coffee    | 47 +++++++++++++---------
 app/assets/stylesheets/components/_alerts.sass     |  4 ++
 2 files changed, 33 insertions(+), 18 deletions(-)
diff --git a/app/assets/javascripts/routing_constraint_zones.coffee b/app/assets/javascripts/routing_constraint_zones.coffee
index ceb9fb218..8721dfb38 100644
--- a/app/assets/javascripts/routing_constraint_zones.coffee
+++ b/app/assets/javascripts/routing_constraint_zones.coffee
@@ -30,29 +30,40 @@
           $('#ITL_stoppoints').find('.nested-fields').remove()
           $('#ITL_stoppoints').find('.nested-head').after(html)
 
-    # VALIDATION
-    selection = []
-    $('#ITL_stoppoints').on 'click', "input[type='checkbox']", (e) ->
-      v = $(e.target).val()
+        # VALIDATION
+        selection = []
 
-      if ( $.inArray(v, selection) != -1 )
-        selection.splice(selection.indexOf(v), 1)
-      else
-        selection.push(v)
+        totalItems = collection.length
 
-    alertMsg = "
-                  
Un ITL doit comporter au moins deux arrêts
-                
 "
+        $('#ITL_stoppoints').on 'click', "input[type='checkbox']", (e) ->
+          v = $(e.target).val()
 
-    $(document).on 'click', "input[type='submit']", (e)->
-      inputName = $('#routing_constraint_zone_name').val()
+          if ( $.inArray(v, selection) != -1 )
+            selection.splice(selection.indexOf(v), 1)
+          else
+            selection.push(v)
 
-      $('.alert-danger').remove()
+        alertMsg1 = "
+                      
Un ITL doit comporter au moins deux arrêts
+                    
 "
+        alertMsg2 = "
+                      
Un ITL ne peut recouvrir tous les arrêts d'un itinéraire
+                    
 "
 
-      if ( selection.length < 2 && inputName != "")
-        e.preventDefault()
-        $('#routing_constraint_zone_name').closest('.form-group').removeClass('has-error').find('.help-block').remove()
-        $('#ITL_stoppoints').prepend(alertMsg)
+        $(document).on 'click', "input[type='submit']", (e)->
+          inputName = $('#routing_constraint_zone_name').val()
+
+          $('.alert-danger').remove()
+
+          if ( selection.length < 2 && inputName != "" )
+            e.preventDefault()
+            $('#routing_constraint_zone_name').closest('.form-group').removeClass('has-error').find('.help-block').remove()
+            $('#ITL_stoppoints').prepend(alertMsg1)
+
+          if ( selection.length == totalItems && inputName != "" )
+            e.preventDefault()
+            $('#routing_constraint_zone_name').closest('.form-group').removeClass('has-error').find('.help-block').remove()
+            $('#ITL_stoppoints').prepend(alertMsg2)
 
 $ ->
   ITL_stoppoints()
diff --git a/app/assets/stylesheets/components/_alerts.sass b/app/assets/stylesheets/components/_alerts.sass
index 923b67cbc..50799ff65 100644
--- a/app/assets/stylesheets/components/_alerts.sass
+++ b/app/assets/stylesheets/components/_alerts.sass
@@ -21,6 +21,10 @@
       color: inherit
       border-color: inherit
 
+  form, .simple_form
+    &
+      margin-bottom: 15px
+
   &.alert-dismissible
     padding-right: 70px
 
-- 
cgit v1.2.3