@steedos/service-package-registry 3.0.0-beta.10 → 3.0.0-beta.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/main/default/manager/loader.js +3 -3
- package/main/default/manager/packages.js +4 -2
- package/main/default/manager/registry.js +8 -1
- package/main/default/objectTranslations/steedos_packages.en/steedos_packages.en.objectTranslation.yml +19 -1
- package/main/default/objectTranslations/steedos_packages.zh-CN/steedos_packages.zh-CN.objectTranslation.yml +23 -0
- package/main/default/objects/steedos_packages/buttons/disable.button.js +51 -0
- package/main/default/objects/steedos_packages/buttons/disable.button.yml +4 -0
- package/main/default/objects/steedos_packages/buttons/edit_npmrc.button.js +8 -0
- package/main/default/objects/steedos_packages/buttons/edit_npmrc.button.yml +86 -0
- package/main/default/objects/steedos_packages/buttons/enable.button.js +58 -0
- package/main/default/objects/steedos_packages/buttons/enable.button.yml +4 -0
- package/main/default/objects/steedos_packages/buttons/installPackageFromUrl.button.js +8 -0
- package/main/default/objects/steedos_packages/buttons/installPackageFromUrl.button.yml +138 -0
- package/main/default/objects/steedos_packages/buttons/reload.button.js +34 -0
- package/main/default/objects/steedos_packages/buttons/reload.button.yml +4 -0
- package/main/default/objects/steedos_packages/buttons/uninstall.button.js +63 -0
- package/main/default/objects/steedos_packages/buttons/uninstall.button.yml +4 -0
- package/main/default/objects/steedos_packages/buttons/upgradePackage.button.js +22 -0
- package/main/default/objects/steedos_packages/buttons/upgradePackage.button.yml +147 -0
- package/main/default/objects/steedos_packages/fields/isUnmanaged.field.yml +4 -0
- package/main/default/objects/steedos_packages/listviews/all.listview.yml +1 -0
- package/main/default/pages/steedos_package_detail.page.amis.json +4 -33
- package/main/default/pages/steedos_packages_list.page.amis.json +3 -9
- package/main/default/routes/nodes.router.js +292 -0
- package/main/default/routes/registry.router.js +21 -0
- package/main/default/triggers/steedos_packages.trigger.js +7 -13
- package/package.json +6 -6
- package/project.package.service.js +35 -12
|
@@ -114,7 +114,7 @@ const loadPackages = async ()=>{
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
} catch (error) {
|
|
117
|
-
console.error(`start package ${packageName} error: ${error.message}`)
|
|
117
|
+
console.error(`start package ${packageName} error[117]: ${error.message}`)
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
}else if(package.local !== true){
|
|
@@ -132,7 +132,7 @@ const loadPackages = async ()=>{
|
|
|
132
132
|
const packageInfo = await loadPackage(packageName);
|
|
133
133
|
appendToPackagesConfig(packageInfo.name, {version: packageInfo.version, description: packageInfo.description, local: false});
|
|
134
134
|
} catch (error) {
|
|
135
|
-
console.error(`start package ${packageName} error: ${error.message}`)
|
|
135
|
+
console.error(`start package ${packageName} error[135]: ${error.message}`)
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
}else if(package.local === true && package.static != true){
|
|
@@ -147,7 +147,7 @@ const loadPackages = async ()=>{
|
|
|
147
147
|
appendToPackagesConfig(packageInfo.name, {version: packageInfo.version, description: packageInfo.description, local: true});
|
|
148
148
|
}
|
|
149
149
|
} catch (error) {
|
|
150
|
-
console.error(`start package ${packageName} error: ${error.message}`)
|
|
150
|
+
console.error(`start package ${packageName} error[150]: ${error.message}`)
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
}
|
|
@@ -71,6 +71,7 @@ const getAllPackages = async ()=>{
|
|
|
71
71
|
_package.instance_id = packageInfo.instanceID
|
|
72
72
|
_package.version = packageInfo.version
|
|
73
73
|
_package.homepage = packageInfo.homepage
|
|
74
|
+
_package.isUnmanaged = packageInfo.isUnmanaged
|
|
74
75
|
}else{
|
|
75
76
|
packages.push({
|
|
76
77
|
label: packageInfo.label || packageName,
|
|
@@ -84,7 +85,8 @@ const getAllPackages = async ()=>{
|
|
|
84
85
|
instance_id: packageInfo.instanceID,
|
|
85
86
|
status : 'enable',
|
|
86
87
|
version : packageInfo.version,
|
|
87
|
-
local: false
|
|
88
|
+
local: false,
|
|
89
|
+
isUnmanaged: packageInfo.isUnmanaged
|
|
88
90
|
})
|
|
89
91
|
}
|
|
90
92
|
})
|
|
@@ -129,7 +131,7 @@ const maintainSystemFiles = ()=>{
|
|
|
129
131
|
const getPackageVersions = async (packageName, options)=>{
|
|
130
132
|
//TODO 处理 registry_url
|
|
131
133
|
|
|
132
|
-
let registry_url = registryUrl(packageName.toLowerCase().split('/')[0]);
|
|
134
|
+
let registry_url = process.env.NPM_REGISTRY_URL || registryUrl(packageName.toLowerCase().split('/')[0]);
|
|
133
135
|
|
|
134
136
|
const result = await packageJson(packageName.toLowerCase(), {
|
|
135
137
|
allVersions: true,
|
|
@@ -282,10 +282,17 @@ async function yarnAddPackage(yarnPackage){
|
|
|
282
282
|
paths: [path.join(installDir, 'node_modules')]
|
|
283
283
|
}))
|
|
284
284
|
if(fs.existsSync(path.join(packagePath, 'package.service.js'))){
|
|
285
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, no-undef
|
|
286
|
+
const schema = require(path.join(packagePath, 'package.service.js'));
|
|
287
|
+
schema.settings.packageInfo = {
|
|
288
|
+
...schema.settings?.packageInfo,
|
|
289
|
+
...(schema.metadata && schema.metadata.$package ? schema.metadata.$package : {}),
|
|
290
|
+
}
|
|
285
291
|
steedosPackages.push({
|
|
286
292
|
name: parsed.name,
|
|
287
293
|
version: parsed.rawSpec,
|
|
288
|
-
path: packagePath
|
|
294
|
+
path: packagePath,
|
|
295
|
+
isUnmanaged: schema.settings.packageInfo.isUnmanaged
|
|
289
296
|
})
|
|
290
297
|
}
|
|
291
298
|
})
|
|
@@ -124,4 +124,22 @@ actions:
|
|
|
124
124
|
uninstall:
|
|
125
125
|
label: Uninstall
|
|
126
126
|
upgradePackage:
|
|
127
|
-
label: Upgrade Package
|
|
127
|
+
label: Upgrade Package
|
|
128
|
+
edit_npmrc:
|
|
129
|
+
label: Verification information
|
|
130
|
+
CustomLabels:
|
|
131
|
+
steedos_packages_tab_introduce_title: Introduction
|
|
132
|
+
steedos_packages_tab_components_title: Package Components
|
|
133
|
+
steedos_packages_tab_details_title: Details
|
|
134
|
+
steedos_packages_button_enable_dialog_title: Enable
|
|
135
|
+
steedos_packages_button_enable_dialog_confirm_text_prefix: "Make sure to enable \""
|
|
136
|
+
steedos_packages_button_enable_dialog_confirm_text_suffix: "\"?"
|
|
137
|
+
steedos_packages_button_enable_dialog_button_ok: Enable
|
|
138
|
+
steedos_packages_button_enable_dialog_message_success: Enabled Successfully
|
|
139
|
+
steedos_packages_button_edit_npmrc_dialog_describe: "##### Verification Information Description (.npmrc):\r- `; Set a new registry for scoped packages`\r- `@myscope:registry=https://mycustomregistry.example.org`\r- `; Configure authentication information for the new registry (optional)`\r- `//mycustomregistry.example.org:_authToken=\"Authentication Token\"`"
|
|
140
|
+
steedos_packages_button_installPackageFromUrl_dialog_field_registry: Registry
|
|
141
|
+
steedos_packages_button_installPackageFromUrl_dialog_field_registry_option_taobao: taobao
|
|
142
|
+
steedos_packages_button_installPackageFromUrl_dialog_field_registry_option_cnpm: cnpm
|
|
143
|
+
steedos_packages_button_installPackageFromUrl_dialog_field_registry_option_npmjs: npmjs
|
|
144
|
+
steedos_packages_button_installPackageFromUrl_dialog_describe1: "##### You can specify a version using one of the following options:\r- `package-name` Install the 'latest' version of the package.\r- `package-name@1.2.3` Install a specific version of the package from the registry.\r- `package-name@tag` Install a specific 'tag', such as beta, next, or latest."
|
|
145
|
+
steedos_packages_button_installPackageFromUrl_dialog_describe2: "##### You can also specify packages from different locations:\r- `package-name` Install the package from the npm registry.\r- `file:/path/to/local/folder` Install a package located on your local filesystem. This is useful for testing packages you haven’t published to the registry yet.\r- `file:/path/to/local/tarball.tgz` Install from a gzipped tarball, which can be used to share packages before publishing.\r- `link:/path/to/local/folder` Install a symbolic link to a package on your local filesystem. Useful in monorepo environments.\r- `<git remote url>` Install a package from a remote Git repository.\r- `<git remote url>#<branch/commit/tag>` Install a package from a specific git branch, commit, or tag in the remote Git repository.\r- `https://my-project.org/package.tgz` Install from a remote gzipped tarball."
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: steedos_packages
|
|
2
|
+
label: 软件包
|
|
3
|
+
description:
|
|
4
|
+
actions:
|
|
5
|
+
edit_npmrc:
|
|
6
|
+
label: 验证信息
|
|
7
|
+
CustomLabels:
|
|
8
|
+
steedos_packages_tab_introduce_title: 简介
|
|
9
|
+
steedos_packages_tab_components_title: 软件包组件
|
|
10
|
+
steedos_packages_tab_details_title: 详细信息
|
|
11
|
+
steedos_packages_button_enable_dialog_title: 启用
|
|
12
|
+
steedos_packages_button_enable_dialog_confirm_text_prefix: 确定要启用「
|
|
13
|
+
steedos_packages_button_enable_dialog_confirm_text_suffix: 」?
|
|
14
|
+
steedos_packages_button_enable_dialog_button_ok: 启用
|
|
15
|
+
steedos_packages_button_enable_dialog_message_success: 已启用
|
|
16
|
+
steedos_packages_button_edit_npmrc_dialog_describe: "##### 验证信息说明(.npmrc):\r- `; 为范围包设置新的注册表`\r- `@myscope:registry=https://mycustomregistry.example.org`\r- `; 配置新注册表的认证信息(可选)`\r- `//mycustomregistry.example.org:_authToken=\"认证信息\"`"
|
|
17
|
+
steedos_packages_button_installPackageFromUrl_dialog_field_registry: 镜像源
|
|
18
|
+
steedos_packages_button_installPackageFromUrl_dialog_field_registry_option_taobao: 淘宝源
|
|
19
|
+
steedos_packages_button_installPackageFromUrl_dialog_field_registry_option_cnpm: cnpm
|
|
20
|
+
steedos_packages_button_installPackageFromUrl_dialog_field_registry_option_npmjs: 官方源
|
|
21
|
+
steedos_packages_button_installPackageFromUrl_dialog_describe1: "##### 您可以使用以下选项之一指定版本: \r- `package-name`安装包的“最新”版本。 \r- `package-name@1.2.3`从以下位置安装包的特定版本 注册表。 \r- `package-name@tag`安装特定的“标签”。(例如)beta、next、latest"
|
|
22
|
+
steedos_packages_button_installPackageFromUrl_dialog_describe2: "##### 您还可以指定来自不同位置的包:\r- `package-name` 从 npm 注册表安装包 \r- `file:/path/to/local/folder`安装一个位于本地文件系统的包。这对于测试您尚未发布到注册表的软件包很有用。 \r- `file:/path/to/local/tarball.tgz`从 gzip 压缩的 tarball,可用于在发布包之前共享包。 \r- `link:/path/to/local/folder`安装指向软件包的符号链接:在本地文件系统上。适用于monorepo环境。 \r- `<git remote url>`从远程 Git 存储库安装包。 \r- `<git remote url>#<branch/commit/tag>`从远程安装软件包特定 git 分支、git commit 或 git 标签处的 git 存储库。 \r- `https://my-project.org/package.tgz` 从远程gzip压缩压缩包。"
|
|
23
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
disable: function (object_name, record_id) {
|
|
3
|
+
Steedos.sobject(object_name).retrieve(record_id).then((record)=>{
|
|
4
|
+
if(!record){
|
|
5
|
+
return SteedosUI.notification.error({message: '未找到软件包'})
|
|
6
|
+
}
|
|
7
|
+
SteedosUI.Modal.confirm({
|
|
8
|
+
title: t('steedos_packages.disable.title'),
|
|
9
|
+
content: t('steedos_packages.disable.text') + ` ${record.name}?`,
|
|
10
|
+
okText: t('steedos_packages.disable.title'),
|
|
11
|
+
cancelText: t('Cancel'),
|
|
12
|
+
onOk: function(){
|
|
13
|
+
Steedos.authRequest(Steedos.absoluteUrl('/api/nodes/disable'), {type: 'post', async: false, data: JSON.stringify({
|
|
14
|
+
module: record.name,
|
|
15
|
+
nodeID: window.$("#steedos_package_main_node").val()
|
|
16
|
+
}),
|
|
17
|
+
success: function(data){
|
|
18
|
+
if(data.status == 1){
|
|
19
|
+
SteedosUI.notification.error({message: data.msg});
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
setTimeout(function(){
|
|
23
|
+
SteedosUI.notification.success({
|
|
24
|
+
message: t('steedos_packages.disable.toastr_success')
|
|
25
|
+
});
|
|
26
|
+
window.location.reload()
|
|
27
|
+
}, 1000 * 2)
|
|
28
|
+
},
|
|
29
|
+
error: function(XMLHttpRequest){
|
|
30
|
+
SteedosUI.notification.error({message: XMLHttpRequest.responseJSON.msg});
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
},
|
|
38
|
+
disableVisible: function (object_name, record_id, permission, data) {
|
|
39
|
+
if(Steedos.settings.public.enable_saas){
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
const record = data?.record || {};
|
|
43
|
+
if(record.isUnmanaged){
|
|
44
|
+
return false
|
|
45
|
+
}
|
|
46
|
+
if (record.status === 'enable') {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
return false
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
name: edit_npmrc
|
|
2
|
+
amis_schema: |-
|
|
3
|
+
{
|
|
4
|
+
"type": "service",
|
|
5
|
+
"body": [
|
|
6
|
+
{
|
|
7
|
+
"type": "button",
|
|
8
|
+
"label": "${'CustomAction.steedos_packages.edit_npmrc' | t}",
|
|
9
|
+
"id": "u:edit_npmrc",
|
|
10
|
+
"editorState": "default",
|
|
11
|
+
"onEvent": {
|
|
12
|
+
"click": {
|
|
13
|
+
"weight": 0,
|
|
14
|
+
"actions": [
|
|
15
|
+
{
|
|
16
|
+
"actionType": "dialog",
|
|
17
|
+
"dialog": {
|
|
18
|
+
"type": "dialog",
|
|
19
|
+
"title": "${'CustomAction.steedos_packages.edit_npmrc' | t}",
|
|
20
|
+
"body": [
|
|
21
|
+
{
|
|
22
|
+
"type": "form",
|
|
23
|
+
"title": "表单",
|
|
24
|
+
"body": [
|
|
25
|
+
{
|
|
26
|
+
"type": "editor",
|
|
27
|
+
"label": false,
|
|
28
|
+
"name": "npmrc",
|
|
29
|
+
"id": "u:71b44f532def",
|
|
30
|
+
"language": "bat"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"id": "u:c9b0e17d4ebd",
|
|
34
|
+
"initApi": {
|
|
35
|
+
"url": "/api/nodes/npmrc",
|
|
36
|
+
"method": "get"
|
|
37
|
+
},
|
|
38
|
+
"api": {
|
|
39
|
+
"url": "/api/nodes/npmrc",
|
|
40
|
+
"method": "post",
|
|
41
|
+
"requestAdaptor": "",
|
|
42
|
+
"adaptor": "",
|
|
43
|
+
"messages": {}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"type": "tpl",
|
|
48
|
+
"tpl": "<br/>"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"type": "markdown",
|
|
52
|
+
"value": "${'steedos_packages_button_edit_npmrc_dialog_describe' | t}"
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"showCloseButton": true,
|
|
56
|
+
"showErrorMsg": true,
|
|
57
|
+
"showLoading": true,
|
|
58
|
+
"className": "app-popover",
|
|
59
|
+
"id": "u:00682dd0eb74",
|
|
60
|
+
"closeOnEsc": false,
|
|
61
|
+
"size": "lg"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"regions": [
|
|
70
|
+
"body"
|
|
71
|
+
],
|
|
72
|
+
"data": {
|
|
73
|
+
"context": {},
|
|
74
|
+
"dataComponentId": "",
|
|
75
|
+
"record_id": "",
|
|
76
|
+
"record": {},
|
|
77
|
+
"permissions": {}
|
|
78
|
+
},
|
|
79
|
+
"bodyClassName": "p-0",
|
|
80
|
+
"id": "u:743d34f49376"
|
|
81
|
+
}
|
|
82
|
+
is_enable: true
|
|
83
|
+
label: 验证信息
|
|
84
|
+
'on': list
|
|
85
|
+
type: amis_button
|
|
86
|
+
visible: true
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: 殷亮辉 yinlianghui@hotoa.com
|
|
3
|
+
* @Date: 2025-07-07 16:57:38
|
|
4
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
5
|
+
* @LastEditTime: 2025-09-01 17:04:07
|
|
6
|
+
*/
|
|
7
|
+
module.exports = {
|
|
8
|
+
enable: function (object_name, record_id) {
|
|
9
|
+
Steedos.sobject(object_name).retrieve(record_id).then((record)=>{
|
|
10
|
+
if(!record){
|
|
11
|
+
return SteedosUI.notification.error({message: '未找到软件包'})
|
|
12
|
+
}
|
|
13
|
+
console.log('record.....',record)
|
|
14
|
+
|
|
15
|
+
SteedosUI.Modal.confirm({
|
|
16
|
+
title: t('steedos_packages.enable.title'),
|
|
17
|
+
content: t('steedos_packages.enable.text') + ` ${record.name}?`,
|
|
18
|
+
okText: t('steedos_packages.enable.title'),
|
|
19
|
+
cancelText: t('Cancel'),
|
|
20
|
+
onOk: function(){
|
|
21
|
+
Steedos.authRequest(Steedos.absoluteUrl('/api/nodes/enable'), {type: 'post', async: false, data: JSON.stringify({
|
|
22
|
+
module: record.name,
|
|
23
|
+
nodeID: window.$("#steedos_package_main_node").val()
|
|
24
|
+
}),
|
|
25
|
+
success: function(data){
|
|
26
|
+
if(data.status == 1){
|
|
27
|
+
SteedosUI.notification.error({message: data.msg});
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
setTimeout(function(){
|
|
31
|
+
SteedosUI.notification.success({
|
|
32
|
+
message: t('steedos_packages.enable.toastr_success')
|
|
33
|
+
});
|
|
34
|
+
window.location.reload()
|
|
35
|
+
}, 1000 * 2)
|
|
36
|
+
},
|
|
37
|
+
error: function(XMLHttpRequest){
|
|
38
|
+
SteedosUI.notification.error({message: XMLHttpRequest.responseJSON.msg});
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
})
|
|
44
|
+
},
|
|
45
|
+
enableVisible: function (object_name,record_id, permission, data) {
|
|
46
|
+
if(Steedos.settings.public.enable_saas){
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
const record = data?.record || {};
|
|
50
|
+
if(record.isUnmanaged){
|
|
51
|
+
return false
|
|
52
|
+
}
|
|
53
|
+
if(record.status !== 'enable'){
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
return false
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
name: installPackageFromUrl
|
|
2
|
+
label: 手动安装软件包
|
|
3
|
+
'on': list
|
|
4
|
+
#TODO: ${'steedos_packages.install.initialization_failure' | t} ,${'steedos_packages.install.installation_success' | t},${'steedos_packages.install.installation_failure' | t},等待amis合并分支,可用该代码,用于form组件的message属性
|
|
5
|
+
amis_schema: |-
|
|
6
|
+
{
|
|
7
|
+
"type": "service",
|
|
8
|
+
"body": [
|
|
9
|
+
{
|
|
10
|
+
"type": "button",
|
|
11
|
+
"label": "${'steedos_packages.install.install_package_from_url' | t}",
|
|
12
|
+
"id": "u:install_package_from_url",
|
|
13
|
+
"onEvent": {
|
|
14
|
+
"click": {
|
|
15
|
+
"actions": [
|
|
16
|
+
{
|
|
17
|
+
"actionType": "dialog",
|
|
18
|
+
"dialog": {
|
|
19
|
+
"type": "dialog",
|
|
20
|
+
"title": "${'steedos_packages.install.install_package_from_url' | t}",
|
|
21
|
+
"data": {
|
|
22
|
+
"registryOptions": [
|
|
23
|
+
{
|
|
24
|
+
"label": "${'steedos_packages_button_installPackageFromUrl_dialog_field_registry_option_taobao' | t}",
|
|
25
|
+
"value": "https://registry.npmmirror.com"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"label": "${'steedos_packages_button_installPackageFromUrl_dialog_field_registry_option_cnpm' | t}",
|
|
29
|
+
"value": "https://r.cnpmjs.org"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"label": "${'steedos_packages_button_installPackageFromUrl_dialog_field_registry_option_npmjs' | t}",
|
|
33
|
+
"value": "https://registry.npmjs.org"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"body": [
|
|
38
|
+
{
|
|
39
|
+
"type": "form",
|
|
40
|
+
"id": "u:add9d810b386",
|
|
41
|
+
"title": "",
|
|
42
|
+
"body": [
|
|
43
|
+
{
|
|
44
|
+
"label": "${'steedos_packages.install.package_name' | t}",
|
|
45
|
+
"type": "input-text",
|
|
46
|
+
"name": "package",
|
|
47
|
+
"id": "u:524cb8f8d888",
|
|
48
|
+
"required": true
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"label": "${'steedos_packages_button_installPackageFromUrl_dialog_field_registry' | t}",
|
|
52
|
+
"type": "input-text",
|
|
53
|
+
"name": "registry",
|
|
54
|
+
"id": "u:524cb8f8d666",
|
|
55
|
+
"required": false,
|
|
56
|
+
"source": "${registryOptions}"
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"mode": "normal",
|
|
60
|
+
"api": {
|
|
61
|
+
"method": "post",
|
|
62
|
+
"url": "${context.rootUrl}/api/nodes/package/add",
|
|
63
|
+
"data": {
|
|
64
|
+
"&": "$$"
|
|
65
|
+
},
|
|
66
|
+
"dataType": "json",
|
|
67
|
+
"requestAdaptor": "api.data = {package: api.body.registry ? `${api.body.package} --registry ${api.body.registry}` : api.body.package};",
|
|
68
|
+
"headers": {
|
|
69
|
+
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"messages": {
|
|
73
|
+
"fetchFailed": "Initialization failed",
|
|
74
|
+
"saveSuccess": "Installation successful",
|
|
75
|
+
"saveFailed": "Installation failed"
|
|
76
|
+
},
|
|
77
|
+
"onEvent": {
|
|
78
|
+
"submitSucc": {
|
|
79
|
+
"weight": 0,
|
|
80
|
+
"actions": [
|
|
81
|
+
{
|
|
82
|
+
"actionType": "wait",
|
|
83
|
+
"args": {
|
|
84
|
+
"time": 3000
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"actionType": "broadcast",
|
|
89
|
+
"args": {
|
|
90
|
+
"eventName": "@data.changed.steedos_packages"
|
|
91
|
+
},
|
|
92
|
+
"data": {
|
|
93
|
+
"objectName": "steedos_packages",
|
|
94
|
+
"recordId": "install"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"type": "tpl",
|
|
103
|
+
"tpl": "<br/>"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"type": "markdown",
|
|
107
|
+
"value": "${'steedos_packages_button_installPackageFromUrl_dialog_describe1' | t}"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"type": "markdown",
|
|
111
|
+
"value": "${'steedos_packages_button_installPackageFromUrl_dialog_describe2' | t}"
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"id": "u:efa30bace722",
|
|
115
|
+
"closeOnEsc": true,
|
|
116
|
+
"closeOnOutside": false,
|
|
117
|
+
"showCloseButton": true,
|
|
118
|
+
"size": "lg"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"weight": 0
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
],
|
|
127
|
+
"regions": [
|
|
128
|
+
"body"
|
|
129
|
+
],
|
|
130
|
+
"data": {
|
|
131
|
+
|
|
132
|
+
},
|
|
133
|
+
"bodyClassName": "p-0",
|
|
134
|
+
"id": "u:43363bc48c62"
|
|
135
|
+
}
|
|
136
|
+
is_enable: true
|
|
137
|
+
type: amis_button
|
|
138
|
+
visible: true
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
reload: function (object_name, record_id, permission, data) {
|
|
3
|
+
SteedosUI.notification.info({message: t('steedos_packages.reload.toastr_info')})
|
|
4
|
+
const record = data?.record || {};
|
|
5
|
+
//TODO nodeID
|
|
6
|
+
Steedos.authRequest(Steedos.absoluteUrl('/api/nodes/reload'), {type: 'post', async: false, data: JSON.stringify({
|
|
7
|
+
module: record.name,
|
|
8
|
+
nodeID: record.node_id
|
|
9
|
+
}),
|
|
10
|
+
success: function(){
|
|
11
|
+
setTimeout(function(){
|
|
12
|
+
SteedosUI.notification.success({message: t('steedos_packages.reload.toastr_success')})
|
|
13
|
+
window.location.reload()
|
|
14
|
+
}, 1000 * 5)
|
|
15
|
+
},
|
|
16
|
+
error: function(XMLHttpRequest){
|
|
17
|
+
SteedosUI.notification.error({message: XMLHttpRequest.responseJSON.error})
|
|
18
|
+
}
|
|
19
|
+
})
|
|
20
|
+
},
|
|
21
|
+
reloadVisible: function (object_name,record_id, permission, data) {
|
|
22
|
+
if(Steedos.settings.public.enable_saas){
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const record = data?.record;
|
|
26
|
+
if(record.isUnmanaged){
|
|
27
|
+
return false
|
|
28
|
+
}
|
|
29
|
+
if(record.status === 'enable'){
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
return false
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: 殷亮辉 yinlianghui@hotoa.com
|
|
3
|
+
* @Date: 2025-07-07 16:57:38
|
|
4
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
5
|
+
* @LastEditTime: 2025-09-02 14:13:23
|
|
6
|
+
*/
|
|
7
|
+
module.exports = {
|
|
8
|
+
uninstall: function (object_name, record_id) {
|
|
9
|
+
Steedos.sobject(object_name).retrieve(record_id).then((record)=>{
|
|
10
|
+
if(!record){
|
|
11
|
+
return SteedosUI.notification.error({message: '未找到软件包'})
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
SteedosUI.Modal.confirm({
|
|
15
|
+
title: t('steedos_packages.uninstall.text') + ` ${record.name}?` ,
|
|
16
|
+
content: t('steedos_packages.uninstall.content'),
|
|
17
|
+
okText: t('steedos_packages.uninstall.title'),
|
|
18
|
+
cancelText: t('Cancel'),
|
|
19
|
+
width: 480,
|
|
20
|
+
onOk: function(){
|
|
21
|
+
return new Promise((resolve, reject) => {
|
|
22
|
+
Steedos.authRequest(Steedos.absoluteUrl('/api/nodes/uninstall'), {type: 'post', async: false, data: JSON.stringify({
|
|
23
|
+
module: record.name,
|
|
24
|
+
nodeID: window.$("#steedos_package_main_node").val()
|
|
25
|
+
}),
|
|
26
|
+
success: function(data){
|
|
27
|
+
if(data.status == 1){
|
|
28
|
+
SteedosUI.notification.error({message: data.msg});
|
|
29
|
+
resolve(data);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
setTimeout(function(){
|
|
33
|
+
SteedosUI.notification.success({
|
|
34
|
+
message: t('steedos_packages.uninstall.toastr_success')
|
|
35
|
+
});
|
|
36
|
+
resolve(data);
|
|
37
|
+
navigate("/app/admin/steedos_packages")
|
|
38
|
+
}, 1000 * 2)
|
|
39
|
+
},
|
|
40
|
+
error: function(XMLHttpRequest){
|
|
41
|
+
SteedosUI.notification.error({message: XMLHttpRequest.responseJSON.msg});
|
|
42
|
+
reject()
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
})
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
})
|
|
49
|
+
},
|
|
50
|
+
uninstallVisible: function (object_name,record_id, permission, data) {
|
|
51
|
+
if(Steedos.settings.public.enable_saas){
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const record = data?.record;
|
|
55
|
+
if(record.local || record.static){
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
if(record.status){
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
return false
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: baozhoutao@steedos.com
|
|
3
|
+
* @Date: 2022-12-09 18:23:36
|
|
4
|
+
* @LastEditors: baozhoutao@steedos.com
|
|
5
|
+
* @LastEditTime: 2025-03-07 11:59:52
|
|
6
|
+
* @Description:
|
|
7
|
+
*/
|
|
8
|
+
module.exports = {
|
|
9
|
+
upgradePackageVisible: function (object_name, record_id, permission, data) {
|
|
10
|
+
if(Steedos.settings.public.enable_saas){
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const record = data?.record;
|
|
14
|
+
if(record.isUnmanaged){
|
|
15
|
+
return false
|
|
16
|
+
}
|
|
17
|
+
if (record.status === 'enable' && !record.local && !record.static) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
return false
|
|
21
|
+
}
|
|
22
|
+
}
|