Jdlrobson has uploaded a new change for review.

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

Change subject: Do not load Mustache and Hogan on mobile
......................................................................

Do not load Mustache and Hogan on mobile

This patch introduces a ResourceLoader module that allows us to ship Hogan 
templates
to MobileFrontend and Mustache to core. This should be useful (maybe later in 
MobileFrontend)
for porting our existing mobile templates to Mustache.

Bug: T111292
Change-Id: Ieae64fbe277dcb00d7ebcf1d655251bc6d29b988
---
M extension.json
A includes/ResourceLoaderMuhoganModule.php
R resources/ext.quicksurveys.views/finalPanel.muhogan
R resources/ext.quicksurveys.views/initialPanel.muhogan
A resources/mediawiki.template.muhogan/init.js
5 files changed, 51 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/QuickSurveys 
refs/changes/55/235655/1

diff --git a/extension.json b/extension.json
index 79edd2e..1869db7 100644
--- a/extension.json
+++ b/extension.json
@@ -24,6 +24,16 @@
                "remoteExtPath": "QuickSurveys"
        },
        "ResourceModules": {
+               "mediawiki.template.muhogan": {
+                       "class": "QuickSurveys\\ResourceLoaderMuHoganModule",
+                       "scripts": [
+                               "resources/mediawiki.template.muhogan/init.js"
+                       ],
+                       "targets": [
+                               "mobile",
+                               "desktop"
+                       ]
+               },
                "ext.quicksurveys.views": {
                        "dependencies": [
                                "oojs-ui",
@@ -34,8 +44,8 @@
                                "desktop"
                        ],
                        "templates": {
-                               "finalPanel.mustache": 
"resources/ext.quicksurveys.views/finalPanel.mustache",
-                               "initialPanel.mustache": 
"resources/ext.quicksurveys.views/initialPanel.mustache"
+                               "finalPanel.muhogan": 
"resources/ext.quicksurveys.views/finalPanel.muhogan",
+                               "initialPanel.muhogan": 
"resources/ext.quicksurveys.views/initialPanel.muhogan"
                        },
                        "messages": [
                                
"ext-quicksurveys-survey-privacy-policy-default-text",
@@ -75,6 +85,7 @@
                }
        },
        "AutoloadClasses": {
+               "QuickSurveys\\ResourceLoaderMuHoganModule": 
"includes/ResourceLoaderMuhoganModule.php",
                "QuickSurveys\\Hooks": "includes/QuickSurveys.hooks.php",
                "QuickSurveys\\SurveyFactory": "includes/SurveyFactory.php",
                "QuickSurveys\\Survey": "includes/Survey.php",
diff --git a/includes/ResourceLoaderMuhoganModule.php 
b/includes/ResourceLoaderMuhoganModule.php
new file mode 100644
index 0000000..e43b53b
--- /dev/null
+++ b/includes/ResourceLoaderMuhoganModule.php
@@ -0,0 +1,23 @@
+<?php
+namespace QuickSurveys;
+use ResourceLoaderFileModule;
+use ResourceLoaderContext;
+
+/**
+ * A ResourceLoader module that serves Hogan or Mustache depending on the 
current target.
+ * All muhogan modules must be compatible with both Hogan and Mustache 
templating languages.
+ */
+class ResourceLoaderMuHoganModule extends ResourceLoaderFileModule {
+       /**
+        * @inheritdoc
+        */
+       public function getDependencies( ResourceLoaderContext $context = null 
) {
+               $deps = parent::getDependencies( $context );
+               if ( $context->getRequest()->getVal( 'target' ) === 'mobile' ) {
+                       $deps[] = 'mediawiki.template.hogan';
+               } else {
+                       $deps[] = 'mediawiki.template.mustache';
+               }
+               return $deps;
+       }
+}
diff --git a/resources/ext.quicksurveys.views/finalPanel.mustache 
b/resources/ext.quicksurveys.views/finalPanel.muhogan
similarity index 100%
rename from resources/ext.quicksurveys.views/finalPanel.mustache
rename to resources/ext.quicksurveys.views/finalPanel.muhogan
diff --git a/resources/ext.quicksurveys.views/initialPanel.mustache 
b/resources/ext.quicksurveys.views/initialPanel.muhogan
similarity index 100%
rename from resources/ext.quicksurveys.views/initialPanel.mustache
rename to resources/ext.quicksurveys.views/initialPanel.muhogan
diff --git a/resources/mediawiki.template.muhogan/init.js 
b/resources/mediawiki.template.muhogan/init.js
new file mode 100644
index 0000000..d00e085
--- /dev/null
+++ b/resources/mediawiki.template.muhogan/init.js
@@ -0,0 +1,15 @@
+// Register the Hogan compiler with MediaWiki.
+( function () {
+       var compiler;
+       /*
+        * Mustache/Hogan template compiler
+        */
+       try {
+               compiler = mw.template.getCompiler( 'mustache' );
+       } catch ( e ) {
+               compiler = mw.template.getCompiler( 'hogan' );
+       }
+
+       // register hybrid compiler with core
+       mw.template.registerCompiler( 'muhogan', compiler );
+}() );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ieae64fbe277dcb00d7ebcf1d655251bc6d29b988
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/QuickSurveys
Gerrit-Branch: dev
Gerrit-Owner: Jdlrobson <[email protected]>

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

Reply via email to