@things-factory/meta-ui 7.0.1-alpha.1 → 7.0.1-alpha.11
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/client/actions/main.js +14 -20
- package/client/bootstrap.ts +13 -6
- package/client/component/grist/renderer/grist-renderer-meta-object-selector.js +18 -13
- package/client/pages/entity/config-entity.js +180 -112
- package/client/pages/entity/main-menu-selector.js +85 -84
- package/client/pages/history/history-copy-list-popup.js +33 -45
- package/client/pages/history/history-json-list-popup.js +38 -50
- package/client/pages/menu/dynamic-menu-template.js +1 -1
- package/client/pages/menu/dynamic-menu.js +137 -121
- package/client/pages/menu/export-menu-popup.js +210 -218
- package/client/pages/personalize/personal-column-selector.js +112 -122
- package/client/utils/meta-ui-util.js +0 -4
- package/client/utils/service-util.js +4 -4
- package/client/utils/terms-util.js +41 -42
- package/client/utils/ui-util.js +2 -5
- package/client/viewparts/dynamic-menu-part.js +7 -28
- package/dist-client/actions/main.js +6 -5
- package/dist-client/actions/main.js.map +1 -1
- package/dist-client/bootstrap.d.ts +4 -1
- package/dist-client/bootstrap.js +12 -6
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/component/grist/renderer/grist-renderer-code-input.d.ts +1 -1
- package/dist-client/component/grist/renderer/grist-renderer-meta-code-selector.d.ts +1 -1
- package/dist-client/component/grist/renderer/grist-renderer-meta-object-selector.d.ts +1 -1
- package/dist-client/component/grist/renderer/grist-renderer-meta-object-selector.js +9 -3
- package/dist-client/component/grist/renderer/grist-renderer-meta-object-selector.js.map +1 -1
- package/dist-client/component/popup/code-input-editor-popup.d.ts +1 -1
- package/dist-client/component/popup/meta-object-selector-popup.d.ts +1 -1
- package/dist-client/component/popup/record-based-code-editor-popup.d.ts +1 -1
- package/dist-client/mixin/meta-basic-grist-mixin.d.ts +1 -1
- package/dist-client/pages/activity/meta-activity-viewer-element.d.ts +1 -1
- package/dist-client/pages/activity/meta-activity-writer-element.d.ts +1 -1
- package/dist-client/pages/button-role/button-role-detail.d.ts +1 -1
- package/dist-client/pages/entity/config-entity.js +131 -62
- package/dist-client/pages/entity/config-entity.js.map +1 -1
- package/dist-client/pages/entity/main-menu-selector.d.ts +1 -1
- package/dist-client/pages/entity/main-menu-selector.js +74 -73
- package/dist-client/pages/entity/main-menu-selector.js.map +1 -1
- package/dist-client/pages/history/history-copy-list-popup.d.ts +1 -1
- package/dist-client/pages/history/history-copy-list-popup.js +14 -26
- package/dist-client/pages/history/history-copy-list-popup.js.map +1 -1
- package/dist-client/pages/history/history-json-list-popup.d.ts +5 -5
- package/dist-client/pages/history/history-json-list-popup.js +19 -31
- package/dist-client/pages/history/history-json-list-popup.js.map +1 -1
- package/dist-client/pages/menu/dynamic-menu-setting-let.d.ts +1 -1
- package/dist-client/pages/menu/dynamic-menu-template.js +1 -1
- package/dist-client/pages/menu/dynamic-menu-template.js.map +1 -1
- package/dist-client/pages/menu/dynamic-menu.js +68 -48
- package/dist-client/pages/menu/dynamic-menu.js.map +1 -1
- package/dist-client/pages/menu/export-menu-popup.d.ts +5 -5
- package/dist-client/pages/menu/export-menu-popup.js +50 -54
- package/dist-client/pages/menu/export-menu-popup.js.map +1 -1
- package/dist-client/pages/meta-grist-element.d.ts +1 -1
- package/dist-client/pages/meta-grist-page.d.ts +1 -1
- package/dist-client/pages/personalize/personal-column-selector.d.ts +1 -1
- package/dist-client/pages/personalize/personal-column-selector.js +76 -84
- package/dist-client/pages/personalize/personal-column-selector.js.map +1 -1
- package/dist-client/pages/work-code/work-code-detail-popup.d.ts +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-client/utils/meta-ui-util.js +0 -3
- package/dist-client/utils/meta-ui-util.js.map +1 -1
- package/dist-client/utils/service-util.js +4 -4
- package/dist-client/utils/service-util.js.map +1 -1
- package/dist-client/utils/terms-util.d.ts +13 -13
- package/dist-client/utils/terms-util.js +10 -12
- package/dist-client/utils/terms-util.js.map +1 -1
- package/dist-client/utils/ui-util.js +1 -4
- package/dist-client/utils/ui-util.js.map +1 -1
- package/dist-client/viewparts/dynamic-menu-part.d.ts +1 -1
- package/dist-client/viewparts/dynamic-menu-part.js +7 -26
- package/dist-client/viewparts/dynamic-menu-part.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -8
- package/client/viewparts/dynamic-menu-landscape-styles.js +0 -149
- package/client/viewparts/dynamic-menu-landscape.js +0 -106
- package/client/viewparts/dynamic-menu-portrait-styles.js +0 -130
- package/client/viewparts/dynamic-menu-portrait.js +0 -90
- package/client/viewparts/dynamic-top-menu-bar.js +0 -148
- package/dist-client/viewparts/dynamic-menu-landscape-styles.d.ts +0 -1
- package/dist-client/viewparts/dynamic-menu-landscape-styles.js +0 -149
- package/dist-client/viewparts/dynamic-menu-landscape-styles.js.map +0 -1
- package/dist-client/viewparts/dynamic-menu-landscape.d.ts +0 -21
- package/dist-client/viewparts/dynamic-menu-landscape.js +0 -87
- package/dist-client/viewparts/dynamic-menu-landscape.js.map +0 -1
- package/dist-client/viewparts/dynamic-menu-portrait-styles.d.ts +0 -1
- package/dist-client/viewparts/dynamic-menu-portrait-styles.js +0 -130
- package/dist-client/viewparts/dynamic-menu-portrait-styles.js.map +0 -1
- package/dist-client/viewparts/dynamic-menu-portrait.d.ts +0 -13
- package/dist-client/viewparts/dynamic-menu-portrait.js +0 -74
- package/dist-client/viewparts/dynamic-menu-portrait.js.map +0 -1
- package/dist-client/viewparts/dynamic-top-menu-bar.d.ts +0 -27
- package/dist-client/viewparts/dynamic-top-menu-bar.js +0 -133
- package/dist-client/viewparts/dynamic-top-menu-bar.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { html } from 'lit
|
|
1
|
+
import { html } from 'lit'
|
|
2
2
|
|
|
3
3
|
import { i18next, localize } from '@things-factory/i18n-base'
|
|
4
4
|
import { PageView } from '@things-factory/shell'
|
|
@@ -15,7 +15,6 @@ import { ServiceUtil } from '../../utils/service-util'
|
|
|
15
15
|
import { UiUtil } from '../../utils/ui-util'
|
|
16
16
|
|
|
17
17
|
class DynamicMenu extends localize(i18next)(PageView) {
|
|
18
|
-
|
|
19
18
|
static get properties() {
|
|
20
19
|
return {
|
|
21
20
|
searchFields: Array,
|
|
@@ -29,29 +28,32 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
29
28
|
return MetaApi.getBasicMasterDetailGristStyle('top-down')
|
|
30
29
|
}
|
|
31
30
|
|
|
32
|
-
// 화면
|
|
31
|
+
// 화면
|
|
33
32
|
render() {
|
|
34
33
|
return html`
|
|
35
34
|
<div slot="headroom">
|
|
36
35
|
<div id="filters">
|
|
37
|
-
<ox-filters-form-base
|
|
38
|
-
.filters=${this.searchFields|| []}
|
|
39
|
-
@filters-change=${e=> {
|
|
36
|
+
<ox-filters-form-base
|
|
37
|
+
.filters=${this.searchFields || []}
|
|
38
|
+
@filters-change=${e => {
|
|
39
|
+
this.groupGrist?.fetch()
|
|
40
|
+
}}
|
|
40
41
|
></ox-filters-form-base>
|
|
41
42
|
</div>
|
|
42
43
|
</div>
|
|
43
44
|
|
|
44
|
-
<div class=
|
|
45
|
+
<div class="container">
|
|
45
46
|
<div class="container_detail">
|
|
46
47
|
<!--h2>
|
|
47
48
|
<mwc-icon>list_alt</mwc-icon>${TermsUtil.tTitle('menu_group')}
|
|
48
49
|
</h2-->
|
|
49
|
-
<ox-grist
|
|
50
|
-
id="master-grist"
|
|
51
|
-
.config=${this.groupConfig}
|
|
52
|
-
.mode=${MetaApi.isMobileEnv() ? 'LIST'
|
|
50
|
+
<ox-grist
|
|
51
|
+
id="master-grist"
|
|
52
|
+
.config=${this.groupConfig}
|
|
53
|
+
.mode=${MetaApi.isMobileEnv() ? 'LIST' : 'GRID'}
|
|
53
54
|
auto-fetch
|
|
54
|
-
.fetchHandler=${this.fetchGroupHandler.bind(this)}
|
|
55
|
+
.fetchHandler=${this.fetchGroupHandler.bind(this)}
|
|
56
|
+
>
|
|
55
57
|
</ox-grist>
|
|
56
58
|
<div id="button-container" class="button-container">
|
|
57
59
|
<mwc-button raised label="${TermsUtil.tButton('save')}" @click=${e => this.saveGroup()}></mwc-button>
|
|
@@ -60,17 +62,18 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
60
62
|
</div>
|
|
61
63
|
|
|
62
64
|
<div class="container_detail">
|
|
63
|
-
<ox-grist
|
|
64
|
-
id="detail-grist"
|
|
65
|
-
.config=${this.detailConfig}
|
|
66
|
-
.mode=${MetaApi.isMobileEnv() ? 'LIST'
|
|
65
|
+
<ox-grist
|
|
66
|
+
id="detail-grist"
|
|
67
|
+
.config=${this.detailConfig}
|
|
68
|
+
.mode=${MetaApi.isMobileEnv() ? 'LIST' : 'GRID'}
|
|
67
69
|
explcit-fetch
|
|
68
|
-
.fetchHandler=${this.fetchDetailHandler.bind(this)}
|
|
70
|
+
.fetchHandler=${this.fetchDetailHandler.bind(this)}
|
|
71
|
+
>
|
|
69
72
|
</ox-grist>
|
|
70
73
|
<div id="button-container" class="button-container">
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
<mwc-button raised label="${TermsUtil.tButton('copy')}" @click=${e => this.copyMenu()}></mwc-button>
|
|
75
|
+
<mwc-button raised label="${TermsUtil.tButton('save')}" @click=${e => this.saveMenu()}></mwc-button>
|
|
76
|
+
<mwc-button raised label="${TermsUtil.tButton('delete')}" @click=${e => this.deleteMenu()}></mwc-button>
|
|
74
77
|
</div>
|
|
75
78
|
</div>
|
|
76
79
|
</div>
|
|
@@ -79,7 +82,7 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
79
82
|
|
|
80
83
|
get context() {
|
|
81
84
|
return {
|
|
82
|
-
title: TermsUtil.tTitle('dynamic_menu')
|
|
85
|
+
title: TermsUtil.tTitle('dynamic_menu')
|
|
83
86
|
}
|
|
84
87
|
}
|
|
85
88
|
|
|
@@ -88,7 +91,7 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
88
91
|
}
|
|
89
92
|
|
|
90
93
|
/**
|
|
91
|
-
* 메뉴 그룹 그리드
|
|
94
|
+
* 메뉴 그룹 그리드
|
|
92
95
|
*/
|
|
93
96
|
get groupGrist() {
|
|
94
97
|
return this.shadowRoot.querySelector('#master-grist')
|
|
@@ -108,19 +111,19 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
108
111
|
/**
|
|
109
112
|
* @description 부모 메뉴 (메뉴 그룹) 선택시 하위 메뉴 리스트 조회
|
|
110
113
|
*********************************
|
|
111
|
-
* @param {Object} param0
|
|
114
|
+
* @param {Object} param0
|
|
112
115
|
*/
|
|
113
116
|
async fetchDetailHandler({ page, limit = 999999, sorters = [{ name: 'rank' }, { name: 'name' }] }) {
|
|
114
|
-
if(this.menuGroupId) {
|
|
117
|
+
if (this.menuGroupId) {
|
|
115
118
|
let filters = [
|
|
116
119
|
{
|
|
117
|
-
name: 'parentId',
|
|
118
|
-
operator: 'eq',
|
|
119
|
-
value: this.menuGroupId
|
|
120
|
+
name: 'parentId',
|
|
121
|
+
operator: 'eq',
|
|
122
|
+
value: this.menuGroupId
|
|
120
123
|
},
|
|
121
|
-
...(await this.searchForm.getQueryFilters()).filter(x=> ['templateCode','templateText'].includes(x.name))
|
|
124
|
+
...(await this.searchForm.getQueryFilters()).filter(x => ['templateCode', 'templateText'].includes(x.name))
|
|
122
125
|
]
|
|
123
|
-
|
|
126
|
+
|
|
124
127
|
let selectFields = `
|
|
125
128
|
id
|
|
126
129
|
name
|
|
@@ -143,11 +146,10 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
143
146
|
limit = 999999
|
|
144
147
|
let fetchResult = await MetaApi.searchByPagination('dynamicMenus', filters, sorters, page, limit, selectFields)
|
|
145
148
|
|
|
146
|
-
if(fetchResult && fetchResult.records) {
|
|
149
|
+
if (fetchResult && fetchResult.records) {
|
|
147
150
|
fetchResult.records.forEach(x => {
|
|
148
151
|
x.parentId = this.menuGroupId
|
|
149
152
|
})
|
|
150
|
-
|
|
151
153
|
}
|
|
152
154
|
|
|
153
155
|
return fetchResult
|
|
@@ -157,21 +159,18 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
157
159
|
/**
|
|
158
160
|
* @description 부모 메뉴 (메뉴 그룹) 조회
|
|
159
161
|
****************************************
|
|
160
|
-
* @param {Object} param0
|
|
161
|
-
* @returns
|
|
162
|
+
* @param {Object} param0
|
|
163
|
+
* @returns
|
|
162
164
|
*/
|
|
163
165
|
async fetchGroupHandler({ page, limit = 999999, sorters = [{ name: 'rank' }, { name: 'name' }] }) {
|
|
164
|
-
// 선택된 부모 메뉴 ID 초기화
|
|
166
|
+
// 선택된 부모 메뉴 ID 초기화
|
|
165
167
|
this.menuGroupId = null
|
|
166
168
|
|
|
167
|
-
if(this.detailGrist && this.detailGrist.data) {
|
|
168
|
-
this.detailGrist.data = {}
|
|
169
|
+
if (this.detailGrist && this.detailGrist.data) {
|
|
170
|
+
this.detailGrist.data = {}
|
|
169
171
|
}
|
|
170
172
|
|
|
171
|
-
let filters = [
|
|
172
|
-
...await this.searchForm.getQueryFilters(),
|
|
173
|
-
{ name: 'parentId', operator: 'is_null', value: '' }
|
|
174
|
-
]
|
|
173
|
+
let filters = [...(await this.searchForm.getQueryFilters()), { name: 'parentId', operator: 'is_null', value: '' }]
|
|
175
174
|
|
|
176
175
|
let selectFields = `
|
|
177
176
|
id
|
|
@@ -194,14 +193,14 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
194
193
|
/*******************************************/
|
|
195
194
|
|
|
196
195
|
/**
|
|
197
|
-
* 메뉴 그룹 Create / Update
|
|
196
|
+
* 메뉴 그룹 Create / Update
|
|
198
197
|
*/
|
|
199
198
|
async saveGroup() {
|
|
200
199
|
let patches = MetaApi.patchesForUpdateMultiple(this.groupGrist)
|
|
201
200
|
|
|
202
201
|
if (ValueUtil.isNotEmpty(patches)) {
|
|
203
202
|
patches.forEach(patch => {
|
|
204
|
-
if(patch.hiddenFlag === undefined || patch.hiddenFlag == null) {
|
|
203
|
+
if (patch.hiddenFlag === undefined || patch.hiddenFlag == null) {
|
|
205
204
|
patch.hiddenFlag = false
|
|
206
205
|
}
|
|
207
206
|
})
|
|
@@ -214,32 +213,32 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
214
213
|
}
|
|
215
214
|
|
|
216
215
|
/**
|
|
217
|
-
* 메뉴 그룹 Delete
|
|
218
|
-
* @returns
|
|
216
|
+
* 메뉴 그룹 Delete
|
|
217
|
+
* @returns
|
|
219
218
|
*/
|
|
220
219
|
async deleteGroup() {
|
|
221
220
|
await MetaApi.deleteListByGristSelected(this.groupGrist, 'deleteMenus')
|
|
222
221
|
}
|
|
223
222
|
|
|
224
223
|
/**
|
|
225
|
-
* 메뉴 Create / Update
|
|
224
|
+
* 메뉴 Create / Update
|
|
226
225
|
*/
|
|
227
226
|
async saveMenu() {
|
|
228
227
|
let patches = MetaApi.patchesForUpdateMultiple(this.detailGrist)
|
|
229
228
|
|
|
230
229
|
if (ValueUtil.isNotEmpty(patches)) {
|
|
231
230
|
patches.forEach(patch => {
|
|
232
|
-
patch.menuType = patch.menuType || 'SCREEN'
|
|
231
|
+
patch.menuType = patch.menuType || 'SCREEN'
|
|
233
232
|
|
|
234
|
-
if(!patch.parentId){
|
|
235
|
-
patch.parent = { id
|
|
233
|
+
if (!patch.parentId) {
|
|
234
|
+
patch.parent = { id: this.menuGroupId }
|
|
236
235
|
} else {
|
|
237
|
-
patch.parent = { id: patch.parentId}
|
|
236
|
+
patch.parent = { id: patch.parentId }
|
|
238
237
|
|
|
239
238
|
delete patch.parentId
|
|
240
239
|
}
|
|
241
240
|
|
|
242
|
-
if(patch.hiddenFlag === undefined || patch.hiddenFlag == null) {
|
|
241
|
+
if (patch.hiddenFlag === undefined || patch.hiddenFlag == null) {
|
|
243
242
|
patch.hiddenFlag = false
|
|
244
243
|
}
|
|
245
244
|
})
|
|
@@ -255,53 +254,52 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
255
254
|
let exportMenuElement = MetaApi.createCustomElement('export-menu-popup', 'export-menu-popup')
|
|
256
255
|
exportMenuElement.title = TermsUtil.tLabel('export')
|
|
257
256
|
exportMenuElement.recordId = record.id
|
|
258
|
-
exportMenuElement.recordName = record.name
|
|
259
|
-
await MetaApi.openPopupByElement(record.name, 'large', exportMenuElement, true)
|
|
257
|
+
exportMenuElement.recordName = record.name
|
|
258
|
+
await MetaApi.openPopupByElement(record.name, 'large', exportMenuElement, true)
|
|
260
259
|
}
|
|
261
260
|
|
|
262
261
|
/**
|
|
263
|
-
* 메뉴 Delete
|
|
264
|
-
* @returns
|
|
262
|
+
* 메뉴 Delete
|
|
263
|
+
* @returns
|
|
265
264
|
*/
|
|
266
265
|
async deleteMenu() {
|
|
267
266
|
await MetaApi.deleteListByGristSelected(this.detailGrist, 'deleteMenus')
|
|
268
267
|
}
|
|
269
268
|
|
|
270
269
|
/**
|
|
271
|
-
* 메뉴 복사
|
|
270
|
+
* 메뉴 복사
|
|
272
271
|
*/
|
|
273
272
|
async copyMenu() {
|
|
274
|
-
let selectMenus = this.detailGrist.selected
|
|
273
|
+
let selectMenus = this.detailGrist.selected
|
|
275
274
|
|
|
276
|
-
if(!selectMenus || selectMenus.length == 0){
|
|
277
|
-
UiUtil.showAlertPopup('text.nothing_selected', 'text.there_is_no_selected_items', 'info', 'confirm')
|
|
278
|
-
return
|
|
275
|
+
if (!selectMenus || selectMenus.length == 0) {
|
|
276
|
+
UiUtil.showAlertPopup('text.nothing_selected', 'text.there_is_no_selected_items', 'info', 'confirm')
|
|
277
|
+
return
|
|
279
278
|
}
|
|
280
279
|
|
|
281
|
-
let copyMenu = selectMenus[0]
|
|
280
|
+
let copyMenu = selectMenus[0]
|
|
282
281
|
|
|
283
|
-
if(!copyMenu.id){
|
|
284
|
-
return
|
|
282
|
+
if (!copyMenu.id) {
|
|
283
|
+
return
|
|
285
284
|
}
|
|
286
285
|
|
|
287
|
-
Object.keys(copyMenu).forEach(
|
|
288
|
-
if(x.startsWith('__')) {
|
|
289
|
-
delete copyMenu[x]
|
|
286
|
+
Object.keys(copyMenu).forEach(x => {
|
|
287
|
+
if (x.startsWith('__')) {
|
|
288
|
+
delete copyMenu[x]
|
|
290
289
|
}
|
|
291
290
|
})
|
|
292
291
|
|
|
293
292
|
let menu = await MetaApi.findOne('menu', copyMenu.id, 'template')
|
|
294
|
-
copyMenu.template = menu ?
|
|
295
|
-
|
|
296
|
-
copyMenu.rank = 99999;
|
|
297
|
-
copyMenu.cuFlag = "+";
|
|
293
|
+
copyMenu.template = menu ? menu.template || '' : ''
|
|
298
294
|
|
|
299
|
-
copyMenu.
|
|
300
|
-
copyMenu.
|
|
301
|
-
copyMenu.parent = { id: copyMenu.parentId};
|
|
302
|
-
delete copyMenu.id;
|
|
303
|
-
delete copyMenu.parentId;
|
|
295
|
+
copyMenu.rank = 99999
|
|
296
|
+
copyMenu.cuFlag = '+'
|
|
304
297
|
|
|
298
|
+
copyMenu.name = copyMenu.name + '-copy'
|
|
299
|
+
copyMenu.routing = copyMenu.routing + '-copy'
|
|
300
|
+
copyMenu.parent = { id: copyMenu.parentId }
|
|
301
|
+
delete copyMenu.id
|
|
302
|
+
delete copyMenu.parentId
|
|
305
303
|
|
|
306
304
|
let result = await MetaApi.updateMultiple('updateMultipleMenu', [copyMenu])
|
|
307
305
|
if (result) {
|
|
@@ -315,29 +313,29 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
315
313
|
}
|
|
316
314
|
|
|
317
315
|
/**
|
|
318
|
-
* 메뉴 템플릿을 편집 할 수 있는 팝업을 오픈한다.
|
|
319
|
-
* @param {Object} record
|
|
316
|
+
* 메뉴 템플릿을 편집 할 수 있는 팝업을 오픈한다.
|
|
317
|
+
* @param {Object} record
|
|
320
318
|
*/
|
|
321
319
|
async openMenuTemplatePopup(record) {
|
|
322
320
|
let menuTemplateElement = MetaApi.createCustomElement('dynamic-menu-template', 'dynamic-menu-template')
|
|
323
321
|
menuTemplateElement.title = TermsUtil.tLabel('template')
|
|
324
322
|
menuTemplateElement.recordId = record.id
|
|
325
|
-
await MetaApi.openPopupByElement(record.name, 'large', menuTemplateElement, true)
|
|
323
|
+
await MetaApi.openPopupByElement(record.name, 'large', menuTemplateElement, true)
|
|
326
324
|
}
|
|
327
325
|
|
|
328
326
|
/**
|
|
329
|
-
* 메뉴 템플릿을 생성 할 수 있는 화면으로 이동한다.
|
|
330
|
-
* @param {Object} record
|
|
327
|
+
* 메뉴 템플릿을 생성 할 수 있는 화면으로 이동한다.
|
|
328
|
+
* @param {Object} record
|
|
331
329
|
*/
|
|
332
|
-
navigateMetaGenerator(record){
|
|
330
|
+
navigateMetaGenerator(record) {
|
|
333
331
|
MetaApi.pageNavigate(`meta-generator?menuId=${record.id}`)
|
|
334
332
|
}
|
|
335
333
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
334
|
+
/**
|
|
335
|
+
* LifeCycle - 화면 레더링 설정
|
|
336
|
+
*/
|
|
339
337
|
async pageInitialized() {
|
|
340
|
-
// 조회 필드
|
|
338
|
+
// 조회 필드
|
|
341
339
|
this.searchFields = [
|
|
342
340
|
// name, type, label, operator, optionValues
|
|
343
341
|
MetaApi.getGristSearchColumnConfig('name', 'string', 'name', 'i_like'),
|
|
@@ -346,10 +344,10 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
346
344
|
// name, type, label, operator
|
|
347
345
|
MetaApi.getGristSearchColumnConfig('hiddenFlag', 'checkbox', 'hidden', 'eq'),
|
|
348
346
|
await MetaApi.getGristSearchCodeColumnConfig('templateCode', 'select', 'menu_template_search_code', 'eq', 'MENU_TEXT_SEARCH_TYPE'),
|
|
349
|
-
MetaApi.getGristSearchColumnConfig('templateText', 'string', 'menu_template_search_text', 'i_like')
|
|
347
|
+
MetaApi.getGristSearchColumnConfig('templateText', 'string', 'menu_template_search_text', 'i_like')
|
|
350
348
|
]
|
|
351
349
|
|
|
352
|
-
// 메뉴 그룹 그리드 설정
|
|
350
|
+
// 메뉴 그룹 그리드 설정
|
|
353
351
|
this.groupConfig = {
|
|
354
352
|
rows: MetaApi.getGristSelectableConfig(false),
|
|
355
353
|
// 공간이 부족해서 페이지네이션 제거
|
|
@@ -357,14 +355,17 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
357
355
|
appendable: true,
|
|
358
356
|
columns: [
|
|
359
357
|
...MetaApi.getGristGuttersConfig(true, false),
|
|
360
|
-
{
|
|
358
|
+
{
|
|
359
|
+
type: 'gutter',
|
|
360
|
+
gutterName: 'button',
|
|
361
|
+
icon: 'menu_open',
|
|
361
362
|
handlers: {
|
|
362
363
|
click: (_columns, _data, _column, record, _rowIndex) => {
|
|
363
364
|
if (record.id) {
|
|
364
365
|
this.groupMenuQuery(record)
|
|
365
366
|
}
|
|
366
367
|
}
|
|
367
|
-
}
|
|
368
|
+
}
|
|
368
369
|
},
|
|
369
370
|
{
|
|
370
371
|
type: 'integer',
|
|
@@ -399,13 +400,13 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
399
400
|
// type, name, displayName, align, editable, sortable, width
|
|
400
401
|
MetaApi.getGristColumnConfig2('string', 'iconPath', 'icon', 'left', true, false, 115),
|
|
401
402
|
MetaApi.getGristColumnConfig2('boolean', 'hiddenFlag', 'hidden', 'center', true, false, 55),
|
|
402
|
-
MetaApi.getGristColumnConfig2('string', 'routing', 'routing','left', true, false, 135),
|
|
403
|
+
MetaApi.getGristColumnConfig2('string', 'routing', 'routing', 'left', true, false, 135),
|
|
403
404
|
MetaApi.getGristColumnConfig2('string', 'category', 'tag', 'left', true, false, 135),
|
|
404
405
|
MetaApi.getGristColumnConfig2('string', 'resourceUrl', 'page_location', 'left', true, false, 350)
|
|
405
406
|
]
|
|
406
407
|
}
|
|
407
408
|
|
|
408
|
-
// 메뉴 그리드 설정
|
|
409
|
+
// 메뉴 그리드 설정
|
|
409
410
|
this.detailConfig = {
|
|
410
411
|
rows: MetaApi.getGristSelectableConfig(false),
|
|
411
412
|
// 공간이 부족해서 페이지네이션 제거
|
|
@@ -413,32 +414,41 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
413
414
|
appendable: true,
|
|
414
415
|
columns: [
|
|
415
416
|
...MetaApi.getGristGuttersConfig(true, false),
|
|
416
|
-
{
|
|
417
|
+
{
|
|
418
|
+
type: 'gutter',
|
|
419
|
+
gutterName: 'button',
|
|
420
|
+
icon: 'download',
|
|
417
421
|
handlers: {
|
|
418
422
|
click: (_columns, _data, _column, record, _rowIndex) => {
|
|
419
423
|
if (record.id) {
|
|
420
424
|
this.exportMenu(record)
|
|
421
425
|
}
|
|
422
426
|
}
|
|
423
|
-
}
|
|
427
|
+
}
|
|
424
428
|
},
|
|
425
|
-
{
|
|
429
|
+
{
|
|
430
|
+
type: 'gutter',
|
|
431
|
+
gutterName: 'button',
|
|
432
|
+
icon: 'code',
|
|
426
433
|
handlers: {
|
|
427
434
|
click: (_columns, _data, _column, record, _rowIndex) => {
|
|
428
435
|
if (record.id) {
|
|
429
436
|
this.openMenuTemplatePopup(record)
|
|
430
437
|
}
|
|
431
438
|
}
|
|
432
|
-
}
|
|
439
|
+
}
|
|
433
440
|
},
|
|
434
|
-
{
|
|
441
|
+
{
|
|
442
|
+
type: 'gutter',
|
|
443
|
+
gutterName: 'button',
|
|
444
|
+
icon: 'construction',
|
|
435
445
|
handlers: {
|
|
436
446
|
click: (_columns, _data, _column, record, _rowIndex) => {
|
|
437
447
|
if (record.id) {
|
|
438
448
|
this.navigateMetaGenerator(record)
|
|
439
449
|
}
|
|
440
450
|
}
|
|
441
|
-
}
|
|
451
|
+
}
|
|
442
452
|
},
|
|
443
453
|
{
|
|
444
454
|
type: 'integer',
|
|
@@ -482,34 +492,40 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
482
492
|
header: TermsUtil.tLabel('parent-menu'),
|
|
483
493
|
record: {
|
|
484
494
|
renderer: (value, column, record, rowIndex, field) => {
|
|
485
|
-
return value ?
|
|
495
|
+
return value ? value.name + ' (' + TermsUtil.tMenu(value.name) + ')' : ''
|
|
486
496
|
},
|
|
487
497
|
editable: true,
|
|
488
498
|
options: {
|
|
489
499
|
title: TermsUtil.tLabel('parent-menu'),
|
|
490
500
|
queryName: 'menus',
|
|
491
|
-
pagination: { pages
|
|
501
|
+
pagination: { pages: [1000] },
|
|
492
502
|
basicArgs: {
|
|
493
|
-
filters: [
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
503
|
+
filters: [
|
|
504
|
+
{
|
|
505
|
+
name: 'parentId',
|
|
506
|
+
operator: 'is_null'
|
|
507
|
+
}
|
|
508
|
+
],
|
|
509
|
+
sortings: [
|
|
510
|
+
{
|
|
511
|
+
name: 'rank',
|
|
512
|
+
desc: false
|
|
513
|
+
}
|
|
514
|
+
]
|
|
499
515
|
},
|
|
500
516
|
list: { fields: ['id', 'name'] },
|
|
501
517
|
columns: [
|
|
502
518
|
{ name: 'id', hidden: true },
|
|
503
|
-
{
|
|
519
|
+
{
|
|
504
520
|
name: 'rank',
|
|
505
521
|
header: TermsUtil.tLabel('rank'),
|
|
506
|
-
width
|
|
507
|
-
record
|
|
522
|
+
width: 75,
|
|
523
|
+
record: {
|
|
508
524
|
editable: false,
|
|
509
525
|
format: '#,###',
|
|
510
526
|
align: 'left'
|
|
511
527
|
},
|
|
512
|
-
sortable: true
|
|
528
|
+
sortable: true
|
|
513
529
|
},
|
|
514
530
|
{
|
|
515
531
|
name: 'name',
|
|
@@ -528,24 +544,24 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
528
544
|
}
|
|
529
545
|
}
|
|
530
546
|
},
|
|
531
|
-
{
|
|
532
|
-
type: 'code',
|
|
533
|
-
name: 'menuType',
|
|
547
|
+
{
|
|
548
|
+
type: 'code',
|
|
549
|
+
name: 'menuType',
|
|
534
550
|
width: 120,
|
|
535
551
|
header: TermsUtil.tLabel('menu_type'),
|
|
536
|
-
record: {
|
|
537
|
-
editable: false,
|
|
538
|
-
codeName: 'MENU_TYPE'
|
|
552
|
+
record: {
|
|
553
|
+
editable: false,
|
|
554
|
+
codeName: 'MENU_TYPE'
|
|
539
555
|
}
|
|
540
556
|
},
|
|
541
|
-
{
|
|
542
|
-
name: 'routing',
|
|
557
|
+
{
|
|
558
|
+
name: 'routing',
|
|
543
559
|
width: 150,
|
|
544
560
|
header: TermsUtil.tLabel('routing'),
|
|
545
|
-
record: {
|
|
561
|
+
record: {
|
|
546
562
|
editable: false
|
|
547
563
|
}
|
|
548
|
-
}
|
|
564
|
+
}
|
|
549
565
|
],
|
|
550
566
|
valueField: 'id',
|
|
551
567
|
nameField: 'name',
|
|
@@ -553,7 +569,7 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
553
569
|
}
|
|
554
570
|
},
|
|
555
571
|
width: 200
|
|
556
|
-
}
|
|
572
|
+
}
|
|
557
573
|
/*{
|
|
558
574
|
type: 'meta-code-selector',
|
|
559
575
|
header: TermsUtil.tLabel('parent-menu'),
|
|
@@ -612,8 +628,8 @@ class DynamicMenu extends localize(i18next)(PageView) {
|
|
|
612
628
|
width: 120
|
|
613
629
|
}*/
|
|
614
630
|
]
|
|
615
|
-
}
|
|
631
|
+
}
|
|
616
632
|
}
|
|
617
633
|
}
|
|
618
634
|
|
|
619
|
-
customElements.define('dynamic-menu', DynamicMenu)
|
|
635
|
+
customElements.define('dynamic-menu', DynamicMenu)
|