From a2713be323ce9c2cea7107c6760f23e32a61f894 Mon Sep 17 00:00:00 2001 From: Alexandre Emsenhuber Date: Sun, 6 Jul 2014 20:53:18 +0200 Subject: [PATCH] Some misc cleanup to ProtectionForm - Set variables near to where they are used in buildForm() and put variables that only need to be set once out of loops - Move the definition of 'wgCascadeableLevels' javascript variable near the inclusion of mediawiki.legacy.protect module, so that this doesn't need to be set as a side effect of buildCleanupScript() Change-Id: Ifb54723e7609f6fc5a8939e4fada5c2e664a22bd --- includes/ProtectionForm.php | 45 ++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/includes/ProtectionForm.php b/includes/ProtectionForm.php index 456e4e6f9b..853e2cc412 100644 --- a/includes/ProtectionForm.php +++ b/includes/ProtectionForm.php @@ -338,20 +338,12 @@ class ProtectionForm { * @return string HTML form */ function buildForm() { - global $wgUser, $wgLang, $wgOut; - - $mProtectreasonother = Xml::label( - wfMessage( 'protectcomment' )->text(), - 'wpProtectReasonSelection' - ); - $mProtectreason = Xml::label( - wfMessage( 'protect-otherreason' )->text(), - 'mwProtect-reason' - ); + global $wgUser, $wgLang, $wgOut, $wgCascadingRestrictionLevels; $out = ''; if ( !$this->disabled ) { $wgOut->addModules( 'mediawiki.legacy.protect' ); + $wgOut->addJsConfigVars( 'wgCascadeableLevels', $wgCascadingRestrictionLevels ); $out .= Xml::openElement( 'form', array( 'method' => 'post', 'action' => $this->mTitle->getLocalURL( 'action=protect' ), 'id' => 'mw-Protect-Form', 'onsubmit' => 'ProtectionForm.enableUnchainedInputs(true)' ) ); @@ -362,6 +354,9 @@ class ProtectionForm { Xml::openElement( 'table', array( 'id' => 'mwProtectSet' ) ) . Xml::openElement( 'tbody' ); + $scExpiryOptions = wfMessage( 'protect-expiry-options' )->inContentLanguage()->text(); + $showProtectOptions = $scExpiryOptions !== '-' && !$this->disabled; + // Not all languages have V_x <-> N_x relation foreach ( $this->mRestrictions as $action => $selected ) { // Messages: @@ -373,15 +368,6 @@ class ProtectionForm { Xml::openElement( 'table', array( 'id' => "mw-protect-table-$action" ) ) . "" . $this->buildSelector( $action, $selected ) . ""; - $reasonDropDown = Xml::listDropDown( 'wpProtectReasonSelection', - wfMessage( 'protect-dropdown' )->inContentLanguage()->text(), - wfMessage( 'protect-otherreason-op' )->inContentLanguage()->text(), - $this->mReasonSelection, - 'mwProtect-reason', 4 ); - $scExpiryOptions = wfMessage( 'protect-expiry-options' )->inContentLanguage()->text(); - - $showProtectOptions = $scExpiryOptions !== '-' && !$this->disabled; - $mProtectexpiry = Xml::label( wfMessage( 'protectexpiry' )->text(), "mwProtectExpirySelection-$action" @@ -482,6 +468,22 @@ class ProtectionForm { # Add manual and custom reason field/selects as well as submit if ( !$this->disabled ) { + $mProtectreasonother = Xml::label( + wfMessage( 'protectcomment' )->text(), + 'wpProtectReasonSelection' + ); + + $mProtectreason = Xml::label( + wfMessage( 'protect-otherreason' )->text(), + 'mwProtect-reason' + ); + + $reasonDropDown = Xml::listDropDown( 'wpProtectReasonSelection', + wfMessage( 'protect-dropdown' )->inContentLanguage()->text(), + wfMessage( 'protect-otherreason-op' )->inContentLanguage()->text(), + $this->mReasonSelection, + 'mwProtect-reason', 4 ); + $out .= Xml::openElement( 'table', array( 'id' => 'mw-protect-table3' ) ) . Xml::openElement( 'tbody' ); $out .= " @@ -606,9 +608,6 @@ class ProtectionForm { } function buildCleanupScript() { - global $wgCascadingRestrictionLevels, $wgOut; - - $cascadeableLevels = $wgCascadingRestrictionLevels; $options = array( 'tableId' => 'mwProtectSet', 'labelText' => wfMessage( 'protect-unchain-permissions' )->plain(), @@ -616,8 +615,8 @@ class ProtectionForm { 'existingMatch' => count( array_unique( $this->mExistingExpiry ) ) === 1, ); - $wgOut->addJsConfigVars( 'wgCascadeableLevels', $cascadeableLevels ); $script = Xml::encodeJsCall( 'ProtectionForm.init', array( $options ) ); + return Html::inlineScript( ResourceLoader::makeLoaderConditionalScript( $script ) ); } -- 2.20.1