X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FEditPage.php;h=6bf3c892136488d7c1cceb484674f7abe3970d8b;hb=7babd362babcbf7f20adb8e12edb4f4bc1d4249f;hp=6b02c0fe009a82277fc6b57c127f611df839f70f;hpb=d8a2d6bf54c0853997d885aeb35e192db5a0c528;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/EditPage.php b/includes/EditPage.php index 6b02c0fe00..6bf3c89213 100644 --- a/includes/EditPage.php +++ b/includes/EditPage.php @@ -1717,7 +1717,7 @@ class EditPage { // being set. This is used by ConfirmEdit to display a captcha // without any error message cruft. } else { - $this->hookError = $status->getWikiText(); + $this->hookError = $this->formatStatusErrors( $status ); } // Use the existing $status->value if the hook set it if ( !$status->value ) { @@ -1727,7 +1727,7 @@ class EditPage { } elseif ( !$status->isOK() ) { # ...or the hook could be expecting us to produce an error // FIXME this sucks, we should just use the Status object throughout - $this->hookError = $status->getWikiText(); + $this->hookError = $this->formatStatusErrors( $status ); $status->fatal( 'hookaborted' ); $status->value = self::AS_HOOK_ERROR_EXPECTED; return false; @@ -1736,6 +1736,26 @@ class EditPage { return true; } + /** + * Wrap status errors in an errorbox for increased visiblity + * + * @param Status $status + * @return string Wikitext + */ + private function formatStatusErrors( Status $status ) { + $errmsg = $status->getWikiText( + 'edit-error-short', + 'edit-error-long', + $this->context->getLanguage() + ); + return << +{$errmsg} + +
+ERROR; + } + /** * Return the summary to be used for a new section. * @@ -2452,12 +2472,22 @@ class EditPage { $displayTitle = $contextTitle->getPrefixedText(); } $out->setPageTitle( $this->context->msg( $msg, $displayTitle ) ); + + $config = $this->context->getConfig(); + # Transmit the name of the message to JavaScript for live preview # Keep Resources.php/mediawiki.action.edit.preview in sync with the possible keys $out->addJsConfigVars( [ 'wgEditMessage' => $msg, - 'wgAjaxEditStash' => $this->context->getConfig()->get( 'AjaxEditStash' ), + 'wgAjaxEditStash' => $config->get( 'AjaxEditStash' ), ] ); + + // Add whether to use 'save' or 'publish' messages to JavaScript for post-edit, other + // editors, etc. + $out->addJsConfigVars( + 'wgEditSubmitButtonLabelPublish', + $config->get( 'EditSubmitButtonLabelPublish' ) + ); } /** @@ -3727,7 +3757,7 @@ class EditPage { return new OOUI\ButtonWidget( [ 'id' => 'mw-editform-cancel', - 'href' => $this->getContextTitle()->getLinkUrl( $cancelParams ), + 'href' => $this->getContextTitle()->getLinkURL( $cancelParams ), 'label' => new OOUI\HtmlSnippet( $this->context->msg( 'cancel' )->parse() ), 'framed' => false, 'infusable' => true, @@ -4392,7 +4422,11 @@ class EditPage { public function getEditButtons( &$tabindex ) { $buttons = []; + $labelAsPublish = + $this->context->getConfig()->get( 'EditSubmitButtonLabelPublish' ); + $buttonLabel = $this->context->msg( $this->getSubmitButtonLabel() )->text(); + $buttonTooltip = $labelAsPublish ? 'publish' : 'save'; $buttons['save'] = new OOUI\ButtonInputWidget( [ 'name' => 'wpSave', @@ -4405,8 +4439,10 @@ class EditPage { 'label' => $buttonLabel, 'infusable' => true, 'type' => 'submit', - 'title' => Linker::titleAttrib( 'save' ), - 'accessKey' => Linker::accesskey( 'save' ), + // Messages used: tooltip-save, tooltip-publish + 'title' => Linker::titleAttrib( $buttonTooltip ), + // Messages used: accesskey-save, accesskey-publish + 'accessKey' => Linker::accesskey( $buttonTooltip ), ] ); $buttons['preview'] = new OOUI\ButtonInputWidget( [ @@ -4419,7 +4455,9 @@ class EditPage { 'label' => $this->context->msg( 'showpreview' )->text(), 'infusable' => true, 'type' => 'submit', + // Message used: tooltip-preview 'title' => Linker::titleAttrib( 'preview' ), + // Message used: accesskey-preview 'accessKey' => Linker::accesskey( 'preview' ), ] ); @@ -4433,7 +4471,9 @@ class EditPage { 'label' => $this->context->msg( 'showdiff' )->text(), 'infusable' => true, 'type' => 'submit', + // Message used: tooltip-diff 'title' => Linker::titleAttrib( 'diff' ), + // Message used: accesskey-diff 'accessKey' => Linker::accesskey( 'diff' ), ] );