@dssp/project 0.0.8 → 0.0.10

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 (286) hide show
  1. package/client/pages/project/project-detail.ts +109 -30
  2. package/client/pages/project/project-list.ts +46 -10
  3. package/client/pages/project/project-schedule-list.ts +11 -3
  4. package/client/pages/project/project-schedule.ts +111 -312
  5. package/client/pages/project/project-setting-list.ts +11 -3
  6. package/client/pages/resource/construction-detail-type-popup.ts +201 -0
  7. package/client/pages/resource/construction-type-management.ts +40 -39
  8. package/client/pages/resource/inspection-drawing-type-management.ts +210 -0
  9. package/client/pages/resource/inspection-part-popup.ts +201 -0
  10. package/client/pages/resource/manager-management.ts +0 -27
  11. package/client/pages/{checklist/checklist-importer.ts → resource/resource-importer.ts} +11 -8
  12. package/client/pages/{checklist/checklist-list-page.ts → resource/resource-list-page.ts} +41 -25
  13. package/client/pages/resource/worker-type-management.ts +3 -37
  14. package/client/pages/task-resource/task-resource-importer.ts +97 -0
  15. package/client/pages/task-resource/task-resource-list-page.ts +356 -0
  16. package/client/route.ts +13 -1
  17. package/dist-client/pages/project/project-detail.d.ts +5 -1
  18. package/dist-client/pages/project/project-detail.js +123 -40
  19. package/dist-client/pages/project/project-detail.js.map +1 -1
  20. package/dist-client/pages/project/project-list.d.ts +33 -7
  21. package/dist-client/pages/project/project-list.js +26 -11
  22. package/dist-client/pages/project/project-list.js.map +1 -1
  23. package/dist-client/pages/project/project-schedule-list.js +11 -3
  24. package/dist-client/pages/project/project-schedule-list.js.map +1 -1
  25. package/dist-client/pages/project/project-schedule.d.ts +5 -1
  26. package/dist-client/pages/project/project-schedule.js +117 -306
  27. package/dist-client/pages/project/project-schedule.js.map +1 -1
  28. package/dist-client/pages/project/project-setting-list.js +11 -3
  29. package/dist-client/pages/project/project-setting-list.js.map +1 -1
  30. package/dist-client/pages/resource/construction-detail-type-popup.d.ts +2 -0
  31. package/dist-client/pages/resource/construction-detail-type-popup.js +197 -0
  32. package/dist-client/pages/resource/construction-detail-type-popup.js.map +1 -0
  33. package/dist-client/pages/resource/construction-type-management.d.ts +12 -0
  34. package/dist-client/pages/resource/construction-type-management.js +30 -38
  35. package/dist-client/pages/resource/construction-type-management.js.map +1 -1
  36. package/dist-client/pages/resource/inspection-drawing-type-management.d.ts +34 -0
  37. package/dist-client/pages/resource/inspection-drawing-type-management.js +198 -0
  38. package/dist-client/pages/resource/inspection-drawing-type-management.js.map +1 -0
  39. package/dist-client/pages/resource/inspection-part-popup.d.ts +2 -0
  40. package/dist-client/pages/resource/inspection-part-popup.js +197 -0
  41. package/dist-client/pages/resource/inspection-part-popup.js.map +1 -0
  42. package/dist-client/pages/resource/manager-management.js +0 -27
  43. package/dist-client/pages/resource/manager-management.js.map +1 -1
  44. package/dist-client/pages/{checklist/checklist-importer.d.ts → resource/resource-importer.d.ts} +2 -2
  45. package/dist-client/pages/{checklist/checklist-importer.js → resource/resource-importer.js} +10 -10
  46. package/dist-client/pages/resource/resource-importer.js.map +1 -0
  47. package/dist-client/pages/{checklist/checklist-list-page.d.ts → resource/resource-list-page.d.ts} +6 -6
  48. package/dist-client/pages/{checklist/checklist-list-page.js → resource/resource-list-page.js} +41 -32
  49. package/dist-client/pages/resource/resource-list-page.js.map +1 -0
  50. package/dist-client/pages/resource/worker-type-management.d.ts +7 -1
  51. package/dist-client/pages/resource/worker-type-management.js +3 -45
  52. package/dist-client/pages/resource/worker-type-management.js.map +1 -1
  53. package/dist-client/pages/task-resource/task-resource-importer.d.ts +10 -0
  54. package/dist-client/pages/task-resource/task-resource-importer.js +101 -0
  55. package/dist-client/pages/task-resource/task-resource-importer.js.map +1 -0
  56. package/dist-client/pages/task-resource/task-resource-list-page.d.ts +63 -0
  57. package/dist-client/pages/task-resource/task-resource-list-page.js +332 -0
  58. package/dist-client/pages/task-resource/task-resource-list-page.js.map +1 -0
  59. package/dist-client/route.d.ts +1 -1
  60. package/dist-client/route.js +9 -0
  61. package/dist-client/route.js.map +1 -1
  62. package/dist-client/tsconfig.tsbuildinfo +1 -1
  63. package/dist-server/controllers/import-task.d.ts +19 -0
  64. package/dist-server/controllers/import-task.js +104 -0
  65. package/dist-server/controllers/import-task.js.map +1 -0
  66. package/dist-server/index.d.ts +1 -0
  67. package/dist-server/index.js +1 -0
  68. package/dist-server/index.js.map +1 -1
  69. package/dist-server/migrations/1723861466413-seed-roles.d.ts +5 -0
  70. package/dist-server/migrations/1723861466413-seed-roles.js +117 -0
  71. package/dist-server/migrations/1723861466413-seed-roles.js.map +1 -0
  72. package/dist-server/migrations/1723861466414-seed-codes.d.ts +5 -0
  73. package/dist-server/migrations/1723861466414-seed-codes.js +132 -0
  74. package/dist-server/migrations/1723861466414-seed-codes.js.map +1 -0
  75. package/dist-server/migrations/1723861476419-seed-resources.d.ts +5 -0
  76. package/dist-server/migrations/1723861476419-seed-resources.js +57 -0
  77. package/dist-server/migrations/1723861476419-seed-resources.js.map +1 -0
  78. package/dist-server/migrations/1723861478420-seed-/bsample-project.d.ts +5 -0
  79. package/dist-server/migrations/1723861478420-seed-/bsample-project.js +68 -0
  80. package/dist-server/migrations/1723861478420-seed-/bsample-project.js.map +1 -0
  81. package/dist-server/migrations/1723861478421-seed-/bsample-tasks.d.ts +5 -0
  82. package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js +189 -0
  83. package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js.map +1 -0
  84. package/dist-server/migrations/index.d.ts +1 -0
  85. package/dist-server/migrations/index.js +12 -0
  86. package/dist-server/migrations/index.js.map +1 -0
  87. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.d.ts +6 -0
  88. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js +56 -0
  89. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js.map +1 -0
  90. package/dist-server/service/construction-detail-type/construction-detail-type-query.d.ts +9 -0
  91. package/dist-server/service/construction-detail-type/construction-detail-type-query.js +53 -0
  92. package/dist-server/service/construction-detail-type/construction-detail-type-query.js.map +1 -0
  93. package/dist-server/service/construction-detail-type/construction-detail-type-type.d.ts +11 -0
  94. package/dist-server/service/construction-detail-type/construction-detail-type-type.js +43 -0
  95. package/dist-server/service/construction-detail-type/construction-detail-type-type.js.map +1 -0
  96. package/dist-server/service/construction-detail-type/construction-detail-type.d.ts +15 -0
  97. package/dist-server/service/construction-detail-type/construction-detail-type.js +69 -0
  98. package/dist-server/service/construction-detail-type/construction-detail-type.js.map +1 -0
  99. package/dist-server/service/construction-detail-type/index.d.ts +5 -0
  100. package/dist-server/service/construction-detail-type/index.js +9 -0
  101. package/dist-server/service/construction-detail-type/index.js.map +1 -0
  102. package/dist-server/service/construction-type/construction-type-query.d.ts +2 -0
  103. package/dist-server/service/construction-type/construction-type-query.js +14 -0
  104. package/dist-server/service/construction-type/construction-type-query.js.map +1 -1
  105. package/dist-server/service/construction-type/construction-type.d.ts +2 -0
  106. package/dist-server/service/construction-type/construction-type.js +6 -0
  107. package/dist-server/service/construction-type/construction-type.js.map +1 -1
  108. package/dist-server/service/index.d.ts +7 -5
  109. package/dist-server/service/index.js +21 -10
  110. package/dist-server/service/index.js.map +1 -1
  111. package/dist-server/service/inspection-drawing-type/index.d.ts +5 -0
  112. package/dist-server/service/inspection-drawing-type/index.js +9 -0
  113. package/dist-server/service/inspection-drawing-type/index.js.map +1 -0
  114. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.d.ts +6 -0
  115. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js +64 -0
  116. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js.map +1 -0
  117. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.d.ts +12 -0
  118. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js +83 -0
  119. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js.map +1 -0
  120. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.d.ts +10 -0
  121. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js +39 -0
  122. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js.map +1 -0
  123. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.d.ts +16 -0
  124. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js +72 -0
  125. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js.map +1 -0
  126. package/dist-server/service/inspection-part/index.d.ts +5 -0
  127. package/dist-server/service/inspection-part/index.js +9 -0
  128. package/dist-server/service/inspection-part/index.js.map +1 -0
  129. package/dist-server/service/inspection-part/inspection-part-mutation.d.ts +6 -0
  130. package/dist-server/service/inspection-part/inspection-part-mutation.js +55 -0
  131. package/dist-server/service/inspection-part/inspection-part-mutation.js.map +1 -0
  132. package/dist-server/service/inspection-part/inspection-part-query.d.ts +10 -0
  133. package/dist-server/service/inspection-part/inspection-part-query.js +66 -0
  134. package/dist-server/service/inspection-part/inspection-part-query.js.map +1 -0
  135. package/dist-server/service/inspection-part/inspection-part-type.d.ts +11 -0
  136. package/dist-server/service/inspection-part/inspection-part-type.js +43 -0
  137. package/dist-server/service/inspection-part/inspection-part-type.js.map +1 -0
  138. package/dist-server/service/inspection-part/inspection-part.d.ts +15 -0
  139. package/dist-server/service/inspection-part/inspection-part.js +69 -0
  140. package/dist-server/service/inspection-part/inspection-part.js.map +1 -0
  141. package/dist-server/service/project/index.d.ts +0 -2
  142. package/dist-server/service/project/index.js +1 -3
  143. package/dist-server/service/project/index.js.map +1 -1
  144. package/dist-server/service/project/project-query.d.ts +7 -5
  145. package/dist-server/service/project/project-query.js +34 -38
  146. package/dist-server/service/project/project-query.js.map +1 -1
  147. package/dist-server/service/project/project-type.d.ts +3 -6
  148. package/dist-server/service/project/project-type.js +25 -35
  149. package/dist-server/service/project/project-type.js.map +1 -1
  150. package/dist-server/service/project/project.d.ts +3 -2
  151. package/dist-server/service/project/project.js +10 -10
  152. package/dist-server/service/project/project.js.map +1 -1
  153. package/dist-server/service/resource/index.d.ts +6 -0
  154. package/dist-server/service/resource/index.js +10 -0
  155. package/dist-server/service/resource/index.js.map +1 -0
  156. package/dist-server/service/resource/resource-mutation.d.ts +10 -0
  157. package/dist-server/service/resource/resource-mutation.js +132 -0
  158. package/dist-server/service/resource/resource-mutation.js.map +1 -0
  159. package/dist-server/service/resource/resource-query.d.ts +11 -0
  160. package/dist-server/service/{checklist/checklist-query.js → resource/resource-query.js} +33 -38
  161. package/dist-server/service/resource/resource-query.js.map +1 -0
  162. package/dist-server/service/resource/resource-type.d.ts +17 -0
  163. package/dist-server/service/resource/resource-type.js +65 -0
  164. package/dist-server/service/resource/resource-type.js.map +1 -0
  165. package/dist-server/service/resource/resource.d.ts +24 -0
  166. package/dist-server/service/resource/resource.js +93 -0
  167. package/dist-server/service/resource/resource.js.map +1 -0
  168. package/dist-server/service/task/task-mutation.js +6 -0
  169. package/dist-server/service/task/task-mutation.js.map +1 -1
  170. package/dist-server/service/task/task-query.d.ts +9 -1
  171. package/dist-server/service/task/task-query.js +142 -20
  172. package/dist-server/service/task/task-query.js.map +1 -1
  173. package/dist-server/service/task/task-type.d.ts +13 -0
  174. package/dist-server/service/task/task-type.js +57 -12
  175. package/dist-server/service/task/task-type.js.map +1 -1
  176. package/dist-server/service/task/task.d.ts +12 -5
  177. package/dist-server/service/task/task.js +51 -16
  178. package/dist-server/service/task/task.js.map +1 -1
  179. package/dist-server/service/task-resource/index.d.ts +6 -0
  180. package/dist-server/service/task-resource/index.js +10 -0
  181. package/dist-server/service/task-resource/index.js.map +1 -0
  182. package/dist-server/service/task-resource/task-resource-mutation.d.ts +10 -0
  183. package/dist-server/service/task-resource/task-resource-mutation.js +132 -0
  184. package/dist-server/service/task-resource/task-resource-mutation.js.map +1 -0
  185. package/dist-server/service/task-resource/task-resource-query.d.ts +7 -0
  186. package/dist-server/service/task-resource/task-resource-query.js +50 -0
  187. package/dist-server/service/task-resource/task-resource-query.js.map +1 -0
  188. package/dist-server/service/task-resource/task-resource-type.d.ts +17 -0
  189. package/dist-server/service/task-resource/task-resource-type.js +65 -0
  190. package/dist-server/service/task-resource/task-resource-type.js.map +1 -0
  191. package/dist-server/service/task-resource/task-resource.d.ts +13 -0
  192. package/dist-server/service/task-resource/task-resource.js +59 -0
  193. package/dist-server/service/task-resource/task-resource.js.map +1 -0
  194. package/dist-server/tsconfig.tsbuildinfo +1 -1
  195. package/helps/project/checklist-type-detail.md +160 -0
  196. package/helps/project/checklist-type.md +160 -0
  197. package/helps/project/task-resource.md +160 -0
  198. package/package.json +11 -7
  199. package/server/controllers/import-task.ts +140 -0
  200. package/server/index.ts +1 -0
  201. package/server/migrations/1723861466413-seed-roles.ts +128 -0
  202. package/server/migrations/1723861466414-seed-codes.ts +139 -0
  203. package/server/migrations/1723861476419-seed-resources.ts +62 -0
  204. package/server/migrations/1723861478420-seed-/bsample-project.ts +87 -0
  205. package/server/migrations/1723861478421-seed-/bsample-tasks.ts +194 -0
  206. package/server/migrations/index.ts +9 -0
  207. package/server/service/construction-detail-type/construction-detail-type-mutation.ts +57 -0
  208. package/server/service/construction-detail-type/construction-detail-type-query.ts +31 -0
  209. package/server/service/construction-detail-type/construction-detail-type-type.ts +26 -0
  210. package/server/service/construction-detail-type/construction-detail-type.ts +52 -0
  211. package/server/service/construction-detail-type/index.ts +6 -0
  212. package/server/service/construction-type/construction-type-query.ts +9 -0
  213. package/server/service/construction-type/construction-type.ts +8 -2
  214. package/server/service/index.ts +24 -11
  215. package/server/service/inspection-drawing-type/index.ts +6 -0
  216. package/server/service/inspection-drawing-type/inspection-drawing-type-mutation.ts +69 -0
  217. package/server/service/inspection-drawing-type/inspection-drawing-type-query.ts +55 -0
  218. package/server/service/inspection-drawing-type/inspection-drawing-type-type.ts +23 -0
  219. package/server/service/inspection-drawing-type/inspection-drawing-type.ts +68 -0
  220. package/server/service/inspection-part/index.ts +6 -0
  221. package/server/service/inspection-part/inspection-part-mutation.ts +52 -0
  222. package/server/service/inspection-part/inspection-part-query.ts +41 -0
  223. package/server/service/inspection-part/inspection-part-type.ts +26 -0
  224. package/server/service/inspection-part/inspection-part.ts +51 -0
  225. package/server/service/project/index.ts +0 -2
  226. package/server/service/project/project-query.ts +30 -38
  227. package/server/service/project/project-type.ts +22 -27
  228. package/server/service/project/project.ts +11 -12
  229. package/server/service/resource/index.ts +7 -0
  230. package/server/service/resource/resource-mutation.ts +137 -0
  231. package/server/service/resource/resource-query.ts +50 -0
  232. package/server/service/resource/resource-type.ts +41 -0
  233. package/server/service/resource/resource.ts +82 -0
  234. package/server/service/task/task-mutation.ts +8 -9
  235. package/server/service/task/task-query.ts +135 -22
  236. package/server/service/task/task-type.ts +41 -15
  237. package/server/service/task/task.ts +44 -15
  238. package/server/service/task-resource/index.ts +7 -0
  239. package/server/service/task-resource/task-resource-mutation.ts +140 -0
  240. package/server/service/task-resource/task-resource-query.ts +36 -0
  241. package/server/service/task-resource/task-resource-type.ts +41 -0
  242. package/server/service/task-resource/task-resource.ts +51 -0
  243. package/things-factory.config.js +1 -0
  244. package/translations/en.json +15 -1
  245. package/translations/ko.json +9 -5
  246. package/dist-client/pages/checklist/checklist-importer.js.map +0 -1
  247. package/dist-client/pages/checklist/checklist-list-page.js.map +0 -1
  248. package/dist-server/service/check-item/check-item-mutation.d.ts +0 -10
  249. package/dist-server/service/check-item/check-item-mutation.js +0 -129
  250. package/dist-server/service/check-item/check-item-mutation.js.map +0 -1
  251. package/dist-server/service/check-item/check-item-query.d.ts +0 -11
  252. package/dist-server/service/check-item/check-item-query.js +0 -86
  253. package/dist-server/service/check-item/check-item-query.js.map +0 -1
  254. package/dist-server/service/check-item/check-item-type.d.ts +0 -18
  255. package/dist-server/service/check-item/check-item-type.js +0 -69
  256. package/dist-server/service/check-item/check-item-type.js.map +0 -1
  257. package/dist-server/service/check-item/check-item.d.ts +0 -18
  258. package/dist-server/service/check-item/check-item.js +0 -84
  259. package/dist-server/service/check-item/check-item.js.map +0 -1
  260. package/dist-server/service/check-item/index.d.ts +0 -5
  261. package/dist-server/service/check-item/index.js +0 -9
  262. package/dist-server/service/check-item/index.js.map +0 -1
  263. package/dist-server/service/checklist/checklist-mutation.d.ts +0 -10
  264. package/dist-server/service/checklist/checklist-mutation.js +0 -129
  265. package/dist-server/service/checklist/checklist-mutation.js.map +0 -1
  266. package/dist-server/service/checklist/checklist-query.d.ts +0 -11
  267. package/dist-server/service/checklist/checklist-query.js.map +0 -1
  268. package/dist-server/service/checklist/checklist-type.d.ts +0 -18
  269. package/dist-server/service/checklist/checklist-type.js +0 -69
  270. package/dist-server/service/checklist/checklist-type.js.map +0 -1
  271. package/dist-server/service/checklist/checklist.d.ts +0 -26
  272. package/dist-server/service/checklist/checklist.js +0 -120
  273. package/dist-server/service/checklist/checklist.js.map +0 -1
  274. package/dist-server/service/checklist/index.d.ts +0 -5
  275. package/dist-server/service/checklist/index.js +0 -9
  276. package/dist-server/service/checklist/index.js.map +0 -1
  277. package/server/service/check-item/check-item-mutation.ts +0 -142
  278. package/server/service/check-item/check-item-query.ts +0 -56
  279. package/server/service/check-item/check-item-type.ts +0 -49
  280. package/server/service/check-item/check-item.ts +0 -74
  281. package/server/service/check-item/index.ts +0 -6
  282. package/server/service/checklist/checklist-mutation.ts +0 -142
  283. package/server/service/checklist/checklist-query.ts +0 -56
  284. package/server/service/checklist/checklist-type.ts +0 -49
  285. package/server/service/checklist/checklist.ts +0 -105
  286. package/server/service/checklist/index.ts +0 -6
@@ -0,0 +1,201 @@
1
+ import '@material/web/icon/icon.js'
2
+ import '@operato/data-grist/ox-grist.js'
3
+
4
+ import gql from 'graphql-tag'
5
+ import { css, html, LitElement } from 'lit'
6
+ import { customElement, property, query } from 'lit/decorators.js'
7
+
8
+ import { DataGrist } from '@operato/data-grist/ox-grist.js'
9
+ import { client } from '@operato/graphql'
10
+ import { ButtonContainerStyles } from '@operato/styles'
11
+ import { FetchOption } from '@operato/data-grist'
12
+ import { notify } from '@operato/layout'
13
+
14
+ @customElement('inspection-part-popup')
15
+ class InspectionPartPopup extends LitElement {
16
+ static styles = [
17
+ ButtonContainerStyles,
18
+ css`
19
+ :host {
20
+ display: flex;
21
+ flex-direction: column;
22
+
23
+ background-color: var(--md-sys-color-surface);
24
+ }
25
+
26
+ ox-grist {
27
+ flex: 1;
28
+ }
29
+ `
30
+ ]
31
+
32
+ @property({ type: Object }) inspectionDrawingType: any
33
+ @property({ type: Object }) gristConfig: any
34
+
35
+ @query('ox-grist') grist!: DataGrist
36
+
37
+ render() {
38
+ return html`
39
+ <ox-grist .mode=${'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}></ox-grist>
40
+ <div class="button-container">
41
+ <button danger @click=${this._deleteInspectionPart.bind(this)}><md-icon>delete</md-icon>삭제</button>
42
+ <button @click=${this._updateInspectionPart.bind(this)}><md-icon>save</md-icon>저장</button>
43
+ </div>
44
+ `
45
+ }
46
+
47
+ async firstUpdated() {
48
+ this.gristConfig = {
49
+ columns: [
50
+ { type: 'gutter', gutterName: 'row-selector', multiple: true },
51
+ {
52
+ type: 'gutter',
53
+ gutterName: 'button',
54
+ fixed: true,
55
+ icon: 'add',
56
+ handlers: {
57
+ click: 'record-copy'
58
+ }
59
+ },
60
+ { type: 'gutter', gutterName: 'sequence' },
61
+ {
62
+ type: 'gutter',
63
+ gutterName: 'button',
64
+ icon: 'arrow_upward',
65
+ handlers: {
66
+ click: 'move-up'
67
+ }
68
+ },
69
+ {
70
+ type: 'gutter',
71
+ gutterName: 'button',
72
+ icon: 'arrow_downward',
73
+ handlers: {
74
+ click: 'move-down'
75
+ }
76
+ },
77
+ {
78
+ type: 'number',
79
+ name: 'sequence',
80
+ hidden: true
81
+ },
82
+ {
83
+ type: 'string',
84
+ name: 'id',
85
+ hidden: true
86
+ },
87
+ {
88
+ type: 'string',
89
+ name: 'name',
90
+ header: '검측 부위',
91
+ record: {
92
+ editable: true
93
+ },
94
+ width: 300
95
+ }
96
+ ],
97
+ rows: {
98
+ selectable: {
99
+ multiple: true
100
+ }
101
+ },
102
+ pagination: {
103
+ infinite: true
104
+ },
105
+ sorters: [{ name: 'sequence' }]
106
+ }
107
+ }
108
+
109
+ async fetchHandler({ page, limit, sorters = [] }: FetchOption) {
110
+ const response = await client.query({
111
+ query: gql`
112
+ query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
113
+ inspectionParts(filters: $filters, pagination: $pagination, sortings: $sortings) {
114
+ items {
115
+ id
116
+ sequence
117
+ name
118
+ }
119
+ }
120
+ }
121
+ `,
122
+ variables: {
123
+ filters: {
124
+ name: 'inspectionDrawingTypeId',
125
+ value: this.inspectionDrawingType.id,
126
+ operator: 'eq'
127
+ },
128
+ sortings: [{ name: 'sequence' }]
129
+ }
130
+ })
131
+
132
+ return {
133
+ total: response.data.inspectionParts.total || 0,
134
+ records: response.data.inspectionParts.items || []
135
+ }
136
+ }
137
+
138
+ private async _deleteInspectionPart() {
139
+ if (confirm('삭제하시겠습니까?')) {
140
+ const ids = this.grist.selected.map(record => record.id)
141
+ if (ids && ids.length > 0) {
142
+ const response = await client.mutate({
143
+ mutation: gql`
144
+ mutation ($ids: [String!]!) {
145
+ deleteInspectionParts(ids: $ids)
146
+ }
147
+ `,
148
+ variables: {
149
+ ids
150
+ }
151
+ })
152
+
153
+ if (!response.errors) {
154
+ this.grist.fetch()
155
+ notify({ message: '삭제되었습니다.' })
156
+ }
157
+ }
158
+ }
159
+ }
160
+
161
+ async _updateInspectionPart() {
162
+ let patches = this.grist.dirtyData.records
163
+ if (patches) {
164
+ patches = patches.map(patch => {
165
+ const { __origin__: { __typename, ...patchField } = {}, __dirtyfields__ } = patch
166
+
167
+ for (let key in __dirtyfields__) {
168
+ patchField[key] = __dirtyfields__[key].after
169
+ }
170
+
171
+ return patchField
172
+ })
173
+
174
+ const response = await client.mutate({
175
+ mutation: gql`
176
+ mutation UpdateMultipleInspectionPart($inspectionDrawingTypeId: String!, $patches: [InspectionPartPatch!]!) {
177
+ updateMultipleInspectionPart(inspectionDrawingTypeId: $inspectionDrawingTypeId, patches: $patches) {
178
+ id
179
+ }
180
+ }
181
+ `,
182
+ variables: {
183
+ inspectionDrawingTypeId: this.inspectionDrawingType.id,
184
+ patches
185
+ }
186
+ })
187
+
188
+ if (!response.errors) {
189
+ this.grist.fetch()
190
+ notify({ message: '저장되었습니다.' })
191
+ this.requestRefresh()
192
+ } else {
193
+ notify({ message: '저장에 실패하였습니다.', level: 'error' })
194
+ }
195
+ }
196
+ }
197
+
198
+ requestRefresh() {
199
+ this.dispatchEvent(new CustomEvent('requestRefresh'))
200
+ }
201
+ }
@@ -24,28 +24,6 @@ export class ManagerManagement extends PageView {
24
24
  --grid-record-emphasized-background-color: red;
25
25
  --grid-record-emphasized-color: yellow;
26
26
  }
27
-
28
- md-elevated-button {
29
- margin: 0px 3px;
30
-
31
- --md-elevated-button-container-height: 35px;
32
- --md-elevated-button-label-text-size: 16px;
33
- --md-elevated-button-container-color: #0595e5;
34
-
35
- --md-elevated-button-label-text-color: #fff;
36
- --md-elevated-button-hover-label-text-color: #fff;
37
- --md-elevated-button-pressed-label-text-color: #fff;
38
- --md-elevated-button-focus-label-text-color: #fff;
39
- --md-elevated-button-icon-color: #fff;
40
- --md-elevated-button-hover-icon-color: #fff;
41
- --md-elevated-button-pressed-icon-color: #fff;
42
- --md-elevated-button-focus-icon-color: #fff;
43
- }
44
-
45
- div[button-container] {
46
- padding: 0 5px 10px 0;
47
- text-align: right;
48
- }
49
27
  `
50
28
  ]
51
29
 
@@ -68,11 +46,6 @@ export class ManagerManagement extends PageView {
68
46
  render() {
69
47
  return html`
70
48
  <ox-grist .mode=${'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}> </ox-grist>
71
- <div button-container>
72
- <md-elevated-button @click=${this._updateManagers.bind(this)}>
73
- <md-icon slot="icon">save</md-icon>저장</md-elevated-button
74
- >
75
- </div>
76
49
  `
77
50
  }
78
51
 
@@ -9,7 +9,7 @@ import { client } from '@operato/graphql'
9
9
  import { i18next } from '@operato/i18n'
10
10
  import { isMobileDevice } from '@operato/utils'
11
11
 
12
- export class ChecklistImporter extends LitElement {
12
+ export class ResourceImporter extends LitElement {
13
13
  static styles = [
14
14
  css`
15
15
  :host {
@@ -35,7 +35,7 @@ export class ChecklistImporter extends LitElement {
35
35
  `
36
36
  ]
37
37
 
38
- @state() private checklists: any[] = []
38
+ @state() private resources: any[] = []
39
39
  @state() private columns = {
40
40
  list: { fields: ['name', 'description'] },
41
41
  pagination: { infinite: true },
@@ -66,9 +66,11 @@ export class ChecklistImporter extends LitElement {
66
66
  <ox-grist
67
67
  .mode=${isMobileDevice() ? 'LIST' : 'GRID'}
68
68
  .config=${this.columns}
69
- .data=${{
70
- records: this.checklists
71
- }}
69
+ .data=${
70
+ {
71
+ records: this.resources
72
+ }
73
+ }
72
74
  ></ox-grist>
73
75
 
74
76
  <div class="button-container">
@@ -80,11 +82,11 @@ export class ChecklistImporter extends LitElement {
80
82
  private async save() {
81
83
  const response = await client.mutate({
82
84
  mutation: gql`
83
- mutation importChecklists($checklists: [ChecklistPatch!]!) {
84
- importChecklists(checklists: $checklists)
85
+ mutation importResources($resources: [ResourcePatch!]!) {
86
+ importResources(resources: $resources)
85
87
  }
86
88
  `,
87
- variables: { checklists: this.checklists }
89
+ variables: { resources: this.resources }
88
90
  })
89
91
 
90
92
  if (response.errors?.length) return
@@ -92,3 +94,4 @@ export class ChecklistImporter extends LitElement {
92
94
  this.dispatchEvent(new CustomEvent('imported'))
93
95
  }
94
96
  }
97
+
@@ -6,7 +6,12 @@ import { PageView, store } from '@operato/shell'
6
6
  import { css, html } from 'lit'
7
7
  import { customElement, property, query, state } from 'lit/decorators.js'
8
8
  import { ScopedElementsMixin } from '@open-wc/scoped-elements'
9
- import { ColumnConfig, DataGrist, FetchOption, SortersControl } from '@operato/data-grist'
9
+ import {
10
+ ColumnConfig,
11
+ DataGrist,
12
+ FetchOption,
13
+ SortersControl
14
+ } from '@operato/data-grist'
10
15
  import { client } from '@operato/graphql'
11
16
  import { i18next, localize } from '@operato/i18n'
12
17
  import { notify, openPopup } from '@operato/layout'
@@ -16,10 +21,11 @@ import { isMobileDevice } from '@operato/utils'
16
21
  import { connect } from 'pwa-helpers/connect-mixin'
17
22
  import gql from 'graphql-tag'
18
23
 
19
- import { ChecklistImporter } from './checklist-importer'
24
+ import { ResourceImporter } from './resource-importer'
25
+
26
+ @customElement('resource-list-page')
27
+ export class ResourceListPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
20
28
 
21
- @customElement('checklist-list-page')
22
- export class ChecklistListPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
23
29
  static styles = [
24
30
  ScrollbarStyles,
25
31
  CommonGristStyles,
@@ -37,7 +43,7 @@ export class ChecklistListPage extends connect(store)(localize(i18next)(ScopedEl
37
43
 
38
44
  static get scopedElements() {
39
45
  return {
40
- 'checklist-importer': ChecklistImporter
46
+ 'resource-importer': ResourceImporter
41
47
  }
42
48
  }
43
49
 
@@ -49,7 +55,7 @@ export class ChecklistListPage extends connect(store)(localize(i18next)(ScopedEl
49
55
 
50
56
  get context() {
51
57
  return {
52
- title: i18next.t('title.checklist list'),
58
+ title: i18next.t('title.resource list'),
53
59
  search: {
54
60
  handler: (search: string) => {
55
61
  this.grist.searchText = search
@@ -61,21 +67,21 @@ export class ChecklistListPage extends connect(store)(localize(i18next)(ScopedEl
61
67
  this.grist.toggleHeadroom()
62
68
  }
63
69
  },
64
- help: 'project/checklist',
70
+ help: 'project/resource',
65
71
  actions: [
66
72
  {
67
73
  title: i18next.t('button.save'),
68
- action: this.updateChecklist.bind(this),
74
+ action: this.updateResource.bind(this),
69
75
  ...CommonButtonStyles.save
70
76
  },
71
77
  {
72
78
  title: i18next.t('button.delete'),
73
- action: this.deleteChecklist.bind(this),
79
+ action: this.deleteResource.bind(this),
74
80
  ...CommonButtonStyles.delete
75
81
  }
76
82
  ],
77
83
  exportable: {
78
- name: i18next.t('title.checklist list'),
84
+ name: i18next.t('title.resource list'),
79
85
  data: this.exportHandler.bind(this)
80
86
  },
81
87
  importable: {
@@ -88,7 +94,11 @@ export class ChecklistListPage extends connect(store)(localize(i18next)(ScopedEl
88
94
  const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
89
95
 
90
96
  return html`
91
- <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>
97
+ <ox-grist
98
+ .mode=${mode}
99
+ .config=${this.gristConfig}
100
+ .fetchHandler=${this.fetchHandler.bind(this)}
101
+ >
92
102
  <div slot="headroom">
93
103
  <div id="filters">
94
104
  <ox-filters-form autofocus></ox-filters-form>
@@ -207,7 +217,7 @@ export class ChecklistListPage extends connect(store)(localize(i18next)(ScopedEl
207
217
  const response = await client.query({
208
218
  query: gql`
209
219
  query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
210
- responses: checklists(filters: $filters, pagination: $pagination, sortings: $sortings) {
220
+ responses: resources(filters: $filters, pagination: $pagination, sortings: $sortings) {
211
221
  items {
212
222
  id
213
223
  name
@@ -236,7 +246,7 @@ export class ChecklistListPage extends connect(store)(localize(i18next)(ScopedEl
236
246
  }
237
247
  }
238
248
 
239
- private async deleteChecklist() {
249
+ private async deleteResource() {
240
250
  if (
241
251
  await OxPrompt.open({
242
252
  title: i18next.t('text.are_you_sure'),
@@ -250,7 +260,7 @@ export class ChecklistListPage extends connect(store)(localize(i18next)(ScopedEl
250
260
  const response = await client.mutate({
251
261
  mutation: gql`
252
262
  mutation ($ids: [String!]!) {
253
- deleteChecklists(ids: $ids)
263
+ deleteResources(ids: $ids)
254
264
  }
255
265
  `,
256
266
  variables: {
@@ -268,7 +278,7 @@ export class ChecklistListPage extends connect(store)(localize(i18next)(ScopedEl
268
278
  }
269
279
  }
270
280
 
271
- private async updateChecklist() {
281
+ private async updateResource() {
272
282
  let patches = this.grist.dirtyRecords
273
283
  if (patches && patches.length) {
274
284
  patches = patches.map(patch => {
@@ -284,8 +294,8 @@ export class ChecklistListPage extends connect(store)(localize(i18next)(ScopedEl
284
294
 
285
295
  const response = await client.mutate({
286
296
  mutation: gql`
287
- mutation ($patches: [ChecklistPatch!]!) {
288
- updateMultipleChecklist(patches: $patches) {
297
+ mutation ($patches: [ResourcePatch!]!) {
298
+ updateMultipleResource(patches: $patches) {
289
299
  name
290
300
  }
291
301
  }
@@ -303,12 +313,17 @@ export class ChecklistListPage extends connect(store)(localize(i18next)(ScopedEl
303
313
 
304
314
  private async exportHandler() {
305
315
  const exportTargets = this.grist.selected.length ? this.grist.selected : this.grist.dirtyData.records
306
- const targetFieldSet = new Set(['id', 'name', 'description', 'active'])
316
+ const targetFieldSet = new Set([
317
+ 'id',
318
+ 'name',
319
+ 'description',
320
+ 'active'
321
+ ])
307
322
 
308
- return exportTargets.map(checklist => {
323
+ return exportTargets.map(resource => {
309
324
  let tempObj = {}
310
325
  for (const field of targetFieldSet) {
311
- tempObj[field] = checklist[field]
326
+ tempObj[field] = resource[field]
312
327
  }
313
328
 
314
329
  return tempObj
@@ -318,23 +333,24 @@ export class ChecklistListPage extends connect(store)(localize(i18next)(ScopedEl
318
333
  private async importHandler(records) {
319
334
  const popup = openPopup(
320
335
  html`
321
- <checklist-importer
322
- .checklists=${records}
336
+ <resource-importer
337
+ .resources=${records}
323
338
  @imported=${() => {
324
339
  history.back()
325
340
  this.grist.fetch()
326
341
  }}
327
- ></checklist-importer>
342
+ ></resource-importer>
328
343
  `,
329
344
  {
330
345
  backdrop: true,
331
346
  size: 'large',
332
- title: i18next.t('title.import checklist')
347
+ title: i18next.t('title.import resource')
333
348
  }
334
349
  )
335
-
350
+
336
351
  popup.onclosed = () => {
337
352
  this.grist.fetch()
338
353
  }
339
354
  }
340
355
  }
356
+
@@ -1,7 +1,7 @@
1
1
  import '@operato/data-grist'
2
2
  import '@operato/context/ox-context-page-toolbar.js'
3
3
 
4
- import { CommonGristStyles, ScrollbarStyles } from '@operato/styles'
4
+ import { CommonGristStyles, CommonButtonStyles, ScrollbarStyles } from '@operato/styles'
5
5
  import { PageView } from '@operato/shell'
6
6
  import { css, html } from 'lit'
7
7
  import { customElement, property, query } from 'lit/decorators.js'
@@ -26,32 +26,6 @@ export class WorkerTypeManagement extends PageView {
26
26
  --grid-record-emphasized-background-color: red;
27
27
  --grid-record-emphasized-color: yellow;
28
28
  }
29
-
30
- md-elevated-button {
31
- margin: 0px 3px;
32
-
33
- --md-elevated-button-container-height: 35px;
34
- --md-elevated-button-label-text-size: 16px;
35
- --md-elevated-button-container-color: #0595e5;
36
-
37
- --md-elevated-button-label-text-color: #fff;
38
- --md-elevated-button-hover-label-text-color: #fff;
39
- --md-elevated-button-pressed-label-text-color: #fff;
40
- --md-elevated-button-focus-label-text-color: #fff;
41
- --md-elevated-button-icon-color: #fff;
42
- --md-elevated-button-hover-icon-color: #fff;
43
- --md-elevated-button-pressed-icon-color: #fff;
44
- --md-elevated-button-focus-icon-color: #fff;
45
-
46
- &[red] {
47
- --md-elevated-button-container-color: #e15757;
48
- }
49
- }
50
-
51
- div[button-container] {
52
- padding: 0 5px 10px 0;
53
- text-align: right;
54
- }
55
29
  `
56
30
  ]
57
31
 
@@ -65,12 +39,12 @@ export class WorkerTypeManagement extends PageView {
65
39
  {
66
40
  title: '저장',
67
41
  action: this._updateWorkerTypes.bind(this),
68
- icon: 'save'
42
+ ...CommonButtonStyles.save
69
43
  },
70
44
  {
71
45
  title: '삭제',
72
46
  action: this._deleteWorkerTypes.bind(this),
73
- icon: 'delete'
47
+ ...CommonButtonStyles.delete
74
48
  }
75
49
  ]
76
50
  }
@@ -79,14 +53,6 @@ export class WorkerTypeManagement extends PageView {
79
53
  render() {
80
54
  return html`
81
55
  <ox-grist .mode=${'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}> </ox-grist>
82
- <div button-container>
83
- <md-elevated-button @click=${this._updateWorkerTypes.bind(this)}>
84
- <md-icon slot="icon">save</md-icon>저장</md-elevated-button
85
- >
86
- <md-elevated-button red @click=${this._deleteWorkerTypes.bind(this)}>
87
- <md-icon slot="icon">delete</md-icon>삭제</md-elevated-button
88
- >
89
- </div>
90
56
  `
91
57
  }
92
58
 
@@ -0,0 +1,97 @@
1
+ import '@material/web/button/elevated-button.js'
2
+ import '@operato/data-grist'
3
+
4
+ import gql from 'graphql-tag'
5
+ import { css, html, LitElement } from 'lit'
6
+ import { property, state } from 'lit/decorators.js'
7
+
8
+ import { client } from '@operato/graphql'
9
+ import { i18next } from '@operato/i18n'
10
+ import { isMobileDevice } from '@operato/utils'
11
+
12
+ export class TaskResourceImporter extends LitElement {
13
+ static styles = [
14
+ css`
15
+ :host {
16
+ display: flex;
17
+ flex-direction: column;
18
+
19
+ background-color: #fff;
20
+ }
21
+
22
+ ox-grist {
23
+ flex: 1;
24
+ }
25
+
26
+ .button-container {
27
+ display: flex;
28
+ margin-left: auto;
29
+ padding: var(--padding-default);
30
+ }
31
+
32
+ md-elevated-button {
33
+ margin-left: var(--margin-default);
34
+ }
35
+ `
36
+ ]
37
+
38
+ @state() private taskResources: any[] = []
39
+ @state() private columns = {
40
+ list: { fields: ['name', 'description'] },
41
+ pagination: { infinite: true },
42
+ columns: [
43
+ {
44
+ type: 'string',
45
+ name: 'name',
46
+ header: i18next.t('field.name'),
47
+ width: 150
48
+ },
49
+ {
50
+ type: 'string',
51
+ name: 'description',
52
+ header: i18next.t('field.description'),
53
+ width: 200
54
+ },
55
+ {
56
+ type: 'checkbox',
57
+ name: 'active',
58
+ header: i18next.t('field.active'),
59
+ width: 60
60
+ }
61
+ ]
62
+ }
63
+
64
+ render() {
65
+ return html`
66
+ <ox-grist
67
+ .mode=${isMobileDevice() ? 'LIST' : 'GRID'}
68
+ .config=${this.columns}
69
+ .data=${
70
+ {
71
+ records: this.taskResources
72
+ }
73
+ }
74
+ ></ox-grist>
75
+
76
+ <div class="button-container">
77
+ <md-elevated-button raised @click="${this.save.bind(this)}">${i18next.t('button.save')}</md-elevated-button>
78
+ </div>
79
+ `
80
+ }
81
+
82
+ private async save() {
83
+ const response = await client.mutate({
84
+ mutation: gql`
85
+ mutation importTaskResources($taskResources: [TaskResourcePatch!]!) {
86
+ importTaskResources(taskResources: $taskResources)
87
+ }
88
+ `,
89
+ variables: { taskResources: this.taskResources }
90
+ })
91
+
92
+ if (response.errors?.length) return
93
+
94
+ this.dispatchEvent(new CustomEvent('imported'))
95
+ }
96
+ }
97
+