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 @@ - - SUSEManager + + 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.productName} release `} - {props.webVersion} + {t("{productName} release {versionNumber}", { + productName, + versionNumber: ( + {props.webVersion} + ), + })}
{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