mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-09-25 03:08:42 +00:00
(bug 38034) Implement MediaWiki's copyright warning
Logic taken from EditPage::getCopyrightWarning, but couldn't use it directly because it doesn't give the message keys and wraps the html. Using the same logic and running the same hook, we'll get the same message keys (and message parameters therefore) as EditPage would. Also fixed these bugs (as they were more prominent now): * Use Message::parse() instead of Message::plain() * Set inLanguage properly instead of using the default (EditPage is user-localised, including this message, just like the rest of VE). Fixes bug 42764: minoredit/watchthis should be in user-language. Change-Id: I84fee641162cdeed290092e56fb0e1d2562d833d
This commit is contained in:
parent
82746f990d
commit
4e407bd59e
|
@ -20,18 +20,61 @@ class VisualEditorMessagesModule extends ResourceLoaderModule {
|
|||
/* Methods */
|
||||
|
||||
public function getScript( ResourceLoaderContext $context ) {
|
||||
$msgInfo = $this->getMessageInfo();
|
||||
$parsedMesssages = array();
|
||||
foreach ( $this->getMessages() as $msgKey ) {
|
||||
$parsedMesssages[$msgKey] = wfMessage( $msgKey )->parse();
|
||||
foreach ( $msgInfo['args'] as $msgKey => $msgArgs ) {
|
||||
$parsedMesssages[ $msgKey ] = call_user_func_array( 'wfMessage', $msgArgs )
|
||||
->inLanguage( $context->getLanguage() )
|
||||
->parse();
|
||||
}
|
||||
return 've.init.platform.addParsedMessages(' . FormatJson::encode( $parsedMesssages ) . ');';
|
||||
}
|
||||
|
||||
protected function getMessageInfo() {
|
||||
$msgKeys = array();
|
||||
|
||||
// Simple ones
|
||||
$msgArgs = array(
|
||||
'minoredit' => array( 'minoredit' ),
|
||||
'watchthis' => array( 'watchthis' ),
|
||||
);
|
||||
|
||||
// Copyright warning (based on EditPage::getCopyrightWarning)
|
||||
global $wgRightsText;
|
||||
if ( $wgRightsText ) {
|
||||
$copywarnMsg = array( 'copyrightwarning',
|
||||
'[[' . wfMessage( 'copyrightpage' )->inContentLanguage()->text() . ']]',
|
||||
$wgRightsText );
|
||||
} else {
|
||||
$copywarnMsg = array( 'copyrightwarning2',
|
||||
'[[' . wfMessage( 'copyrightpage' )->inContentLanguage()->text() . ']]' );
|
||||
}
|
||||
// EditPage supports customisation based on title, we can't support that here
|
||||
// since these messages are cached on a site-level. $wgTitle is likely set to null.
|
||||
$title = Title::newFromText( 'Dwimmerlaik' );
|
||||
wfRunHooks( 'EditPageCopyrightWarning', array( $title, &$copywarnMsg ) );
|
||||
|
||||
// Keys used in copyright warning
|
||||
$msgKeys[] = 'copyrightpage';
|
||||
$msgKeys[] = $copywarnMsg[0];
|
||||
// Normalise to 'copyrightwarning' so we have a consistent key in the front-end.
|
||||
$msgArgs[ 'copyrightwarning' ] = $copywarnMsg;
|
||||
|
||||
$msgKeys = array_values( array_unique( array_merge( $msgKeys, array_keys( $msgArgs ) ) ) );
|
||||
|
||||
return array(
|
||||
'keys' => $msgKeys,
|
||||
'args' => $msgArgs,
|
||||
);
|
||||
}
|
||||
|
||||
public function getMessages() {
|
||||
// We don't actually enable the client-side message system for these messages.
|
||||
// But registering them in this standardised method to make use of the getMsgBlobMtime
|
||||
// utility for make cache invalidation work out-of-the-box.
|
||||
return array( 'minoredit', 'watchthis' );
|
||||
// We don't actually use the client-side message system for these messages.
|
||||
// But we're registering them in this standardised method to make use of the
|
||||
// getMsgBlobMtime utility to make cache invalidation work out-of-the-box.
|
||||
|
||||
$msgInfo = $this->getMessageInfo();
|
||||
return $msgInfo['keys'];
|
||||
}
|
||||
|
||||
public function getDependencies() {
|
||||
|
|
|
@ -835,17 +835,7 @@ ve.init.mw.ViewPageTarget.prototype.setupSaveDialog = function () {
|
|||
.text( ve.msg( viewPage.restoring ? 'visualeditor-restore-page' : 'savearticle' ) )
|
||||
.end()
|
||||
.find( '.ve-init-mw-viewPageTarget-saveDialog-license' )
|
||||
// FIXME license text is hardcoded English
|
||||
.html(
|
||||
'By editing this page, you agree to irrevocably release your \
|
||||
contributions under the CC-BY-SA 3.0 License. If you don\'t want your \
|
||||
writing to be edited mercilessly and redistrubuted at will, then \
|
||||
don\'t submit it here.<br/><br/>You are also confirming that you \
|
||||
wrote this yourself, or copied it from a public domain or similar free \
|
||||
resource. See Project:Copyright for full details of the licenses \
|
||||
used on this site.\
|
||||
<b>DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION!</b>'
|
||||
);
|
||||
.html( ve.init.platform.getParsedMessage( 'copyrightwarning' ) );
|
||||
viewPage.$saveDialogSaveButton = viewPage.$saveDialog
|
||||
.find( '.ve-init-mw-viewPageTarget-saveDialog-saveButton' );
|
||||
viewPage.$saveDialogLoadingIcon = viewPage.$saveDialog
|
||||
|
|
Loading…
Reference in a new issue