bx-rest 0.2.13 → 0.2.14

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 (105) hide show
  1. package/esm2022/map/task.mjs +5 -7
  2. package/esm2022/map/tasks/task/result.mjs +27 -0
  3. package/esm2022/map/tasks/task.mjs +10 -3
  4. package/esm2022/request/bizproc/activity.mjs +1 -1
  5. package/esm2022/request/bizproc/event.mjs +1 -1
  6. package/esm2022/request/bizproc/robot.mjs +1 -1
  7. package/esm2022/request/bizproc/task.mjs +1 -1
  8. package/esm2022/request/bizproc/workflow/instance.mjs +1 -1
  9. package/esm2022/request/bizproc/workflow/template.mjs +1 -1
  10. package/esm2022/request/bizproc/workflow.mjs +1 -1
  11. package/esm2022/request/calendar/event.mjs +1 -1
  12. package/esm2022/request/calendar.mjs +2 -2
  13. package/esm2022/request/departments.mjs +1 -1
  14. package/esm2022/request/disk/attachedObject.mjs +1 -1
  15. package/esm2022/request/disk/file.mjs +1 -1
  16. package/esm2022/request/disk/folder.mjs +1 -1
  17. package/esm2022/request/disk/storage.mjs +1 -1
  18. package/esm2022/request/lists/element.mjs +1 -1
  19. package/esm2022/request/lists/field.mjs +1 -1
  20. package/esm2022/request/lists.mjs +1 -1
  21. package/esm2022/request/log/blogcomment.mjs +1 -1
  22. package/esm2022/request/log/blogpost.mjs +1 -1
  23. package/esm2022/request/server.mjs +1 -1
  24. package/esm2022/request/sonet_group.mjs +2 -5
  25. package/esm2022/request/task/commentitem.mjs +1 -1
  26. package/esm2022/request/task/elapseditem.mjs +1 -1
  27. package/esm2022/request/tasks/task/result.mjs +32 -0
  28. package/esm2022/request/tasks/task.mjs +20 -41
  29. package/esm2022/request/user/userfield.mjs +1 -1
  30. package/esm2022/request/user.mjs +1 -1
  31. package/esm2022/request-navvy/sonet_group.mjs +2 -5
  32. package/esm2022/request-navvy/task/delegate/elapseditem.mjs +37 -0
  33. package/esm2022/request-navvy/task/elapseditem.mjs +8 -19
  34. package/esm2022/request-navvy/task/operation/elapseditem.mjs +19 -4
  35. package/esm2022/request-navvy/tasks/task/result.mjs +30 -0
  36. package/esm2022/request-navvy/tasks/task.mjs +9 -38
  37. package/esm2022/request-navvy/user/userfield.mjs +1 -1
  38. package/esm2022/typification/rest/sonet_group/get.mjs +1 -1
  39. package/esm2022/typification/rest/task/commentitem/add.mjs +1 -1
  40. package/esm2022/typification/rest/task/commentitem/getlist.mjs +1 -1
  41. package/esm2022/typification/rest/tasks/base/fieldsName.mjs +53 -0
  42. package/esm2022/typification/rest/tasks/base/filterGenerator.mjs +2 -0
  43. package/esm2022/typification/rest/tasks/base/people.mjs +2 -0
  44. package/esm2022/typification/rest/tasks/result/list.mjs +2 -0
  45. package/esm2022/typification/rest/tasks/task/get.mjs +1 -1
  46. package/esm2022/typification/rest/tasks/task/list.mjs +1 -1
  47. package/esm2022/typification/rest/tasks/task/result/result.mjs +2 -0
  48. package/esm2022/typification/rest/tasks/task.mjs +2 -0
  49. package/fesm2022/bx-rest.mjs +728 -687
  50. package/fesm2022/bx-rest.mjs.map +1 -1
  51. package/map/task.d.ts +1 -3
  52. package/map/tasks/task/result.d.ts +10 -0
  53. package/map/tasks/task.d.ts +10 -7
  54. package/package.json +1 -1
  55. package/request/bizproc/activity.d.ts +1 -1
  56. package/request/bizproc/event.d.ts +1 -1
  57. package/request/bizproc/robot.d.ts +1 -1
  58. package/request/bizproc/task.d.ts +1 -1
  59. package/request/bizproc/workflow/instance.d.ts +1 -1
  60. package/request/bizproc/workflow/template.d.ts +1 -1
  61. package/request/bizproc/workflow.d.ts +1 -1
  62. package/request/calendar/event.d.ts +1 -1
  63. package/request/departments.d.ts +1 -1
  64. package/request/disk/attachedObject.d.ts +1 -1
  65. package/request/disk/file.d.ts +1 -1
  66. package/request/disk/folder.d.ts +1 -1
  67. package/request/disk/storage.d.ts +1 -1
  68. package/request/lists/element.d.ts +1 -1
  69. package/request/lists/field.d.ts +1 -1
  70. package/request/lists.d.ts +1 -1
  71. package/request/log/blogcomment.d.ts +1 -1
  72. package/request/log/blogpost.d.ts +1 -1
  73. package/request/server.d.ts +1 -1
  74. package/request/sonet_group.d.ts +1 -1
  75. package/request/task/commentitem.d.ts +1 -1
  76. package/request/task/elapseditem.d.ts +1 -1
  77. package/request/tasks/task/result.d.ts +18 -0
  78. package/request/tasks/task.d.ts +11 -15
  79. package/request/user/userfield.d.ts +1 -1
  80. package/request/user.d.ts +1 -1
  81. package/request-navvy/task/delegate/elapseditem.d.ts +13 -0
  82. package/request-navvy/task/elapseditem.d.ts +3 -1
  83. package/request-navvy/task/operation/elapseditem.d.ts +6 -3
  84. package/request-navvy/tasks/task/result.d.ts +15 -0
  85. package/request-navvy/tasks/task.d.ts +9 -10
  86. package/request-navvy/user/userfield.d.ts +1 -2
  87. package/typification/rest/sonet_group/get.d.ts +2 -2
  88. package/typification/rest/task/commentitem/add.d.ts +1 -0
  89. package/typification/rest/task/commentitem/getlist.d.ts +1 -1
  90. package/typification/rest/tasks/base/fieldsName.d.ts +7 -0
  91. package/typification/rest/tasks/result/list.d.ts +4 -0
  92. package/typification/rest/tasks/task/get.d.ts +32 -3
  93. package/typification/rest/tasks/task/list.d.ts +15 -12
  94. package/typification/rest/tasks/task/result/result.d.ts +20 -0
  95. package/typification/rest/tasks/task.d.ts +110 -0
  96. package/esm2022/map/task/result.mjs +0 -15
  97. package/esm2022/typification/rest/task/base/fieldsName.mjs +0 -2
  98. package/esm2022/typification/rest/task/base/filterGenerator.mjs +0 -2
  99. package/esm2022/typification/rest/task/people/base.mjs +0 -2
  100. package/esm2022/typification/rest/task/task.mjs +0 -2
  101. package/map/task/result.d.ts +0 -6
  102. package/typification/rest/task/base/fieldsName.d.ts +0 -1
  103. package/typification/rest/task/task.d.ts +0 -110
  104. /package/typification/rest/{task → tasks}/base/filterGenerator.d.ts +0 -0
  105. /package/typification/rest/{task/people/base.d.ts → tasks/base/people.d.ts} +0 -0
@@ -1513,8 +1513,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
1513
1513
  }]
1514
1514
  }], ctorParameters: function () { return [{ type: BXRestTaskElapseditem }, { type: BXRestTaskCommentItem }, { type: BXRestTaskPlanner }]; } });
1515
1515
 
1516
- class BXRestTasksTask {
1516
+ class BXRestTasksTaskResult {
1517
1517
  constructor(http) {
1518
+ this.http = http;
1519
+ this.url = {
1520
+ list: [$tasks, $task, $result, $list],
1521
+ addFromComment: [$tasks, $task, $result, 'addFromComment'],
1522
+ deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'], // Удаление результата задачи по комментарию из которого он был создан
1523
+ };
1524
+ }
1525
+ deleteFromComment(commentID) {
1526
+ return this.http.post(this.url.deleteFromComment, { commentId: commentID });
1527
+ }
1528
+ addFromComment(commentID) {
1529
+ return this.http.post(this.url.addFromComment, { commentId: commentID });
1530
+ }
1531
+ list(param) {
1532
+ return this.http.post(this.url.list, param);
1533
+ }
1534
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestTasksTaskResult, deps: [{ token: HttpBXServices }], target: i0.ɵɵFactoryTarget.Injectable }); }
1535
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestTasksTaskResult, providedIn: 'root' }); }
1536
+ }
1537
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestTasksTaskResult, decorators: [{
1538
+ type: Injectable,
1539
+ args: [{
1540
+ providedIn: 'root'
1541
+ }]
1542
+ }], ctorParameters: function () { return [{ type: HttpBXServices }]; } });
1543
+
1544
+ // interface iBXRestParamTasksListWithSelect<S extends iBXRestTaskFieldsName> extends iBXRestParamTasksList<S> {
1545
+ // select: iBXRestFilterGenerator<iBXRestTaskFieldsName>[]
1546
+ // }
1547
+ // interface iBXRestParamTasksGetWithSelect extends iBXRestParamTasksList {
1548
+ // select: iBXRestFilterGenerator<iBXRestTaskFieldsName>[]
1549
+ // }
1550
+ // type SelectInterfaceListType<T> = T extends iBXRestParamTasksListWithSelect ? iBXRestTasksTaskListHttpDefault : iBXRestHttpTasksTaskList
1551
+ // type SelectInterfaceGetType<T> = T extends iBXRestParamTasksGetWithSelect ? iBXRestTasksTaskGetHttpDefault : iBXRestHttpTasksTaskGet
1552
+ class BXRestTasksTask {
1553
+ constructor(result, http) {
1554
+ this.result = result;
1518
1555
  this.http = http;
1519
1556
  this.url = {
1520
1557
  add: [$tasks, $task, $add],
@@ -1546,12 +1583,7 @@ class BXRestTasksTask {
1546
1583
  start: [$tasks, $task, $start],
1547
1584
  startwatch: [$tasks, $task, 'startwatch'],
1548
1585
  stopwatch: [$tasks, $task, 'stopwatch'],
1549
- update: [$tasks, $task, $update],
1550
- result: {
1551
- list: [$tasks, $task, $result, $list],
1552
- addFromComment: [$tasks, $task, $result, 'addFromComment'],
1553
- deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'], // Удаление результата задачи по комментарию из которого он был создан
1554
- }
1586
+ update: [$tasks, $task, $update], // Обновляет задачу
1555
1587
  };
1556
1588
  }
1557
1589
  add(param) {
@@ -1592,10 +1624,10 @@ class BXRestTasksTask {
1592
1624
  return of(undefined)
1593
1625
  }
1594
1626
  */
1595
- get(requestArray) {
1596
- return this.http.post(this.url.get, requestArray);
1627
+ get(param) {
1628
+ return this.http.post(this.url.get, param);
1597
1629
  }
1598
- list(param = {}) {
1630
+ list(param) {
1599
1631
  return this.http.post(this.url.list, param);
1600
1632
  }
1601
1633
  /*
@@ -1687,37 +1719,11 @@ class BXRestTasksTask {
1687
1719
  })
1688
1720
  )
1689
1721
  }
1690
-
1691
- deleteResultFromComment(commentID: number) {
1692
- return this.http.post<iHttpAnswerBX<any>>(this.url.result.deleteFromComment, {commentId: commentID})
1693
- }
1694
-
1695
- addResultFromComment(commentID: number) {
1696
- return this.http.post<iHttpAnswerBX<iTaskResultHttp>>(this.url.result.addFromComment, {commentId: commentID})
1697
- .pipe(
1698
- map(v => {
1699
- if (v && v.result) {
1700
- this.taskResultMap.iTaskResultHttpToiTaskResult(v.result)
1701
- }
1702
- return undefined
1703
- }))
1704
- }
1705
-
1706
- getResulList(taskId: number): Observable<iTaskResult[] | undefined> {
1707
- return this.http.post<iHttpAnswerBX<iTaskResultHttp[]>>(this.url.result.list, {taskId: taskId})
1708
- .pipe(
1709
- map(v => {
1710
- if (v && v.result) {
1711
- return v.result.map(i => this.taskResultMap.iTaskResultHttpToiTaskResult(i))
1712
- }
1713
- return undefined
1714
- }))
1715
- }
1716
1722
  */
1717
1723
  getaccess(param) {
1718
1724
  return this.http.post(this.url.getaccess, param);
1719
1725
  }
1720
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestTasksTask, deps: [{ token: HttpBXServices }], target: i0.ɵɵFactoryTarget.Injectable }); }
1726
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestTasksTask, deps: [{ token: BXRestTasksTaskResult }, { token: HttpBXServices }], target: i0.ɵɵFactoryTarget.Injectable }); }
1721
1727
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestTasksTask, providedIn: 'root' }); }
1722
1728
  }
1723
1729
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestTasksTask, decorators: [{
@@ -1725,7 +1731,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
1725
1731
  args: [{
1726
1732
  providedIn: 'root'
1727
1733
  }]
1728
- }], ctorParameters: function () { return [{ type: HttpBXServices }]; } });
1734
+ }], ctorParameters: function () { return [{ type: BXRestTasksTaskResult }, { type: HttpBXServices }]; } });
1729
1735
 
1730
1736
  class BXRestTasks {
1731
1737
  constructor(task) {
@@ -2095,7 +2101,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
2095
2101
  class BXRestCalendar {
2096
2102
  // TODO: эту дичь расформировать потом по классам
2097
2103
  /*
2098
- url = {
2104
+ protected url = {
2099
2105
  accessibility: {get: getNameMethod([$calendar, $accessibility, $get])}, // Возвращает занятость пользователей из списка.
2100
2106
  meeting: {
2101
2107
  params: {
@@ -2178,10 +2184,7 @@ class BXRestSonetGroup {
2178
2184
  // }
2179
2185
  // )
2180
2186
  // }
2181
- get(param = {
2182
- filter: {},
2183
- order: {}
2184
- }) {
2187
+ get(param = {}) {
2185
2188
  return this.http.post(this.url.get, param);
2186
2189
  }
2187
2190
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestSonetGroup, deps: [{ token: HttpBXServices }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -3057,152 +3060,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
3057
3060
  }]
3058
3061
  }] });
3059
3062
 
3060
- class BXRestNavvyOperationElapseditem {
3061
- constructor(http, BXRestNavvyElapseditem, BXRestMapElapseditem, BXRestNavvyUser, BXRestNavvyTasks) {
3062
- this.http = http;
3063
- this.BXRestNavvyElapseditem = BXRestNavvyElapseditem;
3064
- this.BXRestMapElapseditem = BXRestMapElapseditem;
3065
- this.BXRestNavvyUser = BXRestNavvyUser;
3066
- this.BXRestNavvyTasks = BXRestNavvyTasks;
3067
- }
3068
- getByInterval(idsUsers, dateStart, dateEnd) {
3069
- const param = {
3070
- ORDER: {
3071
- ID: 'DESC'
3072
- },
3073
- FILTER: {
3074
- USER_ID: idsUsers,
3075
- '>=CREATED_DATE': dateStart.toLocaleString('ru-Ru'),
3076
- '<=CREATED_DATE': dateEnd.toLocaleString('ru-Ru'),
3077
- }
3078
- };
3079
- return this.BXRestNavvyElapseditem.getList(param);
3080
- }
3081
- getListByIDTask(ids) {
3082
- return this.http.branch(ids.map(i => {
3083
- return {
3084
- name: this.http.getNameMethod([$task, $elapseditem, $getlist]),
3085
- param: {
3086
- TASKID: i
3087
- }
3088
- };
3089
- })).pipe(map(v => {
3090
- if (v && v.length) {
3091
- return this.http.mapBranchResultWithoutKey(v).map(i => this.BXRestMapElapseditem.getList(i)).filter((i) => i !== undefined).flat();
3092
- }
3093
- return undefined;
3094
- }));
3095
- }
3096
- checkPermissionAddElapsedtimeToTaskArr(tasks) {
3097
- let request = Object.assign({}, ...tasks.map(i => {
3098
- return { [i]: this.checkPermissionAddElapsedtimeToTask(i) };
3099
- }));
3100
- return forkJoin(request)
3101
- .pipe(take(1), mergeMap(v => {
3102
- let forForeach = Object.entries(v).map(([key, value]) => {
3103
- return { id: Number(key), value: value };
3104
- });
3105
- if (forForeach.find(i => i.value === undefined) !== undefined) {
3106
- let forForeachHave = forForeach.filter(i => i.value !== undefined);
3107
- let forForeachNotHave = forForeach.filter(i => i.value === undefined); // тут получаем все id не сохраненных у нас прав
3108
- return this.http.branch(Object.assign({}, ...forForeachNotHave
3109
- .map(i => i.id)
3110
- .map(i => {
3111
- return {
3112
- [i]: {
3113
- name: this.http.getNameMethod([$tasks, $task, $getaccess]),
3114
- param: {
3115
- TASKID: i,
3116
- ITEMID: 1,
3117
- ACTIONID: 1
3118
- }
3119
- }
3120
- };
3121
- }))).pipe(map(v => {
3122
- if (v && v.length) {
3123
- const res = this.http.mapBranchResult(v);
3124
- forForeachNotHave = Object.entries(res).map(([key, value]) => {
3125
- return { id: Number(key), value: value };
3126
- });
3127
- return Object.assign(forForeachHave, forForeachNotHave);
3128
- }
3129
- return undefined;
3130
- }));
3131
- }
3132
- return of(forForeach);
3133
- }));
3134
- }
3135
- checkPermissionAddElapsedtimeToTask(idTask) {
3136
- let permission = Permission.get();
3137
- if (permission?.tasks?.length) {
3138
- let findTask = permission.tasks.find(i => i.id === idTask);
3139
- if (findTask?.permission) {
3140
- return of(findTask.permission['ELAPSEDTIME.ADD']);
3141
- }
3142
- return this.BXRestNavvyUser.current().result().pipe(mergeMap(self => {
3143
- if (self) {
3144
- return this.BXRestNavvyTasks.task.getaccess({
3145
- id: idTask,
3146
- users: [self.ID]
3147
- }).result().pipe(tap(v => {
3148
- if (v && v[self.ID]) {
3149
- Permission.set({
3150
- tasks: [{ id: idTask, permission: v[self.ID], elapsedItem: [] }]
3151
- });
3152
- }
3153
- }), map(v => {
3154
- return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false;
3155
- }));
3156
- }
3157
- return of(undefined);
3158
- }));
3159
- }
3160
- return of(undefined);
3161
- }
3162
- checkPermissionReadTask(idTask) {
3163
- let permission = Permission.get();
3164
- if (permission?.tasks?.length) {
3165
- let findTask = permission.tasks.find(i => i.id === idTask);
3166
- if (findTask?.permission) {
3167
- return of(findTask.permission.ACCEPT);
3168
- }
3169
- return this.BXRestNavvyUser.current().result().pipe(mergeMap(self => {
3170
- if (self) {
3171
- return this.BXRestNavvyTasks.task.getaccess({
3172
- id: idTask,
3173
- users: [self.ID]
3174
- }).result().pipe(tap(v => {
3175
- if (v && v[self.ID]) {
3176
- Permission.set({
3177
- tasks: [{ id: idTask, permission: v[self.ID], elapsedItem: [] }]
3178
- });
3179
- }
3180
- }), map(v => {
3181
- return (v && v[self.ID]) ? v[self.ID].ACCEPT : false;
3182
- }));
3183
- }
3184
- return of(undefined);
3185
- }));
3186
- }
3187
- return of(undefined);
3188
- }
3189
- }
3190
-
3191
- class BXRestNavvyElapseditem {
3192
- constructor(BXRestElapseditem, BXRestMapElapseditem, operation) {
3063
+ class BXRestNavvyDelegateElapseditem {
3064
+ constructor(BXRestElapseditem, BXRestMapElapseditem) {
3193
3065
  this.BXRestElapseditem = BXRestElapseditem;
3194
3066
  this.BXRestMapElapseditem = BXRestMapElapseditem;
3195
- this.operation = operation;
3196
3067
  this.Navvy = new Navvy(this.BXRestElapseditem, this.BXRestMapElapseditem);
3197
3068
  }
3198
- /*
3199
- call(methodName: string, ...args: any[]){
3200
- if (typeof this[methodName] === 'function') {
3201
- return this[methodName](...args);
3202
- }
3203
- return this[methodName](...args);
3204
- }
3205
- */
3206
3069
  getList(param = {}) {
3207
3070
  if (param) {
3208
3071
  if (!param.TASKID && !param.SELECT) {
@@ -3219,333 +3082,71 @@ class BXRestNavvyElapseditem {
3219
3082
  }
3220
3083
  return this.Navvy.alterPagNav(this.BXRestElapseditem.getList, param, 'Не удалось получить список затраченного на задачу(-и) времени', this.BXRestMapElapseditem.getList);
3221
3084
  }
3222
- add(param) {
3223
- return this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
3224
- if (allowedReadTask) {
3225
- return this.operation.checkPermissionAddElapsedtimeToTask(param.TASKID).pipe(mergeMap(allowed => {
3226
- if (allowed) {
3227
- return this.BXRestElapseditem.add(param);
3228
- }
3229
- else {
3230
- return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'));
3231
- }
3232
- }));
3233
- }
3234
- else {
3235
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
3236
- }
3237
- }));
3085
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyDelegateElapseditem, deps: [{ token: BXRestTaskElapseditem }, { token: BXRestMapTaskElapseditem }], target: i0.ɵɵFactoryTarget.Injectable }); }
3086
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyDelegateElapseditem, providedIn: 'root' }); }
3087
+ }
3088
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyDelegateElapseditem, decorators: [{
3089
+ type: Injectable,
3090
+ args: [{
3091
+ providedIn: 'root'
3092
+ }]
3093
+ }], ctorParameters: function () { return [{ type: BXRestTaskElapseditem }, { type: BXRestMapTaskElapseditem }]; } });
3094
+
3095
+ // import { iTaskResult, iTaskResultHttp } from '@/lib/typification/bitrix/api/rest/task/result/result'
3096
+ class BXRestMapTasksTaskResult extends BaseMapServices {
3097
+ list(item) {
3098
+ return (item) ? item.map(i => this.iTaskResultHttpToiTaskResult(i)) : undefined;
3238
3099
  }
3239
- /**
3240
- * Обновление записи рабочего времени
3241
- *
3242
- * @param param
3243
- */
3244
- update(param) {
3245
- return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
3246
- if (allowedReadTask) {
3247
- return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(mergeMap(allowed => {
3248
- if (allowed) {
3249
- return this.BXRestElapseditem.update(param);
3250
- }
3251
- else {
3252
- return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'));
3253
- }
3254
- }));
3255
- }
3256
- else {
3257
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
3258
- }
3259
- })), 'Не удалось обновить элемент списка', this.BXRestMapElapseditem.update);
3100
+ addFromComment(item) {
3101
+ return (item) ? this.iTaskResultHttpToiTaskResult(item) : undefined;
3260
3102
  }
3261
- /*
3262
- getAll(
3263
- params: RequestParamsElapsedGetList | undefined = undefined,
3264
- cache = false
3265
- ): Observable<iHttpAnswerBX<BXRestElapsed[]> | undefined> {
3266
- return this.get(params, cache)
3267
- .pipe(
3268
- mergeMap(items => {
3269
- if (items && items.result) {
3270
- if (items.next) {
3271
- params = (params) ? params : {}
3272
- params.PARAMS = {
3273
- NAV_PARAMS: {
3274
- nPageSize: this.pageSize,
3275
- iNumPage: items.next / this.pageSize + 1
3276
- }
3277
- }
3278
- return this.getAll(params, cache).pipe(
3279
- map(vEnd => {
3280
- if (vEnd && vEnd.result && items.result) {
3281
- return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})
3282
- }
3283
- return items
3284
- })
3285
- )
3286
- }
3287
- return of(items)
3288
- } else {
3289
- return of(undefined)
3290
- }
3291
- })
3292
- )
3293
- }
3294
- */
3295
- /*
3296
- getCacheOff(params: RequestParamsElapsedGetList | undefined = undefined) {
3297
- return this.http.post<iHttpAnswerBX<BXRestElapsedHttp[]> | undefined>
3298
- (this.url.getlist, params, 'не удалось получить время по задачам')
3299
- .pipe(
3300
- map(v => {
3301
- if (v && v.result) {
3302
- const newResult: BXRestElapsed[] = []
3303
- for (let task of v.result) {
3304
- newResult.push(this.elapsedBXMap.AnswerElapsedGetHttpToAnswerElapsedGet(task))
3305
- }
3306
- return extend(v, {result: newResult}) as iHttpAnswerBX<BXRestElapsed[]>
3307
- }
3308
- return undefined
3309
- }),
3310
- tap(v => {
3311
- if (v && params) {
3312
- this.store.dispatch(saveHttpTaskTime({
3313
- filter: clone(params),
3314
- time: v
3315
- }))
3316
- }
3317
- })
3318
- )
3319
- }
3320
- */
3321
- isAllowedModify(idTask, idItem) {
3322
- let permission = Permission.get();
3323
- if (permission?.tasks?.length) {
3324
- let findTask = permission.tasks.find(i => i.id === idTask);
3325
- if (findTask) {
3326
- let find = findTask.elapsedItem.find(i => i.id === idItem);
3327
- if (find && find.verified.edit) {
3328
- return of(find.edit);
3329
- }
3330
- }
3331
- }
3332
- return this.isActionAllowed({
3333
- TASKID: idTask,
3334
- ITEMID: 2,
3335
- ACTIONID: idItem
3336
- }).result().pipe(tap(v => {
3337
- if (v !== undefined) {
3338
- Permission.setTaskElapsedItem(idTask, {
3339
- id: idItem,
3340
- edit: v,
3341
- del: false,
3342
- verified: {
3343
- edit: true,
3344
- del: false,
3345
- }
3346
- });
3347
- }
3348
- }));
3349
- }
3350
- isAllowedRemove(idTask, idItem) {
3351
- return this.isActionAllowed({
3352
- TASKID: idTask,
3353
- ITEMID: 3,
3354
- ACTIONID: idItem
3355
- }).result();
3356
- }
3357
- /**
3358
- * idAction:
3359
- * 1 - ACTION_ELAPSED_TIME_ADD
3360
- * 2 - ACTION_ELAPSED_TIME_MODIFY
3361
- * 3 - ACTION_ELAPSED_TIME_REMOVE
3362
- * @param param
3363
- */
3364
- isActionAllowed(param) {
3365
- return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(canRead => {
3366
- if (canRead) {
3367
- return this.BXRestElapseditem.isActionAllowed(param);
3368
- }
3369
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
3370
- })));
3371
- }
3372
- del(param) {
3373
- return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
3374
- if (allowedReadTask) {
3375
- return this.isAllowedRemove(param.TASKID, param.ITEMID).pipe(mergeMap(allowed => {
3376
- if (allowed) {
3377
- return this.BXRestElapseditem.del(param);
3378
- }
3379
- else {
3380
- return throwError(() => new Error('Отсутствуют права на удаление записи затраченного времени'));
3381
- }
3382
- }));
3383
- }
3384
- else {
3385
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
3386
- }
3387
- })), 'Не удалось удалить элемент списка', v => (v === null));
3388
- }
3389
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyElapseditem, deps: [{ token: BXRestTaskElapseditem }, { token: BXRestMapTaskElapseditem }, { token: BXRestNavvyOperationElapseditem }], target: i0.ɵɵFactoryTarget.Injectable }); }
3390
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyElapseditem, providedIn: 'root' }); }
3391
- }
3392
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyElapseditem, decorators: [{
3393
- type: Injectable,
3394
- args: [{
3395
- providedIn: 'root'
3396
- }]
3397
- }], ctorParameters: function () { return [{ type: BXRestTaskElapseditem }, { type: BXRestMapTaskElapseditem }, { type: BXRestNavvyOperationElapseditem }]; } });
3398
-
3399
- class BXRestMapTaskCommentItem extends BaseMapServices {
3400
- getlist(value) {
3401
- return value ? value.map(i => this.iCommentTaskHtmlToiCommentTask(i)) : undefined;
3402
- }
3403
- get(value) {
3404
- return value ? this.iCommentTaskHtmlToiCommentTask(value) : undefined;
3405
- }
3406
- iCommentTaskHtmlToiCommentTask(item) {
3407
- if (item.ATTACHED_OBJECTS) {
3408
- return {
3409
- ATTACHED_OBJECTS: Object.values(item.ATTACHED_OBJECTS).map(i => {
3410
- return {
3411
- ATTACHMENT_ID: this.toNum(i.ATTACHMENT_ID),
3412
- FILE_ID: this.toNum(i.FILE_ID),
3413
- SIZE: this.toNum(i.SIZE),
3414
- DOWNLOAD_URL: i.DOWNLOAD_URL,
3415
- NAME: i.NAME,
3416
- VIEW_URL: i.VIEW_URL
3417
- };
3418
- }),
3419
- AUTHOR_ID: this.toNum(item.AUTHOR_ID),
3420
- ID: this.toNum(item.ID),
3421
- POST_DATE: this.toDate(item.POST_DATE),
3422
- AUTHOR_EMAIL: item.AUTHOR_EMAIL,
3423
- AUTHOR_NAME: item.AUTHOR_NAME,
3424
- POST_MESSAGE: item.POST_MESSAGE,
3425
- POST_MESSAGE_HTML: item.POST_MESSAGE_HTML
3426
- };
3427
- }
3428
- else {
3429
- return {
3430
- AUTHOR_ID: this.toNum(item.AUTHOR_ID),
3431
- ID: this.toNum(item.ID),
3432
- POST_DATE: this.toDate(item.POST_DATE),
3433
- AUTHOR_EMAIL: item.AUTHOR_EMAIL,
3434
- AUTHOR_NAME: item.AUTHOR_NAME,
3435
- POST_MESSAGE: item.POST_MESSAGE,
3436
- POST_MESSAGE_HTML: item.POST_MESSAGE_HTML
3437
- };
3438
- }
3103
+ iTaskResultHttpToiTaskResult(item) {
3104
+ return Object.assign(item, {
3105
+ createdAt: this.toDate(item.createdAt),
3106
+ updatedAt: this.toDate(item.updatedAt)
3107
+ });
3439
3108
  }
3440
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskCommentItem, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3441
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskCommentItem, providedIn: 'root' }); }
3109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTasksTaskResult, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3110
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTasksTaskResult, providedIn: 'root' }); }
3442
3111
  }
3443
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskCommentItem, decorators: [{
3112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTasksTaskResult, decorators: [{
3444
3113
  type: Injectable,
3445
3114
  args: [{
3446
3115
  providedIn: 'root'
3447
3116
  }]
3448
3117
  }] });
3449
3118
 
3450
- class BXRestNavvyTaskCommentItem {
3451
- constructor(BXRestTaskCommentItem, mapTaskCommentItem, snackBar) {
3452
- this.BXRestTaskCommentItem = BXRestTaskCommentItem;
3453
- this.mapTaskCommentItem = mapTaskCommentItem;
3454
- this.snackBar = snackBar;
3455
- this.Navvy = new Navvy(this.BXRestTaskCommentItem, this.mapTaskCommentItem);
3456
- }
3457
- add(param) {
3458
- return this.Navvy.simpleWithArg(this.BXRestTaskCommentItem.add, param, 'Не удалось добавить комментарий к задаче');
3459
- }
3460
- update(param) {
3461
- return this.Navvy.simpleWithArg(this.BXRestTaskCommentItem.update, param, 'Не удалось обновить комментарий к задаче');
3462
- }
3463
- get(param) {
3464
- return this.Navvy.simpleWithArg(this.BXRestTaskCommentItem.get, param, 'Не удалось получить комментарий к задаче', this.mapTaskCommentItem.get);
3465
- }
3466
- getlist(param = {
3467
- FILTER: {},
3468
- ORDER: {
3469
- POST_DATE: 'asc'
3470
- }
3471
- }) {
3472
- return this.Navvy.simpleWithArg(this.BXRestTaskCommentItem.getlist, param, 'Не удалось получить комментарии к задаче', this.mapTaskCommentItem.getlist);
3473
- }
3474
- del(param) {
3475
- if (param.ITEMID > 0) {
3476
- return this.get(param).result().pipe(mergeMap(v => {
3477
- if (v) {
3478
- return this.Navvy.simpleWithArg(this.BXRestTaskCommentItem.del, param, 'Не удалось удалить комментарий').result();
3479
- }
3480
- this.snackBar.warning('comment not exist');
3481
- return of(false);
3482
- }));
3483
- }
3484
- else {
3485
- this.snackBar.warning('comment not exist');
3486
- return of(false);
3487
- }
3488
- }
3489
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskCommentItem, deps: [{ token: BXRestTaskCommentItem }, { token: BXRestMapTaskCommentItem }, { token: SnackBarService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3490
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskCommentItem, providedIn: 'root' }); }
3491
- }
3492
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskCommentItem, decorators: [{
3493
- type: Injectable,
3494
- args: [{
3495
- providedIn: 'root'
3496
- }]
3497
- }], ctorParameters: function () { return [{ type: BXRestTaskCommentItem }, { type: BXRestMapTaskCommentItem }, { type: SnackBarService }]; } });
3498
-
3499
- class BXRestMapTaskPlaner extends BaseMapServices {
3500
- getList(v) {
3501
- return (v) ? v.map(i => this.toNum(i)) : undefined;
3119
+ class BXRestNavvyTasksTaskResult {
3120
+ constructor(BXRestTasksTaskResult, BXRestMapTasksTaskResult) {
3121
+ this.BXRestTasksTaskResult = BXRestTasksTaskResult;
3122
+ this.BXRestMapTasksTaskResult = BXRestMapTasksTaskResult;
3123
+ this.Navvy = new Navvy(this.BXRestTasksTaskResult, this.BXRestMapTasksTaskResult);
3502
3124
  }
3503
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskPlaner, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3504
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskPlaner, providedIn: 'root' }); }
3505
- }
3506
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskPlaner, decorators: [{
3507
- type: Injectable,
3508
- args: [{
3509
- providedIn: 'root'
3510
- }]
3511
- }] });
3512
-
3513
- class BXRestNavvyTaskPlanner {
3514
- constructor(BXRestTaskPlanner, BXRestMapTaskPlaner) {
3515
- this.BXRestTaskPlanner = BXRestTaskPlanner;
3516
- this.BXRestMapTaskPlaner = BXRestMapTaskPlaner;
3517
- this.Navvy = new Navvy(this.BXRestTaskPlanner, this.BXRestMapTaskPlaner);
3125
+ deleteFromComment(commentID) {
3126
+ return this.Navvy.simpleWithArg(this.BXRestTasksTaskResult.deleteFromComment, commentID, 'Не удалось удалить комментарий');
3518
3127
  }
3519
- getList() {
3520
- return this.Navvy.simple(this.BXRestTaskPlanner.getList, 'Не удалось получить текущий клан на день', this.BXRestMapTaskPlaner.getList);
3128
+ addFromComment(commentID) {
3129
+ return this.Navvy.simpleWithArg(this.BXRestTasksTaskResult.addFromComment, commentID, 'Не удалось добавить комментарий', this.BXRestMapTasksTaskResult.addFromComment);
3521
3130
  }
3522
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskPlanner, deps: [{ token: BXRestTaskPlanner }, { token: BXRestMapTaskPlaner }], target: i0.ɵɵFactoryTarget.Injectable }); }
3523
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskPlanner, providedIn: 'root' }); }
3524
- }
3525
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskPlanner, decorators: [{
3526
- type: Injectable,
3527
- args: [{
3528
- providedIn: 'root'
3529
- }]
3530
- }], ctorParameters: function () { return [{ type: BXRestTaskPlanner }, { type: BXRestMapTaskPlaner }]; } });
3531
-
3532
- class BXRestNavvyTask {
3533
- constructor(elapseditem, commentitem, planner) {
3534
- this.elapseditem = elapseditem;
3535
- this.commentitem = commentitem;
3536
- this.planner = planner;
3131
+ list(param) {
3132
+ return this.Navvy.PagNav(this.BXRestTasksTaskResult.list, param, 'Не удалось добавить комментарий', this.BXRestMapTasksTaskResult.list);
3537
3133
  }
3538
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTask, deps: [{ token: BXRestNavvyElapseditem }, { token: BXRestNavvyTaskCommentItem }, { token: BXRestNavvyTaskPlanner }], target: i0.ɵɵFactoryTarget.Injectable }); }
3539
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTask, providedIn: 'root' }); }
3134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasksTaskResult, deps: [{ token: BXRestTasksTaskResult }, { token: BXRestMapTasksTaskResult }], target: i0.ɵɵFactoryTarget.Injectable }); }
3135
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasksTaskResult, providedIn: 'root' }); }
3540
3136
  }
3541
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTask, decorators: [{
3137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasksTaskResult, decorators: [{
3542
3138
  type: Injectable,
3543
3139
  args: [{
3544
3140
  providedIn: 'root'
3545
3141
  }]
3546
- }], ctorParameters: function () { return [{ type: BXRestNavvyElapseditem }, { type: BXRestNavvyTaskCommentItem }, { type: BXRestNavvyTaskPlanner }]; } });
3142
+ }], ctorParameters: function () { return [{ type: BXRestTasksTaskResult }, { type: BXRestMapTasksTaskResult }]; } });
3547
3143
 
3144
+ /// type SelectInterfaceTypeTasksTaskList<T> = T extends iBXRestHttpTasksTaskList ? iBXRestTasksTaskList : iBXRestTasksTaskListDefault
3548
3145
  class BXRestMapTasksTask extends BaseMapServices {
3146
+ constructor(result) {
3147
+ super();
3148
+ this.result = result;
3149
+ }
3549
3150
  getaccess(v) {
3550
3151
  return (v && v.allowedActions) ? v.allowedActions : undefined;
3551
3152
  }
@@ -3556,6 +3157,7 @@ class BXRestMapTasksTask extends BaseMapServices {
3556
3157
  return (item && item.task) ? this.TaskBXHttpToTaskBX(item.task) : undefined;
3557
3158
  }
3558
3159
  list(item) {
3160
+ // @ts-ignore
3559
3161
  return (item && item.tasks) ? item.tasks.map(i => this.TaskBXHttpToTaskBX(i)) : undefined;
3560
3162
  }
3561
3163
  TaskBXHttpToTaskBX(item) {
@@ -3659,7 +3261,7 @@ class BXRestMapTasksTask extends BaseMapServices {
3659
3261
  }
3660
3262
  return Object.assign(item, result);
3661
3263
  }
3662
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTasksTask, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3264
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTasksTask, deps: [{ token: BXRestMapTasksTaskResult }], target: i0.ɵɵFactoryTarget.Injectable }); }
3663
3265
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTasksTask, providedIn: 'root' }); }
3664
3266
  }
3665
3267
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTasksTask, decorators: [{
@@ -3667,17 +3269,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
3667
3269
  args: [{
3668
3270
  providedIn: 'root'
3669
3271
  }]
3670
- }] });
3272
+ }], ctorParameters: function () { return [{ type: BXRestMapTasksTaskResult }]; } });
3671
3273
 
3672
3274
  // export interface TimeProcess {
3673
3275
  // total: number,
3674
3276
  // next: number
3675
3277
  // }
3676
3278
  class BXRestNavvyTasksTask {
3677
- constructor(BXRestTasksTask,
3279
+ constructor(result, BXRestTasksTask,
3678
3280
  // private snackBar: SnackBarService,
3679
3281
  // private store: Store<{ tasks: IStoreTask }>,
3680
3282
  BXRestMapTasksTask) {
3283
+ this.result = result;
3681
3284
  this.BXRestTasksTask = BXRestTasksTask;
3682
3285
  this.BXRestMapTasksTask = BXRestMapTasksTask;
3683
3286
  // pageSize = 50
@@ -3698,204 +3301,657 @@ class BXRestNavvyTasksTask {
3698
3301
  // })
3699
3302
  }
3700
3303
  add(param) {
3701
- return this.Navvy.simpleWithArg(this.BXRestTasksTask.add, param, 'Не удалось добавить задачу', this.BXRestMapTasksTask.add);
3702
- // return this.http.post<{ task: TaskBXHttp }>(this.url.add, {fields: param}).pipe(
3703
- // map(v => {
3704
- // if (v && v.result && v.result.task) {
3705
- // return Object.assign(
3706
- // v,
3707
- // {
3708
- // result: this.taskBXMap.TaskBXHttpToTaskBX(v.result.task)
3709
- // })
3710
- // }
3711
- // return undefined
3712
- // }
3713
- // ))
3304
+ return this.Navvy.simpleWithArg(this.BXRestTasksTask.add, param, 'Не удалось добавить задачу', this.BXRestMapTasksTask.add);
3305
+ // return this.http.post<{ task: TaskBXHttp }>(this.url.add, {fields: param}).pipe(
3306
+ // map(v => {
3307
+ // if (v && v.result && v.result.task) {
3308
+ // return Object.assign(
3309
+ // v,
3310
+ // {
3311
+ // result: this.taskBXMap.TaskBXHttpToTaskBX(v.result.task)
3312
+ // })
3313
+ // }
3314
+ // return undefined
3315
+ // }
3316
+ // ))
3317
+ }
3318
+ /*
3319
+ update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {
3320
+ let sendTask: Record<string, any> = {}
3321
+ let taskTS: Record<string, any> = task
3322
+ if (updateFields.length) {
3323
+ for (let updateField of updateFields) {
3324
+ if (taskTS[camelCase(updateField)]) {
3325
+ sendTask[updateField] = taskTS[camelCase(updateField)]
3326
+ }
3327
+ }
3328
+ if (Object.values(sendTask).length) {
3329
+ return this.http.post(
3330
+ this.url.update,
3331
+ {taskId: taskId, fields: sendTask},
3332
+ 'error to update task')
3333
+ } else {
3334
+ this.snackBar.error('not valid send data task')
3335
+ console.error('not valid send data task', sendTask, task)
3336
+ return of(undefined)
3337
+ }
3338
+ }
3339
+
3340
+ this.snackBar.warning('not have field for update')
3341
+ return of(undefined)
3342
+ }
3343
+ */
3344
+ get(param) {
3345
+ if (!param.select) {
3346
+ param.select = this.def.select;
3347
+ }
3348
+ return this.Navvy.simpleWithArg(this.BXRestTasksTask.get, param, 'Не удалось получить задачу', this.BXRestMapTasksTask.get);
3349
+ }
3350
+ list(param = {}) {
3351
+ if (!param.select) {
3352
+ param.select = this.def.select;
3353
+ }
3354
+ return this.Navvy.PagNavTasks(this.BXRestTasksTask.list, param, 'Не удалось получить список задач', this.BXRestMapTasksTask.list);
3355
+ }
3356
+ /*
3357
+ listArray(requestArray: RequestApiTaskListBX = {}) {
3358
+ return this.list(requestArray).pipe(
3359
+ map(v => this.http.mapResult(v)),
3360
+ map(v => (v && v.tasks) ? v.tasks : [])
3361
+ )
3362
+ }
3363
+
3364
+ listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {
3365
+ if (!requestArray.select) {
3366
+ requestArray.select = this.def.select
3367
+ if (cache) {
3368
+ return this.storeTask$.pipe(
3369
+ take(1),
3370
+ mergeMap(tasks => {
3371
+ if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {
3372
+ const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID
3373
+ let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)
3374
+ if (filter.length === ids.length) {
3375
+ return of(filter)
3376
+ }
3377
+ }
3378
+ return this.getEndListArray(requestArray)
3379
+ })
3380
+ )
3381
+ }
3382
+ return this.getEndListArray(requestArray)
3383
+ }
3384
+ return this.getEndListArray(requestArray)
3385
+ }
3386
+
3387
+ getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {
3388
+ return this.list(requestArray).pipe(
3389
+ mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {
3390
+ if (items && items.result && typeof items.result.tasks === 'object') {
3391
+ const items$ = of(items.result.tasks)
3392
+ if (items.next) {
3393
+ this.nowLoad$.next({
3394
+ total: (items.total) ? items.total : 0,
3395
+ next: items.next
3396
+ })
3397
+ requestArray.start = items.next
3398
+ return this.getEndListArray(requestArray).pipe(
3399
+ map(vEnd => {
3400
+ if (vEnd && items.result.tasks) {
3401
+ return [...items.result.tasks, ...vEnd]
3402
+ }
3403
+ return (items.result.tasks) ? items.result.tasks : []
3404
+ }))
3405
+ }
3406
+ this.nowLoad$.next({
3407
+ total: 0,
3408
+ next: 0
3409
+ })
3410
+ return items$
3411
+ } else {
3412
+ return of([])
3413
+ }
3414
+ })
3415
+ )
3416
+ }
3417
+
3418
+ getFields() {
3419
+ return this.storeTask$.pipe(
3420
+ mergeMap(v => {
3421
+ if (v && !v.data.fields) {
3422
+ return this.http.post<iHttpAnswerBX<{ fields: iGetFieldsDescription }>>(this.url.getFields).pipe(
3423
+ tap(v => {
3424
+ if (v && v.result) {
3425
+ this.store.dispatch(saveFields(v.result))
3426
+ }
3427
+ }),
3428
+ map(v => {
3429
+ if (v && v.result && v.result.fields) {
3430
+ return {result: v.result.fields}
3431
+ }
3432
+
3433
+ return undefined
3434
+ })
3435
+ )
3436
+ }
3437
+ if (v.data.fields) {
3438
+ return of({result: clone<iGetFieldsDescription>(v.data.fields)})
3439
+ } else {
3440
+ return of(undefined)
3441
+ }
3442
+ })
3443
+ )
3444
+ } */
3445
+ getaccess(param) {
3446
+ return this.Navvy.simpleWithArg(this.BXRestTasksTask.getaccess, param, 'Не удалось получить права на указанных пользователей', this.BXRestMapTasksTask.getaccess);
3447
+ }
3448
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasksTask, deps: [{ token: BXRestNavvyTasksTaskResult }, { token: BXRestTasksTask }, { token: BXRestMapTasksTask }], target: i0.ɵɵFactoryTarget.Injectable }); }
3449
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasksTask, providedIn: 'root' }); }
3450
+ }
3451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasksTask, decorators: [{
3452
+ type: Injectable,
3453
+ args: [{
3454
+ providedIn: 'root'
3455
+ }]
3456
+ }], ctorParameters: function () { return [{ type: BXRestNavvyTasksTaskResult }, { type: BXRestTasksTask }, { type: BXRestMapTasksTask }]; } });
3457
+
3458
+ class BXRestNavvyTasks {
3459
+ constructor(task) {
3460
+ this.task = task;
3461
+ }
3462
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasks, deps: [{ token: BXRestNavvyTasksTask }], target: i0.ɵɵFactoryTarget.Injectable }); }
3463
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasks, providedIn: 'root' }); }
3464
+ }
3465
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasks, decorators: [{
3466
+ type: Injectable,
3467
+ args: [{
3468
+ providedIn: 'root'
3469
+ }]
3470
+ }], ctorParameters: function () { return [{ type: BXRestNavvyTasksTask }]; } });
3471
+
3472
+ class BXRestNavvyOperationElapseditem {
3473
+ constructor(http, delegate, BXRestMapElapseditem, BXRestNavvyUser, BXRestNavvyTasks) {
3474
+ this.http = http;
3475
+ this.delegate = delegate;
3476
+ this.BXRestMapElapseditem = BXRestMapElapseditem;
3477
+ this.BXRestNavvyUser = BXRestNavvyUser;
3478
+ this.BXRestNavvyTasks = BXRestNavvyTasks;
3479
+ }
3480
+ getByInterval(idsUsers, dateStart, dateEnd) {
3481
+ const param = {
3482
+ ORDER: {
3483
+ ID: 'DESC'
3484
+ },
3485
+ FILTER: {
3486
+ USER_ID: idsUsers,
3487
+ '>=CREATED_DATE': dateStart.toLocaleString('ru-Ru'),
3488
+ '<=CREATED_DATE': dateEnd.toLocaleString('ru-Ru'),
3489
+ }
3490
+ };
3491
+ return this.delegate.getList(param);
3492
+ }
3493
+ getListByIDTask(ids) {
3494
+ return this.http.branch(ids.map(i => {
3495
+ return {
3496
+ name: this.http.getNameMethod([$task, $elapseditem, $getlist]),
3497
+ param: {
3498
+ TASKID: i
3499
+ }
3500
+ };
3501
+ })).pipe(map(v => {
3502
+ if (v && v.length) {
3503
+ return this.http.mapBranchResultWithoutKey(v).map(i => this.BXRestMapElapseditem.getList(i)).filter((i) => i !== undefined).flat();
3504
+ }
3505
+ return undefined;
3506
+ }));
3507
+ }
3508
+ checkPermissionAddElapsedtimeToTaskArr(tasks) {
3509
+ let request = Object.assign({}, ...tasks.map(i => {
3510
+ return { [i]: this.checkPermissionAddElapsedtimeToTask(i) };
3511
+ }));
3512
+ return forkJoin(request)
3513
+ .pipe(take(1), mergeMap(v => {
3514
+ let forForeach = Object.entries(v).map(([key, value]) => {
3515
+ return { id: Number(key), value: value };
3516
+ });
3517
+ if (forForeach.find(i => i.value === undefined) !== undefined) {
3518
+ let forForeachHave = forForeach.filter(i => i.value !== undefined);
3519
+ let forForeachNotHave = forForeach.filter(i => i.value === undefined); // тут получаем все id не сохраненных у нас прав
3520
+ return this.http.branch(Object.assign({}, ...forForeachNotHave
3521
+ .map(i => i.id)
3522
+ .map(i => {
3523
+ return {
3524
+ [i]: {
3525
+ name: this.http.getNameMethod([$tasks, $task, $getaccess]),
3526
+ param: {
3527
+ TASKID: i,
3528
+ ITEMID: 1,
3529
+ ACTIONID: 1
3530
+ }
3531
+ }
3532
+ };
3533
+ }))).pipe(map(v => {
3534
+ if (v && v.length) {
3535
+ const res = this.http.mapBranchResult(v);
3536
+ forForeachNotHave = Object.entries(res).map(([key, value]) => {
3537
+ return { id: Number(key), value: value };
3538
+ });
3539
+ return Object.assign(forForeachHave, forForeachNotHave);
3540
+ }
3541
+ return undefined;
3542
+ }));
3543
+ }
3544
+ return of(forForeach);
3545
+ }));
3546
+ }
3547
+ checkPermissionAddElapsedtimeToTask(idTask) {
3548
+ let permission = Permission.get();
3549
+ if (permission?.tasks?.length) {
3550
+ let findTask = permission.tasks.find(i => i.id === idTask);
3551
+ if (findTask?.permission) {
3552
+ return of(findTask.permission['ELAPSEDTIME.ADD']);
3553
+ }
3554
+ return this.BXRestNavvyUser.current().result().pipe(mergeMap(self => {
3555
+ if (self) {
3556
+ return this.BXRestNavvyTasks.task.getaccess({
3557
+ id: idTask,
3558
+ users: [self.ID]
3559
+ }).result().pipe(tap(v => {
3560
+ if (v && v[self.ID]) {
3561
+ Permission.set({
3562
+ tasks: [{ id: idTask, permission: v[self.ID], elapsedItem: [] }]
3563
+ });
3564
+ }
3565
+ }), map(v => {
3566
+ return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false;
3567
+ }));
3568
+ }
3569
+ return of(undefined);
3570
+ }));
3571
+ }
3572
+ return of(undefined);
3573
+ }
3574
+ checkPermissionReadTask(idTask) {
3575
+ let permission = Permission.get();
3576
+ if (permission?.tasks?.length) {
3577
+ let findTask = permission.tasks.find(i => i.id === idTask);
3578
+ if (findTask?.permission) {
3579
+ return of(findTask.permission.ACCEPT);
3580
+ }
3581
+ return this.BXRestNavvyUser.current().result().pipe(mergeMap(self => {
3582
+ if (self) {
3583
+ return this.BXRestNavvyTasks.task.getaccess({
3584
+ id: idTask,
3585
+ users: [self.ID]
3586
+ }).result().pipe(tap(v => {
3587
+ if (v && v[self.ID]) {
3588
+ Permission.set({
3589
+ tasks: [{ id: idTask, permission: v[self.ID], elapsedItem: [] }]
3590
+ });
3591
+ }
3592
+ }), map(v => {
3593
+ return (v && v[self.ID]) ? v[self.ID].ACCEPT : false;
3594
+ }));
3595
+ }
3596
+ return of(undefined);
3597
+ }));
3598
+ }
3599
+ return of(undefined);
3600
+ }
3601
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyOperationElapseditem, deps: [{ token: HttpBXServices }, { token: BXRestNavvyDelegateElapseditem }, { token: BXRestMapTaskElapseditem }, { token: BXRestNavvyUser }, { token: BXRestNavvyTasks }], target: i0.ɵɵFactoryTarget.Injectable }); }
3602
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyOperationElapseditem, providedIn: 'root' }); }
3603
+ }
3604
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyOperationElapseditem, decorators: [{
3605
+ type: Injectable,
3606
+ args: [{
3607
+ providedIn: 'root'
3608
+ }]
3609
+ }], ctorParameters: function () { return [{ type: HttpBXServices }, { type: BXRestNavvyDelegateElapseditem }, { type: BXRestMapTaskElapseditem }, { type: BXRestNavvyUser }, { type: BXRestNavvyTasks }]; } });
3610
+
3611
+ class BXRestNavvyElapseditem {
3612
+ constructor(BXRestElapseditem, BXRestMapElapseditem, delegate, operation) {
3613
+ this.BXRestElapseditem = BXRestElapseditem;
3614
+ this.BXRestMapElapseditem = BXRestMapElapseditem;
3615
+ this.delegate = delegate;
3616
+ this.operation = operation;
3617
+ this.Navvy = new Navvy(this.BXRestElapseditem, this.BXRestMapElapseditem);
3618
+ }
3619
+ /*
3620
+ call(methodName: string, ...args: any[]){
3621
+ if (typeof this[methodName] === 'function') {
3622
+ return this[methodName](...args);
3623
+ }
3624
+ return this[methodName](...args);
3625
+ }
3626
+ */
3627
+ getList(param = {}) {
3628
+ return this.delegate.getList(param);
3629
+ }
3630
+ add(param) {
3631
+ return this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
3632
+ if (allowedReadTask) {
3633
+ return this.operation.checkPermissionAddElapsedtimeToTask(param.TASKID).pipe(mergeMap(allowed => {
3634
+ if (allowed) {
3635
+ return this.BXRestElapseditem.add(param);
3636
+ }
3637
+ else {
3638
+ return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'));
3639
+ }
3640
+ }));
3641
+ }
3642
+ else {
3643
+ return throwError(() => new Error('Отсутствуют права на чтение задачи'));
3644
+ }
3645
+ }));
3646
+ }
3647
+ /**
3648
+ * Обновление записи рабочего времени
3649
+ *
3650
+ * @param param
3651
+ */
3652
+ update(param) {
3653
+ return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
3654
+ if (allowedReadTask) {
3655
+ return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(mergeMap(allowed => {
3656
+ if (allowed) {
3657
+ return this.BXRestElapseditem.update(param);
3658
+ }
3659
+ else {
3660
+ return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'));
3661
+ }
3662
+ }));
3663
+ }
3664
+ else {
3665
+ return throwError(() => new Error('Отсутствуют права на чтение задачи'));
3666
+ }
3667
+ })), 'Не удалось обновить элемент списка', this.BXRestMapElapseditem.update);
3668
+ }
3669
+ /*
3670
+ getAll(
3671
+ params: RequestParamsElapsedGetList | undefined = undefined,
3672
+ cache = false
3673
+ ): Observable<iHttpAnswerBX<BXRestElapsed[]> | undefined> {
3674
+ return this.get(params, cache)
3675
+ .pipe(
3676
+ mergeMap(items => {
3677
+ if (items && items.result) {
3678
+ if (items.next) {
3679
+ params = (params) ? params : {}
3680
+ params.PARAMS = {
3681
+ NAV_PARAMS: {
3682
+ nPageSize: this.pageSize,
3683
+ iNumPage: items.next / this.pageSize + 1
3684
+ }
3685
+ }
3686
+ return this.getAll(params, cache).pipe(
3687
+ map(vEnd => {
3688
+ if (vEnd && vEnd.result && items.result) {
3689
+ return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})
3690
+ }
3691
+ return items
3692
+ })
3693
+ )
3694
+ }
3695
+ return of(items)
3696
+ } else {
3697
+ return of(undefined)
3698
+ }
3699
+ })
3700
+ )
3701
+ }
3702
+ */
3703
+ /*
3704
+ getCacheOff(params: RequestParamsElapsedGetList | undefined = undefined) {
3705
+ return this.http.post<iHttpAnswerBX<BXRestElapsedHttp[]> | undefined>
3706
+ (this.url.getlist, params, 'не удалось получить время по задачам')
3707
+ .pipe(
3708
+ map(v => {
3709
+ if (v && v.result) {
3710
+ const newResult: BXRestElapsed[] = []
3711
+ for (let task of v.result) {
3712
+ newResult.push(this.elapsedBXMap.AnswerElapsedGetHttpToAnswerElapsedGet(task))
3713
+ }
3714
+ return extend(v, {result: newResult}) as iHttpAnswerBX<BXRestElapsed[]>
3715
+ }
3716
+ return undefined
3717
+ }),
3718
+ tap(v => {
3719
+ if (v && params) {
3720
+ this.store.dispatch(saveHttpTaskTime({
3721
+ filter: clone(params),
3722
+ time: v
3723
+ }))
3724
+ }
3725
+ })
3726
+ )
3727
+ }
3728
+ */
3729
+ isAllowedModify(idTask, idItem) {
3730
+ let permission = Permission.get();
3731
+ if (permission?.tasks?.length) {
3732
+ let findTask = permission.tasks.find(i => i.id === idTask);
3733
+ if (findTask) {
3734
+ let find = findTask.elapsedItem.find(i => i.id === idItem);
3735
+ if (find && find.verified.edit) {
3736
+ return of(find.edit);
3737
+ }
3738
+ }
3739
+ }
3740
+ return this.isActionAllowed({
3741
+ TASKID: idTask,
3742
+ ITEMID: 2,
3743
+ ACTIONID: idItem
3744
+ }).result().pipe(tap(v => {
3745
+ if (v !== undefined) {
3746
+ Permission.setTaskElapsedItem(idTask, {
3747
+ id: idItem,
3748
+ edit: v,
3749
+ del: false,
3750
+ verified: {
3751
+ edit: true,
3752
+ del: false,
3753
+ }
3754
+ });
3755
+ }
3756
+ }));
3757
+ }
3758
+ isAllowedRemove(idTask, idItem) {
3759
+ return this.isActionAllowed({
3760
+ TASKID: idTask,
3761
+ ITEMID: 3,
3762
+ ACTIONID: idItem
3763
+ }).result();
3764
+ }
3765
+ /**
3766
+ * idAction:
3767
+ * 1 - ACTION_ELAPSED_TIME_ADD
3768
+ * 2 - ACTION_ELAPSED_TIME_MODIFY
3769
+ * 3 - ACTION_ELAPSED_TIME_REMOVE
3770
+ * @param param
3771
+ */
3772
+ isActionAllowed(param) {
3773
+ return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(canRead => {
3774
+ if (canRead) {
3775
+ return this.BXRestElapseditem.isActionAllowed(param);
3776
+ }
3777
+ return throwError(() => new Error('Отсутствуют права на чтение задачи'));
3778
+ })));
3779
+ }
3780
+ del(param) {
3781
+ return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
3782
+ if (allowedReadTask) {
3783
+ return this.isAllowedRemove(param.TASKID, param.ITEMID).pipe(mergeMap(allowed => {
3784
+ if (allowed) {
3785
+ return this.BXRestElapseditem.del(param);
3786
+ }
3787
+ else {
3788
+ return throwError(() => new Error('Отсутствуют права на удаление записи затраченного времени'));
3789
+ }
3790
+ }));
3791
+ }
3792
+ else {
3793
+ return throwError(() => new Error('Отсутствуют права на чтение задачи'));
3794
+ }
3795
+ })), 'Не удалось удалить элемент списка', v => (v === null));
3796
+ }
3797
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyElapseditem, deps: [{ token: BXRestTaskElapseditem }, { token: BXRestMapTaskElapseditem }, { token: BXRestNavvyDelegateElapseditem }, { token: BXRestNavvyOperationElapseditem }], target: i0.ɵɵFactoryTarget.Injectable }); }
3798
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyElapseditem, providedIn: 'root' }); }
3799
+ }
3800
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyElapseditem, decorators: [{
3801
+ type: Injectable,
3802
+ args: [{
3803
+ providedIn: 'root'
3804
+ }]
3805
+ }], ctorParameters: function () { return [{ type: BXRestTaskElapseditem }, { type: BXRestMapTaskElapseditem }, { type: BXRestNavvyDelegateElapseditem }, { type: BXRestNavvyOperationElapseditem }]; } });
3806
+
3807
+ class BXRestMapTaskCommentItem extends BaseMapServices {
3808
+ getlist(value) {
3809
+ return value ? value.map(i => this.iCommentTaskHtmlToiCommentTask(i)) : undefined;
3810
+ }
3811
+ get(value) {
3812
+ return value ? this.iCommentTaskHtmlToiCommentTask(value) : undefined;
3813
+ }
3814
+ iCommentTaskHtmlToiCommentTask(item) {
3815
+ if (item.ATTACHED_OBJECTS) {
3816
+ return {
3817
+ ATTACHED_OBJECTS: Object.values(item.ATTACHED_OBJECTS).map(i => {
3818
+ return {
3819
+ ATTACHMENT_ID: this.toNum(i.ATTACHMENT_ID),
3820
+ FILE_ID: this.toNum(i.FILE_ID),
3821
+ SIZE: this.toNum(i.SIZE),
3822
+ DOWNLOAD_URL: i.DOWNLOAD_URL,
3823
+ NAME: i.NAME,
3824
+ VIEW_URL: i.VIEW_URL
3825
+ };
3826
+ }),
3827
+ AUTHOR_ID: this.toNum(item.AUTHOR_ID),
3828
+ ID: this.toNum(item.ID),
3829
+ POST_DATE: this.toDate(item.POST_DATE),
3830
+ AUTHOR_EMAIL: item.AUTHOR_EMAIL,
3831
+ AUTHOR_NAME: item.AUTHOR_NAME,
3832
+ POST_MESSAGE: item.POST_MESSAGE,
3833
+ POST_MESSAGE_HTML: item.POST_MESSAGE_HTML
3834
+ };
3835
+ }
3836
+ else {
3837
+ return {
3838
+ AUTHOR_ID: this.toNum(item.AUTHOR_ID),
3839
+ ID: this.toNum(item.ID),
3840
+ POST_DATE: this.toDate(item.POST_DATE),
3841
+ AUTHOR_EMAIL: item.AUTHOR_EMAIL,
3842
+ AUTHOR_NAME: item.AUTHOR_NAME,
3843
+ POST_MESSAGE: item.POST_MESSAGE,
3844
+ POST_MESSAGE_HTML: item.POST_MESSAGE_HTML
3845
+ };
3846
+ }
3847
+ }
3848
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskCommentItem, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3849
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskCommentItem, providedIn: 'root' }); }
3850
+ }
3851
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskCommentItem, decorators: [{
3852
+ type: Injectable,
3853
+ args: [{
3854
+ providedIn: 'root'
3855
+ }]
3856
+ }] });
3857
+
3858
+ class BXRestNavvyTaskCommentItem {
3859
+ constructor(BXRestTaskCommentItem, mapTaskCommentItem, snackBar) {
3860
+ this.BXRestTaskCommentItem = BXRestTaskCommentItem;
3861
+ this.mapTaskCommentItem = mapTaskCommentItem;
3862
+ this.snackBar = snackBar;
3863
+ this.Navvy = new Navvy(this.BXRestTaskCommentItem, this.mapTaskCommentItem);
3864
+ }
3865
+ add(param) {
3866
+ return this.Navvy.simpleWithArg(this.BXRestTaskCommentItem.add, param, 'Не удалось добавить комментарий к задаче');
3714
3867
  }
3715
- /*
3716
- update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {
3717
- let sendTask: Record<string, any> = {}
3718
- let taskTS: Record<string, any> = task
3719
- if (updateFields.length) {
3720
- for (let updateField of updateFields) {
3721
- if (taskTS[camelCase(updateField)]) {
3722
- sendTask[updateField] = taskTS[camelCase(updateField)]
3723
- }
3724
- }
3725
- if (Object.values(sendTask).length) {
3726
- return this.http.post(
3727
- this.url.update,
3728
- {taskId: taskId, fields: sendTask},
3729
- 'error to update task')
3730
- } else {
3731
- this.snackBar.error('not valid send data task')
3732
- console.error('not valid send data task', sendTask, task)
3733
- return of(undefined)
3734
- }
3735
- }
3736
-
3737
- this.snackBar.warning('not have field for update')
3738
- return of(undefined)
3868
+ update(param) {
3869
+ return this.Navvy.simpleWithArg(this.BXRestTaskCommentItem.update, param, 'Не удалось обновить комментарий к задаче');
3739
3870
  }
3740
- */
3741
3871
  get(param) {
3742
- if (!param.select) {
3743
- param.select = this.def.select;
3744
- }
3745
- return this.Navvy.simpleWithArg(this.BXRestTasksTask.get, param, 'Не удалось получить задачу', this.BXRestMapTasksTask.get);
3872
+ return this.Navvy.simpleWithArg(this.BXRestTaskCommentItem.get, param, 'Не удалось получить комментарий к задаче', this.mapTaskCommentItem.get);
3746
3873
  }
3747
- list(param = {}) {
3748
- if (!param.select) {
3749
- param.select = this.def.select;
3874
+ getlist(param = {
3875
+ FILTER: {},
3876
+ ORDER: {
3877
+ POST_DATE: 'asc'
3750
3878
  }
3751
- return this.Navvy.PagNavTasks(this.BXRestTasksTask.list, param, 'Не удалось получить список задач', this.BXRestMapTasksTask.list);
3752
- }
3753
- /*
3754
- listArray(requestArray: RequestApiTaskListBX = {}) {
3755
- return this.list(requestArray).pipe(
3756
- map(v => this.http.mapResult(v)),
3757
- map(v => (v && v.tasks) ? v.tasks : [])
3758
- )
3879
+ }) {
3880
+ return this.Navvy.simpleWithArg(this.BXRestTaskCommentItem.getlist, param, 'Не удалось получить комментарии к задаче', this.mapTaskCommentItem.getlist);
3759
3881
  }
3760
-
3761
- listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {
3762
- if (!requestArray.select) {
3763
- requestArray.select = this.def.select
3764
- if (cache) {
3765
- return this.storeTask$.pipe(
3766
- take(1),
3767
- mergeMap(tasks => {
3768
- if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {
3769
- const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID
3770
- let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)
3771
- if (filter.length === ids.length) {
3772
- return of(filter)
3882
+ del(param) {
3883
+ if (param.ITEMID > 0) {
3884
+ return this.get(param).result().pipe(mergeMap(v => {
3885
+ if (v) {
3886
+ return this.Navvy.simpleWithArg(this.BXRestTaskCommentItem.del, param, 'Не удалось удалить комментарий').result();
3773
3887
  }
3774
- }
3775
- return this.getEndListArray(requestArray)
3776
- })
3777
- )
3888
+ this.snackBar.warning('comment not exist');
3889
+ return of(false);
3890
+ }));
3891
+ }
3892
+ else {
3893
+ this.snackBar.warning('comment not exist');
3894
+ return of(false);
3778
3895
  }
3779
- return this.getEndListArray(requestArray)
3780
- }
3781
- return this.getEndListArray(requestArray)
3782
- }
3783
-
3784
- getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {
3785
- return this.list(requestArray).pipe(
3786
- mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {
3787
- if (items && items.result && typeof items.result.tasks === 'object') {
3788
- const items$ = of(items.result.tasks)
3789
- if (items.next) {
3790
- this.nowLoad$.next({
3791
- total: (items.total) ? items.total : 0,
3792
- next: items.next
3793
- })
3794
- requestArray.start = items.next
3795
- return this.getEndListArray(requestArray).pipe(
3796
- map(vEnd => {
3797
- if (vEnd && items.result.tasks) {
3798
- return [...items.result.tasks, ...vEnd]
3799
- }
3800
- return (items.result.tasks) ? items.result.tasks : []
3801
- }))
3802
- }
3803
- this.nowLoad$.next({
3804
- total: 0,
3805
- next: 0
3806
- })
3807
- return items$
3808
- } else {
3809
- return of([])
3810
- }
3811
- })
3812
- )
3813
- }
3814
-
3815
- getFields() {
3816
- return this.storeTask$.pipe(
3817
- mergeMap(v => {
3818
- if (v && !v.data.fields) {
3819
- return this.http.post<iHttpAnswerBX<{ fields: iGetFieldsDescription }>>(this.url.getFields).pipe(
3820
- tap(v => {
3821
- if (v && v.result) {
3822
- this.store.dispatch(saveFields(v.result))
3823
- }
3824
- }),
3825
- map(v => {
3826
- if (v && v.result && v.result.fields) {
3827
- return {result: v.result.fields}
3828
- }
3829
-
3830
- return undefined
3831
- })
3832
- )
3833
- }
3834
- if (v.data.fields) {
3835
- return of({result: clone<iGetFieldsDescription>(v.data.fields)})
3836
- } else {
3837
- return of(undefined)
3838
- }
3839
- })
3840
- )
3841
- }
3842
-
3843
- deleteResultFromComment(commentID: number) {
3844
- return this.http.post<iHttpAnswerBX<any>>(this.url.result.deleteFromComment, {commentId: commentID})
3845
- }
3846
-
3847
- addResultFromComment(commentID: number) {
3848
- return this.http.post<iHttpAnswerBX<iTaskResultHttp>>(this.url.result.addFromComment, {commentId: commentID})
3849
- .pipe(
3850
- map(v => {
3851
- if (v && v.result) {
3852
- this.taskResultMap.iTaskResultHttpToiTaskResult(v.result)
3853
- }
3854
- return undefined
3855
- }))
3856
3896
  }
3857
-
3858
- getResulList(taskId: number): Observable<iTaskResult[] | undefined> {
3859
- return this.http.post<iHttpAnswerBX<iTaskResultHttp[]>>(this.url.result.list, {taskId: taskId})
3860
- .pipe(
3861
- map(v => {
3862
- if (v && v.result) {
3863
- return v.result.map(i => this.taskResultMap.iTaskResultHttpToiTaskResult(i))
3864
- }
3865
- return undefined
3866
- }))
3897
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskCommentItem, deps: [{ token: BXRestTaskCommentItem }, { token: BXRestMapTaskCommentItem }, { token: SnackBarService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3898
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskCommentItem, providedIn: 'root' }); }
3899
+ }
3900
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskCommentItem, decorators: [{
3901
+ type: Injectable,
3902
+ args: [{
3903
+ providedIn: 'root'
3904
+ }]
3905
+ }], ctorParameters: function () { return [{ type: BXRestTaskCommentItem }, { type: BXRestMapTaskCommentItem }, { type: SnackBarService }]; } });
3906
+
3907
+ class BXRestMapTaskPlaner extends BaseMapServices {
3908
+ getList(v) {
3909
+ return (v) ? v.map(i => this.toNum(i)) : undefined;
3867
3910
  }
3868
-
3869
- getPlannerList() {
3870
- return this.http.post<iHttpAnswerBX<(string | number)[]>>(this.url.planner.getlist)
3911
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskPlaner, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3912
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskPlaner, providedIn: 'root' }); }
3913
+ }
3914
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskPlaner, decorators: [{
3915
+ type: Injectable,
3916
+ args: [{
3917
+ providedIn: 'root'
3918
+ }]
3919
+ }] });
3920
+
3921
+ class BXRestNavvyTaskPlanner {
3922
+ constructor(BXRestTaskPlanner, BXRestMapTaskPlaner) {
3923
+ this.BXRestTaskPlanner = BXRestTaskPlanner;
3924
+ this.BXRestMapTaskPlaner = BXRestMapTaskPlaner;
3925
+ this.Navvy = new Navvy(this.BXRestTaskPlanner, this.BXRestMapTaskPlaner);
3871
3926
  }
3872
- */
3873
- getaccess(param) {
3874
- return this.Navvy.simpleWithArg(this.BXRestTasksTask.getaccess, param, 'Не удалось получить права на указанных пользователей', this.BXRestMapTasksTask.getaccess);
3927
+ getList() {
3928
+ return this.Navvy.simple(this.BXRestTaskPlanner.getList, 'Не удалось получить текущий клан на день', this.BXRestMapTaskPlaner.getList);
3875
3929
  }
3876
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasksTask, deps: [{ token: BXRestTasksTask }, { token: BXRestMapTasksTask }], target: i0.ɵɵFactoryTarget.Injectable }); }
3877
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasksTask, providedIn: 'root' }); }
3930
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskPlanner, deps: [{ token: BXRestTaskPlanner }, { token: BXRestMapTaskPlaner }], target: i0.ɵɵFactoryTarget.Injectable }); }
3931
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskPlanner, providedIn: 'root' }); }
3878
3932
  }
3879
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasksTask, decorators: [{
3933
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskPlanner, decorators: [{
3880
3934
  type: Injectable,
3881
3935
  args: [{
3882
3936
  providedIn: 'root'
3883
3937
  }]
3884
- }], ctorParameters: function () { return [{ type: BXRestTasksTask }, { type: BXRestMapTasksTask }]; } });
3938
+ }], ctorParameters: function () { return [{ type: BXRestTaskPlanner }, { type: BXRestMapTaskPlaner }]; } });
3885
3939
 
3886
- class BXRestNavvyTasks {
3887
- constructor(task) {
3888
- this.task = task;
3940
+ class BXRestNavvyTask {
3941
+ constructor(elapseditem, commentitem, planner) {
3942
+ this.elapseditem = elapseditem;
3943
+ this.commentitem = commentitem;
3944
+ this.planner = planner;
3889
3945
  }
3890
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasks, deps: [{ token: BXRestNavvyTasksTask }], target: i0.ɵɵFactoryTarget.Injectable }); }
3891
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasks, providedIn: 'root' }); }
3946
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTask, deps: [{ token: BXRestNavvyElapseditem }, { token: BXRestNavvyTaskCommentItem }, { token: BXRestNavvyTaskPlanner }], target: i0.ɵɵFactoryTarget.Injectable }); }
3947
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTask, providedIn: 'root' }); }
3892
3948
  }
3893
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTasks, decorators: [{
3949
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTask, decorators: [{
3894
3950
  type: Injectable,
3895
3951
  args: [{
3896
3952
  providedIn: 'root'
3897
3953
  }]
3898
- }], ctorParameters: function () { return [{ type: BXRestNavvyTasksTask }]; } });
3954
+ }], ctorParameters: function () { return [{ type: BXRestNavvyElapseditem }, { type: BXRestNavvyTaskCommentItem }, { type: BXRestNavvyTaskPlanner }]; } });
3899
3955
 
3900
3956
  class BXRestMapDiskBase extends BaseMapServices {
3901
3957
  separationFoldersAndFiles(arr) {
@@ -4628,10 +4684,7 @@ class BXRestNavvySonetGroup {
4628
4684
  this.mapSonetGroup = mapSonetGroup;
4629
4685
  this.Navvy = new Navvy(this.BXRestSonetGroup, this.mapSonetGroup);
4630
4686
  }
4631
- get(param = {
4632
- filter: {},
4633
- order: {}
4634
- }) {
4687
+ get(param = {}) {
4635
4688
  return this.Navvy.simpleWithArg(this.BXRestSonetGroup.get, param, 'Не удалось получить рабочую группу', this.mapSonetGroup.get);
4636
4689
  }
4637
4690
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvySonetGroup, deps: [{ token: BXRestSonetGroup }, { token: BXRestMapSonetGroup }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -4905,17 +4958,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
4905
4958
  }]
4906
4959
  }], ctorParameters: function () { return [{ type: BXRestMapLogBlogPost }]; } });
4907
4960
 
4908
- class BXRestMapTaskResult extends BaseMapServices {
4909
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskResult, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4910
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskResult, providedIn: 'root' }); }
4911
- }
4912
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskResult, decorators: [{
4913
- type: Injectable,
4914
- args: [{
4915
- providedIn: 'root'
4916
- }]
4917
- }] });
4918
-
4919
4961
  class BXRestMapTaskStage extends BaseMapServices {
4920
4962
  get(value) {
4921
4963
  return (value) ? value.map(i => Object.assign(i, {
@@ -4935,13 +4977,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
4935
4977
  }] });
4936
4978
 
4937
4979
  class BXRestMapTask {
4938
- constructor(commentItem, elapsedItem, result, stages) {
4980
+ constructor(commentItem, elapsedItem, stages) {
4939
4981
  this.commentItem = commentItem;
4940
4982
  this.elapsedItem = elapsedItem;
4941
- this.result = result;
4942
4983
  this.stages = stages;
4943
4984
  }
4944
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTask, deps: [{ token: BXRestMapTaskCommentItem }, { token: BXRestMapTaskElapseditem }, { token: BXRestMapTaskResult }, { token: BXRestMapTaskStage }], target: i0.ɵɵFactoryTarget.Injectable }); }
4985
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTask, deps: [{ token: BXRestMapTaskCommentItem }, { token: BXRestMapTaskElapseditem }, { token: BXRestMapTaskStage }], target: i0.ɵɵFactoryTarget.Injectable }); }
4945
4986
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTask, providedIn: 'root' }); }
4946
4987
  }
4947
4988
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTask, decorators: [{
@@ -4949,7 +4990,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
4949
4990
  args: [{
4950
4991
  providedIn: 'root'
4951
4992
  }]
4952
- }], ctorParameters: function () { return [{ type: BXRestMapTaskCommentItem }, { type: BXRestMapTaskElapseditem }, { type: BXRestMapTaskResult }, { type: BXRestMapTaskStage }]; } });
4993
+ }], ctorParameters: function () { return [{ type: BXRestMapTaskCommentItem }, { type: BXRestMapTaskElapseditem }, { type: BXRestMapTaskStage }]; } });
4953
4994
 
4954
4995
  class BXRestMapTasks {
4955
4996
  constructor(task) {