[mapguide-commits] r9402 - in sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide: . aqua limegold maroon slate turquoiseyellow

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Thu Jul 26 09:23:27 PDT 2018


Author: jng
Date: 2018-07-26 09:23:26 -0700 (Thu, 26 Jul 2018)
New Revision: 9402

Added:
   sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/aqua/index.templ
   sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/limegold/index.templ
   sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/maroon/index.templ
   sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/turquoiseyellow/index.templ
Modified:
   sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/aqua.xml
   sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/limegold.xml
   sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/maroon.xml
   sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/slate.xml
   sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/slate/index.templ
   sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/turquoiseyellow.xml
Log:
Add the index.templ for the remaining templates. Also update template metadata files so that they refer to the new unified template.

This may subtly break our authoring tools (like Maestro) that probably assume the template URL does not already have query string parameters (and blindly tack on "?" and their specific parameters afterwards), so they will need to be updated to not assume this anymore.

Added: sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/aqua/index.templ
===================================================================
--- sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/aqua/index.templ	                        (rev 0)
+++ sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/aqua/index.templ	2018-07-26 16:23:26 UTC (rev 9402)
@@ -0,0 +1,268 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Aqua</title>
+<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
+%__SCRIPTS__%
+<script type="text/javascript" src="%__LIB_BASE__%/%__FUSION_SCRIPT__%.js"></script>
+<link rel="stylesheet" href="%__LIB_BASE__%/jxLib/themes/delicious/jxtheme.css" type="text/css" media="screen" charset="utf-8" />
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/aqua.css" type="text/css" media="screen" charset="utf-8" />
+<!--[if lte IE 6]>
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/ie6.css" type="text/css" media="screen" charset="utf-8" />
+<![endif]-->
+<!--[if IE 7]>
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/ie7.css" type="text/css" media="screen" charset="utf-8" />
+<![endif]-->
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/icons.css" type="text/css" media="screen" charset="utf-8" />
+<script type="text/javascript">
+
+var dOverviewMap;
+var dTasks;
+var dLegend;
+var appDefJson = %__APPDEF_JSON__%;
+
+window.onload = function() {
+    Fusion.initializeLocale();  //need to call this first if String.Translate is to be used in the onload
+
+    var main = new Jx.Layout('AppContainer');
+    new Jx.Layout('FileMenu', {height: 34, bottom: null});
+    new Jx.Layout('Toolbar', {height: 25, top: 34, bottom: null});
+    new Jx.Layout('ToolbarVertical', {width: 25, right: null, top: 59, bottom: 21});
+    new Jx.Layout('Map', {left: 25, right: 0, top: 59, bottom: 21});
+    new Jx.Layout('StatusbarContainer', {height: 21, top: null, bottom: 0});
+    new Jx.Layout('Statusbar', {height: 21, right: 159, top: null, bottom: 0});
+
+    dOverviewMap = new Jx.Dialog({
+        id: 'dialogOverviewMap',
+        label: OpenLayers.i18n('ovmapTitle'),
+        modal: false,
+        resize: false,
+        horizontal: 'right -10',
+        vertical: 'bottom -10',
+        width: 300,
+        height: 300,
+        contentId: 'OverviewMap'
+        });
+    dOverviewMap.open();
+    
+    dLegend = new Jx.Dialog({
+        id: 'dialogLegend',
+        label: OpenLayers.i18n('legendTitle'),
+        modal: false,
+        resize: true,
+        horizontal: 'right -10',
+        vertical: '10 top',
+        width: 300,
+        height: 400,
+        contentId: 'Legend'
+        });
+
+    dTasks = new Jx.Dialog({
+        id: 'dialogTasks',
+        label: OpenLayers.i18n('taskPaneTitle'),
+        modal: false,
+        resize: true,
+        horizontal: '50 left',
+        vertical: 'bottom -10',
+        width: 400,
+        height: 400,
+        contentId: 'TaskPane'
+        });
+
+    dSelection = new Jx.Dialog({
+        id: 'dialogSelection',
+        label: OpenLayers.i18n('selectionPanelTitle'),
+        modal: false,
+        resize: true,
+        horizontal: '50 left',
+        vertical: '10 top',
+        width: 400,
+        height: 400,
+        contentId: 'SelectionPanel'
+        });
+
+    main.addEvent('sizeChange', function(){
+        if (dOverviewMap.domObj.getStyle('display') != 'none'){
+            dOverviewMap.show();
+        }
+        if (dLegend.domObj.getStyle('display') != 'none'){
+            dLegend.show();
+        }
+        if (dTasks.domObj.getStyle('display') != 'none'){
+            dTasks.show();
+        }
+        if (dSelection.domObj.getStyle('display') != 'none'){
+            dSelection.show();
+        }
+
+    });
+    main.resize();
+
+    Fusion.registerForEvent(Fusion.Event.FUSION_INITIALIZED, fusionInitialized);
+    Fusion.registerForEvent(Fusion.Event.FUSION_ERROR, fusionError);
+    Fusion.initialize({
+        appDef: appDefJson
+    });
+}
+
+var showErrorDialog = function(msg) {
+    var errorDialog = new Jx.Dialog({
+        label: "Fusion Error",
+        image: "images/icons/error.png",
+        width: 800,
+        height: 400,
+        modal: true,
+        resize: true,
+        move: true,
+        content: msg
+    });
+    errorDialog.show();
+};
+
+var fusionError = function(eventId, error) {
+    if (error instanceof Fusion.DetailedError) {
+        //Case 1: Session Expiry
+        //
+        //
+        if (error.message.indexOf("MgSessionExpiredException") >= 0) {
+            var sessionId = Fusion.getQueryParam("Session");
+            var map = Fusion.getMapByIndice(0);
+            //Graceful reload is only possible if session id was not passed in as a query parameter
+            if (sessionId == "") {
+                map.message.error(OpenLayers.i18n('sessionExpired') + ' <a href="javascript:window.location.reload()">' + OpenLayers.i18n("reload") + '</a>');
+            } else {
+                map.message.error(OpenLayers.i18n('sessionExpired'));
+            }
+            return;
+        }
+    
+        //Default Case: Show a formatted summary of the error
+        var fmtStack = "";
+        for (var i = 0; i < error.stack.length; i++) {
+            var stackFrame = error.stack[i];
+            fmtStack += " - " + (stackFrame.func != "" ? stackFrame.func : "?") + " at " + stackFrame.url + " (line: " + stackFrame.line + ")";
+            fmtStack += "\n";
+        }
+        var message = OpenLayers.i18n("detailedErrorTemplateHtml", {
+            name: error.name,
+            source: error.url,
+            message: error.message,
+            stacktrace: fmtStack
+        });
+        showErrorDialog(message);
+        console.log('Fusion Error: \n' + message);
+    } else {
+        var errorMessage = error.toString();
+        var readableMessage = '';
+
+        //Case 1: For dealing with Function: convertXML (fusion.js)
+        //******************************************
+        //        xml2json: function(callback, r, json) {
+        //      if (json) {
+        //        var o;
+        //        eval("o="+r.responseText);
+        //        callback(o);
+        //      } else {
+        //      if (r.status >= 400) {
+        //          Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
+        //              'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
+        //          return;
+        //      }
+        //******************************************
+        var tagStart = '<h2>';
+        var tagEnd = '</h2>';
+        var indexStart = errorMessage.indexOf(tagStart);
+        var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
+        if (indexStart != -1 && indexEnd != -1) {
+            readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
+            readableMessage = readableMessage.replace(/\\n/g, '\n');
+            readableMessage = readableMessage.replace(/\\t/g, '\t');
+            readableMessage = readableMessage.replace(/\\'/g, '\'');
+        }
+
+        if (readableMessage != '') {
+            showErrorDialog(readableMessage);
+        }
+        else {
+            showErrorDialog('Fusion Error: \n' + errorMessage);
+        }
+        console.log('Fusion Error: \n' + errorMessage);
+    }
+}
+
+var fusionInitialized = function() {
+
+    $('AppContainer').resize({forceResize: true});
+    $('AppContainer').style.visibility = 'visible';
+    var mapWidget = Fusion.getMapById('Map');
+    mapWidget.registerForEvent(Fusion.Event.MAP_LOADED, initPanelHandler);
+}
+
+var isTaskPaneRegistered = false;
+
+var initPanelHandler = function() {
+    if(isTaskPaneRegistered) return;
+    //register this with MAP_LOADED so that the initial layout will remain
+    Fusion.registerForEvent(Fusion.Event.TASK_PANE_LOADED, showTaskPane);
+    isTaskPaneRegistered = true;
+}
+
+var showOverviewMap = function() {
+    dOverviewMap.open();
+}
+
+var showTaskPane = function() {
+    dTasks.open();
+}
+
+var showLegend = function() {
+    dLegend.open();
+}
+
+var showSelectionPanel = function() {
+    dSelection.open();
+}
+
+</script>
+</head>
+
+<body>
+
+<div id="AppContainer" style="visibility: hidden;">
+
+  <div id="Map">
+    <div id="Navigator"></div>
+  </div>
+
+  <!-- File Menu -->
+  <div id="FileMenu"></div>
+  <!-- /File Menu -->
+
+  <!-- Toolbar -->
+  <div id="Toolbar"></div>
+  <!-- /Toolbar -->
+
+  <!-- Toolbar Vertical -->
+  <div id="ToolbarVertical"></div>
+  <!-- /Toolbar Vertical -->
+
+  <div id="StatusbarContainer">
+    <div id="Statusbar"></div>
+    <div id="StatusOverviewMap"></div>
+    <div id="pbmg"><img src="images/pbmg.png" alt=""></div>
+  </div>
+
+  <div id="Maptip"></div>
+
+</div>
+
+<!--
+<div id="TaskPane"></div>
+<div id="OverviewMap"></div>
+<div id="Legend"></div>
+<div id="SelectionPanel"></div>
+-->
+</body>
+</html>

Modified: sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/aqua.xml
===================================================================
--- sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/aqua.xml	2018-07-26 16:08:49 UTC (rev 9401)
+++ sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/aqua.xml	2018-07-26 16:23:26 UTC (rev 9402)
@@ -1,6 +1,6 @@
 <TemplateInfo>
 <Name>Aqua</Name>
-<LocationUrl>fusion/templates/mapguide/aqua/index.html</LocationUrl>
+<LocationUrl>fusion/templates/mapguide/index.php?template=aqua</LocationUrl>
 <Description>Aqua template</Description>
 <PreviewImageUrl>fusion/templates/mapguide/aqua/preview.png</PreviewImageUrl>
 

Added: sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/limegold/index.templ
===================================================================
--- sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/limegold/index.templ	                        (rev 0)
+++ sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/limegold/index.templ	2018-07-26 16:23:26 UTC (rev 9402)
@@ -0,0 +1,266 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>LimeGold</title>
+<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
+%__SCRIPTS__%
+<script type="text/javascript" src="%__LIB_BASE__%/%__FUSION_SCRIPT__%.js"></script>
+<link rel="stylesheet" href="%__LIB_BASE__%/jxLib/themes/delicious/jxtheme.css" type="text/css" media="screen" charset="utf-8" />
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/limegold.css" type="text/css" media="screen" charset="utf-8" />
+<!--[if lte IE 6]>
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/ie6.css" type="text/css" media="screen" charset="utf-8" />
+<![endif]-->
+<!--[if IE 7]>
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/ie7.css" type="text/css" media="screen" charset="utf-8" />
+<![endif]-->
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/icons.css" type="text/css" media="screen" charset="utf-8" />
+<script type="text/javascript">
+var tab1;
+var tab2;
+var tab3;
+var tabbox1;
+var COLLAPSED_SIDEBAR_WIDTH = 8;
+var appDefJson = %__APPDEF_JSON__%;
+
+window.onload = function() {
+    Fusion.initializeLocale();  //need to call this first if String.Translate is to be used in the onload
+
+    var main = new Jx.Layout('AppContainer');
+    new Jx.Layout('FileMenu', {height: 34, bottom: null});
+    new Jx.Layout('Toolbar', {height: 24, top: 34, bottom: null});
+    new Jx.Layout('ToolbarSecondary', {height: 24, top: 58, bottom: null});
+    new Jx.Layout('SplitterArea', {left: 0, right: 0, top: 82, bottom: 21});
+    new Jx.Layout('StatusbarContainer', {height: 21, top: null, bottom: 0});
+    new Jx.Layout('Statusbar', {height: 21, right: 141, top: null});
+    new Jx.Layout('Map');
+    
+    var splitter = new Jx.Splitter('SplitterArea', {
+        splitInto:2,
+        elements:[$('Main'),$('Sidebar')],
+        layout:'horizontal',
+        containerOptions: [{},{minWidth:COLLAPSED_SIDEBAR_WIDTH, width: 214}],
+        barOptions: [{
+            snap: 'after',
+            snapElement: $('SidebarCollapse'),
+            snapEvents: ['click']
+        }]
+    });
+
+    var splitter2 = new Jx.Splitter('Sidebar', {
+        splitInto:2,
+        elements:[$('Info'),$('Bottom')],
+        layout:'vertical',
+        containerOptions: [
+            {},
+            {height: 214, minHeight: 214, maxHeight: 214}
+        ]
+    });
+
+    /* create dynamic content */
+    tabbox1 = new Jx.TabBox({parent: splitter2.elements[0]});
+
+    tab1 = new Jx.Tab({
+        label: OpenLayers.i18n('taskPaneTitle'),
+        contentId: 'TaskPane'
+    });
+
+    tab2 = new Jx.Tab({
+        label: OpenLayers.i18n('legendTitle'),
+        contentId: 'Legend'
+    });
+
+    tab3 = new Jx.Tab({
+        label: OpenLayers.i18n('selectionPanelTitle'),
+        contentId: 'SelectionPanel'
+    });
+
+    tabbox1.add(tab1, tab2, tab3);
+
+    var tabbox2 = new Jx.TabBox({parent: splitter2.elements[1]});
+
+    var tab4 = new Jx.Tab({
+        label: OpenLayers.i18n('ovmapTitle'),
+        contentId: 'OverviewMap'});
+
+    tabbox2.add(tab4);
+
+    main.resize();
+
+    Fusion.registerForEvent(Fusion.Event.FUSION_INITIALIZED, fusionInitialized);
+    Fusion.registerForEvent(Fusion.Event.FUSION_ERROR, fusionError);
+    Fusion.initialize({
+        appDef: appDefJson
+    });
+}
+
+var showErrorDialog = function(msg) {
+    var errorDialog = new Jx.Dialog({
+        label: "Fusion Error",
+        image: "images/icons/error.png",
+        width: 800,
+        height: 400,
+        modal: true,
+        resize: true,
+        move: true,
+        content: msg
+    });
+    errorDialog.show();
+};
+
+var fusionError = function(eventId, error) {
+    if (error instanceof Fusion.DetailedError) {
+        //Case 1: Session Expiry
+        //
+        //
+        if (error.message.indexOf("MgSessionExpiredException") >= 0) {
+            var sessionId = Fusion.getQueryParam("Session");
+            var map = Fusion.getMapByIndice(0);
+            //Graceful reload is only possible if session id was not passed in as a query parameter
+            if (sessionId == "") {
+                map.message.error(OpenLayers.i18n('sessionExpired') + ' <a href="javascript:window.location.reload()">' + OpenLayers.i18n("reload") + '</a>');
+            } else {
+                map.message.error(OpenLayers.i18n('sessionExpired'));
+            }
+            return;
+        }
+    
+        //Default Case: Show a formatted summary of the error
+        var fmtStack = "";
+        for (var i = 0; i < error.stack.length; i++) {
+            var stackFrame = error.stack[i];
+            fmtStack += " - " + (stackFrame.func != "" ? stackFrame.func : "?") + " at " + stackFrame.url + " (line: " + stackFrame.line + ")";
+            fmtStack += "\n";
+        }
+        var message = OpenLayers.i18n("detailedErrorTemplateHtml", {
+            name: error.name,
+            source: error.url,
+            message: error.message,
+            stacktrace: fmtStack
+        });
+        showErrorDialog(message);
+        console.log('Fusion Error: \n' + message);
+    } else {
+        var errorMessage = error.toString();
+        var readableMessage = '';
+
+        //Case 1: For dealing with Function: convertXML (fusion.js)
+        //******************************************
+        //        xml2json: function(callback, r, json) {
+        //      if (json) {
+        //        var o;
+        //        eval("o="+r.responseText);
+        //        callback(o);
+        //      } else {
+        //      if (r.status >= 400) {
+        //          Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
+        //              'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
+        //          return;
+        //      }
+        //******************************************
+        var tagStart = '<h2>';
+        var tagEnd = '</h2>';
+        var indexStart = errorMessage.indexOf(tagStart);
+        var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
+        if (indexStart != -1 && indexEnd != -1) {
+            readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
+            readableMessage = readableMessage.replace(/\\n/g, '\n');
+            readableMessage = readableMessage.replace(/\\t/g, '\t');
+            readableMessage = readableMessage.replace(/\\'/g, '\'');
+        }
+
+        if (readableMessage != '') {
+            showErrorDialog(readableMessage);
+        }
+        else {
+            showErrorDialog('Fusion Error: \n' + errorMessage);
+        }
+        console.log('Fusion Error: \n' + errorMessage);
+    }
+}
+
+var fusionInitialized = function() {
+    $('AppContainer').resize({forceResize: true});
+    //Fusion.getWidgetById('ToolbarSecondary').checkPosition();
+    var mapWidget = Fusion.getMapById('Map');
+    mapWidget.registerForEvent(Fusion.Event.MAP_LOADED, initPanelHandler);
+}
+
+var isTaskPaneRegistered = false;
+
+var initPanelHandler = function() {
+    if(isTaskPaneRegistered) return;
+    //register this with MAP_LOADED so that the initial layout will remain
+    Fusion.registerForEvent(Fusion.Event.TASK_PANE_LOADED, showTaskPane);
+    isTaskPaneRegistered = true;
+}
+
+var showOverviewMap = function() {
+    showSidebarIfCollapsed();
+}
+
+var showSidebarIfCollapsed = function() {
+    if ($("Sidebar").getWidth() <= COLLAPSED_SIDEBAR_WIDTH)
+        $("SidebarCollapse").fireEvent("click");
+};
+
+var showTaskPane = function() {
+    showSidebarIfCollapsed();
+    tab1.setActive(true);
+}
+
+var showLegend = function() {
+    showSidebarIfCollapsed();
+    tab2.setActive(true);
+}
+
+var showSelectionPanel = function() {
+    showSidebarIfCollapsed();
+    tab3.setActive(true);
+}
+
+</script>
+</head>
+
+<body>
+
+<div id="AppContainer">
+
+  <div id="FileMenu"></div>
+  <div id="Toolbar"></div>
+  <div id="ToolbarSecondary"></div>
+
+  <div id="SplitterArea">
+
+    <div id="Sidebar">
+      <div id="Info"></div>
+      <div id="Bottom"></div>
+      <!-- Collapse Sidebar -->
+      <div id="SidebarCollapse">
+        <div id="SidebarCollapseTop"></div>
+        <div id="SidebarCollapseContent">
+          <a id="SidebarCollapseButton" href="#"></a>
+        </div>
+        <div id="SidebarCollapseBottom"></div>
+      </div>
+    </div>
+
+    <div id="Main">
+        <div id="Map">
+          <div id="Navigator"></div>
+        </div>
+    </div>
+  </div>
+
+  <div id="StatusbarContainer">
+    <div id="Statusbar"></div>
+    <div id="pbmg"><img src="images/pbmg.png" alt=""></div>
+  </div>
+
+</div>
+
+<div id="Maptip"></div>
+
+</body>
+</html>

Modified: sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/limegold.xml
===================================================================
--- sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/limegold.xml	2018-07-26 16:08:49 UTC (rev 9401)
+++ sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/limegold.xml	2018-07-26 16:23:26 UTC (rev 9402)
@@ -1,6 +1,6 @@
 <TemplateInfo>
 <Name>LimeGold</Name>
-<LocationUrl>fusion/templates/mapguide/limegold/index.html</LocationUrl>
+<LocationUrl>fusion/templates/mapguide/index.php?template=limegold</LocationUrl>
 <Description>Lime-Gold template</Description>
 <PreviewImageUrl>fusion/templates/mapguide/limegold/preview.png</PreviewImageUrl>
 

Added: sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/maroon/index.templ
===================================================================
--- sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/maroon/index.templ	                        (rev 0)
+++ sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/maroon/index.templ	2018-07-26 16:23:26 UTC (rev 9402)
@@ -0,0 +1,281 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Maroon</title>
+<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
+%__SCRIPTS__%
+<script type="text/javascript" src="%__LIB_BASE__%/%__FUSION_SCRIPT__%.js"></script>
+<link rel="stylesheet" href="%__LIB_BASE__%/jxLib/themes/delicious/jxtheme.css" type="text/css" media="screen" charset="utf-8" />
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/maroon.css" type="text/css" media="screen" charset="utf-8" />
+<!--[if lte IE 6]>
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/ie6.css" type="text/css" media="screen" charset="utf-8" />
+<![endif]-->
+<!--[if IE 7]>
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/ie7.css" type="text/css" media="screen" charset="utf-8" />
+<![endif]-->
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/icons.css" type="text/css" media="screen" charset="utf-8" />
+<script type="text/javascript">
+
+var panel1;
+var panel2;
+var panel3;
+var panel4;
+var panelman;
+var COLLAPSED_SIDEBAR_WIDTH = 8;
+var appDefJson = %__APPDEF_JSON__%;
+
+window.onload = function() {
+    Fusion.initializeLocale();  //need to call this first if String.Translate is to be used in the onload
+
+    var main = new Jx.Layout('AppContainer');
+    new Jx.Layout('FileMenu', {
+        left: 5, 
+        right: 5, 
+        top: 5, 
+        height: 25
+    });
+    new Jx.Layout('Toolbar', {
+        left: 5, 
+        right: 5, 
+        top: 30, 
+        height: 24
+    });
+    new Jx.Layout('ToolbarVertical', {
+        left: 5, 
+        width: 28, 
+        top: 54, 
+        bottom: 21
+    });
+    new Jx.Layout('SplitterArea', {
+        left: 33, 
+        top: 54, 
+        right: 5, 
+        bottom: 22
+    });
+  
+    new Jx.Layout('MapArea');
+    new Jx.Layout('Map');
+    
+    new Jx.Layout('StatusbarContainer', {
+        height: 22, 
+        bottom: 0,
+        top: null
+    });
+    new Jx.Layout('Statusbar', {
+        right: 159
+    });
+
+    var splitter = new Jx.Splitter('SplitterArea', {
+        splitInto:2,
+        elements:[$('MapArea'),$('Sidebar')],
+        layout:'horizontal',
+        containerOptions: [{},{minWidth:COLLAPSED_SIDEBAR_WIDTH, width: 218}],
+        barOptions: [
+            {
+                snap: 'after', 
+                snapElement: $('SidebarCollapse'), 
+                snapEvents: ['click']
+            }
+        ]
+    });
+
+    /* create dynamic content */
+    panel1 = new Jx.Panel({
+        label: OpenLayers.i18n('legendTitle'),
+        collapse: true,
+        maximize: true,
+        contentId: 'Legend'});
+    panel1.content.id = 'Legend';
+
+    panel2 = new Jx.Panel({
+        label: OpenLayers.i18n('selectionPanelTitle'),
+        collapse: true,
+        maximize: true,
+        contentId: 'SelectionPanel'});
+
+    panel3 = new Jx.Panel({
+        label: OpenLayers.i18n('taskPaneTitle'),
+        collapse: true,
+        maximize: true,
+        contentId: 'TaskPane'});
+
+    panel4 = new Jx.Panel({
+        label: OpenLayers.i18n('ovmapTitle'),
+        collapse: true,
+        maximize: true,
+        contentId: 'OverviewMap'});
+
+    panelman = new Jx.PanelSet({parent: splitter.elements[1], panels: [panel1, panel2, panel3, panel4]});
+
+    main.resize();
+
+    Fusion.registerForEvent(Fusion.Event.FUSION_INITIALIZED, fusionInitialized);
+    Fusion.registerForEvent(Fusion.Event.FUSION_ERROR, fusionError);
+    Fusion.initialize({
+        appDef: appDefJson
+    });
+}
+
+var showErrorDialog = function(msg) {
+    var errorDialog = new Jx.Dialog({
+        label: "Fusion Error",
+        image: "images/icons/error.png",
+        width: 800,
+        height: 400,
+        modal: true,
+        resize: true,
+        move: true,
+        content: msg
+    });
+    errorDialog.show();
+};
+
+var fusionError = function(eventId, error) {
+    if (error instanceof Fusion.DetailedError) {
+        //Case 1: Session Expiry
+        //
+        //
+        if (error.message.indexOf("MgSessionExpiredException") >= 0) {
+            var sessionId = Fusion.getQueryParam("Session");
+            var map = Fusion.getMapByIndice(0);
+            //Graceful reload is only possible if session id was not passed in as a query parameter
+            if (sessionId == "") {
+                map.message.error(OpenLayers.i18n('sessionExpired') + ' <a href="javascript:window.location.reload()">' + OpenLayers.i18n("reload") + '</a>');
+            } else {
+                map.message.error(OpenLayers.i18n('sessionExpired'));
+            }
+            return;
+        }
+    
+        //Default Case: Show a formatted summary of the error
+        var fmtStack = "";
+        for (var i = 0; i < error.stack.length; i++) {
+            var stackFrame = error.stack[i];
+            fmtStack += " - " + (stackFrame.func != "" ? stackFrame.func : "?") + " at " + stackFrame.url + " (line: " + stackFrame.line + ")";
+            fmtStack += "\n";
+        }
+        var message = OpenLayers.i18n("detailedErrorTemplateHtml", {
+            name: error.name,
+            source: error.url,
+            message: error.message,
+            stacktrace: fmtStack
+        });
+        showErrorDialog(message);
+        console.log('Fusion Error: \n' + message);
+    } else {
+        var errorMessage = error.toString();
+        var readableMessage = '';
+
+        //Case 1: For dealing with Function: convertXML (fusion.js)
+        //******************************************
+        //        xml2json: function(callback, r, json) {
+        //      if (json) {
+        //        var o;
+        //        eval("o="+r.responseText);
+        //        callback(o);
+        //      } else {
+        //      if (r.status >= 400) {
+        //          Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
+        //              'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
+        //          return;
+        //      }
+        //******************************************
+        var tagStart = '<h2>';
+        var tagEnd = '</h2>';
+        var indexStart = errorMessage.indexOf(tagStart);
+        var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
+        if (indexStart != -1 && indexEnd != -1) {
+            readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
+            readableMessage = readableMessage.replace(/\\n/g, '\n');
+            readableMessage = readableMessage.replace(/\\t/g, '\t');
+            readableMessage = readableMessage.replace(/\\'/g, '\'');
+        }
+
+        if (readableMessage != '') {
+            showErrorDialog(readableMessage);
+        }
+        else {
+            showErrorDialog('Fusion Error: \n' + errorMessage);
+        }
+        console.log('Fusion Error: \n' + errorMessage);
+    }
+}
+
+var fusionInitialized = function() {
+    $('AppContainer').resize({forceResize: true});
+    var mapWidget = Fusion.getMapById('Map');
+    mapWidget.registerForEvent(Fusion.Event.MAP_LOADED, initPanelHandler);
+}
+
+var isTaskPaneRegistered = false;
+
+var initPanelHandler = function() {
+    if(isTaskPaneRegistered) return;
+    //register this with MAP_LOADED so that the initial layout will remain
+    Fusion.registerForEvent(Fusion.Event.TASK_PANE_LOADED, showTaskPane);
+    isTaskPaneRegistered = true;
+}
+
+var showSidebarIfCollapsed = function() {
+    if ($("Sidebar").getWidth() <= (COLLAPSED_SIDEBAR_WIDTH + 1)) //Template-specific
+        $("SidebarCollapse").fireEvent("click");
+};
+
+var showOverviewMap = function() {
+    showSidebarIfCollapsed();
+    panelman.maximizePanel(panel4);
+}
+
+var showTaskPane = function() {
+    showSidebarIfCollapsed();
+    panelman.maximizePanel(panel3);
+}
+
+var showLegend = function() {
+    showSidebarIfCollapsed();
+    panelman.maximizePanel(panel1);
+}
+
+var showSelectionPanel = function() {
+    showSidebarIfCollapsed();
+    panelman.maximizePanel(panel2);
+}
+
+</script>
+
+</head>
+
+<body>
+
+<div id="AppContainer">
+
+  <div id="FileMenu"></div>
+
+  <div id="SplitterArea">
+    <div id="MapArea">
+      <div id="Map"></div>
+      <div id="Navigator"></div>
+    </div>
+    <div id="Sidebar">
+      <!-- Collapse Sidebar -->
+      <div id="SidebarCollapse">
+          <a id="SidebarCollapseButton" href="#"></a>
+      </div>
+    </div>
+  </div>
+
+  <div id="Toolbar"></div>
+  <div id="ToolbarVertical"></div>
+  <div id="StatusbarContainer">
+    <div id="Statusbar"></div>
+    <div id="pbmg"><img src="images/pbmg.gif" alt=""></div>
+  </div>
+
+</div>
+
+<div id="Maptip"></div>
+
+</body>
+</html>

Modified: sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/maroon.xml
===================================================================
--- sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/maroon.xml	2018-07-26 16:08:49 UTC (rev 9401)
+++ sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/maroon.xml	2018-07-26 16:23:26 UTC (rev 9402)
@@ -1,6 +1,6 @@
 <TemplateInfo>
 <Name>Maroon</Name>
-<LocationUrl>fusion/templates/mapguide/maroon/index.html</LocationUrl>
+<LocationUrl>fusion/templates/mapguide/index.php?template=maroon</LocationUrl>
 <Description>Maroon template</Description>
 <PreviewImageUrl>fusion/templates/mapguide/maroon/preview.png</PreviewImageUrl>
 

Modified: sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/slate/index.templ
===================================================================
--- sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/slate/index.templ	2018-07-26 16:08:49 UTC (rev 9401)
+++ sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/slate/index.templ	2018-07-26 16:23:26 UTC (rev 9402)
@@ -23,7 +23,6 @@
 var panelman;
 var dOverviewMap;
 var COLLAPSED_SIDEBAR_WIDTH = 8;
-
 var appDefJson = %__APPDEF_JSON__%;
 
 window.onload = function() {
@@ -96,7 +95,6 @@
 
     Fusion.registerForEvent(Fusion.Event.FUSION_INITIALIZED, fusionInitialized);
     Fusion.registerForEvent(Fusion.Event.FUSION_ERROR, fusionError);
-
     Fusion.initialize({
         appDef: appDefJson
     });

Modified: sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/slate.xml
===================================================================
--- sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/slate.xml	2018-07-26 16:08:49 UTC (rev 9401)
+++ sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/slate.xml	2018-07-26 16:23:26 UTC (rev 9402)
@@ -1,6 +1,6 @@
 <TemplateInfo>
 <Name>Slate</Name>
-<LocationUrl>fusion/templates/mapguide/slate/index.html</LocationUrl>
+<LocationUrl>fusion/templates/mapguide/index.php?template=slate</LocationUrl>
 <Description>Slate template</Description>
 <PreviewImageUrl>fusion/templates/mapguide/slate/preview.png</PreviewImageUrl>
 

Added: sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/turquoiseyellow/index.templ
===================================================================
--- sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/turquoiseyellow/index.templ	                        (rev 0)
+++ sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/turquoiseyellow/index.templ	2018-07-26 16:23:26 UTC (rev 9402)
@@ -0,0 +1,242 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>TurquoiseYellow</title>
+<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
+%__SCRIPTS__%
+<script type="text/javascript" src="%__LIB_BASE__%/%__FUSION_SCRIPT__%.js"></script>
+<link rel="stylesheet" href="%__LIB_BASE__%/jxLib/themes/delicious/jxtheme.css" type="text/css" media="screen" charset="utf-8" />
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/turquoiseyellow.css" type="text/css" media="screen" charset="utf-8" />
+<!--[if lte IE 6]>
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/ie6.css" type="text/css" media="screen" charset="utf-8" />
+<![endif]-->
+<!--[if IE 7]>
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/ie7.css" type="text/css" media="screen" charset="utf-8" />
+<![endif]-->
+<link rel="stylesheet" href="%__TEMPLATE_BASE__%/icons.css" type="text/css" media="screen" charset="utf-8" />
+<script type="text/javascript">
+
+var tab1;
+var tab2;
+var tab3;
+var tabbox1;
+var appDefJson = %__APPDEF_JSON__%;
+
+window.onload = function() {
+    Fusion.initializeLocale();  //need to call this first if String.Translate is to be used in the onload
+
+    var main = new Jx.Layout('AppContainer');
+    new Jx.Layout('SplitterArea', {left: 3, right: 3, bottom: 24});
+    new Jx.Layout('FileMenu', {height: 34, bottom: null});
+    new Jx.Layout('Toolbar', {height: 25, top: 34, bottom: null});
+    new Jx.Layout('StatusbarContainer', {height: 21, top: null});
+    new Jx.Layout('Statusbar', {height: 21, right: 159, top: null, bottom: 0});
+    new Jx.Layout('MapArea', {top: 62});
+    new Jx.Layout('ToolbarVertical', {width: 28, right: null});
+    new Jx.Layout('Map', {left: 28});
+    
+    var splitter = new Jx.Splitter('SplitterArea',
+                                   {splitInto:2,
+                                   elements:[$('Sidebar'),$('Main')],
+                                   layout:'horizontal',
+                                   containerOptions: [{minWidth: 50, width: 214}, {}],
+                                   snappers: [$('SidebarCollapse'),null]});
+
+    var splitter2 = new Jx.Splitter('Sidebar',
+                                   {splitInto:2,
+                                   elements:[$('Info'),$('Bottom')],
+                                   layout:'vertical',
+                                   containerOptions: [{}, {height: 214}]});
+
+    tabbox1 = new Jx.TabBox({parent: splitter2.elements[0]});
+
+    tab1 = new Jx.Tab({
+        label: OpenLayers.i18n('taskPaneTitle'),
+        contentId: 'TaskPane'});
+
+    tab2 = new Jx.Tab({
+        label: OpenLayers.i18n('legendTitle'),
+        contentId: 'Legend'});
+
+    tab3 = new Jx.Tab({
+        label: OpenLayers.i18n('selectionPanelTitle'),
+        contentId: 'SelectionPanel'});
+
+    tabbox1.add(tab1, tab2, tab3);
+
+    var tabbox2 = new Jx.TabBox({parent: splitter2.elements[1]});
+
+    var tab4 = new Jx.Tab({
+        label: OpenLayers.i18n('ovmapTitle'),
+        contentId: 'OverviewMap'});
+
+    tabbox2.add(tab4);
+
+    main.resize();
+
+    Fusion.registerForEvent(Fusion.Event.FUSION_INITIALIZED, fusionInitialized);
+    Fusion.registerForEvent(Fusion.Event.FUSION_ERROR, fusionError);
+    Fusion.initialize({
+        appDef: appDefJson
+    });
+}
+
+var showErrorDialog = function(msg) {
+    var errorDialog = new Jx.Dialog({
+        label: "Fusion Error",
+        image: "images/icons/error.png",
+        width: 800,
+        height: 400,
+        modal: true,
+        resize: true,
+        move: true,
+        content: msg
+    });
+    errorDialog.show();
+};
+
+var fusionError = function(eventId, error) {
+    if (error instanceof Fusion.DetailedError) {
+        //Case 1: Session Expiry
+        //
+        //
+        if (error.message.indexOf("MgSessionExpiredException") >= 0) {
+            var sessionId = Fusion.getQueryParam("Session");
+            var map = Fusion.getMapByIndice(0);
+            //Graceful reload is only possible if session id was not passed in as a query parameter
+            if (sessionId == "") {
+                map.message.error(OpenLayers.i18n('sessionExpired') + ' <a href="javascript:window.location.reload()">' + OpenLayers.i18n("reload") + '</a>');
+            } else {
+                map.message.error(OpenLayers.i18n('sessionExpired'));
+            }
+            return;
+        }
+    
+        //Default Case: Show a formatted summary of the error
+        var fmtStack = "";
+        for (var i = 0; i < error.stack.length; i++) {
+            var stackFrame = error.stack[i];
+            fmtStack += " - " + (stackFrame.func != "" ? stackFrame.func : "?") + " at " + stackFrame.url + " (line: " + stackFrame.line + ")";
+            fmtStack += "\n";
+        }
+        var message = OpenLayers.i18n("detailedErrorTemplateHtml", {
+            name: error.name,
+            source: error.url,
+            message: error.message,
+            stacktrace: fmtStack
+        });
+        showErrorDialog(message);
+        console.log('Fusion Error: \n' + message);
+    } else {
+        var errorMessage = error.toString();
+        var readableMessage = '';
+
+        //Case 1: For dealing with Function: convertXML (fusion.js)
+        //******************************************
+        //        xml2json: function(callback, r, json) {
+        //      if (json) {
+        //        var o;
+        //        eval("o="+r.responseText);
+        //        callback(o);
+        //      } else {
+        //      if (r.status >= 400) {
+        //          Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
+        //              'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
+        //          return;
+        //      }
+        //******************************************
+        var tagStart = '<h2>';
+        var tagEnd = '</h2>';
+        var indexStart = errorMessage.indexOf(tagStart);
+        var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
+        if (indexStart != -1 && indexEnd != -1) {
+            readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
+            readableMessage = readableMessage.replace(/\\n/g, '\n');
+            readableMessage = readableMessage.replace(/\\t/g, '\t');
+            readableMessage = readableMessage.replace(/\\'/g, '\'');
+        }
+
+        if (readableMessage != '') {
+            showErrorDialog(readableMessage);
+        }
+        else {
+            showErrorDialog('Fusion Error: \n' + errorMessage);
+        }
+        console.log('Fusion Error: \n' + errorMessage);
+    }
+}
+
+var fusionInitialized = function() {
+    $('AppContainer').resize({forceResize: true});
+    var mapWidget = Fusion.getMapById('Map');
+    mapWidget.registerForEvent(Fusion.Event.MAP_LOADED, initPanelHandler);
+}
+
+var isTaskPaneRegistered = false;
+
+var initPanelHandler = function() {
+    if(isTaskPaneRegistered) return;
+    //register this with MAP_LOADED so that the initial layout will remain
+    Fusion.registerForEvent(Fusion.Event.TASK_PANE_LOADED, showTaskPane);
+    isTaskPaneRegistered = true;
+}
+
+var showOverviewMap = function() {
+}
+
+var showTaskPane = function() {
+  tab1.setActive(true);
+}
+
+var showLegend = function() {
+  tab2.setActive(true);
+}
+
+var showSelectionPanel = function() {
+  tab3.setActive(true);
+}
+
+</script>
+
+</head>
+
+<body>
+
+<!--
+  Start App Container
+  Wraps entire application
+-->
+<div id="AppContainer">
+
+  <div id="SplitterArea">
+
+    <div id="Sidebar">
+      <div id="Info"></div>
+      <div id="Bottom"></div>
+    </div>
+
+    <div id="Main">
+      <div id="FileMenu"></div>
+      <div id="Toolbar"></div>
+      <div id="MapArea">
+          <div id="ToolbarVertical"></div>
+          <div id="Map">
+            <div id="Navigator"></div>
+          </div>
+      </div>
+    </div>
+
+  </div>
+
+  <div id="StatusbarContainer">
+    <div id="Statusbar"></div>
+    <div id="pbmg"><img src="images/pbmg.png" alt=""></div>
+  </div>
+
+</div>
+<div id="Maptip"></div>
+
+</body>
+</html>

Modified: sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/turquoiseyellow.xml
===================================================================
--- sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/turquoiseyellow.xml	2018-07-26 16:08:49 UTC (rev 9401)
+++ sandbox/jng/fusion_entrypoint_refactor/Oem/fusionMG/templates/mapguide/turquoiseyellow.xml	2018-07-26 16:23:26 UTC (rev 9402)
@@ -1,6 +1,6 @@
 <TemplateInfo>
 <Name>TurquoiseYellow</Name>
-<LocationUrl>fusion/templates/mapguide/turquoiseyellow/index.html</LocationUrl>
+<LocationUrl>fusion/templates/mapguide/index.php?template=turquoiseyellow</LocationUrl>
 <Description>Turquoise-Yellow template</Description>
 <PreviewImageUrl>fusion/templates/mapguide/turquoiseyellow/preview.png</PreviewImageUrl>
 



More information about the mapguide-commits mailing list