Skip to content

Commit 94747ac

Browse files
authored
fixes issue about displaying documentation link multiple times (#681)
1 parent d836073 commit 94747ac

File tree

11 files changed

+94
-50
lines changed

11 files changed

+94
-50
lines changed
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
{
22
"files": {
33
"main.css": "/static/css/main.a19f3d53.chunk.css",
4-
"main.js": "/static/js/main.d8c5a61b.chunk.js",
5-
"main.js.map": "/static/js/main.d8c5a61b.chunk.js.map",
4+
"main.js": "/static/js/main.95997f14.chunk.js",
5+
"main.js.map": "/static/js/main.95997f14.chunk.js.map",
66
"runtime-main.js": "/static/js/runtime-main.f48e99e5.js",
77
"runtime-main.js.map": "/static/js/runtime-main.f48e99e5.js.map",
88
"static/css/2.f324abd6.chunk.css": "/static/css/2.f324abd6.chunk.css",
9-
"static/js/2.98d3ed0a.chunk.js": "/static/js/2.98d3ed0a.chunk.js",
10-
"static/js/2.98d3ed0a.chunk.js.map": "/static/js/2.98d3ed0a.chunk.js.map",
9+
"static/js/2.7b061e18.chunk.js": "/static/js/2.7b061e18.chunk.js",
10+
"static/js/2.7b061e18.chunk.js.map": "/static/js/2.7b061e18.chunk.js.map",
1111
"index.html": "/index.html",
1212
"static/css/2.f324abd6.chunk.css.map": "/static/css/2.f324abd6.chunk.css.map",
1313
"static/css/main.a19f3d53.chunk.css.map": "/static/css/main.a19f3d53.chunk.css.map",
14-
"static/js/2.98d3ed0a.chunk.js.LICENSE.txt": "/static/js/2.98d3ed0a.chunk.js.LICENSE.txt",
14+
"static/js/2.7b061e18.chunk.js.LICENSE.txt": "/static/js/2.7b061e18.chunk.js.LICENSE.txt",
1515
"static/media/minio_console_logo.0837460e.svg": "/static/media/minio_console_logo.0837460e.svg",
1616
"static/media/minio_operator_logo.1312b7c9.svg": "/static/media/minio_operator_logo.1312b7c9.svg"
1717
},
1818
"entrypoints": [
1919
"static/js/runtime-main.f48e99e5.js",
2020
"static/css/2.f324abd6.chunk.css",
21-
"static/js/2.98d3ed0a.chunk.js",
21+
"static/js/2.7b061e18.chunk.js",
2222
"static/css/main.a19f3d53.chunk.css",
23-
"static/js/main.d8c5a61b.chunk.js"
23+
"static/js/main.95997f14.chunk.js"
2424
]
2525
}

portal-ui/build/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="MinIO Console"/><link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;500;700;900&display=swap" rel="stylesheet"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png"/><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png"/><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/><link rel="manifest" href="/manifest.json"/><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#3a4e54"/><title>MinIO Console</title><link href="/static/css/2.f324abd6.chunk.css" rel="stylesheet"><link href="/static/css/main.a19f3d53.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,l,i=r[0],a=r[1],p=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var a=t[i];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonpportal-ui"]=this["webpackJsonpportal-ui"]||[],a=i.push.bind(i);i.push=r,i=i.slice();for(var p=0;p<i.length;p++)r(i[p]);var f=a;t()}([])</script><script src="/static/js/2.98d3ed0a.chunk.js"></script><script src="/static/js/main.d8c5a61b.chunk.js"></script></body></html>
1+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="MinIO Console"/><link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;500;700;900&display=swap" rel="stylesheet"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png"/><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png"/><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/><link rel="manifest" href="/manifest.json"/><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#3a4e54"/><title>MinIO Console</title><link href="/static/css/2.f324abd6.chunk.css" rel="stylesheet"><link href="/static/css/main.a19f3d53.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,l,i=r[0],a=r[1],p=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var a=t[i];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonpportal-ui"]=this["webpackJsonpportal-ui"]||[],a=i.push.bind(i);i.push=r,i=i.slice();for(var p=0;p<i.length;p++)r(i[p]);var f=a;t()}([])</script><script src="/static/js/2.7b061e18.chunk.js"></script><script src="/static/js/main.95997f14.chunk.js"></script></body></html>

portal-ui/build/static/js/2.98d3ed0a.chunk.js renamed to portal-ui/build/static/js/2.7b061e18.chunk.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

portal-ui/build/static/js/2.98d3ed0a.chunk.js.map renamed to portal-ui/build/static/js/2.7b061e18.chunk.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

portal-ui/build/static/js/main.95997f14.chunk.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

portal-ui/build/static/js/main.95997f14.chunk.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

portal-ui/build/static/js/main.d8c5a61b.chunk.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

portal-ui/build/static/js/main.d8c5a61b.chunk.js.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

portal-ui/src/screens/Console/Menu/Menu.tsx

Lines changed: 67 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import { AppState } from "../../../store";
3232
import { userLoggedIn } from "../../../actions";
3333
import api from "../../../common/api";
3434
import { menuGroups } from "./utils";
35-
import { IMenuProps } from "./types";
35+
import { IMenuProps, IMenuItem } from "./types";
3636
import {
3737
BucketsIcon,
3838
ClustersIcon,
@@ -190,7 +190,7 @@ const Menu = ({ userLoggedIn, classes, pages, operatorMode }: IMenuProps) => {
190190
});
191191
};
192192

193-
let menuItems = [
193+
let menuItems: IMenuItem[] = [
194194
{
195195
group: "common",
196196
type: "item",
@@ -321,30 +321,76 @@ const Menu = ({ userLoggedIn, classes, pages, operatorMode }: IMenuProps) => {
321321
},
322322
];
323323

324-
const allowedPages = pages.reduce((result: any, item: any, index: any) => {
324+
const allowedPages = pages.reduce((result: any, item: any) => {
325325
result[item] = true;
326326
return result;
327327
}, {});
328328

329+
const documentation: IMenuItem = {
330+
group: "License",
331+
type: "item",
332+
component: NavLink,
333+
to: "/documentation",
334+
name: "Documentation",
335+
icon: <LibraryBooksIcon />,
336+
forceDisplay: true,
337+
};
338+
329339
// Append the license page according to the allowedPages
330340
if (allowedPages.hasOwnProperty("/tenants")) {
331-
menuItems.push({
332-
group: "Operator",
333-
type: "item",
334-
component: NavLink,
335-
to: "/license",
336-
name: "License",
337-
icon: <LicenseIcon />,
338-
});
341+
menuItems.push(
342+
{
343+
group: "Operator",
344+
type: "item",
345+
component: NavLink,
346+
to: "/license",
347+
name: "License",
348+
icon: <LicenseIcon />,
349+
},
350+
{
351+
...documentation,
352+
group: "Operator",
353+
onClick: (
354+
e:
355+
| React.MouseEvent<HTMLLIElement>
356+
| React.MouseEvent<HTMLAnchorElement>
357+
| React.MouseEvent<HTMLDivElement>
358+
) => {
359+
e.preventDefault();
360+
window.open(
361+
`https://docs.min.io/?ref=${operatorMode ? "op" : "con"}`,
362+
"_blank"
363+
);
364+
},
365+
}
366+
);
339367
} else {
340-
menuItems.push({
341-
group: "License",
342-
type: "item",
343-
component: NavLink,
344-
to: "/license",
345-
name: "License",
346-
icon: <LicenseIcon />,
347-
});
368+
menuItems.push(
369+
{
370+
group: "License",
371+
type: "item",
372+
component: NavLink,
373+
to: "/license",
374+
name: "License",
375+
icon: <LicenseIcon />,
376+
},
377+
{
378+
...documentation,
379+
group: "License",
380+
onClick: (
381+
e:
382+
| React.MouseEvent<HTMLLIElement>
383+
| React.MouseEvent<HTMLAnchorElement>
384+
| React.MouseEvent<HTMLDivElement>
385+
) => {
386+
e.preventDefault();
387+
window.open(
388+
`https://docs.min.io/?ref=${operatorMode ? "op" : "con"}`,
389+
"_blank"
390+
);
391+
},
392+
}
393+
);
348394
}
349395

350396
const allowedItems = menuItems.filter(
@@ -410,13 +456,14 @@ const Menu = ({ userLoggedIn, classes, pages, operatorMode }: IMenuProps) => {
410456
unmountOnExit
411457
key={`menuGroup-${groupMember.group}`}
412458
>
413-
{filterByGroup.map((page: any) => {
459+
{filterByGroup.map((page: IMenuItem) => {
414460
switch (page.type) {
415461
case "item": {
416462
return (
417463
<ListItem
418464
key={page.to}
419465
button
466+
onClick={page.onClick}
420467
component={page.component}
421468
to={page.to}
422469
className={
@@ -445,21 +492,6 @@ const Menu = ({ userLoggedIn, classes, pages, operatorMode }: IMenuProps) => {
445492
return null;
446493
}
447494
})}
448-
<ListItem
449-
button
450-
onClick={(e) => {
451-
e.preventDefault();
452-
window.open(
453-
`https://docs.min.io/?ref=${operatorMode ? "op" : "con"}`,
454-
"_blank"
455-
);
456-
}}
457-
>
458-
<ListItemIcon>
459-
<LibraryBooksIcon />
460-
</ListItemIcon>
461-
<ListItemText primary="Documentation" />
462-
</ListItem>
463495
<Divider />
464496
</Collapse>
465497
</React.Fragment>

0 commit comments

Comments
 (0)