Santhosh has uploaded a new change for review.

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


Change subject: Progress bar for translation
......................................................................

Progress bar for translation

Listens for the event mw.cx.progress
Example: mw.hook( 'mw.cx.progress').fire(50)

Change-Id: I70f91b174660303268be7b6d5a8594705c3af7a0
---
M Resources.php
D modules/base/styles/ext.cx.header.less
R modules/header/ext.cx.header.js
A modules/header/ext.cx.progressbar.js
R modules/header/images/wikipedia-logo-landscape.png
A modules/header/styles/ext.cx.header.less
A modules/header/styles/ext.cx.progressbar.less
7 files changed, 150 insertions(+), 14 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ContentTranslation 
refs/changes/84/106684/1

diff --git a/Resources.php b/Resources.php
index f6c717f..50f41e7 100644
--- a/Resources.php
+++ b/Resources.php
@@ -29,10 +29,14 @@
 ) + $resourcePaths;
 
 $wgResourceModules['ext.cx.header'] = array(
-       'scripts' => 'base/ext.cx.header.js',
+       'scripts' => 'header/ext.cx.header.js',
        'styles' => array(
-               'base/styles/ext.cx.header.less',
+               'header/styles/ext.cx.header.less',
        ),
+       'dependencies' => array(
+               'ext.cx.progressbar',
+       ),
+
 ) + $resourcePaths;
 
 $wgResourceModules['ext.cx.source'] = array(
@@ -49,3 +53,11 @@
 $wgResourceModules['ext.cx.tool'] = array(
        'scripts' => 'tools/ext.cx.tools.js',
 ) + $resourcePaths;
+
+
+$wgResourceModules['ext.cx.progressbar'] = array(
+       'scripts' => 'header/ext.cx.progressbar.js',
+       'styles' => array(
+               'header/styles/ext.cx.progressbar.less',
+       ),
+) + $resourcePaths;
\ No newline at end of file
diff --git a/modules/base/styles/ext.cx.header.less 
b/modules/base/styles/ext.cx.header.less
deleted file mode 100644
index e2cf04d..0000000
--- a/modules/base/styles/ext.cx.header.less
+++ /dev/null
@@ -1,12 +0,0 @@
-@import "grid/agora-grid";
-
-.header {
-       .logo {
-               .mw-ui-one-third;
-               height: 100px;
-               background-size: 50%;
-               background-image: url(../images/wikipedia-logo-landscape.png);
-               background-repeat: no-repeat;
-               background-position: left top;
-       }
-}
diff --git a/modules/base/ext.cx.header.js b/modules/header/ext.cx.header.js
similarity index 78%
rename from modules/base/ext.cx.header.js
rename to modules/header/ext.cx.header.js
index 0511d18..90ff9f5 100644
--- a/modules/base/ext.cx.header.js
+++ b/modules/header/ext.cx.header.js
@@ -30,6 +30,19 @@
                this.$container.append( $( '<div>' )
                                .addClass( 'logo')
                        );
+
+               this.$container.append( $( '<div>' )
+                               .addClass( 'translation-bar' )
+                               .append(
+                                       $( '<a>' )
+                                               .addClass( 
'translation-center-link' )
+                                               .text( 'Translation center' )
+                                               .attr( 'href', '#' ),
+                                       $( '<div>' )
+                                               .addClass( 
'translation-progress' )
+                                               .cxProgressBar()
+                               )
+                       );
        };
 
        $.fn.cxHeader = function ( options ) {
diff --git a/modules/header/ext.cx.progressbar.js 
b/modules/header/ext.cx.progressbar.js
new file mode 100644
index 0000000..84b8edf
--- /dev/null
+++ b/modules/header/ext.cx.progressbar.js
@@ -0,0 +1,68 @@
+/**
+ * ContentTranslation Progress Indicator
+ * A tool that allows editors to translate pages from one language
+ * to another with the help of machine translation and other translation aids
+ *
+ * @file
+ * @ingroup Extensions
+ * @copyright See AUTHORS.txt
+ * @license GPL-2.0+
+ */
+( function ( $, mw ) {
+       'use strict';
+
+       /**
+        * ProgressBar
+        *
+        * @class
+        */
+       function ProgressBar( element, options ) {
+               this.$container = $( element );
+               this.options = $.extend( true, {}, $.fn.cxProgressBar.defaults, 
options );
+               this.init();
+       }
+
+       ProgressBar.prototype.init = function () {
+               this.render();
+               this.listen();
+       };
+
+       ProgressBar.prototype.render = function () {
+               this.$container.append(
+                       $( '<div>' ).addClass( 'progressbar' )
+                               .append( $( '<span>')
+                                       .addClass( 'status' )
+                                       .css( 'width', '0' )
+                                       // TODO: Add a textual status indicator 
here
+                               )
+                       );
+       };
+
+       ProgressBar.prototype.listen = function () {
+               mw.hook( 'mw.cx.progress' ).add( $.proxy( this.update, this ) );
+       };
+
+       ProgressBar.prototype.update = function ( percentage ) {
+               this.$container.find( '.status' )
+                       .css( 'width', percentage + '%' );
+       };
+
+
+       $.fn.cxProgressBar = function ( options ) {
+               return this.each( function () {
+                       var $this = $( this ),
+                               data = $this.data( 'cxProgressBar' );
+
+                       if ( !data ) {
+                               $this.data( 'cxProgressBar',
+                                       ( data = new ProgressBar( this, options 
) )
+                               );
+                       }
+
+                       if ( typeof options === 'string' ) {
+                               data[options].call( $this );
+                       }
+               } );
+       };
+       $.fn.cxProgressBar.defaults = {};
+}( jQuery, mediaWiki ) );
diff --git a/modules/base/images/wikipedia-logo-landscape.png 
b/modules/header/images/wikipedia-logo-landscape.png
similarity index 100%
rename from modules/base/images/wikipedia-logo-landscape.png
rename to modules/header/images/wikipedia-logo-landscape.png
Binary files differ
diff --git a/modules/header/styles/ext.cx.header.less 
b/modules/header/styles/ext.cx.header.less
new file mode 100644
index 0000000..1afbbc5
--- /dev/null
+++ b/modules/header/styles/ext.cx.header.less
@@ -0,0 +1,33 @@
+@import "../../base/styles/grid/agora-grid";
+
+.header {
+       .logo {
+               .mw-ui-one-third;
+               height: 100px;
+               background-size: 50%;
+               background-image: url(../images/wikipedia-logo-landscape.png);
+               background-repeat: no-repeat;
+               background-position: left top;
+       }
+
+       .translation-bar {
+               .mw-ui-item;
+               .mw-ui-one-whole;
+               .translation-center-link {
+                       .mw-ui-item;
+                       .mw-ui-one-third;
+                       &:before {
+                               content: "";
+                               display: inline-block;
+                               border: 4px solid transparent;
+                               border-right-color: #555;
+                               margin: 0 8px 0 0;
+                       }
+               }
+
+               .translation-progress {
+                       .mw-ui-item;
+                       .mw-ui-one-third;
+               }
+       }
+}
diff --git a/modules/header/styles/ext.cx.progressbar.less 
b/modules/header/styles/ext.cx.progressbar.less
new file mode 100644
index 0000000..4753c96
--- /dev/null
+++ b/modules/header/styles/ext.cx.progressbar.less
@@ -0,0 +1,22 @@
+@import "../../base/styles/grid/agora-grid";
+
+.progressbar {
+       .mw-ui-item;
+       .mw-ui-one-third;
+       height: 10px;
+       border-radius: 10px;
+       border: 1px solid #ddd;
+       background: #fbfbfb;
+       vertical-align: middle;
+       position: absolute;
+       .status {
+               .mw-ui-one-whole;
+               background: #3892E3;
+               display: inline-block;
+               height: 10px;
+               border-radius: 10px;
+               position: absolute;
+               left: 0;
+               transition: width 1s;
+       }
+}
\ No newline at end of file

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I70f91b174660303268be7b6d5a8594705c3af7a0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ContentTranslation
Gerrit-Branch: master
Gerrit-Owner: Santhosh <[email protected]>

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

Reply via email to