diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 02fc0791554f..f6a8c534325d 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -15,7 +15,7 @@ After:
## Documentation
- No documentation needed: **add explanation. This can't be used if there is a GUI diff**
- No documentation needed: only internal and user invisible changes
-- Documentation issue was created: [Link for SUSE Manager contributors](https://github.com/SUSE/spacewalk/issues/new?template=ISSUE_TEMPLATE_DOCUMENTATION.md&labels=documentation&projects=SUSE/spacewalk/31), [Link for community contributors](https://github.com/uyuni-project/uyuni-docs/issues/new).
+- Documentation issue was created: [Link for SUSE Multi-Linux Manager contributors](https://github.com/SUSE/spacewalk/issues/new?template=ISSUE_TEMPLATE_DOCUMENTATION.md&labels=documentation&projects=SUSE/spacewalk/31), [Link for community contributors](https://github.com/uyuni-project/uyuni-docs/issues/new).
- API documentation added: please review the Wiki page [Writing Documentation for the API](https://github.com/uyuni-project/uyuni/wiki/Writing-documentation-for-the-API) if you have any changes to API documentation.
- (OPTIONAL) [Documentation PR](https://github.com/uyuni-project/uyuni-docs/pulls)
diff --git a/java/code/src/com/redhat/rhn/common/conf/ConfigDefaults.java b/java/code/src/com/redhat/rhn/common/conf/ConfigDefaults.java
index 58e6e1331707..8afe5abfe8f0 100644
--- a/java/code/src/com/redhat/rhn/common/conf/ConfigDefaults.java
+++ b/java/code/src/com/redhat/rhn/common/conf/ConfigDefaults.java
@@ -1150,7 +1150,7 @@ public List getWebThemesList() {
* @return the name of the theme for the webUI
*/
public String getDefaultWebTheme() {
- return Config.get().getString(WEB_THEME, "susemanager-light");
+ return Config.get().getString(WEB_THEME, "suse-light");
}
/**
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
index 1d6ea5f441e0..9fe3f869ab01 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
@@ -9681,10 +9681,10 @@ For a detailed analysis, please refer to the log files.
Systems with conflicting minion ID and machine ID were found ({0}, {1}). Onboarding aborted. Please remove conflicting systems first ({2}, {3})
- Registration of '{0}' on SUSE Manager Server rejected. \nTo manage Datacenter clients you have to configure SCC Credentials at Admin => Setup Wizard => Organization Credentials.
+ Registration of '{0}' on SUSE Multi-Linux Manager Server rejected. \nTo manage Datacenter clients you have to configure SCC Credentials at Admin => Setup Wizard => Organization Credentials.
- Registration of '{0}' on SUSE Manager Server rejected. \nTo manage BYOS (Bring-your-own-Subscription) clients you have to configure SCC Credentials at Admin => Setup Wizard => Organization Credentials. \n\nIf the instance being onboarded is PAYG, ensure the `python-instance-billing-flavor-check` package is installed and try again.
+ Registration of '{0}' on SUSE Multi-Linux Manager Server rejected. \nTo manage BYOS (Bring-your-own-Subscription) clients you have to configure SCC Credentials at Admin => Setup Wizard => Organization Credentials. \n\nIf the instance being onboarded is PAYG, ensure the `python-instance-billing-flavor-check` package is installed and try again.
None
diff --git a/java/code/src/com/suse/manager/webui/controllers/admin/AdminViewsController.java b/java/code/src/com/suse/manager/webui/controllers/admin/AdminViewsController.java
index d9e3b9e06bfc..f88f53658f24 100644
--- a/java/code/src/com/suse/manager/webui/controllers/admin/AdminViewsController.java
+++ b/java/code/src/com/suse/manager/webui/controllers/admin/AdminViewsController.java
@@ -17,7 +17,6 @@
import static com.suse.manager.webui.utils.SparkApplicationHelper.withUserPreferences;
import static spark.Spark.get;
-import com.redhat.rhn.common.conf.ConfigDefaults;
import com.redhat.rhn.common.util.validation.password.PasswordPolicy;
import com.redhat.rhn.domain.cloudpayg.PaygSshData;
import com.redhat.rhn.domain.cloudpayg.PaygSshDataFactory;
@@ -102,7 +101,6 @@ public static void initRoutes(JadeTemplateEngine jade) {
*/
public static ModelAndView showMonitoring(Request request, Response response, User user) {
Map data = new HashMap<>();
- data.put("isUyuni", ConfigDefaults.get().isUyuni());
return new ModelAndView(data, "controllers/admin/templates/monitoring.jade");
}
diff --git a/java/code/src/com/suse/manager/webui/controllers/admin/templates/monitoring.jade b/java/code/src/com/suse/manager/webui/controllers/admin/templates/monitoring.jade
index 7f94e131ad75..239fc384bfff 100644
--- a/java/code/src/com/suse/manager/webui/controllers/admin/templates/monitoring.jade
+++ b/java/code/src/com/suse/manager/webui/controllers/admin/templates/monitoring.jade
@@ -7,4 +7,4 @@ script(type='text/javascript').
script(type='text/javascript').
spaImportReactPage('admin/config/monitoring')
- .then(function (module) { module.renderer('monitoring', JSON.parse("#{isUyuni}")) });
+ .then(function (module) { module.renderer('monitoring', {}) });
diff --git a/java/code/src/com/suse/manager/webui/controllers/login/templates/login.jade b/java/code/src/com/suse/manager/webui/controllers/login/templates/login.jade
index 6a38dd2c2e81..01e51a1d775f 100644
--- a/java/code/src/com/suse/manager/webui/controllers/login/templates/login.jade
+++ b/java/code/src/com/suse/manager/webui/controllers/login/templates/login.jade
@@ -17,6 +17,7 @@ html(lang=window.preferredLocale.replace("_", "-"))
script(type='text/javascript').
window.preferredLocale = "#{preferredLocale}";
window.docsLocale = "#{docsLocale}";
+ window.isUyuni = #{isUyuni};
script(src='/javascript/jquery.js?cb=#{webBuildtimestamp}')
script(src='/javascript/login.js?cb=#{webBuildtimestamp}')
script(src='/javascript/bootstrap.js?cb=#{webBuildtimestamp}')
@@ -45,13 +46,11 @@ html(lang=window.preferredLocale.replace("_", "-"))
module.renderer(
'login',
{
- isUyuni: JSON.parse("#{isUyuni}"),
theme: '!{webTheme}',
urlBounce: document.getElementById('init_data_url_bounce').textContent,
validationErrors: JSON.parse('!{validationErrors}'),
schemaUpgradeRequired: JSON.parse('!{schemaUpgradeRequired}'),
webVersion: '!{webVersion}',
- productName: '!{productName}',
customHeader: '!{customHeader}',
customFooter: '!{customFooter}',
legalNote: '!{legalNote}',
diff --git a/java/code/webapp/WEB-INF/decorators/layout_error.jsp b/java/code/webapp/WEB-INF/decorators/layout_error.jsp
index 3ba21582a82c..07062fdae18f 100644
--- a/java/code/webapp/WEB-INF/decorators/layout_error.jsp
+++ b/java/code/webapp/WEB-INF/decorators/layout_error.jsp
@@ -71,8 +71,8 @@
-
- SUSE Manager
+
+ SUSE Multi-Linux Manager
diff --git a/java/code/webapp/WEB-INF/decorators/layout_head.jsp b/java/code/webapp/WEB-INF/decorators/layout_head.jsp
index 0f3657058f35..4ff0d6a164a2 100644
--- a/java/code/webapp/WEB-INF/decorators/layout_head.jsp
+++ b/java/code/webapp/WEB-INF/decorators/layout_head.jsp
@@ -49,13 +49,15 @@
+
diff --git a/java/code/webapp/WEB-INF/includes/leftnav.jsp b/java/code/webapp/WEB-INF/includes/leftnav.jsp
index a383654537d6..db398cbeca9d 100644
--- a/java/code/webapp/WEB-INF/includes/leftnav.jsp
+++ b/java/code/webapp/WEB-INF/includes/leftnav.jsp
@@ -5,6 +5,5 @@
diff --git a/java/spacewalk-java.changes.eth.rename b/java/spacewalk-java.changes.eth.rename
new file mode 100644
index 000000000000..38143f88f3b9
--- /dev/null
+++ b/java/spacewalk-java.changes.eth.rename
@@ -0,0 +1 @@
+- SUSE Manager is now branded as SUSE Multi-Linux Manager
diff --git a/schema/spacewalk/susemanager-schema.changes.eth.rename b/schema/spacewalk/susemanager-schema.changes.eth.rename
new file mode 100644
index 000000000000..38143f88f3b9
--- /dev/null
+++ b/schema/spacewalk/susemanager-schema.changes.eth.rename
@@ -0,0 +1 @@
+- SUSE Manager is now branded as SUSE Multi-Linux Manager
diff --git a/schema/spacewalk/upgrade/susemanager-schema-5.1.3-to-susemanager-schema-5.1.4/300-product-rename.sql b/schema/spacewalk/upgrade/susemanager-schema-5.1.3-to-susemanager-schema-5.1.4/300-product-rename.sql
new file mode 100644
index 000000000000..c7bbea22227b
--- /dev/null
+++ b/schema/spacewalk/upgrade/susemanager-schema-5.1.3-to-susemanager-schema-5.1.4/300-product-rename.sql
@@ -0,0 +1,2 @@
+UPDATE rhnUserInfo SET web_theme = 'suse-light' WHERE web_theme = 'susemanager-light';
+UPDATE rhnUserInfo SET web_theme = 'suse-dark' WHERE web_theme = 'susemanager-dark';
\ No newline at end of file
diff --git a/web/conf/rhn_web.conf b/web/conf/rhn_web.conf
index dc495682e95f..070af4ddd46d 100644
--- a/web/conf/rhn_web.conf
+++ b/web/conf/rhn_web.conf
@@ -122,8 +122,8 @@ web.locale = en_US
web.docs_locale = en
# Set the list of possible webUI style themes name in a comma separated name list
-# susemanager-light,susemanager-dark,uyuni
-web.themes = susemanager-light,susemanager-dark,uyuni
+# suse-light,suse-dark,uyuni
+web.themes = suse-light,suse-dark,uyuni
# Set the default webUI style theme name
web.theme_default = uyuni
diff --git a/web/html/src/branding/css/base/mixins.scss b/web/html/src/branding/css/base/mixins.scss
index b9163ffad553..fde7ed0335d9 100644
--- a/web/html/src/branding/css/base/mixins.scss
+++ b/web/html/src/branding/css/base/mixins.scss
@@ -1,8 +1,8 @@
@mixin onSuma {
- @if $theme == "susemanager-light" {
+ @if $theme == "suse-light" {
@content;
}
- @if $theme == "susemanager-dark" {
+ @if $theme == "suse-dark" {
@content;
}
}
diff --git a/web/html/src/branding/css/susemanager-dark-variables.scss b/web/html/src/branding/css/suse-dark-variables.scss
similarity index 83%
rename from web/html/src/branding/css/susemanager-dark-variables.scss
rename to web/html/src/branding/css/suse-dark-variables.scss
index ca56a9b2f112..f69e89ae2d7e 100644
--- a/web/html/src/branding/css/susemanager-dark-variables.scss
+++ b/web/html/src/branding/css/suse-dark-variables.scss
@@ -1,4 +1,4 @@
-@import "./susemanager-light-variables.scss";
+@import "./suse-light-variables.scss";
$aside-background: $eos-bc-pine-500;
$aside-menu-text: $eos-bc-white;
diff --git a/web/html/src/branding/css/susemanager-dark.scss b/web/html/src/branding/css/suse-dark.scss
similarity index 88%
rename from web/html/src/branding/css/susemanager-dark.scss
rename to web/html/src/branding/css/suse-dark.scss
index 3d3d3a62e375..ac8aebddde7d 100644
--- a/web/html/src/branding/css/susemanager-dark.scss
+++ b/web/html/src/branding/css/suse-dark.scss
@@ -1,4 +1,4 @@
-$theme: "susemanager-dark";
+$theme: "suse-dark";
@import "./base/body.scss";
@@ -9,7 +9,7 @@ $theme: "susemanager-dark";
@import "bootstrap/scss/bootstrap";
@import "./variables.scss";
- @import "./susemanager-dark-variables.scss";
+ @import "./suse-dark-variables.scss";
display: flex;
flex-direction: column;
diff --git a/web/html/src/branding/css/susemanager-light-variables.scss b/web/html/src/branding/css/suse-light-variables.scss
similarity index 100%
rename from web/html/src/branding/css/susemanager-light-variables.scss
rename to web/html/src/branding/css/suse-light-variables.scss
diff --git a/web/html/src/branding/css/susemanager-light.scss b/web/html/src/branding/css/suse-light.scss
similarity index 88%
rename from web/html/src/branding/css/susemanager-light.scss
rename to web/html/src/branding/css/suse-light.scss
index b3c5be821c4a..b78046a3a99a 100644
--- a/web/html/src/branding/css/susemanager-light.scss
+++ b/web/html/src/branding/css/suse-light.scss
@@ -1,4 +1,4 @@
-$theme: "susemanager-light";
+$theme: "suse-light";
@import "./base/body.scss";
@@ -9,7 +9,7 @@ $theme: "susemanager-light";
@import "bootstrap/scss/bootstrap";
@import "./variables.scss";
- @import "./susemanager-light-variables.scss";
+ @import "./suse-light-variables.scss";
display: flex;
flex-direction: column;
diff --git a/web/html/src/build/webpack.config.js b/web/html/src/build/webpack.config.js
index c59820dd889a..61ec031af9b1 100644
--- a/web/html/src/build/webpack.config.js
+++ b/web/html/src/build/webpack.config.js
@@ -103,8 +103,8 @@ module.exports = (env, argv) => {
return {
entry: {
"javascript/manager/main": "./manager/index.ts",
- "css/updated-susemanager-light": path.resolve(__dirname, "../branding/css/susemanager-light.scss"),
- "css/updated-susemanager-dark": path.resolve(__dirname, "../branding/css/susemanager-dark.scss"),
+ "css/updated-suse-light": path.resolve(__dirname, "../branding/css/suse-light.scss"),
+ "css/updated-suse-dark": path.resolve(__dirname, "../branding/css/suse-dark.scss"),
"css/updated-uyuni": path.resolve(__dirname, "../branding/css/uyuni.scss"),
},
output: {
diff --git a/web/html/src/components/formulas/EditGroup.tsx b/web/html/src/components/formulas/EditGroup.tsx
index ca6adcede2bc..614efe33f3fa 100644
--- a/web/html/src/components/formulas/EditGroup.tsx
+++ b/web/html/src/components/formulas/EditGroup.tsx
@@ -2,6 +2,8 @@ import "./formula-form.css";
import * as React from "react";
+import { productName } from "core/user-preferences";
+
import { SectionState } from "components/FormulaForm";
import { Highlight } from "components/table/Highlight";
import HelpIcon from "components/utils/HelpIcon";
@@ -21,8 +23,6 @@ const getEditGroupSubtype = Formulas.getEditGroupSubtype;
const deepCopy = Utils.deepCopy;
// circular dependencies are bad
-const productName = Utils.getProductName();
-
type EditGroupProps = {
id: string;
key: any;
diff --git a/web/html/src/components/formulas/FormulaComponentGenerator.tsx b/web/html/src/components/formulas/FormulaComponentGenerator.tsx
index ea91f6418804..b30cdf7481dc 100644
--- a/web/html/src/components/formulas/FormulaComponentGenerator.tsx
+++ b/web/html/src/components/formulas/FormulaComponentGenerator.tsx
@@ -2,6 +2,8 @@ import * as React from "react";
import { default as Jexl } from "jexl";
+import { productName } from "core/user-preferences";
+
import { SectionState } from "components/FormulaForm";
import HelpIcon from "components/utils/HelpIcon";
@@ -472,7 +474,7 @@ export function text(txt) {
}
// replace variables
if (typeof txt === "string" || txt instanceof String) {
- txt = txt.replace(/\${productName}/g, Utils.getProductName());
+ txt = txt.replace(/\${productName}/g, productName);
}
return txt;
}
diff --git a/web/html/src/components/hub/RegisterPeripheralForm.tsx b/web/html/src/components/hub/RegisterPeripheralForm.tsx
index b12478c7b54e..81c2aa0ee25f 100644
--- a/web/html/src/components/hub/RegisterPeripheralForm.tsx
+++ b/web/html/src/components/hub/RegisterPeripheralForm.tsx
@@ -1,12 +1,13 @@
import * as React from "react";
+import { productName } from "core/user-preferences";
+
import { AsyncButton, SubmitButton } from "components/buttons";
import { Form, Password, Radio, Text, TextArea } from "components/input";
import { Messages, MessageType } from "components/messages/messages";
import { TopPanel } from "components/panels";
import Validation from "components/validation";
-import { Utils } from "utils/functions";
import Network from "utils/network";
import { HubRegisterRequest } from "./types";
@@ -130,7 +131,6 @@ export class RegisterPeripheralForm extends React.Component {
}
public render(): React.ReactNode {
- const productName = Utils.getProductName();
return (
{this.state.loading && (
diff --git a/web/html/src/core/debugUtils/index.ts b/web/html/src/core/debugUtils/index.ts
index 628b3271d85c..024251ba36bd 100644
--- a/web/html/src/core/debugUtils/index.ts
+++ b/web/html/src/core/debugUtils/index.ts
@@ -4,7 +4,7 @@ import { showErrorToastr, showSuccessToastr, showWarningToastr } from "component
const debugUtils = {
logTheme() {
const theme = document.querySelector(
- 'link[href^="/css/updated-susemanager-light"],link[href^="/css/updated-susemanager-dark"],link[href^="/css/updated-uyuni"]'
+ 'link[href^="/css/updated-suse-light"],link[href^="/css/updated-suse-dark"],link[href^="/css/updated-uyuni"]'
);
if (!theme) {
throw new TypeError("Unable to identify theme");
@@ -13,35 +13,29 @@ const debugUtils = {
},
toggleTheme() {
if (document.body.className.includes("theme-susemanager-")) {
- document.body.className = document.body.className.replace("theme-susemanager-light", "theme-uyuni");
- document.body.className = document.body.className.replace("theme-susemanager-dark", "theme-uyuni");
+ document.body.className = document.body.className.replace("theme-suse-light", "theme-uyuni");
+ document.body.className = document.body.className.replace("theme-suse-dark", "theme-uyuni");
} else if (document.body.className.includes("theme-uyuni")) {
- document.body.className = document.body.className.replace("theme-uyuni", "theme-susemanager-light");
+ document.body.className = document.body.className.replace("theme-uyuni", "theme-suse-light");
}
- const sumaLight = document.querySelector('link[href^="/css/updated-susemanager-light"]');
+ const sumaLight = document.querySelector('link[href^="/css/updated-suse-light"]');
if (sumaLight) {
- sumaLight.setAttribute(
- "href",
- sumaLight.getAttribute("href")!.replace("updated-susemanager-light", "updated-uyuni")
- );
+ sumaLight.setAttribute("href", sumaLight.getAttribute("href")!.replace("updated-suse-light", "updated-uyuni"));
this.logTheme();
return;
}
- const sumaDark = document.querySelector('link[href^="/css/updated-susemanager-dark"]');
+ const sumaDark = document.querySelector('link[href^="/css/updated-suse-dark"]');
if (sumaDark) {
- sumaDark.setAttribute(
- "href",
- sumaDark.getAttribute("href")!.replace("updated-susemanager-dark", "updated-uyuni")
- );
+ sumaDark.setAttribute("href", sumaDark.getAttribute("href")!.replace("updated-suse-dark", "updated-uyuni"));
this.logTheme();
return;
}
const uyuni = document.querySelector('link[href^="/css/updated-uyuni"]');
if (uyuni) {
- uyuni.setAttribute("href", uyuni.getAttribute("href")!.replace("updated-uyuni", "updated-susemanager-light"));
+ uyuni.setAttribute("href", uyuni.getAttribute("href")!.replace("updated-uyuni", "updated-suse-light"));
this.logTheme();
return;
}
diff --git a/web/html/src/core/user-preferences/index.ts b/web/html/src/core/user-preferences/index.ts
index f9a397881e70..5ed7ab982d5d 100644
--- a/web/html/src/core/user-preferences/index.ts
+++ b/web/html/src/core/user-preferences/index.ts
@@ -3,3 +3,5 @@ export const docsLocale: string = window.docsLocale || "en";
export const preferredLocale: string = window.preferredLocale || "en_US";
// Locale strings come with '_' from the backend but many frontend libraries expect them with '-' so we exchange these
export const jsFormatPreferredLocale: string = preferredLocale.replace("_", "-");
+export const isUyuni = window.isUyuni ?? true;
+export const productName = isUyuni ? "Uyuni" : "SUSE Multi-Linux Manager";
diff --git a/web/html/src/global.d.ts b/web/html/src/global.d.ts
index 75a22b593b9c..743e59a1bfe9 100644
--- a/web/html/src/global.d.ts
+++ b/web/html/src/global.d.ts
@@ -4,7 +4,6 @@ declare global {
interface Window {
// See java/code/webapp/WEB-INF/includes/leftnav.jsp
JSONMenu: any[];
- _IS_UYUNI: boolean;
// CSRF loopback
csrfToken?: string;
@@ -34,6 +33,7 @@ declare global {
spaImportReactPage: (pageName: string) => Promise;
userPrefPageSize?: number;
+ isUyuni?: boolean;
}
// Test env setup, see ./utils/test-utils/setup/index.ts
diff --git a/web/html/src/manager/admin/config/monitoring-admin.tsx b/web/html/src/manager/admin/config/monitoring-admin.tsx
index 2d52b5bfdd60..529b407dcd8d 100644
--- a/web/html/src/manager/admin/config/monitoring-admin.tsx
+++ b/web/html/src/manager/admin/config/monitoring-admin.tsx
@@ -3,7 +3,7 @@ import { hot } from "react-hot-loader/root";
import * as React from "react";
import { useEffect } from "react";
-import { docsLocale } from "core/user-preferences";
+import { docsLocale, isUyuni, productName } from "core/user-preferences";
import { AsyncButton, Button } from "components/buttons";
import withPageWrapper from "components/general/with-page-wrapper";
@@ -146,12 +146,8 @@ const ListPlaceholder = (props) => {
);
};
-type HelpPanelProps = {
- isUyuni: boolean;
-};
-
-const HelpPanel = (props: HelpPanelProps) => {
- const docsDirectory = props.isUyuni ? "/uyuni" : "/suse-manager";
+const HelpPanel = () => {
+ const docsDirectory = isUyuni ? "/uyuni" : "/suse-manager";
return (
{t("Server Monitoring")}
@@ -202,11 +198,7 @@ const ExportersMessages = (props: {
}
};
-type MonitoringAdminProps = {
- isUyuni: boolean;
-};
-
-const MonitoringAdmin = (props: MonitoringAdminProps) => {
+const MonitoringAdmin = () => {
const {
action,
fetchStatus,
@@ -331,6 +323,7 @@ const MonitoringAdmin = (props: MonitoringAdminProps) => {
);
}
+
return (
{messages &&
}
@@ -338,12 +331,14 @@ const MonitoringAdmin = (props: MonitoringAdminProps) => {
- {t("SUSE Manager Configuration - Monitoring")}
-
+ {t("{productName} Configuration - Monitoring", {
+ productName,
+ })}
+
-
{t("Setup your SUSE Manager server monitoring.")}
+
{t("Set up monitoring for your {productName} server.", { productName })}
@@ -413,7 +408,7 @@ const MonitoringAdmin = (props: MonitoringAdminProps) => {
-
+
diff --git a/web/html/src/manager/admin/config/monitoring.renderer.tsx b/web/html/src/manager/admin/config/monitoring.renderer.tsx
index ac272fe116cd..68a200ee5136 100644
--- a/web/html/src/manager/admin/config/monitoring.renderer.tsx
+++ b/web/html/src/manager/admin/config/monitoring.renderer.tsx
@@ -4,6 +4,6 @@ import SpaRenderer from "core/spa/spa-renderer";
import MonitoringAdmin from "./monitoring-admin";
-export const renderer = (id: string, isUyuni: boolean) => {
- SpaRenderer.renderNavigationReact( , document.getElementById(id));
+export const renderer = (id: string, props: {}) => {
+ SpaRenderer.renderNavigationReact( , document.getElementById(id));
};
diff --git a/web/html/src/manager/admin/setup/products/products.tsx b/web/html/src/manager/admin/setup/products/products.tsx
index 3c7c3d06709e..7d4b67e3da31 100644
--- a/web/html/src/manager/admin/setup/products/products.tsx
+++ b/web/html/src/manager/admin/setup/products/products.tsx
@@ -129,7 +129,7 @@ class ProductsPageWrapper extends React.Component {
currentObject.setState({
errors: MessagesUtils.warning(
t(
- "No SUSE Manager Server Subscription available. Products requiring Client Tools Channel will not be shown."
+ "No SUSE Multi-Linux Manager Server Subscription available. Products requiring Client Tools Channel will not be shown."
)
),
});
diff --git a/web/html/src/manager/audit/subscription-matching/subscription-matching-matcher-run-panel.tsx b/web/html/src/manager/audit/subscription-matching/subscription-matching-matcher-run-panel.tsx
index de4f3c27e916..72acf7b41785 100644
--- a/web/html/src/manager/audit/subscription-matching/subscription-matching-matcher-run-panel.tsx
+++ b/web/html/src/manager/audit/subscription-matching/subscription-matching-matcher-run-panel.tsx
@@ -85,7 +85,7 @@ const MatcherRunDescription = (props: MatcherRunDescriptionProps) => {
return (
{t(
- "Could not start a matching run. Please contact your SUSE Manager administrator to make sure the task scheduler is running."
+ "Could not start a matching run. Please contact your administrator to make sure the task scheduler is running."
)}
);
diff --git a/web/html/src/manager/images/image-profile-edit.tsx b/web/html/src/manager/images/image-profile-edit.tsx
index ca00d7c56e78..a6a7aed3301e 100644
--- a/web/html/src/manager/images/image-profile-edit.tsx
+++ b/web/html/src/manager/images/image-profile-edit.tsx
@@ -309,7 +309,7 @@ class CreateImageProfile extends React.Component {
See also the{" "}
- SUSE Manager templates repository
+ SUSE Multi-Linux Manager templates repository
{" "}
for some out-of-the-box working examples.
@@ -335,7 +335,7 @@ class CreateImageProfile extends React.Component {
See also the{" "}
- SUSE Manager templates repository
+ SUSE Multi-Linux Manager templates repository
{" "}
for some out-of-the-box working examples.
diff --git a/web/html/src/manager/images/image-view-overview.tsx b/web/html/src/manager/images/image-view-overview.tsx
index 0361696776ba..af226dabe0a4 100644
--- a/web/html/src/manager/images/image-view-overview.tsx
+++ b/web/html/src/manager/images/image-view-overview.tsx
@@ -1,5 +1,7 @@
import * as React from "react";
+import { productName } from "core/user-preferences";
+
import { Button, LinkButton } from "components/buttons";
import { FromNow } from "components/datetime";
import { DeleteDialog } from "components/dialog/DeleteDialog";
@@ -242,9 +244,9 @@ class ImageInfo extends React.Component {
- {t("All instances are consistent with SUSE Manager")}
+ {t("All instances are consistent with {productName}", { productName })}
);
} else if (data.runtimeStatus === 2) {
diff --git a/web/html/src/manager/images/image-view-runtime.tsx b/web/html/src/manager/images/image-view-runtime.tsx
index 01ed4005c124..36f56abda921 100644
--- a/web/html/src/manager/images/image-view-runtime.tsx
+++ b/web/html/src/manager/images/image-view-runtime.tsx
@@ -1,5 +1,7 @@
import * as React from "react";
+import { productName } from "core/user-preferences";
+
import { BootstrapPanel } from "components/panels/BootstrapPanel";
// See java/code/src/com/suse/manager/webui/templates/content_management/view.jade
@@ -63,7 +65,10 @@ class PodInfo extends React.Component {
if (statusId === 1) {
icon = (
-
+
);
} else if (statusId === 2) {
icon = ;
@@ -100,7 +105,10 @@ class ClusterInfo extends React.Component {
if (statusId === 1) {
icon = (
-
+
);
} else if (statusId === 2) {
icon = ;
diff --git a/web/html/src/manager/images/image-view.tsx b/web/html/src/manager/images/image-view.tsx
index c1f5b835f56a..882f5849172c 100644
--- a/web/html/src/manager/images/image-view.tsx
+++ b/web/html/src/manager/images/image-view.tsx
@@ -1,6 +1,7 @@
import * as React from "react";
import SpaRenderer from "core/spa/spa-renderer";
+import { productName } from "core/user-preferences";
import { AsyncButton, Button } from "components/buttons";
import { FromNow } from "components/datetime";
@@ -524,7 +525,7 @@ class ImageViewList extends React.Component
);
} else if (row.runtimeStatus === 2) {
diff --git a/web/html/src/manager/login/login.renderer.tsx b/web/html/src/manager/login/login.renderer.tsx
index 1b8b64809425..46cd8b4747c3 100644
--- a/web/html/src/manager/login/login.renderer.tsx
+++ b/web/html/src/manager/login/login.renderer.tsx
@@ -6,7 +6,6 @@ import Login from "./login";
export const renderer = (
id: string,
{
- isUyuni,
theme,
urlBounce,
validationErrors,
@@ -26,13 +25,11 @@ export const renderer = (
if (elementToRender) {
ReactDOM.render(
SUSE
-
- Manager
+ Multi-Linux Manager
),
bodyTitle: (
SUSE
- {" Manager"}
+ {" Multi-Linux Manager"}
),
- url: "http://www.suse.com/products/suse-manager/",
- title: "SUSE Manager login page",
+ url: "https://www.suse.com/products/multi-linux-manager/",
+ title: "SUSE Multi-Linux Manager login page",
},
uyuni: {
- key: "Uyuni",
+ productName: "Uyuni",
headerTitle: "Uyuni",
bodyTitle: "Uyuni",
url: "http://www.uyuni-project.org/",
@@ -39,13 +40,11 @@ const products = {
};
type Props = {
- isUyuni: boolean;
theme: Theme;
bounce: string;
validationErrors: Array;
schemaUpgradeRequired: boolean;
webVersion: string;
- productName: string;
customHeader: string;
customFooter: string;
legalNote: string;
@@ -60,7 +59,7 @@ export type ThemeProps = Props & {
};
const Login = (props: Props) => {
- const product = props.isUyuni ? products.uyuni : products.suma;
+ const product = isUyuni ? products.uyuni : products.suma;
if (props.theme === "uyuni") {
return ;
}
diff --git a/web/html/src/manager/login/messages.tsx b/web/html/src/manager/login/messages.tsx
index 4456023c2996..418a410fbdfc 100644
--- a/web/html/src/manager/login/messages.tsx
+++ b/web/html/src/manager/login/messages.tsx
@@ -50,7 +50,7 @@ export const getGlobalMessages = (validationErrors, schemaUpgradeRequired, disks
if (sccForwardWarning) {
const sccForwardWarningMessage = t(
- "SUSE Manager PAYG instances must forward registration data to SCC when credentials are provided. Data will be sent independently of the configuration setting. To hide this warning please set 'forward_registration = 1' in rhn.conf."
+ "SUSE Multi-Linux Manager PAYG instances must forward registration data to SCC when credentials are provided. Data will be sent independently of the configuration setting. To hide this warning please set 'forward_registration = 1' in rhn.conf."
);
messages = messages.concat({ severity: "warning", text: sccForwardWarningMessage });
}
diff --git a/web/html/src/manager/login/susemanager/login.tsx b/web/html/src/manager/login/susemanager/login.tsx
index 3d680f3bda18..06899177fbc2 100644
--- a/web/html/src/manager/login/susemanager/login.tsx
+++ b/web/html/src/manager/login/susemanager/login.tsx
@@ -1,7 +1,7 @@
import * as React from "react";
import { useState } from "react";
-import { docsLocale } from "core/user-preferences";
+import { docsLocale, productName } from "core/user-preferences";
import { SubmitButton } from "components/buttons";
import { useInputValue } from "components/hooks/forms/useInputValue";
@@ -53,7 +53,7 @@ const SusemanagerThemeLogin = (props: ThemeProps) => {
{str}
),
- productName: product.key,
+ productName: product.productName,
})}
@@ -119,7 +119,7 @@ const SusemanagerThemeLogin = (props: ThemeProps) => {
{t("Copyright Notice")}
{t("{productName} release {versionNumber}", {
- productName: props.productName,
+ productName,
versionNumber: (
{props.webVersion}
diff --git a/web/html/src/manager/login/uyuni/login.tsx b/web/html/src/manager/login/uyuni/login.tsx
index 136940d43fc0..9db943a48939 100644
--- a/web/html/src/manager/login/uyuni/login.tsx
+++ b/web/html/src/manager/login/uyuni/login.tsx
@@ -1,7 +1,7 @@
import * as React from "react";
import { useState } from "react";
-import { docsLocale } from "core/user-preferences";
+import { docsLocale, productName } from "core/user-preferences";
import { SubmitButton } from "components/buttons";
import { useInputValue } from "components/hooks/forms/useInputValue";
@@ -40,7 +40,7 @@ const UyuniThemeLogin = (props: ThemeProps) => {
{t("Discover a new way of managing your servers, packages, patches and more via one interface.")}
{t("Learn more about {productName}:", {
- productName: product.key,
+ productName: product.productName,
})}
{t("View website")}
@@ -117,8 +117,12 @@ const UyuniThemeLogin = (props: ThemeProps) => {
{t("Copyright Notice")}
{props.customFooter ? {props.customFooter}
: null}
diff --git a/web/html/src/manager/shared/menu/menu.tsx b/web/html/src/manager/shared/menu/menu.tsx
index 450a7791139f..196b55cc16e7 100644
--- a/web/html/src/manager/shared/menu/menu.tsx
+++ b/web/html/src/manager/shared/menu/menu.tsx
@@ -1,6 +1,7 @@
import * as React from "react";
import SpaRenderer from "core/spa/spa-renderer";
+import { isUyuni } from "core/user-preferences";
import { MessagesContainer } from "components/toastr/toastr";
@@ -235,7 +236,7 @@ class Breadcrumb extends React.Component {
level = level.submenu ? level.submenu.find((l) => l.active) : null;
}
- const product_name_link = window._IS_UYUNI ? (
+ const product_name_link = isUyuni ? (
- {t("SUSE")}
-
- {t("Manager")}
+ SUSE Multi-Linux Manager
}
target=""
- title={t("SUSE Manager homepage")}
+ title={t("SUSE Multi-Linux Manager homepage")}
/>
);
diff --git a/web/html/src/manager/state/highstate-summary.tsx b/web/html/src/manager/state/highstate-summary.tsx
index e11dcb3d45cb..01f7a4f2f9b3 100644
--- a/web/html/src/manager/state/highstate-summary.tsx
+++ b/web/html/src/manager/state/highstate-summary.tsx
@@ -1,6 +1,8 @@
import * as React from "react";
import { useEffect, useState } from "react";
+import { productName } from "core/user-preferences";
+
import { AsyncButton } from "components/buttons";
import { Column } from "components/table/Column";
import { Table } from "components/table/Table";
@@ -22,7 +24,9 @@ const typeMap = {
STATE: t("State channel"),
CONFIG: t("Config channel"),
FORMULA: t("Formula"),
- INTERNAL: window._IS_UYUNI ? "Uyuni " : "SUSE Manager " + t("internal"),
+ INTERNAL: t("{productName} internal", {
+ productName,
+ }),
};
export default function HighstateSummary({ minionId }) {
diff --git a/web/html/src/manager/systems/activation-key/activation-key-channels.tsx b/web/html/src/manager/systems/activation-key/activation-key-channels.tsx
index 51d569853f3d..deb0bc5d2621 100644
--- a/web/html/src/manager/systems/activation-key/activation-key-channels.tsx
+++ b/web/html/src/manager/systems/activation-key/activation-key-channels.tsx
@@ -1,6 +1,7 @@
import * as React from "react";
import MandatoryChannelsApi from "core/channels/api/mandatory-channels-api";
+import { productName } from "core/user-preferences";
import { Messages } from "components/messages/messages";
import { Utils as MessagesUtils } from "components/messages/messages";
@@ -29,7 +30,13 @@ class ActivationKeyChannels extends React.Component): Promise => {
diff --git a/web/html/src/manager/systems/bootstrap/bootstrap-minions.tsx b/web/html/src/manager/systems/bootstrap/bootstrap-minions.tsx
index f8d3607e5149..9cab5a5ce864 100644
--- a/web/html/src/manager/systems/bootstrap/bootstrap-minions.tsx
+++ b/web/html/src/manager/systems/bootstrap/bootstrap-minions.tsx
@@ -1,6 +1,7 @@
import * as React from "react";
import SpaRenderer from "core/spa/spa-renderer";
+import { productName } from "core/user-preferences";
import { AsyncButton, Button } from "components/buttons";
import { Dialog } from "components/dialog/Dialog";
@@ -408,8 +409,6 @@ class BootstrapMinions extends React.Component {
/>,
];
- const productName = window._IS_UYUNI ? "Uyuni" : "SUSE Manager";
-
const authenticationData = (
<>
{this.state.authMethod === AuthMethod.Password && (
diff --git a/web/html/src/styleguide/template.js b/web/html/src/styleguide/template.js
index e001024430e7..e5286352e32f 100644
--- a/web/html/src/styleguide/template.js
+++ b/web/html/src/styleguide/template.js
@@ -10,7 +10,7 @@ module.exports = {
head: {
// Some of these will currently fail due to CORS, but will be obsolete once we move branding into web
links: [
- `/css/susemanager-light.css?cb=${noCache}`,
+ `/css/suse-light.css?cb=${noCache}`,
`/fonts/font-awesome/css/font-awesome.css?cb=${noCache}`,
`/fonts/font-spacewalk/css/spacewalk-font.css?cb=${noCache}`,
`/css/jquery.timepicker.css?cb=${noCache}`,
diff --git a/web/html/src/utils/functions.ts b/web/html/src/utils/functions.ts
index 6feb78c6fe39..2cfa2c83b259 100644
--- a/web/html/src/utils/functions.ts
+++ b/web/html/src/utils/functions.ts
@@ -171,10 +171,6 @@ function deepCopy(e) {
return e;
}
-function getProductName(): string {
- return window._IS_UYUNI ? "Uyuni" : "SUSE Manager";
-}
-
const Utils = {
cancelable,
sortById,
@@ -186,7 +182,6 @@ const Utils = {
capitalize,
generatePassword,
deepCopy,
- getProductName,
};
const Formulas = {
diff --git a/web/spacewalk-web.changes.eth.rename b/web/spacewalk-web.changes.eth.rename
new file mode 100644
index 000000000000..38143f88f3b9
--- /dev/null
+++ b/web/spacewalk-web.changes.eth.rename
@@ -0,0 +1 @@
+- SUSE Manager is now branded as SUSE Multi-Linux Manager
diff --git a/web/spacewalk-web.spec b/web/spacewalk-web.spec
index 45bec9b2687f..28922472b987 100644
--- a/web/spacewalk-web.spec
+++ b/web/spacewalk-web.spec
@@ -205,7 +205,7 @@ popd
# Adjust default theme for SUSE Manager
%if 0%{?sle_version} && ! (0%{?is_opensuse} || 0%{?rhel} || 0%{?fedora})
-sed -i -e 's/^web.theme_default =.*$/web.theme_default = susemanager-light/' %{buildroot}%{_datadir}/rhn/config-defaults/rhn_web.conf
+sed -i -e 's/^web.theme_default =.*$/web.theme_default = suse-light/' %{buildroot}%{_datadir}/rhn/config-defaults/rhn_web.conf
%endif
%find_lang spacewalk-web