BPositive has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/142241

Change subject: [WIP] Special page Special:PagePreparation for translate page 
preparation
......................................................................

[WIP] Special page Special:PagePreparation for translate page preparation

The script ext.translate.pagepreparation.js is now invoked on a button click
at Special:PagePreparation by taking the page name as input from user.

Change-Id: I42a06acc6cc15c3c06bb74964a525eacca910a3b
---
M Autoload.php
M Translate.alias.php
M TranslateHooks.php
M i18n/pagetranslation/en.json
M i18n/pagetranslation/qqq.json
M resources/js/ext.translate.pagepreparation.js
A specials/SpecialPagePreparation.php
7 files changed, 81 insertions(+), 18 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate 
refs/changes/41/142241/1

diff --git a/Autoload.php b/Autoload.php
index 97912ea..a239ec7 100644
--- a/Autoload.php
+++ b/Autoload.php
@@ -45,6 +45,7 @@
 $wgAutoloadClasses['SpecialMessageGroupStats'] = 
"$dir/specials/SpecialMessageGroupStats.php";
 $wgAutoloadClasses['SpecialMyLanguage'] = 
"$dir/specials/SpecialMyLanguage.php";
 $wgAutoloadClasses['SpecialPageMigration'] = 
"$dir/specials/SpecialPageMigration.php";
+$wgAutoloadClasses['SpecialPagePreparation'] = 
"$dir/specials/SpecialPagePreparation.php";
 $wgAutoloadClasses['SpecialSearchTranslations'] = 
"$dir/specials/SpecialSearchTranslations.php";
 $wgAutoloadClasses['SpecialSupportedLanguages'] = 
"$dir/specials/SpecialSupportedLanguages.php";
 $wgAutoloadClasses['SpecialTranslate'] = "$dir/specials/SpecialTranslate.php";
diff --git a/Translate.alias.php b/Translate.alias.php
index 5993c19..6de19b1 100644
--- a/Translate.alias.php
+++ b/Translate.alias.php
@@ -28,6 +28,7 @@
        'TranslationStats' => array( 'TranslationStats', 
'TranslationStatistics' ),
        'Translations' => array( 'Translations' ),
        'PageMigration' => array( 'PageMigration' ),
+       'PagePreparation' => array( 'PagePreparation' ),
 );
 
 /** Afrikaans (Afrikaans) */
@@ -1144,4 +1145,4 @@
        'TranslationStats' => array( '翻譯統計' ),
        'Translations' => array( '譯文' ),
        'PageMigration' => array( '頁面轉移' ),
-);
\ No newline at end of file
+);
diff --git a/TranslateHooks.php b/TranslateHooks.php
index 2cf85b1..f4b4d15 100644
--- a/TranslateHooks.php
+++ b/TranslateHooks.php
@@ -57,6 +57,8 @@
                        if ( $wgTranslatePageMigration ) {
                                $wgSpecialPages['PageMigration'] = 
'SpecialPageMigration';
                                $wgSpecialPageGroups['PageMigration'] = 'wiki';
+                               $wgSpecialPages['PagePreparation'] = 
'SpecialPagePreparation';
+                               $wgSpecialPageGroups['PagePreparation'] = 
'wiki';
                        }
 
                        global $wgLogActionsHandlers, $wgLogTypes;
diff --git a/i18n/pagetranslation/en.json b/i18n/pagetranslation/en.json
index dcdc062..c0fa91d 100644
--- a/i18n/pagetranslation/en.json
+++ b/i18n/pagetranslation/en.json
@@ -176,5 +176,9 @@
     "pm-swap-icon-hover-text": "Swap with unit below",
     "pm-delete-icon-hover-text": "Delete unit",
     "tpt-translate-title": "Allow translation of page title",
-    "ptp-save-summary": "prepared the page for translation using page 
preparation tool"
+    "ptp-save-summary": "prepared the page for translation using page 
preparation tool",
+    "pagepreparation": "Translation page preparation",
+    "pp-pagename-placeholder": "Enter the page name",
+    "pp-prepare-button-label": "Prepare",
+    "pp-prepare-save-label": "Save"
 }
diff --git a/i18n/pagetranslation/qqq.json b/i18n/pagetranslation/qqq.json
index aebcace..7cecec3 100644
--- a/i18n/pagetranslation/qqq.json
+++ b/i18n/pagetranslation/qqq.json
@@ -176,5 +176,9 @@
        "pm-swap-icon-hover-text": "Hover text for swap with unit below icon",
        "pm-delete-icon-hover-text": "Hover text for delete unit icon",
        "tpt-translate-title": "Checkbox on Special:PageTranslation to mark 
title for translation",
-       "ptp-save-summary": "Edit summary for saving a page prepared for 
translation by the tool"
+       "ptp-save-summary": "Edit summary for saving a page prepared for 
translation by the tool",
+       "pagepreparation": "{{doc-special|PageMigration}}",
+    "pp-pagename-placeholder": "Placeholder for the pagename input field.",
+    "pp-prepare-button-label": "Used as label for the \"Prepare\" 
button.\n{{Identical|Prepare}}",
+    "pp-prepare-save-label": "Used as label for the \"Save\" 
button.\n{{Identical|Save}}"
 }
diff --git a/resources/js/ext.translate.pagepreparation.js 
b/resources/js/ext.translate.pagepreparation.js
index ef2713f..0c23678 100644
--- a/resources/js/ext.translate.pagepreparation.js
+++ b/resources/js/ext.translate.pagepreparation.js
@@ -187,21 +187,28 @@
        }
 
        $( document ).ready( function () {
-               var pageName;
-               pageName = mw.config.get( 'wgPageName' );
-               $.when( getPageContent( pageName ) ).done( function ( 
pageContent ) {
-                       pageContent = $.trim( pageContent );
-                       pageContent = cleanupTags( pageContent );
-                       pageContent = addLanguageBar( pageContent );
-                       pageContent = addTranslateTags( pageContent );
-                       pageContent = addNewLines( pageContent );
-                       pageContent = fixFiles( pageContent );
-                       pageContent = fixInternalLinks( pageContent );
-                       pageContent = postPreparationCleanup( pageContent );
-                       pageContent = $.trim( pageContent );
-                       savePage( pageName, pageContent ).done( function () {
-                               // This is just for the time being. So not 
doing i18n
-                               window.alert( 'The page was prepared for 
translation and has been saved.' );
+
+               $( '#action-prepare' ).click( function () {
+                       var pageName = $.trim( $( '#title' ).val() );
+                       if ( pageName === '' ) {
+                               window.alert( 'Please enter the page name' );
+                               return;
+                       }
+
+                       $.when( getPageContent( pageName ) ).done( function ( 
pageContent ) {
+                               pageContent = $.trim( pageContent );
+                               pageContent = cleanupTags( pageContent );
+                               pageContent = addLanguageBar( pageContent );
+                               pageContent = addTranslateTags( pageContent );
+                               pageContent = addNewLines( pageContent );
+                               pageContent = fixFiles( pageContent );
+                               pageContent = fixInternalLinks( pageContent );
+                               pageContent = postPreparationCleanup( 
pageContent );
+                               pageContent = $.trim( pageContent );
+                               savePage( pageName, pageContent ).done( 
function () {
+                                       // This is just for the time being. So 
not doing i18n
+                                       window.alert( 'The page was prepared 
for translation and has been saved.' );
+                               } );
                        } );
                } );
        } );
diff --git a/specials/SpecialPagePreparation.php 
b/specials/SpecialPagePreparation.php
new file mode 100644
index 0000000..8a8e135
--- /dev/null
+++ b/specials/SpecialPagePreparation.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Contains code for special page Special:PagePreparation
+ *
+ * @file
+ * @author Pratik Lahoti
+ * @copyright Copyright © 2014-2015 Pratik Lahoti
+ * @license GPL-2.0+
+ */
+
+class SpecialPagePreparation extends SpecialPage {
+       function __construct() {
+               parent::__construct( 'PagePreparation', 'pagetranslation' );
+       }
+
+       function execute( $par ) {
+               $request = $this->getRequest();
+               $output = $this->getOutput();
+               $this->setHeaders();
+               $this->checkPermissions();
+               $output->addModules( 'ext.translate.pagepreparation' );
+               $output->addModuleStyles( 'jquery.uls.grid' );
+               # Get request data from, e.g.
+               $param = $request->getText( 'param' );
+               # Do stuff
+               # ...
+               $out = '';
+               $out .= Html::openElement( 'div', array( 'class' => 'grid' ) );
+               $out .= Html::openElement( 'form', array( 'class' => 
'mw-tpp-sp-form row',
+                       'id' => 'mw-tpp-sp-primary-form' ) );
+               $out .= Html::element( 'input', array( 'id' => 'title', 'class' 
=> 'mw-searchInput',
+                       'placeholder' => $this->msg( 'pp-pagename-placeholder' 
)->text() ) );
+               $out .= Html::element( 'input', array( 'id' => 'action-prepare',
+                       'class' => 'mw-ui-button mw-ui-primary', 'type' => 
'button',
+                       'value' => $this->msg( 'pp-prepare-button-label' 
)->text() ) );
+               $out .= Html::element( 'input', array( 'id' => 'action-save',
+                       'class' => 'mw-ui-button mw-ui-constructive hide', 
'type' => 'button',
+                       'value' => $this->msg( 'pp-save-button-label' )->text() 
) );
+               $out .= Html::closeElement( 'form' );
+               $out .= Html::closeElement( 'div' );
+
+               $output->addHTML( $out );
+       }
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/142241
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I42a06acc6cc15c3c06bb74964a525eacca910a3b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: BPositive <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to