diff --git a/admin/code/LeftAndMain.php b/admin/code/LeftAndMain.php index 5e6f75f7b..0a8997567 100644 --- a/admin/code/LeftAndMain.php +++ b/admin/code/LeftAndMain.php @@ -235,6 +235,9 @@ class LeftAndMain extends Controller { Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.AddForm.js'); Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Preview.js'); Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.BatchActions.js'); + + // Handled by LeftAndMain.js + Requirements::block(SAPPHIRE_DIR . '/javascript/DateField.js'); Requirements::themedCSS('typography'); diff --git a/admin/javascript/LeftAndMain.js b/admin/javascript/LeftAndMain.js index 7781cf5e7..16345f309 100644 --- a/admin/javascript/LeftAndMain.js +++ b/admin/javascript/LeftAndMain.js @@ -276,6 +276,29 @@ } }); + /** + * Duplicates functionality in DateField.js, but due to using entwine we can match + * the DOM element on creation, rather than onclick - which allows us to decorate + * the field with a calendar icon + */ + $('.LeftAndMain .field.date input.text').entwine({ + onmatch: function() { + var holder = $(this).parents('.field.date:first'), config = holder.metadata({type: 'class'}); + if(!config.showcalendar) return; + + config.showOn = 'button'; + if(config.locale && $.datepicker.regional[config.locale]) { + config = $.extend(config, $.datepicker.regional[config.locale], {}); + } + + $(this).datepicker(config); + // // Unfortunately jQuery UI only allows configuration of icon images, not sprites + // this.next('button').button('option', 'icons', {primary : 'ui-icon-calendar'}); + + this._super(); + } + }) + }); }(jQuery));