From f3101b24c1c58ff6ff84417311664345eb57fd15 Mon Sep 17 00:00:00 2001 From: Jesus Herman-Marina Date: Thu, 26 Oct 2023 13:40:51 +0200 Subject: [PATCH] Add dropdown and other updates - Add "More from SUSE" dropdown - Add missing release notes - Enable dark theme Signed-off-by: Jesus Herman-Marina --- blog/2023-08-31-release-notes-0.21.md | 31 +++++++++ blog/2023-08-31-release-notes-0.22.md | 33 ++++++++++ docusaurus.config.js | 39 +++++++++++- src/css/custom.css | 12 +++- src/css/icon_dropdown.css | 87 ++++++++++++++++++++++++++ src/pages/index.module.css | 4 +- static/img/icon-docs-mask.png | Bin 0 -> 665 bytes static/img/icon-github-mask.png | Bin 0 -> 6393 bytes static/img/icon-longhorn-mask.png | Bin 0 -> 4058 bytes static/img/icon-rancher-mask.png | Bin 0 -> 4665 bytes static/img/icon-rd-mask.png | Bin 0 -> 8307 bytes static/img/icon-suse-mask.png | Bin 0 -> 14008 bytes static/img/logo-dark.svg | 5 ++ 13 files changed, 205 insertions(+), 6 deletions(-) create mode 100644 blog/2023-08-31-release-notes-0.21.md create mode 100644 blog/2023-08-31-release-notes-0.22.md create mode 100644 src/css/icon_dropdown.css create mode 100644 static/img/icon-docs-mask.png create mode 100644 static/img/icon-github-mask.png create mode 100644 static/img/icon-longhorn-mask.png create mode 100644 static/img/icon-rancher-mask.png create mode 100644 static/img/icon-rd-mask.png create mode 100644 static/img/icon-suse-mask.png create mode 100644 static/img/logo-dark.svg diff --git a/blog/2023-08-31-release-notes-0.21.md b/blog/2023-08-31-release-notes-0.21.md new file mode 100644 index 0000000..cd8d886 --- /dev/null +++ b/blog/2023-08-31-release-notes-0.21.md @@ -0,0 +1,31 @@ +# Release Notes - v0.21.0 + +This release contains significant improvements and new bug fixes. Notably, +this release brings server-side encryption support, conditional copy object, +improvement in profiling. + +This release is meant for testing and feedback gathering. It is not recommended +for production use. + +Should a bug be found and not expected to be related with known issues, one +should feel encouraged to file an issue in our +[Github repository](https://github.com/aquarist-labs/s3gw/issues/new/choose). + +## Features + +- rgw/sfs: Add server-side encryption support +- rgw/sfs: Conditional copy object +- ui : Make use of the UI REST API to prevent CORS issues + +## Fixes + +- rgw/sfs: Improve sqlite connection handling +- rgw/sfs: Fix missing multipart etag +- rgw/sfs: Fix etag and mtime not being sent with copy object response +- rgw/sfs: Increase build error reporting +- rgw/sfs: Improve profiling (sqlite, garbage collection) +- ui: Prevent switching bucket retention mode from Compliance to Governance + +## Breaking Changes + +## Known Issues diff --git a/blog/2023-08-31-release-notes-0.22.md b/blog/2023-08-31-release-notes-0.22.md new file mode 100644 index 0000000..1b3882d --- /dev/null +++ b/blog/2023-08-31-release-notes-0.22.md @@ -0,0 +1,33 @@ +# Release Notes - v0.22.0 + +This release contains significant improvements and new bug fixes. Notably, +this release brings improved multipart and sqlite stability. + +This release is meant for testing and feedback gathering. It is not recommended +for production use. + +Should a bug be found and not expected to be related with known issues, one +should feel encouraged to file an issue in our +[Github repository](https://github.com/aquarist-labs/s3gw/issues/new/choose). + +## Features + +- rgw/sfs: Improved SQLite WAL usage +- rgw/sfs: Improved disk usage when copying objects +- rgw/sfs: Improved testing +- ui: Various improvements + +## Fixes + +- rgw/sfs: Allow multiple delete markers +- rgw/sfs: Fix various multipart transactions +- rgw/sfs: Check number of file descriptors on start +- rgw/sfs: Updated bucket stats +- ui: unable to access UI due to admin ops verifying cert +- ui: The Show/Hide button must have at least one default value +- ui: Dropdown buttons are not rendered correct +- ui: Disable caching of index.html + +## Breaking Changes + +## Known Issues diff --git a/docusaurus.config.js b/docusaurus.config.js index af7ada9..1753d8a 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -18,13 +18,14 @@ module.exports = { // Hides the switch in the navbar // Useful if you want to support a single color mode - disableSwitch: true, + disableSwitch: false, }, navbar: { title: "", logo: { alt: 'logo', - src: 'img/logo.svg' + src: 'img/logo.svg', + srcDark: 'img/logo-dark.svg' }, items: [ { @@ -49,7 +50,39 @@ module.exports = { to: 'https://github.com/aquarist-labs/s3gw', label: 'GitHub', position: 'right', - className: 'navbar__github btn btn-secondary icon-github', + className: 'navbar__icon navbar__github', + }, + { + type: 'dropdown', + label: 'More From SUSE', + position: 'right', + className: 'navbar__docs', + items: [ + { + label: 'Rancher', + to: 'https://www.rancher.com', + className: 'navbar__icon navbar__rancher', + }, + { + label: 'Rancher Desktop', + to: "https://rancherdesktop.io", + className: 'navbar__icon navbar__rd', + }, + { + label: 'Longhorn', + to: "https://longhorn.io", + className: 'navbar__icon navbar__longhorn', + }, + { + type: 'html', + value: '
', + }, + { + label: 'More Projects...', + to: "https://opensource.suse.com", + className: 'navbar__icon navbar__suse', + }, + ], } ], }, diff --git a/src/css/custom.css b/src/css/custom.css index b70b169..da823fc 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -4,7 +4,11 @@ * bundles Infima by default. Infima is a CSS framework designed to * work well for content-centric websites. */ -/* Import fonts. */ + + /* Import icon dropdown styles. */ +@import "icon_dropdown.css"; + + /* Import fonts. */ /* poppins */ @font-face { @@ -51,7 +55,7 @@ } /* Dark Mode Color Override */ [data-theme='dark'] { - --ifm-color-primary: #ffc61c; + --ifm-color-primary: #06527a; --ifm-color-primary-dark: #ffbf00; --ifm-color-primary-darker: #f1b400; --ifm-color-primary-darkest: #c69400; @@ -70,6 +74,10 @@ color: var(--ifm-color-primary); } +[data-theme='dark'] .intro_src-pages-index-module h1, .intro_src-pages-index-module h4, .intro_src-pages-index-module p { + color: white; +} + .button--static { background-color: #06527a; color: #F3F3F3; diff --git a/src/css/icon_dropdown.css b/src/css/icon_dropdown.css new file mode 100644 index 0000000..0465bbe --- /dev/null +++ b/src/css/icon_dropdown.css @@ -0,0 +1,87 @@ + +.navbar__icon { + font-size: 16px; +} + +.navbar__icon:before { + content: ""; + display: inline-flex; + height: 20px; + width: 35px; + margin-right: 4px; + padding-bottom: 7px; + background-color: var(--ifm-navbar-link-color); +} + +.navbar__docs { + font-size: 18px; +} + +.navbar__docs:hover:before { + background-color: var(--ifm-link-color); +} + +.navbar__docs:before { + mask: url(/static/img/icon-docs-mask.png) no-repeat 100% 100%; + mask-size: cover; + height: 20px; + width: 30px; + padding-right: 1px; + padding-bottom: 9px; +} + +.navbar__github { + font-size: 18px; +} + +.navbar__github:hover:before { + background-color: var(--ifm-link-color); +} + +.navbar__github:before { + mask: url(/static/img/icon-github-mask.png) no-repeat 100% 100%; + mask-size: cover; + height: 19px; + width: 22px; + padding-right: 1px; + padding-bottom: 4px; +} + +.navbar__rancher:hover:before { + background-color: #2e68e9; +} +.navbar__rancher:before { + mask: url(/static/img/icon-rancher-mask.png) no-repeat 100% 100%; + mask-size: cover; + height: 14px; + padding-bottom: 2px; +} + +.navbar__rd:hover:before { + background-color: #0081be; +} +.navbar__rd:before { + mask: url(/static/img/icon-rd-mask.png) no-repeat 100% 100%; + mask-size: cover; + height: 22px; +} + +.navbar__longhorn:hover:before { + background-color: #5f224a; +} +.navbar__longhorn:before { + mask: url(/static/img/icon-longhorn-mask.png) no-repeat 100% 100%; + mask-size: cover; + height: 20px; + padding-bottom: 9px; +} + +.navbar__suse:hover:before { + background-color: #30ba78; +} +.navbar__suse:before { + mask: url(/static/img/icon-suse-mask.png) no-repeat 100% 100%; + mask-size: cover; + height: 15px; + padding-bottom: 4px; +} \ No newline at end of file diff --git a/src/pages/index.module.css b/src/pages/index.module.css index 703167c..264e5b1 100644 --- a/src/pages/index.module.css +++ b/src/pages/index.module.css @@ -112,9 +112,11 @@ Below is used for the s3gw.io landing page [data-theme='dark'] .intro h1, +[data-theme='dark'] .intro h4, +[data-theme='dark'] .intro p { - color:var(--light) + color:var(--dark) } [data-theme='dark'] .intro a { color: var(--ifm-color-secondary) diff --git a/static/img/icon-docs-mask.png b/static/img/icon-docs-mask.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc82c1af1081f04a460b942ee7a6f9b6d463f6d GIT binary patch literal 665 zcmV;K0%rY*P)`Cl7;RnX0*s)p)E{PQqtmW>z45_vN4>I|v4v?C4z`E6iFWU?&d~>3c%6BnV zXoFOtjF)=+NIiJ*0BfQ1Ar`);j{ga#OF{6e9I^06Al(xlput{ zuHXp@$txvWoFFL<>oe}3Husy(AyQ1xMvM)Id4pZdX2h?!g0!SuCm6H_Ex7eM2%Di8 z+!a@lR&y;@CDLn`2dzOi!l!NmRHH5#kj7}x)-#JMNI(b~sf>{2H%X3AJYQTv z2yn8Qig`yaQqCsf^uqVz1W9e`AQ7rJ=q6z!a5{o){On~8b(tGPLDCwNYOBlQDQ+X< z&8kbY9b1}|$A;E?G z<|#rW-ex2ZtlNNb4@!pWY>Q*}tq?@|_@#+gNmL+}d@>+_ZzVQWvlDWP5Xz!57>(kE zWdRl{gSQ`mth_XF9j98s05p(PV7tyeSlsXIUmIz7wSL z==;wjRKS|f%oLz+f_?E?;*12lN;)d|?-l$3M|t2W^WU+E00000NkvXXu0mjfnk6Z^ literal 0 HcmV?d00001 diff --git a/static/img/icon-github-mask.png b/static/img/icon-github-mask.png new file mode 100644 index 0000000000000000000000000000000000000000..6cb3b705d018006a2bd4200ea94c9d5fb98b6f76 GIT binary patch literal 6393 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 Hu0mjfZ$b4` literal 0 HcmV?d00001 diff --git a/static/img/icon-longhorn-mask.png b/static/img/icon-longhorn-mask.png new file mode 100644 index 0000000000000000000000000000000000000000..8a16e510851891e4f59842e6edab65f6e3eca2d5 GIT binary patch literal 4058 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 LJ6cs)1n&8NzaW|y literal 0 HcmV?d00001 diff --git a/static/img/logo-dark.svg b/static/img/logo-dark.svg new file mode 100644 index 0000000..8c65cb1 --- /dev/null +++ b/static/img/logo-dark.svg @@ -0,0 +1,5 @@ + + + + +