feat: 优化logo icon加载,close #1168
@@ -59,7 +59,6 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify-json/mdi": "^1.2.3",
|
||||
"@iconify-json/simple-icons": "^1.2.63",
|
||||
"@iconify/vue": "^5.0.0",
|
||||
"@rushstack/eslint-patch": "^1.14.0",
|
||||
"@tsconfig/node24": "^24.0.0",
|
||||
|
||||
10
web/pnpm-lock.yaml
generated
@@ -105,9 +105,6 @@ importers:
|
||||
'@iconify-json/mdi':
|
||||
specifier: ^1.2.3
|
||||
version: 1.2.3
|
||||
'@iconify-json/simple-icons':
|
||||
specifier: ^1.2.63
|
||||
version: 1.2.64
|
||||
'@iconify/vue':
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0(vue@3.5.26(typescript@5.9.3))
|
||||
@@ -699,9 +696,6 @@ packages:
|
||||
'@iconify-json/mdi@1.2.3':
|
||||
resolution: {integrity: sha512-O3cLwbDOK7NNDf2ihaQOH5F9JglnulNDFV7WprU2dSoZu3h3cWH//h74uQAB87brHmvFVxIOkuBX2sZSzYhScg==}
|
||||
|
||||
'@iconify-json/simple-icons@1.2.64':
|
||||
resolution: {integrity: sha512-SMmm//tjZBvHnT0EAzZLnBTL6bukSkncM0pwkOXjr0FsAeCqjQtqoxBR0Mp+PazIJjXJKHm1Ju0YgnCIPOodJg==}
|
||||
|
||||
'@iconify/types@2.0.0':
|
||||
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
|
||||
|
||||
@@ -4082,10 +4076,6 @@ snapshots:
|
||||
dependencies:
|
||||
'@iconify/types': 2.0.0
|
||||
|
||||
'@iconify-json/simple-icons@1.2.64':
|
||||
dependencies:
|
||||
'@iconify/types': 2.0.0
|
||||
|
||||
'@iconify/types@2.0.0': {}
|
||||
|
||||
'@iconify/utils@3.1.0':
|
||||
|
||||
1
web/src/assets/icons/app/app.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill="#333" d="M11.81 2.45a1.5 1.5 0 0 0-2.12 0L7.961 4.175A1.5 1.5 0 0 0 6.497 3h-3a1.5 1.5 0 0 0-1.5 1.5v8c0 .51.255.96.644 1.231c.243.17.54.27.859.27h8a1.5 1.5 0 0 0 1.5-1.5v-3a1.5 1.5 0 0 0-1.125-1.452L13.58 6.34a1.5 1.5 0 0 0 0-2.121zM9.578 8h-1.58V6.42zm.818-4.844a.5.5 0 0 1 .707 0l1.771 1.77a.5.5 0 0 1 0 .708l-1.77 1.77a.5.5 0 0 1-.708 0l-1.77-1.77a.5.5 0 0 1 0-.707zM6.997 4.5V8h-4V4.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5M3 12.5V9h3.997v4h-3.5A.497.497 0 0 1 3 12.5M7.997 9H11.5a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5H7.997z"/></svg>
|
||||
|
After Width: | Height: | Size: 603 B |
1
web/src/assets/icons/app/codeserver.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M14.862 6.67H24v10.663h-9.138zm-7.917 8.634c-1.934 0-3.366-1.264-3.366-3.305s1.432-3.323 3.366-3.365c1.411-.03 2.787.99 2.878 2.543l3.472-.106c-.076-2.802-2.33-4.706-6.35-4.706S0 8.558 0 12c0 3.426 3.046 5.635 6.945 5.635c3.898 0 6.29-1.935 6.38-4.782l-3.472-.077c-.152 1.553-1.497 2.528-2.908 2.528"/></svg>
|
||||
|
After Width: | Height: | Size: 397 B |
1
web/src/assets/icons/app/docker.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#1D63ED" d="M21.81 10.25c-.06-.04-.56-.43-1.64-.43c-.28 0-.56.03-.84.08c-.21-1.4-1.38-2.11-1.43-2.14l-.29-.17l-.18.27c-.24.36-.43.77-.51 1.19c-.2.8-.08 1.56.33 2.21c-.49.28-1.29.35-1.46.35H2.62c-.34 0-.62.28-.62.63c0 1.15.18 2.3.58 3.38c.45 1.19 1.13 2.07 2 2.61c.98.6 2.59.94 4.42.94c.79 0 1.61-.07 2.42-.22c1.12-.2 2.2-.59 3.19-1.16A8.3 8.3 0 0 0 16.78 16c1.05-1.17 1.67-2.5 2.12-3.65h.19c1.14 0 1.85-.46 2.24-.85c.26-.24.45-.53.59-.87l.08-.24zm-17.96.99h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H3.85c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.43 0h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H6.28c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.47 0h1.75c.1 0 .17-.07.17-.16V9.5c0-.08-.06-.16-.17-.16H8.75c-.08 0-.15.07-.15.16v1.58c0 .09.06.16.15.16m2.44 0h1.77c.08 0 .15-.07.15-.16V9.5c0-.08-.06-.16-.15-.16h-1.77c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16M6.28 9h1.76c.08 0 .16-.09.16-.18V7.25c0-.09-.07-.16-.16-.16H6.28c-.09 0-.16.06-.16.16v1.57c.01.09.07.18.16.18m2.47 0h1.75c.1 0 .17-.09.17-.18V7.25c0-.09-.06-.16-.17-.16H8.75c-.08 0-.15.06-.15.16v1.57c0 .09.06.18.15.18m2.44 0h1.77c.08 0 .15-.09.15-.18V7.25c0-.09-.07-.16-.15-.16h-1.77c-.08 0-.15.06-.15.16v1.57c0 .09.07.18.15.18m0-2.28h1.77c.08 0 .15-.07.15-.16V5c0-.1-.07-.17-.15-.17h-1.77c-.08 0-.15.06-.15.17v1.56c0 .08.07.16.15.16m2.46 4.52h1.76c.09 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16h-1.76c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16"/></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
1
web/src/assets/icons/app/fail2ban.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g fill="none" stroke="#333" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M16 3v2.107M17 9c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 22 17a5 5 0 0 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C13 11.5 16 9 17 9"/><path d="M21 8.274V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.938M3 15h5.253M3 9h8.228M8 15v6M8 3v6"/></g></svg>
|
||||
|
After Width: | Height: | Size: 401 B |
1
web/src/assets/icons/app/frp.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25"><path fill="#333" fill-rule="evenodd" d="M7.207 13.007a1 1 0 0 1 0 1.414l-1.793 1.793H15a1 1 0 1 1 0 2H5.414l1.793 1.793a1 1 0 1 1-1.414 1.414l-3.5-3.5a1 1 0 0 1 0-1.414l3.5-3.5a1 1 0 0 1 1.414 0m9.586-9a1 1 0 0 1 1.414 0l3.5 3.5a1 1 0 0 1 0 1.414l-3.5 3.5a1 1 0 0 1-1.414-1.414l1.793-1.793H9a1 1 0 0 1 0-2h9.586l-1.793-1.793a1 1 0 0 1 0-1.414" clip-rule="evenodd"/></svg>
|
||||
|
After Width: | Height: | Size: 432 B |
1
web/src/assets/icons/app/gitea.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill="#73a952" d="M22.44 24.557c-1.314 0-2.792.1-4.456.443c-1.772.343-6.835 1.5-10.958 5.46C-2.16 38.617.191 51.655.48 53.608c.343 2.35 1.374 9.005 6.438 14.755c9.294 11.429 29.402 11.14 29.402 11.14s2.477 5.912 6.257 11.301c5.117 6.709 10.343 12.007 15.388 12.64h38.462s2.477 0 5.75-2.116c2.875-1.718 5.39-4.774 5.39-4.774s2.64-2.82 6.31-9.24c1.157-1.953 2.061-3.906 2.875-5.678c0 0 11.248-23.833 11.248-47.087c-.326-6.98-2.044-8.246-2.442-8.644c-.868-.868-1.953-.796-1.953-.796s-23.887 1.32-36.22 1.61c-2.693.054-5.388.108-8.046.108v23.887c-1.157-.524-2.242-1.084-3.382-1.609V26.881c-5.913.054-18.136-.453-18.136-.453S28.997 25 25.904 24.712c-1.003-.055-2.152-.154-3.465-.154m2.398 9.756s1.428 12.115 3.218 19.167c1.5 5.968 5.045 15.84 5.045 15.84s-5.334-.65-8.77-1.862c-5.28-1.718-7.522-3.797-7.522-3.797s-3.906-2.749-5.86-8.101c-3.326-9.078-.288-14.52-.288-14.52s1.717-4.594 7.866-6.095c2.82-.741 6.31-.632 6.31-.632M68.4 48.02c1.5-.08 3.036.668 3.036.668l4.736 2.289l-2.801 5.758c-1.375 0-2.64.687-3.274 1.899c-.687 1.266-.578 2.875.398 4.014l-5.171 10.163c-1.664 0-3.165 1.211-3.508 2.82c-.398 1.61.397 3.328 1.844 4.07c1.555.795 3.563.343 4.648-1.086c1.03-1.428.867-3.454-.344-4.701l4.882-9.982c.29 0 .742.054 1.266-.109a3.1 3.1 0 0 0 1.429-.74c.868.343 1.771.74 2.694 1.265c.976.524 1.899.976 2.748 1.5c.181.11.344.236.579.399c.344.289.687.633.977 1.157c.397 1.157-.398 3.038-.398 3.038c-.452 1.555-3.725 8.264-3.725 8.264c-1.664-.055-3.093 1.03-3.617 2.531c-.524 1.664.235 3.508 1.845 4.358s3.562.344 4.593-1.085c1.03-1.374.922-3.327-.236-4.593c.398-.741.742-1.5 1.158-2.296c1.03-2.116 2.748-6.203 2.748-6.203c.181-.343 1.158-2.115.58-4.358c-.525-2.296-2.587-3.381-2.587-3.381c-2.477-1.61-5.967-3.092-5.967-3.092s0-.868-.235-1.429a3.7 3.7 0 0 0-.796-1.266c.943-1.884 1.836-3.772 2.775-5.705l15.326 7.405s2.586 1.158 3.092 3.273c.398 1.501-.108 2.875-.343 3.508c-1.339 3.093-11.284 22.965-11.284 22.965s-1.266 2.93-4.014 3.165c-1.212.054-2.116-.235-2.116-.235s-.054 0-1.085-.398L55.29 80.677s-2.242-1.158-2.586-3.165c-.452-1.663.578-3.67.578-3.67l11.085-22.803s.977-1.953 2.478-2.64c.108-.054.452-.235.922-.29q.313-.072.635-.089"/></svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
1
web/src/assets/icons/app/memcached.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><defs><radialGradient id="SVGSEhoJd3u" cx="62.417" cy="142.923" r="9.213" fx="62.417" fy="142.923" gradientTransform="matrix(.50523 0 0 .50521 23.143 23.805)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#db7c7c"/><stop offset="1" stop-color="#c83737"/></radialGradient><radialGradient id="SVGUnHhmetz" cx="96.726" cy="142.923" r="9.213" fx="96.726" fy="142.923" gradientTransform="matrix(.50523 0 0 .50521 23.143 23.805)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#db7c7c"/><stop offset="1" stop-color="#c83737"/></radialGradient><linearGradient id="SVGrSgGrc9I" x1="255.894" x2="255.894" y1="59.789" y2="-452" gradientTransform="translate(0 113.047)scale(.25011)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#574c4a"/><stop offset="1" stop-color="#80716d"/></linearGradient><linearGradient id="SVGSzIYieyd" x1="380.442" x2="191.971" y1="-51.758" y2="-382.305" gradientTransform="translate(0 113.047)scale(.25011)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#268d83"/><stop offset="1" stop-color="#2ea19e"/></linearGradient><clipPath id="SVGfax5Td9w"><use href="#SVGBOpdMdAK"/></clipPath><mask id="SVGXflP0KwS"><g filter="url(#SVGGix2PJLz)"><use href="#SVGBOpdMdAK" fill-opacity="0.102"/></g></mask><mask id="SVGf4VJrbCn"><g filter="url(#SVGGix2PJLz)"><use href="#SVGBOpdMdAK" fill-opacity="0.302"/></g></mask><g id="SVGQnJzfcvn" clip-path="url(#SVGfax5Td9w)"><path d="M99.457 25.453c2.84 19.211 3.5 37.649 3.453 51.383c-.055 14.047-.86 23.176-.86 23.176H85.493l-1.777 1.332h19.668s3.293-37.332-3-77.207Zm-52.113-.484c5.164 5.746 14.105 21 15.328 21c-3.274-4.188-11.32-17.555-15.328-21m-7.375 19.457c-5.586.152 1.129 45.629 3 55.586H25.8l-1.164 1.332H44.3c-1.86-9.903-8.516-54.977-3.082-55.582c-.504-.762-.946-1.285-1.25-1.336Zm45.418 0c-2.992.476-16.664 38.586-16.664 38.586s-3.012-.375-6.043-.375c-1.793 0-3.336.11-4.38.207l-.323 1.5s3.007-.375 6.039-.375c3.03 0 6.043.375 6.043.375s13.57-37.86 16.625-38.582c-.329-.836-.735-1.32-1.293-1.336Zm0 0"/></g><g id="SVGpwY6AbNU" clip-path="url(#SVGfax5Td9w)"><path fill="#fff" d="M27.637 24.137c-6.293 39.875-3.004 77.207-3.004 77.207l1.16-1.305c-.594-8.809-2.176-40.66 3.176-74.57h18.207c.383.004.898.316 1.5.832c-1.192-1.328-2.184-2.16-2.832-2.168Zm54.543 0C78.71 24.176 65.527 47.3 64.012 47.3c.617.793 1.12 1.336 1.332 1.336c1.515 0 14.703-23.125 18.168-23.164h16.07l.805-1.336ZM42.555 47.094c4.422 6.644 15.414 37.25 15.414 37.25l.324-1.492c-2.715-7.442-13.059-35.344-15.656-35.758c-.028 0-.055-.004-.082 0m45.5 0c2.965 7.566-2.653 45.293-4.336 54.246l1.785-1.39c2.281-13.36 7.762-52.72 2.55-52.856Zm0 0"/></g><filter id="SVGGix2PJLz" width="1" height="1" x="0" y="0" filterUnits="objectBoundingBox"><feColorMatrix in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/></filter><path id="SVGBOpdMdAK" d="M0 0h128v128H0z"/></defs><path fill="url(#SVGrSgGrc9I)" d="M0 86.488V41.512C0 5.187 5.184 0 41.474 0h45.06C122.82 0 128 5.188 128 41.512v44.976C128 122.813 122.816 128 86.53 128H41.47C5.184 128 0 122.812 0 86.488m0 0"/><path fill="url(#SVGSzIYieyd)" d="M27.634 24.137c-6.29 39.875-3 77.207-3 77.207h19.668c-1.871-9.957-8.586-55.434-3-55.586c2.992.476 16.669 38.586 16.669 38.586s3.011-.38 6.039-.38c3.031 0 6.043.38 6.043.38s13.676-38.11 16.668-38.586c5.587.152-1.129 45.629-2.996 55.586h19.665s3.293-37.336-3-77.211H82.182C78.717 24.176 65.53 47.3 64.014 47.3S49.31 24.175 45.845 24.136zm0 0"/><path fill="url(#SVGSEhoJd3u)" d="M60.13 96.691a4.65 4.65 0 0 1-4.652 4.653a4.654 4.654 0 0 1 0-9.309a4.655 4.655 0 0 1 4.653 4.656zm0 0"/><path fill="url(#SVGUnHhmetz)" d="M77.198 96.691a4.65 4.65 0 1 1-9.301 0a4.652 4.652 0 1 1 9.305 0zm0 0"/><use href="#SVGQnJzfcvn" mask="url(#SVGXflP0KwS)" transform="scale(1.00003 1)"/><use href="#SVGpwY6AbNU" mask="url(#SVGf4VJrbCn)" transform="scale(1.00003 1)"/></svg>
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
1
web/src/assets/icons/app/minio.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#CF163d" d="M13.207.006a2.16 2.16 0 0 0-1.62.582a2.15 2.15 0 0 0-.095 3.035l3.408 3.55a3.042 3.042 0 0 1-.663 4.688l-.463.239V7.285a15.42 15.42 0 0 0-8.018 10.487v.017l6.549-3.328v7.621L13.779 24V13.682l.897-.463a4.443 4.443 0 0 0 1.22-7.03l-3.37-3.525a.75.75 0 0 1 .037-1.055a.75.75 0 0 1 1.056.038l.467.486l-.006.006l4.07 4.244a.057.057 0 0 0 .082 0a.06.06 0 0 0 0-.07l-3.14-5.143l-.149.143l.149-.145C14.494.393 13.829.054 13.207.006m-.902 9.865v2.994l-4.152 2.149a14 14 0 0 1 2.767-3.928a14 14 0 0 1 1.385-1.215"/></svg>
|
||||
|
After Width: | Height: | Size: 595 B |
1
web/src/assets/icons/app/mysql.svg
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
1
web/src/assets/icons/app/nginx.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#43a047" d="M16 0L2 8v16l14 8l14-8V8Zm8 23a1 1 0 0 1-1 1h-2.52a1 1 0 0 1-.78-.375L12 14v9a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2.52a1 1 0 0 1 .78.375L20 18V9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1Z"/></svg>
|
||||
|
After Width: | Height: | Size: 278 B |
1
web/src/assets/icons/app/percona.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 250"><defs><linearGradient id="SVGuU5bTbco" x1="50%" x2="50%" y1="0%" y2="100%"><stop offset="0%" stop-color="#fbb32f"/><stop offset="50.474%" stop-color="#c11511"/><stop offset="100%" stop-color="#c11411"/></linearGradient></defs><path fill="url(#SVGuU5bTbco)" d="M128 .578C57.308.578 0 56.413 0 125.29c0 43.086 22.427 81.066 56.526 103.47V125.354c-.001-.158-.023-.31-.023-.467s.022-.31.023-.468v-.877h.043c.701-40.146 32.335-72.48 71.323-72.48c39.427 0 71.388 33.052 71.388 73.825c0 40.772-31.961 73.825-71.388 73.825c-15.356 0-29.543-5.062-41.187-13.592v58.207A130.8 130.8 0 0 0 128 250c70.692 0 128-55.835 128-124.71C256 56.412 198.692.577 128 .577"/><path fill="#fcb42f" d="M171.197 127.472c0 23.59-19.123 42.713-42.713 42.713S85.77 151.062 85.77 127.472s19.124-42.713 42.714-42.713s42.713 19.123 42.713 42.713"/></svg>
|
||||
|
After Width: | Height: | Size: 881 B |
1
web/src/assets/icons/app/phpmyadmin.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#F89C0E" d="M5.463 3.476C6.69 5.225 7.497 7.399 7.68 9.798a12.9 12.9 0 0 1-.672 5.254a4.3 4.3 0 0 1 2.969-1.523l.148-.008c.08-.491.47-3.45-.977-6.68c-1.068-2.386-3-3.16-3.685-3.365m1.777.037s2.406 1.066 3.326 5.547c.607 2.955.049 4.836-.402 5.773a7.35 7.35 0 0 1 4.506-1.994c.86-.065 1.695.02 2.482.233c-.1-.741-.593-3.414-2.732-5.92c-3.263-3.823-7.18-3.64-7.18-3.64Zm14.817 9.701l-17.92 3.049a2.28 2.28 0 0 1 1.535 2.254a2.3 2.3 0 0 1-.106.61c.055-.027 2.689-1.275 6.342-2.034c3.238-.673 5.723-.36 6.285-.273a6.46 6.46 0 0 1 3.864-3.606m-6.213 4.078c-2.318 0-4.641.495-6.614 1.166c-2.868.976-2.951 1.348-5.55 1.043C1.844 19.286 0 18.386 0 18.386s2.406 1.97 4.914 2.127c1.986.125 3.505-.822 5.315-1.414c2.661-.871 4.511-.97 6.253-.975C19.361 18.116 24 19.353 24 19.353s-2.11-1.044-5.033-1.72a14 14 0 0 0-3.123-.34Z"/></svg>
|
||||
|
After Width: | Height: | Size: 895 B |
1
web/src/assets/icons/app/podman.svg
Normal file
|
After Width: | Height: | Size: 15 KiB |
1
web/src/assets/icons/app/postgresql.svg
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
1
web/src/assets/icons/app/pureftpd.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#333" d="M13 19h1a1 1 0 0 1 1 1h7v2h-7a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1H2v-2h7a1 1 0 0 1 1-1h1v-2H4a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-7zM4 3h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1m5 4h1V5H9zm0 8h1v-2H9zM5 5v2h2V5zm0 8v2h2v-2z"/></svg>
|
||||
|
After Width: | Height: | Size: 361 B |
1
web/src/assets/icons/app/redis.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill="#a41e11" d="M121.8 93.1c-6.7 3.5-41.4 17.7-48.8 21.6s-11.5 3.8-17.3 1S13 98.1 6.3 94.9c-3.3-1.6-5-2.9-5-4.2V78s48-10.5 55.8-13.2c7.8-2.8 10.4-2.9 17-.5s46.1 9.5 52.6 11.9v12.5c0 1.3-1.5 2.7-4.9 4.4"/><path fill="#d82c20" d="M121.8 80.5C115.1 84 80.4 98.2 73 102.1s-11.5 3.8-17.3 1S13 85.4 6.3 82.2C-.3 79-.5 76.8 6 74.3c6.5-2.6 43.2-17 51-19.7c7.8-2.8 10.4-2.9 17-.5s41.1 16.1 47.6 18.5c6.7 2.4 6.9 4.4.2 7.9"/><path fill="#a41e11" d="M121.8 72.5C115.1 76 80.4 90.2 73 94.1c-7.4 3.8-11.5 3.8-17.3 1S13 77.4 6.3 74.2c-3.3-1.6-5-2.9-5-4.2V57.3s48-10.5 55.8-13.2c7.8-2.8 10.4-2.9 17-.5s46.1 9.5 52.6 11.9V68c0 1.3-1.5 2.7-4.9 4.5"/><path fill="#d82c20" d="M121.8 59.8c-6.7 3.5-41.4 17.7-48.8 21.6c-7.4 3.8-11.5 3.8-17.3 1S13 64.7 6.3 61.5s-6.8-5.4-.3-7.9c6.5-2.6 43.2-17 51-19.7c7.8-2.8 10.4-2.9 17-.5s41.1 16.1 47.6 18.5c6.7 2.4 6.9 4.4.2 7.9"/><path fill="#a41e11" d="M121.8 51c-6.7 3.5-41.4 17.7-48.8 21.6c-7.4 3.8-11.5 3.8-17.3 1C49.9 70.9 13 56 6.3 52.8c-3.3-1.6-5.1-2.9-5.1-4.2V35.9s48-10.5 55.8-13.2c7.8-2.8 10.4-2.9 17-.5s46.1 9.5 52.6 11.9v12.5c.1 1.3-1.4 2.6-4.8 4.4"/><path fill="#d82c20" d="M121.8 38.3C115.1 41.8 80.4 56 73 59.9c-7.4 3.8-11.5 3.8-17.3 1S13 43.3 6.3 40.1s-6.8-5.4-.3-7.9c6.5-2.6 43.2-17 51-19.7c7.8-2.8 10.4-2.9 17-.5s41.1 16.1 47.6 18.5c6.7 2.4 6.9 4.4.2 7.8"/><path fill="#fff" d="m80.4 26.1l-10.8 1.2l-2.5 5.8l-3.9-6.5l-12.5-1.1l9.3-3.4l-2.8-5.2l8.8 3.4l8.2-2.7L72 23zM66.5 54.5l-20.3-8.4l29.1-4.4z"/><ellipse cx="38.4" cy="35.4" fill="#fff" rx="15.5" ry="6"/><path fill="#7a0c00" d="m93.3 27.7l17.2 6.8l-17.2 6.8z"/><path fill="#ad2115" d="m74.3 35.3l19-7.6v13.6l-1.9.8z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
1
web/src/assets/icons/app/rsync.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#333" d="m10 4l2 2h8a2 2 0 0 1 2 2v3.5a7 7 0 0 0-2-.5V8H4v10h9c.07.7.24 1.38.5 2H4a2 2 0 0 1-2-2V6c0-1.11.89-2 2-2zm9 8v1.5a4 4 0 0 1 4 4c0 .82-.25 1.58-.67 2.21l-1.09-1.09c.17-.34.26-.72.26-1.12A2.5 2.5 0 0 0 19 15v1.5l-2.25-2.25l-.03-.03c.06-.05.13-.09 2.28-2.22m0 11v-1.5a4 4 0 0 1-4-4c0-.82.25-1.58.67-2.21l1.09 1.09c-.17.34-.26.72-.26 1.12A2.5 2.5 0 0 0 19 20v-1.5l2.25 2.25l.03.03c-.06.05-.13.09-2.28 2.22"/></svg>
|
||||
|
After Width: | Height: | Size: 492 B |
1
web/src/assets/icons/app/s3fs.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#ffb300" d="m13.844 7.536l-1.288-1.072A2 2 0 0 0 11.276 6H4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2H15.124a2 2 0 0 1-1.28-.464"/><path fill="#ffecb3" d="M27.881 19.23a6.591 6.591 0 0 0-12.308-1.76a5.278 5.278 0 0 0 .572 10.525h11.428a4.388 4.388 0 0 0 .308-8.766Z"/></svg>
|
||||
|
After Width: | Height: | Size: 369 B |
1
web/src/assets/icons/app/supervisor.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#333" d="M3 4v12h18V4zm0-2h18a2 2 0 0 1 2 2v12c0 .53-.21 1.04-.59 1.41c-.37.38-.88.59-1.41.59h-7v2h2v2H8v-2h2v-2H3c-.53 0-1.04-.21-1.41-.59C1.21 17.04 1 16.53 1 16V4c0-1.11.89-2 2-2m7.84 6.93c.31-.3.73-.48 1.16-.48c.43.01.85.18 1.16.49c.3.3.48.72.48 1.15c0 .44-.18.85-.48 1.16c-.31.31-.73.48-1.16.48s-.85-.18-1.16-.48c-.3-.31-.48-.72-.48-1.16c0-.43.18-.85.48-1.16M10.07 12a2.68 2.68 0 0 0 3.86 0c.51-.5.8-1.19.8-1.91s-.29-1.42-.8-1.93s-1.21-.8-1.93-.8s-1.42.29-1.93.8s-.8 1.21-.8 1.93s.29 1.41.8 1.91M6 10.09A6.45 6.45 0 0 1 12 6c2.73 0 5.06 1.7 6 4.09a6.42 6.42 0 0 1-6 4.09c-2.73 0-5.06-1.68-6-4.09"/></svg>
|
||||
|
After Width: | Height: | Size: 681 B |
1
web/src/assets/icons/environment/environment.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#333" d="M7 17v3q0 .425-.288.713T6 21t-.712-.288T5 20v-3H4q-.425 0-.712-.288T3 16t.288-.712T4 15h1v-4.15l-2 1.525q-.35.25-.75.213T1.6 12.2t-.2-.75t.4-.65l8.975-6.875q.275-.2.588-.3t.637-.1t.638.1t.587.3L22.2 10.8q.325.25.388.65t-.188.75t-.65.388t-.75-.213l-2-1.525V15h1q.425 0 .713.288T21 16t-.288.713T20 17h-1v3q0 .425-.288.713T18 21t-.712-.288T17 20v-3h-4v3q0 .425-.288.713T12 21t-.712-.288T11 20v-3zm0-2h4V6.275l-4 3.05zm6 0h4V9.325l-4-3.05z"/></svg>
|
||||
|
After Width: | Height: | Size: 525 B |
1
web/src/assets/icons/environment/go.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#00acc1" d="M2 12h4v2H2zm-2 4h6v2H0zm4 4h2v2H4zm16.954-5H14v3h3.239a4.42 4.42 0 0 1-3.531 2a2.65 2.65 0 0 1-2.053-.858a2.86 2.86 0 0 1-.628-2.28A4.515 4.515 0 0 1 15.292 13a2.73 2.73 0 0 1 1.749.584l2.962-1.185A5.6 5.6 0 0 0 15.292 10a7.526 7.526 0 0 0-7.243 6.5a5.614 5.614 0 0 0 5.659 6.5a7.526 7.526 0 0 0 7.243-6.5a6.4 6.4 0 0 0 .003-1.5"/><path fill="#00acc1" d="M26.292 10a7.526 7.526 0 0 0-7.243 6.5a5.614 5.614 0 0 0 5.659 6.5a7.526 7.526 0 0 0 7.243-6.5a5.614 5.614 0 0 0-5.659-6.5m2.681 6.137A4.515 4.515 0 0 1 24.708 20a2.65 2.65 0 0 1-2.053-.858a2.86 2.86 0 0 1-.628-2.28A4.515 4.515 0 0 1 26.292 13a2.65 2.65 0 0 1 2.053.858a2.86 2.86 0 0 1 .628 2.28Z"/></svg>
|
||||
|
After Width: | Height: | Size: 745 B |
1
web/src/assets/icons/environment/java.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill="#0074bd" d="M47.617 98.12s-4.767 2.774 3.397 3.71c9.892 1.13 14.947.968 25.845-1.092c0 0 2.871 1.795 6.873 3.351c-24.439 10.47-55.308-.607-36.115-5.969m-2.988-13.665s-5.348 3.959 2.823 4.805c10.567 1.091 18.91 1.18 33.354-1.6c0 0 1.993 2.025 5.132 3.131c-29.542 8.64-62.446.68-41.309-6.336"/><path fill="#ea2d2e" d="M69.802 61.271c6.025 6.935-1.58 13.17-1.58 13.17s15.289-7.891 8.269-17.777c-6.559-9.215-11.587-13.792 15.635-29.58c0 .001-42.731 10.67-22.324 34.187"/><path fill="#0074bd" d="M102.123 108.229s3.529 2.91-3.888 5.159c-14.102 4.272-58.706 5.56-71.094.171c-4.451-1.938 3.899-4.625 6.526-5.192c2.739-.593 4.303-.485 4.303-.485c-4.953-3.487-32.013 6.85-13.743 9.815c49.821 8.076 90.817-3.637 77.896-9.468M49.912 70.294s-22.686 5.389-8.033 7.348c6.188.828 18.518.638 30.011-.326c9.39-.789 18.813-2.474 18.813-2.474s-3.308 1.419-5.704 3.053c-23.042 6.061-67.544 3.238-54.731-2.958c10.832-5.239 19.644-4.643 19.644-4.643m40.697 22.747c23.421-12.167 12.591-23.86 5.032-22.285c-1.848.385-2.677.72-2.677.72s.688-1.079 2-1.543c14.953-5.255 26.451 15.503-4.823 23.725c0-.002.359-.327.468-.617"/><path fill="#ea2d2e" d="M76.491 1.587S89.459 14.563 64.188 34.51c-20.266 16.006-4.621 25.13-.007 35.559c-11.831-10.673-20.509-20.07-14.688-28.815C58.041 28.42 81.722 22.195 76.491 1.587"/><path fill="#0074bd" d="M52.214 126.021c22.476 1.437 57-.8 57.817-11.436c0 0-1.571 4.032-18.577 7.231c-19.186 3.612-42.854 3.191-56.887.874c0 .001 2.875 2.381 17.647 3.331"/></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
1
web/src/assets/icons/environment/nodejs.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#8bc34a" d="M16 20.003v2h4a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-2v-2h4v-2h-4a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2v2Z"/><path fill="#8bc34a" d="m16 3.003l-12 7v14l4 2h6v-13.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v11.5H8l-2-1.034V11.15l10-5.833l10 5.833v11.703l-10 5.833l-1.745-1.022L13 29.253l3 1.75l12-7v-14Z"/></svg>
|
||||
|
After Width: | Height: | Size: 377 B |
1
web/src/assets/icons/environment/php.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><g fill="none"><rect width="256" height="256" fill="#777BB3" rx="60"/><path fill="#fff" d="M49.158 100.246h28.408q12.507.106 18.126 7.208q5.618 7.101 3.71 19.398q-.742 5.618-3.286 11.024q-2.438 5.406-6.784 9.752q-5.3 5.511-11.342 6.996q-6.043 1.484-12.508 1.484h-12.72l-4.028 20.14H34zM61.56 112.33l-6.36 31.8q.636.106 1.272.106h1.484q10.177.106 16.96-2.014q6.784-2.226 9.116-15.476q1.908-11.13-3.816-12.826q-5.618-1.695-14.098-1.59q-1.271.106-2.438.106h-2.226zM116.186 80h14.628l-4.134 20.246h13.144q10.811.213 16.112 4.452q5.406 4.24 3.18 16.112l-7.102 35.298h-14.84l6.784-33.708q1.059-5.3-.636-7.526t-7.314-2.226l-11.766-.106l-8.692 43.566h-14.628zm58.638 20.246h28.408q12.507.106 18.126 7.208q5.618 7.101 3.71 19.398q-.742 5.618-3.286 11.024q-2.438 5.406-6.784 9.752q-5.3 5.511-11.342 6.996q-6.043 1.484-12.508 1.484h-12.72l-4.028 20.14h-14.734zm12.402 12.084l-6.36 31.8q.636.106 1.272.106h1.484q10.177.106 16.96-2.014q6.784-2.226 9.116-15.476q1.908-11.13-3.816-12.826q-5.618-1.695-14.098-1.59q-1.272.106-2.438.106h-2.226z"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
web/src/assets/icons/environment/python.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 255"><defs><linearGradient id="SVGsGm35cjP" x1="12.959%" x2="79.639%" y1="12.039%" y2="78.201%"><stop offset="0%" stop-color="#387eb8"/><stop offset="100%" stop-color="#366994"/></linearGradient><linearGradient id="SVGSvQaLchT" x1="19.128%" x2="90.742%" y1="20.579%" y2="88.429%"><stop offset="0%" stop-color="#ffe052"/><stop offset="100%" stop-color="#ffc331"/></linearGradient></defs><path fill="url(#SVGsGm35cjP)" d="M126.916.072c-64.832 0-60.784 28.115-60.784 28.115l.072 29.128h61.868v8.745H41.631S.145 61.355.145 126.77c0 65.417 36.21 63.097 36.21 63.097h21.61v-30.356s-1.165-36.21 35.632-36.21h61.362s34.475.557 34.475-33.319V33.97S194.67.072 126.916.072M92.802 19.66a11.12 11.12 0 0 1 11.13 11.13a11.12 11.12 0 0 1-11.13 11.13a11.12 11.12 0 0 1-11.13-11.13a11.12 11.12 0 0 1 11.13-11.13"/><path fill="url(#SVGSvQaLchT)" d="M128.757 254.126c64.832 0 60.784-28.115 60.784-28.115l-.072-29.127H127.6v-8.745h86.441s41.486 4.705 41.486-60.712c0-65.416-36.21-63.096-36.21-63.096h-21.61v30.355s1.165 36.21-35.632 36.21h-61.362s-34.475-.557-34.475 33.32v56.013s-5.235 33.897 62.518 33.897m34.114-19.586a11.12 11.12 0 0 1-11.13-11.13a11.12 11.12 0 0 1 11.13-11.131a11.12 11.12 0 0 1 11.13 11.13a11.12 11.12 0 0 1-11.13 11.13"/></svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -1,11 +1,22 @@
|
||||
import { icons as mdi } from '@iconify-json/mdi'
|
||||
import { icons as simpleIcons } from '@iconify-json/simple-icons'
|
||||
import { addCollection, Icon } from '@iconify/vue'
|
||||
|
||||
import { NIcon } from 'naive-ui'
|
||||
|
||||
addCollection(mdi)
|
||||
addCollection(simpleIcons)
|
||||
|
||||
const localIcons = import.meta.glob<string>('@/assets/icons/**/*.svg', {
|
||||
eager: true,
|
||||
query: '?raw',
|
||||
import: 'default'
|
||||
})
|
||||
|
||||
function getLocalIconSvg(type: string, icon: string): string {
|
||||
const path = `/src/assets/icons/${type}/${icon}.svg`
|
||||
const defaultPath = `/src/assets/icons/${type}/${type}.svg`
|
||||
|
||||
return localIcons[path] ?? localIcons[defaultPath] ?? ''
|
||||
}
|
||||
|
||||
interface Props {
|
||||
size?: number
|
||||
@@ -16,3 +27,9 @@ interface Props {
|
||||
export function renderIcon(icon: string, props: Props = { size: 12 }) {
|
||||
return () => h(NIcon, props, { default: () => h(Icon, { icon }) })
|
||||
}
|
||||
|
||||
export function renderLocalIcon(type: string, icon: string, props: Props = { size: 12 }) {
|
||||
console.log('type, icon', type, icon)
|
||||
const svgContent = getLocalIconSvg(type, icon)
|
||||
return () => h(NIcon, { ...props, innerHTML: svgContent })
|
||||
}
|
||||
|
||||
@@ -3,14 +3,13 @@ defineOptions({
|
||||
name: 'app-index'
|
||||
})
|
||||
|
||||
import VersionModal from '@/views/app/VersionModal.vue'
|
||||
|
||||
import { NButton, NDataTable, NFlex, NPopconfirm, NSwitch } from 'naive-ui'
|
||||
import { useGettext } from 'vue3-gettext'
|
||||
|
||||
import app from '@/api/panel/app'
|
||||
import TheIcon from '@/components/custom/TheIcon.vue'
|
||||
import { router } from '@/router'
|
||||
import { renderLocalIcon } from '@/utils'
|
||||
import VersionModal from '@/views/app/VersionModal.vue'
|
||||
|
||||
const { $gettext } = useGettext()
|
||||
|
||||
@@ -25,10 +24,7 @@ const columns: any = [
|
||||
width: 80,
|
||||
align: 'center',
|
||||
render(row: any) {
|
||||
return h(TheIcon, {
|
||||
icon: row.icon,
|
||||
size: 26
|
||||
})
|
||||
return renderLocalIcon('app', row.slug, { size: 26 })()
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -7,11 +7,11 @@ import { NButton } from 'naive-ui'
|
||||
import { useGettext } from 'vue3-gettext'
|
||||
|
||||
import app from '@/api/panel/app'
|
||||
import InstallView from '@/views/app/InstallView.vue'
|
||||
import AllView from '@/views/app/AllView.vue'
|
||||
|
||||
const { $gettext } = useGettext()
|
||||
|
||||
const currentTab = ref('installed')
|
||||
const currentTab = ref('environment')
|
||||
|
||||
const handleUpdateCache = () => {
|
||||
useRequest(app.updateCache()).onSuccess(() => {
|
||||
@@ -25,9 +25,8 @@ const handleUpdateCache = () => {
|
||||
<template #tabbar>
|
||||
<div class="flex items-center justify-between">
|
||||
<n-tabs v-model:value="currentTab" animated class="flex-1">
|
||||
<n-tab name="installed" :tab="$gettext('Installed')" />
|
||||
<n-tab name="install" :tab="$gettext('Install')" />
|
||||
<n-tab name="environment" :tab="$gettext('Environment')" />
|
||||
<n-tab name="all" :tab="$gettext('All')" />
|
||||
<n-tab name="compose" :tab="$gettext('Compose Templates')" />
|
||||
</n-tabs>
|
||||
<n-button v-if="currentTab != 'installed'" type="primary" @click="handleUpdateCache">
|
||||
@@ -35,6 +34,6 @@ const handleUpdateCache = () => {
|
||||
</n-button>
|
||||
</div>
|
||||
</template>
|
||||
<install-view v-if="currentTab === 'install'" />
|
||||
<all-view v-if="currentTab === 'all'" />
|
||||
</common-page>
|
||||
</template>
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Code Server',
|
||||
icon: 'simple-icons:coder',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Docker',
|
||||
icon: 'simple-icons:docker',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Fail2ban Manager',
|
||||
icon: 'mdi:wall-fire',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Frp Manager',
|
||||
icon: 'mdi:swap-horizontal',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Gitea',
|
||||
icon: 'simple-icons:gitea',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Memcached',
|
||||
icon: 'mdi:memory',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Minio',
|
||||
icon: 'simple-icons:minio',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -13,8 +13,7 @@ export default {
|
||||
path: '',
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Percona (MySQL)',
|
||||
icon: 'simple-icons:mysql',
|
||||
title: 'MySQL',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -13,8 +13,7 @@ export default {
|
||||
path: '',
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'OpenResty (Nginx)',
|
||||
icon: 'simple-icons:nginx',
|
||||
title: 'Nginx',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'PHP 7.4',
|
||||
icon: 'simple-icons:php',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'PHP 8.0',
|
||||
icon: 'simple-icons:php',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'PHP 8.1',
|
||||
icon: 'simple-icons:php',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'PHP 8.2',
|
||||
icon: 'simple-icons:php',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'PHP 8.3',
|
||||
icon: 'simple-icons:php',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'PHP 8.4',
|
||||
icon: 'simple-icons:php',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'phpMyAdmin',
|
||||
icon: 'simple-icons:phpmyadmin',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Podman',
|
||||
icon: 'simple-icons:podman',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'PostgreSQL',
|
||||
icon: 'simple-icons:postgresql',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Pure-FTPd',
|
||||
icon: 'mdi:server-network',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Redis',
|
||||
icon: 'simple-icons:redis',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Rsync Manager',
|
||||
icon: 'mdi:folder-sync-outline',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'S3fs Manager',
|
||||
icon: 'mdi:dns-outline',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export default {
|
||||
component: () => import('./IndexView.vue'),
|
||||
meta: {
|
||||
title: 'Supervisor Manager',
|
||||
icon: 'mdi:monitor-dashboard',
|
||||
role: ['admin'],
|
||||
requireAuth: true
|
||||
}
|
||||
|
||||