Skip to content

Commit 8cf65d3

Browse files
committed
replace auth.js by djng’s internal form & button directives
1 parent bad4dcc commit 8cf65d3

15 files changed

+264
-292
lines changed

shop/cascade/auth.py

+9-6
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@
1414
from shop.conf import app_settings
1515
from .plugin_base import ShopLinkPluginBase, ShopLinkElementMixin
1616

17-
AUTH_FORM_TYPES = (
17+
AUTH_FORM_TYPES = [
1818
('login', _("Login Form")),
19-
('login-reset', _("Login & Reset Form")),
19+
('login-reset', _("Login & Reset Form"), 'login'),
2020
('logout', _("Logout Form")),
21-
('login-logout', _("Shared Login/Logout Form")),
21+
('login-logout', _("Shared Login/Logout Form"), 'login'),
2222
('reset', _("Password Reset Form")),
2323
('change', _("Change Password Form")),
2424
('register-user', _("Register User"), 'shop.forms.auth.RegisterUserForm'),
2525
('continue-as-guest', _("Continue as guest")),
26-
)
26+
]
2727

2828

2929
class ShopAuthForm(LinkForm):
@@ -75,12 +75,15 @@ def render(self, context, instance, placeholder):
7575
try:
7676
FormClass = import_string(form_type[2])
7777
except (ImportError, IndexError):
78-
form_name = form_type[0].replace('-', '_')
78+
if len(form_type) > 2:
79+
form_name = form_type[2]
80+
else:
81+
form_name = form_type[0].replace('-', '_')
7982
context['form_name'] = '{0}_form'.format(form_name)
8083
else:
8184
context['form_name'] = FormClass.form_name
8285
context[FormClass.form_name] = FormClass()
83-
context['action'] = instance.link
86+
context['redirect_to'] = instance.link
8487
return self.super(ShopAuthenticationPlugin, self).render(context, instance, placeholder)
8588

8689
plugin_pool.register_plugin(ShopAuthenticationPlugin)

shop/static/shop/js/auth.js

-108
This file was deleted.

shop/templates/shop/auth/anonymous-base.html

+13-12
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
{% load i18n static sekizai_tags sass_tags %}
1+
{% load i18n static sekizai_tags %}
22

3-
{% addtoblock "js" %}<script src="{% static 'shop/js/auth.js' %}" type="text/javascript"></script>{% endaddtoblock %}
4-
{% addtoblock "ng-requires" %}django.shop.auth{% endaddtoblock %}
5-
6-
{% addtoblock "js" %}<script src="{% static 'node_modules/angular-messages/angular-messages.min.js' %}"></script>{% endaddtoblock %}
7-
{% addtoblock "ng-requires" %}ngMessages{% endaddtoblock %}
3+
{% addtoblock "js" %}<script src="{% static 'djng/js/django-angular.min.js' %}" type="text/javascript"></script>{% endaddtoblock %}
4+
{% add_data "ng-requires" "djng" %}
85

96
{% if customer.is_anonymous %}
107
<div class="panel panel-info">
@@ -13,16 +10,20 @@
1310
</div>
1411

1512
<div class="panel-body">
16-
<shop-auth-form ng-form name="{{ form_name }}" action="{{ action }}" role="form">
13+
<form {% block form_attrs %}name="{{ form_name }}" {% endblock %} role="form">
1714
{% block form_content %}
18-
<div class="alert alert-success" ng-show="success_message" ng-cloak>
19-
<a class="close" ng-click="dismiss()">×</a>{% verbatim %}{{ success_message }}{% endverbatim %}
15+
<div class="alert alert-success" ng-show="successMessageVisible()" ng-cloak>
16+
<a class="close" ng-click="dismissSubmitMessage()">×</a>
17+
<p ng-bind="getSubmitMessage()"></p>
2018
</div>
21-
<div class="alert alert-danger" ng-show="error_message" ng-cloak>
22-
<a class="close" ng-click="dismiss()">×</a>{% verbatim %}{{ error_message }}{% endverbatim %}
19+
20+
<div class="alert alert-danger" ng-show="rejectMessageVisible()" ng-cloak>
21+
<a class="close" ng-click="dismissSubmitMessage()">×</a>
22+
<p ng-bind="getSubmitMessage()"></p>
2323
</div>
2424
{% endblock form_content %}
25-
</shop-auth-form>
25+
</form>
26+
{% block form_below %}{% endblock %}
2627
</div>
2728
</div>
2829
{% else %}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
{% load static sekizai_tags sass_tags %}
1+
{% load i18n static sekizai_tags %}
22

3-
{% addtoblock "js" %}<script src="{% static 'shop/js/auth.js' %}" type="text/javascript"></script>{% endaddtoblock %}
4-
{% addtoblock "ng-requires" %}django.shop.auth{% endaddtoblock %}
5-
6-
{% addtoblock "js" %}<script src="{% static 'node_modules/angular-messages/angular-messages.min.js' %}"></script>{% endaddtoblock %}
7-
{% addtoblock "ng-requires" %}ngMessages{% endaddtoblock %}
3+
{% addtoblock "js" %}<script src="{% static 'djng/js/django-angular.min.js' %}" type="text/javascript"></script>{% endaddtoblock %}
4+
{% add_data "ng-requires" "djng" %}
85

96
{% if customer.is_authenticated %}
107
<div class="panel panel-info">
@@ -13,16 +10,21 @@
1310
</div>
1411

1512
<div class="panel-body">
16-
<shop-auth-form ng-form name="{{ form_name }}" action="{{ action }}" role="form">
13+
<form {% block form_attrs %}name="{{ form_name }}" {% endblock %} role="form">
1714
{% block form_content %}
18-
<div class="alert alert-success" ng-show="success_message" ng-cloak>
19-
<a class="close" ng-click="dismiss()">×</a>{% verbatim %}{{ success_message }}{% endverbatim %}
20-
</div>
21-
<div class="alert alert-danger" ng-show="error_message" ng-cloak>
22-
<a class="close" ng-click="dismiss()">×</a>{% verbatim %}{{ error_message }}{% endverbatim %}
23-
</div>
15+
<div class="alert alert-success" ng-show="successMessageVisible()" ng-cloak>
16+
<a class="close" ng-click="dismissSubmitMessage()">×</a>
17+
<p ng-bind="getSubmitMessage()"></p>
18+
</div>
19+
20+
<div class="alert alert-danger" ng-show="rejectMessageVisible()" ng-cloak>
21+
<a class="close" ng-click="dismissSubmitMessage()">×</a>
22+
<p ng-bind="getSubmitMessage()"></p>
23+
</div>
2424
{% endblock form_content %}
25-
</shop-auth-form>
25+
</form>
2626
</div>
2727
</div>
28+
{% else %}
29+
<div class="bg-warning">{% trans "This page shall only be reachable by authenticated users" %}</div>
2830
{% endif %}

shop/templates/shop/auth/change.html

+23-21
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,34 @@
22
{% load i18n %}
33

44
{% block form_title %}{% trans "Change Password" %}{% endblock %}
5+
{% block form_attrs %}{{ block.super }} djng-endpoint="{% url 'shop:password-change' %}"{% endblock %}
56

67
{% block form_content %}
78
{{ block.super }}
8-
<div class="form-group has-feedback" style="margin-bottom: 25px;">
9-
<label class="control-label">{% trans "New Password" %}</label>
10-
<div class="input-group">
11-
<span class="input-group-addon"><i class="fa fa-key fa-fw"></i></span>
12-
<input type="password" class="form-control" name="new_password1" ng-model="form_data.new_password1" placeholder="{% trans 'New Password' %}" />
9+
10+
<div class="form-group has-feedback" style="margin-bottom: 25px;">
11+
<label class="control-label">{% trans "New Password" %}</label>
12+
<div class="input-group">
13+
<span class="input-group-addon"><i class="fa fa-key fa-fw"></i></span>
14+
<input type="password" class="form-control" name="new_password1" ng-model="form_data.new_password1" placeholder="New Password" required>
15+
</div>
16+
<ul ng-show="change_form.new_password1.$error.rejected && change_form.new_password1.$pristine" class="shop-form-error" ng-cloak>
17+
<li ng-bind="change_form.new_password1.$message"></li>
18+
</ul>
1319
</div>
14-
<ul ng-messages="{{ form_name }}.new_password1.$error" ng-show="{{ form_name }}.new_password1.$pristine" class="shop-form-error" ng-cloak>
15-
<li ng-message="rejected"><span ng-bind="{{ form_name }}.new_password1.$message"></span></li>
16-
</ul>
17-
</div>
1820

19-
<div class="form-group has-feedback" style="margin-bottom: 25px;">
20-
<label class="control-label">{% trans "Confirm Password" %}</label>
21-
<div class="input-group">
22-
<span class="input-group-addon"><i class="fa fa-key fa-fw"></i></span>
23-
<input type="password" class="form-control" name="new_password2" ng-model="form_data.new_password2" placeholder="{% trans 'Confirm Password' %}" />
21+
<div class="form-group has-feedback" style="margin-bottom: 25px;">
22+
<label class="control-label">{% trans "Confirm Password" %}</label>
23+
<div class="input-group">
24+
<span class="input-group-addon"><i class="fa fa-key fa-fw"></i></span>
25+
<input type="password" class="form-control" name="new_password2" ng-model="form_data.new_password2" placeholder="Confirm Password" required>
26+
</div>
27+
<ul ng-show="change_form.new_password2.$error.rejected && change_form.new_password2.$pristine" class="shop-form-error" ng-cloak>
28+
<li ng-bind="change_form.new_password2.$message"></li>
29+
</ul>
2430
</div>
25-
<ul ng-messages="{{ form_name }}.new_password2.$error" ng-show="{{ form_name }}.new_password2.$pristine" class="shop-form-error" ng-cloak>
26-
<li ng-message="rejected"><span ng-bind="{{ form_name }}.new_password2.$message"></span></li>
27-
</ul>
28-
</div>
2931

30-
<div class="form-group">
31-
<button type="button" ng-click="submitForm('{% url "shop:password-change" %}', 2000)" class="btn btn-primary">{% trans "Submit Changes" %}</button>
32-
</div>
32+
<div class="form-group">
33+
<button type="button" ng-disabled="{{ form_name }}.$invalid" ng-click="do(update()).then(delay(2500)).then(redirectTo('{{ redirect_to }}'))" class="btn btn-primary">{% trans "Change Password" %}</button>
34+
</div>
3335
{% endblock form_content %}

shop/templates/shop/auth/continue-as-guest.html

+10-6
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@
22
{% load i18n %}
33

44
{% block form_title %}{% trans "Proceed as guest" %}{% endblock %}
5+
{% block form_attrs %}{{ block.super }}djng-endpoint="{% url 'shop:continue-as-guest' %}"{% endblock %}
56

67
{% block form_content %}
7-
{{ block.super }}
8-
9-
<div class="form-group">
10-
<button type="button" ng-click="submitForm('{% url 'shop:continue-as-guest' %}')" class="btn btn-primary">{% trans "Continue as guest" %}</button>
11-
</div>
12-
{% endblock form_content %}
8+
{{ block.super }}
9+
<input type="hidden" name="dummy" ng-model="dummy" />
10+
<div class="form-group">
11+
<button type="button" ng-click="do(create()).then(showOk()).then(delay(500)).finally(restore())" class="btn btn-primary">
12+
{% trans "Continue as guest" %}
13+
&emsp;<i class="glyphicon glyphicon-log-in"></i>
14+
</button>
15+
</div>
16+
{% endblock form_content %}

shop/templates/shop/auth/login-reset.html

+29-15
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,34 @@
22
{% load i18n static %}
33

44
{% block form_footer %}
5-
<div class="form-group">
6-
<button type="button" ng-click="submitForm('{% url "shop:login" %}')" class="btn btn-primary">{% trans "Login" %}</button>
7-
<button type="button" ng-click="showResetForm=!showResetForm;" class="btn btn-link pull-right">{% trans "Password Forgotten?" %}</button>
8-
</div>
5+
{{ block.super }}
6+
<a ng-click="showResetForm=!showResetForm;" class="btn btn-link pull-right">{% trans "Password Forgotten?" %}</a>
7+
{% endblock form_footer %}
98

10-
<div ng-show="showResetForm" ng-cloak>
11-
<label class="control-label">{% trans "Your e-mail address" %}</label>
12-
<div style="margin-bottom: 20px" class="input-group">
13-
<span class="input-group-addon"><i class="fa fa-envelope-o fa-fw"></i></span>
14-
<input type="text" class="form-control" name="email" ng-model="form_data.email" value="" placeholder="{% trans 'Email' %}" />
15-
</div>
9+
{% block form_below %}
10+
<form name="reset_form" djng-endpoint="{% url "shop:password-reset" %}" ng-show="showResetForm" ng-cloak>
11+
<div class="alert alert-success" ng-show="reset_form.$valid && reset_form.$submitted" ng-cloak>
12+
<a class="close" ng-click="reset_form.$setPristine()">×</a>
13+
<p ng-bind="reset_form.$message"></p>
14+
</div>
1615

17-
<div class="form-group" ng-hide="success_message">
18-
<button type="button" ng-click="submitForm('{% url "shop:password-reset" %}', 5000)" class="btn btn-primary">{% trans "Reset Password" %}</button>
19-
</div>
20-
</div>
21-
{% endblock form_footer %}
16+
<div class="form-group has-feedback" style="margin-bottom: 20px">
17+
<label class="control-label">{% trans "Your e-mail address" %}</label>
18+
<div class="input-group" ng-class="hasError('email')">
19+
<span class="input-group-addon"><i class="fa fa-envelope-o fa-fw"></i></span>
20+
<input type="email" class="form-control" name="email" ng-model="form_data.email" placeholder="{% trans 'Email' %}" ng-required="true" />
21+
</div>
22+
<ul ng-show="reset_form.email.$dirty && reset_form.email.$touched" class="djng-field-errors" ng-cloak>
23+
<li ng-show="reset_form.email.$error.required" class="invalid">{% trans "This field is required." %}</li>
24+
<li ng-show="reset_form.email.$error.email" class="invalid">{% trans "Enter a valid email address." %}</li>
25+
<li ng-show="reset_form.email.$valid" class="valid"></li>
26+
</ul>
27+
</div>
28+
29+
<div class="form-group">
30+
<button type="button" ng-click="do(disable()).then(create()).finally(restore())" ng-disabled="isDisabled()" class="btn btn-sm btn-warning">
31+
{% trans "Reset Password" %}
32+
</button>
33+
</div>
34+
</form>
35+
{% endblock form_below %}

0 commit comments

Comments
 (0)