@things-factory/organization 8.0.5 → 9.0.0-beta.12

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.
Files changed (97) hide show
  1. package/dist-client/bootstrap.js +8 -1
  2. package/dist-client/bootstrap.js.map +1 -1
  3. package/dist-client/filters-form/filter-department-object.d.ts +3 -0
  4. package/dist-client/filters-form/filter-department-object.js +8 -0
  5. package/dist-client/filters-form/filter-department-object.js.map +1 -0
  6. package/dist-client/filters-form/ox-filter-department-object.d.ts +15 -0
  7. package/dist-client/filters-form/ox-filter-department-object.js +130 -0
  8. package/dist-client/filters-form/ox-filter-department-object.js.map +1 -0
  9. package/dist-client/pages/employee/employee-list-page.js +3 -3
  10. package/dist-client/pages/employee/employee-list-page.js.map +1 -1
  11. package/dist-client/pages/employee/employees-by-department.js +2 -2
  12. package/dist-client/pages/employee/employees-by-department.js.map +1 -1
  13. package/dist-client/tsconfig.tsbuildinfo +1 -1
  14. package/dist-server/controllers/register-employee-as-system-user.d.ts +1 -1
  15. package/dist-server/controllers/register-employee-as-system-user.js +5 -5
  16. package/dist-server/controllers/register-employee-as-system-user.js.map +1 -1
  17. package/dist-server/service/employee/employee-history.d.ts +6 -2
  18. package/dist-server/service/employee/employee-history.js +23 -3
  19. package/dist-server/service/employee/employee-history.js.map +1 -1
  20. package/dist-server/service/employee/employee-query.js +1 -1
  21. package/dist-server/service/employee/employee-query.js.map +1 -1
  22. package/dist-server/service/employee/employee-type.d.ts +13 -5
  23. package/dist-server/service/employee/employee-type.js +39 -7
  24. package/dist-server/service/employee/employee-type.js.map +1 -1
  25. package/dist-server/service/employee/employee.d.ts +6 -2
  26. package/dist-server/service/employee/employee.js +23 -3
  27. package/dist-server/service/employee/employee.js.map +1 -1
  28. package/dist-server/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +12 -12
  30. package/client/bootstrap.ts +0 -23
  31. package/client/component/approval-line-brief.ts +0 -119
  32. package/client/component/approval-line-items-editor-popup.ts +0 -91
  33. package/client/component/approval-line-items-editor.ts +0 -325
  34. package/client/component/approval-line-selector.ts +0 -235
  35. package/client/component/approval-line-templates-manager.ts +0 -229
  36. package/client/component/approval-line-view.ts +0 -122
  37. package/client/component/assignees-editor-popup.ts +0 -79
  38. package/client/component/assignees-editor.ts +0 -217
  39. package/client/component/assignees-view.ts +0 -55
  40. package/client/component/department-selector.ts +0 -151
  41. package/client/component/department-view.ts +0 -107
  42. package/client/component/index.ts +0 -16
  43. package/client/component/recipients-editor-popup.ts +0 -79
  44. package/client/component/recipients-editor.ts +0 -212
  45. package/client/component/recipients-view.ts +0 -55
  46. package/client/grist-editor/grist-editor-approval-line.ts +0 -70
  47. package/client/grist-editor/grist-editor-assignees.ts +0 -69
  48. package/client/grist-editor/grist-editor-department-object.ts +0 -78
  49. package/client/grist-editor/grist-editor-recipients.ts +0 -69
  50. package/client/grist-editor/grist-renderer-approval-line.ts +0 -13
  51. package/client/grist-editor/grist-renderer-assignees.ts +0 -13
  52. package/client/grist-editor/grist-renderer-department-object.ts +0 -13
  53. package/client/grist-editor/grist-renderer-recipients.ts +0 -13
  54. package/client/index.ts +0 -2
  55. package/client/pages/approval-line/common-approval-line-templates-page.ts +0 -382
  56. package/client/pages/approval-line/my-approval-line-templates-page.ts +0 -385
  57. package/client/pages/department/department-importer.ts +0 -87
  58. package/client/pages/department/department-list-page.ts +0 -450
  59. package/client/pages/department/department-tree-page.ts +0 -379
  60. package/client/pages/employee/employee-importer.ts +0 -87
  61. package/client/pages/employee/employee-list-page.ts +0 -772
  62. package/client/pages/employee/employees-by-department.ts +0 -519
  63. package/client/route.ts +0 -27
  64. package/client/tsconfig.json +0 -13
  65. package/client/types/approval-line.ts +0 -52
  66. package/client/types/contact.ts +0 -51
  67. package/client/types/department.ts +0 -29
  68. package/client/types/employee.ts +0 -50
  69. package/client/types/index.ts +0 -5
  70. package/client/types/org-member.ts +0 -27
  71. package/server/controllers/register-employee-as-system-user.ts +0 -136
  72. package/server/index.ts +0 -3
  73. package/server/migrations/1723861013111-seed-organization-codes.ts +0 -127
  74. package/server/migrations/index.ts +0 -9
  75. package/server/routes.ts +0 -26
  76. package/server/service/approval-line/approval-line-item.ts +0 -42
  77. package/server/service/approval-line/approval-line-mutation.ts +0 -394
  78. package/server/service/approval-line/approval-line-query.ts +0 -208
  79. package/server/service/approval-line/approval-line-type.ts +0 -63
  80. package/server/service/approval-line/approval-line.ts +0 -123
  81. package/server/service/approval-line/index.ts +0 -7
  82. package/server/service/department/department-history.ts +0 -141
  83. package/server/service/department/department-mutation.ts +0 -231
  84. package/server/service/department/department-query.ts +0 -131
  85. package/server/service/department/department-type.ts +0 -74
  86. package/server/service/department/department.ts +0 -116
  87. package/server/service/department/event-subscriber.ts +0 -17
  88. package/server/service/department/index.ts +0 -9
  89. package/server/service/employee/employee-history.ts +0 -173
  90. package/server/service/employee/employee-mutation.ts +0 -386
  91. package/server/service/employee/employee-query.ts +0 -172
  92. package/server/service/employee/employee-type.ts +0 -176
  93. package/server/service/employee/employee.ts +0 -177
  94. package/server/service/employee/event-subscriber.ts +0 -17
  95. package/server/service/employee/index.ts +0 -9
  96. package/server/service/index.ts +0 -39
  97. package/server/tsconfig.json +0 -10
@@ -1,382 +0,0 @@
1
- import '@operato/data-grist'
2
- import '@operato/context/ox-context-page-toolbar.js'
3
- import '../../component/approval-line-items-editor-popup'
4
-
5
- import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
6
- import { PageView, store } from '@operato/shell'
7
- import { css, html } from 'lit'
8
-
9
- import { customElement, property, query } from 'lit/decorators.js'
10
- import { ScopedElementsMixin } from '@open-wc/scoped-elements'
11
- import { getRenderer, DataGrist, FetchOption } from '@operato/data-grist'
12
- import { client } from '@operato/graphql'
13
- import { i18next, localize } from '@operato/i18n'
14
- import { notify, openPopup } from '@operato/layout'
15
- import { adjustFilters, isMobileDevice } from '@operato/utils'
16
-
17
- import { connect } from 'pwa-helpers/connect-mixin'
18
- import gql from 'graphql-tag'
19
-
20
- @customElement('common-approval-line-templates-page')
21
- export class CommonApprovalLineTemplatesPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
22
- static styles = [
23
- ScrollbarStyles,
24
- CommonHeaderStyles,
25
- css`
26
- :host {
27
- display: flex;
28
-
29
- width: 100%;
30
-
31
- --grid-record-emphasized-background-color: #8b0000;
32
- --grid-record-emphasized-color: #ff6b6b;
33
- }
34
-
35
- ox-grist {
36
- flex: 1;
37
- }
38
-
39
- .header {
40
- grid-template-areas: 'filters actions';
41
- }
42
- `
43
- ]
44
-
45
- @property({ type: Object }) gristConfig: any
46
- @property({ type: String }) mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
47
-
48
- @query('ox-grist') private grist!: DataGrist
49
-
50
- get context() {
51
- return {
52
- title: i18next.t('title.common-approval-line template list'),
53
- search: {
54
- handler: (search: string) => {
55
- this.grist.searchText = search
56
- },
57
- value: this.grist?.searchText || ''
58
- },
59
- filter: {
60
- handler: () => {
61
- this.grist.toggleHeadroom()
62
- }
63
- },
64
- help: 'organization/approval-line',
65
- actions: [
66
- {
67
- icon: 'save',
68
- title: i18next.t('button.save'),
69
- action: this.updateApprovalLines.bind(this)
70
- },
71
- {
72
- icon: 'delete',
73
- title: i18next.t('button.delete'),
74
- action: this.deleteApprovalLines.bind(this),
75
- emphasis: {
76
- danger: true
77
- }
78
- }
79
- ],
80
- toolbar: false
81
- }
82
- }
83
-
84
- render() {
85
- const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
86
-
87
- return html`
88
- <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>
89
- <div slot="headroom" class="header">
90
- <ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
91
- </div>
92
- </ox-grist>
93
- `
94
- }
95
-
96
- async pageInitialized(lifecycle: any) {
97
- this.gristConfig = {
98
- list: {
99
- fields: ['name', 'description'],
100
- details: ['updatedAt']
101
- },
102
- columns: [
103
- { type: 'gutter', gutterName: 'sequence', fixed: true },
104
- { type: 'gutter', gutterName: 'row-selector', fixed: true, multiple: true },
105
- {
106
- type: 'gutter',
107
- gutterName: 'button',
108
- fixed: true,
109
- icon: record => (!record ? 'reorder' : record.id ? 'reorder' : ''),
110
- iconOnly: false,
111
- title: record => (!record ? i18next.t('button.edit') : record.id ? i18next.t('button.edit') : ''),
112
- width: 72,
113
- handlers: {
114
- click: (columns, data, column, record, rowIndex) => {
115
- if (!record.id) {
116
- return
117
- }
118
-
119
- const { id, model } = record
120
- const popup = openPopup(
121
- html`
122
- <approval-line-items-editor-popup
123
- .confirmCallback=${async model => {
124
- await this.updateApprovalLine(id, model)
125
- await this.grist.fetch()
126
- }}
127
- .value=${model}
128
- ></approval-line-items-editor-popup>
129
- `,
130
- {
131
- backdrop: true,
132
- help: 'organization/approval-line-items-editor',
133
- size: 'large',
134
- title: i18next.t('title.approval-line item list')
135
- }
136
- )
137
- popup.onclosed = () => {
138
- this.grist?.fetch()
139
- }
140
- }
141
- }
142
- },
143
- {
144
- type: 'string',
145
- name: 'name',
146
- fixed: true,
147
- header: i18next.t('field.name'),
148
- record: {
149
- editable: true
150
- },
151
- filter: 'search',
152
- sortable: true,
153
- width: 300
154
- },
155
- {
156
- type: 'string',
157
- name: 'description',
158
- header: i18next.t('field.description'),
159
- record: {
160
- editable: true
161
- },
162
- filter: 'search',
163
- width: 325
164
- },
165
- {
166
- type: 'string',
167
- name: 'ownerType',
168
- header: i18next.t('field.owner-type'),
169
- width: 120
170
- },
171
- {
172
- type: 'resource-object',
173
- name: 'owner',
174
- header: i18next.t('field.owner'),
175
- record: {
176
- editable: false,
177
- renderer: function (value, column, record, rowIndex, field) {
178
- var options = {}
179
- switch (record.ownerType) {
180
- case 'Employee':
181
- options = {
182
- valueField: 'id',
183
- nameField: 'name',
184
- descriptionField: 'controlNo'
185
- }
186
- break
187
- case 'Common':
188
- default:
189
- return
190
- }
191
-
192
- var dynamicRecord = { ...column.record, options }
193
-
194
- return getRenderer(column.type)(value, { ...column, record: dynamicRecord }, record, rowIndex, field)
195
- }
196
- },
197
- width: 180
198
- },
199
- {
200
- type: 'resource-object',
201
- name: 'updater',
202
- header: i18next.t('field.updater'),
203
- sortable: true,
204
- width: 90
205
- },
206
- {
207
- type: 'datetime',
208
- name: 'updatedAt',
209
- header: i18next.t('field.updated_at'),
210
- sortable: true,
211
- width: 180
212
- }
213
- ],
214
- rows: {
215
- selectable: {
216
- multiple: true
217
- }
218
- },
219
- sorters: [
220
- {
221
- name: 'name'
222
- }
223
- ]
224
- }
225
- }
226
-
227
- async pageUpdated(changes: any, lifecycle: any) {
228
- if (this.active) {
229
- // do something here when this page just became as active
230
- }
231
- }
232
-
233
- async fetchHandler({ page = 1, limit = 100, sortings = [], filters = [] }: FetchOption) {
234
- const response = await client.query({
235
- query: gql`
236
- query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
237
- responses: approvalLines(filters: $filters, pagination: $pagination, sortings: $sortings) {
238
- items {
239
- id
240
- name
241
- description
242
- ownerType
243
- owner {
244
- id
245
- name
246
- description
247
- controlNo
248
- }
249
- model {
250
- type
251
- approver {
252
- id
253
- name
254
- description
255
- controlNo
256
- }
257
- }
258
- updater {
259
- id
260
- name
261
- }
262
- updatedAt
263
- }
264
- total
265
- }
266
- }
267
- `,
268
- variables: {
269
- filters: adjustFilters(filters, [{ name: 'ownerType', operator: 'eq', value: 'Common' }]),
270
- pagination: { page, limit },
271
- sortings
272
- }
273
- })
274
-
275
- return {
276
- total: response.data.responses.total || 0,
277
- records: response.data.responses.items || []
278
- }
279
- }
280
-
281
- async deleteApprovalLines() {
282
- if (confirm(i18next.t('text.sure_to_x', { x: i18next.t('text.delete') }))) {
283
- const ids = this.grist.selected.map(record => record.id)
284
- if (ids && ids.length > 0) {
285
- const response = await client.mutate({
286
- mutation: gql`
287
- mutation ($ids: [String!]!) {
288
- deleteApprovalLines(ids: $ids)
289
- }
290
- `,
291
- variables: {
292
- ids
293
- }
294
- })
295
-
296
- if (!response.errors) {
297
- this.grist.fetch()
298
- notify({
299
- message: i18next.t('text.info_x_successfully', { x: i18next.t('text.delete') })
300
- })
301
- }
302
- }
303
- }
304
- }
305
-
306
- async updateApprovalLines() {
307
- let patches = this.grist.dirtyRecords
308
- if (patches && patches.length) {
309
- patches = patches.map(patch => {
310
- let patchField: any = patch.id ? { id: patch.id } : {}
311
- const dirtyFields = patch.__dirtyfields__
312
- for (let key in dirtyFields) {
313
- patchField[key] = dirtyFields[key].after
314
- }
315
-
316
- patchField['ownerType'] = 'Common'
317
- patchField['owner'] = null
318
-
319
- patchField.cuFlag = patch.__dirty__
320
-
321
- return patchField
322
- })
323
-
324
- const response = await client.mutate({
325
- mutation: gql`
326
- mutation ($patches: [ApprovalLinePatch!]!) {
327
- updateMultipleApprovalLine(patches: $patches) {
328
- name
329
- }
330
- }
331
- `,
332
- variables: {
333
- patches
334
- }
335
- })
336
-
337
- if (!response.errors) {
338
- this.grist.fetch()
339
- }
340
- }
341
- }
342
-
343
- async updateApprovalLine(id, model) {
344
- const response = await client.mutate({
345
- mutation: gql`
346
- mutation ($id: String!, $patch: ApprovalLinePatch!) {
347
- updateApprovalLine(id: $id, patch: $patch) {
348
- id
349
- name
350
- model {
351
- type
352
- approver {
353
- id
354
- name
355
- description
356
- controlNo
357
- }
358
- }
359
- }
360
- }
361
- `,
362
- variables: {
363
- id,
364
- patch: {
365
- model,
366
- cuFlag: 'M'
367
- }
368
- }
369
- })
370
- if (!response.errors) {
371
- await document.dispatchEvent(
372
- new CustomEvent('notify', {
373
- detail: {
374
- message: i18next.t('text.info_x_successfully', {
375
- x: i18next.t('button.save')
376
- })
377
- }
378
- })
379
- )
380
- }
381
- }
382
- }