Переглянути джерело

HPCC-10583 Make new ECL Watch the default

Made EclWatch show up in the root page http://IP:port.

Should also work from the old url:
http://IP:port/esp/files/stub.htm?Widget=HPCCPlatformWidget

Legacy can be accessed from http://IP:port/?legacy

Signed-off-by: Anthony Fishbeck <anthony.fishbeck@lexisnexis.com>
Anthony Fishbeck 11 роки тому
батько
коміт
e63c939326

+ 1 - 1
esp/bindings/http/platform/httpbinding.hpp

@@ -173,7 +173,7 @@ public:
     virtual bool doAuth(IEspContext* ctx);
     virtual void populateRequest(CHttpRequest *request);
     virtual void getNavSettings(int &width, bool &resizable, bool &scroll){width=165;resizable=false;scroll=true;}
-    virtual const char* getRootPage() {return NULL;}
+    virtual const char* getRootPage(IEspContext* ctx) {return NULL;}
 
     virtual StringBuffer &generateNamespace(IEspContext &context, CHttpRequest* request, const char *serv, const char *method, StringBuffer &ns);
     virtual void getSchemaLocation(IEspContext &context, CHttpRequest* request, StringBuffer &schemaLocation );

+ 4 - 4
esp/files/scripts/ActivityWidget.js

@@ -295,17 +295,17 @@ define([
                             return true;
                         },
                         formatter: function (_name, row) {
-                            var img = "../files/";
+                            var img;
                             var name = "";
                             if (context.activity.isInstanceOfQueue(row)) {
                                 if (row.isPaused()) {
-                                    img += "img/server_paused.png";
+                                    img += "/esp/files/img/server_paused.png";
                                 } else {
-                                    img += "img/server.png";
+                                    img += "/esp/files/img/server.png";
                                 }
                                 name = row.getDisplayName();
                             } else {
-                                img += row.getStateImage();
+                                img = row.getStateImage();
                                 name = "<a href='#' class='" + context.id + "WuidClick'>" + row.Wuid + "</a>";
                             }
                             return "<img src='" + img + "'/>&nbsp;" + name;

+ 11 - 11
esp/files/scripts/ESPDFUWorkunit.js

@@ -241,9 +241,9 @@ define([
         },
         getProtectedImage: function () {
             if (this.isProtected) {
-                return "img/locked.png"
+                return "/esp/files/img/locked.png"
             }
-            return "img/unlocked.png"
+            return "/esp/files/img/unlocked.png"
         },
         getStateIconClass: function () {
             switch (this.StateID) {
@@ -271,23 +271,23 @@ define([
         getStateImage: function () {
             switch (this.State) {
                 case 1:
-                    return "img/workunit_warning.png";
+                    return "/esp/files/img/workunit_warning.png";
                 case 2:
-                    return "img/workunit_submitted.png";
+                    return "/esp/files/img/workunit_submitted.png";
                 case 3:
-                    return "img/workunit_running.png";
+                    return "/esp/files/img/workunit_running.png";
                 case 4:
-                    return "img/workunit_failed.png";
+                    return "/esp/files/img/workunit_failed.png";
                 case 5:
-                    return "img/workunit_failed.png";
+                    return "/esp/files/img/workunit_failed.png";
                 case 6:
-                    return "img/workunit_completed.png";
+                    return "/esp/files/img/workunit_completed.png";
                 case 7:
-                    return "img/workunit_running.png";
+                    return "/esp/files/img/workunit_running.png";
                 case 8:
-                    return "img/workunit_aborting.png";
+                    return "/esp/files/img/workunit_aborting.png";
             }
-            return "img/workunit.png";
+            return "/esp/files/img/workunit.png";
         }
     });
 

+ 20 - 20
esp/files/scripts/ESPWorkunit.js

@@ -457,47 +457,47 @@ define([
         getStateImage: function () {
             switch (this.StateID) {
                 case 1:
-                    return "img/workunit_completed.png";
+                    return "/esp/files/img/workunit_completed.png";
                 case 2:
-                    return "img/workunit_running.png";
+                    return "/esp/files/img/workunit_running.png";
                 case 3:
-                    return "img/workunit_completed.png";
+                    return "/esp/files/img/workunit_completed.png";
                 case 4:
-                    return "img/workunit_failed.png";
+                    return "/esp/files/img/workunit_failed.png";
                 case 5:
-                    return "img/workunit_warning.png";
+                    return "/esp/files/img/workunit_warning.png";
                 case 6:
-                    return "img/workunit_aborting.png";
+                    return "/esp/files/img/workunit_aborting.png";
                 case 7:
-                    return "img/workunit_failed.png";
+                    return "/esp/files/img/workunit_failed.png";
                 case 8:
-                    return "img/workunit_warning.png";
+                    return "/esp/files/img/workunit_warning.png";
                 case 9:
-                    return "img/workunit_submitted.png";
+                    return "/esp/files/img/workunit_submitted.png";
                 case 10:
-                    return "img/workunit_warning.png";
+                    return "/esp/files/img/workunit_warning.png";
                 case 11:
-                    return "img/workunit_running.png";
+                    return "/esp/files/img/workunit_running.png";
                 case 12:
-                    return "img/workunit_warning.png";
+                    return "/esp/files/img/workunit_warning.png";
                 case 13:
-                    return "img/workunit_warning.png";
+                    return "/esp/files/img/workunit_warning.png";
                 case 14:
-                    return "img/workunit_warning.png";
+                    return "/esp/files/img/workunit_warning.png";
                 case 15:
-                    return "img/workunit_running.png";
+                    return "/esp/files/img/workunit_running.png";
                 case 16:
-                    return "img/workunit_warning.png";
+                    return "/esp/files/img/workunit_warning.png";
                 case 999:
-                    return "img/workunit_deleted.png";
+                    return "/esp/files/img/workunit_deleted.png";
             }
-            return "img/workunit.png";
+            return "/esp/files/img/workunit.png";
         },
         getProtectedImage: function () {
             if (this.Protected) {
-                return "img/locked.png"
+                return "/esp/files/img/locked.png"
             }
-            return "img/unlocked.png"
+            return "/esp/files/img/unlocked.png"
         },
         fetchText: function (onFetchText) {
             var context = this;

+ 1 - 1
esp/files/scripts/FilterDropDownWidget.js

@@ -108,7 +108,7 @@ define([
         },
 
         refreshState: function () {
-            this.iconFilter.src = this.exists() ? "img/filter.png" : "img/noFilter.png";
+            this.iconFilter.src = this.exists() ? "/esp/files/img/filter.png" : "/esp/files/img/noFilter.png";
         }
     });
 });

+ 3 - 3
esp/files/scripts/GetDFUWorkunitsWidget.js

@@ -319,13 +319,13 @@ define([
                     }),
                     isProtected: {
                         renderHeaderCell: function (node) {
-                            node.innerHTML = "<img src='../files/img/locked.png'>";
+                            node.innerHTML = "<img src='/esp/files/img/locked.png'>";
                         },
                         width: 25,
                         sortable: false,
                         formatter: function (_protected) {
                             if (_protected == true) {
-                                return ("<img src='../files/img/locked.png'>");
+                                return ("<img src='/esp/files/img/locked.png'>");
                             }
                             return "";
                         }
@@ -335,7 +335,7 @@ define([
                         width: 180,
                         formatter: function (ID, idx) {
                             var wu = ESPDFUWorkunit.Get(ID);
-                            return "<img src='../files/" + wu.getStateImage() + "'>&nbsp;<a href='#' rowIndex=" + idx + " class='" + context.id + "IDClick'>" + ID + "</a>";
+                            return "<img src='" + wu.getStateImage() + "'>&nbsp;<a href='#' rowIndex=" + idx + " class='" + context.id + "IDClick'>" + ID + "</a>";
                         }
                     },
                     Command: {

+ 1 - 1
esp/files/scripts/GraphWidget.js

@@ -31,7 +31,7 @@ define([
     "dijit/layout/BorderContainer",
     "dijit/layout/ContentPane",
 
-    "dojo/text!../templates/GraphWidget.html",
+    "dojo/text!/esp/files/templates/GraphWidget.html",
 
     "dijit/Toolbar", 
     "dijit/ToolbarSeparator", 

+ 1 - 1
esp/files/scripts/HPCCPlatformWidget.js

@@ -195,7 +195,7 @@ define([
         },
 
         _onOpenLegacy: function (evt) {
-            var win = window.open("\\", "_blank");
+            var win = window.open("/?legacy", "_blank");
             win.focus();
         },
 

+ 1 - 1
esp/files/scripts/LZBrowseWidget.js

@@ -394,7 +394,7 @@ define([
                         collapseOnRefresh: true,
                         sortable: false,
                         formatter: function (name, row) {
-                            var img = "../files/img/";
+                            var img = "/esp/files/img/";
                             if (row.isDir === undefined) {
                                 img += "server.png";
                             } else if (row.isDir) {

+ 2 - 2
esp/files/scripts/QuerySetDetailsWidget.js

@@ -201,10 +201,10 @@ define([
                 this.workunitsTab.set("title", newValue);
             }
             if (name === "Suspended") {
-                dom.byId(this.id + "SuspendImg").src = newValue ? "img/suspended.png" : "img/unsuspended.png";
+                dom.byId(this.id + "SuspendImg").src = newValue ? "/esp/files/img/suspended.png" : "/esp/files/img/unsuspended.png";
             }
             if (name === "Activated") {
-                dom.byId(this.id + "ActiveImg").src = newValue ? "img/active.png" : "img/inactive.png";
+                dom.byId(this.id + "ActiveImg").src = newValue ? "/esp/files/img/active.png" : "/esp/files/img/inactive.png";
             }
 
             else if (name === "CountGraphs" && newValue) {

+ 6 - 6
esp/files/scripts/QuerySetQueryWidget.js

@@ -273,39 +273,39 @@ define([
                     }),
                     Suspended: {
                         renderHeaderCell: function (node) {
-                            node.innerHTML = "<img src='../files/img/suspended.png'>";
+                            node.innerHTML = "<img src='/esp/files/img/suspended.png'>";
                         },
                         width: 20,
                         sortable: false,
                         formatter: function (suspended) {
                             if (suspended == true) {
-                                return ("<img src='../files/img/suspended.png'>");
+                                return ("<img src='/esp/files/img/suspended.png'>");
                             }
                             return "";
                         }
                     },
                     Activated: {
                         renderHeaderCell: function (node) {
-                            node.innerHTML = "<img src='../files/img/active.png'>";
+                            node.innerHTML = "<img src='/esp/files/img/active.png'>";
                         },
                         width: 20,
                         sortable: false,
                         formatter: function (activated) {
                             if (activated == true) {
-                                return ("<img src='../files/img/active.png'>");
+                                return ("<img src='/esp/files/img/active.png'>");
                             }
                             return "";
                         }
                     },
                     ErrorCount: {
                         renderHeaderCell: function (node) {
-                            node.innerHTML = "<img src='../files/img/errwarn.png'>";
+                            node.innerHTML = "<img src='/esp/files/img/errwarn.png'>";
                         },
                         width: 20,
                         sortable: false,
                         formatter: function (error) {
                             if (error > 0) {
-                                return ("<img src='../files/img/errwarn.png'>");
+                                return ("<img src='/esp/files/img/errwarn.png'>");
                             }
                             return "";
                         }

+ 1 - 1
esp/files/scripts/QuerySetSuperFilesWidget.js

@@ -69,7 +69,7 @@ define([
                         label: "File", width: 180, sortable: true,
                         formatter: function (Wuid, row) {
                             var wu = row.Server === "DFUserver" ? ESPDFUWorkunit.Get(Wuid) : ESPWorkunit.Get(Wuid);
-                            return "<img src='../files/" + wu.getStateImage() + "'>&nbsp;<a href='#' class='" + context.id + "WuidClick'>" + Wuid + "</a>";
+                            return "<img src='" + wu.getStateImage() + "'>&nbsp;<a href='#' class='" + context.id + "WuidClick'>" + Wuid + "</a>";
                         }
 
                     },*/

+ 1 - 1
esp/files/scripts/SourceFilesWidget.js

@@ -77,7 +77,7 @@ define([
                     Name: {
                         label: "Name", sortable: true,
                         formatter: function (Name, row) {
-                            return "<img src='../files/img/" + (row.IsSuperFile ? "folder_table.png" : "file.png") + "'>&nbsp;<a href='#' rowIndex=" + row + " class='" + context.id + "SourceFileClick'>" + Name + "</a>";
+                            return "<img src='/esp/files/img/" + (row.IsSuperFile ? "folder_table.png" : "file.png") + "'>&nbsp;<a href='#' rowIndex=" + row + " class='" + context.id + "SourceFileClick'>" + Name + "</a>";
                         }
                     },
                     Count: { label: "Usage", width: 72, sortable: true }

+ 4 - 4
esp/files/scripts/WUQueryWidget.js

@@ -363,13 +363,13 @@ define([
                     }),
                     Protected: {
                         renderHeaderCell: function (node) {
-                            node.innerHTML = "<img src='../files/img/locked.png'>";
+                            node.innerHTML = "<img src='/esp/files/img/locked.png'>";
                         },
                         width: 25,
                         sortable: false,
                         formatter: function (protected) {
                             if (protected == true) {
-                                return ("<img src='../files/img/locked.png'>");
+                                return ("<img src='/esp/files/img/locked.png'>");
                             }
                             return "";
                         }
@@ -378,7 +378,7 @@ define([
                         label: this.i18n.WUID, width: 180,
                         formatter: function (Wuid, idx) {
                             var wu = ESPWorkunit.Get(Wuid);
-                            return "<img src='../files/" + wu.getStateImage() + "'>&nbsp;<a href='#' rowIndex=" + idx + " class='" + context.id + "WuidClick'>" + Wuid + "</a>";
+                            return "<img src='" + wu.getStateImage() + "'>&nbsp;<a href='#' rowIndex=" + idx + " class='" + context.id + "WuidClick'>" + Wuid + "</a>";
                         }
                     },
                     Owner: { label: this.i18n.Owner, width: 90 },
@@ -487,4 +487,4 @@ define([
         }
 
     });
-});
+});

+ 25 - 22
esp/files/stub.htm

@@ -20,30 +20,33 @@
 <head>
     <meta charset="utf-8">
     <title>HPCC: Stub</title>
-    <link href="CodeMirror2/lib/codemirror.css" rel="stylesheet">
-    <script src="CodeMirror2/lib/codemirror.js"></script>
-    <script src="CodeMirror2/lib/util/foldcode.js"></script>
-    <script src="CodeMirror2/mode/ecl/ecl.js"></script>
-    <script src="CodeMirror2/mode/xml/xml.js"></script>
-    <link href="css/ecl.css" rel="stylesheet">
-    <link href="dijit/themes/claro/claro.css" media="screen" rel="stylesheet">
-    <link href="dojox/grid/resources/Grid.css" rel="stylesheet">
-    <link href="dojox/grid/enhanced/resources/claro/EnhancedGrid.css" rel="stylesheet">
-    <link href="dojox/grid/resources/claroGrid.css" rel="stylesheet">
-    <link href="dojox/widget/Toaster/Toaster.css" rel="stylesheet">
-    <link href="dojox/widget/UpgradeBar/UpgradeBar.css" rel="stylesheet">
-    <link href="dojox/form/resources/FileUploader.css" rel="stylesheet">
-    <link href="dojox/form/resources/UploaderFileList.css" rel="stylesheet">
-    <link href="dgrid/css/dgrid.css" rel="stylesheet">
-    <link href="dgrid/css/skins/claro.css" rel="stylesheet">
-    <link href="css/hpcc.css" rel="stylesheet">
+    <link href="/esp/files/CodeMirror2/lib/codemirror.css" rel="stylesheet">
+    <script src="/esp/files/CodeMirror2/lib/codemirror.js"></script>
+    <script src="/esp/files/CodeMirror2/lib/util/foldcode.js"></script>
+    <script src="/esp/files/CodeMirror2/mode/ecl/ecl.js"></script>
+    <script src="/esp/files/CodeMirror2/mode/xml/xml.js"></script>
+    <link href="/esp/files/css/ecl.css" rel="stylesheet">
+    <link href="/esp/files/dijit/themes/claro/claro.css" media="screen" rel="stylesheet">
+    <link href="/esp/files/dojox/grid/resources/Grid.css" rel="stylesheet">
+    <link href="/esp/files/dojox/grid/enhanced/resources/claro/EnhancedGrid.css" rel="stylesheet">
+    <link href="/esp/files/dojox/grid/resources/claroGrid.css" rel="stylesheet">
+    <link href="/esp/files/dojox/widget/Toaster/Toaster.css" rel="stylesheet">
+    <link href="/esp/files/dojox/widget/UpgradeBar/UpgradeBar.css" rel="stylesheet">
+    <link href="/esp/files/dojox/form/resources/FileUploader.css" rel="stylesheet">
+    <link href="/esp/files/dojox/form/resources/UploaderFileList.css" rel="stylesheet">
+    <link href="/esp/files/dgrid/css/dgrid.css" rel="stylesheet">
+    <link href="/esp/files/dgrid/css/skins/claro.css" rel="stylesheet">
+    <link href="/esp/files/css/hpcc.css" rel="stylesheet">
     <!-- load dojo and provide config via dojoConfig global -->
     <script>
         var dojoConfig = (function () {
-            var baseLHS = location.href.split("#");
-            var base = baseLHS[0].split("/");
-            base.pop();
-            base = base.join("/");
+            var pathnodes = location.href.split("#");
+            pathnodes = pathnodes[0].split("/");
+            pathnodes.pop();
+            var base = pathnodes.join("/");
+            var len = pathnodes.length;
+            if (len < 2 || pathnodes[len-2]!="esp" || pathnodes[len-1]!="files")
+                base = base + "/esp/files";
 
             return {
                 async: true,
@@ -64,7 +67,7 @@
             };
         })();
     </script>
-    <script src="dojo/dojo.js"></script>
+    <script src="/esp/files/dojo/dojo.js"></script>
     <script>
         require([
         "main/stub",

+ 2 - 1
esp/files/stub.js

@@ -33,9 +33,10 @@ define([
 
     var initUi = function () {
         var params = ioQuery.queryToObject(dojo.doc.location.search.substr((dojo.doc.location.search.substr(0, 1) == "?" ? 1 : 0)));
+        var hpccWidget = params.Widget ? params.Widget : "HPCCPlatformWidget";
 
         require(
-            ["hpcc/" + params.Widget],
+            ["hpcc/" + hpccWidget],
             function (WidgetClass) {
                 var webParams = {
                     id: "stub",

+ 1 - 1
esp/files/templates/DFUWUDetailsWidget.html

@@ -17,7 +17,7 @@
                 </div>
                 <div data-dojo-props="region: 'center'" data-dojo-type="dijit.layout.ContentPane">
                         <h2>
-                            <img id="${id}ProtectedImage" src="img/locked.png" />&nbsp;<img id="${id}StateIdImage" src="img/workunit.png" />&nbsp<span id="${id}Wuid" class="bold">WUID</span>&nbsp<span id="${id}CommandMessage2" class="bold">${i18n.Command}</span>
+                            <img id="${id}ProtectedImage" src="/esp/files/img/locked.png" />&nbsp;<img id="${id}StateIdImage" src="img/workunit.png" />&nbsp<span id="${id}Wuid" class="bold">WUID</span>&nbsp<span id="${id}CommandMessage2" class="bold">${i18n.Command}</span>
                         </h2>
                         <form>
                             <ul>

+ 1 - 1
esp/files/templates/FilterDropDownWidget.html

@@ -1,5 +1,5 @@
 <span class="${baseClass}">
-    <img id="${id}IconFilter" src="img/noFilter.png" class="iconNoFilter"/>
+    <img id="${id}IconFilter" src="/esp/files/img/noFilter.png" class="iconNoFilter"/>
     <div id="${id}FilterDropDown" data-dojo-type="dijit.form.DropDownButton">
         <span>${i18n.Filter}</span>
         <div class="toolTip" data-dojo-type="dijit.TooltipDialog">

+ 1 - 1
esp/files/templates/LFDetailsWidget.html

@@ -64,7 +64,7 @@
                 </div>
                 <div data-dojo-props="region: 'center'" data-dojo-type="dijit.layout.ContentPane">
                     <h2>
-                        <img class="iconAlign" src="img/folder_table.png" />&nbsp;<span id="${id}Name" class="bold"></span>
+                        <img class="iconAlign" src="/esp/files/img/folder_table.png" />&nbsp;<span id="${id}Name" class="bold"></span>
                     </h2>
                     <form id="${id}SummaryForm" class="leftAlignFields">
                         <ul>

+ 1 - 1
esp/files/templates/QuerySetDetailsWidget.html

@@ -12,7 +12,7 @@
                 </div>
                 <div data-dojo-props="region: 'center'" data-dojo-type="dijit.layout.ContentPane">
                     <h2>
-                        <img id="${id}SuspendImg" src="img/unsuspended.png" alt="${i18n.Unsuspended}"/>&nbsp;<img id="${id}ActiveImg" src="img/inactive.png"/>&nbsp;<span id="${id}QueryId" class="bold">${i18n.QueryDetailsfor}</span>
+                        <img id="${id}SuspendImg" src="/esp/files/img/unsuspended.png" alt="${i18n.Unsuspended}"/>&nbsp;<img id="${id}ActiveImg" src="/esp/files/img/inactive.png"/>&nbsp;<span id="${id}QueryId" class="bold">${i18n.QueryDetailsfor}</span>
                     </h2>
                     <form id="${id}SummaryForm">
                         <ul>

+ 1 - 1
esp/files/templates/QuerySetQueryWidget.html

@@ -14,7 +14,7 @@
 					<div id="${id}Activate" data-dojo-attach-event="onClick:_onActivate" data-dojo-type="dijit.form.Button">${i18n.Activate}</div>
 					<div id="${id}Deactivate" data-dojo-attach-event="onClick:_onDeactivate" data-dojo-type="dijit.form.Button">${i18n.Deactivate}</div>
 					<span data-dojo-type="dijit.ToolbarSeparator"></span>
-					<img id="${id}IconFilter" src="img/noFilter.png" class="iconNoFilter"/>
+					<img id="${id}IconFilter" src="/esp/files/img/noFilter.png" class="iconNoFilter"/>
                     <div id="${id}FilterDropDown" data-dojo-type="dijit.form.DropDownButton">
                         <span>${i18n.Filter}</span>
                         <div data-dojo-type="dijit.TooltipDialog" class="toolTip">

+ 1 - 1
esp/files/templates/SFDetailsWidget.html

@@ -10,7 +10,7 @@
                  </div>
                 <div data-dojo-props="region: 'center'" data-dojo-type="dijit.layout.ContentPane">
                     <h2>
-                        <img class="iconAlign" src="img/folder_table.png" />&nbsp;<span id="${id}Name" class="bold"></span>
+                        <img class="iconAlign" src="/esp/files/img/folder_table.png" />&nbsp;<span id="${id}Name" class="bold"></span>
                     </h2>
                     <form id="${id}SummaryForm">
                         <ul>

+ 1 - 1
esp/files/templates/TimingTreeMapWidget.html

@@ -1,5 +1,5 @@
 <div class="${baseClass}">
-    <link rel="stylesheet" href="dojox/treemap/themes/TreeMap.css">
+    <link rel="stylesheet" href="/esp/files/dojox/treemap/themes/TreeMap.css">
     <p id="${id}Help">${i18n.help}</p>
     <div id="${id}TreeMap" style="width: 100%; height: 100%;" data-dojo-props="selectionMode: 'multiple'" data-dojo-type="dojox.treemap.TreeMap">
     </div>

+ 1 - 1
esp/files/templates/WUDetailsWidget.html

@@ -36,7 +36,7 @@
                 </div>
                 <div data-dojo-props="region: 'center'" data-dojo-type="dijit.layout.ContentPane">
                     <h2>
-                        <img id="${id}ProtectedImage" src="img/locked.png"/>&nbsp;<div id="${id}StateIdImage" class="iconWorkunit" ></div>&nbsp<span id="${id}Wuid" class="bold">${i18n.WUID}</span>
+                        <img id="${id}ProtectedImage" src="/esp/files/img/locked.png"/>&nbsp;<div id="${id}StateIdImage" class="iconWorkunit" ></div>&nbsp<span id="${id}Wuid" class="bold">${i18n.WUID}</span>
                     </h2>
                     <form id="${id}SummaryForm">
                         <ul>

+ 1 - 1
esp/platform/espprotocol.cpp

@@ -99,7 +99,7 @@ const StringBuffer &CEspApplicationPort::getAppFrameHtml(time_t &modified, const
         EspHttpBinding *httpbind = dynamic_cast<EspHttpBinding *>(bindingentry->queryBinding());
         if(httpbind)
         {
-            const char* rootpage = httpbind->getRootPage();
+            const char* rootpage = httpbind->getRootPage(ctx);
             if(rootpage && *rootpage)
             {
                 html.loadFile(StringBuffer(getCFD()).append(rootpage).str());

+ 1 - 1
esp/services/WsDeploy/WsDeployBinding.cpp

@@ -57,7 +57,7 @@ public:
         return onGetInstantQuery(context, request, response, "WsDeploy", "Init");
     }
 
-    virtual const char* getRootPage()
+    virtual const char* getRootPage(IEspContext* ctx)
     {
         return "files/configmgr.html";
     }

+ 1 - 1
esp/services/ws_ecl/ws_ecl_service.hpp

@@ -140,7 +140,7 @@ public:
     void addQueryNavLink(IPropertyTree &data, IPropertyTree *query, const char *setname, const char *qname=NULL);
     void getQueryNames(IPropertyTree* settree, const char *id, const char *qname, StringArray& qnames);
 
-    virtual const char* getRootPage() {return "files/esp_app_tree.html";}
+    virtual const char* getRootPage(IEspContext* ctx) {return "files/esp_app_tree.html";}
 
     int onGet(CHttpRequest* request, CHttpResponse* response);
     void xsltTransform(const char* xml, unsigned int len, const char* xslFileName, IProperties *params, StringBuffer& ret);

+ 6 - 1
esp/services/ws_smc/ws_smcService.hpp

@@ -171,7 +171,12 @@ public:
     }
 
     virtual ~CWsSMCSoapBindingEx(){}
-
+    virtual const char* getRootPage(IEspContext* ctx)
+    {
+        if (ctx->queryRequestParameters()->hasProp("legacy"))
+            return NULL;
+        return "files/stub.htm";
+    }
     virtual int onGetRoot(IEspContext &context, CHttpRequest* request,  CHttpResponse* response)
     {
         return  onGetInstantQuery(context, request, response, "WsSMC", "Activity");