@things-factory/resource-base 7.0.1-alpha.9 → 7.0.1-alpha.92
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/dist-server/index.js +0 -1
- package/dist-server/index.js.map +1 -1
- package/dist-server/service/entity/entity-mutation.js +2 -6
- package/dist-server/service/entity/entity-mutation.js.map +1 -1
- package/dist-server/service/entity/entity.js +1 -1
- package/dist-server/service/entity/entity.js.map +1 -1
- package/dist-server/service/entity-column/entity-column.js +1 -1
- package/dist-server/service/entity-column/entity-column.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -4
- package/server/index.ts +0 -1
- package/server/service/entity/entity-mutation.ts +4 -17
- package/server/service/entity/entity.ts +1 -1
- package/server/service/entity-column/entity-column.ts +1 -1
- package/things-factory.config.js +1 -5
- package/client/bootstrap.js +0 -4
- package/client/index.js +0 -2
- package/client/menu-meta.js +0 -77
- package/client/mixin/resource-parser.js +0 -178
- package/dist-server/constants/del-strategy-type.js +0 -10
- package/dist-server/constants/del-strategy-type.js.map +0 -1
- package/dist-server/migrations/index.js +0 -12
- package/dist-server/migrations/index.js.map +0 -1
- package/server/constants/del-strategy-type.ts +0 -6
- package/server/migrations/index.ts +0 -9
package/package.json
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/resource-base",
|
|
3
|
-
"version": "7.0.1-alpha.
|
|
3
|
+
"version": "7.0.1-alpha.92",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
|
-
"browser": "client/index.js",
|
|
6
5
|
"things-factory": true,
|
|
7
6
|
"author": "",
|
|
8
7
|
"description": "Module to manage searching resource in application.",
|
|
@@ -24,7 +23,7 @@
|
|
|
24
23
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
|
25
24
|
},
|
|
26
25
|
"dependencies": {
|
|
27
|
-
"@things-factory/auth-base": "^7.0.1-alpha.
|
|
26
|
+
"@things-factory/auth-base": "^7.0.1-alpha.92"
|
|
28
27
|
},
|
|
29
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "9cd59ab35277b7c8ac1e3677beb4bdca89a97980"
|
|
30
29
|
}
|
package/server/index.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { DEL_STRATEGY } from '../../constants/del-strategy-type'
|
|
2
1
|
import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
3
2
|
import { In } from 'typeorm'
|
|
4
|
-
import { EntityColumn } from '../entity-column/entity-column'
|
|
5
3
|
|
|
6
4
|
import { Entity } from './entity'
|
|
7
5
|
import { EntityPatch, NewEntity } from './entity-type'
|
|
@@ -29,11 +27,7 @@ export class EntityMutation {
|
|
|
29
27
|
|
|
30
28
|
@Directive('@transaction')
|
|
31
29
|
@Mutation(returns => Entity, { description: "To modify Entity' information" })
|
|
32
|
-
async updateEntity(
|
|
33
|
-
@Arg('id', type => String) id: string,
|
|
34
|
-
@Arg('patch', type => EntityPatch) patch: EntityPatch,
|
|
35
|
-
@Ctx() context: ResolverContext
|
|
36
|
-
): Promise<Entity> {
|
|
30
|
+
async updateEntity(@Arg('id', type => String) id: string, @Arg('patch', type => EntityPatch) patch: EntityPatch, @Ctx() context: ResolverContext): Promise<Entity> {
|
|
37
31
|
const { domain, user, tx } = context.state
|
|
38
32
|
|
|
39
33
|
const repository = tx.getRepository(Entity)
|
|
@@ -59,10 +53,7 @@ export class EntityMutation {
|
|
|
59
53
|
|
|
60
54
|
@Directive('@transaction')
|
|
61
55
|
@Mutation(returns => [Entity], { description: "To modify multiple Entitys' information" })
|
|
62
|
-
async updateMultipleEntity(
|
|
63
|
-
@Arg('patches', type => [EntityPatch]) patches: EntityPatch[],
|
|
64
|
-
@Ctx() context: ResolverContext
|
|
65
|
-
): Promise<Entity[]> {
|
|
56
|
+
async updateMultipleEntity(@Arg('patches', type => [EntityPatch]) patches: EntityPatch[], @Ctx() context: ResolverContext): Promise<Entity[]> {
|
|
66
57
|
const { domain, user, tx } = context.state
|
|
67
58
|
|
|
68
59
|
let results = []
|
|
@@ -75,9 +66,7 @@ export class EntityMutation {
|
|
|
75
66
|
const newRecord = _createRecords[i]
|
|
76
67
|
|
|
77
68
|
if (newRecord.master) {
|
|
78
|
-
newRecord.master = (await tx
|
|
79
|
-
.getRepository(Entity)
|
|
80
|
-
.findOne({ where: { domain: { id: domain.id }, id: newRecord.master } })) as any
|
|
69
|
+
newRecord.master = (await tx.getRepository(Entity).findOne({ where: { domain: { id: domain.id }, id: newRecord.master } })) as any
|
|
81
70
|
}
|
|
82
71
|
|
|
83
72
|
if (newRecord.children && newRecord.children.length) {
|
|
@@ -101,9 +90,7 @@ export class EntityMutation {
|
|
|
101
90
|
const entity = await entityRepo.findOneBy({ id: updateRecord.id })
|
|
102
91
|
|
|
103
92
|
if (updateRecord.master) {
|
|
104
|
-
updateRecord.master = (await tx
|
|
105
|
-
.getRepository(Entity)
|
|
106
|
-
.findOne({ where: { domain: { id: domain.id }, id: updateRecord.master } })) as any
|
|
93
|
+
updateRecord.master = (await tx.getRepository(Entity).findOne({ where: { domain: { id: domain.id }, id: updateRecord.master } })) as any
|
|
107
94
|
}
|
|
108
95
|
|
|
109
96
|
if (updateRecord.children && updateRecord.children.length) {
|
package/things-factory.config.js
CHANGED
package/client/bootstrap.js
DELETED
package/client/index.js
DELETED
package/client/menu-meta.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import gql from 'graphql-tag'
|
|
2
|
-
import { client } from '@things-factory/shell'
|
|
3
|
-
import { gqlBuilder } from '@things-factory/utils'
|
|
4
|
-
|
|
5
|
-
export async function getColumns(tableName) {
|
|
6
|
-
const response = await client.query({
|
|
7
|
-
query: gql`
|
|
8
|
-
query {
|
|
9
|
-
menu (${gqlBuilder.buildArgs({
|
|
10
|
-
name: tableName
|
|
11
|
-
})}) {
|
|
12
|
-
id
|
|
13
|
-
name
|
|
14
|
-
description
|
|
15
|
-
category
|
|
16
|
-
menuType
|
|
17
|
-
rank
|
|
18
|
-
routing
|
|
19
|
-
routingType
|
|
20
|
-
resourceType
|
|
21
|
-
resourceUrl
|
|
22
|
-
resourceName
|
|
23
|
-
idField
|
|
24
|
-
titleField
|
|
25
|
-
gridSaveUrl
|
|
26
|
-
pagination
|
|
27
|
-
detailFormId
|
|
28
|
-
detailLayout
|
|
29
|
-
template
|
|
30
|
-
hiddenFlag
|
|
31
|
-
itemsProp
|
|
32
|
-
totalProp
|
|
33
|
-
fixedColumns
|
|
34
|
-
iconPath
|
|
35
|
-
columns {
|
|
36
|
-
id
|
|
37
|
-
name
|
|
38
|
-
description
|
|
39
|
-
rank
|
|
40
|
-
term
|
|
41
|
-
colType
|
|
42
|
-
colSize
|
|
43
|
-
nullable
|
|
44
|
-
refType
|
|
45
|
-
refName
|
|
46
|
-
refUrl
|
|
47
|
-
refParams
|
|
48
|
-
refRelated
|
|
49
|
-
searchRank
|
|
50
|
-
sortRank
|
|
51
|
-
reverseSort
|
|
52
|
-
virtualField
|
|
53
|
-
extField
|
|
54
|
-
searchName
|
|
55
|
-
searchEditor
|
|
56
|
-
searchOper
|
|
57
|
-
searchInitVal
|
|
58
|
-
gridRank
|
|
59
|
-
gridEditor
|
|
60
|
-
gridFormat
|
|
61
|
-
gridValidator
|
|
62
|
-
gridWidth
|
|
63
|
-
gridAlign
|
|
64
|
-
uniqRank
|
|
65
|
-
formEditor
|
|
66
|
-
formValidator
|
|
67
|
-
formFormat
|
|
68
|
-
defVal
|
|
69
|
-
rangeVal
|
|
70
|
-
ignoreOnSave
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
`
|
|
75
|
-
})
|
|
76
|
-
return response.data
|
|
77
|
-
}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
export const resourceParser = baseElement =>
|
|
2
|
-
class extends baseElement {
|
|
3
|
-
|
|
4
|
-
_parseButtons(buttonList) {
|
|
5
|
-
if (buttonList) {
|
|
6
|
-
buttonList.forEach(function(button) {
|
|
7
|
-
button.id = button.text + '-btn'
|
|
8
|
-
})
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
return buttonList
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
_parseSearchFormFields(metaDataList) {
|
|
15
|
-
const searchMetaList = metaDataList.filter(metaData => {
|
|
16
|
-
return metaData.search_rank && metaData.search_rank > 0
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
this._sortMetaData(searchMetaList, 'search_rank')
|
|
20
|
-
|
|
21
|
-
return searchMetaList.map(metaData => {
|
|
22
|
-
const field = {
|
|
23
|
-
name: metaData.name,
|
|
24
|
-
label: metaData.term,
|
|
25
|
-
type: metaData.search_editor,
|
|
26
|
-
op: metaData.search_oper || 'eq'
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
metaData.search_editor = metaData.search_editor || 'text'
|
|
30
|
-
metaData.search_editor = this._parseSearchFormField(field, metaData)
|
|
31
|
-
field.default = metaData.search_init_val || null
|
|
32
|
-
|
|
33
|
-
return field
|
|
34
|
-
})
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
_sortMetaData(list, sortField) {
|
|
38
|
-
list.sort((a, b) => {
|
|
39
|
-
return a[sortField] > b[sortField] ? 1 : b[sortField] > a[sortField] ? -1 : 0
|
|
40
|
-
})
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
_parseSearchFormField(field, metaData) {
|
|
44
|
-
const editor = metaData.search_editor
|
|
45
|
-
|
|
46
|
-
if ('code-combo' == editor) {
|
|
47
|
-
field.codeName = metaData.ref_name
|
|
48
|
-
} else if (
|
|
49
|
-
editor.indexOf('resource-selector') >= 0 ||
|
|
50
|
-
editor.indexOf('resource-format-selector') >= 0 ||
|
|
51
|
-
editor.indexOf('resource-field') >= 0 ||
|
|
52
|
-
editor.indexOf('resource-combo') >= 0 ||
|
|
53
|
-
editor.indexOf('resource-code') >= 0
|
|
54
|
-
) {
|
|
55
|
-
field.userData = {
|
|
56
|
-
resourceType: metaData.ref_type,
|
|
57
|
-
resourceName: metaData.ref_name,
|
|
58
|
-
initialParams: metaData.ref_params,
|
|
59
|
-
bindFields: metaData.ref_related,
|
|
60
|
-
submitName: field.name
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (editor.indexOf('.') > 0) {
|
|
64
|
-
var editorSplitArr = editor.split('.')
|
|
65
|
-
field.type = editorSplitArr[0]
|
|
66
|
-
field.userData.delegateColumn = editorSplitArr[1]
|
|
67
|
-
} else {
|
|
68
|
-
field.type = editor
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (field.type == 'resource-combo') {
|
|
72
|
-
field.userData.delegateColumn = metaData.search_name ? metaData.search_name : 'id'
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
if (field.type == 'resource-format-selector') {
|
|
76
|
-
field.userData.delegateColumn = metaData.search_name ? metaData.search_name : 'name'
|
|
77
|
-
}
|
|
78
|
-
} else if (editor == 'reference-query') {
|
|
79
|
-
var refName = field.name.indexOf('_id') > 0 ? field.name.substr(0, field.name.indexOf('_id')) : field.name
|
|
80
|
-
field.userData = {
|
|
81
|
-
type: metaData.col_type,
|
|
82
|
-
refName: refName,
|
|
83
|
-
fieldName: metaData.search_name,
|
|
84
|
-
searchName: refName + '.' + metaData.search_name
|
|
85
|
-
}
|
|
86
|
-
} else if (editor == 'number') {
|
|
87
|
-
field.userData = { type: metaData.col_type }
|
|
88
|
-
this._parseSearchValueRange(field, metaData.range_val, 'number')
|
|
89
|
-
} else if ('date-from-to-picker' == editor || 'ranged-date-picker' == editor) {
|
|
90
|
-
field.userData = { defaultRange: metaData.def_val, format: metaData.search_name }
|
|
91
|
-
this._parseSearchValueRange(field, metaData.search_init_val, 'date')
|
|
92
|
-
} else if ('date-picker' == editor) {
|
|
93
|
-
if (metaData.search_name || metaData.search_init_val) {
|
|
94
|
-
field.userData = {}
|
|
95
|
-
if (metaData.search_name) field.userData.format = metaData.search_name
|
|
96
|
-
if (metaData.search_init_val) field.userData.defValue = this._calcDate(metaData.search_init_val)
|
|
97
|
-
}
|
|
98
|
-
} else if ('time-picker' == editor || 'datetime-picker' == editor || 'ranged-datetime-picker' == editor) {
|
|
99
|
-
if (metaData.search_name) {
|
|
100
|
-
field.userData = { format: metaData.search_name }
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if ('ranged-datetime-picker' == editor && metaData.search_init_val) {
|
|
104
|
-
this._parseDatetimeInitValue(field, metaData.search_init_val)
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
_parseGridModel(metaDataList) {
|
|
110
|
-
var gridModelMetaList = metaDataList.filter(function(metaData) {
|
|
111
|
-
if (metaData.name == 'id' && !metaData.grid_rank) metaData.grid_rank = -10
|
|
112
|
-
return metaData.grid_rank && metaData.grid_rank != 0
|
|
113
|
-
})
|
|
114
|
-
|
|
115
|
-
var selectColumns = ''
|
|
116
|
-
|
|
117
|
-
var gridModel = gridModelMetaList.map(function(metaData) {
|
|
118
|
-
var field = { fieldName: metaData.name }
|
|
119
|
-
|
|
120
|
-
if (
|
|
121
|
-
metaData.col_type == 'integer' ||
|
|
122
|
-
metaData.col_type == 'int' ||
|
|
123
|
-
metaData.col_type == 'long' ||
|
|
124
|
-
metaData.col_type == 'double' ||
|
|
125
|
-
metaData.col_type == 'float'
|
|
126
|
-
) {
|
|
127
|
-
field.dataType = 'number'
|
|
128
|
-
} else if (metaData.col_type == 'date' || metaData.col_type == 'time') {
|
|
129
|
-
field.dataType = 'datetime'
|
|
130
|
-
field.datetimeFormat = metaData.grid_format ? metaData.grid_format : 'yyyy-MM-dd'
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
var editor = metaData.grid_editor
|
|
134
|
-
|
|
135
|
-
if (editor == 'rank') {
|
|
136
|
-
field.rank = true
|
|
137
|
-
field.increment = metaData.grid_format ? Number(metaData.grid_format) : 1
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
if (editor && editor.indexOf('resource-column') >= 0) {
|
|
141
|
-
field.fieldName = field.fieldName.substr(0, field.fieldName.indexOf('_id'))
|
|
142
|
-
field.dataType = 'object'
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
if (editor && editor.indexOf('resource-selector') >= 0) {
|
|
146
|
-
field.fieldName = field.fieldName.substr(0, field.fieldName.indexOf('_id'))
|
|
147
|
-
field.dataType = 'object'
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
if (editor && editor.indexOf('resource-format-selector') >= 0) {
|
|
151
|
-
if (field.fieldName.indexOf('_id') >= 0) {
|
|
152
|
-
field.fieldName = field.fieldName.substr(0, field.fieldName.indexOf('_id'))
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
if (editor && editor.indexOf('file-selector') >= 0) {
|
|
157
|
-
field.fieldName = field.fieldName.substr(0, field.fieldName.indexOf('_id'))
|
|
158
|
-
field.dataType = 'object'
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
if (field.dataType != 'object' && metaData.def_val) {
|
|
162
|
-
field.defaultValue = field.dataType == 'number' ? Number(metaData.def_val) : metaData.def_val
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
if (!metaData.virtual_field || metaData.virtual_field == false) {
|
|
166
|
-
selectColumns += field.fieldName + ','
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
return field
|
|
170
|
-
})
|
|
171
|
-
|
|
172
|
-
if (selectColumns.length > 2) {
|
|
173
|
-
this.selectFields = selectColumns.substr(0, selectColumns.length - 1)
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
return gridModel
|
|
177
|
-
}
|
|
178
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEL_STRATEGY = void 0;
|
|
4
|
-
exports.DEL_STRATEGY = {
|
|
5
|
-
DELETE: 'delete',
|
|
6
|
-
DESTROY: 'destroy',
|
|
7
|
-
NULLIFY: 'nullify',
|
|
8
|
-
RESTRICT_WITH_ERROR: 'restrict with error'
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=del-strategy-type.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"del-strategy-type.js","sourceRoot":"","sources":["../../server/constants/del-strategy-type.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,mBAAmB,EAAE,qBAAqB;CAC3C,CAAA","sourcesContent":["export const DEL_STRATEGY = {\n DELETE: 'delete',\n DESTROY: 'destroy',\n NULLIFY: 'nullify',\n RESTRICT_WITH_ERROR: 'restrict with error'\n}\n"]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.migrations = void 0;
|
|
4
|
-
const glob = require('glob');
|
|
5
|
-
const path = require('path');
|
|
6
|
-
exports.migrations = [];
|
|
7
|
-
glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function (file) {
|
|
8
|
-
if (file.indexOf('index.js') !== -1)
|
|
9
|
-
return;
|
|
10
|
-
exports.migrations = exports.migrations.concat(Object.values(require(path.resolve(file))) || []);
|
|
11
|
-
});
|
|
12
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/migrations/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB,QAAA,UAAU,GAAG,EAAE,CAAA;AAE1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI;IACzE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAE,OAAM;IAC3C,kBAAU,GAAG,kBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAClF,CAAC,CAAC,CAAA","sourcesContent":["const glob = require('glob')\nconst path = require('path')\n\nexport var migrations = []\n\nglob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {\n if (file.indexOf('index.js') !== -1) return\n migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])\n})\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
const glob = require('glob')
|
|
2
|
-
const path = require('path')
|
|
3
|
-
|
|
4
|
-
export var migrations = []
|
|
5
|
-
|
|
6
|
-
glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {
|
|
7
|
-
if (file.indexOf('index.js') !== -1) return
|
|
8
|
-
migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])
|
|
9
|
-
})
|