Add pluggable talk page poster and use it for mediawiki.feedback
[lhc/web/wiklou.git] / resources / src / mediawiki.messagePoster / mediawiki.messagePoster.MessagePoster.js
1 /*global OO*/
2 ( function ( mw ) {
3 /**
4 * This is the abstract base class for MessagePoster implementations.
5 *
6 * @abstract
7 * @class
8 *
9 * @constructor
10 * @param {mw.Title} title Title to post to
11 */
12 mw.messagePoster.MessagePoster = function MwMessagePoster() {};
13
14 OO.initClass( mw.messagePoster.MessagePoster );
15
16 /**
17 * Post a message (with subject and body) to a talk page.
18 *
19 * @param {string} subject Subject/topic title; plaintext only (no wikitext or HTML)
20 * @param {string} body Body, as wikitext. Signature code will automatically be added
21 * by MessagePosters that require one, unless the message already contains the string
22 * ~~~.
23 * @return {jQuery.Promise} Promise completing when the post succeeds or fails.
24 * @return {Function} return.done
25 * @return {Function} return.fail
26 * @return {string} return.fail.primaryError Primary error code. For a mw.Api failure,
27 * this should be 'api-fail'.
28 * @return {string} return.fail.secondaryError Secondary error code. For a mw.Api failure,
29 * this, should be mw.Api's code, e.g. 'http', 'ok-but-empty', or the error passed through
30 * from the server.
31 * @return {Mixed} return.fail.details Further details about the error
32 *
33 * @localdoc
34 * The base class currently does nothing, but could be used for shared analytics or
35 * something.
36 */
37 mw.messagePoster.MessagePoster.prototype.post = function () {};
38 }( mediaWiki ) );