diff --git a/konf/site.yaml b/konf/site.yaml index f08bef2622a..944e759ce73 100644 --- a/konf/site.yaml +++ b/konf/site.yaml @@ -368,17 +368,10 @@ production: - name: SENTRY_DSN value: https://0293bb7fc3104e56bafd2422e155790c@sentry.is.canonical.com//13 - - paths: [/security/notices\.json] - service_name: ubuntu-com-security-api-notices - - - paths: [/security/notices/.*\.json] - service_name: ubuntu-com-security-api-notices-detail - - - paths: [/security/updates/.*] - service_name: ubuntu-com-security-api-updates - - paths: [ + /security/notices\.json, + /security/notices/.*\.json, /security/cves\.json, /security/cves/.*\.json, /security/releases\.json, @@ -388,6 +381,11 @@ production: ] service_name: ubuntu-com-security-api + - paths: [/security/updates/.*] + service_name: ubuntu-com-security-api-updates + replicas: 2 + memoryLimit: 1Gi + - paths: [/security] name: ubuntu-com-security app_name: ubuntu.com-security diff --git a/navigation.yaml b/navigation.yaml index 6f91a05ed8a..466d4ad6367 100644 --- a/navigation.yaml +++ b/navigation.yaml @@ -317,7 +317,7 @@ support: - title: Pricing path: /pricing/pro - title: Discourse - path: https://discourse.ubuntu.com/c/ubuntu-pro + path: https://discourse.ubuntu.com/c/project/ubuntu-pro/116/ pro: title: Ubuntu Pro @@ -335,7 +335,7 @@ pro: - title: Docs path: https://documentation.ubuntu.com/pro - title: Discourse - path: https://discourse.ubuntu.com/c/ubuntu-pro + path: https://discourse.ubuntu.com/c/project/ubuntu-pro/116/ Distributor: title: Ubuntu Pro Distributor diff --git a/package.json b/package.json index cf146041956..bf89501475f 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "typescript": "5.5.4", "url-polyfill": "1.1.12", "url-search-params-polyfill": "8.2.5", - "vanilla-framework": "4.18.2", + "vanilla-framework": "4.18.3", "yup": "1.4.0" }, "resolutions": { diff --git a/redirects.yaml b/redirects.yaml index 27f18f47a13..13ee671a952 100644 --- a/redirects.yaml +++ b/redirects.yaml @@ -844,6 +844,7 @@ tour/?: "/desktop" tour/en/?: "/desktop" tour/zh-CN/?: "/desktop" trademark-policy/?: "/legal/intellectual-property-policy" +tutorials/secure-ubuntu-kiosk: "https://mir-server.io/docs/make-a-secure-ubuntu-web-kiosk" tuxaward/?: "/blog/ubuntu-wins-tux-award/" ua/?: "/support" ua-assurance-terms/?: "/legal/ubuntu-advantage-assurance" diff --git a/static/js/src/advantage/credentials/dashboard/components/ExamResults/ExamResults.tsx b/static/js/src/advantage/credentials/dashboard/components/ExamResults/ExamResults.tsx index f6cd4fe9fc5..eae9af78f95 100644 --- a/static/js/src/advantage/credentials/dashboard/components/ExamResults/ExamResults.tsx +++ b/static/js/src/advantage/credentials/dashboard/components/ExamResults/ExamResults.tsx @@ -102,6 +102,11 @@ const ExamResults = () => { ), }, + { + Header: "First Name", + accessor: "user.first_name", + sortType: "basic", + }, { Header: "User Email", accessor: "user_email", @@ -295,6 +300,8 @@ const ExamResults = () => { {flatData && flatData?.length > 0 && ( <>

-

The same date as your existing subscription.

+

+ This subscription is co-termed with your existing subscription. + Both subscriptions will end on the same date. +

) : ( diff --git a/static/js/src/navigation.js b/static/js/src/navigation.js index e9f721a1565..1db1d30c4b3 100644 --- a/static/js/src/navigation.js +++ b/static/js/src/navigation.js @@ -66,6 +66,8 @@ mainList.addEventListener("click", function (e) { goBackOneLevel(e, target); } else { handleDropdownClick(e.target.parentNode); + // This is a temporary fix until we migrate to use the vanilla meganav + closeNotifications(); } } else if ( target.classList.contains("p-navigation__dropdown-item") || @@ -78,6 +80,12 @@ mainList.addEventListener("click", function (e) { } }); +// The current set up of the meganav doesn't work well with notifications. The simplest fix for this is to close all notifications when a dropdown is clicked. Can be removed on migration to vanilla meganav. +function closeNotifications() { + const notification = document.querySelector(".p-popup-notification:target"); + notification.style.display = "none"; +} + let wasBelowSpecificWidth = window.innerWidth < MOBILE_VIEW_BREAKPOINT; window.addEventListener("resize", function () { // Only closeAll if the resize event crosses the MOBILE_VIEW_BREAKPOINT threshold diff --git a/static/js/src/tabbed-content.js b/static/js/src/tabbed-content.js index e2d870f294f..4b44f7ab539 100644 --- a/static/js/src/tabbed-content.js +++ b/static/js/src/tabbed-content.js @@ -150,17 +150,15 @@ attachEvents(tabs, persistURLHash); - const isInsideCurrentContainer = - null !== - tabContainer.querySelector(".p-tabs__link[href='" + currentHash + "']"); - - if (persistURLHash && currentHash && isInsideCurrentContainer) { - const activeTab = document.querySelector( + if (persistURLHash && currentHash) { + const activeTabLink = document.querySelector( ".p-tabs__link[href='" + currentHash + "']", ); - - if (activeTab) { - setActiveTab(activeTab, tabs); + const activeTabButton = document.querySelector( + ".p-tabs__item[id='" + currentHash.replace("#", "") + "']", + ); + if (activeTabLink || activeTabButton) { + setActiveTab(activeTabLink || activeTabButton, tabs); } return; diff --git a/static/sass/styles.scss b/static/sass/styles.scss index e3ad2030316..e04bc984a63 100644 --- a/static/sass/styles.scss +++ b/static/sass/styles.scss @@ -841,53 +841,18 @@ td.p-accordion { } // Styling to display a success message when forms are successfully submitted. -#success { +.p-popup-notification { display: none; - position: absolute; -} - -#success:target { - display: block; - z-index: 10; -} - -#newsletter-signup { - display: none; - position: absolute; -} - -#newsletter-signup:target { - display: block; - z-index: 10; -} - -#contact-form-success { - display: none; - position: absolute; -} - -#contact-form-success:target { - display: block; - z-index: 10; -} - -#updated { - display: none; -} - -#updated:target { - display: block; - z-index: 10; -} - -#unsubscribed { - display: none; - position: absolute; + position: relative; + padding-bottom: 0; + .p-notification__content { + margin-bottom: 0.6rem; + } } -#unsubscribed:target { +.p-popup-notification:target { display: block; - z-index: 10; + z-index: 9; } html { @@ -1463,6 +1428,10 @@ $color-link-dark: #69c !default; &.is-product { background-color: #f3f3f3; } + + &--logo { + margin-top: $spv--large; + } } .p-icon-section { @@ -1727,6 +1696,7 @@ legend { padding-top: 0.5rem; } } + // XXX: MPT: Can be removed once this is upstreamed in Vanilla // https://github.com/canonical/vanilla-framework/issues/5293 .list-matrix { @@ -1784,3 +1754,15 @@ legend { .p-footer-list { @extend %paragraph; } + +.u-additional-spacing--large { + @media screen and ($breakpoint-large <= width) { + margin-bottom: $sp-unit * 12.5; + } +} + +.u-responsive-cta { + @media screen and ($breakpoint-large <= width) { + height: 15rem; + } +} diff --git a/templates/base_index.html b/templates/base_index.html index af63fd20ab8..9bf42f49997 100644 --- a/templates/base_index.html +++ b/templates/base_index.html @@ -1266,7 +1266,6 @@

Multi-cloud applications &ndas xhr.send(); fetchUserCountry.open("GET", "/user-country.json", true); fetchUserCountry.send(); - takeoverAnimation.className += " is-loading"; } function showTakeover(takeovers, index) { diff --git a/templates/case-study/esa.html b/templates/case-study/esa.html index 5a8c4538b8e..f86cfb3e017 100644 --- a/templates/case-study/esa.html +++ b/templates/case-study/esa.html @@ -9,9 +9,9 @@ {% from "macros/_macros-image.jinja" import image_wrapper %} {% block title %}Canonical deploys infrastructure solutions and managed IT services for critical space mission operations{% endblock %} -{% block meta_description %}{% endblock %} +{% block meta_description %}Thanks to Canonical, the ESA has unlocked cost savings, easier operations, and more confidence in providing infrastructure in their roadmap for doubling their number of space missions by 2030.{% endblock %} {% block meta_company_name %}European Space Agency{% endblock %} -{% block meta_copydoc %}{% endblock %} +{% block meta_copydoc %}https://docs.google.com/document/d/1jc5DY4-9pDYQC04Egdt0If4_jrYn1mIBDwhJfILO46w/edit{% endblock %} {% block content %} diff --git a/templates/certified/hardware-details.html b/templates/certified/hardware-details.html deleted file mode 100644 index 84028859b24..00000000000 --- a/templates/certified/hardware-details.html +++ /dev/null @@ -1,53 +0,0 @@ -{% extends "templates/base.html" %} - -{% block title %} {{ vendor }} {{ model }} certified with Ubuntu {{ release }}{% endblock %} - -{% block meta_description %}Hardware that have been certified for use with Ubuntu.{% endblock meta_description %} - -{% block outer_content %} - -
-
- -
- {% with category=release_details.category %} - {% include "certified/shared/category-image.html" %} - {% endwith %} -
-
-
-
- - - {% for category, devices in hardware_details.items() %} - {% if category != "Other" %} - - - - - {% endif %} - {% else %} - There are no hardware details available for this machine. - {% endfor %} - -
- {{ category }} - -
    - {% for device in devices %} -
  • - {{ device.name }} {% if device.bus in ["usb", "pci"] %}({{ device.identifier }}{% if device.subsystem %} {{ device.subsystem }}{% endif %}){% endif %} -
  • - {% endfor %} -
-
-
-
-
- -{% endblock %} diff --git a/templates/certified/hardware-details/_hardware-table.html b/templates/certified/hardware-details/_hardware-table.html new file mode 100644 index 00000000000..82c8feef96a --- /dev/null +++ b/templates/certified/hardware-details/_hardware-table.html @@ -0,0 +1,33 @@ +
+
+
+ + + {% for category, devices in hardware_details.items() %} + {% if category != "Other" %} + + + + + {% endif %} + {% else %} + There are no hardware details available for this machine. + {% endfor %} + +
{{ category }} +
    + {% for device in devices %} +
  • + {{ device.name }} + {% if device.bus in ["usb", "pci"] %} + ({{ device.identifier -}} + {% if device.subsystem %} + {{ device.subsystem -}} + {% endif %}) + {% endif %} +
  • + {% endfor %} +
+
+
+
diff --git a/templates/certified/hardware-details/_hero-section.html b/templates/certified/hardware-details/_hero-section.html new file mode 100644 index 00000000000..3518ad0c2f2 --- /dev/null +++ b/templates/certified/hardware-details/_hero-section.html @@ -0,0 +1,25 @@ +
+ +
+
+
+ {% with category=release_details.category %} + {% include "certified/shared/category-image.html" %} + {% endwith %} +
+
+
+
+

{{ release_details.make }} {{ release_details.model }} certified on Ubuntu {{ release_details.certified_release }}

+

Hardware details

+
+
+
+
diff --git a/templates/certified/hardware-details/hardware-details.html b/templates/certified/hardware-details/hardware-details.html new file mode 100644 index 00000000000..3251f1705c3 --- /dev/null +++ b/templates/certified/hardware-details/hardware-details.html @@ -0,0 +1,25 @@ +{% extends "templates/base.html" %} + +{% block title %} + {{ vendor }} {{ release_details.model }} certified with Ubuntu {{ release_details.certified_release }} +{% endblock %} + +{% block meta_description %} + Hardware details of {{ vendor }} {{ release_details.model }} certified with Ubuntu {{ release_details.certified_release }}. +{% endblock meta_description %} + +{% block body_class %} + is-paper +{% endblock body_class %} + +{% block outer_content %} + + {% with release_details=release_details %} + {% include "certified/hardware-details/_hero-section.html" %} + {% endwith %} + + {% with hardware_details=hardware_details %} + {% include "certified/hardware-details/_hardware-table.html" %} + {% endwith %} + +{% endblock outer_content %} diff --git a/templates/credentials/sign-up.html b/templates/credentials/sign-up.html index a6575088b52..f0445f3f24a 100644 --- a/templates/credentials/sign-up.html +++ b/templates/credentials/sign-up.html @@ -9,6 +9,15 @@ {% endblock meta_copydoc %} {% block content %} + {% if error %}
diff --git a/templates/dell/index.html b/templates/dell/index.html index fb33be80d2f..971a8ba931c 100644 --- a/templates/dell/index.html +++ b/templates/dell/index.html @@ -330,18 +330,15 @@
FROM OUR BLOG

Dell XPS 13 Plus Developer Edition -
- now certified with Ubuntu 22.04 LTS
+
now certified with Ubuntu 22.04 LTS

- - +


@@ -352,14 +349,12 @@

a proven solution

- - +


@@ -370,14 +365,13 @@

production-ready Kubernetes solution

- - +

diff --git a/templates/download/amd/_wiki_notification.html b/templates/download/amd/_wiki_notification.html new file mode 100644 index 00000000000..c926bfc969c --- /dev/null +++ b/templates/download/amd/_wiki_notification.html @@ -0,0 +1,13 @@ +
+
+

+ Please check the + AMD Kria™ Wiki + for the platform's latest boot firmware, technical documentation, + and the + Ubuntu for AMD-Xilinx Devices Wiki + + for known issues and limitations. +

+
+
diff --git a/templates/download/amd/index.html b/templates/download/amd/index.html index 629666e6070..48c9fcdefed 100644 --- a/templates/download/amd/index.html +++ b/templates/download/amd/index.html @@ -60,17 +60,18 @@

Choose a board