123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- (function ($) {
- Drupal.behaviors.dateAdmin = {};
- Drupal.behaviors.dateAdmin.attach = function (context, settings) {
- // Remove timezone handling options for fields without hours granularity.
- var $hour = $('#edit-field-settings-granularity-hour').once('date-admin');
- if ($hour.length) {
- new Drupal.dateAdmin.TimezoneHandler($hour);
- }
- };
- Drupal.dateAdmin = {};
- /**
- * Constructor for the TimezoneHandler object.
- *
- * This object is responsible for showing the timezone handling options dropdown
- * when the user has chosen to collect hours as part of the date field, and
- * hiding it otherwise.
- */
- Drupal.dateAdmin.TimezoneHandler = function ($checkbox) {
- this.$checkbox = $checkbox;
- this.$dropdown = $('#edit-field-settings-tz-handling');
- this.$timezoneDiv = $('.form-item-field-settings-tz-handling');
- // Store the initial value of the timezone handling dropdown.
- this.storeTimezoneHandling();
- // Toggle the timezone handling section when the user clicks the "Hour"
- // checkbox.
- this.$checkbox.bind('click', $.proxy(this.clickHandler, this));
- // Trigger the click handler so that if the checkbox is unchecked on initial
- // page load, the timezone handling section will be hidden.
- this.clickHandler();
- };
- /**
- * Event handler triggered when the user clicks the "Hour" checkbox.
- */
- Drupal.dateAdmin.TimezoneHandler.prototype.clickHandler = function () {
- if (this.$checkbox.is(':checked')) {
- this.restoreTimezoneHandlingOptions();
- }
- else {
- this.hideTimezoneHandlingOptions();
- }
- };
- /**
- * Hide the timezone handling options section of the form.
- */
- Drupal.dateAdmin.TimezoneHandler.prototype.hideTimezoneHandlingOptions = function () {
- this.storeTimezoneHandling();
- this.$dropdown.val('none');
- this.$timezoneDiv.hide();
- };
- /**
- * Show the timezone handling options section of the form.
- */
- Drupal.dateAdmin.TimezoneHandler.prototype.restoreTimezoneHandlingOptions = function () {
- var val = this.getTimezoneHandling();
- this.$dropdown.val(val);
- this.$timezoneDiv.show();
- };
- /**
- * Store the current value of the timezone handling dropdown.
- */
- Drupal.dateAdmin.TimezoneHandler.prototype.storeTimezoneHandling = function () {
- this._timezoneHandling = this.$dropdown.val();
- };
- /**
- * Return the stored value of the timezone handling dropdown.
- */
- Drupal.dateAdmin.TimezoneHandler.prototype.getTimezoneHandling = function () {
- return this._timezoneHandling;
- };
- })(jQuery);
|