Force check form validity if action attibute is defined

Remove debug
This commit is contained in:
Nicolas Le Goff
2013-03-04 19:40:30 +01:00
committed by Romain Neutron
parent 0e02b5b8bd
commit 39e08dc81c
6 changed files with 66 additions and 10 deletions

View File

@@ -14,8 +14,16 @@
</div>
</div><!-- /row -->
<div class="row-fluid">
<div class="span12" ng-controller="passwordChangeFormCtrl">
<form novalidate name="{{ form.vars.name}}" ng-submit="submit();">
<div class="span12">
<form
ng-controller="passwordChangeFormCtrl"
novalidate
name="{{ form.vars.name}}"
ng-submit="submit();"
method="POST"
action="{{ path('submit_login_new_password') }}"
check-form-submission>
<div class="row-fluid">
<div class="span12">
{{ auth_macro.fieldInput(form.password, form.vars.name, 'icon-lock') }}

View File

@@ -17,8 +17,15 @@
</div>
</div><!-- /row -->
<div class="row-fluid">
<div class="span12" ng-controller="forgottenPasswordFormCtrl">
<form novalidate name="{{ form.vars.name }}" ng-submit="submit();">
<div class="span12">
<form
ng-controller="forgottenPasswordFormCtrl"
novalidate
name="{{ form.vars.name }}"
ng-submit="submit();"
action="{{ path("submit_login_forgot_password") }}"
method="POST"
check-form-submission>
<div class="row-fluid">
<div class="span12">
{{ auth_macro.fieldInput(form.email, form.vars.name, 'icon-envelope') }}

View File

@@ -31,10 +31,18 @@
</div>
<div class="row-fluid">
<div class="span12" ng-controller="LoginFormController">
<div class="span12">
{{ auth_macro.alert() }}
<form novalidate name="{{ form.vars.name }}" ng-submit="submit();">
<form
ng-controller="LoginFormController"
novalidate
name="{{ form.vars.name }}"
ng-submit="submit();"
method="POST"
action="{{ path("login_authenticate") }}"
check-form-submission>
<div class="row-fluid">
<div class="span12">
{{ auth_macro.fieldInput(form.email, form.vars.name, 'icon-envelope') }}

View File

@@ -50,9 +50,17 @@
</div>
</div>
<div class="row-fluid">
<div class="span12" ng-controller="LoginFormController">
<div class="span12">
{{ auth_macro.alert() }}
<form novalidate name="{{ form.vars.name }}" ng-submit="submit();">
<form
ng-controller="LoginFormController"
novalidate
name="{{ form.vars.name }}"
ng-submit="submit();"
action="{{ path("login_authentication_provider_bind") }}"
method="POST"
check-form-submission
>
<div class="row-fluid hidden">
<div class="span12">
{{ auth_macro.fieldInput(form.email, form.vars.name, 'icon-envelope') }}

View File

@@ -38,9 +38,16 @@
</div>
</div>
<div class="row-fluid">
<div class="span12" ng-controller="LoginFormController">
<div class="span12">
{{ auth_macro.alert() }}
<form novalidate name="{{ form.vars.name }}" ng-submit="submit();">
<form
ng-controller="LoginFormController"
novalidate
name="{{ form.vars.name }}"
ng-submit="submit();"
action="{{ path("login_authentication_provider_mapping") }}"
method="POST"
check-form-submission>
<div class="row-fluid">
<div class="span12">
{{ auth_macro.fieldInput(form.email, form.vars.name, 'icon-envelope') }}

View File

@@ -105,6 +105,24 @@ angular.module('phraseanetAuthentication', ['ui'])
});
}
}
}).directive('checkFormSubmission', function () {
// Angular does not prevent form submission if form is not valid and if action attribute is defined.
// This directive change angular's behavior by cancelling form submission
// if form is not valid even if action attribute is defined
return {
link: function (scope, element, attrs, controller) {
scope.$watch(attrs.name + '.$valid', function(value) {
if(false === value && !!element.attr('action')) {
element.bind('submit', function(event) {
event.preventDefault();
return false;
});
} else {
element.unbind('submit').trigger('submit');
}
});
}
}
}).directive('alert', function () {
return {
restrict:'EA',