X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=blobdiff_plain;f=includes%2Fwidget%2FDateInputWidget.php;h=afa6570562817c1b7d31baa8ad7df2a07aba0502;hb=a506b14251ae044907f8e107af417ea4952fce10;hp=f011f0b8af4f0f57251f47df3d7cf96197a674fa;hpb=86448ece43db70f21d591b7d0ce52447664a2600;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/widget/DateInputWidget.php b/includes/widget/DateInputWidget.php index f011f0b8af..afa6570562 100644 --- a/includes/widget/DateInputWidget.php +++ b/includes/widget/DateInputWidget.php @@ -19,45 +19,44 @@ class DateInputWidget extends \OOUI\TextInputWidget { protected $inputFormat = null; protected $displayFormat = null; + protected $longDisplayFormat = null; protected $placeholderLabel = null; protected $placeholderDateFormat = null; protected $precision = null; protected $mustBeAfter = null; protected $mustBeBefore = null; - protected $overlay = null; /** * @param array $config Configuration options - * @param string $config['inputFormat'] Date format string to use for the textual input field. - * Displayed while the widget is active, and the user can type in a date in this format. - * Should be short and easy to type. (default: 'YYYY-MM-DD' or 'YYYY-MM', depending on - * `precision`) - * @param string $config['displayFormat'] Date format string to use for the clickable label. - * while the widget is inactive. Should be as unambiguous as possible (for example, prefer - * to spell out the month, rather than rely on the order), even if that makes it longer. - * Applicable only if the widget is infused. (default: language-specific) - * @param string $config['placeholderLabel'] Placeholder text shown when the widget is not - * selected. Applicable only if the widget is infused. (default: taken from message - * `mw-widgets-dateinput-no-date`) - * @param string $config['placeholderDateFormat'] User-visible date format string displayed - * in the textual input field when it's empty. Should be the same as `inputFormat`, but - * translated to the user's language. (default: 'YYYY-MM-DD' or 'YYYY-MM', depending on - * `precision`) - * @param string $config['precision'] Date precision to use, 'day' or 'month' (default: 'day') - * @param string $config['mustBeAfter'] Validates the date to be after this. - * In the 'YYYY-MM-DD' or 'YYYY-MM' format, depending on `precision`. - * @param string $config['mustBeBefore'] Validates the date to be before this. - * In the 'YYYY-MM-DD' or 'YYYY-MM' format, depending on `precision`. - * @param string $config['overlay'] The jQuery selector for the overlay layer on which to render - * the calendar. This configuration is useful in cases where the expanded calendar is larger - * than its container. The specified overlay layer is usually on top of the container and has - * a larger area. Applicable only if the widget is infused. By default, the calendar uses - * relative positioning. + * - string $config['inputFormat'] Date format string to use for the textual input field. + * Displayed while the widget is active, and the user can type in a date in this format. + * Should be short and easy to type. (default: 'YYYY-MM-DD' or 'YYYY-MM', depending on + * `precision`) + * - string $config['displayFormat'] Date format string to use for the clickable label. + * while the widget is inactive. Should be as unambiguous as possible (for example, prefer + * to spell out the month, rather than rely on the order), even if that makes it longer. + * Applicable only if the widget is infused. (default: language-specific) + * - string $config['longDisplayFormat'] If a custom displayFormat is not specified, use + * unabbreviated day of the week and month names in the default language-specific + * displayFormat. (default: false) + * - string $config['placeholderLabel'] Placeholder text shown when the widget is not + * selected. Applicable only if the widget is infused. (default: taken from message + * `mw-widgets-dateinput-no-date`) + * - string $config['placeholderDateFormat'] User-visible date format string displayed + * in the textual input field when it's empty. Should be the same as `inputFormat`, but + * translated to the user's language. (default: 'YYYY-MM-DD' or 'YYYY-MM', depending on + * `precision`) + * - string $config['precision'] Date precision to use, 'day' or 'month' (default: 'day') + * - string $config['mustBeAfter'] Validates the date to be after this. + * In the 'YYYY-MM-DD' or 'YYYY-MM' format, depending on `precision`. + * - string $config['mustBeBefore'] Validates the date to be before this. + * In the 'YYYY-MM-DD' or 'YYYY-MM' format, depending on `precision`. */ public function __construct( array $config = [] ) { $config = array_merge( [ // Default config values 'precision' => 'day', + 'longDisplayFormat' => false, ], $config ); // Properties @@ -79,12 +78,12 @@ class DateInputWidget extends \OOUI\TextInputWidget { if ( isset( $config['displayFormat'] ) ) { $this->displayFormat = $config['displayFormat']; } + if ( isset( $config['longDisplayFormat'] ) ) { + $this->longDisplayFormat = $config['longDisplayFormat']; + } if ( isset( $config['placeholderLabel'] ) ) { $this->placeholderLabel = $config['placeholderLabel']; } - if ( isset( $config['overlay'] ) ) { - $this->overlay = $config['overlay']; - } // Set up placeholder text visible if the browser doesn't override it (logic taken from JS) if ( $this->placeholderDateFormat !== null ) { @@ -101,7 +100,6 @@ class DateInputWidget extends \OOUI\TextInputWidget { 'placeholder' => $placeholder, ], $config ); - // Parent constructor parent::__construct( $config ); // Calculate min/max attributes (which are skipped by TextInputWidget) and add to @@ -134,6 +132,9 @@ class DateInputWidget extends \OOUI\TextInputWidget { if ( $this->displayFormat !== null ) { $config['displayFormat'] = $this->displayFormat; } + if ( $this->longDisplayFormat !== null ) { + $config['longDisplayFormat'] = $this->longDisplayFormat; + } if ( $this->placeholderLabel !== null ) { $config['placeholderLabel'] = $this->placeholderLabel; } @@ -149,9 +150,7 @@ class DateInputWidget extends \OOUI\TextInputWidget { if ( $this->mustBeBefore !== null ) { $config['mustBeBefore'] = $this->mustBeBefore; } - if ( $this->overlay !== null ) { - $config['overlay'] = $this->overlay; - } + $config['$overlay'] = true; return parent::getConfig( $config ); }