http://www.mediawiki.org/wiki/Special:Code/MediaWiki/100212
Revision: 100212
Author: santhosh
Date: 2011-10-19 04:37:15 +0000 (Wed, 19 Oct 2011)
Log Message:
-----------
New feature - provide all input methods for the user, dynamically load the
input method rules.
Bug 28474
Modified Paths:
--------------
trunk/extensions/Narayam/Narayam.hooks.php
trunk/extensions/Narayam/Narayam.i18n.php
trunk/extensions/Narayam/Narayam.php
trunk/extensions/Narayam/css/ext.narayam.core.css
trunk/extensions/Narayam/js/ext.narayam.core.js
Added Paths:
-----------
trunk/extensions/Narayam/images/closed-ltr.png
trunk/extensions/Narayam/images/closed-rtl.png
trunk/extensions/Narayam/images/open.png
Modified: trunk/extensions/Narayam/Narayam.hooks.php
===================================================================
--- trunk/extensions/Narayam/Narayam.hooks.php 2011-10-19 04:06:16 UTC (rev
100211)
+++ trunk/extensions/Narayam/Narayam.hooks.php 2011-10-19 04:37:15 UTC (rev
100212)
@@ -39,7 +39,7 @@
}
public static function addVariables( &$vars ) {
- global $wgUser;
+ global $wgUser, $wgNarayamSchemes;
if ( $wgUser->getOption( 'narayamDisable' ) ) {
// User disabled Narayam
@@ -47,7 +47,7 @@
}
$vars['wgNarayamAvailableSchemes'] = self::getSchemes(); //
Note: scheme names must be keys, not values
-
+ $vars['wgNarayamAllSchemes'] = $wgNarayamSchemes;
return true;
}
Modified: trunk/extensions/Narayam/Narayam.i18n.php
===================================================================
--- trunk/extensions/Narayam/Narayam.i18n.php 2011-10-19 04:06:16 UTC (rev
100211)
+++ trunk/extensions/Narayam/Narayam.i18n.php 2011-10-19 04:37:15 UTC (rev
100212)
@@ -22,6 +22,7 @@
'narayam-help-page' => 'Help:Typing',
'narayam-checkbox-tooltip' => 'To toggle input method on and off', //
FIXME: better message
'narayam-disable-preference' => 'Disable Narayam Input Method Editor
(IME)',
+ 'narayam-more-imes' => 'More input methods',
'narayam-am' => 'Amharic Transliteration',
'narayam-as' => 'Assamese Transliteration',
'narayam-as-avro' => 'Assamese Avro',
Modified: trunk/extensions/Narayam/Narayam.php
===================================================================
--- trunk/extensions/Narayam/Narayam.php 2011-10-19 04:06:16 UTC (rev
100211)
+++ trunk/extensions/Narayam/Narayam.php 2011-10-19 04:37:15 UTC (rev
100212)
@@ -147,136 +147,137 @@
'narayam-help',
'narayam-help-page',
'narayam-toggle-ime',
+ 'narayam-more-imes',
+ 'narayam-am',
+ 'narayam-as',
+ 'narayam-as-avro',
+ 'narayam-as-bornona',
+ 'narayam-as-inscript',
+ 'narayam-eo',
+ 'narayam-hi-inscript',
+ 'narayam-kn',
+ 'narayam-kn-inscript',
+ 'narayam-ml',
+ 'narayam-ml-inscript' ,
+ 'narayam-ne',
+ 'narayam-ne-inscript',
+ 'narayam-or',
+ 'narayam-or-inscript',
+ 'narayam-sa',
+ 'narayam-sa-inscript',
+ 'narayam-si-singlish',
+ 'narayam-si-wijesekara',
+ 'narayam-ta99',
+ 'narayam-ta',
+ 'narayam-ta-bamini',
+ 'narayam-te-inscript',
+ 'narayam-bn-avro',
+ 'narayam-bn-inscript',
+ 'narayam-bn-nkb',
),
'dependencies' => array( 'mediawiki.util', 'jquery.textSelection' ),
);
$wgResourceModules['ext.narayam.rules.am'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.am.js',
- 'messages' => array( 'narayam-am' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.as'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.as.js',
- 'messages' => array( 'narayam-as' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.as-avro'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.as-avro.js',
- 'messages' => array( 'narayam-as-avro' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.as-bornona'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.as-bornona.js',
- 'messages' => array( 'narayam-as-bornona' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.as-inscript'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.as-inscript.js',
- 'messages' => array( 'narayam-as-inscript' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.bn-avro'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.bn-avro.js',
- 'messages' => array( 'narayam-bn-avro' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.bn-inscript'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.bn-inscript.js',
- 'messages' => array( 'narayam-bn-inscript' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.bn-nkb'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.bn-nkb.js',
- 'messages' => array( 'narayam-bn-nkb' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.eo'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.eo.js',
- 'messages' => array( 'narayam-eo' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.hi-inscript'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.hi-inscript.js',
- 'messages' => array( 'narayam-hi-inscript' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.kn'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.kn.js',
- 'messages' => array( 'narayam-kn' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.kn-inscript'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.kn-inscript.js',
- 'messages' => array( 'narayam-kn-inscript' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.ml'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.ml.js',
- 'messages' => array( 'narayam-ml' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.ml-inscript'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.ml-inscript.js',
- 'messages' => array( 'narayam-ml-inscript' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.ne'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.ne.js',
- 'messages' => array( 'narayam-ne' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.ne-inscript'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.ne-inscript.js',
- 'messages' => array( 'narayam-ne-inscript' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.or'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.or.js',
- 'messages' => array( 'narayam-or' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.or-inscript'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.or-inscript.js',
- 'messages' => array( 'narayam-or-inscript' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.sa'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.sa.js',
- 'messages' => array( 'narayam-sa' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.sa-inscript'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.sa-inscript.js',
- 'messages' => array( 'narayam-sa-inscript' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.si-singlish'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.si-singlish.js',
- 'messages' => array( 'narayam-si-singlish' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.si-wijesekara'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.si-wijesekara.js',
- 'messages' => array( 'narayam-si-wijesekara' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.ta'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.ta.js',
- 'messages' => array( 'narayam-ta' ),
'dependencies' => 'ext.narayam.core',
);
$wgResourceModules['ext.narayam.rules.ta99'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.ta99.js',
- 'messages' => array( 'narayam-ta99' ),
'dependencies' => 'ext.narayam.rules.ta', // make sure ta99 loads after
ta
);
$wgResourceModules['ext.narayam.rules.ta-bamini'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.ta-bamini.js',
- 'messages' => array( 'narayam-ta-bamini' ),
'dependencies' => 'ext.narayam.rules.ta', // make sure ta99 loads after
ta
);
$wgResourceModules['ext.narayam.rules.te-inscript'] = $narayamTpl + array(
'scripts' => 'js/ext.narayam.rules.te-inscript.js',
- 'messages' => array( 'narayam-te-inscript' ),
'dependencies' => 'ext.narayam.core',
);
Modified: trunk/extensions/Narayam/css/ext.narayam.core.css
===================================================================
--- trunk/extensions/Narayam/css/ext.narayam.core.css 2011-10-19 04:06:16 UTC
(rev 100211)
+++ trunk/extensions/Narayam/css/ext.narayam.core.css 2011-10-19 04:37:15 UTC
(rev 100212)
@@ -139,3 +139,16 @@
/* @embed */
background: url('../images/narayam-inactive.png') no-repeat scroll left
top transparent;
}
+
+li.narayam-more-imes-link{
+ /* @embed */
+ background: url('../images/closed-ltr.png') no-repeat scroll left
center transparent;
+}
+
+li.narayam-more-imes-link.open{
+ /* @embed */
+ background: url('../images/open.png') no-repeat scroll left center
transparent;
+}
+li.narayam-more-imes-link a{
+ padding-left:10px;
+}
Added: trunk/extensions/Narayam/images/closed-ltr.png
===================================================================
(Binary files differ)
Property changes on: trunk/extensions/Narayam/images/closed-ltr.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: trunk/extensions/Narayam/images/closed-rtl.png
===================================================================
(Binary files differ)
Property changes on: trunk/extensions/Narayam/images/closed-rtl.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: trunk/extensions/Narayam/images/open.png
===================================================================
(Binary files differ)
Property changes on: trunk/extensions/Narayam/images/open.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Modified: trunk/extensions/Narayam/js/ext.narayam.core.js
===================================================================
--- trunk/extensions/Narayam/js/ext.narayam.core.js 2011-10-19 04:06:16 UTC
(rev 100211)
+++ trunk/extensions/Narayam/js/ext.narayam.core.js 2011-10-19 04:37:15 UTC
(rev 100212)
@@ -30,6 +30,9 @@
// This object is formatted as { 'schemename': '', 'schemename2': '',
... }
// for easy searching
var availableSchemes = mw.config.get( 'wgNarayamAvailableSchemes' ) ||
{};
+ // All input methods. This will be used for selecting input methods
from languages
+ // other than uselang- optionally
+ var allImes = mw.config.get( 'wgNarayamAllSchemes' ) || {};
// Currently selected scheme
var currentScheme = null;
// Shortcut key for turning Narayam on and off
@@ -389,12 +392,9 @@
* @return True if added, false if not
*/
this.addScheme = function( name, data ) {
- if ( name in availableSchemes ) {
- schemes[name] = data;
- return true;
- } else {
- return false;
- }
+ schemes[name] = data;
+ return true;
+
};
/**
@@ -402,10 +402,14 @@
* @param name String
*/
this.setScheme = function( name ) {
- if ( name in schemes ) {
- currentScheme = schemes[name];
+ currentScheme = schemes[name];
+ if ( currentScheme ){
$.cookie( 'narayam-scheme', name, { 'path': '/',
'expires': 30 } );
+ return true;
}
+ else {
+ return false;
+ }
};
/**
@@ -500,6 +504,52 @@
.text( mw.msg( 'narayam-toggle-ime', shortcutText() ) )
.prepend( $checkbox )
.attr( 'title', mw.msg( 'narayam-checkbox-tooltip' ) );
+
+ $narayamMenuItems.append( $( '<li
class="narayam-more-imes-link" />')
+ .append(
+ $( '<a/>' )
+ .text( mw.msg( 'narayam-more-imes' ) )
+ .click( function() {
+
$('.narayam-scheme-dynamic-item').toggle('fast');
+ if(
$('li.narayam-more-imes-link').hasClass( 'open' )){
+
$('li.narayam-more-imes-link').removeClass('open');
+ }else{
+
$('li.narayam-more-imes-link').addClass('open');
+ }
+ })
+ )
+ );
+
+ for ( var lang in allImes ) {
+ var langschemes = allImes[lang];
+ for ( var langscheme in langschemes ) {
+
+ var $input = $( '<input type="radio"
name="narayam-input-method" class="narayam-scheme-dynamic" />' );
+ $input
+ .attr( 'id', 'narayam-' + langscheme )
+ .val( langscheme );
+
+ var $narayamMenuItemLabel = $( '<label />' )
+ .attr( 'for' ,'narayam-' +
langscheme )
+ .append( $input )
+ .append( mw.html.escape(
mw.msg( "narayam-"+ langscheme ) ) );
+
+ var $narayamMenuItem = $( '<li
class="narayam-scheme-dynamic-item" />' )
+ .append( $input )
+ .append( $narayamMenuItemLabel );
+
+ $narayamMenuItems.append( $narayamMenuItem );
+
+ }
+ }
+
+ // Event listener for scheme selection - dynamic loading of
rules.
+ $( '.narayam-scheme-dynamic', $( '#narayam-menu-items > ul')[0]
).live( 'click', function() {
+ var curVal = $(this).val();
+ mw.loader.using( "ext.narayam.rules." + $(this).val() ,
function() {
+ that.setScheme( curVal )
+ });
+ } );
var helppage = mw.msg( 'narayam-help-page' );
if ( helppage ) {
@@ -546,7 +596,7 @@
$( '#searchform' ).css( 'visibility', 'visible'
);
});
}
-
+ $('.narayam-scheme-dynamic-item').hide();
// Narayam controls setup complete, returns true
return true;
};
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs