kopia lustrzana https://github.com/wagtail/wagtail
Add canChooseRoot flag to createPageChooser JS function
rodzic
22d1dd7c7e
commit
340dd73602
|
@ -1,4 +1,4 @@
|
|||
function createPageChooser(id, pageTypes, openAtParentId) {
|
||||
function createPageChooser(id, pageTypes, openAtParentId, canChooseRoot) {
|
||||
var chooserElement = $('#' + id + '-chooser');
|
||||
var pageTitle = chooserElement.find('.title');
|
||||
var input = $('#' + id);
|
||||
|
@ -10,9 +10,14 @@ function createPageChooser(id, pageTypes, openAtParentId) {
|
|||
initialUrl += openAtParentId + '/';
|
||||
}
|
||||
|
||||
var urlParams = {page_type: pageTypes.join(',')};
|
||||
if (canChooseRoot) {
|
||||
urlParams.can_choose_root = 'true';
|
||||
}
|
||||
|
||||
ModalWorkflow({
|
||||
url: initialUrl,
|
||||
urlParams: { page_type: pageTypes.join(',') },
|
||||
urlParams: urlParams,
|
||||
responses: {
|
||||
pageChosen: function(pageData) {
|
||||
input.val(pageData.id);
|
||||
|
|
|
@ -365,7 +365,7 @@ class TestPageChooserPanel(TestCase):
|
|||
|
||||
def test_render_js_init(self):
|
||||
result = self.page_chooser_panel.render_as_field()
|
||||
expected_js = 'createPageChooser("{id}", ["{model}"], {parent});'.format(
|
||||
expected_js = 'createPageChooser("{id}", ["{model}"], {parent}, false);'.format(
|
||||
id="id_page", model="wagtailcore.page", parent=self.events_index_page.id)
|
||||
|
||||
self.assertIn(expected_js, result)
|
||||
|
@ -408,7 +408,7 @@ class TestPageChooserPanel(TestCase):
|
|||
page_chooser_panel = self.MyPageChooserPanel(instance=self.test_instance, form=form)
|
||||
|
||||
result = page_chooser_panel.render_as_field()
|
||||
expected_js = 'createPageChooser("{id}", ["{model}"], {parent});'.format(
|
||||
expected_js = 'createPageChooser("{id}", ["{model}"], {parent}, false);'.format(
|
||||
id="id_page", model="tests.eventpage", parent=self.events_index_page.id)
|
||||
|
||||
self.assertIn(expected_js, result)
|
||||
|
@ -422,7 +422,7 @@ class TestPageChooserPanel(TestCase):
|
|||
page_chooser_panel = self.MyPageChooserPanel(instance=self.test_instance, form=form)
|
||||
|
||||
result = page_chooser_panel.render_as_field()
|
||||
expected_js = 'createPageChooser("{id}", ["{model}"], {parent});'.format(
|
||||
expected_js = 'createPageChooser("{id}", ["{model}"], {parent}, false);'.format(
|
||||
id="id_page", model="tests.eventpage", parent=self.events_index_page.id)
|
||||
|
||||
self.assertIn(expected_js, result)
|
||||
|
|
|
@ -32,7 +32,7 @@ class TestAdminPageChooserWidget(TestCase):
|
|||
widget = widgets.AdminPageChooser()
|
||||
|
||||
js_init = widget.render_js_init('test-id', 'test', None)
|
||||
self.assertEqual(js_init, "createPageChooser(\"test-id\", [\"wagtailcore.page\"], null);")
|
||||
self.assertEqual(js_init, "createPageChooser(\"test-id\", [\"wagtailcore.page\"], null, false);")
|
||||
|
||||
def test_render_html_with_value(self):
|
||||
widget = widgets.AdminPageChooser()
|
||||
|
@ -44,7 +44,7 @@ class TestAdminPageChooserWidget(TestCase):
|
|||
widget = widgets.AdminPageChooser()
|
||||
|
||||
js_init = widget.render_js_init('test-id', 'test', self.child_page)
|
||||
self.assertEqual(js_init, "createPageChooser(\"test-id\", [\"wagtailcore.page\"], %d);" % self.root_page.id)
|
||||
self.assertEqual(js_init, "createPageChooser(\"test-id\", [\"wagtailcore.page\"], %d, false);" % self.root_page.id)
|
||||
|
||||
# def test_render_html_init_with_content_type omitted as HTML does not
|
||||
# change when selecting a content type
|
||||
|
@ -54,7 +54,7 @@ class TestAdminPageChooserWidget(TestCase):
|
|||
widget = widgets.AdminPageChooser(content_type=content_type)
|
||||
|
||||
js_init = widget.render_js_init('test-id', 'test', None)
|
||||
self.assertEqual(js_init, "createPageChooser(\"test-id\", [\"tests.simplepage\"], null);")
|
||||
self.assertEqual(js_init, "createPageChooser(\"test-id\", [\"tests.simplepage\"], null, false);")
|
||||
|
||||
def test_render_js_init_with_multiple_content_types(self):
|
||||
content_types = [
|
||||
|
@ -65,4 +65,4 @@ class TestAdminPageChooserWidget(TestCase):
|
|||
widget = widgets.AdminPageChooser(content_type=content_types)
|
||||
|
||||
js_init = widget.render_js_init('test-id', 'test', None)
|
||||
self.assertEqual(js_init, "createPageChooser(\"test-id\", [\"tests.simplepage\", \"tests.eventpage\"], null);")
|
||||
self.assertEqual(js_init, "createPageChooser(\"test-id\", [\"tests.simplepage\", \"tests.eventpage\"], null, false);")
|
||||
|
|
|
@ -166,7 +166,7 @@ class AdminPageChooser(AdminChooser):
|
|||
|
||||
parent = page.get_parent() if page else None
|
||||
|
||||
return "createPageChooser({id}, {content_type}, {parent});".format(
|
||||
return "createPageChooser({id}, {content_type}, {parent}, false);".format(
|
||||
id=json.dumps(id_),
|
||||
content_type=json.dumps([
|
||||
'{app}.{model}'.format(
|
||||
|
|
Ładowanie…
Reference in New Issue