فهرست منبع

Convert the page/collection privacy modal to use static onload handlers

Matt Westcott 6 سال پیش
والد
کامیت
bbffeca771

+ 0 - 2
.eslintignore

@@ -21,5 +21,3 @@ wagtail/embeds/templates/wagtailembeds/chooser/embed_chosen.js
 wagtail/embeds/templates/wagtailembeds/chooser/chooser.js
 wagtail/documents/templates/wagtaildocs/chooser/chooser.js
 wagtail/documents/templates/wagtaildocs/chooser/document_chosen.js
-wagtail/admin/templates/wagtailadmin/page_privacy/set_privacy.js
-wagtail/admin/templates/wagtailadmin/page_privacy/set_privacy_done.js

+ 33 - 0
wagtail/admin/static_src/wagtailadmin/js/privacy-switch.js

@@ -3,6 +3,39 @@ $(function() {
     $('a.action-set-privacy').on('click', function() {
         ModalWorkflow({
             url: this.href,
+            onload: {
+                'set_privacy': function(modal, jsonData) {
+                    $('form', modal.body).on('submit', function() {
+                        modal.postForm(this.action, $(this).serialize());
+                        return false;
+                    });
+
+                    var restrictionTypePasswordField = $("input[name='restriction_type'][value='password']", modal.body);
+                    var restrictionTypeGroupsField = $("input[name='restriction_type'][value='groups']", modal.body);
+                    var passwordField = $(".password-field", modal.body);
+                    var groupsFields = $('#groups-fields', modal.body);
+
+                    function refreshFormFields() {
+                        if (restrictionTypePasswordField.is(':checked')) {
+                            passwordField.show();
+                            groupsFields.hide();
+                        } else if (restrictionTypeGroupsField.is(':checked')){
+                            passwordField.hide();
+                            groupsFields.show();
+                        } else {
+                            passwordField.hide();
+                            groupsFields.hide();
+                        }
+                    }
+                    refreshFormFields();
+
+                    $("input[name='restriction_type']", modal.body).on('change', refreshFormFields);
+                },
+                'set_privacy_done': function(modal, jsonData) {
+                    modal.respond('setPermission', jsonData['is_public']);
+                    modal.close();
+                }
+            },
             responses: {
                 setPermission: function(isPublic) {
                     if (isPublic) {

+ 0 - 27
wagtail/admin/templates/wagtailadmin/collection_privacy/set_privacy.js

@@ -1,27 +0,0 @@
-function(modal) {
-    $('form', modal.body).on('submit', function() {
-        modal.postForm(this.action, $(this).serialize());
-        return false;
-    });
-
-    var restrictionTypePasswordField = $("input[name='restriction_type'][value='password']", modal.body);
-    var restrictionTypeGroupsField = $("input[name='restriction_type'][value='groups']", modal.body);
-    var passwordField = $(".password-field", modal.body);
-    var groupsFields = $('#groups-fields', modal.body);
-
-    function refreshFormFields() {
-        if (restrictionTypePasswordField.is(':checked')) {
-            passwordField.show();
-            groupsFields.hide();
-        } else if (restrictionTypeGroupsField.is(':checked')){
-            passwordField.hide();
-            groupsFields.show();
-        } else {
-            passwordField.hide();
-            groupsFields.hide();
-        }
-    }
-    refreshFormFields();
-
-    $("input[name='restriction_type']", modal.body).on('change', refreshFormFields);
-}

+ 0 - 4
wagtail/admin/templates/wagtailadmin/collection_privacy/set_privacy_done.js

@@ -1,4 +0,0 @@
-function(modal, jsonData) {
-    modal.respond('setPermission', jsonData['is_public']);
-    modal.close();
-}

+ 0 - 27
wagtail/admin/templates/wagtailadmin/page_privacy/set_privacy.js

@@ -1,27 +0,0 @@
-function(modal) {
-    $('form', modal.body).on('submit', function() {
-        modal.postForm(this.action, $(this).serialize());
-        return false;
-    });
-
-    var restrictionTypePasswordField = $("input[name='restriction_type'][value='password']", modal.body);
-    var restrictionTypeGroupsField = $("input[name='restriction_type'][value='groups']", modal.body);
-    var passwordField = $(".password-field", modal.body);
-    var groupsFields = $('#groups-fields', modal.body);
-
-    function refreshFormFields() {
-        if (restrictionTypePasswordField.is(':checked')) {
-            passwordField.show();
-            groupsFields.hide();
-        } else if (restrictionTypeGroupsField.is(':checked')){
-            passwordField.hide();
-            groupsFields.show();
-        } else {
-            passwordField.hide();
-            groupsFields.hide();
-        }
-    }
-    refreshFormFields();
-
-    $("input[name='restriction_type']", modal.body).on('change', refreshFormFields);
-}

+ 0 - 4
wagtail/admin/templates/wagtailadmin/page_privacy/set_privacy_done.js

@@ -1,4 +0,0 @@
-function(modal, jsonData) {
-    modal.respond('setPermission', jsonData['is_public']);
-    modal.close();
-}

+ 4 - 5
wagtail/admin/views/collection_privacy.py

@@ -34,8 +34,9 @@ def set_privacy(request, collection_id):
                 form.save()
 
             return render_modal_workflow(
-                request, None, 'wagtailadmin/collection_privacy/set_privacy_done.js',
+                request, None, None,
                 None, json_data={
+                    'step': 'set_privacy_done',
                     'is_public': (form.cleaned_data['restriction_type'] == 'none')
                 }
             )
@@ -62,10 +63,8 @@ def set_privacy(request, collection_id):
     else:
         # no restriction set at ancestor level - can set restrictions here
         return render_modal_workflow(
-            request,
-            'wagtailadmin/collection_privacy/set_privacy.html',
-            'wagtailadmin/collection_privacy/set_privacy.js', {
+            request, 'wagtailadmin/collection_privacy/set_privacy.html', None, {
                 'collection': collection,
                 'form': form,
-            }
+            }, json_data={'step': 'set_privacy'}
         )

+ 4 - 5
wagtail/admin/views/page_privacy.py

@@ -34,8 +34,9 @@ def set_privacy(request, page_id):
                 form.save()
 
             return render_modal_workflow(
-                request, None, 'wagtailadmin/page_privacy/set_privacy_done.js',
+                request, None, None,
                 None, json_data={
+                    'step': 'set_privacy_done',
                     'is_public': (form.cleaned_data['restriction_type'] == 'none')
                 }
             )
@@ -62,10 +63,8 @@ def set_privacy(request, page_id):
     else:
         # no restriction set at ancestor level - can set restrictions here
         return render_modal_workflow(
-            request,
-            'wagtailadmin/page_privacy/set_privacy.html',
-            'wagtailadmin/page_privacy/set_privacy.js', {
+            request, 'wagtailadmin/page_privacy/set_privacy.html', None, {
                 'page': page,
                 'form': form,
-            }
+            }, json_data={'step': 'set_privacy'}
         )