From b8bc80498c71a96bbcb3c8ab24257ba7a4cdcb39 Mon Sep 17 00:00:00 2001 From: Sam Reed Date: Wed, 28 Dec 2011 14:49:32 +0000 Subject: [PATCH] Move mediawiki.feedback.js to "Feedback" extension --- languages/messages/MessagesEn.php | 17 -- languages/messages/MessagesQqq.php | 19 -- maintenance/language/messages.inc | 15 -- resources/Resources.php | 24 --- resources/mediawiki/mediawiki.feedback.js | 242 ---------------------- 5 files changed, 317 deletions(-) delete mode 100644 resources/mediawiki/mediawiki.feedback.js diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 12ebe7e56a..134270afc7 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -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', - ); diff --git a/languages/messages/MessagesQqq.php b/languages/messages/MessagesQqq.php index b054884455..5fd15765bc 100644 --- a/languages/messages/MessagesQqq.php +++ b/languages/messages/MessagesQqq.php @@ -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', - ); diff --git a/maintenance/language/messages.inc b/maintenance/language/messages.inc index 6fa2a6c867..60d86e73de 100644 --- a/maintenance/language/messages.inc +++ b/maintenance/language/messages.inc @@ -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 */ diff --git a/resources/Resources.php b/resources/Resources.php index 8edbc24b64..9b51d662e7 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -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 index e280a93622..0000000000 --- a/resources/mediawiki/mediawiki.feedback.js +++ /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 = $( '' ) - .attr( { 'href': _this.title.getUrl(), 'target': '_blank' } ) - .css( { 'white-space': 'nowrap' } ); - - var $bugNoteLink = $( '' ).attr( { 'href': '#' } ).click( function() { _this.displayBugs(); } ); - - var $bugsListLink = $( '' ).attr( { 'href': _this.bugsListLink, 'target': '_blank' } ); - - this.$dialog = - $( '
' ).append( - $( '
' ).append( - $( '' ).append( - $( '

' ).msg( - 'feedback-bugornote', - $bugNoteLink, - _this.title.getNameText(), - $feedbackPageLink.clone() - ) - ), - $( '
' ).append( - mw.msg( 'feedback-subject' ), - $( '
' ), - $( '' ) - ), - $( '
' ).append( - mw.msg( 'feedback-message' ), - $( '
' ), - $( '' ) - ) - ), - $( '
' ).append( - $( '

' ).msg( 'feedback-bugcheck', $bugsListLink ) - ), - $( '

' ).append( - mw.msg( 'feedback-adding' ), - $( '
' ), - $( '' ) - ), - $( '
' ).msg( - 'feedback-thanks', _this.title.getNameText(), $feedbackPageLink.clone() - ), - $( '
' ).append( - $( '
' ) - ) - ); - - // 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 = "User agent: " + navigator.userAgent + "\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 ); -- 2.20.1