From ba6b034b67beabda013ce009b0e12601f2a00540 Mon Sep 17 00:00:00 2001 From: Nizamudeen A Date: Mon, 31 Aug 2020 16:39:50 +0530 Subject: [PATCH] mgr/dashboard: branding: login page pacific Resolves: rhbz#2106618 Signed-off-by: Nizamudeen A (cherry picked from commit deffbb9454a79c1b453ef3aa74ec9464b199dcd1) --- .../mgr/dashboard/frontend/package-lock.json | 111 ++++++++++++--- .../mgr/dashboard/frontend/package.json | 1 + .../login-layout/login-layout.component.ts | 4 +- .../src/assets/Logo-RedHat-A-Reverse-RGB.svg | 1 + ...ogo-Red_Hat-Ceph_Storage-A-Reverse-RGB.png | Bin 0 -> 32016 bytes .../src/assets/redhat_new_background.svg | 16 +++ .../src/styles/vendor/_style-overrides.scss | 134 ++++++++++++++++++ .../src/styles/vendor/_variables.scss | 5 +- 8 files changed, 251 insertions(+), 21 deletions(-) create mode 100644 src/pybind/mgr/dashboard/frontend/src/assets/Logo-RedHat-A-Reverse-RGB.svg create mode 100644 src/pybind/mgr/dashboard/frontend/src/assets/Logo-Red_Hat-Ceph_Storage-A-Reverse-RGB.png create mode 100644 src/pybind/mgr/dashboard/frontend/src/assets/redhat_new_background.svg diff --git a/src/pybind/mgr/dashboard/frontend/package-lock.json b/src/pybind/mgr/dashboard/frontend/package-lock.json index d102e622d5c8f..3e88917f2a379 100644 --- a/src/pybind/mgr/dashboard/frontend/package-lock.json +++ b/src/pybind/mgr/dashboard/frontend/package-lock.json @@ -2874,7 +2874,7 @@ "object-assign": "^4.1.1", "open": "8.2.1", "proxy-middleware": "^0.15.0", - "send": "^0.17.2", + "send": "^0.18.0", "serve-index": "^1.9.1" }, "dependencies": { @@ -2906,7 +2906,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } @@ -2920,28 +2920,76 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==", "dev": true }, "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } } } } @@ -4193,6 +4241,11 @@ "read-package-json-fast": "^2.0.1" } }, + "@patternfly/patternfly": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-4.23.3.tgz", + "integrity": "sha512-q8C98ihcRYBY+FB+KY3bQ9y1Pn/NjBff4hwKsxatrs/MSO/++CuEncg4q7WHjIq2zadA4/7W+Vg3CXuiOP0geg==" + }, "@schematics/angular": { "version": "12.2.13", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.13.tgz", @@ -5851,6 +5904,16 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -9349,6 +9412,13 @@ "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.2.tgz", "integrity": "sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw==" }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -16187,6 +16257,13 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "nan": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", + "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==", + "dev": true, + "optional": true + }, "nanoid": { "version": "3.1.30", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", @@ -19490,12 +19567,6 @@ "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", "dev": true }, - "proxy-middleware": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", - "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", - "dev": true - }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -23565,7 +23636,11 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, - "optional": true + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } }, "glob-parent": { "version": "3.1.0", diff --git a/src/pybind/mgr/dashboard/frontend/package.json b/src/pybind/mgr/dashboard/frontend/package.json index e2d19f334c015..7ed8b43d9d8bd 100644 --- a/src/pybind/mgr/dashboard/frontend/package.json +++ b/src/pybind/mgr/dashboard/frontend/package.json @@ -86,6 +86,7 @@ "@circlon/angular-tree-component": "10.0.0", "@ng-bootstrap/ng-bootstrap": "10.0.0", "@swimlane/ngx-datatable": "18.0.0", + "@patternfly/patternfly": "4.23.3", "@types/file-saver": "2.0.1", "async-mutex": "0.2.4", "bootstrap": "4.6.1", diff --git a/src/pybind/mgr/dashboard/frontend/src/app/core/layouts/login-layout/login-layout.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/core/layouts/login-layout/login-layout.component.ts index 69d591cd17b2b..39d2e3349afc7 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/core/layouts/login-layout/login-layout.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/core/layouts/login-layout/login-layout.component.ts @@ -8,7 +8,7 @@ import { Component } from '@angular/core'; export class LoginLayoutComponent { docItems: any[] = [ { section: 'help', text: $localize`Help` }, - { section: 'security', text: $localize`Security` }, - { section: 'trademarks', text: $localize`Trademarks` } + { section: 'terms', text: $localize`Terms of Use` }, + { section: 'privacy', text: $localize`Privacy Policy` } ]; } diff --git a/src/pybind/mgr/dashboard/frontend/src/assets/Logo-RedHat-A-Reverse-RGB.svg b/src/pybind/mgr/dashboard/frontend/src/assets/Logo-RedHat-A-Reverse-RGB.svg new file mode 100644 index 0000000000000..e140b2f47c226 --- /dev/null +++ b/src/pybind/mgr/dashboard/frontend/src/assets/Logo-RedHat-A-Reverse-RGB.svg @@ -0,0 +1 @@ +RedHat-Logo-A-Reverse \ No newline at end of file diff --git a/src/pybind/mgr/dashboard/frontend/src/assets/Logo-Red_Hat-Ceph_Storage-A-Reverse-RGB.png b/src/pybind/mgr/dashboard/frontend/src/assets/Logo-Red_Hat-Ceph_Storage-A-Reverse-RGB.png new file mode 100644 index 0000000000000000000000000000000000000000..e2db966b8d5d366db448defc57712fa01cdf3021 GIT binary patch literal 32016 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 l3!?-i$Q<+%e|O$Tp*~B z-ziF&U~;|zZF6P6?QlKD0@&r#Yc!$Ui)1MB-t-U!%!EdW#+VB|M-%iy%b`Q)JM5$i z#)KZZ2z?XHW;VxWAFDCIO&eEq#W zQ@>*y*6kQEC*{_4fX@Eo}K@CPT3$tILfm;N0ISGCz~f#8K~fPhgMW zUa8(<0kS>tj=rlOZ3h{9SWhKHlA>7Y0Bpa7Bo3(`C##p92y$m*yYFzpMNBwYN$ij8JFsD$;^i{EbvenMLdFToO3JlvZZ+5|S!AX66;mXsH{rH@i)+u5#1WgiFF zny{0Wd2TL9HS)a>5BE_XBLpP?xj9-#KY)Y{4fJ~{*)qMJ?&Hl}>c5{q8)sRt1ubI> zhENsa4*C;WE{jE`oC^zGI_F0(y3_cp$6WcYh^59{UMXj0=DY0J zJ>BH#VPQK6yE_9f!IWYavQF48Z}d<(6 zs^bUZ-7`5l8`;irL`#6uiUIH}&fU9@P_XByyHf)3>>e&C>3U!L*ocMe^&TyDfSg2{ zQx)k~91t*9QzTcjpn$g@rM}TM$vo`gjN90uBFS)$1hbY7U#p{Y(}QVC12^Zxi6%Lq zmS*nxqy~{m=GZ8~ZymOn7~TAs^1w?=vXtM(NsQVLiB~8^kDEkXWvhGUt(#qGMO{rT zX*wI@N9PPATC|8a=r8$EV#OIRUv(J%@=o#}+ zcd0E(S6f&%7vs3d-MM~Vz)H6i_|M+bfh(u{P8e9qI4rYs zQ`aF>c!I^PJ4_>|)YG(BZ~3X2xk%Zowa4;*+>k@qc@qwd5G zSibrrj|fnx>TfZ`SfE+|mb~W`9jJf9mCl{|F$cT8ar1j~!>l|P;I~cJ_H7e-8(!6P z#r*9$zZB3%PfRKbz=b%8CfR}NEe`y*NiD9MCG~ep+@-szud(tR>Q|YAT=xgW19#

!XnqzDmLqn-Una{_k2owX4|o3Iq2 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

sr2UM!V>j`O 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 RzqRVBFSTA&D7+2%{{TL(=$8Nh literal 0 HcmV?d00001 diff --git a/src/pybind/mgr/dashboard/frontend/src/assets/redhat_new_background.svg b/src/pybind/mgr/dashboard/frontend/src/assets/redhat_new_background.svg new file mode 100644 index 0000000000000..8ab25c9229cf6 --- /dev/null +++ b/src/pybind/mgr/dashboard/frontend/src/assets/redhat_new_background.svg @@ -0,0 +1,16 @@ + + + + BG + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/src/pybind/mgr/dashboard/frontend/src/styles/vendor/_style-overrides.scss b/src/pybind/mgr/dashboard/frontend/src/styles/vendor/_style-overrides.scss index 2fbea9824ac2c..6bf08ee597dea 100644 --- a/src/pybind/mgr/dashboard/frontend/src/styles/vendor/_style-overrides.scss +++ b/src/pybind/mgr/dashboard/frontend/src/styles/vendor/_style-overrides.scss @@ -2,3 +2,137 @@ Custom styles, third-party libraries, frameworks, design systems, ... */ + +@use './src/styles/vendor/variables' as vv; + +/* stylelint-disable */ +$pf-global--font-path: '~@patternfly/patternfly/assets/fonts'; +$fa-font-path: '~@patternfly/patternfly/assets/fonts/webfonts'; +$pf-global--fonticon-path: '~@patternfly/patternfly/assets/pficon'; +$pf-global--image-path: '~@patternfly/patternfly/assets/images'; +/* stylelint-enable */ + +@import '~@patternfly/patternfly/patternfly'; + +.login { + background-image: url('../../assets/redhat_new_background.svg') !important; + background-position: center; + background-size: cover; + + nav { + display: none; + } + + .container { + margin-left: 100px; + + img { + content: url('../../assets/Logo-Red_Hat-Ceph_Storage-A-Reverse-RGB.png'); + } + + .img-fluid { + margin-left: 20%; + } + + .list-inline { + font-size: 13px; + margin-bottom: 0; + margin-left: 44%; + margin-top: 10%; + } + + cd-login { + background-color: var(--pf-global--BackgroundColor--light-100); + + .placeholder { + color: vv.$black; + } + + .input-group { + padding-top: 20px; + } + + .container { + background-color: vv.$white; + + form { + padding: 50px 20px 60px; + } + + .pl-4, + .px-4 { + font-size: 14px; + padding-left: 0.3rem !important; + } + + form:first-child::before { + @extend .pf-c-title, .pf-m-3xl; + color: vv.$black; + content: 'Login to your account \A \A'; + white-space: pre-wrap; + } + + .form-group-append { + display: none; + } + + .btn-accent { + @extend .pf-c-button, .pf-m-primary, .pf-m-block; + margin-top: 20px; + } + } + + .form-control { + // stylelint-disable + background-color: vv.$white !important; + border: 1px solid $pf-color-black-200 !important; + border-bottom: 2px solid $pf-color-red-100 !important; + color: vv.$black !important; + height: initial !important; + @extend .pf-c-form-control; + &:focus { + border-bottom: 2px solid vv.$primary !important; + box-shadow: none !important; + outline: 0; + } + &:valid { + border-bottom: 1px solid vv.$black !important; + } + } + + @keyframes autofill { + to { + background-color: vv.$white; + color: vv.$black; + } + } + + input:-webkit-autofill { + box-shadow: 0 0 0 1000px vv.$white inset; + -webkit-text-fill-color: vv.$black; + } + } + } +} + +.btn { + @extend .pf-c-button; +} + +.btn-submit { + @extend .pf-c-button, .pf-m-primary, .pf-m-block; + padding-top: 30px; +} + +.form-group { + @extend .pf-c-form__group; + all: unset !important; +} + +.placeholder { + @extend .pf-c-form__label; +} + +.input-group { + @extend .pf-c-input-group; +} diff --git a/src/pybind/mgr/dashboard/frontend/src/styles/vendor/_variables.scss b/src/pybind/mgr/dashboard/frontend/src/styles/vendor/_variables.scss index 1df7a90845c15..c2248fbeaaf20 100644 --- a/src/pybind/mgr/dashboard/frontend/src/styles/vendor/_variables.scss +++ b/src/pybind/mgr/dashboard/frontend/src/styles/vendor/_variables.scss @@ -3,6 +3,7 @@ Example: $my-accent-color: #a18fff */ +@use '~@patternfly/patternfly/sass-utilities/colors'; /* Bootstrap variables that are already defined can be overridden using configuration: https://sass-lang.com/documentation/at-rules/forward#configuring-modules @@ -14,4 +15,6 @@ Example: ) ); */ -@forward '../defaults/bootstrap-defaults'; +@forward '../defaults/bootstrap-defaults' with ( + $primary: colors.$pf-color-blue-400 +); -- 2.39.5