MarkTraceur has uploaded a new change for review.
https://gerrit.wikimedia.org/r/132785
Change subject: Add method for auto-building forms from TemplateData
......................................................................
Add method for auto-building forms from TemplateData
This won't be a perfect form build, and we'll need to style it for UW, but
it's a start.
Change-Id: Ice23a0bac32fbd380d750daa8ed2535a1df1180b
---
M resources/mw.uw.MediaTemplate.js
1 file changed, 74 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UploadWizard
refs/changes/85/132785/1
diff --git a/resources/mw.uw.MediaTemplate.js b/resources/mw.uw.MediaTemplate.js
index 1b590e1..3a2ca7e 100644
--- a/resources/mw.uw.MediaTemplate.js
+++ b/resources/mw.uw.MediaTemplate.js
@@ -166,4 +166,78 @@
return valueStrings.join( '|' ) + '}}';
};
+
+ /**
+ * Builds a form for this template.
+ * @returns {jQuery}
+ */
+ mw.uw.MediaTemplate.prototype.buildForm = function () {
+ var i, param, type, $input, $label,
+ paramNames = Object.keys( this.params ),
+ $form = $( '<form>' )
+ .prop( 'action', 'javascript:void(0)' )
+ .addClass( 'templatedata-auto-built-form' );
+
+ function canUseInputType( itype ) {
+ var testInput = document.createElement( 'input' );
+ testInput.setAttribute( 'type', 'range' );
+
+ return testInput.type !== 'text';
+ }
+
+ for ( i = 0; i < paramNames.length; i++ ) {
+ param = this.params[paramNames[i]];
+
+ $label = $( '<label>' )
+ .addClass( 'templatedata-label' )
+ .text( param.label )
+ .appendTo( $form );
+
+ switch ( param.type ) {
+ case 'boolean':
+ type = 'check';
+ break;
+
+ case 'date':
+ if ( canUseInputType( 'date' ) ) {
+ type = 'date';
+ } else {
+ type = 'text';
+ }
+
+ break;
+
+ case 'content':
+ case 'unbalanced-wikitext':
+ case 'string':
+ type = 'textarea';
+ break;
+
+ case 'wiki-page-name':
+ case 'wiki-file-name':
+ case 'wiki-user-name':
+ case 'number':
+ case 'line':
+ default:
+ type = 'text';
+ break;
+ }
+
+ if ( type === 'textarea' ) {
+ $input = $( '<textarea>' );
+ } else {
+ $input = $( '<input type="' + type + '" />' );
+ }
+
+ $input
+ .prop( 'name', paramNames[i] )
+ .addClass( 'templatedata-type-' + param.type )
+ .toggleClass( 'templatedata-required',
param.required )
+ .toggleClass( 'templatedata-suggested',
param.suggested )
+ .toggleClass( 'templatedata-deprecated',
param.deprecated )
+ .appendTo( $label );
+ }
+
+ return $form;
+ };
}( mediaWiki, jQuery ) );
--
To view, visit https://gerrit.wikimedia.org/r/132785
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ice23a0bac32fbd380d750daa8ed2535a1df1180b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UploadWizard
Gerrit-Branch: master
Gerrit-Owner: MarkTraceur <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits