summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/UploadWizard/resources/uw.FieldLayout.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/UploadWizard/resources/uw.FieldLayout.js')
-rw-r--r--www/wiki/extensions/UploadWizard/resources/uw.FieldLayout.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/www/wiki/extensions/UploadWizard/resources/uw.FieldLayout.js b/www/wiki/extensions/UploadWizard/resources/uw.FieldLayout.js
new file mode 100644
index 00000000..d4d989e6
--- /dev/null
+++ b/www/wiki/extensions/UploadWizard/resources/uw.FieldLayout.js
@@ -0,0 +1,57 @@
+( function ( mw, uw, $, OO ) {
+
+ /**
+ * FieldLayout with some UploadWizard-specific bonuses.
+ *
+ * @extends OO.ui.FieldLayout
+ *
+ * @constructor
+ * @inheritdoc
+ * @param {OO.ui.Widget} fieldWidget
+ * @param {Object} [config]
+ * @param {boolean} [config.required=false] Whether to mark this field as required
+ * @param {boolean} [config.align='top']
+ */
+ uw.FieldLayout = function UWFieldLayout( fieldWidget, config ) {
+ config = $.extend( { align: 'top', required: false }, config );
+ uw.FieldLayout.parent.call( this, fieldWidget, config );
+ uw.ValidationMessageElement.call( this, { validatedWidget: fieldWidget } );
+
+ this.required = null;
+ this.requiredMarker = new OO.ui.IndicatorWidget( {
+ classes: [ 'mwe-upwiz-fieldLayout-indicator' ],
+ indicator: 'required',
+ title: mw.msg( 'mwe-upwiz-error-blank' )
+ } );
+
+ this.$element.addClass( 'mwe-upwiz-fieldLayout' );
+
+ this.$element.addClass( 'mwe-upwiz-details-fieldname-input' );
+ this.$label.addClass( 'mwe-upwiz-details-fieldname' );
+ this.$field.addClass( 'mwe-upwiz-details-input' );
+
+ this.setRequired( config.required );
+ };
+ OO.inheritClass( uw.FieldLayout, OO.ui.FieldLayout );
+ OO.mixinClass( uw.FieldLayout, uw.ValidationMessageElement );
+
+ /**
+ * @return {boolean} Whether this field is marked as required
+ */
+ uw.FieldLayout.prototype.getRequired = function () {
+ return this.required;
+ };
+
+ /**
+ * @param {boolean} required Whether to mark this field as required
+ */
+ uw.FieldLayout.prototype.setRequired = function ( required ) {
+ this.required = !!required;
+ if ( this.required ) {
+ this.$label.after( this.requiredMarker.$element );
+ } else {
+ this.requiredMarker.$element.remove();
+ }
+ };
+
+}( mediaWiki, mediaWiki.uploadWizard, jQuery, OO ) );