Move mediawiki.feedback.js to "Feedback" extension
authorSam Reed <reedy@users.mediawiki.org>
Wed, 28 Dec 2011 14:49:32 +0000 (14:49 +0000)
committerSam Reed <reedy@users.mediawiki.org>
Wed, 28 Dec 2011 14:49:32 +0000 (14:49 +0000)
languages/messages/MessagesEn.php
languages/messages/MessagesQqq.php
maintenance/language/messages.inc
resources/Resources.php
resources/mediawiki/mediawiki.feedback.js [deleted file]

index 12ebe7e..134270a 100644 (file)
@@ -4660,21 +4660,4 @@ This site is experiencing technical difficulties.',
 'logentry-newusers-create2'           => '$1 {{GENDER:$2|created}} {{GENDER:$4|a user account}} $3',
 'logentry-newusers-autocreate'        => 'Account $1 was {{GENDER:$2|created}} automatically',
 'newuserlog-byemail'                  => 'password sent by e-mail',
-
-# Feedback
-'feedback-bugornote' => 'If you are ready to describe a technical problem in detail please [$1 report a bug].
-Otherwise, you can use the easy form below. Your comment will be added to the page "[$3 $2]", along with your username and what browser you are using.',
-'feedback-subject'   => 'Subject:',
-'feedback-message'   => 'Message:',
-'feedback-cancel'    => 'Cancel',
-'feedback-submit'    => 'Submit Feedback',
-'feedback-adding'    => 'Adding feedback to page...',
-'feedback-error1'    => 'Error: Unrecognized result from API',
-'feedback-error2'    => 'Error: Edit failed',
-'feedback-error3'    => 'Error: No response from API',
-'feedback-thanks'    => 'Thanks! Your feedback has been posted to the page "[$2 $1]".',
-'feedback-close'     => 'Done',
-'feedback-bugcheck'  => 'Great! Just check that it is not already one of the [$1 known bugs].',
-'feedback-bugnew'    => 'I checked. Report a new bug',
-
 );
index b054884..5fd1576 100644 (file)
@@ -4489,23 +4489,4 @@ Parameter $4, the target page, is also not visible to parser functions.',
 
 $4 is the gender of the target user.',
 
-# Feedback
-'feedback-bugornote' => 'When feedback dialog box is opened, this introductory message in small print explains the options to report a bug or add simple feedback. We expect that people in a hurry will not read this.',
-'feedback-subject'   => 'Label for a text input
-{{Identical|Subject}}',
-'feedback-message'   => 'Label for a textarea; signature referrs to a Wikitext signature.',
-'feedback-cancel'    => 'Button label
-{{Identical|Cancel}}',
-'feedback-submit'    => 'Button label
-{{Identical|Submit}}',
-'feedback-adding'    => 'Progress notice',
-'feedback-error1'    => 'Error message, appears when an unknown error occurs submitting feedback',
-'feedback-error2'    => 'Error message, appears when we could not add feedback',
-'feedback-error3'    => 'Error message, appears when we lose our connection to the wiki',
-'feedback-thanks'    => 'Thanks message, appears if feedback was successful',
-'feedback-close'     => 'Button label
-{{Identical|Done}}',
-'feedback-bugcheck'  => 'Message that appears before the user submits a bug, reminding them to check for known bugs.',
-'feedback-bugnew'    => 'Button label - asserts that the user has checked for existing bugs. When clicked will launch a bugzilla form to add a new bug in a new tab or window',
-
 );
index 6fa2a6c..60d86e7 100644 (file)
@@ -3531,21 +3531,6 @@ $wgMessageStructure = array(
                'logentry-newusers-autocreate',
                'newuserlog-byemail',
        ),
-       'feedback' => array(
-               'feedback-bugornote',
-               'feedback-subject',
-               'feedback-message',
-               'feedback-cancel',
-               'feedback-submit',
-               'feedback-adding',
-               'feedback-error1',
-               'feedback-error2',
-               'feedback-error3',
-               'feedback-thanks',
-               'feedback-close',
-               'feedback-bugcheck',
-               'feedback-bugnew',
-       ),
 );
 
 /** Comments for each block */
index 8edbc24..9b51d66 100644 (file)
@@ -534,30 +534,6 @@ return array(
                'scripts' => 'resources/mediawiki/mediawiki.debug.js',
                'styles' => 'resources/mediawiki/mediawiki.debug.css',
        ),
-       'mediawiki.feedback' => array(
-               'scripts' => 'resources/mediawiki/mediawiki.feedback.js',
-               'dependencies' => array( 
-                       'mediawiki.api.edit', 
-                       'mediawiki.Title',
-                       'mediawiki.jqueryMsg',
-                       'jquery.ui.dialog',
-               ),
-               'messages' => array( 
-                       'feedback-bugornote',
-                       'feedback-subject',
-                       'feedback-message',
-                       'feedback-cancel',
-                       'feedback-submit',
-                       'feedback-adding',
-                       'feedback-error1',
-                       'feedback-error2',
-                       'feedback-error3',
-                       'feedback-thanks',
-                       'feedback-close',
-                       'feedback-bugcheck',
-                       'feedback-bugnew',
-               ),
-       ),
        'mediawiki.htmlform' => array(
                'scripts' => 'resources/mediawiki/mediawiki.htmlform.js',
        ),
diff --git a/resources/mediawiki/mediawiki.feedback.js b/resources/mediawiki/mediawiki.feedback.js
deleted file mode 100644 (file)
index e280a93..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-/**
- * mediawiki.Feedback
- *
- * @author Ryan Kaldari, 2010
- * @author Neil Kandalgaonkar, 2010-11
- * @since 1.19
- *
- * This is a way of getting simple feedback from users. It's useful
- * for testing new features -- users can give you feedback without
- * the difficulty of opening a whole new talk page. For this reason,
- * it also tends to collect a wider range of both positive and negative
- * comments. However you do need to tend to the feedback page. It will
- * get long relatively quickly, and you often get multiple messages
- * reporting the same issue.
- *
- * It takes the form of thing on your page which, when clicked, opens a small
- * dialog box. Submitting that dialog box appends its contents to a
- * wiki page that you specify, as a new section.
- *
- * Not compatible with LiquidThreads.
- *
- * Minimal example in how to use it:
- *
- *    var feedback = new mw.Feedback();
- *    $( '#myButton' ).click( function() { feedback.launch(); } );
- *
- * You can also launch the feedback form with a prefilled subject and body.
- * See the docs for the launch() method.
- */
-( function( mw, $, undefined ) {
-       /**
-        * Thingy for collecting user feedback on a wiki page
-        * @param {Array} options -- optional, all properties optional.
-        *              api: {mw.Api} if omitted, will just create a standard API
-        *              title: {mw.Title} the title of the page where you collect feedback. Defaults to "Feedback".
-        *              dialogTitleMessageKey: {String} message key for the title of the dialog box
-        *              bugsLink: {mw.Uri|String} url where bugs can be posted
-        *              bugsListLink: {mw.Uri|String} url where bugs can be listed
-        */
-       mw.Feedback = function( options ) {
-               if ( options === undefined ) {
-                       options = {};
-               }
-
-               if ( options.api === undefined ) {
-                       options.api = new mw.Api();
-               }
-
-               if ( options.title === undefined ) {
-                       options.title = new mw.Title( 'Feedback' );
-               }
-
-               if ( options.dialogTitleMessageKey === undefined ) {
-                       options.dialogTitleMessageKey = 'feedback-submit';
-               }
-
-               if ( options.bugsLink === undefined ) {
-                       options.bugsLink = '//bugzilla.wikimedia.org/enter_bug.cgi';
-               }
-
-               if ( options.bugsListLink === undefined ) {
-                       options.bugsListLink = '//bugzilla.wikimedia.org/query.cgi';
-               }
-
-               $.extend( this, options );
-               this.setup();
-       };
-
-       mw.Feedback.prototype = {
-               setup: function() {
-                       var _this = this;
-
-                       var $feedbackPageLink = $( '<a></a>' )
-                               .attr( { 'href': _this.title.getUrl(), 'target': '_blank' } )
-                               .css( { 'white-space': 'nowrap' } );
-
-                       var $bugNoteLink = $( '<a></a>' ).attr( { 'href': '#' } ).click( function() { _this.displayBugs(); } );
-
-                       var $bugsListLink = $( '<a></a>' ).attr( { 'href': _this.bugsListLink, 'target': '_blank' } );
-
-                       this.$dialog =
-                               $( '<div style="position:relative;"></div>' ).append(
-                                       $( '<div class="feedback-mode feedback-form"></div>' ).append(
-                                               $( '<small></small>' ).append(
-                                                       $( '<p></p>' ).msg(
-                                                               'feedback-bugornote',
-                                                               $bugNoteLink,
-                                                               _this.title.getNameText(),
-                                                               $feedbackPageLink.clone()
-                                                       )
-                                               ),
-                                               $( '<div style="margin-top:1em;"></div>' ).append(
-                                                       mw.msg( 'feedback-subject' ),
-                                                       $( '<br/>' ),
-                                                       $( '<input type="text" class="feedback-subject" name="subject" maxlength="60" style="width:99%;"/>' )
-                                               ),
-                                               $( '<div style="margin-top:0.4em;"></div>' ).append(
-                                                       mw.msg( 'feedback-message' ),
-                                                       $( '<br/>' ),
-                                                       $( '<textarea name="message" class="feedback-message" style="width:99%;" rows="5" cols="60"></textarea>' )
-                                               )
-                                       ),
-                                       $( '<div class="feedback-mode feedback-bugs"></div>' ).append(
-                                               $( '<p>' ).msg( 'feedback-bugcheck', $bugsListLink )
-                                       ),
-                                       $( '<div class="feedback-mode feedback-submitting" style="text-align:center;margin:3em 0;"></div>' ).append(
-                                               mw.msg( 'feedback-adding' ),
-                                               $( '<br/>' ),
-                                               $( '<img src="http://upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif" />' )
-                                       ),
-                                       $( '<div class="feedback-mode feedback-thanks" style="text-align:center;margin:1em"></div>' ).msg(
-                                               'feedback-thanks', _this.title.getNameText(), $feedbackPageLink.clone()
-                                       ),
-                                       $( '<div class="feedback-mode feedback-error" style="position:relative;"></div>' ).append(
-                                               $( '<div class="feedback-error-msg style="color:#990000;margin-top:0.4em;"></div>' )
-                                       )
-                               );
-
-                               // undo some damage from dialog css
-                               this.$dialog.find( 'a' ).css( { 'color': '#0645ad' } );
-
-                               this.$dialog.dialog({
-                                       width: 500,
-                                       autoOpen: false,
-                                       title: mw.msg( this.dialogTitleMessageKey ),
-                                       modal: true,
-                                       buttons: _this.buttons
-                               });
-
-                       this.subjectInput = this.$dialog.find( 'input.feedback-subject' ).get(0);
-                       this.messageInput = this.$dialog.find( 'textarea.feedback-message' ).get(0);
-
-               },
-
-               display: function( s ) {
-                       this.$dialog.dialog( { buttons:{} } ); // hide the buttons
-                       this.$dialog.find( '.feedback-mode' ).hide(); // hide everything
-                       this.$dialog.find( '.feedback-' + s ).show(); // show the desired div
-               },
-
-               displaySubmitting: function() {
-                       this.display( 'submitting' );
-               },
-
-               displayBugs: function() {
-                       var _this = this;
-                       this.display( 'bugs' );
-                       var bugsButtons = {};
-                       bugsButtons[ mw.msg( 'feedback-bugnew' ) ] = function() { window.open( _this.bugsLink, '_blank' ); };
-                       bugsButtons[ mw.msg( 'feedback-cancel' ) ] = function() { _this.cancel(); };
-                       this.$dialog.dialog( { buttons: bugsButtons } );
-               },
-
-               displayThanks: function() {
-                       var _this = this;
-                       this.display( 'thanks' );
-                       var closeButton = {};
-                       closeButton[ mw.msg( 'feedback-close' ) ] = function() { _this.$dialog.dialog( 'close' ); };
-                       this.$dialog.dialog( { buttons: closeButton } );
-               },
-
-               /**
-                * Display the feedback form
-                * @param {Object} optional prefilled contents for the feedback form. Object with properties:
-                *                                              subject: {String}
-                *                                              message: {String}
-                */
-               displayForm: function( contents ) {
-                       var _this = this;
-                       this.subjectInput.value = (contents && contents.subject) ? contents.subject : '';
-                       this.messageInput.value = (contents && contents.message) ? contents.message : '';
-
-                       this.display( 'form' );
-
-                       // Set up buttons for dialog box. We have to do it the hard way since the json keys are localized
-                       var formButtons = {};
-                       formButtons[ mw.msg( 'feedback-submit' ) ] = function() { _this.submit(); };
-                       formButtons[ mw.msg( 'feedback-cancel' ) ] = function() { _this.cancel(); };
-                       this.$dialog.dialog( { buttons: formButtons } ); // put the buttons back
-               },
-
-               displayError: function( message ) {
-                       var _this = this;
-                       this.display( 'error' );
-                       this.$dialog.find( '.feedback-error-msg' ).msg( message );
-                       var closeButton = {};
-                       closeButton[ mw.msg( 'feedback-close' ) ] = function() { _this.$dialog.dialog( 'close' ); };
-                       this.$dialog.dialog( { buttons: closeButton } );
-               },
-
-               cancel: function() {
-                       this.$dialog.dialog( 'close' );
-               },
-
-               submit: function() {
-                       var _this = this;
-
-                       // get the values to submit
-                       var subject = this.subjectInput.value;
-
-                       var message = "<small>User agent: " + navigator.userAgent + "</small>\n\n"
-                                + this.messageInput.value;
-                       if ( message.indexOf( '~~~' ) == -1 ) {
-                               message += " ~~~~";
-                       }
-
-                       this.displaySubmitting();
-
-                       var ok = function( result ) {
-                               if ( result.edit !== undefined ) {
-                                       if ( result.edit.result === 'Success' ) {
-                                               _this.displayThanks();
-                                       } else {
-                                               _this.displayError( 'feedback-error1' ); // unknown API result
-                                       }
-                               } else {
-                                       _this.displayError( 'feedback-error2' ); // edit failed
-                               }
-                       };
-
-                       var err = function( code, info ) {
-                               _this.displayError( 'feedback-error3' ); // ajax request failed
-                       };
-
-                       this.api.newSection( this.title, subject, message, ok, err );
-               }, // close submit button function
-
-               /**
-                * Modify the display form, and then open it, focusing interface on the subject.
-                * @param {Object} optional prefilled contents for the feedback form. Object with properties:
-                *                                              subject: {String}
-                *                                              message: {String}
-                */
-               launch: function( contents ) {
-                       this.displayForm( contents );
-                       this.$dialog.dialog( 'open' );
-                       this.subjectInput.focus();
-               }
-
-       };
-
-} )( window.mediaWiki, jQuery );