You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by rz...@apache.org on 2023/09/25 18:12:05 UTC

[storm] branch master updated: STORM-3958: Capacity to set Storm UI's title in conf/storm.yaml

This is an automated email from the ASF dual-hosted git repository.

rzo1 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/storm.git


The following commit(s) were added to refs/heads/master by this push:
     new f28798e9e STORM-3958: Capacity to set Storm UI's title in conf/storm.yaml
f28798e9e is described below

commit f28798e9e94f4f51cdb8a392add17ef7631884b3
Author: Alexandre Vermeerbergen <av...@3ds.com>
AuthorDate: Sun Sep 10 12:37:34 2023 +0200

    STORM-3958: Capacity to set Storm UI's title in conf/storm.yaml
---
 conf/defaults.yaml                                  |  1 +
 .../main/java/org/apache/storm/DaemonConfig.java    |  6 ++++++
 .../apache/storm/daemon/ui/WEB-INF/component.html   |  6 +++---
 .../org/apache/storm/daemon/ui/WEB-INF/index.html   |  7 ++++---
 .../org/apache/storm/daemon/ui/WEB-INF/js/script.js | 10 ++++++++++
 .../org/apache/storm/daemon/ui/WEB-INF/owner.html   |  9 ++++++---
 .../apache/storm/daemon/ui/WEB-INF/supervisor.html  |  9 ++++++---
 .../daemon/ui/WEB-INF/templates/title-template.html | 21 +++++++++++++++++++++
 .../apache/storm/daemon/ui/WEB-INF/topology.html    |  6 +++---
 9 files changed, 60 insertions(+), 15 deletions(-)

diff --git a/conf/defaults.yaml b/conf/defaults.yaml
index bf19496e8..cef7cec45 100644
--- a/conf/defaults.yaml
+++ b/conf/defaults.yaml
@@ -87,6 +87,7 @@ nimbus.topology.blobstore.deletion.delay.ms: 300000
 ### ui.* configs are for the master
 ui.host: 0.0.0.0
 ui.port: 8080
+ui.title: "Storm UI"
 ui.childopts: "-Xmx768m"
 ui.actions.enabled: true
 ui.filter: null
diff --git a/storm-server/src/main/java/org/apache/storm/DaemonConfig.java b/storm-server/src/main/java/org/apache/storm/DaemonConfig.java
index 2402da1bb..76dae92b4 100644
--- a/storm-server/src/main/java/org/apache/storm/DaemonConfig.java
+++ b/storm-server/src/main/java/org/apache/storm/DaemonConfig.java
@@ -339,6 +339,12 @@ public class DaemonConfig implements Validated {
     @IsInteger
     @IsPositiveNumber
     public static final String UI_PORT = "ui.port";
+    
+    /**
+     * Storm UI's title.
+     */
+    @IsString
+    public static final String UI_TITLE = "ui.title";
 
     /**
      * This controls wheather Storm UI should bind to http port even if ui.port is > 0.
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/component.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/component.html
index e48e96c15..578c6ef82 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/component.html
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/component.html
@@ -37,9 +37,7 @@
 <body>
 <div class="container-fluid">
   <div class="row">
-    <div class="col-md-11">
-      <h1><a href="/">Storm UI</a></h1>
-    </div>
+    <div id="ui-title" class="col-md-11"></div>
     <div id="ui-user" class="col-md-1"></div>
   </div>
   <div class="row">
@@ -153,6 +151,8 @@ $(document).ready(function() {
     });
 
     $.getJSON("/api/v1/cluster/configuration",function(response,status,jqXHR) {
+        var uiTitle = $("#ui-title");
+        setStormUITitle(uiTitle, response);				
         $.extend( $.fn.dataTable.defaults, {
           stateSave: true,
           stateSaveCallback: function (oSettings, oData) {
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/index.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/index.html
index d41944dea..e8fd8c8ff 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/index.html
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/index.html
@@ -37,9 +37,7 @@
 <body>
 <div class="container-fluid">
   <div class="row">
-    <div class="col-md-9">
-      <h1><a href="/">Storm UI</a></h1>
-    </div>
+    <div id="ui-title" class="col-md-9"></div>
     <div id="ui-user" class="col-md-2"></div>
   </div>
   <div class="row">
@@ -128,6 +126,7 @@ $(document).ready(function() {
         });
 
         var uiUser = $("#ui-user");
+        var uiTitle = $("#ui-title");
         var clusterSummary = $("#cluster-summary");
         var clusterResources = $("#cluster-resources");
         var nimbusSummary = $("#nimbus-summary");
@@ -135,6 +134,8 @@ $(document).ready(function() {
         var topologySummary = $("#topology-summary");
         var supervisorSummary = $("#supervisor-summary");
         var config = $("#nimbus-configuration");
+				
+        setStormUITitle(uiTitle, responseClusterConfig);
 
         getStatic("/templates/index-page-template.html", function(indexTemplate) {
             $.getJSON("/api/v1/cluster/summary",function(response,status,jqXHR) {
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/js/script.js b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/js/script.js
index 115249988..c3685e8f3 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/js/script.js
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/js/script.js
@@ -614,3 +614,13 @@ var makeOwnerSummaryTable = function(response, elId, parentId) {
 function getPageRenderedTimestamp(eId) {
     document.getElementById(eId).innerHTML = "Page rendered at: " + Date();
 };
+
+function setStormUITitle(uiTitle, clusterConfig) { 
+    title = clusterConfig["ui.title"]; 
+    $(document).prop('title', title); 
+    getStatic("/templates/title-template.html", function(template) { 
+        jsError(function() { 
+            uiTitle.append(Mustache.render($(template).filter("#title-template").html(),{title:title})); 
+        }); 
+    }); 
+};
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/owner.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/owner.html
index 5d5eda4ca..d5506ce44 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/owner.html
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/owner.html
@@ -44,9 +44,7 @@
   <div class="warning" id="ras-warning-top-buffer"></div>
   <div class="container-fluid">
     <div class="row">
-        <div class="col-md-11">
-            <h1><a href="/">Storm UI</a></h1>
-        </div>
+        <div id="ui-title" class="col-md-11"></div>
         <div id="ui-user" class="col-md-1"></div>
     </div>
     <div class="row">
@@ -125,6 +123,11 @@
             }
         });
 
+        $.getJSON("/api/v1/cluster/configuration",function(response,status,jqXHR) {
+            var uiTitle = $("#ui-title");
+            setStormUITitle(uiTitle, response);				
+        });
+
         function jsError(other) {
             try {
                 other();
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/supervisor.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/supervisor.html
index 8cb16493c..ba4af197b 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/supervisor.html
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/supervisor.html
@@ -39,9 +39,7 @@
 <body>
 <div class="supervisor-page container-fluid">
   <div class="row">
-    <div class="col-md-11">
-      <h1><a href="/">Storm UI</a></h1>
-    </div>
+    <div id="ui-title" class="col-md-11"></div>
     <div id="ui-user" class="col-md-1"></div>
   </div>
   <div class="row">
@@ -115,6 +113,11 @@ $(document).ready(function() {
         }
     });
 
+    $.getJSON("/api/v1/cluster/configuration",function(response,status,jqXHR) {
+        var uiTitle = $("#ui-title");
+        setStormUITitle(uiTitle, response);				
+    };
+
     $.getJSON(url,function(response,status,jqXHR) {
         getStatic("/templates/supervisor-page-template.html", function(template) {
             jsError(function() {
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/templates/title-template.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/templates/title-template.html
new file mode 100644
index 000000000..158dd1eea
--- /dev/null
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/templates/title-template.html
@@ -0,0 +1,21 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<script id="title-template" type="text/html">
+ <div class="ui-title">
+     <h1><a href="/">{{ui.title}}</a></h1>
+ </div>
+</script>
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/topology.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/topology.html
index f0d108825..bc48d562e 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/topology.html
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/topology.html
@@ -39,9 +39,7 @@
 <body>
 <div class="container-fluid">
   <div class="row">
-    <div class="col-md-11">
-      <h1><a href="/">Storm UI</a></h1>
-    </div>
+    <div id="ui-title" class="col-md-11"></div>
     <div id="ui-user" class="col-md-1"></div>
   </div>
   <div class="row">
@@ -275,6 +273,8 @@ $(document).ready(function() {
     });
 
     $.getJSON("/api/v1/cluster/configuration",function(response,status,jqXHR) {
+        var uiTitle = $("#ui-title");
+        setStormUITitle(uiTitle, response);	
         $.extend( $.fn.dataTable.defaults, {
           stateSave: true,
           stateSaveCallback: function (oSettings, oData) {