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 <mtrac...@member.fsf.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits