release 0.7.0 update plugin
|
@ -1,3 +1,9 @@
|
||||||
|
## 0.7.0 release on 2023-06-20
|
||||||
|
|
||||||
|
appstore 增加 更新功能
|
||||||
|
myapps 功能优化
|
||||||
|
新增 settings(设置) 功能
|
||||||
|
|
||||||
## 0.6.0 release on 2023-06-17
|
## 0.6.0 release on 2023-06-17
|
||||||
|
|
||||||
1. 上架 wordpress
|
1. 上架 wordpress
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
{
|
{
|
||||||
"files": {
|
"files": {
|
||||||
"main.css": "./static/css/main.751babb1.css",
|
"main.css": "./static/css/main.751babb1.css",
|
||||||
"main.js": "./static/js/main.83bb9e80.js",
|
"main.js": "./static/js/main.4fc2aa4d.js",
|
||||||
"static/js/974.f51aca78.chunk.js": "./static/js/974.f51aca78.chunk.js",
|
"static/js/81.f1142d28.chunk.js": "./static/js/81.f1142d28.chunk.js",
|
||||||
"static/js/376.0505e571.chunk.js": "./static/js/376.0505e571.chunk.js",
|
"static/js/376.0505e571.chunk.js": "./static/js/376.0505e571.chunk.js",
|
||||||
"static/js/426.910887ac.chunk.js": "./static/js/426.910887ac.chunk.js",
|
"static/js/426.910887ac.chunk.js": "./static/js/426.910887ac.chunk.js",
|
||||||
"static/js/912.a5b53472.chunk.js": "./static/js/912.a5b53472.chunk.js",
|
"static/js/912.3c7e5556.chunk.js": "./static/js/912.3c7e5556.chunk.js",
|
||||||
"static/js/355.acf76242.chunk.js": "./static/js/355.acf76242.chunk.js",
|
"static/js/423.66878bf7.chunk.js": "./static/js/423.66878bf7.chunk.js",
|
||||||
|
"static/js/111.ae85bc5c.chunk.js": "./static/js/111.ae85bc5c.chunk.js",
|
||||||
"static/js/640.925ab75f.chunk.js": "./static/js/640.925ab75f.chunk.js",
|
"static/js/640.925ab75f.chunk.js": "./static/js/640.925ab75f.chunk.js",
|
||||||
"static/media/materialdesignicons-webfont.eot": "./static/media/materialdesignicons-webfont.e044ed23c047e571c550.eot",
|
"static/media/materialdesignicons-webfont.eot": "./static/media/materialdesignicons-webfont.e044ed23c047e571c550.eot",
|
||||||
"static/media/materialdesignicons-webfont.ttf?v=6.5.95": "./static/media/materialdesignicons-webfont.5d42b4e60858731e7b65.ttf",
|
"static/media/materialdesignicons-webfont.ttf?v=6.5.95": "./static/media/materialdesignicons-webfont.5d42b4e60858731e7b65.ttf",
|
||||||
|
@ -44,16 +45,17 @@
|
||||||
"static/media/logo-sm.svg": "./static/media/logo-sm.53b8ca70620b0b2968874a3660f195dd.svg",
|
"static/media/logo-sm.svg": "./static/media/logo-sm.53b8ca70620b0b2968874a3660f195dd.svg",
|
||||||
"index.html": "./index.html",
|
"index.html": "./index.html",
|
||||||
"main.751babb1.css.map": "./static/css/main.751babb1.css.map",
|
"main.751babb1.css.map": "./static/css/main.751babb1.css.map",
|
||||||
"main.83bb9e80.js.map": "./static/js/main.83bb9e80.js.map",
|
"main.4fc2aa4d.js.map": "./static/js/main.4fc2aa4d.js.map",
|
||||||
"974.f51aca78.chunk.js.map": "./static/js/974.f51aca78.chunk.js.map",
|
"81.f1142d28.chunk.js.map": "./static/js/81.f1142d28.chunk.js.map",
|
||||||
"376.0505e571.chunk.js.map": "./static/js/376.0505e571.chunk.js.map",
|
"376.0505e571.chunk.js.map": "./static/js/376.0505e571.chunk.js.map",
|
||||||
"426.910887ac.chunk.js.map": "./static/js/426.910887ac.chunk.js.map",
|
"426.910887ac.chunk.js.map": "./static/js/426.910887ac.chunk.js.map",
|
||||||
"912.a5b53472.chunk.js.map": "./static/js/912.a5b53472.chunk.js.map",
|
"912.3c7e5556.chunk.js.map": "./static/js/912.3c7e5556.chunk.js.map",
|
||||||
"355.acf76242.chunk.js.map": "./static/js/355.acf76242.chunk.js.map",
|
"423.66878bf7.chunk.js.map": "./static/js/423.66878bf7.chunk.js.map",
|
||||||
|
"111.ae85bc5c.chunk.js.map": "./static/js/111.ae85bc5c.chunk.js.map",
|
||||||
"640.925ab75f.chunk.js.map": "./static/js/640.925ab75f.chunk.js.map"
|
"640.925ab75f.chunk.js.map": "./static/js/640.925ab75f.chunk.js.map"
|
||||||
},
|
},
|
||||||
"entrypoints": [
|
"entrypoints": [
|
||||||
"static/css/main.751babb1.css",
|
"static/css/main.751babb1.css",
|
||||||
"static/js/main.83bb9e80.js"
|
"static/js/main.4fc2aa4d.js"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -1 +1 @@
|
||||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><script type="text/javascript" src="../base1/cockpit.js"></script><script type="text/javascript" src="../*/po.js"></script><link rel="manifest" href="./manifest.json"/><title>App Store</title><script defer="defer" src="./static/js/main.83bb9e80.js"></script><link href="./static/css/main.751babb1.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root" style="height:100%"></div></body></html>
|
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><script type="text/javascript" src="../base1/cockpit.js"></script><script type="text/javascript" src="../*/po.js"></script><link rel="manifest" href="./manifest.json"/><title>App Store</title><script defer="defer" src="./static/js/main.4fc2aa4d.js"></script><link href="./static/css/main.751babb1.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root" style="height:100%"></div></body></html>
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"menu": {
|
"menu": {
|
||||||
"appstore": {
|
"appstore": {
|
||||||
"label": "App Store",
|
"label": "App Store",
|
||||||
|
|
|
@ -306,6 +306,18 @@
|
||||||
"Search for apps like WordPress, MySQL, GitLab, …": [
|
"Search for apps like WordPress, MySQL, GitLab, …": [
|
||||||
null,
|
null,
|
||||||
"请输入要搜索的应用名称,例如:WordPress,MySQL,GitLab, …"
|
"请输入要搜索的应用名称,例如:WordPress,MySQL,GitLab, …"
|
||||||
|
],
|
||||||
|
"The app store is already the latest version": [
|
||||||
|
null,
|
||||||
|
"应用商店已是最新版本"
|
||||||
|
],
|
||||||
|
"Update Application List": [
|
||||||
|
null,
|
||||||
|
"更新应用列表"
|
||||||
|
],
|
||||||
|
"Update Log": [
|
||||||
|
null,
|
||||||
|
"更新日志"
|
||||||
]
|
]
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
|
@ -607,6 +607,11 @@
|
||||||
"linkedFrom": {
|
"linkedFrom": {
|
||||||
"catalogCollection": {
|
"catalogCollection": {
|
||||||
"items": [
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "community",
|
||||||
|
"title": "Online Community",
|
||||||
|
"position": null
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "headless-cms",
|
"key": "headless-cms",
|
||||||
"title": "Headless CMS",
|
"title": "Headless CMS",
|
||||||
|
@ -622,11 +627,6 @@
|
||||||
"title": "Knowledge Management",
|
"title": "Knowledge Management",
|
||||||
"position": null
|
"position": null
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"key": "community",
|
|
||||||
"title": "Online Community",
|
|
||||||
"position": null
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"key": "elearning",
|
"key": "elearning",
|
||||||
"title": "eLearning",
|
"title": "eLearning",
|
||||||
|
|
|
@ -607,6 +607,11 @@
|
||||||
"linkedFrom": {
|
"linkedFrom": {
|
||||||
"catalogCollection": {
|
"catalogCollection": {
|
||||||
"items": [
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "community",
|
||||||
|
"title": "社交/论坛",
|
||||||
|
"position": null
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "headless-cms",
|
"key": "headless-cms",
|
||||||
"title": "无头 CMS",
|
"title": "无头 CMS",
|
||||||
|
@ -622,11 +627,6 @@
|
||||||
"title": "知识管理",
|
"title": "知识管理",
|
||||||
"position": null
|
"position": null
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"key": "community",
|
|
||||||
"title": "在线论坛",
|
|
||||||
"position": null
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"key": "elearning",
|
"key": "elearning",
|
||||||
"title": "在线学习",
|
"title": "在线学习",
|
||||||
|
|
|
@ -1,4 +1,453 @@
|
||||||
[
|
[
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "1SiiSlB3xSewjzjAElPRYL"
|
||||||
|
},
|
||||||
|
"key": "tky",
|
||||||
|
"hot": 10000,
|
||||||
|
"trademark": "Tyk",
|
||||||
|
"summary": "The Cloud Native API Management Platform",
|
||||||
|
"overview": "Seriously reliable, configurable, and easy to use, Tyk’s proven API management platform helps developers build, publish, and monetise APIs quickly and easily – across all kinds of on-premises environments, containers, and clouds.",
|
||||||
|
"websiteurl": "https://tyk.io/",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "3c3c3232-bc6f-47d7-a1a1-86b2fb978d0a",
|
||||||
|
"key": "Dashboard",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/tyk/tyk-gui-websoft9.svg"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "1675d02c-0f9e-43ef-84d9-27e0f5a1856f",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 1,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/tyk-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "api",
|
||||||
|
"title": "API Gateway",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "architecture",
|
||||||
|
"title": "IT Architecture"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "35gLRDwhl2s4urch7R5XJO"
|
||||||
|
},
|
||||||
|
"key": "cockroachdb",
|
||||||
|
"hot": 19000,
|
||||||
|
"trademark": "CockroachDB",
|
||||||
|
"summary": "Database designed to build, scale, and manage modern, data-intensive applications.",
|
||||||
|
"overview": "CockroachDB is a cloud-native distributed SQL database designed to build, scale, and manage modern, data-intensive applications.",
|
||||||
|
"websiteurl": "https://www.cockroachlabs.com/",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "26dc9776-776a-4848-b3e7-3ee824964a0f",
|
||||||
|
"key": "Admin UI",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/cockroachdb/cockroachdb-gui-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "166b53da-d091-4cda-9f08-77f0058fa1a0",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 1,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/mariadb-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "newsql",
|
||||||
|
"title": "NewSQL Database",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "database",
|
||||||
|
"title": "Databases"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "3Dz07ZV8UjcXB5p7cVGzHi"
|
||||||
|
},
|
||||||
|
"key": "tidb",
|
||||||
|
"hot": 19000,
|
||||||
|
"trademark": "TiDB",
|
||||||
|
"summary": "Database support Hybrid Transactional and Analytical Processing (HTAP) workloads",
|
||||||
|
"overview": "TiDB is an open-source distributed SQL database that supports Hybrid Transactional and Analytical Processing (HTAP) workloads. It is MySQL compatible and features horizontal scalability, strong consistency, and high availability.",
|
||||||
|
"websiteurl": "https://github.com/pingcap/tidb",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "26dc9776-776a-4848-b3e7-3ee824964a0f",
|
||||||
|
"key": "gui",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/tidb/tidb-gui-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "166b53da-d091-4cda-9f08-77f0058fa1a0",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 1,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/mariadb-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "newsql",
|
||||||
|
"title": "NewSQL Database",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "database",
|
||||||
|
"title": "Databases"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "4ozgGotK3ayZAMIwWAK2eX"
|
||||||
|
},
|
||||||
|
"key": "drone",
|
||||||
|
"hot": 10000,
|
||||||
|
"trademark": "Harness CI (aka Drone)",
|
||||||
|
"summary": " Container-Native Continuous Delivery Platform",
|
||||||
|
"overview": "Drone is a continuous delivery system built on container technology. Drone uses a simple YAML build file, to define and execute build pipelines inside Docker containers.",
|
||||||
|
"websiteurl": "https://drone.io/",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "e21d7f48-331d-4c76-9619-92e2974f9202",
|
||||||
|
"key": "Dashboard",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/drone/drone-gui-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "21b7b8c9-9e78-4bd1-87ab-3656e188d206",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 1,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/drone-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "container",
|
||||||
|
"title": "Container",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "architecture",
|
||||||
|
"title": "IT Architecture"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cicd",
|
||||||
|
"title": "Continuous Integration & Delivery",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "itdeveloper",
|
||||||
|
"title": "IT Developer"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "6TonQd8q8oAnb3lI3WaqY9"
|
||||||
|
},
|
||||||
|
"key": "harbor",
|
||||||
|
"hot": 10000,
|
||||||
|
"trademark": "Harbor",
|
||||||
|
"summary": "Trusted cloud native repository",
|
||||||
|
"overview": "Harbor is an open source registry that secures artifacts with policies and role-based access control, ensures images are scanned and free from vulnerabilities, and signs images as trusted. ",
|
||||||
|
"websiteurl": "https://goharbor.io/",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "e21d7f48-331d-4c76-9619-92e2974f9202",
|
||||||
|
"key": "Dashbord",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/harbor/harbor-gui-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "21b7b8c9-9e78-4bd1-87ab-3656e188d206",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 2,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/harbor-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "softwarechain",
|
||||||
|
"title": "Software supply chain",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "security",
|
||||||
|
"title": "IT Security"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "container",
|
||||||
|
"title": "Container",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "architecture",
|
||||||
|
"title": "IT Architecture"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "3hhszKLEOur4obfBqAGI8u"
|
||||||
|
},
|
||||||
|
"key": "jenkins",
|
||||||
|
"hot": null,
|
||||||
|
"trademark": "Jenkins",
|
||||||
|
"summary": "self-contained, open source automation server",
|
||||||
|
"overview": "Jenkins is an automation server for supporting practically every tool as a part of the delivery pipelines.",
|
||||||
|
"websiteurl": "https://www.jenkins.io/",
|
||||||
|
"description": "This is a repackaged Jenkins with professional support for your business. Jenkins is an automation server with an unparalleled plugin ecosystem for supporting practically every tool as a part of the delivery pipelines. You can get the Installation of Image,Administrator, Configuration of the Jenkins from this documentation.",
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "e21d7f48-331d-4c76-9619-92e2974f9202",
|
||||||
|
"key": "devops",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/jenkins/jenkins_is_the_hub_CD_Devops.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "064f9616-bcfe-4603-b90a-d0792d567f3a",
|
||||||
|
"key": "wizard",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/jenkins/jenkins-wizard3-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "21b7b8c9-9e78-4bd1-87ab-3656e188d206",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "2.406"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 2,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/jenkins-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "cicd",
|
||||||
|
"title": "Continuous Integration & Delivery",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "itdeveloper",
|
||||||
|
"title": "IT Developer"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "automation",
|
||||||
|
"title": "Automation",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "product",
|
||||||
|
"title": "Product"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "Gr5k3lusGnWgOrK5rm5px"
|
||||||
|
},
|
||||||
|
"key": "confluence",
|
||||||
|
"hot": 300,
|
||||||
|
"trademark": "Confluence",
|
||||||
|
"summary": "Create, organise and discuss work with your team",
|
||||||
|
"overview": "Confluence Server is where you create, organise and discuss work with your team. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence.",
|
||||||
|
"websiteurl": "https://www.atlassian.com/zh/software/confluence",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "5ae46e12-59e8-416d-9ea2-5b73b6fd0936",
|
||||||
|
"key": "Dashboard",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/confluence/confluence-gui-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "54029d6d-4383-4418-9d4e-29e6b8cbfd77",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 1,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/confluence-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "agile",
|
||||||
|
"title": "Agile Lifecycle Management",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "itdeveloper",
|
||||||
|
"title": "IT Developer"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "task",
|
||||||
|
"title": "Task Collaboration",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "collaboration",
|
||||||
|
"title": "Collaboration & Office"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "pms",
|
||||||
|
"title": "Project Management",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "collaboration",
|
||||||
|
"title": "Collaboration & Office"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "hPxXCOEisJk1Nx8yMBPtk"
|
||||||
|
},
|
||||||
|
"key": "humhub",
|
||||||
|
"hot": 8000,
|
||||||
|
"trademark": "HumHub",
|
||||||
|
"summary": "Open Source Enterprise Social Network",
|
||||||
|
"overview": "HumHub is an intuitive to use and modular designed open-source software, used primarily as social network, knowledge database, intranet or information and communication platform.",
|
||||||
|
"websiteurl": "https://www.humhub.com/",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "d06d6030-d645-474f-9af9-b2bae308b46c",
|
||||||
|
"key": "Interface",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/humhub/humhub-gui-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "a744765d-5fb9-419e-a6ff-17f1ef183e5f",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 1,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/humhub-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "community",
|
||||||
|
"title": "Online Community",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "cms",
|
||||||
|
"title": "Content Management"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"sys": {
|
"sys": {
|
||||||
"id": "DEOp8ynxuO4rMELqtrNRl"
|
"id": "DEOp8ynxuO4rMELqtrNRl"
|
||||||
|
@ -5440,59 +5889,6 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"sys": {
|
|
||||||
"id": "3hhszKLEOur4obfBqAGI8u"
|
|
||||||
},
|
|
||||||
"key": "jenkins",
|
|
||||||
"hot": null,
|
|
||||||
"trademark": "Jenkins",
|
|
||||||
"summary": "self-contained, open source automation server",
|
|
||||||
"overview": "Jenkins is an automation server for supporting practically every tool as a part of the delivery pipelines.",
|
|
||||||
"websiteurl": "https://www.jenkins.io/",
|
|
||||||
"description": "This is a repackaged Jenkins with professional support for your business. Jenkins is an automation server with an unparalleled plugin ecosystem for supporting practically every tool as a part of the delivery pipelines. You can get the Installation of Image,Administrator, Configuration of the Jenkins from this documentation.",
|
|
||||||
"screenshots": [
|
|
||||||
{
|
|
||||||
"id": "e21d7f48-331d-4c76-9619-92e2974f9202",
|
|
||||||
"key": "devops",
|
|
||||||
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/jenkins/jenkins_is_the_hub_CD_Devops.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "064f9616-bcfe-4603-b90a-d0792d567f3a",
|
|
||||||
"key": "wizard",
|
|
||||||
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/jenkins/jenkins-wizard3-websoft9.png"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"distribution": [
|
|
||||||
{
|
|
||||||
"id": "21b7b8c9-9e78-4bd1-87ab-3656e188d206",
|
|
||||||
"key": "Community",
|
|
||||||
"value": "2.406"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"vcpu": 1,
|
|
||||||
"memory": 2,
|
|
||||||
"storage": 1,
|
|
||||||
"logo": {
|
|
||||||
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/jenkins-websoft9.png"
|
|
||||||
},
|
|
||||||
"catalogCollection": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"key": "cicd",
|
|
||||||
"title": "Continuous Integration & Delivery",
|
|
||||||
"catalogCollection": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"key": "itdeveloper",
|
|
||||||
"title": "IT Developer"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"sys": {
|
"sys": {
|
||||||
"id": "5iI41E1ctdn7XBuv5g1oqU"
|
"id": "5iI41E1ctdn7XBuv5g1oqU"
|
||||||
|
|
|
@ -1,4 +1,453 @@
|
||||||
[
|
[
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "1SiiSlB3xSewjzjAElPRYL"
|
||||||
|
},
|
||||||
|
"key": "tky",
|
||||||
|
"hot": 10000,
|
||||||
|
"trademark": "Tyk",
|
||||||
|
"summary": "云原生 API 网关 ",
|
||||||
|
"overview": "Tyk 经过验证的 API 管理平台非常可靠、可配置且易于使用,可帮助开发人员跨各种本地环境、容器和云快速轻松地构建、发布 API",
|
||||||
|
"websiteurl": "https://tyk.io/",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "ec40efc7-139e-4056-aa9a-7b0907b612f4",
|
||||||
|
"key": "Dashboard",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/tyk/tyk-gui-websoft9.svg"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "1675d02c-0f9e-43ef-84d9-27e0f5a1856f",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 1,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/tyk-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "api",
|
||||||
|
"title": "API 网关",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "architecture",
|
||||||
|
"title": "IT 应用架构"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "35gLRDwhl2s4urch7R5XJO"
|
||||||
|
},
|
||||||
|
"key": "cockroachdb",
|
||||||
|
"hot": 19000,
|
||||||
|
"trademark": "CockroachDB",
|
||||||
|
"summary": "可伸缩的、支持地理位置处理、支持事务处理的数据存储系统",
|
||||||
|
"overview": "CockroachDB 是一个云原生分布式 SQL 数据库,旨在构建、扩展和管理现代数据密集型应用程序。",
|
||||||
|
"websiteurl": "https://www.cockroachlabs.com/",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "547b71e4-25eb-46c1-b3a3-881ca7fda0fe",
|
||||||
|
"key": "Admin UI",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/cockroachdb/cockroachdb-gui-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "166b53da-d091-4cda-9f08-77f0058fa1a0",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 1,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/mariadb-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "newsql",
|
||||||
|
"title": "NewSQL 数据库",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "database",
|
||||||
|
"title": "数据库"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "3Dz07ZV8UjcXB5p7cVGzHi"
|
||||||
|
},
|
||||||
|
"key": "tidb",
|
||||||
|
"hot": 19000,
|
||||||
|
"trademark": "TiDB",
|
||||||
|
"summary": "支持事务与分析的融合性数据库",
|
||||||
|
"overview": "TiDB 是一个开源的分布式 SQL 数据库,支持混合事务和分析处理 (HTAP) 工作负载。它与 MySQL 兼容,并具有水平可扩展性、强一致性和高可用性。",
|
||||||
|
"websiteurl": "https://github.com/pingcap/tidb",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "547b71e4-25eb-46c1-b3a3-881ca7fda0fe",
|
||||||
|
"key": "structure",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/tidb/tidb-gui-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "166b53da-d091-4cda-9f08-77f0058fa1a0",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 1,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/mariadb-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "newsql",
|
||||||
|
"title": "NewSQL 数据库",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "database",
|
||||||
|
"title": "数据库"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "4ozgGotK3ayZAMIwWAK2eX"
|
||||||
|
},
|
||||||
|
"key": "drone",
|
||||||
|
"hot": 10000,
|
||||||
|
"trademark": "Harness CI (aka Drone)",
|
||||||
|
"summary": "持续集成平台",
|
||||||
|
"overview": "Drone 是一个建立在容器技术之上的持续交付系统。Drone 使用一个简单的 YAML 构建文件,在 Docker 容器中定义和执行构建管道。",
|
||||||
|
"websiteurl": "https://drone.io/",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "3c5f8afa-0618-4999-be55-2ee0d39bd7e2",
|
||||||
|
"key": "控制面板",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/drone/drone-gui-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "21b7b8c9-9e78-4bd1-87ab-3656e188d206",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 1,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/drone-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "container",
|
||||||
|
"title": "容器",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "architecture",
|
||||||
|
"title": "IT 应用架构"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cicd",
|
||||||
|
"title": "持续集成 & 交付",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "itdeveloper",
|
||||||
|
"title": "IT 开发者"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "6TonQd8q8oAnb3lI3WaqY9"
|
||||||
|
},
|
||||||
|
"key": "harbor",
|
||||||
|
"hot": 10000,
|
||||||
|
"trademark": "Harbor",
|
||||||
|
"summary": "安全受信的容器镜像仓库平台",
|
||||||
|
"overview": "Harbor 是一个开源注册表,它使用策略和基于角色的访问控制来保护工件,确保图像被扫描且没有漏洞,并将图像标记为受信任。",
|
||||||
|
"websiteurl": "https://goharbor.io/",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "3c5f8afa-0618-4999-be55-2ee0d39bd7e2",
|
||||||
|
"key": "Dashbord",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/harbor/harbor-gui-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "21b7b8c9-9e78-4bd1-87ab-3656e188d206",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 2,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/harbor-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "softwarechain",
|
||||||
|
"title": "软件供应链",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "security",
|
||||||
|
"title": "IT 安全"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "container",
|
||||||
|
"title": "容器",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "architecture",
|
||||||
|
"title": "IT 应用架构"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "3hhszKLEOur4obfBqAGI8u"
|
||||||
|
},
|
||||||
|
"key": "jenkins",
|
||||||
|
"hot": null,
|
||||||
|
"trademark": "Jenkins",
|
||||||
|
"summary": "热门的开源持续集成(CI&CD)软件",
|
||||||
|
"overview": "Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。",
|
||||||
|
"websiteurl": "https://www.jenkins.io/",
|
||||||
|
"description": "Jenkins是一款基于Java语言开发的开源持续集成(CI&CD)软件, 提供超过1000个插件来支持构建、部署、自动化, 满足各种项目的 DevOps 需要",
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "3c08da17-38d7-46d1-815b-20981a6e4546",
|
||||||
|
"key": "devops",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/jenkins/jenkins_is_the_hub_CD_Devops.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3c5f8afa-0618-4999-be55-2ee0d39bd7e2",
|
||||||
|
"key": "wizard",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/jenkins/jenkins-wizard3-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "21b7b8c9-9e78-4bd1-87ab-3656e188d206",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "2.406"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 2,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/jenkins-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "cicd",
|
||||||
|
"title": "持续集成 & 交付",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "itdeveloper",
|
||||||
|
"title": "IT 开发者"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "automation",
|
||||||
|
"title": "自动化",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "product",
|
||||||
|
"title": "产品"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "Gr5k3lusGnWgOrK5rm5px"
|
||||||
|
},
|
||||||
|
"key": "confluence",
|
||||||
|
"hot": 300,
|
||||||
|
"trademark": "Confluence",
|
||||||
|
"summary": "团队知识协作与项目管理",
|
||||||
|
"overview": "Confluence Server 是您创建、组织和讨论工作的地方 团队。给每个团队、项目或部门都有自己的空间来创造他们需要的东西, 无论是会议记录、产品要求、文件列表还是项目计划, 您可以在 Confluence 中完成更多工作。",
|
||||||
|
"websiteurl": "https://www.atlassian.com/zh/software/confluence",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "b7726315-f237-412a-bf32-827f7f29a8fd",
|
||||||
|
"key": "白板",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/confluence/confluence-gui-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "54029d6d-4383-4418-9d4e-29e6b8cbfd77",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 1,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/confluence-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "agile",
|
||||||
|
"title": "敏捷项目管理",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "itdeveloper",
|
||||||
|
"title": "IT 开发者"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "task",
|
||||||
|
"title": "任务协作",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "collaboration",
|
||||||
|
"title": "协作办公"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "pms",
|
||||||
|
"title": "项目管理",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "collaboration",
|
||||||
|
"title": "协作办公"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sys": {
|
||||||
|
"id": "hPxXCOEisJk1Nx8yMBPtk"
|
||||||
|
},
|
||||||
|
"key": "humhub",
|
||||||
|
"hot": 8000,
|
||||||
|
"trademark": "HumHub",
|
||||||
|
"summary": "企业社交软件,构建内部的 Facebook",
|
||||||
|
"overview": "HumHub是一款直观易用和模块化设计的开源软件,主要用作社交网络,知识数据库,内部网或信息和通信平台。",
|
||||||
|
"websiteurl": "https://www.humhub.com/",
|
||||||
|
"description": null,
|
||||||
|
"screenshots": [
|
||||||
|
{
|
||||||
|
"id": "12ba0ea3-f6ae-497e-b846-d53a74d43e09",
|
||||||
|
"key": "界面",
|
||||||
|
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/humhub/humhub-gui-websoft9.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribution": [
|
||||||
|
{
|
||||||
|
"id": "a744765d-5fb9-419e-a6ff-17f1ef183e5f",
|
||||||
|
"key": "Community",
|
||||||
|
"value": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcpu": 1,
|
||||||
|
"memory": 1,
|
||||||
|
"storage": 1,
|
||||||
|
"logo": {
|
||||||
|
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/humhub-websoft9.png"
|
||||||
|
},
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "community",
|
||||||
|
"title": "社交/论坛",
|
||||||
|
"catalogCollection": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"key": "cms",
|
||||||
|
"title": "内容管理"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"sys": {
|
"sys": {
|
||||||
"id": "DEOp8ynxuO4rMELqtrNRl"
|
"id": "DEOp8ynxuO4rMELqtrNRl"
|
||||||
|
@ -5451,59 +5900,6 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"sys": {
|
|
||||||
"id": "3hhszKLEOur4obfBqAGI8u"
|
|
||||||
},
|
|
||||||
"key": "jenkins",
|
|
||||||
"hot": null,
|
|
||||||
"trademark": "Jenkins",
|
|
||||||
"summary": "热门的开源持续集成(CI&CD)软件",
|
|
||||||
"overview": "Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。",
|
|
||||||
"websiteurl": "https://www.jenkins.io/",
|
|
||||||
"description": "Jenkins是一款基于Java语言开发的开源持续集成(CI&CD)软件, 提供超过1000个插件来支持构建、部署、自动化, 满足各种项目的 DevOps 需要",
|
|
||||||
"screenshots": [
|
|
||||||
{
|
|
||||||
"id": "3c08da17-38d7-46d1-815b-20981a6e4546",
|
|
||||||
"key": "devops",
|
|
||||||
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/jenkins/jenkins_is_the_hub_CD_Devops.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "3c5f8afa-0618-4999-be55-2ee0d39bd7e2",
|
|
||||||
"key": "wizard",
|
|
||||||
"value": "https://libs.websoft9.com/Websoft9/DocsPicture/zh/jenkins/jenkins-wizard3-websoft9.png"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"distribution": [
|
|
||||||
{
|
|
||||||
"id": "21b7b8c9-9e78-4bd1-87ab-3656e188d206",
|
|
||||||
"key": "Community",
|
|
||||||
"value": "2.406"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"vcpu": 1,
|
|
||||||
"memory": 2,
|
|
||||||
"storage": 1,
|
|
||||||
"logo": {
|
|
||||||
"imageurl": "https://libs.websoft9.com/Websoft9/logo/product/jenkins-websoft9.png"
|
|
||||||
},
|
|
||||||
"catalogCollection": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"key": "cicd",
|
|
||||||
"title": "持续集成 & 交付",
|
|
||||||
"catalogCollection": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"key": "itdeveloper",
|
|
||||||
"title": "IT 开发者"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"sys": {
|
"sys": {
|
||||||
"id": "5iI41E1ctdn7XBuv5g1oqU"
|
"id": "5iI41E1ctdn7XBuv5g1oqU"
|
||||||
|
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 16 KiB |
BIN
cockpit/appstore/build/static/data/logos/confluence-websoft9.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
cockpit/appstore/build/static/data/logos/drone-websoft9.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
cockpit/appstore/build/static/data/logos/harbor-websoft9.png
Normal file
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 6.9 KiB |
BIN
cockpit/appstore/build/static/data/logos/humhub-websoft9.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
BIN
cockpit/appstore/build/static/data/logos/tidb-websoft9.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
cockpit/appstore/build/static/data/logos/tyk-websoft9.png
Normal file
After Width: | Height: | Size: 9 KiB |
|
@ -1,4 +1,2 @@
|
||||||
oss://libs-websoft9-com/Websoft9/DocsPicture/zh/huginn/huginn-gui-websoft9.png
|
oss://libs-websoft9-com/Websoft9/DocsPicture/zh/huginn/huginn-gui-websoft9.png
|
||||||
oss://libs-websoft9-com/Websoft9/DocsPicture/zh/huginn/huginn-gui-websoft9.png
|
oss://libs-websoft9-com/Websoft9/DocsPicture/zh/huginn/huginn-gui-websoft9.png
|
||||||
oss://libs-websoft9-com/Websoft9/DocsPicture/zh/huginn/huginn-gui-websoft9.png
|
|
||||||
oss://libs-websoft9-com/Websoft9/DocsPicture/zh/huginn/huginn-gui-websoft9.png
|
|
||||||
|
|
After Width: | Height: | Size: 219 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 320 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 215 KiB |
After Width: | Height: | Size: 309 KiB |
After Width: | Height: | Size: 355 KiB |
After Width: | Height: | Size: 219 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 320 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 215 KiB |
After Width: | Height: | Size: 309 KiB |
After Width: | Height: | Size: 355 KiB |
2
cockpit/appstore/build/static/js/111.ae85bc5c.chunk.js
Normal file
3
cockpit/appstore/build/static/js/423.66878bf7.chunk.js
Normal file
2
cockpit/appstore/build/static/js/81.f1142d28.chunk.js
Normal file
2
cockpit/appstore/build/static/js/912.3c7e5556.chunk.js
Normal file
|
@ -1,2 +0,0 @@
|
||||||
"use strict";(self.webpackChunkappstore=self.webpackChunkappstore||[]).push([[912],{7430:function(e,n,s){s(2791);n.Z=s.p+"static/media/logo.21467f3ddba355981c892c73331678c6.svg"},5665:function(e,n,s){s(2791);n.Z=s.p+"static/media/websoft9.a364f73ed04449bcc81e97399dc8e8de.svg"},5912:function(e,n,s){s.r(n),s.d(n,{default:function(){return f}});var t=s(1694),a=s.n(t),o=s(7346),l=s.n(o),i=(s(2791),s(1087));var c=s.p+"static/media/logo-sm.53b8ca70620b0b2968874a3660f195dd.svg",r=s(7430),d=s(5665),g=s(184),p=(l().gettext,l().language),f=function(e){var n=e.hideLogo,s=e.navCssClasses,t=(e.openLeftMenuCallBack,e.topbarDark,s||""),o=n?"":"container-fluid";return(0,g.jsx)(g.Fragment,{children:(0,g.jsx)("div",{className:a()("navbar-custom",t),children:(0,g.jsxs)("div",{className:o,children:[!n&&(0,g.jsxs)(i.rU,{to:"/",className:"topnav-logo",children:[(0,g.jsx)("span",{className:"topnav-logo-lg",children:"zh_CN"===p?(0,g.jsx)("img",{src:r.Z,alt:"logo",width:"99"}):(0,g.jsx)("img",{src:d.Z,alt:"logo",width:"99"})}),(0,g.jsx)("span",{className:"topnav-logo-sm",children:(0,g.jsx)("img",{src:c,alt:"logo",width:"24px",height:"24"})})]}),(0,g.jsx)("ul",{style:{display:"flex",justifyContent:"flex-end",flexDirection:"row",alignItems:"center",minHeight:"70px",fontSize:"16px",listStyle:"none",marginBottom:"0px"},children:(0,g.jsx)("li",{children:(0,g.jsx)("button",{onClick:function(){},className:"nav-link dropdown-toggle end-bar-toggle arrow-none btn btn-link shadow-none",style:{color:"#428bca",fontSize:"16px"},children:"\u66f4\u65b0\u5e94\u7528\u5217\u8868"})})})]})})})}}}]);
|
|
||||||
//# sourceMappingURL=912.a5b53472.chunk.js.map
|
|
1
cockpit/appstore/build/static/js/main.4fc2aa4d.js.map
Normal file
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"menu": {
|
"menu": {
|
||||||
"appstore": {
|
"appstore": {
|
||||||
"label": "App Store",
|
"label": "App Store",
|
||||||
|
|
|
@ -306,6 +306,18 @@
|
||||||
"Search for apps like WordPress, MySQL, GitLab, …": [
|
"Search for apps like WordPress, MySQL, GitLab, …": [
|
||||||
null,
|
null,
|
||||||
"请输入要搜索的应用名称,例如:WordPress,MySQL,GitLab, …"
|
"请输入要搜索的应用名称,例如:WordPress,MySQL,GitLab, …"
|
||||||
|
],
|
||||||
|
"The app store is already the latest version": [
|
||||||
|
null,
|
||||||
|
"应用商店已是最新版本"
|
||||||
|
],
|
||||||
|
"Update Application List": [
|
||||||
|
null,
|
||||||
|
"更新应用列表"
|
||||||
|
],
|
||||||
|
"Update Log": [
|
||||||
|
null,
|
||||||
|
"更新日志"
|
||||||
]
|
]
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
|
@ -8,5 +8,12 @@ function AppInstall(params: any): Promise<any> {
|
||||||
return api.get(`${baseUrl}`, params);
|
return api.get(`${baseUrl}`, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
export { AppInstall };
|
|
||||||
|
//更新应用列表
|
||||||
|
function AppStoreUpdate(params: any): Promise<any> {
|
||||||
|
const baseUrl = '/AppManage/AppStoreUpdate';
|
||||||
|
return api.get(`${baseUrl}`, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
export { AppInstall, AppStoreUpdate };
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
// @flow
|
// @flow
|
||||||
import {
|
import {
|
||||||
AppInstall
|
AppInstall, AppStoreUpdate
|
||||||
} from './appManager';
|
} from './appManager';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
AppInstall
|
AppInstall, AppStoreUpdate
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ const Topbar = React.lazy(() => import('./Topbar'));
|
||||||
|
|
||||||
const loading = () => <div className="text-center"></div>;
|
const loading = () => <div className="text-center"></div>;
|
||||||
|
|
||||||
|
|
||||||
type VerticalLayoutProps = {
|
type VerticalLayoutProps = {
|
||||||
children?: any,
|
children?: any,
|
||||||
};
|
};
|
||||||
|
@ -29,6 +30,7 @@ type VerticalLayoutState = {
|
||||||
isMenuOpened?: boolean,
|
isMenuOpened?: boolean,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const DetachedLayout = ({ children }: VerticalLayoutProps, state: VerticalLayoutState): React$Element<any> => {
|
const DetachedLayout = ({ children }: VerticalLayoutProps, state: VerticalLayoutState): React$Element<any> => {
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const { layoutColor, } = useSelector((state) => ({
|
const { layoutColor, } = useSelector((state) => ({
|
||||||
|
|
|
@ -1,9 +1,15 @@
|
||||||
// @flow
|
// @flow
|
||||||
|
import MuiAlert from '@mui/material/Alert';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import cockpit from 'cockpit';
|
import cockpit from 'cockpit';
|
||||||
import React from 'react';
|
import React, { useState } from 'react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Button, Modal } from 'react-bootstrap';
|
||||||
|
import Spinner from 'react-bootstrap/Spinner';
|
||||||
|
import { Link, useNavigate } from 'react-router-dom';
|
||||||
|
import { AppStoreUpdate } from '../helpers';
|
||||||
|
|
||||||
// images
|
// images
|
||||||
|
import Snackbar from '@mui/material/Snackbar';
|
||||||
import logoSM from '../assets/images/logo-sm.svg';
|
import logoSM from '../assets/images/logo-sm.svg';
|
||||||
import logo from '../assets/images/logo.svg';
|
import logo from '../assets/images/logo.svg';
|
||||||
import logoEn from '../assets/images/websoft9.svg';
|
import logoEn from '../assets/images/websoft9.svg';
|
||||||
|
@ -11,6 +17,10 @@ import logoEn from '../assets/images/websoft9.svg';
|
||||||
const _ = cockpit.gettext;
|
const _ = cockpit.gettext;
|
||||||
const language = cockpit.language;//获取cockpit的当前语言环境
|
const language = cockpit.language;//获取cockpit的当前语言环境
|
||||||
|
|
||||||
|
const Alert = React.forwardRef(function Alert(props, ref) {
|
||||||
|
return <MuiAlert elevation={6} ref={ref} variant="filled" {...props} />;
|
||||||
|
});
|
||||||
|
|
||||||
type TopbarProps = {
|
type TopbarProps = {
|
||||||
hideLogo?: boolean,
|
hideLogo?: boolean,
|
||||||
navCssClasses?: string,
|
navCssClasses?: string,
|
||||||
|
@ -21,10 +31,74 @@ type TopbarProps = {
|
||||||
const Topbar = ({ hideLogo, navCssClasses, openLeftMenuCallBack, topbarDark }: TopbarProps): React$Element<any> => {
|
const Topbar = ({ hideLogo, navCssClasses, openLeftMenuCallBack, topbarDark }: TopbarProps): React$Element<any> => {
|
||||||
const navbarCssClasses = navCssClasses || '';
|
const navbarCssClasses = navCssClasses || '';
|
||||||
const containerCssClasses = !hideLogo ? 'container-fluid' : '';
|
const containerCssClasses = !hideLogo ? 'container-fluid' : '';
|
||||||
|
const [alertMessage, setAlertMessage] = useState("");//用于显示错误提示消息
|
||||||
|
const [showAlert, setShowAlert] = useState(false); //用于是否显示错误提示
|
||||||
|
const [alertType, setAlertType] = useState(""); //用于确定弹窗的类型:error\success
|
||||||
|
const [showMask, setShowMask] = useState(false); //用于设置遮罩层
|
||||||
|
const [buttonDisable, setButtonDisable] = useState(false); //用于更新按钮禁用
|
||||||
|
const [linkDisable, setLinkDisable] = useState(false); //用于超链接禁用
|
||||||
|
const [showUpdateLog, setShowUpdateLog] = useState(false); //用于显示更新日志
|
||||||
|
const navigate = useNavigate(); //用于页面跳转
|
||||||
|
|
||||||
|
const updateLogClose = () => {
|
||||||
|
setShowUpdateLog(!showUpdateLog);
|
||||||
|
window.location.reload(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleClose = (event, reason) => {
|
||||||
|
if (reason === 'clickaway') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setShowAlert(false);
|
||||||
|
setAlertMessage("");
|
||||||
|
};
|
||||||
|
|
||||||
|
//调用更新应用列表接口
|
||||||
|
async function handleUpdateClick() {
|
||||||
|
setShowMask(true);
|
||||||
|
setShowAlert(false);
|
||||||
|
setButtonDisable(true);
|
||||||
|
setLinkDisable(true);
|
||||||
|
try {
|
||||||
|
const response = await AppStoreUpdate();
|
||||||
|
if (response.data.Error) {
|
||||||
|
setShowAlert(true);
|
||||||
|
setAlertType("error")
|
||||||
|
setAlertMessage(response.data.Error.Message);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
const updateInfo = response.data.ResponseData.Update_content;
|
||||||
|
if (!updateInfo) {
|
||||||
|
setShowAlert(true);
|
||||||
|
setAlertType("success")
|
||||||
|
setAlertMessage(_("The app store is already the latest version"));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
setShowUpdateLog(true);
|
||||||
|
setAlertMessage(updateInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
navigate("/error-500");
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
setButtonDisable(false);
|
||||||
|
setShowMask(false);
|
||||||
|
setLinkDisable(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className={classNames('navbar-custom', navbarCssClasses)}>
|
{
|
||||||
|
showMask && (
|
||||||
|
<div className="card-disabled" style={{ zIndex: 999 }}>
|
||||||
|
<Spinner className='dis_mid' style={{ marginTop: "200px" }} />
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
<div className={classNames('navbar-custom', navbarCssClasses)} style={{ pointerEvents: linkDisable ? 'none' : 'auto' }}>
|
||||||
<div className={containerCssClasses}>
|
<div className={containerCssClasses}>
|
||||||
{!hideLogo && (
|
{!hideLogo && (
|
||||||
<Link to="/" className="topnav-logo">
|
<Link to="/" className="topnav-logo">
|
||||||
|
@ -54,16 +128,40 @@ const Topbar = ({ hideLogo, navCssClasses, openLeftMenuCallBack, topbarDark }: T
|
||||||
</a>
|
</a>
|
||||||
</li> */}
|
</li> */}
|
||||||
<li>
|
<li>
|
||||||
<button onClick={() => {
|
<button onClick={handleUpdateClick} disabled={buttonDisable}
|
||||||
|
|
||||||
}}
|
|
||||||
className="nav-link dropdown-toggle end-bar-toggle arrow-none btn btn-link shadow-none" style={{ color: "#428bca", fontSize: "16px" }}>
|
className="nav-link dropdown-toggle end-bar-toggle arrow-none btn btn-link shadow-none" style={{ color: "#428bca", fontSize: "16px" }}>
|
||||||
更新应用列表
|
{_("Update Application List")}
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{
|
||||||
|
showAlert &&
|
||||||
|
<Snackbar open={showAlert} autoHideDuration={3000} onClose={handleClose} anchorOrigin={{ vertical: 'top', horizontal: 'center' }}>
|
||||||
|
<Alert onClose={handleClose} severity={alertType} sx={{ width: '100%' }}>
|
||||||
|
{alertMessage}
|
||||||
|
</Alert>
|
||||||
|
</Snackbar>
|
||||||
|
}
|
||||||
|
{
|
||||||
|
showUpdateLog && <Modal show={showUpdateLog} onHide={updateLogClose} size="lg"
|
||||||
|
scrollable="true" backdrop="static" >
|
||||||
|
<Modal.Header onHide={updateLogClose} closeButton className={classNames('modal-colored-header', 'bg-primary')}>
|
||||||
|
<h4>{_("App Store")}{" "}{_("Update Log")}</h4>
|
||||||
|
</Modal.Header>
|
||||||
|
<Modal.Body className="row" >
|
||||||
|
{alertMessage.map((item, index) => (
|
||||||
|
<p key={index}>{index + 1}{" : "}{item}</p>
|
||||||
|
))}
|
||||||
|
</Modal.Body>
|
||||||
|
<Modal.Footer>
|
||||||
|
<Button variant='primary' onClick={updateLogClose}>
|
||||||
|
{_("Close")}
|
||||||
|
</Button>
|
||||||
|
</Modal.Footer>
|
||||||
|
</Modal >
|
||||||
|
}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -211,6 +211,7 @@ const AppDetailModal = ({ product, showFlag, onClose }) => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const AppStore = (): React$Element<React$FragmentType> => {
|
const AppStore = (): React$Element<React$FragmentType> => {
|
||||||
const [showModal, setShowModal] = useState(false); //用于显示弹窗的标识
|
const [showModal, setShowModal] = useState(false); //用于显示弹窗的标识
|
||||||
const [selectedProduct, setSelectedProduct] = useState(null); //用于存储被选中的产品(点击应用详情时使用)
|
const [selectedProduct, setSelectedProduct] = useState(null); //用于存储被选中的产品(点击应用详情时使用)
|
||||||
|
@ -222,9 +223,9 @@ const AppStore = (): React$Element<React$FragmentType> => {
|
||||||
const [apps, setApps] = useState([]); //用于存储通过目录筛选出来的数据
|
const [apps, setApps] = useState([]); //用于存储通过目录筛选出来的数据
|
||||||
const [appList, setAppList] = useState([]); //用于存储通过目录筛选出来的数据
|
const [appList, setAppList] = useState([]); //用于存储通过目录筛选出来的数据
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
|
|
||||||
const navigate = useNavigate(); //用于页面跳转
|
const navigate = useNavigate(); //用于页面跳转
|
||||||
|
|
||||||
|
|
||||||
//读取数据文件
|
//读取数据文件
|
||||||
const getData = useCallback(async () => {
|
const getData = useCallback(async () => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
|
@ -269,7 +270,6 @@ const AppStore = (): React$Element<React$FragmentType> => {
|
||||||
getData();
|
getData();
|
||||||
}, [getData]);
|
}, [getData]);
|
||||||
|
|
||||||
|
|
||||||
if (loading) return <Spinner className='dis_mid' />
|
if (loading) return <Spinner className='dis_mid' />
|
||||||
// if (dataError) return <p>Error : ${dataError.message} </p>;
|
// if (dataError) return <p>Error : ${dataError.message} </p>;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "1.0.1",
|
"version": "1.0.2",
|
||||||
"menu": {
|
"menu": {
|
||||||
"appstore": {
|
"appstore": {
|
||||||
"label": "My Apps",
|
"label": "My Apps",
|
||||||
|
|
|
@ -410,6 +410,10 @@
|
||||||
"This application is pre-configured with an administrator account, please change the administrator password immediately. The initial credentials are:": [
|
"This application is pre-configured with an administrator account, please change the administrator password immediately. The initial credentials are:": [
|
||||||
null,
|
null,
|
||||||
"此应用程序是使用管理员帐户预先设置的,请立即更改管理员密码。初始凭据为:"
|
"此应用程序是使用管理员帐户预先设置的,请立即更改管理员密码。初始凭据为:"
|
||||||
|
],
|
||||||
|
"Overview": [
|
||||||
|
null,
|
||||||
|
"预览"
|
||||||
]
|
]
|
||||||
|
|
||||||
}));
|
}));
|
||||||
|
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 12 KiB |
BIN
cockpit/myapps/build/static/logos/cockroachdb-websoft9.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
cockpit/myapps/build/static/logos/confluence-websoft9.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
cockpit/myapps/build/static/logos/drone-websoft9.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
cockpit/myapps/build/static/logos/harbor-websoft9.png
Normal file
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 6.9 KiB |
BIN
cockpit/myapps/build/static/logos/humhub-websoft9.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
BIN
cockpit/myapps/build/static/logos/tidb-websoft9.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
cockpit/myapps/build/static/logos/tyk-websoft9.png
Normal file
After Width: | Height: | Size: 9 KiB |
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "1.0.1",
|
"version": "1.0.2",
|
||||||
"menu": {
|
"menu": {
|
||||||
"appstore": {
|
"appstore": {
|
||||||
"label": "My Apps",
|
"label": "My Apps",
|
||||||
|
|
|
@ -410,6 +410,10 @@
|
||||||
"This application is pre-configured with an administrator account, please change the administrator password immediately. The initial credentials are:": [
|
"This application is pre-configured with an administrator account, please change the administrator password immediately. The initial credentials are:": [
|
||||||
null,
|
null,
|
||||||
"此应用程序是使用管理员帐户预先设置的,请立即更改管理员密码。初始凭据为:"
|
"此应用程序是使用管理员帐户预先设置的,请立即更改管理员密码。初始凭据为:"
|
||||||
|
],
|
||||||
|
"Overview": [
|
||||||
|
null,
|
||||||
|
"预览"
|
||||||
]
|
]
|
||||||
|
|
||||||
}));
|
}));
|
||||||
|
|
23
cockpit/settings/.gitignore
vendored
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
/node_modules
|
||||||
|
/.pnp
|
||||||
|
.pnp.js
|
||||||
|
|
||||||
|
# testing
|
||||||
|
/coverage
|
||||||
|
|
||||||
|
# production
|
||||||
|
# /build
|
||||||
|
|
||||||
|
# misc
|
||||||
|
.DS_Store
|
||||||
|
.env.local
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
70
cockpit/settings/README.md
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
# Getting Started with Create React App
|
||||||
|
|
||||||
|
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
||||||
|
|
||||||
|
## Available Scripts
|
||||||
|
|
||||||
|
In the project directory, you can run:
|
||||||
|
|
||||||
|
### `npm start`
|
||||||
|
|
||||||
|
Runs the app in the development mode.\
|
||||||
|
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
|
||||||
|
|
||||||
|
The page will reload when you make changes.\
|
||||||
|
You may also see any lint errors in the console.
|
||||||
|
|
||||||
|
### `npm test`
|
||||||
|
|
||||||
|
Launches the test runner in the interactive watch mode.\
|
||||||
|
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
|
||||||
|
|
||||||
|
### `npm run build`
|
||||||
|
|
||||||
|
Builds the app for production to the `build` folder.\
|
||||||
|
It correctly bundles React in production mode and optimizes the build for the best performance.
|
||||||
|
|
||||||
|
The build is minified and the filenames include the hashes.\
|
||||||
|
Your app is ready to be deployed!
|
||||||
|
|
||||||
|
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
|
||||||
|
|
||||||
|
### `npm run eject`
|
||||||
|
|
||||||
|
**Note: this is a one-way operation. Once you `eject`, you can't go back!**
|
||||||
|
|
||||||
|
If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
|
||||||
|
|
||||||
|
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
|
||||||
|
|
||||||
|
You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
|
||||||
|
|
||||||
|
## Learn More
|
||||||
|
|
||||||
|
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
|
||||||
|
|
||||||
|
To learn React, check out the [React documentation](https://reactjs.org/).
|
||||||
|
|
||||||
|
### Code Splitting
|
||||||
|
|
||||||
|
This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
|
||||||
|
|
||||||
|
### Analyzing the Bundle Size
|
||||||
|
|
||||||
|
This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
|
||||||
|
|
||||||
|
### Making a Progressive Web App
|
||||||
|
|
||||||
|
This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
|
||||||
|
|
||||||
|
### Advanced Configuration
|
||||||
|
|
||||||
|
This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
|
||||||
|
|
||||||
|
### Deployment
|
||||||
|
|
||||||
|
This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
|
||||||
|
|
||||||
|
### `npm run build` fails to minify
|
||||||
|
|
||||||
|
This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
|
13
cockpit/settings/build/asset-manifest.json
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"files": {
|
||||||
|
"main.css": "./static/css/main.b17c576c.css",
|
||||||
|
"main.js": "./static/js/main.f6ada9a7.js",
|
||||||
|
"index.html": "./index.html",
|
||||||
|
"main.b17c576c.css.map": "./static/css/main.b17c576c.css.map",
|
||||||
|
"main.f6ada9a7.js.map": "./static/js/main.f6ada9a7.js.map"
|
||||||
|
},
|
||||||
|
"entrypoints": [
|
||||||
|
"static/css/main.b17c576c.css",
|
||||||
|
"static/js/main.f6ada9a7.js"
|
||||||
|
]
|
||||||
|
}
|
BIN
cockpit/settings/build/favicon.ico
Normal file
After Width: | Height: | Size: 3.8 KiB |
1
cockpit/settings/build/index.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="upgrade"/><script type="text/javascript" src="../base1/cockpit.js"></script><script type="text/javascript" src="../*/po.js"></script><link rel="manifest" href="./manifest.json"/><title>upgrade</title><script defer="defer" src="./static/js/main.f6ada9a7.js"></script><link href="./static/css/main.b17c576c.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
11
cockpit/settings/build/manifest.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0",
|
||||||
|
"menu": {
|
||||||
|
"appstore": {
|
||||||
|
"label": "Setting",
|
||||||
|
"path": "index.html",
|
||||||
|
"order": 7
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"content-security-policy": "default-src 'unsafe-inline' 'unsafe-eval' *;font-src * data:;style-src 'unsafe-inline' 'unsafe-eval' *;img-src * data:;"
|
||||||
|
}
|
75
cockpit/settings/build/po.zh_CN.js
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
(function (root, data) {
|
||||||
|
var loaded, module;
|
||||||
|
|
||||||
|
/* Load into AMD if desired */
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
define(data);
|
||||||
|
loaded = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Load into Cockpit locale */
|
||||||
|
if (typeof cockpit === 'object') {
|
||||||
|
cockpit.locale(data)
|
||||||
|
loaded = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!loaded)
|
||||||
|
root.po = data;
|
||||||
|
|
||||||
|
/* The syntax of this line is important by po2json */
|
||||||
|
}(this, {
|
||||||
|
"": {
|
||||||
|
'plural-forms': function (n) {
|
||||||
|
var nplurals, plural;
|
||||||
|
nplurals = 1; plural = 0;
|
||||||
|
return plural;
|
||||||
|
},
|
||||||
|
"language": "zh_CN",
|
||||||
|
"x-generator": "Weblate 3.10.3"
|
||||||
|
},
|
||||||
|
"System Setting": [
|
||||||
|
null,
|
||||||
|
"系统设置"
|
||||||
|
],
|
||||||
|
"Setting": [
|
||||||
|
null,
|
||||||
|
"设置"
|
||||||
|
],
|
||||||
|
"Enable automatic updates": [
|
||||||
|
null,
|
||||||
|
"开启自动更新"
|
||||||
|
],
|
||||||
|
"App Store Updates": [
|
||||||
|
null,
|
||||||
|
"应用商店更新"
|
||||||
|
],
|
||||||
|
"System Updates": [
|
||||||
|
null,
|
||||||
|
"系统更新"
|
||||||
|
],
|
||||||
|
"Current Version": [
|
||||||
|
null,
|
||||||
|
"当前版本"
|
||||||
|
],
|
||||||
|
"Check for updates": [
|
||||||
|
null,
|
||||||
|
"检查更新"
|
||||||
|
],
|
||||||
|
"Latest Version": [
|
||||||
|
null,
|
||||||
|
"最新版本"
|
||||||
|
],
|
||||||
|
"Update Time": [
|
||||||
|
null,
|
||||||
|
"更新时间"
|
||||||
|
],
|
||||||
|
"Update Content": [
|
||||||
|
null,
|
||||||
|
"更新内容"
|
||||||
|
],
|
||||||
|
"Update": [
|
||||||
|
null,
|
||||||
|
"立即更新"
|
||||||
|
]
|
||||||
|
}));
|
||||||
|
|
3
cockpit/settings/build/robots.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# https://www.robotstxt.org/robotstxt.html
|
||||||
|
User-agent: *
|
||||||
|
Disallow:
|
7
cockpit/settings/build/static/css/main.b17c576c.css
Normal file
1
cockpit/settings/build/static/css/main.b17c576c.css.map
Normal file
3
cockpit/settings/build/static/js/main.f6ada9a7.js
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
/*!
|
||||||
|
Copyright (c) 2018 Jed Watson.
|
||||||
|
Licensed under the MIT License (MIT), see
|
||||||
|
http://jedwatson.github.io/classnames
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @license React
|
||||||
|
* react-dom.production.min.js
|
||||||
|
*
|
||||||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @license React
|
||||||
|
* react-is.production.min.js
|
||||||
|
*
|
||||||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @license React
|
||||||
|
* react-jsx-runtime.production.min.js
|
||||||
|
*
|
||||||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @license React
|
||||||
|
* react.production.min.js
|
||||||
|
*
|
||||||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @license React
|
||||||
|
* scheduler.production.min.js
|
||||||
|
*
|
||||||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @mui/styled-engine v5.13.2
|
||||||
|
*
|
||||||
|
* @license MIT
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @license React v16.13.1
|
||||||
|
* react-is.production.min.js
|
||||||
|
*
|
||||||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
1
cockpit/settings/build/static/js/main.f6ada9a7.js.map
Normal file
10
cockpit/settings/config-overrides.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
const {
|
||||||
|
override,
|
||||||
|
addWebpackExternals,
|
||||||
|
} = require('customize-cra')
|
||||||
|
|
||||||
|
module.exports = override(
|
||||||
|
addWebpackExternals({
|
||||||
|
"cockpit": "cockpit"
|
||||||
|
})
|
||||||
|
)
|
7
cockpit/settings/mk.sh
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
cd /data/stackhub-web/plugins/settings/build
|
||||||
|
yarn build
|
||||||
|
while [ ! -d "/usr/share/cockpit/settings" ]; do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
cp -r ./* /usr/share/cockpit/settings/
|
49
cockpit/settings/package.json
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
"name": "upgrade",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"homepage": ".",
|
||||||
|
"dependencies": {
|
||||||
|
"@testing-library/jest-dom": "^5.16.5",
|
||||||
|
"@testing-library/react": "^13.4.0",
|
||||||
|
"@testing-library/user-event": "^13.5.0",
|
||||||
|
"react": "^18.2.0",
|
||||||
|
"react-dom": "^18.2.0",
|
||||||
|
"react-scripts": "5.0.1",
|
||||||
|
"web-vitals": "^2.1.4",
|
||||||
|
"react-bootstrap": "^2.1.2",
|
||||||
|
"@mui/icons-material": "^5.11.16",
|
||||||
|
"@mui/material": "^5.12.2",
|
||||||
|
"@emotion/styled": "^11.10.6",
|
||||||
|
"@emotion/react": "^11.11.0",
|
||||||
|
"customize-cra": "^1.0.0",
|
||||||
|
"react-app-rewired": "^2.2.1",
|
||||||
|
"bootstrap": "5.1.3",
|
||||||
|
"classnames": "^2.3.1",
|
||||||
|
"axios": "^1.3.4"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"start": "react-app-rewired start",
|
||||||
|
"build": "react-app-rewired build",
|
||||||
|
"test": "react-app-rewired test",
|
||||||
|
"eject": "react-app-rewired eject"
|
||||||
|
},
|
||||||
|
"eslintConfig": {
|
||||||
|
"extends": [
|
||||||
|
"react-app",
|
||||||
|
"react-app/jest"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"browserslist": {
|
||||||
|
"production": [
|
||||||
|
">0.2%",
|
||||||
|
"not dead",
|
||||||
|
"not op_mini all"
|
||||||
|
],
|
||||||
|
"development": [
|
||||||
|
"last 1 chrome version",
|
||||||
|
"last 1 firefox version",
|
||||||
|
"last 1 safari version"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
BIN
cockpit/settings/public/favicon.ico
Normal file
After Width: | Height: | Size: 3.8 KiB |
45
cockpit/settings/public/index.html
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<meta name="theme-color" content="#000000" />
|
||||||
|
<meta name="description" content="upgrade" />
|
||||||
|
<script type="text/javascript" src="../base1/cockpit.js"></script>
|
||||||
|
<script type="text/javascript" src="../*/po.js"></script>
|
||||||
|
<!--
|
||||||
|
manifest.json provides metadata used when your web app is installed on a
|
||||||
|
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
||||||
|
-->
|
||||||
|
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Notice the use of %PUBLIC_URL% in the tags above.
|
||||||
|
It will be replaced with the URL of the `public` folder during the build.
|
||||||
|
Only files inside the `public` folder can be referenced from the HTML.
|
||||||
|
|
||||||
|
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
||||||
|
work correctly both with client-side routing and a non-root public URL.
|
||||||
|
Learn how to configure a non-root public URL by running `npm run build`.
|
||||||
|
-->
|
||||||
|
<title>upgrade</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||||
|
<div id="root"></div>
|
||||||
|
<!--
|
||||||
|
This HTML file is a template.
|
||||||
|
If you open it directly in the browser, you will see an empty page.
|
||||||
|
|
||||||
|
You can add webfonts, meta tags, or analytics to this file.
|
||||||
|
The build step will place the bundled scripts into the <body> tag.
|
||||||
|
|
||||||
|
To begin the development, run `npm start` or `yarn start`.
|
||||||
|
To create a production bundle, use `npm run build` or `yarn build`.
|
||||||
|
-->
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
11
cockpit/settings/public/manifest.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0",
|
||||||
|
"menu": {
|
||||||
|
"appstore": {
|
||||||
|
"label": "Setting",
|
||||||
|
"path": "index.html",
|
||||||
|
"order": 7
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"content-security-policy": "default-src 'unsafe-inline' 'unsafe-eval' *;font-src * data:;style-src 'unsafe-inline' 'unsafe-eval' *;img-src * data:;"
|
||||||
|
}
|
75
cockpit/settings/public/po.zh_CN.js
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
(function (root, data) {
|
||||||
|
var loaded, module;
|
||||||
|
|
||||||
|
/* Load into AMD if desired */
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
define(data);
|
||||||
|
loaded = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Load into Cockpit locale */
|
||||||
|
if (typeof cockpit === 'object') {
|
||||||
|
cockpit.locale(data)
|
||||||
|
loaded = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!loaded)
|
||||||
|
root.po = data;
|
||||||
|
|
||||||
|
/* The syntax of this line is important by po2json */
|
||||||
|
}(this, {
|
||||||
|
"": {
|
||||||
|
'plural-forms': function (n) {
|
||||||
|
var nplurals, plural;
|
||||||
|
nplurals = 1; plural = 0;
|
||||||
|
return plural;
|
||||||
|
},
|
||||||
|
"language": "zh_CN",
|
||||||
|
"x-generator": "Weblate 3.10.3"
|
||||||
|
},
|
||||||
|
"System Setting": [
|
||||||
|
null,
|
||||||
|
"系统设置"
|
||||||
|
],
|
||||||
|
"Setting": [
|
||||||
|
null,
|
||||||
|
"设置"
|
||||||
|
],
|
||||||
|
"Enable automatic updates": [
|
||||||
|
null,
|
||||||
|
"开启自动更新"
|
||||||
|
],
|
||||||
|
"App Store Updates": [
|
||||||
|
null,
|
||||||
|
"应用商店更新"
|
||||||
|
],
|
||||||
|
"System Updates": [
|
||||||
|
null,
|
||||||
|
"系统更新"
|
||||||
|
],
|
||||||
|
"Current Version": [
|
||||||
|
null,
|
||||||
|
"当前版本"
|
||||||
|
],
|
||||||
|
"Check for updates": [
|
||||||
|
null,
|
||||||
|
"检查更新"
|
||||||
|
],
|
||||||
|
"Latest Version": [
|
||||||
|
null,
|
||||||
|
"最新版本"
|
||||||
|
],
|
||||||
|
"Update Time": [
|
||||||
|
null,
|
||||||
|
"更新时间"
|
||||||
|
],
|
||||||
|
"Update Content": [
|
||||||
|
null,
|
||||||
|
"更新内容"
|
||||||
|
],
|
||||||
|
"Update": [
|
||||||
|
null,
|
||||||
|
"立即更新"
|
||||||
|
]
|
||||||
|
}));
|
||||||
|
|