kopia lustrzana https://github.com/wagtail/wagtail
Move date / time widget initialiser JS into the widget's form media
This allows them to work on pages that do not include _editor_js.html (or page-editor.js). However, wagtailadmin/shared/datetimepicker_translations.html will still be required in order to localise the date picker UI. Move datepicker translations to admin_base.htmlpull/5318/head
rodzic
6859980d34
commit
4cb308bf66
|
@ -13,6 +13,7 @@ Changelog
|
||||||
* Added ButtonHelper examples in the modelAdmin primer page within documentation (Kalob Taulien)
|
* Added ButtonHelper examples in the modelAdmin primer page within documentation (Kalob Taulien)
|
||||||
* Multiple clarifications, grammar and typo fixes throughout documentation (Dan Swain)
|
* Multiple clarifications, grammar and typo fixes throughout documentation (Dan Swain)
|
||||||
* Use correct URL in API example in documentation (Michael Bunsen)
|
* Use correct URL in API example in documentation (Michael Bunsen)
|
||||||
|
* Move datetime widget initialiser JS into the widget's form media instead of page editor media (Matt Westcott)
|
||||||
* Fix: ModelAdmin no longer fails when filtering over a foreign key relation (Jason Dilworth, Matt Westcott)
|
* Fix: ModelAdmin no longer fails when filtering over a foreign key relation (Jason Dilworth, Matt Westcott)
|
||||||
* Fix: The Wagtail version number is now visible within the Settings menu (Kevin Howbrook)
|
* Fix: The Wagtail version number is now visible within the Settings menu (Kevin Howbrook)
|
||||||
* Fix: Scaling images now rounds values to an integer so that images render without errors (Adrian Brunyate)
|
* Fix: Scaling images now rounds values to an integer so that images render without errors (Adrian Brunyate)
|
||||||
|
|
|
@ -22,6 +22,7 @@ Other features
|
||||||
* Added ButtonHelper examples in the modelAdmin primer page within documentation (Kalob Taulien)
|
* Added ButtonHelper examples in the modelAdmin primer page within documentation (Kalob Taulien)
|
||||||
* Multiple clarifications, grammar and typo fixes throughout documentation (Dan Swain)
|
* Multiple clarifications, grammar and typo fixes throughout documentation (Dan Swain)
|
||||||
* Use correct URL in API example in documentation (Michael Bunsen)
|
* Use correct URL in API example in documentation (Michael Bunsen)
|
||||||
|
* Move datetime widget initialiser JS into the widget's form media instead of page editor media (Matt Westcott)
|
||||||
|
|
||||||
Bug fixes
|
Bug fixes
|
||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
$.fn.datetimepicker.defaults.i18n.wagtail_custom_locale = {
|
||||||
|
months: wagtailConfig.STRINGS.MONTHS,
|
||||||
|
dayOfWeek: wagtailConfig.STRINGS.WEEKDAYS,
|
||||||
|
dayOfWeekShort: wagtailConfig.STRINGS.WEEKDAYS_SHORT,
|
||||||
|
};
|
||||||
|
$.datetimepicker.setLocale('wagtail_custom_locale');
|
||||||
|
|
||||||
|
// Compare two date objects. Ignore minutes and seconds.
|
||||||
|
function dateEqual(x, y) {
|
||||||
|
return x.getDate() === y.getDate() &&
|
||||||
|
x.getMonth() === y.getMonth() &&
|
||||||
|
x.getYear() === y.getYear()
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Remove the xdsoft_current css class from markup unless the selected date is currently in view.
|
||||||
|
Keep the normal behaviour if the home button is clicked.
|
||||||
|
*/
|
||||||
|
function hideCurrent(current, input) {
|
||||||
|
var selected = new Date(input[0].value);
|
||||||
|
if (!dateEqual(selected, current)) {
|
||||||
|
$(this).find('.xdsoft_datepicker .xdsoft_current:not(.xdsoft_today)').removeClass('xdsoft_current');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initDateChooser(id, opts) {
|
||||||
|
if (window.dateTimePickerTranslations) {
|
||||||
|
$('#' + id).datetimepicker($.extend({
|
||||||
|
closeOnDateSelect: true,
|
||||||
|
timepicker: false,
|
||||||
|
scrollInput: false,
|
||||||
|
format: 'Y-m-d',
|
||||||
|
onGenerate: hideCurrent
|
||||||
|
}, opts || {}));
|
||||||
|
} else {
|
||||||
|
$('#' + id).datetimepicker($.extend({
|
||||||
|
timepicker: false,
|
||||||
|
scrollInput: false,
|
||||||
|
format: 'Y-m-d',
|
||||||
|
onGenerate: hideCurrent
|
||||||
|
}, opts || {}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initTimeChooser(id) {
|
||||||
|
if (window.dateTimePickerTranslations) {
|
||||||
|
$('#' + id).datetimepicker({
|
||||||
|
closeOnDateSelect: true,
|
||||||
|
datepicker: false,
|
||||||
|
scrollInput: false,
|
||||||
|
format: 'H:i',
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$('#' + id).datetimepicker({
|
||||||
|
datepicker: false,
|
||||||
|
format: 'H:i'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initDateTimeChooser(id, opts) {
|
||||||
|
if (window.dateTimePickerTranslations) {
|
||||||
|
$('#' + id).datetimepicker($.extend({
|
||||||
|
closeOnDateSelect: true,
|
||||||
|
format: 'Y-m-d H:i',
|
||||||
|
scrollInput: false,
|
||||||
|
onGenerate: hideCurrent
|
||||||
|
}, opts || {}));
|
||||||
|
} else {
|
||||||
|
$('#' + id).datetimepicker($.extend({
|
||||||
|
format: 'Y-m-d H:i',
|
||||||
|
onGenerate: hideCurrent
|
||||||
|
}, opts || {}));
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,75 +7,6 @@ function registerHalloPlugin(name, opts) {
|
||||||
compatibility, without throwing an error on later versions. */
|
compatibility, without throwing an error on later versions. */
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compare two date objects. Ignore minutes and seconds.
|
|
||||||
function dateEqual(x, y) {
|
|
||||||
return x.getDate() === y.getDate() &&
|
|
||||||
x.getMonth() === y.getMonth() &&
|
|
||||||
x.getYear() === y.getYear()
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Remove the xdsoft_current css class from markup unless the selected date is currently in view.
|
|
||||||
Keep the normal behaviour if the home button is clicked.
|
|
||||||
*/
|
|
||||||
function hideCurrent(current, input) {
|
|
||||||
var selected = new Date(input[0].value);
|
|
||||||
if (!dateEqual(selected, current)) {
|
|
||||||
$(this).find('.xdsoft_datepicker .xdsoft_current:not(.xdsoft_today)').removeClass('xdsoft_current');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function initDateChooser(id, opts) {
|
|
||||||
if (window.dateTimePickerTranslations) {
|
|
||||||
$('#' + id).datetimepicker($.extend({
|
|
||||||
closeOnDateSelect: true,
|
|
||||||
timepicker: false,
|
|
||||||
scrollInput: false,
|
|
||||||
format: 'Y-m-d',
|
|
||||||
onGenerate: hideCurrent
|
|
||||||
}, opts || {}));
|
|
||||||
} else {
|
|
||||||
$('#' + id).datetimepicker($.extend({
|
|
||||||
timepicker: false,
|
|
||||||
scrollInput: false,
|
|
||||||
format: 'Y-m-d',
|
|
||||||
onGenerate: hideCurrent
|
|
||||||
}, opts || {}));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function initTimeChooser(id) {
|
|
||||||
if (window.dateTimePickerTranslations) {
|
|
||||||
$('#' + id).datetimepicker({
|
|
||||||
closeOnDateSelect: true,
|
|
||||||
datepicker: false,
|
|
||||||
scrollInput: false,
|
|
||||||
format: 'H:i',
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
$('#' + id).datetimepicker({
|
|
||||||
datepicker: false,
|
|
||||||
format: 'H:i'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function initDateTimeChooser(id, opts) {
|
|
||||||
if (window.dateTimePickerTranslations) {
|
|
||||||
$('#' + id).datetimepicker($.extend({
|
|
||||||
closeOnDateSelect: true,
|
|
||||||
format: 'Y-m-d H:i',
|
|
||||||
scrollInput: false,
|
|
||||||
onGenerate: hideCurrent
|
|
||||||
}, opts || {}));
|
|
||||||
} else {
|
|
||||||
$('#' + id).datetimepicker($.extend({
|
|
||||||
format: 'Y-m-d H:i',
|
|
||||||
onGenerate: hideCurrent
|
|
||||||
}, opts || {}));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function InlinePanel(opts) {
|
function InlinePanel(opts) {
|
||||||
var self = {};
|
var self = {};
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,40 @@
|
||||||
SHOW_ERROR: "{% trans 'Show error' %}",
|
SHOW_ERROR: "{% trans 'Show error' %}",
|
||||||
EDITOR_CRASH: "{% trans 'The editor just crashed. Content has been reset to the last saved version.' %}",
|
EDITOR_CRASH: "{% trans 'The editor just crashed. Content has been reset to the last saved version.' %}",
|
||||||
BROKEN_LINK: "{% trans 'Broken link' %}",
|
BROKEN_LINK: "{% trans 'Broken link' %}",
|
||||||
MISSING_DOCUMENT: "{% trans 'Missing document' %}"
|
MISSING_DOCUMENT: "{% trans 'Missing document' %}",
|
||||||
|
|
||||||
|
MONTHS: [
|
||||||
|
"{% trans 'January' %}",
|
||||||
|
"{% trans 'February' %}",
|
||||||
|
"{% trans 'March' %}",
|
||||||
|
"{% trans 'April' %}",
|
||||||
|
"{% trans 'May' %}",
|
||||||
|
"{% trans 'June' %}",
|
||||||
|
"{% trans 'July' %}",
|
||||||
|
"{% trans 'August' %}",
|
||||||
|
"{% trans 'September' %}",
|
||||||
|
"{% trans 'October' %}",
|
||||||
|
"{% trans 'November' %}",
|
||||||
|
"{% trans 'December' %}"
|
||||||
|
],
|
||||||
|
WEEKDAYS: [
|
||||||
|
"{% trans 'Sunday' %}",
|
||||||
|
"{% trans 'Monday' %}",
|
||||||
|
"{% trans 'Tuesday' %}",
|
||||||
|
"{% trans 'Wednesday' %}",
|
||||||
|
"{% trans 'Thursday' %}",
|
||||||
|
"{% trans 'Friday' %}",
|
||||||
|
"{% trans 'Saturday' %}"
|
||||||
|
],
|
||||||
|
WEEKDAYS_SHORT: [
|
||||||
|
"{% trans 'Sun' %}",
|
||||||
|
"{% trans 'Mon' %}",
|
||||||
|
"{% trans 'Tue' %}",
|
||||||
|
"{% trans 'Wed' %}",
|
||||||
|
"{% trans 'Thu' %}",
|
||||||
|
"{% trans 'Fri' %}",
|
||||||
|
"{% trans 'Sat' %}"
|
||||||
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
wagtailConfig.ADMIN_URLS = {
|
wagtailConfig.ADMIN_URLS = {
|
||||||
|
|
|
@ -25,5 +25,3 @@
|
||||||
<script src="{% static 'wagtailadmin/js/vendor/bootstrap-tooltip.js' %}"></script>
|
<script src="{% static 'wagtailadmin/js/vendor/bootstrap-tooltip.js' %}"></script>
|
||||||
|
|
||||||
{% hook_output 'insert_editor_js' %}
|
{% hook_output 'insert_editor_js' %}
|
||||||
|
|
||||||
{% include "wagtailadmin/shared/datetimepicker_translations.html" %}
|
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
{% load i18n %}
|
|
||||||
|
|
||||||
<script>
|
|
||||||
$.fn.datetimepicker.defaults.i18n.wagtail_custom_locale = {
|
|
||||||
months: [
|
|
||||||
'{% trans "January" %}',
|
|
||||||
'{% trans "February" %}',
|
|
||||||
'{% trans "March" %}',
|
|
||||||
'{% trans "April" %}',
|
|
||||||
'{% trans "May" %}',
|
|
||||||
'{% trans "June" %}',
|
|
||||||
'{% trans "July" %}',
|
|
||||||
'{% trans "August" %}',
|
|
||||||
'{% trans "September" %}',
|
|
||||||
'{% trans "October" %}',
|
|
||||||
'{% trans "November" %}',
|
|
||||||
'{% trans "December" %}'
|
|
||||||
],
|
|
||||||
dayOfWeek: [
|
|
||||||
'{% trans "Sunday" %}',
|
|
||||||
'{% trans "Monday" %}',
|
|
||||||
'{% trans "Tuesday" %}',
|
|
||||||
'{% trans "Wednesday" %}',
|
|
||||||
'{% trans "Thursday" %}',
|
|
||||||
'{% trans "Friday" %}',
|
|
||||||
'{% trans "Saturday" %}'
|
|
||||||
],
|
|
||||||
dayOfWeekShort: [
|
|
||||||
'{% trans "Sun" %}',
|
|
||||||
'{% trans "Mon" %}',
|
|
||||||
'{% trans "Tue" %}',
|
|
||||||
'{% trans "Wed" %}',
|
|
||||||
'{% trans "Thu" %}',
|
|
||||||
'{% trans "Fri" %}',
|
|
||||||
'{% trans "Sat" %}'
|
|
||||||
],
|
|
||||||
}
|
|
||||||
$.datetimepicker.setLocale('wagtail_custom_locale');
|
|
||||||
</script>
|
|
|
@ -58,6 +58,9 @@ class AdminDateInput(widgets.DateInput):
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
class Media:
|
||||||
|
js = ['wagtailadmin/js/date-time-chooser.js']
|
||||||
|
|
||||||
|
|
||||||
class AdminTimeInput(widgets.TimeInput):
|
class AdminTimeInput(widgets.TimeInput):
|
||||||
template_name = 'wagtailadmin/widgets/time_input.html'
|
template_name = 'wagtailadmin/widgets/time_input.html'
|
||||||
|
@ -68,6 +71,9 @@ class AdminTimeInput(widgets.TimeInput):
|
||||||
default_attrs.update(attrs)
|
default_attrs.update(attrs)
|
||||||
super().__init__(attrs=default_attrs, format=format)
|
super().__init__(attrs=default_attrs, format=format)
|
||||||
|
|
||||||
|
class Media:
|
||||||
|
js = ['wagtailadmin/js/date-time-chooser.js']
|
||||||
|
|
||||||
|
|
||||||
class AdminDateTimeInput(widgets.DateTimeInput):
|
class AdminDateTimeInput(widgets.DateTimeInput):
|
||||||
template_name = 'wagtailadmin/widgets/datetime_input.html'
|
template_name = 'wagtailadmin/widgets/datetime_input.html'
|
||||||
|
@ -93,6 +99,9 @@ class AdminDateTimeInput(widgets.DateTimeInput):
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
class Media:
|
||||||
|
js = ['wagtailadmin/js/date-time-chooser.js']
|
||||||
|
|
||||||
|
|
||||||
class AdminTagWidget(TagWidget):
|
class AdminTagWidget(TagWidget):
|
||||||
template_name = 'wagtailadmin/widgets/tag_widget.html'
|
template_name = 'wagtailadmin/widgets/tag_widget.html'
|
||||||
|
|
|
@ -3,9 +3,15 @@
|
||||||
{% block titletag %}{% blocktrans with form_title=form_page.title|capfirst %}Submissions of {{ form_title }}{% endblocktrans %}{% endblock %}
|
{% block titletag %}{% blocktrans with form_title=form_page.title|capfirst %}Submissions of {{ form_title }}{% endblocktrans %}{% endblock %}
|
||||||
{% block extra_js %}
|
{% block extra_js %}
|
||||||
{{ block.super }}
|
{{ block.super }}
|
||||||
{% include "wagtailadmin/shared/datetimepicker_translations.html" %}
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
$.fn.datetimepicker.defaults.i18n.wagtail_custom_locale = {
|
||||||
|
months: wagtailConfig.STRINGS.MONTHS,
|
||||||
|
dayOfWeek: wagtailConfig.STRINGS.WEEKDAYS,
|
||||||
|
dayOfWeekShort: wagtailConfig.STRINGS.WEEKDAYS_SHORT,
|
||||||
|
}
|
||||||
|
$.datetimepicker.setLocale('wagtail_custom_locale');
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
$('#id_date_from').datetimepicker({
|
$('#id_date_from').datetimepicker({
|
||||||
timepicker: false,
|
timepicker: false,
|
||||||
|
|
Ładowanie…
Reference in New Issue