@things-factory/meta-ui 7.0.1-alpha.61 → 7.0.1-alpha.63
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/bootstrap.ts +0 -1
- package/client/pages/personalize/{personal-column-selector.js → personal-column-selector.ts} +111 -114
- package/client/utils/meta-api.js +12 -4
- package/client/utils/meta-ui-util.js +172 -42
- package/client/utils/service-util.js +93 -21
- package/dist-client/bootstrap.d.ts +0 -1
- package/dist-client/bootstrap.js +0 -1
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/pages/personalize/personal-column-selector.d.ts +18 -26
- package/dist-client/pages/personalize/personal-column-selector.js +127 -124
- package/dist-client/pages/personalize/personal-column-selector.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-client/utils/meta-api.d.ts +3 -3
- package/dist-client/utils/meta-api.js +3 -3
- package/dist-client/utils/meta-api.js.map +1 -1
- package/dist-client/utils/meta-ui-util.js +120 -30
- package/dist-client/utils/meta-ui-util.js.map +1 -1
- package/dist-client/utils/service-util.d.ts +1 -1
- package/dist-client/utils/service-util.js +58 -15
- package/dist-client/utils/service-util.js.map +1 -1
- package/dist-server/service/button-role/button-role-query.js +1 -1
- package/dist-server/service/button-role/button-role-query.js.map +1 -1
- package/dist-server/service/grid-personalize/grid-personalize-mutation.js +25 -1
- package/dist-server/service/grid-personalize/grid-personalize-mutation.js.map +1 -1
- package/dist-server/service/grid-personalize/grid-personalize-query.js +13 -12
- package/dist-server/service/grid-personalize/grid-personalize-query.js.map +1 -1
- package/dist-server/service/grid-personalize/grid-personalize-type.js +4 -4
- package/dist-server/service/grid-personalize/grid-personalize-type.js.map +1 -1
- package/dist-server/service/grid-personalize/grid-personalize.js +3 -3
- package/dist-server/service/grid-personalize/grid-personalize.js.map +1 -1
- package/dist-server/service/menu-button-auth/menu-button-auth-query.js +3 -3
- package/dist-server/service/menu-button-auth/menu-button-auth-query.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/server/service/button-role/button-role-query.ts +9 -4
- package/server/service/grid-personalize/grid-personalize-mutation.ts +37 -8
- package/server/service/grid-personalize/grid-personalize-query.ts +11 -12
- package/server/service/grid-personalize/grid-personalize-type.ts +5 -7
- package/server/service/grid-personalize/grid-personalize.ts +10 -7
- package/server/service/menu-button-auth/menu-button-auth-query.ts +31 -29
package/client/bootstrap.ts
CHANGED
|
@@ -37,7 +37,6 @@ import { FilterGristMetaObjectSelect } from './component/filter/filter-grist-met
|
|
|
37
37
|
import { FilterFormMetaCodeSelect } from './component/filter/filter-form-meta-code-select'
|
|
38
38
|
import { FilterFormMetaObjectSelect } from './component/filter/filter-form-meta-object-select'
|
|
39
39
|
|
|
40
|
-
import './pages/personalize/personal-column-selector'
|
|
41
40
|
import './pages/history/history-copy-list-popup'
|
|
42
41
|
import './pages/history/history-json-list-popup'
|
|
43
42
|
|
package/client/pages/personalize/{personal-column-selector.js → personal-column-selector.ts}
RENAMED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import '@material/web/icon/icon.js'
|
|
2
2
|
|
|
3
|
+
import gql from 'graphql-tag'
|
|
3
4
|
import { css, html, LitElement } from 'lit'
|
|
5
|
+
import { customElement, property, query } from 'lit/decorators.js'
|
|
4
6
|
|
|
5
|
-
import { i18next, localize } from '@
|
|
7
|
+
import { i18next, localize } from '@operato/i18n'
|
|
8
|
+
import { client } from '@operato/graphql'
|
|
9
|
+
import { DataGrist } from '@operato/data-grist'
|
|
6
10
|
import { ScrollbarStyles, CommonGristStyles, ButtonContainerStyles } from '@operato/styles'
|
|
7
11
|
|
|
8
12
|
import { TermsUtil } from './../../utils/terms-util'
|
|
9
13
|
import { MetaApi } from '../../utils/meta-api'
|
|
10
14
|
import { ServiceUtil } from '../../utils/service-util'
|
|
15
|
+
import { UiUtil } from '../../utils/ui-util'
|
|
11
16
|
|
|
12
17
|
/**
|
|
13
18
|
* @license
|
|
@@ -15,103 +20,91 @@ import { ServiceUtil } from '../../utils/service-util'
|
|
|
15
20
|
* @author Yang <wryang@hatiolab.com>
|
|
16
21
|
* @description 사용자 그리드 컬럼 개인화 팝업
|
|
17
22
|
*/
|
|
23
|
+
|
|
24
|
+
@customElement('personal-column-selector')
|
|
18
25
|
export class PersonalColumnSelector extends localize(i18next)(LitElement) {
|
|
19
26
|
/**
|
|
20
27
|
* @description 스타일 정의
|
|
21
28
|
***********************************
|
|
22
29
|
* @returns {Object} 화면의 스타일 정의
|
|
23
30
|
*/
|
|
24
|
-
static
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
.container {
|
|
36
|
-
flex: 1;
|
|
37
|
-
display: grid;
|
|
38
|
-
overflow: hidden;
|
|
39
|
-
}
|
|
40
|
-
.container_detail {
|
|
41
|
-
background-color: var(--main-section-background-color);
|
|
42
|
-
display: flex;
|
|
43
|
-
flex-direction: column;
|
|
44
|
-
flex: 1;
|
|
45
|
-
overflow-y: auto;
|
|
46
|
-
}
|
|
31
|
+
static styles = [
|
|
32
|
+
ScrollbarStyles,
|
|
33
|
+
CommonGristStyles,
|
|
34
|
+
ButtonContainerStyles,
|
|
35
|
+
css`
|
|
36
|
+
:host {
|
|
37
|
+
display: flex;
|
|
38
|
+
flex-direction: column;
|
|
39
|
+
overflow-x: auto;
|
|
40
|
+
}
|
|
47
41
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
42
|
+
.container {
|
|
43
|
+
flex: 1;
|
|
44
|
+
display: grid;
|
|
45
|
+
overflow: hidden;
|
|
46
|
+
}
|
|
54
47
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
48
|
+
.container_detail {
|
|
49
|
+
background-color: var(--main-section-background-color);
|
|
50
|
+
display: flex;
|
|
51
|
+
flex-direction: column;
|
|
52
|
+
flex: 1;
|
|
53
|
+
overflow-y: auto;
|
|
54
|
+
}
|
|
61
55
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
56
|
+
h2 {
|
|
57
|
+
padding: var(--subtitle-padding);
|
|
58
|
+
font: var(--subtitle-font);
|
|
59
|
+
color: var(--subtitle-text-color);
|
|
60
|
+
border-bottom: var(--subtitle-border-bottom);
|
|
61
|
+
}
|
|
68
62
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
63
|
+
.container_detail h2 {
|
|
64
|
+
margin: var(--grist-title-margin);
|
|
65
|
+
border: var(--grist-title-border);
|
|
66
|
+
font: var(--grist-title-font);
|
|
67
|
+
color: var(--secondary-color);
|
|
68
|
+
}
|
|
72
69
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
70
|
+
.container_detail h2 md-icon {
|
|
71
|
+
--md-icon-size: var(--grist-title-icon-size);
|
|
72
|
+
vertical-align: middle;
|
|
73
|
+
margin: var(--grist-title-icon-margin);
|
|
74
|
+
color: var(--grist-title-icon-color);
|
|
75
|
+
}
|
|
77
76
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
77
|
+
h2 {
|
|
78
|
+
padding-bottom: var(--grist-title-with-grid-padding);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
ox-grist {
|
|
82
|
+
overflow-y: auto;
|
|
83
|
+
flex: 1;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
ox-filters-form {
|
|
87
|
+
flex: 1;
|
|
88
|
+
}
|
|
89
|
+
`
|
|
90
|
+
]
|
|
85
91
|
|
|
86
92
|
/**
|
|
87
|
-
* @description
|
|
88
|
-
***********************************
|
|
89
|
-
* @returns {Object} 화면의 프로퍼티 정의
|
|
93
|
+
* @description 선택된 그리드
|
|
90
94
|
*/
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* @description 메뉴 ID
|
|
104
|
-
******************************
|
|
105
|
-
* @type {String}
|
|
106
|
-
*/
|
|
107
|
-
menuId: {
|
|
108
|
-
type: String
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
95
|
+
@property({ type: Object }) configGrist: any
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* @description 메뉴 ID
|
|
99
|
+
*/
|
|
100
|
+
@property({ type: String }) menuId!: string
|
|
101
|
+
|
|
102
|
+
@query('ox-grist') private grist!: DataGrist
|
|
103
|
+
|
|
104
|
+
private gridConfig: any
|
|
112
105
|
|
|
113
106
|
/**
|
|
114
|
-
* @description
|
|
107
|
+
* @description 라이프 사이클
|
|
115
108
|
***************************
|
|
116
109
|
*/
|
|
117
110
|
async connectedCallback() {
|
|
@@ -128,9 +121,7 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
|
|
|
128
121
|
]
|
|
129
122
|
}
|
|
130
123
|
|
|
131
|
-
|
|
132
|
-
await super.connectedCallback()
|
|
133
|
-
}
|
|
124
|
+
await super.connectedCallback()
|
|
134
125
|
}
|
|
135
126
|
|
|
136
127
|
/**
|
|
@@ -140,27 +131,27 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
|
|
|
140
131
|
render() {
|
|
141
132
|
return html` <div id="container" class="container">
|
|
142
133
|
<div class="container_detail">
|
|
143
|
-
<ox-grist
|
|
134
|
+
<ox-grist
|
|
135
|
+
id="ox-grist"
|
|
136
|
+
.config=${this.gridConfig}
|
|
137
|
+
.mode=${'GRID'}
|
|
138
|
+
auto-fetch
|
|
139
|
+
.fetchHandler=${this.fetchColumns.bind(this)}
|
|
140
|
+
>
|
|
141
|
+
</ox-grist>
|
|
144
142
|
|
|
145
143
|
<div class="button-container" style="margin-left:unset">
|
|
146
144
|
<button @click=${this.reset.bind(this)}><md-icon>restart_alt</md-icon>${TermsUtil.tButton('reset')}</button>
|
|
147
145
|
<div filler></div>
|
|
148
146
|
<button @click=${this.save.bind(this)}><md-icon>save</md-icon>${TermsUtil.tButton('save')}</button>
|
|
149
|
-
<button danger @click=${this.delete.bind(this)}
|
|
147
|
+
<button danger @click=${this.delete.bind(this)}>
|
|
148
|
+
<md-icon>delete</md-icon>${TermsUtil.tButton('delete')}
|
|
149
|
+
</button>
|
|
150
150
|
</div>
|
|
151
151
|
</div>
|
|
152
152
|
</div>`
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
/**
|
|
156
|
-
* @description 그리드 리턴
|
|
157
|
-
**************************
|
|
158
|
-
* @returns {Object} 그리드
|
|
159
|
-
*/
|
|
160
|
-
get grist() {
|
|
161
|
-
return this.shadowRoot.querySelector('#ox-grist')
|
|
162
|
-
}
|
|
163
|
-
|
|
164
155
|
/**
|
|
165
156
|
* @description 컬럼 조회
|
|
166
157
|
***************************
|
|
@@ -186,8 +177,8 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
|
|
|
186
177
|
***************************
|
|
187
178
|
* @returns
|
|
188
179
|
*/
|
|
189
|
-
async delete(e) {
|
|
190
|
-
let personal = await MetaApi.
|
|
180
|
+
async delete(e: MouseEvent) {
|
|
181
|
+
let personal = await MetaApi.getMyMenuGridPersnal(this.menuId)
|
|
191
182
|
let { id = undefined } = personal
|
|
192
183
|
|
|
193
184
|
if (id) {
|
|
@@ -204,7 +195,7 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
|
|
|
204
195
|
* @description 개인화 그리드 초기화
|
|
205
196
|
************************************************
|
|
206
197
|
*/
|
|
207
|
-
async reset(e) {
|
|
198
|
+
async reset(e: MouseEvent) {
|
|
208
199
|
await this.grist.fetch()
|
|
209
200
|
}
|
|
210
201
|
|
|
@@ -212,13 +203,12 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
|
|
|
212
203
|
* @description 컬럼 변경 사항 저장
|
|
213
204
|
************************************************
|
|
214
205
|
*/
|
|
215
|
-
async save(e) {
|
|
206
|
+
async save(e: MouseEvent) {
|
|
216
207
|
// 변경 체크
|
|
217
208
|
MetaApi.patchesForUpdateMultiple(this.grist)
|
|
218
209
|
|
|
219
210
|
// 기존 데이터 조회
|
|
220
|
-
|
|
221
|
-
let { id = undefined, template = {} } = personal
|
|
211
|
+
const { template = {} } = (await MetaApi.getMyMenuGridPersnal(this.menuId)) || {}
|
|
222
212
|
|
|
223
213
|
let tempName = 'master'
|
|
224
214
|
if (this.configGrist.configName) {
|
|
@@ -240,23 +230,30 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
|
|
|
240
230
|
return x.name
|
|
241
231
|
})
|
|
242
232
|
|
|
243
|
-
|
|
233
|
+
try {
|
|
234
|
+
const response = await client.query({
|
|
235
|
+
query: gql`
|
|
236
|
+
mutation ($menuId: String!, $template: Object!) {
|
|
237
|
+
saveMyGridpersonalize(menuId: $menuId, template: $template) {
|
|
238
|
+
id
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
`,
|
|
242
|
+
variables: {
|
|
243
|
+
menuId: this.menuId,
|
|
244
|
+
template
|
|
245
|
+
}
|
|
246
|
+
})
|
|
244
247
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
} else {
|
|
250
|
-
patch.menu = {
|
|
251
|
-
id: this.menuId
|
|
248
|
+
if (!response.errors) {
|
|
249
|
+
UiUtil.showToast('info', TermsUtil.tText('success to save'))
|
|
250
|
+
} else {
|
|
251
|
+
ServiceUtil.showGraphqlErrorResponse(response)
|
|
252
252
|
}
|
|
253
|
-
|
|
253
|
+
} catch (e) {
|
|
254
|
+
ServiceUtil.showGraphqlException(e)
|
|
254
255
|
}
|
|
255
|
-
await MetaApi.updateMultiple('updateMultipleGridpersonalize', [patch])
|
|
256
256
|
|
|
257
|
-
MetaApi.showToast('info', TermsUtil.tText('success to save'))
|
|
258
257
|
history.back()
|
|
259
258
|
}
|
|
260
259
|
}
|
|
261
|
-
|
|
262
|
-
customElements.define('personal-column-selector', PersonalColumnSelector)
|
package/client/utils/meta-api.js
CHANGED
|
@@ -349,7 +349,7 @@ export class MetaApi {
|
|
|
349
349
|
/**
|
|
350
350
|
* @description 그리스트에서 변경, 추가된 내용 추출
|
|
351
351
|
********************************************
|
|
352
|
-
* @param {
|
|
352
|
+
* @param {Object} grist 그리스트
|
|
353
353
|
* @returns {Array} 그리스트에서 변경, 추가된 데이터 리스트
|
|
354
354
|
*/
|
|
355
355
|
static patchesForUpdateMultiple(grist) {
|
|
@@ -403,8 +403,8 @@ export class MetaApi {
|
|
|
403
403
|
* @param {String} menuId 메뉴 ID 값
|
|
404
404
|
* @returns {Object} 그리드 컬럼 개인화 정보
|
|
405
405
|
*/
|
|
406
|
-
static async
|
|
407
|
-
return await ServiceUtil.
|
|
406
|
+
static async getMyMenuGridPersnal(menuId) {
|
|
407
|
+
return await ServiceUtil.getMyMenuGridPersnal(menuId)
|
|
408
408
|
}
|
|
409
409
|
|
|
410
410
|
/**
|
|
@@ -593,7 +593,15 @@ export class MetaApi {
|
|
|
593
593
|
* @returns {Object} 그리스트 기본 컬럼 설정
|
|
594
594
|
*/
|
|
595
595
|
static async getGristCodeSelectorColumnConfig(name, displayName, align, sortable, width, mandatory, codeName) {
|
|
596
|
-
return await MetaUiUtil.getGristCodeSelectorColumnConfig(
|
|
596
|
+
return await MetaUiUtil.getGristCodeSelectorColumnConfig(
|
|
597
|
+
name,
|
|
598
|
+
displayName,
|
|
599
|
+
align,
|
|
600
|
+
sortable,
|
|
601
|
+
width,
|
|
602
|
+
mandatory,
|
|
603
|
+
codeName
|
|
604
|
+
)
|
|
597
605
|
}
|
|
598
606
|
|
|
599
607
|
/**
|