Browse Source

change desc to description (#1083)

* Dependency workflow add dependency correction value

* Download workflow instance map width adjustment and change "desc" field to "description"

* The third-party library that builds the dependency is recommended to be placed in 'devDependencies'

* Tree chart and Gantt chart style modification

* The workflow instance can be deleted only when its status is success, failure, stop and pause.

* change desc to description
pull/2/head
break60 5 years ago committed by bao liang
parent
commit
bdad19dbff
  1. 10
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue
  2. 12
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue
  3. 10
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/udp/udp.vue
  4. 2
      dolphinscheduler-ui/src/js/conf/home/pages/datasource/pages/list/_source/createDataSource.vue
  5. 2
      dolphinscheduler-ui/src/js/conf/home/pages/datasource/pages/list/_source/list.vue
  6. 4
      dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue
  7. 8
      dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/list/_source/createProject.vue
  8. 4
      dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/list/_source/list.vue
  9. 2
      dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/_source/list.vue
  10. 6
      dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/create/index.vue
  11. 2
      dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/list/_source/list.vue
  12. 10
      dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/list/_source/rename.vue
  13. 8
      dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/function/_source/createUdf.vue
  14. 2
      dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/function/_source/list.vue
  15. 2
      dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/resource/_source/list.vue
  16. 10
      dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/resource/_source/rename.vue
  17. 8
      dolphinscheduler-ui/src/js/conf/home/pages/security/pages/tenement/_source/createTenement.vue
  18. 2
      dolphinscheduler-ui/src/js/conf/home/pages/security/pages/tenement/_source/list.vue
  19. 2
      dolphinscheduler-ui/src/js/conf/home/pages/security/pages/users/index.vue
  20. 8
      dolphinscheduler-ui/src/js/conf/home/pages/security/pages/warningGroups/_source/createWarning.vue
  21. 2
      dolphinscheduler-ui/src/js/conf/home/pages/security/pages/warningGroups/_source/list.vue
  22. 10
      dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js
  23. 6
      dolphinscheduler-ui/src/js/conf/home/store/dag/mutations.js
  24. 4
      dolphinscheduler-ui/src/js/conf/home/store/dag/state.js
  25. 4
      dolphinscheduler-ui/src/js/module/components/fileUpdate/definitionUpdate.vue
  26. 8
      dolphinscheduler-ui/src/js/module/components/fileUpdate/fileUpdate.vue
  27. 2
      dolphinscheduler-ui/src/js/module/components/fileUpdate/udfUpdate.vue

10
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue

@ -24,7 +24,7 @@
:id="v"
v-for="(item,v) in tasksTypeList"
@mousedown="_getDagId(v)">
<div data-toggle="tooltip" :title="item.desc">
<div data-toggle="tooltip" :title="item.description">
<div class="icos" :class="'icos-' + v" ></div>
</div>
</div>
@ -66,7 +66,7 @@
:class="_operationClass(item)"
:id="item.code"
@click="_ckOperation(item,$event)">
<i class="iconfont" v-html="item.icon" data-toggle="tooltip" :title="item.desc" ></i>
<i class="iconfont" v-html="item.icon" data-toggle="tooltip" :title="item.description" ></i>
</a>
</div>
<x-button
@ -196,9 +196,9 @@
let state = res.processInstanceState
let taskList = res.taskList
let idArr = allNodesId()
const titleTpl = (item, desc) => {
const titleTpl = (item, description) => {
let $item = _.filter(taskList, v => v.name === item.name)[0]
return `<div style="text-align: left">${i18n.$t('Name')}${$item.name}</br>${i18n.$t('State')}${desc}</br>${i18n.$t('type')}${$item.taskType}</br>${i18n.$t('host')}${$item.host || '-'}</br>${i18n.$t('Retry Count')}${$item.retryTimes}</br>${i18n.$t('Submit Time')}${formatDate($item.submitTime)}</br>${i18n.$t('Start Time')}${formatDate($item.startTime)}</br>${i18n.$t('End Time')}${$item.endTime ? formatDate($item.endTime) : '-'}</br></div>`
return `<div style="text-align: left">${i18n.$t('Name')}${$item.name}</br>${i18n.$t('State')}${description}</br>${i18n.$t('type')}${$item.taskType}</br>${i18n.$t('host')}${$item.host || '-'}</br>${i18n.$t('Retry Count')}${$item.retryTimes}</br>${i18n.$t('Submit Time')}${formatDate($item.submitTime)}</br>${i18n.$t('Start Time')}${formatDate($item.startTime)}</br>${i18n.$t('End Time')}${$item.endTime ? formatDate($item.endTime) : '-'}</br></div>`
}
// remove tip state dom
@ -212,7 +212,7 @@
dom.attr('data-state-id', v1.stateId)
dom.attr('data-dependent-result', v1.dependentResult || '')
state.append(`<b class="iconfont ${v1.isSpin ? 'fa fa-spin' : ''}" style="color:${v1.color}" data-toggle="tooltip" data-html="true" data-container="body">${v1.icoUnicode}</b>`)
state.find('b').attr('title', titleTpl(v2, v1.desc))
state.find('b').attr('title', titleTpl(v2, v1.description))
}
})
})

12
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue

@ -60,7 +60,7 @@
</div>
</div>
<!-- desc -->
<!-- description -->
<div class="clearfix list">
<div class="text-box">
<span>{{$t('Description')}}</span>
@ -72,7 +72,7 @@
:autosize="{minRows:2}"
type="textarea"
:disabled="isDetails"
v-model="desc"
v-model="description"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
@ -229,8 +229,8 @@
spinnerLoading: false,
// node name
name: ``,
// desc
desc: '',
// description
description: '',
// Node echo data
backfillItem: {},
// Resource(list)
@ -377,7 +377,7 @@
id: this.id,
name: this.name,
params: this.params,
desc: this.desc,
description: this.description,
runFlag: this.runFlag,
dependence: this.dependence,
maxRetryTimes: this.maxRetryTimes,
@ -452,7 +452,7 @@
this.name = o.name
this.taskInstancePriority = o.taskInstancePriority
this.runFlag = o.runFlag || 'NORMAL'
this.desc = o.desc
this.description = o.description
this.maxRetryTimes = o.maxRetryTimes
this.retryInterval = o.retryInterval
this.workerGroupId = o.workerGroupId

10
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/udp/udp.vue

@ -34,7 +34,7 @@
<div style="padding-top: 12px;">
<x-input
type="textarea"
v-model="desc"
v-model="description"
:autosize="{minRows:2}"
:placeholder="$t('Please enter description(optional)')"
autocomplete="off">
@ -101,8 +101,8 @@
return {
// dag name
name: '',
// dag desc
desc: '',
// dag description
description: '',
// Global custom parameters
udpList: [],
// Global custom parameters
@ -140,7 +140,7 @@
this.store.commit('dag/setName', _.cloneDeep(this.name))
this.store.commit('dag/setTimeout', _.cloneDeep(this.timeout))
this.store.commit('dag/setTenantId', _.cloneDeep(this.tenantId))
this.store.commit('dag/setDesc', _.cloneDeep(this.desc))
this.store.commit('dag/setDesc', _.cloneDeep(this.description))
this.store.commit('dag/setSyncDefine', this.syncDefine)
},
/**
@ -201,7 +201,7 @@
this.udpList = dag.globalParams
this.udpListCache = dag.globalParams
this.name = dag.name
this.desc = dag.desc
this.description = dag.description
this.syncDefine = dag.syncDefine
this.timeout = dag.timeout || 0
this.checkedTimeout = this.timeout !== 0

2
dolphinscheduler-ui/src/js/conf/home/pages/datasource/pages/list/_source/createDataSource.vue

@ -162,7 +162,7 @@
type: 'MYSQL',
// name
name: '',
// desc
// description
note: '',
// host
host: '',

2
dolphinscheduler-ui/src/js/conf/home/pages/datasource/pages/list/_source/list.vue

@ -64,7 +64,7 @@
</m-tooltips-JSON>
</td>
<td>
<span v-if="item.note" class="ellipsis" v-tooltip="item.note">{{item.note}}</span>
<span v-if="item.note" class="ellipsis" v-tooltip.large.top.start="item.note">{{item.note}}</span>
<span v-else>-</span>
</td>
<td>

4
dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue

@ -69,7 +69,7 @@
<span v-else>-</span>
</td>
<td>
<span v-if="item.desc" class="ellipsis" v-tooltip="item.desc">{{item.desc}}</span>
<span v-if="item.description" class="ellipsis" v-tooltip.large.top.start="item.description">{{item.description}}</span>
<span v-else>-</span>
</td>
<td>
@ -153,7 +153,7 @@
methods: {
...mapActions('dag', ['editProcessState', 'getStartCheck', 'getReceiver', 'deleteDefinition', 'batchDeleteDefinition','exportDefinition']),
_rtPublishStatus (code) {
return _.filter(publishStatus, v => v.code === code)[0].desc
return _.filter(publishStatus, v => v.code === code)[0].description
},
_treeView (item) {
this.$router.push({ path: `/projects/definition/tree/${item.id}` })

8
dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/list/_source/createProject.vue

@ -34,7 +34,7 @@
<template slot="content">
<x-input
type="textarea"
v-model="desc"
v-model="description"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
@ -56,7 +56,7 @@
data () {
return {
store,
desc: '',
description: '',
projectName: ''
}
},
@ -71,7 +71,7 @@
let param = {
projectName: _.trim(this.projectName),
desc: _.trim(this.desc)
description: _.trim(this.description)
}
// edit
@ -104,7 +104,7 @@
created () {
if (this.item) {
this.projectName = this.item.name
this.desc = this.item.desc
this.description = this.item.description
}
},
mounted () {

4
dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/list/_source/list.vue

@ -17,7 +17,7 @@
<template>
<div class="list-model">
<div class="table-box">
<table>
<table class="fixed">
<tr>
<th>
<span>{{$t('#')}}</span>
@ -66,7 +66,7 @@
<span>{{item.instRunningCount}}</span>
</td>
<td>
<span v-if="item.desc" class="ellipsis" v-tooltip="item.desc">{{item.desc}}</span>
<span v-if="item.description" class="ellipsis" v-tooltip.large.top.start="item.description">{{item.description}}</span>
<span v-else>-</span>
</td>
<td>

2
dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/_source/list.vue

@ -61,7 +61,7 @@
<span>{{parseInt(pageNo === 1 ? ($index + 1) : (($index + 1) + (pageSize * (pageNo - 1))))}}</span>
</td>
<td>
<span class="ellipsis">{{item.name}}</span>
<span class="ellipsis" :title="item.name">{{item.name}}</span>
</td>
<td><a href="javascript:" class="links" @click="_go(item)"><span class="ellipsis">{{item.processInstanceName}}</span></a></td>
<td><span>{{item.taskType}}</span></td>

6
dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/create/index.vue

@ -48,7 +48,7 @@
<template slot="content">
<x-input
type="textarea"
v-model="desc"
v-model="description"
style="width: 430px;"
:placeholder="$t('Please enter description')"
autocomplete="off">
@ -92,7 +92,7 @@
return {
suffix: 'sh',
fileName: '',
desc: '',
description: '',
fileTypeList: filtTypeArr,
content: '',
spinnerLoading: false
@ -108,7 +108,7 @@
type: 'FILE',
fileName: this.fileName,
suffix: this.suffix,
desc: this.desc,
description: this.description,
content: editor.getValue()
}).then(res => {
this.$message.success(res.msg)

2
dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/list/_source/list.vue

@ -52,7 +52,7 @@
</td>
<td><span class="ellipsis">{{item.fileName}}</span></td>
<td>
<span v-if="item.description" class="ellipsis" v-tooltip="item.description">{{item.description}}</span>
<span v-if="item.description" class="ellipsis" v-tooltip.large.top.start="item.description">{{item.description}}</span>
<span v-else>-</span>
</td>
<td>

10
dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/list/_source/rename.vue

@ -34,7 +34,7 @@
<template slot="content">
<x-input
type="textarea"
v-model="desc"
v-model="description"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
@ -55,7 +55,7 @@
data () {
return {
store,
desc: '',
description: '',
name: ''
}
},
@ -67,7 +67,7 @@
this._verification().then(res => {
if (this.name === this.item.alias) {
return new Promise((resolve,reject) => {
this.desc === this.item.description ? reject({msg:'内容未修改'}) : resolve()
this.description === this.item.description ? reject({msg:'内容未修改'}) : resolve()
})
}else{
return this.store.dispatch('resource/resourceVerifyName', {
@ -78,7 +78,7 @@
}).then(res => {
return this.store.dispatch('resource/resourceRename', {
name: this.name,
desc: this.desc,
description: this.description,
id: this.item.id,
type: 'FILE'
})
@ -109,7 +109,7 @@
let item = this.item || {}
if (item) {
this.name = item.alias
this.desc = item.description
this.description = item.description
}
},
mounted () {

8
dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/function/_source/createUdf.vue

@ -101,7 +101,7 @@
<template slot="content">
<x-input
type="textarea"
v-model="desc"
v-model="description"
:placeholder="$t('Please enter a instructions')">
</x-input>
</template>
@ -128,7 +128,7 @@
className: '',
argTypes: '',
database: '',
desc: '',
description: '',
resourceId: {},
udfResourceList: [],
isUpdate: false,
@ -164,7 +164,7 @@
className: this.className,
argTypes: this.argTypes, // Can not pass this parameter
database: this.database, // Can not pass this parameter
desc: this.desc,
description: this.description,
resourceId: this.resourceId.id
}
@ -267,7 +267,7 @@
this.className = this.item.className || ''
this.argTypes = this.item.argTypes || ''
this.database = this.item.database || ''
this.desc = this.item.description || ''
this.description = this.item.description || ''
this.resourceId = _.filter(this.udfResourceList, v => v.id === this.item.resourceId)[0]
} else {
this.resourceId = this.udfResourceList.length && this.udfResourceList[0] || []

2
dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/function/_source/list.vue

@ -67,7 +67,7 @@ v-ps<template>
<span>{{item.type}}</span>
</td>
<td>
<span v-if="item.description" class="ellipsis" v-tooltip="item.description">{{item.description}}</span>
<span v-if="item.description" class="ellipsis" v-tooltip.large.top.start="item.description">{{item.description}}</span>
<span v-else>-</span>
</td>
<td>

2
dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/resource/_source/list.vue

@ -58,7 +58,7 @@
<span>{{_rtSize(item.size)}}</span>
</td>
<td>
<span v-if="item.description" class="ellipsis" v-tooltip="item.description">{{item.description}}</span>
<span v-if="item.description" class="ellipsis" v-tooltip.large.top.start="item.description">{{item.description}}</span>
<span v-else>-</span>
</td>
<td>

10
dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/resource/_source/rename.vue

@ -34,7 +34,7 @@
<template slot="content">
<x-input
type="textarea"
v-model="desc"
v-model="description"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
@ -55,7 +55,7 @@
data () {
return {
store,
desc: '',
description: '',
name: ''
}
},
@ -67,7 +67,7 @@
this._verification().then(res => {
if (this.name === this.item.alias) {
return new Promise((resolve,reject) => {
this.desc === this.item.description ? reject({msg:'内容未修改'}) : resolve()
this.description === this.item.description ? reject({msg:'内容未修改'}) : resolve()
})
}else{
return this.store.dispatch('resource/resourceVerifyName', {
@ -78,7 +78,7 @@
}).then(res => {
return this.store.dispatch('resource/resourceRename', {
name: this.name,
desc: this.desc,
description: this.description,
id: this.item.id,
type: 'UDF'
})
@ -108,7 +108,7 @@
let item = this.item || {}
if (item) {
this.name = item.alias
this.desc = item.description
this.description = item.description
}
},
mounted () {

8
dolphinscheduler-ui/src/js/conf/home/pages/security/pages/tenement/_source/createTenement.vue

@ -62,7 +62,7 @@
<template slot="content">
<x-input
type="textarea"
v-model="desc"
v-model="description"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
@ -88,7 +88,7 @@
queueId: {},
tenantCode: '',
tenantName: '',
desc: ''
description: ''
}
},
props: {
@ -152,7 +152,7 @@
tenantCode: this.tenantCode,
tenantName: this.tenantName,
queueId: this.queueId.id,
desc: this.desc
description: this.description
}
if (this.item) {
param.id = this.item.id
@ -181,7 +181,7 @@
})
this.tenantCode = this.item.tenantCode
this.tenantName = this.item.tenantName
this.desc = this.item.desc
this.description = this.item.description
}
})
},

2
dolphinscheduler-ui/src/js/conf/home/pages/security/pages/tenement/_source/list.vue

@ -59,7 +59,7 @@
</span>
</td>
<td>
<span v-if="item.desc" class="ellipsis" v-tooltip="item.desc">{{item.desc}}</span>
<span v-if="item.description" class="ellipsis" v-tooltip.large.top.start="item.description">{{item.description}}</span>
<span v-else>-</span>
</td>
<td>

2
dolphinscheduler-ui/src/js/conf/home/pages/security/pages/users/index.vue

@ -18,7 +18,7 @@
<m-list-construction :title="$t('User Manage')">
<template slot="conditions">
<m-conditions @on-conditions="_onConditions">
<template slot="button-group">
<template slot="button-group" v-if="userList.length">
<x-button type="ghost" size="small" @click="_create('')">{{$t('Create User')}}</x-button>
</template>
</m-conditions>

8
dolphinscheduler-ui/src/js/conf/home/pages/security/pages/warningGroups/_source/createWarning.vue

@ -50,7 +50,7 @@
<template slot="content">
<x-input
type="textarea"
v-model="desc"
v-model="description"
:placeholder="$t('Please enter description')">
</x-input>
</template>
@ -72,7 +72,7 @@
store,
groupName: '',
groupType: 'EMAIL',
desc: '',
description: '',
options: [{ code: `${i18n.$t('Email')}`, id: 'EMAIL' }, { code: `${i18n.$t('SMS')}`, id: 'SMS' }]
}
},
@ -111,7 +111,7 @@
let param = {
groupName: this.groupName,
groupType: this.groupType,
desc: this.desc
description: this.description
}
if (this.item) {
param.id = this.item.id
@ -134,7 +134,7 @@
if (this.item) {
this.groupName = this.item.groupName
this.groupType = this.item.groupType
this.desc = this.item.desc
this.description = this.item.description
}
},
mounted () {

2
dolphinscheduler-ui/src/js/conf/home/pages/security/pages/warningGroups/_source/list.vue

@ -52,7 +52,7 @@
</td>
<td><span>{{item.groupType === 'EMAIL' ? `${$t('Email')}` : `${$t('SMS')}`}}</span></td>
<td>
<span v-if="item.desc" class="ellipsis" v-tooltip="item.desc">{{item.desc}}</span>
<span v-if="item.description" class="ellipsis" v-tooltip.large.top.start="item.description">{{item.description}}</span>
<span v-else>-</span>
</td>
<td>

10
dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js

@ -100,8 +100,8 @@ export default {
}, res => {
// name
state.name = res.data.name
// desc
state.desc = res.data.desc
// description
state.description = res.data.description
// connects
state.connects = JSON.parse(res.data.connects)
// locations
@ -133,7 +133,7 @@ export default {
// name
state.name = res.data.name
// desc
state.desc = res.data.desc
state.description = res.data.description
// connects
state.connects = JSON.parse(res.data.connects)
// locations
@ -173,7 +173,7 @@ export default {
io.post(`projects/${state.projectName}/process/save`, {
processDefinitionJson: JSON.stringify(data),
name: _.trim(state.name),
desc: _.trim(state.desc),
description: _.trim(state.description),
locations: JSON.stringify(state.locations),
connects: JSON.stringify(state.connects)
}, res => {
@ -199,7 +199,7 @@ export default {
locations: JSON.stringify(state.locations),
connects: JSON.stringify(state.connects),
name: _.trim(state.name),
desc: _.trim(state.desc),
description: _.trim(state.description),
id: payload
}, res => {
resolve(res)

6
dolphinscheduler-ui/src/js/conf/home/store/dag/mutations.js

@ -71,10 +71,10 @@ export default {
state.globalParams = payload
},
/**
* set desc
* set description
*/
setDesc (state, payload) {
state.desc = payload
state.description = payload
},
/**
* Whether to update the process definition
@ -104,7 +104,7 @@ export default {
state.globalParams = payload && payload.globalParams || []
state.tasks = payload && payload.tasks || []
state.name = payload && payload.name || ''
state.desc = payload && payload.desc || ''
state.description = payload && payload.description || ''
state.timeout = payload && payload.timeout || 0
state.tenantId = payload && payload.tenantId || -1
state.processListS = payload && payload.processListS || []

4
dolphinscheduler-ui/src/js/conf/home/store/dag/state.js

@ -23,8 +23,8 @@ let projectName = localStore.getItem('projectName')
export default {
// name
name: '',
// desc
desc: '',
// description
description: '',
// Node global parameter
globalParams: [],
// Node information

4
dolphinscheduler-ui/src/js/module/components/fileUpdate/definitionUpdate.vue

@ -89,8 +89,8 @@
store,
// name
name: '',
// desc
desc: '',
// description
description: '',
// progress
progress: 0,
// file

8
dolphinscheduler-ui/src/js/module/components/fileUpdate/fileUpdate.vue

@ -60,7 +60,7 @@
<template slot="content">
<x-input
type="textarea"
v-model="desc"
v-model="description"
:disabled="progress !== 0"
:placeholder="$t('Please enter description')"
autocomplete="off">
@ -101,8 +101,8 @@
store,
// name
name: '',
// desc
desc: '',
// description
description: '',
// progress
progress: 0,
// file
@ -172,7 +172,7 @@
formData.append('file', this.file)
formData.append('type', this.type)
formData.append('name', this.name)
formData.append('desc', this.desc)
formData.append('description', this.description)
io.post(`resources/create`, res => {
this.$message.success(res.msg)
resolve()

2
dolphinscheduler-ui/src/js/module/components/fileUpdate/udfUpdate.vue

@ -106,7 +106,7 @@
formData.append('file', this.file)
formData.append('type', 'UDF')
formData.append('name', this.udfName)
formData.append('desc', this.udfDesc)
formData.append('description', this.udfDesc)
this.spinnerLoading = true
this.$emit('on-update-present', false)
io.post(`resources/create`, res => {

Loading…
Cancel
Save