jenkins-bot has submitted this change and it was merged.
Change subject: Allow non-translators to sign up
......................................................................
Allow non-translators to sign up
Change-Id: I0f09771d0eef58c238f0260c7bd1747145bbcc8d
---
M MainPage.i18n.php
M Resources.php
M resources/css/ext.translate.mainpage.css
M resources/js/ext.translate.mainpage.js
M specials/SpecialTwnMainPage.php
5 files changed, 143 insertions(+), 67 deletions(-)
Approvals:
Santhosh: Looks good to me, approved
jenkins-bot: Verified
diff --git a/MainPage.i18n.php b/MainPage.i18n.php
index bd4d892..f9df1a5 100644
--- a/MainPage.i18n.php
+++ b/MainPage.i18n.php
@@ -58,6 +58,12 @@
'twnmp-choose-another-language' => 'Choose another language...',
'twnmp-choose-fill-account-details' => 'Fill in your account details',
+ 'twnmp-join-community' => 'Join the community',
+ 'twnmp-join-community-desc' => 'If you are a developer interested in
documenting translations, or just exploring the platform, you are also
welcome.',
+ 'twnmp-join-community-reason' => 'Why are you interested in joining?',
+ 'twnmp-create-account-cancel' => 'Cancel',
+ 'twnmp-join-community-info' => 'Not a translator? You can still join
the community.',
+
'twnmp-stats-number-k' => '$1k',
'twnmp-select-target-language' => 'Select language',
'twn-mainpage-total-messages-in-language' => '{{PLURAL:$1|One
message|$1 messages}}',
@@ -232,6 +238,11 @@
Parameters:
* $1 - total number of messages.',
+ 'twnmp-join-community' => 'Header in the signup form for
non-translators',
+ 'twnmp-join-community-desc' => 'Not for non-translators who are signing
up via the main page',
+ 'twnmp-join-community-reason' => 'Label for a text area',
+ 'twnmp-create-account-cancel' => 'A button',
+ 'twnmp-join-community-info' => 'A note at the end of the sign up form
in the main page',
);
/** Afrikaans (Afrikaans)
diff --git a/Resources.php b/Resources.php
index bab8e8a..4dedf51 100644
--- a/Resources.php
+++ b/Resources.php
@@ -3,7 +3,7 @@
* JavaScript and CSS resource definitions.
*
* @file
- * @license GPL2+
+ * @license GPL-2.0+
*/
$resourcePaths = array(
@@ -14,13 +14,14 @@
$wgResourceModules['ext.translate.mainpage'] = array(
'scripts' => 'resources/js/ext.translate.mainpage.js',
'dependencies' => array(
- 'ext.translate.mainpage.icons',
- 'ext.uls.interface',
'ext.translate.groupselector',
+ 'ext.translate.mainpage.icons',
'ext.translate.statsbar',
- 'mediawiki.util',
- 'mediawiki.Uri',
+ 'ext.uls.interface',
+ 'mediawiki.api.login',
'mediawiki.language',
+ 'mediawiki.Uri',
+ 'mediawiki.util',
),
'messages' => array(
'twnmp-show-more-projects',
diff --git a/resources/css/ext.translate.mainpage.css
b/resources/css/ext.translate.mainpage.css
index b0c31ad..7493e90 100644
--- a/resources/css/ext.translate.mainpage.css
+++ b/resources/css/ext.translate.mainpage.css
@@ -177,6 +177,20 @@
padding: 10px;
}
+.login-widget .dev-signup {
+ background-color: #f2eae2;
+ cursor: pointer;
+ padding: 10px;
+}
+
+.login-widget .only-dev {
+ padding: 5px 10px 0 10px;
+}
+
+.login-widget .only-dev textarea {
+ padding: 5px;
+}
+
.signup-language-selector {
font-size: 12pt;
background-color: #E0E0E0;
diff --git a/resources/js/ext.translate.mainpage.js
b/resources/js/ext.translate.mainpage.js
index e308f4f..bbe0533 100644
--- a/resources/js/ext.translate.mainpage.js
+++ b/resources/js/ext.translate.mainpage.js
@@ -258,8 +258,35 @@
}
$( document ).ready( function () {
+ var $form = $( '.login-widget' ), $submit;
+
signupLanguageSelector();
- $( '.login-widget' ).on( 'submit', loginFormHandler );
+ $form.on( 'submit', loginFormHandler );
+
+ $form.find( '.dev-signup' ).click( function () {
+ $form.find( '.only-dev' ).removeClass( 'hide' );
+ $form.find( '.only-nondev' ).addClass( 'hide' );
+ $form.find( '.required' ).trigger( 'change' );
+ } );
+
+ $form.find( 'button.cancel' ).click( function ( e ) {
+ e.preventDefault();
+ $form.find( '.only-dev' ).addClass( 'hide' );
+ $form.find( '.only-nondev' ).removeClass( 'hide' );
+ $form.find( '.required' ).trigger( 'change' );
+ } );
+
+ $submit = $form.find( 'button[type=submit]' );
+ $submit.prop( 'disabled', true );
+ $form.on( 'change keyup', '.required', function () {
+ var anyEmpty = false;
+
+ $form.find( '.required:visible' ).each( function () {
+ anyEmpty = anyEmpty || $( this ).val().trim()
=== '';
+ } );
+ $submit.prop( 'disabled', anyEmpty );
+ } );
+
setupProjectTiles();
} );
}( jQuery, mediaWiki ) );
diff --git a/specials/SpecialTwnMainPage.php b/specials/SpecialTwnMainPage.php
index 81e9e84..3ac89fa 100644
--- a/specials/SpecialTwnMainPage.php
+++ b/specials/SpecialTwnMainPage.php
@@ -481,82 +481,105 @@
$languageCode = $this->getLanguage()->getCode();
$languageName = TranslateUtils::getLanguageName( $languageCode
);
- // Shortcut for creating row elements
- $row = array( 'class' => 'row' );
-
- $out = Html::openElement( 'form',
- array( 'class' => 'five columns main-widget
login-widget',
- 'method' => 'post',
- 'action' => SpecialPage::getTitleFor(
'Userlogin' )
- ->getLocalUrl( array(
- 'returnto' =>
'Special:MainPage',
- 'type' => 'signup' ) ),
- ) );
-
- $out .= Html::hidden( 'wpSandboxToken',
ApiTranslateSandbox::getToken() );
- $out .= Html::element( 'h1', $row, $this->msg(
'twnmp-become-translator' )->text() );
- $out .= Html::element(
- 'h2',
- $row,
- $this->msg( 'twnmp-choose-languages-you-know' )->text()
+ $defaultLanguage = Xml::checkLabel(
+ $languageName,
+ 'signuplanguage',
+ 'language-' . $languageCode,
+ true
);
- $out .= Html::openElement( 'ul', array( 'class' => 'row
signup-languages' ) );
- $out .= Html::openElement( 'li' );
- $out .= Xml::checkLabel( $languageName, 'signuplanguage',
'language-' . $languageCode, true );
- $out .= Html::closeElement( 'li' );
- $out .= Html::closeElement( 'ul' );
- $out .= Html::openElement( 'div', $row );
- $out .= Html::openElement( 'div', array( 'class' => 'eight
columns' ) );
- $out .= Html::element(
- 'div',
- array( 'class' => 'signup-language-selector' ),
- $this->msg( 'twnmp-choose-another-language' )->text()
- );
- $out .= Html::closeElement( 'div' );
- $out .= Html::closeElement( 'div' );
- $out .= Html::element(
- 'h2',
- $row,
- $this->msg( 'twnmp-choose-fill-account-details'
)->text()
- );
- $out .= Html::openElement( 'div', $row );
- $out .= Html::element( 'input', array(
- 'class' => 'eleven columns',
+ $username = Html::element( 'input', array(
+ 'class' => 'eleven columns required',
'name' => 'wpName',
- // @todo IE doesn't support placeholders
+ 'required',
'placeholder' => $this->msg(
'twnmp-signup-username-placeholder' )->text(),
) );
- $out .= Html::closeElement( 'div' );
-
- $out .= Html::openElement( 'div', $row );
- $out .= Html::element( 'input', array(
- 'class' => 'eleven columns',
+ $password = Html::element( 'input', array(
+ 'class' => 'eleven columns required',
'name' => 'wpPassword',
'type' => 'password',
- // @todo IE doesn't support placeholders
+ 'required',
'placeholder' => $this->msg(
'twnmp-signup-password-placeholder' )->text(),
) );
- $out .= Html::closeElement( 'div' );
-
- $out .= Html::openElement( 'div', $row );
- $out .= Html::element( 'input', array(
- 'class' => 'eleven columns',
+ $email = Html::element( 'input', array(
+ 'class' => 'eleven columns required',
'name' => 'wpEmail',
'type' => 'email',
- // @todo IE doesn't support placeholders
+ 'required',
'placeholder' => $this->msg(
'twnmp-signup-email-placeholder' )->text(),
) );
- $out .= Html::closeElement( 'div' );
+ $reasonInput = Html::element( 'textarea', array(
+ 'class' => 'eleven columns required',
+ 'name' => 'reason',
+ 'rows' => '4',
+ 'required',
+ ) );
- $out .= Html::openElement( 'div', $row );
- $out .= Html::element( 'button', array(
- 'class' => 'six columns green button offset-by-three',
- ), $this->msg( 'twnmp-create-account-button' )->text() );
- $out .= Html::closeElement( 'div' );
+ $contents = <<<HTML
+ <h1 class="row only-dev hide">
+ {$this->msg( 'twnmp-join-community' )->escaped()}
+ </h1>
+ <div class="row only-dev hide label">
+ {$this->msg( 'twnmp-join-community-desc' )->escaped()}
+ </div>
+ <h1 class="row only-nondev">
+ {$this->msg( 'twnmp-become-translator' )->escaped()}
+ </h1>
+ <h2 class="row only-nondev">
+ {$this->msg( 'twnmp-choose-languages-you-know' )->escaped()}
+ </h2>
+ <ul class="row signup-languages only-nondev">
+ <li>
+ $defaultLanguage
+ </li>
+ </ul>
+ <div class="row only-nondev">
+ <div class="eight columns">
+ <div class="signup-language-selector">
+ {$this->msg( 'twnmp-choose-another-language'
)->escaped()}
+ </div>
+ </div>
+ </div>
+ <h2 class="row">
+ {$this->msg( 'twnmp-choose-fill-account-details' )->text()}
+ </h2>
+ <div class="row">$username</div>
+ <div class="row">$password</div>
+ <div class="row">$email</div>
+ <div class="row label only-dev hide">
+ {$this->msg( 'twnmp-join-community-reason' )->escaped()}
+ </div>
+ <div class="row only-dev hide">$reasonInput</div>
+ <div class="row">
+ <button class="six columns green button" type="submit">
+ {$this->msg( 'twnmp-create-account-button' )->escaped()}
+ </button>
+ <button class="four columns button offset-by-one only-dev
cancel hide">
+ {$this->msg( 'twnmp-create-account-cancel' )->escaped()}
+ </button>
+ </div>
+ <div class="row dev-signup only-nondev">
+ <a>{$this->msg( 'twnmp-join-community-info' )->escaped()}</a>
+ </div>
+HTML;
- $out .= Html::closeElement( 'form' );
+ $token = Html::hidden( 'wpSandboxToken',
ApiTranslateSandbox::getToken() );
- return $out;
+ $action = SpecialPage::getTitleFor( 'Userlogin' )->getLocalUrl(
+ array(
+ 'returnto' => 'Special:MainPage',
+ 'type' => 'signup'
+ )
+ );
+
+ $out = Html::rawElement( 'form',
+ array( 'class' => 'five columns main-widget
login-widget',
+ 'method' => 'post',
+ 'action' => $action,
+ ),
+ "\n\t$token\n$contents\n"
+ );
+
+ return "\n$out\n";
}
public function userStats() {
--
To view, visit https://gerrit.wikimedia.org/r/64591
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I0f09771d0eef58c238f0260c7bd1747145bbcc8d
Gerrit-PatchSet: 9
Gerrit-Project: mediawiki/extensions/TwnMainPage
Gerrit-Branch: master
Gerrit-Owner: Nikerabbit <[email protected]>
Gerrit-Reviewer: KartikMistry <[email protected]>
Gerrit-Reviewer: Nikerabbit <[email protected]>
Gerrit-Reviewer: Pginer <[email protected]>
Gerrit-Reviewer: Santhosh <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits