@things-factory/worklist 6.1.70 → 6.1.72

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 (71) hide show
  1. package/client/pages/activity/activity-list-page.ts +2 -2
  2. package/client/pages/activity/starter-list-page.ts +2 -2
  3. package/client/pages/activity-approval/activity-approval-list-page.ts +2 -2
  4. package/client/pages/activity-instance/activity-instance-list-page.ts +2 -2
  5. package/client/pages/activity-instance/activity-instance-search-page.ts +2 -2
  6. package/client/pages/activity-stats/activity-stats-list-page.ts +6 -22
  7. package/client/pages/activity-store/activity-store-page.ts +2 -2
  8. package/client/pages/activity-supervisor/reporter-list-page.ts +2 -2
  9. package/client/pages/activity-template/activity-template-list-page.ts +2 -2
  10. package/client/pages/activity-thread/activity-thread-list-page.ts +2 -2
  11. package/client/pages/installable-activity/installable-activity-list-page.ts +2 -2
  12. package/client/pages/todo/approval-done-list-page.ts +2 -2
  13. package/client/pages/todo/approval-pending-list-page.ts +2 -2
  14. package/client/pages/todo/done-list-page.ts +2 -2
  15. package/client/pages/todo/draft-list-page.ts +2 -2
  16. package/client/pages/todo/pickable-list-page.ts +2 -2
  17. package/client/pages/todo/todo-list-page.ts +2 -2
  18. package/dist-client/pages/activity/activity-list-page.d.ts +1 -1
  19. package/dist-client/pages/activity/activity-list-page.js +3 -2
  20. package/dist-client/pages/activity/activity-list-page.js.map +1 -1
  21. package/dist-client/pages/activity/starter-list-page.d.ts +1 -1
  22. package/dist-client/pages/activity/starter-list-page.js +3 -2
  23. package/dist-client/pages/activity/starter-list-page.js.map +1 -1
  24. package/dist-client/pages/activity-approval/activity-approval-list-page.d.ts +1 -1
  25. package/dist-client/pages/activity-approval/activity-approval-list-page.js +3 -2
  26. package/dist-client/pages/activity-approval/activity-approval-list-page.js.map +1 -1
  27. package/dist-client/pages/activity-instance/activity-instance-list-page.d.ts +1 -1
  28. package/dist-client/pages/activity-instance/activity-instance-list-page.js +3 -2
  29. package/dist-client/pages/activity-instance/activity-instance-list-page.js.map +1 -1
  30. package/dist-client/pages/activity-instance/activity-instance-search-page.d.ts +1 -1
  31. package/dist-client/pages/activity-instance/activity-instance-search-page.js +3 -2
  32. package/dist-client/pages/activity-instance/activity-instance-search-page.js.map +1 -1
  33. package/dist-client/pages/activity-stats/activity-stats-list-page.d.ts +1 -1
  34. package/dist-client/pages/activity-stats/activity-stats-list-page.js +5 -13
  35. package/dist-client/pages/activity-stats/activity-stats-list-page.js.map +1 -1
  36. package/dist-client/pages/activity-store/activity-store-page.d.ts +1 -1
  37. package/dist-client/pages/activity-store/activity-store-page.js +3 -2
  38. package/dist-client/pages/activity-store/activity-store-page.js.map +1 -1
  39. package/dist-client/pages/activity-supervisor/reporter-list-page.d.ts +1 -1
  40. package/dist-client/pages/activity-supervisor/reporter-list-page.js +3 -2
  41. package/dist-client/pages/activity-supervisor/reporter-list-page.js.map +1 -1
  42. package/dist-client/pages/activity-template/activity-template-list-page.d.ts +1 -1
  43. package/dist-client/pages/activity-template/activity-template-list-page.js +3 -2
  44. package/dist-client/pages/activity-template/activity-template-list-page.js.map +1 -1
  45. package/dist-client/pages/activity-thread/activity-thread-list-page.d.ts +1 -1
  46. package/dist-client/pages/activity-thread/activity-thread-list-page.js +3 -2
  47. package/dist-client/pages/activity-thread/activity-thread-list-page.js.map +1 -1
  48. package/dist-client/pages/installable-activity/installable-activity-list-page.d.ts +1 -1
  49. package/dist-client/pages/installable-activity/installable-activity-list-page.js +3 -2
  50. package/dist-client/pages/installable-activity/installable-activity-list-page.js.map +1 -1
  51. package/dist-client/pages/todo/approval-done-list-page.d.ts +1 -1
  52. package/dist-client/pages/todo/approval-done-list-page.js +3 -2
  53. package/dist-client/pages/todo/approval-done-list-page.js.map +1 -1
  54. package/dist-client/pages/todo/approval-pending-list-page.d.ts +1 -1
  55. package/dist-client/pages/todo/approval-pending-list-page.js +3 -2
  56. package/dist-client/pages/todo/approval-pending-list-page.js.map +1 -1
  57. package/dist-client/pages/todo/done-list-page.d.ts +1 -1
  58. package/dist-client/pages/todo/done-list-page.js +3 -2
  59. package/dist-client/pages/todo/done-list-page.js.map +1 -1
  60. package/dist-client/pages/todo/draft-list-page.d.ts +1 -1
  61. package/dist-client/pages/todo/draft-list-page.js +3 -2
  62. package/dist-client/pages/todo/draft-list-page.js.map +1 -1
  63. package/dist-client/pages/todo/pickable-list-page.d.ts +1 -1
  64. package/dist-client/pages/todo/pickable-list-page.js +3 -2
  65. package/dist-client/pages/todo/pickable-list-page.js.map +1 -1
  66. package/dist-client/pages/todo/todo-list-page.d.ts +1 -1
  67. package/dist-client/pages/todo/todo-list-page.js +3 -2
  68. package/dist-client/pages/todo/todo-list-page.js.map +1 -1
  69. package/dist-client/themes/calendar-theme.css +54 -0
  70. package/dist-client/tsconfig.tsbuildinfo +1 -1
  71. package/package.json +10 -9
@@ -52,12 +52,12 @@ export class ActivityListPage extends connect(store)(localize(i18next)(PageView)
52
52
 
53
53
  get context() {
54
54
  return {
55
+ title: i18next.t('title.activity list'),
55
56
  search: {
56
57
  handler: (search: string) => {
57
58
  this.grist.searchText = search
58
59
  },
59
- placeholder: i18next.t('title.activity list'),
60
- value: this.grist.searchText
60
+ value: this.grist?.searchText || ''
61
61
  },
62
62
  filter: {
63
63
  handler: () => {
@@ -54,12 +54,12 @@ export class StarterListPage extends connect(store)(localize(i18next)(PageView))
54
54
 
55
55
  get context() {
56
56
  return {
57
+ title: i18next.t('title.activity starter list'),
57
58
  search: {
58
59
  handler: (search: string) => {
59
60
  this.grist.searchText = search
60
61
  },
61
- placeholder: i18next.t('title.activity starter list'),
62
- value: this.grist.searchText
62
+ value: this.grist?.searchText || ''
63
63
  },
64
64
  filter: {
65
65
  handler: () => {
@@ -48,12 +48,12 @@ export class ActivityApprovalListPage extends connect(store)(localize(i18next)(S
48
48
 
49
49
  get context() {
50
50
  return {
51
+ title: i18next.t('title.activity approval list'),
51
52
  search: {
52
53
  handler: (search: string) => {
53
54
  this.grist.searchText = search
54
55
  },
55
- placeholder: i18next.t('title.activity approval list'),
56
- value: this.grist.searchText
56
+ value: this.grist?.searchText || ''
57
57
  },
58
58
  filter: {
59
59
  handler: () => {
@@ -34,12 +34,12 @@ export class ActivityInstanceListPage extends connect(store)(localize(i18next)(P
34
34
 
35
35
  get context() {
36
36
  return {
37
+ title: i18next.t('title.activity instance list'),
37
38
  search: {
38
39
  handler: (search: string) => {
39
40
  this.grist.searchText = search
40
41
  },
41
- placeholder: i18next.t('title.activity instance list'),
42
- value: this.grist.searchText
42
+ value: this.grist?.searchText || ''
43
43
  },
44
44
  filter: {
45
45
  handler: () => {
@@ -48,12 +48,12 @@ export class ActivityInstanceSearchPage extends connect(store)(localize(i18next)
48
48
 
49
49
  get context() {
50
50
  return {
51
+ title: i18next.t('title.activity instance search'),
51
52
  search: {
52
53
  handler: (search: string) => {
53
54
  this.grist.searchText = search
54
55
  },
55
- placeholder: i18next.t('title.activity instance search'),
56
- value: this.grist.searchText
56
+ value: this.grist?.searchText || ''
57
57
  },
58
58
  filter: {
59
59
  handler: () => {
@@ -5,12 +5,7 @@ import { PageView, store } from '@operato/shell'
5
5
  import { css, html } from 'lit'
6
6
  import { customElement, property, query } from 'lit/decorators.js'
7
7
  import { ScopedElementsMixin } from '@open-wc/scoped-elements'
8
- import {
9
- ColumnConfig,
10
- DataGrist,
11
- FetchOption,
12
- SortersControl
13
- } from '@operato/data-grist'
8
+ import { ColumnConfig, DataGrist, FetchOption, SortersControl } from '@operato/data-grist'
14
9
  import { client } from '@operato/graphql'
15
10
  import { i18next, localize } from '@operato/i18n'
16
11
  import { notify, openPopup } from '@operato/layout'
@@ -24,7 +19,6 @@ import { ActivityStatsImporter } from './activity-stats-importer'
24
19
 
25
20
  @customElement('activity-stats-list-page')
26
21
  export class ActivityStatsListPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
27
-
28
22
  static styles = [
29
23
  ScrollbarStyles,
30
24
  CommonGristStyles,
@@ -54,12 +48,12 @@ export class ActivityStatsListPage extends connect(store)(localize(i18next)(Scop
54
48
 
55
49
  get context() {
56
50
  return {
51
+ title: i18next.t('title.activity-stats list'),
57
52
  search: {
58
53
  handler: (search: string) => {
59
54
  this.grist.searchText = search
60
55
  },
61
- placeholder: i18next.t('title.activity-stats list'),
62
- value: this.grist.searchText
56
+ value: this.grist?.searchText || ''
63
57
  },
64
58
  filter: {
65
59
  handler: () => {
@@ -93,11 +87,7 @@ export class ActivityStatsListPage extends connect(store)(localize(i18next)(Scop
93
87
  const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
94
88
 
95
89
  return html`
96
- <ox-grist
97
- .mode=${mode}
98
- .config=${this.gristConfig}
99
- .fetchHandler=${this.fetchHandler.bind(this)}
100
- >
90
+ <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>
101
91
  <div slot="headroom">
102
92
  <div id="filters">
103
93
  <ox-filters-form autofocus></ox-filters-form>
@@ -305,12 +295,7 @@ export class ActivityStatsListPage extends connect(store)(localize(i18next)(Scop
305
295
 
306
296
  async exportHandler() {
307
297
  const exportTargets = this.grist.selected.length ? this.grist.selected : this.grist.dirtyData.records
308
- const targetFieldSet = new Set([
309
- 'id',
310
- 'name',
311
- 'description',
312
- 'active'
313
- ])
298
+ const targetFieldSet = new Set(['id', 'name', 'description', 'active'])
314
299
 
315
300
  return exportTargets.map(activityStats => {
316
301
  let tempObj = {}
@@ -339,10 +324,9 @@ export class ActivityStatsListPage extends connect(store)(localize(i18next)(Scop
339
324
  title: i18next.t('title.import activity-stats')
340
325
  }
341
326
  )
342
-
327
+
343
328
  popup.onclosed = () => {
344
329
  this.grist.fetch()
345
330
  }
346
331
  }
347
332
  }
348
-
@@ -36,12 +36,12 @@ export class ActivityStorePage extends connect(store)(localize(i18next)(PageView
36
36
 
37
37
  get context() {
38
38
  return {
39
+ title: i18next.t('title.activity store'),
39
40
  search: {
40
41
  handler: (search: string) => {
41
42
  this.grist.searchText = search
42
43
  },
43
- placeholder: i18next.t('title.activity store'),
44
- value: this.grist.searchText
44
+ value: this.grist?.searchText || ''
45
45
  },
46
46
  filter: {
47
47
  handler: () => {
@@ -36,12 +36,12 @@ export class ReporterListPage extends connect(store)(localize(i18next)(PageView)
36
36
 
37
37
  get context() {
38
38
  return {
39
+ title: i18next.t('title.activity reporter list'),
39
40
  search: {
40
41
  handler: (search: string) => {
41
42
  this.grist.searchText = search
42
43
  },
43
- placeholder: i18next.t('title.activity reporter list'),
44
- value: this.grist.searchText
44
+ value: this.grist?.searchText || ''
45
45
  },
46
46
  filter: {
47
47
  handler: () => {
@@ -39,12 +39,12 @@ export class ActivityTemplateListPage extends connect(store)(localize(i18next)(P
39
39
 
40
40
  get context() {
41
41
  return {
42
+ title: i18next.t('title.activity template list'),
42
43
  search: {
43
44
  handler: (search: string) => {
44
45
  this.grist.searchText = search
45
46
  },
46
- placeholder: i18next.t('title.activity template list'),
47
- value: this.grist.searchText
47
+ value: this.grist?.searchText || ''
48
48
  },
49
49
  filter: {
50
50
  handler: () => {
@@ -36,12 +36,12 @@ export class ActivityThreadListPage extends connect(store)(localize(i18next)(Pag
36
36
 
37
37
  get context() {
38
38
  return {
39
+ title: i18next.t('title.activity thread list'),
39
40
  search: {
40
41
  handler: (search: string) => {
41
42
  this.grist.searchText = search
42
43
  },
43
- placeholder: i18next.t('title.activity thread list'),
44
- value: this.grist.searchText
44
+ value: this.grist?.searchText || ''
45
45
  },
46
46
  filter: {
47
47
  handler: () => {
@@ -38,12 +38,12 @@ export class ActivityTemplateListPage extends connect(store)(localize(i18next)(P
38
38
 
39
39
  get context() {
40
40
  return {
41
+ title: i18next.t('title.installable activity list'),
41
42
  search: {
42
43
  handler: (search: string) => {
43
44
  this.grist.searchText = search
44
45
  },
45
- placeholder: i18next.t('title.installable activity list'),
46
- value: this.grist.searchText
46
+ value: this.grist?.searchText || ''
47
47
  },
48
48
  filter: {
49
49
  handler: () => {
@@ -47,12 +47,12 @@ export class ApprovalDoneListPage extends connect(store)(localize(i18next)(PageV
47
47
 
48
48
  get context() {
49
49
  return {
50
+ title: i18next.t('title.approval done list'),
50
51
  search: {
51
52
  handler: (search: string) => {
52
53
  this.grist.searchText = search
53
54
  },
54
- placeholder: i18next.t('title.approval done list'),
55
- value: this.grist.searchText
55
+ value: this.grist?.searchText || ''
56
56
  },
57
57
  filter: {
58
58
  handler: () => {
@@ -48,12 +48,12 @@ export class ApprovalPendingListPage extends connect(store)(localize(i18next)(Pa
48
48
 
49
49
  get context() {
50
50
  return {
51
+ title: i18next.t('title.approval pending list'),
51
52
  search: {
52
53
  handler: (search: string) => {
53
54
  this.grist.searchText = search
54
55
  },
55
- placeholder: i18next.t('title.approval pending list'),
56
- value: this.grist.searchText
56
+ value: this.grist?.searchText || ''
57
57
  },
58
58
  filter: {
59
59
  handler: () => {
@@ -45,12 +45,12 @@ export class DoneListPage extends connect(store)(localize(i18next)(PageView)) {
45
45
 
46
46
  get context() {
47
47
  return {
48
+ title: i18next.t('title.done list'),
48
49
  search: {
49
50
  handler: (search: string) => {
50
51
  this.grist.searchText = search
51
52
  },
52
- placeholder: i18next.t('title.done list'),
53
- value: this.grist.searchText
53
+ value: this.grist?.searchText || ''
54
54
  },
55
55
  filter: {
56
56
  handler: () => {
@@ -42,12 +42,12 @@ export class DraftListPage extends connect(store)(localize(i18next)(PageView)) {
42
42
 
43
43
  get context() {
44
44
  return {
45
+ title: i18next.t('title.draft list'),
45
46
  search: {
46
47
  handler: (search: string) => {
47
48
  this.grist.searchText = search
48
49
  },
49
- placeholder: i18next.t('title.draft list'),
50
- value: this.grist.searchText
50
+ value: this.grist?.searchText || ''
51
51
  },
52
52
  filter: {
53
53
  handler: () => {
@@ -41,12 +41,12 @@ export class PickableListPage extends connect(store)(localize(i18next)(PageView)
41
41
 
42
42
  get context() {
43
43
  return {
44
+ title: i18next.t('title.activity shopping'),
44
45
  search: {
45
46
  handler: (search: string) => {
46
47
  this.grist.searchText = search
47
48
  },
48
- placeholder: i18next.t('title.activity shopping'),
49
- value: this.grist.searchText
49
+ value: this.grist?.searchText || ''
50
50
  },
51
51
  filter: {
52
52
  handler: () => {
@@ -50,12 +50,12 @@ export class TodoListPage extends connect(store)(localize(i18next)(PageView)) {
50
50
 
51
51
  get context() {
52
52
  return {
53
+ title: i18next.t('title.todo list'),
53
54
  search: {
54
55
  handler: (search: string) => {
55
56
  this.grist.searchText = search
56
57
  },
57
- placeholder: i18next.t('title.todo list'),
58
- value: this.grist.searchText
58
+ value: this.grist?.searchText || ''
59
59
  },
60
60
  filter: {
61
61
  handler: () => {
@@ -20,9 +20,9 @@ export declare class ActivityListPage extends ActivityListPage_base {
20
20
  grist: DataGrist;
21
21
  filters: string[];
22
22
  get context(): {
23
+ title: string;
23
24
  search: {
24
25
  handler: (search: string) => void;
25
- placeholder: string;
26
26
  value: string;
27
27
  };
28
28
  filter: {
@@ -29,13 +29,14 @@ let ActivityListPage = class ActivityListPage extends connect(store)(localize(i1
29
29
  this.filters = ['released'];
30
30
  }
31
31
  get context() {
32
+ var _a;
32
33
  return {
34
+ title: i18next.t('title.activity list'),
33
35
  search: {
34
36
  handler: (search) => {
35
37
  this.grist.searchText = search;
36
38
  },
37
- placeholder: i18next.t('title.activity list'),
38
- value: this.grist.searchText
39
+ value: ((_a = this.grist) === null || _a === void 0 ? void 0 : _a.searchText) || ''
39
40
  },
40
41
  filter: {
41
42
  handler: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"activity-list-page.js","sourceRoot":"","sources":["../../../client/pages/activity/activity-list-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/data-grist'\nimport './activity-model-item-list.js'\n\nimport gql from 'graphql-tag'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin.js'\nimport moment from 'moment-timezone'\n\nimport { DataGrist, FetchOption, getEditor, getRenderer } from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify, openPopup } from '@operato/layout'\nimport { PageView, store } from '@operato/shell'\nimport { CommonButtonStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles'\nimport { adjustFilters, isMobileDevice } from '@operato/utils'\n\nimport { ActivityStartingTypes, ActivityTypes, ActivityUITypes } from '../../types/types.js'\n\nexport const ActivityStatus = [\n { display: '', value: '' },\n { display: i18next.t('label.activity-state-draft'), value: 'draft' },\n { display: i18next.t('label.activity-state-released'), value: 'released' },\n { display: i18next.t('label.activity-state-deprecated'), value: 'deprecated' }\n]\nconst DEFAULT_TZ = Intl.DateTimeFormat().resolvedOptions().timeZone\nconst TIMEZONE_OPTIONS = ['', DEFAULT_TZ, ...moment.tz.names().filter(tz => tz !== DEFAULT_TZ)]\n\n@customElement('activity-list-page')\nexport class ActivityListPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n css`\n :host {\n display: flex;\n\n width: 100%;\n\n --grid-record-emphasized-background-color: red;\n --grid-record-emphasized-color: yellow;\n }\n `\n ]\n\n @property({ type: Object }) gristConfig?: any\n @property({ type: String }) mode: 'CARD' | 'GRID' = isMobileDevice() ? 'CARD' : 'GRID'\n\n @query('ox-grist') grist!: DataGrist\n\n @state() filters: string[] = ['released']\n\n get context() {\n return {\n search: {\n handler: (search: string) => {\n this.grist.searchText = search\n },\n placeholder: i18next.t('title.activity list'),\n value: this.grist.searchText\n },\n filter: {\n handler: () => {\n this.grist.toggleHeadroom()\n }\n },\n help: 'worklist/activity',\n actions: [\n {\n title: i18next.t('button.save'),\n action: this.updateActivity.bind(this),\n ...CommonButtonStyles.save\n }\n ]\n }\n }\n\n render() {\n const mode = this.mode\n\n return html`\n <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>\n <div slot=\"headroom\">\n <div id=\"filters\">\n <ox-input-select-buttons\n .value=${this.filters}\n .options=${[\n {\n display: i18next.t('label.filter-draft'),\n value: 'draft'\n },\n {\n display: i18next.t('label.filter-released'),\n value: 'released'\n },\n {\n display: i18next.t('label.filter-deprecated'),\n value: 'deprecated'\n }\n ]}\n @change=${(e: CustomEvent) => {\n this.filters = (e.currentTarget as any)?.value\n this.grist.fetch()\n }}\n ></ox-input-select-buttons>\n </div>\n\n <div id=\"modes\">\n <mwc-icon @click=${() => (this.mode = 'GRID')} ?active=${mode == 'GRID'}>grid_on</mwc-icon>\n <mwc-icon @click=${() => (this.mode = 'CARD')} ?active=${mode == 'CARD'}>apps</mwc-icon>\n </div>\n </div>\n </ox-grist>\n `\n }\n\n async pageInitialized(lifecycle) {\n this.gristConfig = {\n list: {\n thumbnail: 'thumbnail',\n fields: ['name', 'description'],\n details: ['updatedAt']\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n { type: 'gutter', gutterName: 'row-selector', multiple: true },\n {\n type: 'gutter',\n gutterName: 'button',\n title: i18next.t('title.activity schedule (un)register'),\n icon: record => (!record || !record.name ? '' : record.scheduleId ? 'pause' : 'play_arrow'),\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n if (!record || !record.name) {\n /* TODO record가 새로 추가된 것이면 리턴하도록 한다. */\n return\n }\n if (record.scheduleId) {\n this.stopActivitySchedule(record)\n } else {\n this.startActivitySchedule(record)\n }\n }\n }\n },\n {\n type: 'gutter',\n gutterName: 'button',\n title: i18next.t('title.activity model item list'),\n icon: 'reorder',\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n if (!record.id) return\n const popup = openPopup(\n html` <activity-model-item-list .activity=${record}></activity-model-item-list> `,\n {\n backdrop: true,\n help: 'worklist/activity/activity-model-item-list',\n size: 'large',\n title: i18next.t('title.activity model item list')\n }\n )\n popup.onclosed = () => {\n this.grist?.fetch()\n }\n }\n }\n },\n {\n type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n record: {\n editable: true\n },\n filter: 'search',\n sortable: true,\n width: 175\n },\n {\n type: 'string',\n name: 'description',\n header: i18next.t('field.description'),\n record: {\n editable: true\n },\n filter: 'search',\n width: 225\n },\n {\n type: 'approval-line',\n name: 'approvalLine',\n header: i18next.t('field.approval-line'),\n record: {\n editable: true,\n align: 'center'\n },\n width: 60\n },\n {\n type: 'select',\n name: 'state',\n header: i18next.t('field.status'),\n record: {\n editable: true,\n options: ActivityStatus\n },\n filter: true,\n width: 75\n },\n {\n type: 'select',\n name: 'activityType',\n label: true,\n header: i18next.t('field.activity-type'),\n record: {\n editable: true,\n options: ActivityTypes\n },\n sortable: true,\n width: 75\n },\n {\n type: 'select',\n name: 'startingType',\n label: true,\n header: i18next.t('field.starting-type'),\n record: {\n editable: true,\n options: ActivityStartingTypes\n },\n sortable: true,\n width: 75\n },\n {\n type: 'select',\n name: 'multiple',\n header: i18next.t('field.multiple'),\n record: {\n editable: true,\n options: [\n { display: '', value: '' },\n { display: 'Single', value: 'single' },\n { display: 'Parallel', value: 'parallel' },\n { display: 'Sequential', value: 'sequential' }\n ]\n },\n width: 90\n },\n {\n type: 'activity-search-keys',\n name: 'searchKeys',\n label: true,\n header: i18next.t('field.search-keys'),\n record: {\n editable: true\n },\n width: 60\n },\n {\n type: 'number',\n name: 'priority',\n header: i18next.t('field.priority'),\n record: {\n editable: true,\n align: 'center',\n renderer: function (value, column, record, rowIndex, field) {\n const color = ['', 'gray', 'yellow', 'orange', 'red'][value || 0]\n const count = new Array(value > 4 ? 4 : value || 0).fill('')\n return html`${count.map(() => html`<mwc-icon style=\"color:${color};\">star</mwc-icon>`)}`\n }\n },\n width: 75\n },\n {\n type: 'crontab',\n name: 'schedule',\n label: true,\n header: i18next.t('field.schedule'),\n record: {\n editable: true,\n options: {\n objectified: true\n }\n },\n width: 80\n },\n {\n type: 'select',\n name: 'timezone',\n header: i18next.t('field.timezone'),\n record: {\n editable: true,\n options: TIMEZONE_OPTIONS\n },\n width: 120\n },\n {\n type: 'image',\n name: 'thumbnail',\n header: i18next.t('field.thumbnail'),\n record: { editable: true },\n width: 120\n },\n {\n type: 'resource-object',\n name: 'issuerRole',\n header: i18next.t('field.issuer-role'),\n record: {\n editable: true,\n options: {\n title: i18next.t('title.lookup role'),\n queryName: 'roles'\n }\n },\n filter: 'search',\n width: 85\n },\n {\n type: 'resource-object',\n name: 'assigneeRole',\n header: i18next.t('field.assignee-role'),\n record: {\n editable: true,\n options: {\n title: i18next.t('title.lookup role'),\n queryName: 'roles'\n }\n },\n filter: 'search',\n width: 85\n },\n {\n type: 'resource-object',\n name: 'supervisoryRole',\n header: i18next.t('field.supervisory-role'),\n record: {\n editable: true,\n options: {\n title: i18next.t('title.lookup role'),\n queryName: 'roles'\n }\n },\n filter: 'search',\n width: 85\n },\n {\n type: 'assignees',\n name: 'assignees',\n header: i18next.t('field.assignees'),\n record: {\n editable: true\n },\n width: 80\n },\n {\n type: 'select',\n name: 'uiType',\n label: true,\n header: i18next.t('field.ui-type'),\n record: {\n editable: true,\n options: ActivityUITypes\n },\n width: 80\n },\n {\n type: 'string',\n name: 'uiSource',\n header: i18next.t('field.ui-source'),\n record: {\n editable: true,\n editor: function (value, column, record, rowIndex, field) {\n var type = record.uiType !== 'board' ? 'script' : 'board'\n return getEditor(type)(value, column, record, rowIndex, field)\n },\n renderer: function (value, column, record, rowIndex, field) {\n var type = record.uiType !== 'board' ? 'script' : 'board'\n return getRenderer(type)(value, column, record, rowIndex, field)\n }\n },\n width: 140\n },\n {\n type: 'select',\n name: 'viewType',\n label: true,\n header: i18next.t('field.view-type'),\n record: {\n editable: true,\n options: ActivityUITypes\n },\n width: 80\n },\n {\n type: 'string',\n name: 'viewSource',\n header: i18next.t('field.view-source'),\n record: {\n editable: true,\n editor: function (value, column, record, rowIndex, field) {\n var type = record.viewType !== 'board' ? 'script' : 'board'\n return getEditor(type)(value, column, record, rowIndex, field)\n },\n renderer: function (value, column, record, rowIndex, field) {\n var type = record.viewType !== 'board' ? 'script' : 'board'\n return getRenderer(type)(value, column, record, rowIndex, field)\n }\n },\n width: 140\n },\n {\n type: 'select',\n name: 'reportType',\n label: true,\n header: i18next.t('field.report-type'),\n record: {\n editable: true,\n options: ActivityUITypes\n },\n width: 80\n },\n {\n type: 'string',\n name: 'reportSource',\n header: i18next.t('field.report-source'),\n record: {\n editable: true,\n editor: function (value, column, record, rowIndex, field) {\n var type = record.reportType !== 'board' ? 'script' : 'board'\n return getEditor(type)(value, column, record, rowIndex, field)\n },\n renderer: function (value, column, record, rowIndex, field) {\n var type = record.reportType !== 'board' ? 'script' : 'board'\n return getRenderer(type)(value, column, record, rowIndex, field)\n }\n },\n width: 140\n },\n {\n type: 'duration',\n name: 'standardTime',\n header: i18next.t('field.standard-time'),\n record: {\n editable: true\n },\n sortable: true,\n width: 105\n },\n {\n type: 'resource-object',\n name: 'updater',\n header: i18next.t('field.updater'),\n record: {\n editable: false\n },\n sortable: true,\n width: 85\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: i18next.t('field.updated_at'),\n record: {\n editable: false\n },\n sortable: true,\n width: 180\n }\n ],\n rows: {\n selectable: {\n multiple: true\n },\n handlers: {\n click: 'select-row-toggle'\n }\n },\n sorters: [\n {\n name: 'name'\n }\n ]\n }\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n const status = ['draft', 'released', 'deprecated'].filter(state => this.filters?.includes(state))\n\n if (status.length > 0) {\n filters = adjustFilters(filters, [{ name: 'state', operator: 'in', value: status }])\n }\n\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n responses: activities(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n description\n activityType\n searchKeys {\n name\n description\n inputKey\n tKey\n }\n state\n model {\n name\n description\n active\n tag\n inout\n type\n unit\n options\n quantifier\n spec\n }\n thumbnail\n priority\n issuerRole {\n id\n name\n }\n assigneeRole {\n id\n name\n }\n supervisoryRole {\n id\n name\n }\n assignees {\n type\n value\n assignee {\n id\n name\n description\n controlNo\n }\n }\n approvalLine {\n type\n value\n approver {\n id\n name\n description\n controlNo\n }\n }\n uiType\n uiSource\n viewType\n viewSource\n reportType\n reportSource\n startingType\n multiple\n schedule\n timezone\n scheduleId\n standardTime\n updater {\n id\n name\n }\n updatedAt\n }\n total\n }\n }\n `,\n variables: {\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.responses.total || 0,\n records: response.data.responses.items || []\n }\n }\n\n async updateActivity() {\n let patches = this.grist?.dirtyRecords\n if (patches && patches.length) {\n patches = patches.map(patch => {\n let patchField: any = patch.id ? { id: patch.id } : {}\n const dirtyFields = patch.__dirtyfields__\n for (let key in dirtyFields) {\n patchField[key] = dirtyFields[key].after\n }\n patchField.cuFlag = patch.__dirty__\n\n return patchField\n })\n\n const response = await client.mutate({\n mutation: gql`\n mutation ($patches: [ActivityPatch!]!) {\n updateMultipleActivity(patches: $patches) {\n name\n }\n }\n `,\n variables: {\n patches\n },\n context: {\n hasUpload: true\n }\n })\n\n if (!response.errors) {\n this.grist?.fetch()\n }\n }\n }\n\n async startActivitySchedule(record) {\n var response = await client.mutate({\n mutation: gql`\n mutation ($activityId: String!) {\n startActivitySchedule(activityId: $activityId) {\n scheduleId\n }\n }\n `,\n variables: {\n activityId: record.id\n }\n })\n\n const scheduleId = response.data.startActivitySchedule.scheduleId\n record.scheduleId = scheduleId\n\n notify({\n level: 'info',\n message: `${record.scheduleId ? 'success' : 'fail'} to start activity schedule : ${record.name}`\n })\n\n this.grist.fetch()\n }\n\n async stopActivitySchedule(record) {\n var response = await client.mutate({\n mutation: gql`\n mutation ($activityId: String!) {\n stopActivitySchedule(activityId: $activityId) {\n scheduleId\n }\n }\n `,\n variables: {\n activityId: record.id\n }\n })\n\n if (!response.errors) {\n notify({\n level: 'info',\n message: `success to stop activity schedule : ${record.name}`\n })\n } else {\n notify({\n level: 'error',\n message: `${response.errors.map(error => error.message).join('\\n')}`\n })\n }\n\n this.grist.fetch()\n }\n}\n"]}
1
+ {"version":3,"file":"activity-list-page.js","sourceRoot":"","sources":["../../../client/pages/activity/activity-list-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/data-grist'\nimport './activity-model-item-list.js'\n\nimport gql from 'graphql-tag'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin.js'\nimport moment from 'moment-timezone'\n\nimport { DataGrist, FetchOption, getEditor, getRenderer } from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify, openPopup } from '@operato/layout'\nimport { PageView, store } from '@operato/shell'\nimport { CommonButtonStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles'\nimport { adjustFilters, isMobileDevice } from '@operato/utils'\n\nimport { ActivityStartingTypes, ActivityTypes, ActivityUITypes } from '../../types/types.js'\n\nexport const ActivityStatus = [\n { display: '', value: '' },\n { display: i18next.t('label.activity-state-draft'), value: 'draft' },\n { display: i18next.t('label.activity-state-released'), value: 'released' },\n { display: i18next.t('label.activity-state-deprecated'), value: 'deprecated' }\n]\nconst DEFAULT_TZ = Intl.DateTimeFormat().resolvedOptions().timeZone\nconst TIMEZONE_OPTIONS = ['', DEFAULT_TZ, ...moment.tz.names().filter(tz => tz !== DEFAULT_TZ)]\n\n@customElement('activity-list-page')\nexport class ActivityListPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n css`\n :host {\n display: flex;\n\n width: 100%;\n\n --grid-record-emphasized-background-color: red;\n --grid-record-emphasized-color: yellow;\n }\n `\n ]\n\n @property({ type: Object }) gristConfig?: any\n @property({ type: String }) mode: 'CARD' | 'GRID' = isMobileDevice() ? 'CARD' : 'GRID'\n\n @query('ox-grist') grist!: DataGrist\n\n @state() filters: string[] = ['released']\n\n get context() {\n return {\n title: i18next.t('title.activity list'),\n search: {\n handler: (search: string) => {\n this.grist.searchText = search\n },\n value: this.grist?.searchText || ''\n },\n filter: {\n handler: () => {\n this.grist.toggleHeadroom()\n }\n },\n help: 'worklist/activity',\n actions: [\n {\n title: i18next.t('button.save'),\n action: this.updateActivity.bind(this),\n ...CommonButtonStyles.save\n }\n ]\n }\n }\n\n render() {\n const mode = this.mode\n\n return html`\n <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>\n <div slot=\"headroom\">\n <div id=\"filters\">\n <ox-input-select-buttons\n .value=${this.filters}\n .options=${[\n {\n display: i18next.t('label.filter-draft'),\n value: 'draft'\n },\n {\n display: i18next.t('label.filter-released'),\n value: 'released'\n },\n {\n display: i18next.t('label.filter-deprecated'),\n value: 'deprecated'\n }\n ]}\n @change=${(e: CustomEvent) => {\n this.filters = (e.currentTarget as any)?.value\n this.grist.fetch()\n }}\n ></ox-input-select-buttons>\n </div>\n\n <div id=\"modes\">\n <mwc-icon @click=${() => (this.mode = 'GRID')} ?active=${mode == 'GRID'}>grid_on</mwc-icon>\n <mwc-icon @click=${() => (this.mode = 'CARD')} ?active=${mode == 'CARD'}>apps</mwc-icon>\n </div>\n </div>\n </ox-grist>\n `\n }\n\n async pageInitialized(lifecycle) {\n this.gristConfig = {\n list: {\n thumbnail: 'thumbnail',\n fields: ['name', 'description'],\n details: ['updatedAt']\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n { type: 'gutter', gutterName: 'row-selector', multiple: true },\n {\n type: 'gutter',\n gutterName: 'button',\n title: i18next.t('title.activity schedule (un)register'),\n icon: record => (!record || !record.name ? '' : record.scheduleId ? 'pause' : 'play_arrow'),\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n if (!record || !record.name) {\n /* TODO record가 새로 추가된 것이면 리턴하도록 한다. */\n return\n }\n if (record.scheduleId) {\n this.stopActivitySchedule(record)\n } else {\n this.startActivitySchedule(record)\n }\n }\n }\n },\n {\n type: 'gutter',\n gutterName: 'button',\n title: i18next.t('title.activity model item list'),\n icon: 'reorder',\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n if (!record.id) return\n const popup = openPopup(\n html` <activity-model-item-list .activity=${record}></activity-model-item-list> `,\n {\n backdrop: true,\n help: 'worklist/activity/activity-model-item-list',\n size: 'large',\n title: i18next.t('title.activity model item list')\n }\n )\n popup.onclosed = () => {\n this.grist?.fetch()\n }\n }\n }\n },\n {\n type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n record: {\n editable: true\n },\n filter: 'search',\n sortable: true,\n width: 175\n },\n {\n type: 'string',\n name: 'description',\n header: i18next.t('field.description'),\n record: {\n editable: true\n },\n filter: 'search',\n width: 225\n },\n {\n type: 'approval-line',\n name: 'approvalLine',\n header: i18next.t('field.approval-line'),\n record: {\n editable: true,\n align: 'center'\n },\n width: 60\n },\n {\n type: 'select',\n name: 'state',\n header: i18next.t('field.status'),\n record: {\n editable: true,\n options: ActivityStatus\n },\n filter: true,\n width: 75\n },\n {\n type: 'select',\n name: 'activityType',\n label: true,\n header: i18next.t('field.activity-type'),\n record: {\n editable: true,\n options: ActivityTypes\n },\n sortable: true,\n width: 75\n },\n {\n type: 'select',\n name: 'startingType',\n label: true,\n header: i18next.t('field.starting-type'),\n record: {\n editable: true,\n options: ActivityStartingTypes\n },\n sortable: true,\n width: 75\n },\n {\n type: 'select',\n name: 'multiple',\n header: i18next.t('field.multiple'),\n record: {\n editable: true,\n options: [\n { display: '', value: '' },\n { display: 'Single', value: 'single' },\n { display: 'Parallel', value: 'parallel' },\n { display: 'Sequential', value: 'sequential' }\n ]\n },\n width: 90\n },\n {\n type: 'activity-search-keys',\n name: 'searchKeys',\n label: true,\n header: i18next.t('field.search-keys'),\n record: {\n editable: true\n },\n width: 60\n },\n {\n type: 'number',\n name: 'priority',\n header: i18next.t('field.priority'),\n record: {\n editable: true,\n align: 'center',\n renderer: function (value, column, record, rowIndex, field) {\n const color = ['', 'gray', 'yellow', 'orange', 'red'][value || 0]\n const count = new Array(value > 4 ? 4 : value || 0).fill('')\n return html`${count.map(() => html`<mwc-icon style=\"color:${color};\">star</mwc-icon>`)}`\n }\n },\n width: 75\n },\n {\n type: 'crontab',\n name: 'schedule',\n label: true,\n header: i18next.t('field.schedule'),\n record: {\n editable: true,\n options: {\n objectified: true\n }\n },\n width: 80\n },\n {\n type: 'select',\n name: 'timezone',\n header: i18next.t('field.timezone'),\n record: {\n editable: true,\n options: TIMEZONE_OPTIONS\n },\n width: 120\n },\n {\n type: 'image',\n name: 'thumbnail',\n header: i18next.t('field.thumbnail'),\n record: { editable: true },\n width: 120\n },\n {\n type: 'resource-object',\n name: 'issuerRole',\n header: i18next.t('field.issuer-role'),\n record: {\n editable: true,\n options: {\n title: i18next.t('title.lookup role'),\n queryName: 'roles'\n }\n },\n filter: 'search',\n width: 85\n },\n {\n type: 'resource-object',\n name: 'assigneeRole',\n header: i18next.t('field.assignee-role'),\n record: {\n editable: true,\n options: {\n title: i18next.t('title.lookup role'),\n queryName: 'roles'\n }\n },\n filter: 'search',\n width: 85\n },\n {\n type: 'resource-object',\n name: 'supervisoryRole',\n header: i18next.t('field.supervisory-role'),\n record: {\n editable: true,\n options: {\n title: i18next.t('title.lookup role'),\n queryName: 'roles'\n }\n },\n filter: 'search',\n width: 85\n },\n {\n type: 'assignees',\n name: 'assignees',\n header: i18next.t('field.assignees'),\n record: {\n editable: true\n },\n width: 80\n },\n {\n type: 'select',\n name: 'uiType',\n label: true,\n header: i18next.t('field.ui-type'),\n record: {\n editable: true,\n options: ActivityUITypes\n },\n width: 80\n },\n {\n type: 'string',\n name: 'uiSource',\n header: i18next.t('field.ui-source'),\n record: {\n editable: true,\n editor: function (value, column, record, rowIndex, field) {\n var type = record.uiType !== 'board' ? 'script' : 'board'\n return getEditor(type)(value, column, record, rowIndex, field)\n },\n renderer: function (value, column, record, rowIndex, field) {\n var type = record.uiType !== 'board' ? 'script' : 'board'\n return getRenderer(type)(value, column, record, rowIndex, field)\n }\n },\n width: 140\n },\n {\n type: 'select',\n name: 'viewType',\n label: true,\n header: i18next.t('field.view-type'),\n record: {\n editable: true,\n options: ActivityUITypes\n },\n width: 80\n },\n {\n type: 'string',\n name: 'viewSource',\n header: i18next.t('field.view-source'),\n record: {\n editable: true,\n editor: function (value, column, record, rowIndex, field) {\n var type = record.viewType !== 'board' ? 'script' : 'board'\n return getEditor(type)(value, column, record, rowIndex, field)\n },\n renderer: function (value, column, record, rowIndex, field) {\n var type = record.viewType !== 'board' ? 'script' : 'board'\n return getRenderer(type)(value, column, record, rowIndex, field)\n }\n },\n width: 140\n },\n {\n type: 'select',\n name: 'reportType',\n label: true,\n header: i18next.t('field.report-type'),\n record: {\n editable: true,\n options: ActivityUITypes\n },\n width: 80\n },\n {\n type: 'string',\n name: 'reportSource',\n header: i18next.t('field.report-source'),\n record: {\n editable: true,\n editor: function (value, column, record, rowIndex, field) {\n var type = record.reportType !== 'board' ? 'script' : 'board'\n return getEditor(type)(value, column, record, rowIndex, field)\n },\n renderer: function (value, column, record, rowIndex, field) {\n var type = record.reportType !== 'board' ? 'script' : 'board'\n return getRenderer(type)(value, column, record, rowIndex, field)\n }\n },\n width: 140\n },\n {\n type: 'duration',\n name: 'standardTime',\n header: i18next.t('field.standard-time'),\n record: {\n editable: true\n },\n sortable: true,\n width: 105\n },\n {\n type: 'resource-object',\n name: 'updater',\n header: i18next.t('field.updater'),\n record: {\n editable: false\n },\n sortable: true,\n width: 85\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: i18next.t('field.updated_at'),\n record: {\n editable: false\n },\n sortable: true,\n width: 180\n }\n ],\n rows: {\n selectable: {\n multiple: true\n },\n handlers: {\n click: 'select-row-toggle'\n }\n },\n sorters: [\n {\n name: 'name'\n }\n ]\n }\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n const status = ['draft', 'released', 'deprecated'].filter(state => this.filters?.includes(state))\n\n if (status.length > 0) {\n filters = adjustFilters(filters, [{ name: 'state', operator: 'in', value: status }])\n }\n\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n responses: activities(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n description\n activityType\n searchKeys {\n name\n description\n inputKey\n tKey\n }\n state\n model {\n name\n description\n active\n tag\n inout\n type\n unit\n options\n quantifier\n spec\n }\n thumbnail\n priority\n issuerRole {\n id\n name\n }\n assigneeRole {\n id\n name\n }\n supervisoryRole {\n id\n name\n }\n assignees {\n type\n value\n assignee {\n id\n name\n description\n controlNo\n }\n }\n approvalLine {\n type\n value\n approver {\n id\n name\n description\n controlNo\n }\n }\n uiType\n uiSource\n viewType\n viewSource\n reportType\n reportSource\n startingType\n multiple\n schedule\n timezone\n scheduleId\n standardTime\n updater {\n id\n name\n }\n updatedAt\n }\n total\n }\n }\n `,\n variables: {\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.responses.total || 0,\n records: response.data.responses.items || []\n }\n }\n\n async updateActivity() {\n let patches = this.grist?.dirtyRecords\n if (patches && patches.length) {\n patches = patches.map(patch => {\n let patchField: any = patch.id ? { id: patch.id } : {}\n const dirtyFields = patch.__dirtyfields__\n for (let key in dirtyFields) {\n patchField[key] = dirtyFields[key].after\n }\n patchField.cuFlag = patch.__dirty__\n\n return patchField\n })\n\n const response = await client.mutate({\n mutation: gql`\n mutation ($patches: [ActivityPatch!]!) {\n updateMultipleActivity(patches: $patches) {\n name\n }\n }\n `,\n variables: {\n patches\n },\n context: {\n hasUpload: true\n }\n })\n\n if (!response.errors) {\n this.grist?.fetch()\n }\n }\n }\n\n async startActivitySchedule(record) {\n var response = await client.mutate({\n mutation: gql`\n mutation ($activityId: String!) {\n startActivitySchedule(activityId: $activityId) {\n scheduleId\n }\n }\n `,\n variables: {\n activityId: record.id\n }\n })\n\n const scheduleId = response.data.startActivitySchedule.scheduleId\n record.scheduleId = scheduleId\n\n notify({\n level: 'info',\n message: `${record.scheduleId ? 'success' : 'fail'} to start activity schedule : ${record.name}`\n })\n\n this.grist.fetch()\n }\n\n async stopActivitySchedule(record) {\n var response = await client.mutate({\n mutation: gql`\n mutation ($activityId: String!) {\n stopActivitySchedule(activityId: $activityId) {\n scheduleId\n }\n }\n `,\n variables: {\n activityId: record.id\n }\n })\n\n if (!response.errors) {\n notify({\n level: 'info',\n message: `success to stop activity schedule : ${record.name}`\n })\n } else {\n notify({\n level: 'error',\n message: `${response.errors.map(error => error.message).join('\\n')}`\n })\n }\n\n this.grist.fetch()\n }\n}\n"]}
@@ -13,9 +13,9 @@ declare const StarterListPage_base: (new (...args: any[]) => {
13
13
  export declare class StarterListPage extends StarterListPage_base {
14
14
  static styles: import("lit").CSSResult[];
15
15
  get context(): {
16
+ title: string;
16
17
  search: {
17
18
  handler: (search: string) => void;
18
- placeholder: string;
19
19
  value: string;
20
20
  };
21
21
  filter: {
@@ -29,13 +29,14 @@ const FILTERS = [
29
29
  ];
30
30
  let StarterListPage = class StarterListPage extends connect(store)(localize(i18next)(PageView)) {
31
31
  get context() {
32
+ var _a;
32
33
  return {
34
+ title: i18next.t('title.activity starter list'),
33
35
  search: {
34
36
  handler: (search) => {
35
37
  this.grist.searchText = search;
36
38
  },
37
- placeholder: i18next.t('title.activity starter list'),
38
- value: this.grist.searchText
39
+ value: ((_a = this.grist) === null || _a === void 0 ? void 0 : _a.searchText) || ''
39
40
  },
40
41
  filter: {
41
42
  handler: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"starter-list-page.js","sourceRoot":"","sources":["../../../client/pages/activity/starter-list-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/data-grist'\nimport '../../components/activity-starter-form.js'\nimport '@operato/input/ox-input-select-buttons.js'\n\nimport gql from 'graphql-tag'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin.js'\n\nimport { FetchOption, DataGrist } from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { openPopup } from '@operato/layout'\nimport { PageView, store } from '@operato/shell'\nimport { CommonGristStyles, ScrollbarStyles } from '@operato/styles'\nimport { isMobileDevice } from '@operato/utils'\nimport { ActivityStartingTypes, ActivityTypes } from '../../types/types.js'\n\nconst FILTERS = [\n {\n display: 'Sales',\n value: 'Sales'\n },\n {\n display: 'Procurement',\n value: 'Procurement'\n },\n {\n display: 'Warehouse',\n value: 'Warehouse'\n }\n]\n\n@customElement('starter-list-page')\nexport class StarterListPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n css`\n :host {\n display: flex;\n\n width: 100%;\n\n --grid-record-emphasized-background-color: red;\n --grid-record-emphasized-color: yellow;\n }\n\n #modes {\n margin-left: auto;\n }\n `\n ]\n\n get context() {\n return {\n search: {\n handler: (search: string) => {\n this.grist.searchText = search\n },\n placeholder: i18next.t('title.activity starter list'),\n value: this.grist.searchText\n },\n filter: {\n handler: () => {\n this.grist.toggleHeadroom()\n }\n },\n help: 'worklist/starter-list'\n }\n }\n\n @property({ type: Object }) gristConfig?: any\n\n @query('#sorter-control') sorterControl?: any\n @query('ox-grist') grist!: DataGrist\n\n @state() filters?: string[]\n\n render() {\n return html`\n <ox-grist .mode=${'CARD'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}> </ox-grist>\n `\n }\n\n async pageInitialized(lifecycle) {\n this.gristConfig = {\n list: {\n thumbnail: 'thumbnail',\n fields: ['name', 'description'],\n details: ['updatedAt']\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n {\n type: 'gutter',\n gutterName: 'button',\n name: 'start',\n icon: 'rocket_launch',\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n if (!record.id) {\n return\n }\n\n const popup = openPopup(\n html` <activity-starter-form .activityId=${record.id}></activity-starter-form> `,\n {\n backdrop: true,\n help: 'worklist/activity-starter-form',\n size: 'large',\n title: i18next.t(\n record.startingType == 'issue' ? 'title.activity starter' : 'title.activity application'\n )\n }\n )\n popup.onclosed = () => {\n this.grist?.fetch()\n }\n }\n }\n },\n {\n type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n filter: 'search',\n sortable: true,\n width: 375\n },\n {\n type: 'string',\n name: 'description',\n header: i18next.t('field.description'),\n filter: 'search',\n width: 400\n },\n {\n type: 'select',\n name: 'startingType',\n label: true,\n header: i18next.t('field.starting-type'),\n record: {\n editable: false,\n options: ActivityStartingTypes\n },\n sortable: true,\n width: 90\n },\n {\n type: 'resource-object',\n name: 'updater',\n header: i18next.t('field.updater'),\n sortable: true,\n width: 90\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: i18next.t('field.updated_at'),\n sortable: true,\n width: 180\n },\n {\n type: 'image',\n name: 'thumbnail',\n header: i18next.t('field.thumbnail'),\n record: { editable: false },\n hidden: true\n }\n ],\n rows: {\n appendable: false\n },\n sorters: [\n {\n name: 'name'\n }\n ]\n }\n }\n\n async pageUpdated(changes, lifecycle, changedBefore) {\n if (this.active) {\n this.grist?.fetch()\n }\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n responses: startableActivities(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n description\n activityType\n priority\n thumbnail\n startingType\n updater {\n id\n name\n }\n updatedAt\n }\n total\n }\n }\n `,\n variables: {\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.responses.total || 0,\n records: response.data.responses.items || []\n }\n }\n}\n"]}
1
+ {"version":3,"file":"starter-list-page.js","sourceRoot":"","sources":["../../../client/pages/activity/starter-list-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/data-grist'\nimport '../../components/activity-starter-form.js'\nimport '@operato/input/ox-input-select-buttons.js'\n\nimport gql from 'graphql-tag'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin.js'\n\nimport { FetchOption, DataGrist } from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { openPopup } from '@operato/layout'\nimport { PageView, store } from '@operato/shell'\nimport { CommonGristStyles, ScrollbarStyles } from '@operato/styles'\nimport { isMobileDevice } from '@operato/utils'\nimport { ActivityStartingTypes, ActivityTypes } from '../../types/types.js'\n\nconst FILTERS = [\n {\n display: 'Sales',\n value: 'Sales'\n },\n {\n display: 'Procurement',\n value: 'Procurement'\n },\n {\n display: 'Warehouse',\n value: 'Warehouse'\n }\n]\n\n@customElement('starter-list-page')\nexport class StarterListPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n css`\n :host {\n display: flex;\n\n width: 100%;\n\n --grid-record-emphasized-background-color: red;\n --grid-record-emphasized-color: yellow;\n }\n\n #modes {\n margin-left: auto;\n }\n `\n ]\n\n get context() {\n return {\n title: i18next.t('title.activity starter list'),\n search: {\n handler: (search: string) => {\n this.grist.searchText = search\n },\n value: this.grist?.searchText || ''\n },\n filter: {\n handler: () => {\n this.grist.toggleHeadroom()\n }\n },\n help: 'worklist/starter-list'\n }\n }\n\n @property({ type: Object }) gristConfig?: any\n\n @query('#sorter-control') sorterControl?: any\n @query('ox-grist') grist!: DataGrist\n\n @state() filters?: string[]\n\n render() {\n return html`\n <ox-grist .mode=${'CARD'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}> </ox-grist>\n `\n }\n\n async pageInitialized(lifecycle) {\n this.gristConfig = {\n list: {\n thumbnail: 'thumbnail',\n fields: ['name', 'description'],\n details: ['updatedAt']\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n {\n type: 'gutter',\n gutterName: 'button',\n name: 'start',\n icon: 'rocket_launch',\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n if (!record.id) {\n return\n }\n\n const popup = openPopup(\n html` <activity-starter-form .activityId=${record.id}></activity-starter-form> `,\n {\n backdrop: true,\n help: 'worklist/activity-starter-form',\n size: 'large',\n title: i18next.t(\n record.startingType == 'issue' ? 'title.activity starter' : 'title.activity application'\n )\n }\n )\n popup.onclosed = () => {\n this.grist?.fetch()\n }\n }\n }\n },\n {\n type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n filter: 'search',\n sortable: true,\n width: 375\n },\n {\n type: 'string',\n name: 'description',\n header: i18next.t('field.description'),\n filter: 'search',\n width: 400\n },\n {\n type: 'select',\n name: 'startingType',\n label: true,\n header: i18next.t('field.starting-type'),\n record: {\n editable: false,\n options: ActivityStartingTypes\n },\n sortable: true,\n width: 90\n },\n {\n type: 'resource-object',\n name: 'updater',\n header: i18next.t('field.updater'),\n sortable: true,\n width: 90\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: i18next.t('field.updated_at'),\n sortable: true,\n width: 180\n },\n {\n type: 'image',\n name: 'thumbnail',\n header: i18next.t('field.thumbnail'),\n record: { editable: false },\n hidden: true\n }\n ],\n rows: {\n appendable: false\n },\n sorters: [\n {\n name: 'name'\n }\n ]\n }\n }\n\n async pageUpdated(changes, lifecycle, changedBefore) {\n if (this.active) {\n this.grist?.fetch()\n }\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n responses: startableActivities(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n description\n activityType\n priority\n thumbnail\n startingType\n updater {\n id\n name\n }\n updatedAt\n }\n total\n }\n }\n `,\n variables: {\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.responses.total || 0,\n records: response.data.responses.items || []\n }\n }\n}\n"]}