@kineticdata/react 5.1.1 → 6.0.0

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 (305) hide show
  1. package/assets/task/icons/drag-handle.svg +3 -0
  2. package/assets/task/icons/plus_small.svg +2 -4
  3. package/lib/apis/agent/adapters.js +16 -12
  4. package/lib/apis/agent/bridges.js +54 -41
  5. package/lib/apis/agent/handlers.js +51 -38
  6. package/lib/apis/core/activity.js +19 -11
  7. package/lib/apis/core/attributeDefinitions.js +54 -46
  8. package/lib/apis/core/attributeDefinitions.test.js +47 -55
  9. package/lib/apis/core/authentication.js +58 -63
  10. package/lib/apis/core/backgroundJobs.js +38 -30
  11. package/lib/apis/core/bridgeModelAttributeMappings.js +42 -34
  12. package/lib/apis/core/bridgeModelAttributes.js +47 -37
  13. package/lib/apis/core/bridgeModelMappings.js +42 -34
  14. package/lib/apis/core/bridgeModelQualificationMappings.js +42 -34
  15. package/lib/apis/core/bridgeModelQualifications.js +42 -34
  16. package/lib/apis/core/bridgeModels.js +61 -45
  17. package/lib/apis/core/bridgeModels.test.js +64 -80
  18. package/lib/apis/core/bridgedresources.js +64 -71
  19. package/lib/apis/core/bridgedresources.test.js +34 -31
  20. package/lib/apis/core/categories.js +59 -52
  21. package/lib/apis/core/categories.test.js +36 -33
  22. package/lib/apis/core/fileResources.js +41 -33
  23. package/lib/apis/core/filestores.js +42 -34
  24. package/lib/apis/core/formTypes.js +50 -44
  25. package/lib/apis/core/forms.js +53 -48
  26. package/lib/apis/core/forms.test.js +60 -74
  27. package/lib/apis/core/kapps.js +45 -39
  28. package/lib/apis/core/kapps.test.js +45 -52
  29. package/lib/apis/core/logs.js +20 -16
  30. package/lib/apis/core/memberships.js +23 -20
  31. package/lib/apis/core/meta.js +31 -19
  32. package/lib/apis/core/notices.js +17 -9
  33. package/lib/apis/core/oauthClients.js +49 -45
  34. package/lib/apis/core/platformComponents.js +73 -57
  35. package/lib/apis/core/platformItems.js +30 -0
  36. package/lib/apis/core/profile.js +28 -21
  37. package/lib/apis/core/profile.test.js +20 -17
  38. package/lib/apis/core/securityPolicyDefinitions.js +48 -41
  39. package/lib/apis/core/securityPolicyDefinitions.test.js +50 -60
  40. package/lib/apis/core/space.js +23 -16
  41. package/lib/apis/core/space.test.js +31 -38
  42. package/lib/apis/core/submissions.js +220 -172
  43. package/lib/apis/core/submissions.test.js +81 -51
  44. package/lib/apis/core/teams.js +51 -44
  45. package/lib/apis/core/teams.test.js +42 -39
  46. package/lib/apis/core/translations.js +123 -130
  47. package/lib/apis/core/translations.test.js +278 -368
  48. package/lib/apis/core/users.js +56 -49
  49. package/lib/apis/core/users.test.js +42 -39
  50. package/lib/apis/core/version.js +20 -11
  51. package/lib/apis/core/webApis.js +42 -34
  52. package/lib/apis/core/webhooks.js +48 -41
  53. package/lib/apis/core/webhooks.test.js +50 -60
  54. package/lib/apis/core/webhooksJobs.js +30 -26
  55. package/lib/apis/core/workflows.js +64 -0
  56. package/lib/apis/http.js +89 -80
  57. package/lib/apis/http.test.js +37 -38
  58. package/lib/apis/index.js +506 -48
  59. package/lib/apis/system/index.js +228 -211
  60. package/lib/apis/task/index.js +283 -226
  61. package/lib/components/agent/bridge/BridgeForm.js +50 -50
  62. package/lib/components/agent/bridge/BridgeTable.js +12 -8
  63. package/lib/components/agent/filestore/FilestoreForm.js +49 -48
  64. package/lib/components/agent/filestore/FilestoreTable.js +12 -8
  65. package/lib/components/agent/handler/AgentHandlerForm.js +24 -27
  66. package/lib/components/agent/handler/AgentHandlerTable.js +12 -8
  67. package/lib/components/common/AttributeSelect.js +15 -9
  68. package/lib/components/common/BridgeSelect.js +48 -43
  69. package/lib/components/common/ComponentConfigContext.js +9 -2
  70. package/lib/components/common/ContentEditable.js +36 -60
  71. package/lib/components/common/FormSelect.js +70 -58
  72. package/lib/components/common/NodeSelect.js +23 -19
  73. package/lib/components/common/Scroller.js +24 -23
  74. package/lib/components/common/StaticSelect.js +57 -50
  75. package/lib/components/common/TableInput.js +54 -57
  76. package/lib/components/common/TeamSelect.js +42 -39
  77. package/lib/components/common/Typeahead.js +121 -138
  78. package/lib/components/common/UserSelect.js +42 -41
  79. package/lib/components/common/authentication/AuthInterceptor.js +15 -19
  80. package/lib/components/common/authentication/AuthInterceptor.test.js +46 -64
  81. package/lib/components/common/authentication/AuthenticationContainer.js +350 -454
  82. package/lib/components/common/authentication/RequestInterceptor.js +16 -19
  83. package/lib/components/common/code_input/CodeInput.js +92 -122
  84. package/lib/components/common/code_input/draftHelpers.js +96 -90
  85. package/lib/components/common/code_input/languageHelpers.js +49 -47
  86. package/lib/components/common/code_input/languageHelpers.test.js +21 -16
  87. package/lib/components/core/CoreFormModal.js +26 -24
  88. package/lib/components/core/CoreModal.js +37 -31
  89. package/lib/components/core/attribute_definition/AttributeDefinitionForm.js +24 -23
  90. package/lib/components/core/attribute_definition/AttributeDefinitionTable.js +18 -15
  91. package/lib/components/core/bridge_model/BridgeModelForm.js +27 -37
  92. package/lib/components/core/bridge_model/BridgeModelTable.js +12 -8
  93. package/lib/components/core/bridge_model_attribute/BridgeModelAttributeForm.js +17 -16
  94. package/lib/components/core/bridge_model_attribute/BridgeModelAttributeTable.js +25 -21
  95. package/lib/components/core/bridge_model_qualification/BridgeModelQualificationForm.js +20 -20
  96. package/lib/components/core/bridge_model_qualification/BridgeModelQualificationTable.js +27 -22
  97. package/lib/components/core/category/CategoryForm.js +22 -22
  98. package/lib/components/core/category/CategoryTable.js +15 -10
  99. package/lib/components/core/core_form/CoreForm.js +209 -285
  100. package/lib/components/core/core_form/CoreForm.test.js +12 -10
  101. package/lib/components/core/core_form/defaults/index.js +52 -44
  102. package/lib/components/core/core_form/globals.js +14 -5
  103. package/lib/components/core/field_definition/FieldDefinitionForm.js +23 -21
  104. package/lib/components/core/field_definition/FieldDefinitionTable.js +15 -10
  105. package/lib/components/core/file_resource/FileResourceForm.js +38 -37
  106. package/lib/components/core/file_resource/FileResourceTable.js +16 -12
  107. package/lib/components/core/form/FormForm.js +56 -61
  108. package/lib/components/core/form/FormTable.js +25 -22
  109. package/lib/components/core/form_type/FormTypeForm.js +14 -13
  110. package/lib/components/core/form_type/FormTypeTable.js +12 -8
  111. package/lib/components/core/i18n/I18n.js +54 -61
  112. package/lib/components/core/i18n/I18nContext.js +9 -2
  113. package/lib/components/core/i18n/I18nProvider.js +40 -43
  114. package/lib/components/core/i18n/Moment.js +40 -50
  115. package/lib/components/core/index_definition/IndexDefinitionForm.js +23 -24
  116. package/lib/components/core/index_definition/IndexDefinitionTable.js +19 -11
  117. package/lib/components/core/index_job/IndexJobTable.js +20 -15
  118. package/lib/components/core/kapp/KappForm.js +57 -58
  119. package/lib/components/core/kapp/KappTable.js +17 -12
  120. package/lib/components/core/log/LogTable.js +35 -33
  121. package/lib/components/core/oauth_client/OAuthClientForm.js +17 -17
  122. package/lib/components/core/oauth_client/OAuthClientTable.js +12 -8
  123. package/lib/components/core/platform_component/AgentComponentForm.js +15 -15
  124. package/lib/components/core/platform_component/AgentComponentTable.js +10 -5
  125. package/lib/components/core/platform_component/TaskComponentForm.js +14 -14
  126. package/lib/components/core/profile/ProfileForm.js +40 -39
  127. package/lib/components/core/security_definition/SecurityDefinitionForm.js +28 -25
  128. package/lib/components/core/security_definition/SecurityDefinitionTable.js +18 -13
  129. package/lib/components/core/space/SpaceForm.js +79 -90
  130. package/lib/components/core/submission/DatastoreSubmissionFilters.js +39 -40
  131. package/lib/components/core/submission/DatastoreSubmissionTable.js +37 -34
  132. package/lib/components/core/submission/FormSubmissionFilters.js +79 -75
  133. package/lib/components/core/submission/FormSubmissionTable.js +27 -20
  134. package/lib/components/core/submission/KappSubmissionTable.js +30 -29
  135. package/lib/components/core/submission/SubmissionForm.js +126 -55
  136. package/lib/components/core/submission/SubmissionTable.js +24 -20
  137. package/lib/components/core/submission/helpers.js +37 -33
  138. package/lib/components/core/submission/helpers.test.js +69 -20
  139. package/lib/components/core/team/TeamForm.js +24 -21
  140. package/lib/components/core/team/TeamTable.js +16 -11
  141. package/lib/components/core/translation/ContextForm.js +13 -10
  142. package/lib/components/core/translation/ContextTable.js +13 -10
  143. package/lib/components/core/translation/EntryForm.js +27 -24
  144. package/lib/components/core/translation/EntryTable.js +19 -16
  145. package/lib/components/core/translation/LocaleForm.js +16 -13
  146. package/lib/components/core/translation/LocaleTable.js +12 -8
  147. package/lib/components/core/user/UserForm.js +38 -37
  148. package/lib/components/core/user/UserTable.js +19 -15
  149. package/lib/components/core/webapi/WebApiForm.js +49 -61
  150. package/lib/components/core/webapi/WebApiTable.js +14 -10
  151. package/lib/components/core/webhook/WebhookForm.js +33 -32
  152. package/lib/components/core/webhook/WebhookTable.js +22 -20
  153. package/lib/components/core/webhook_job/WebhookJobTable.js +19 -16
  154. package/lib/components/form/Form.helpers.js +102 -90
  155. package/lib/components/form/Form.js +467 -524
  156. package/lib/components/form/Form.models.js +38 -24
  157. package/lib/components/form/FormState.js +8 -5
  158. package/lib/components/form/KitchenSinkForm.js +135 -4
  159. package/lib/components/form/defaults/AttributesField.js +48 -59
  160. package/lib/components/form/defaults/CheckboxField.js +14 -6
  161. package/lib/components/form/defaults/CodeField.js +15 -7
  162. package/lib/components/form/defaults/FormButtons.js +12 -4
  163. package/lib/components/form/defaults/FormError.js +12 -4
  164. package/lib/components/form/defaults/FormField.js +15 -7
  165. package/lib/components/form/defaults/FormLayout.js +12 -4
  166. package/lib/components/form/defaults/FormMultiField.js +15 -7
  167. package/lib/components/form/defaults/PasswordField.js +14 -6
  168. package/lib/components/form/defaults/RadioField.js +15 -7
  169. package/lib/components/form/defaults/SampleTeamsRolesFIeld.js +17 -9
  170. package/lib/components/form/defaults/SelectField.js +16 -8
  171. package/lib/components/form/defaults/SelectMultiField.js +15 -7
  172. package/lib/components/form/defaults/TableField.js +14 -6
  173. package/lib/components/form/defaults/TeamField.js +15 -7
  174. package/lib/components/form/defaults/TeamMultiField.js +15 -7
  175. package/lib/components/form/defaults/TextField.js +14 -6
  176. package/lib/components/form/defaults/TextMultiField.js +26 -28
  177. package/lib/components/form/defaults/UserField.js +15 -7
  178. package/lib/components/form/defaults/UserMultiField.js +15 -7
  179. package/lib/components/form/defaults/index.js +48 -41
  180. package/lib/components/form/tests/Form.test.js +568 -864
  181. package/lib/components/form/tests/components.js +15 -25
  182. package/lib/components/form/tests/helpers.test.js +35 -33
  183. package/lib/components/index.js +981 -133
  184. package/lib/components/system/SystemBackgroundTasksTable.js +14 -10
  185. package/lib/components/system/SystemFilestoreForm.js +28 -25
  186. package/lib/components/system/SystemForm.js +19 -16
  187. package/lib/components/system/SystemIngressForm.js +10 -9
  188. package/lib/components/system/SystemSecurityForm.js +17 -14
  189. package/lib/components/system/SystemSmtpForm.js +13 -13
  190. package/lib/components/system/SystemTaskAdapterForm.js +21 -17
  191. package/lib/components/system/SystemUserForm.js +15 -14
  192. package/lib/components/system/helpers.js +62 -60
  193. package/lib/components/system/helpers.test.js +16 -12
  194. package/lib/components/system/spaces/SystemSpaceForm.js +25 -24
  195. package/lib/components/system/spaces/SystemTenantForm.js +43 -40
  196. package/lib/components/system/spaces/SystemTenantTable.js +12 -8
  197. package/lib/components/table/Table.js +219 -225
  198. package/lib/components/table/Table.redux.js +298 -327
  199. package/lib/components/table/Table.redux.test.js +49 -47
  200. package/lib/components/table/Table.test.js +107 -132
  201. package/lib/components/table/defaults/BodyCell.js +12 -6
  202. package/lib/components/table/defaults/BodyRow.js +10 -4
  203. package/lib/components/table/defaults/BooleanFilter.js +17 -11
  204. package/lib/components/table/defaults/EmptyBodyRow.js +12 -6
  205. package/lib/components/table/defaults/FilterLayout.js +17 -11
  206. package/lib/components/table/defaults/Footer.js +11 -5
  207. package/lib/components/table/defaults/FooterCell.js +10 -4
  208. package/lib/components/table/defaults/FooterRow.js +10 -4
  209. package/lib/components/table/defaults/Header.js +10 -4
  210. package/lib/components/table/defaults/HeaderCell.js +16 -10
  211. package/lib/components/table/defaults/HeaderRow.js +10 -4
  212. package/lib/components/table/defaults/PaginationControl.js +18 -9
  213. package/lib/components/table/defaults/TableBody.js +10 -4
  214. package/lib/components/table/defaults/TableLayout.js +12 -6
  215. package/lib/components/table/defaults/TextFilter.js +16 -10
  216. package/lib/components/table/defaults/index.js +41 -33
  217. package/lib/components/task/builder/Connector.js +100 -111
  218. package/lib/components/task/builder/ConnectorForm.js +17 -11
  219. package/lib/components/task/builder/Node.js +101 -83
  220. package/lib/components/task/builder/NodeForm.js +30 -27
  221. package/lib/components/task/builder/NodeParametersForm.js +27 -24
  222. package/lib/components/task/builder/SvgCanvas.js +67 -96
  223. package/lib/components/task/builder/SvgText.js +19 -134
  224. package/lib/components/task/builder/TaskDefinitionConfigForm.js +28 -23
  225. package/lib/components/task/builder/TreeBuilder.js +140 -115
  226. package/lib/components/task/builder/builder.redux.js +322 -300
  227. package/lib/components/task/builder/constants.js +94 -45
  228. package/lib/components/task/builder/helpers.js +184 -173
  229. package/lib/components/task/builder/helpers.test.js +20 -18
  230. package/lib/components/task/builder/models.js +133 -91
  231. package/lib/components/task/category/TaskCategoryForm.js +31 -29
  232. package/lib/components/task/category/TaskCategoryTable.js +12 -8
  233. package/lib/components/task/common/UsageTable.js +16 -12
  234. package/lib/components/task/engine/EngineSettingsForm.js +13 -11
  235. package/lib/components/task/errors/RunErrorTable.js +17 -13
  236. package/lib/components/task/errors/SystemErrorsTable.js +13 -9
  237. package/lib/components/task/handlers/HandlerForm.js +55 -55
  238. package/lib/components/task/handlers/HandlerTable.js +12 -8
  239. package/lib/components/task/handlers/MissingHandlerTable.js +12 -8
  240. package/lib/components/task/policy_rule/PolicyRuleForm.js +33 -32
  241. package/lib/components/task/policy_rule/PolicyRuleTable.js +12 -8
  242. package/lib/components/task/runs/CreateManualTriggerForm.js +17 -15
  243. package/lib/components/task/runs/RunTable.js +23 -20
  244. package/lib/components/task/runs/RunTaskTable.js +10 -6
  245. package/lib/components/task/sources/SourceForm.js +47 -47
  246. package/lib/components/task/sources/SourceTable.js +14 -11
  247. package/lib/components/task/triggers/TriggerTable.js +21 -18
  248. package/lib/components/task/workflows/LinkedWorkflowForm.js +249 -0
  249. package/lib/components/task/workflows/LinkedWorkflowTable.js +137 -0
  250. package/lib/components/task/workflows/MissingRoutineTable.js +12 -8
  251. package/lib/components/task/workflows/WorkflowForm.js +61 -46
  252. package/lib/components/task/workflows/WorkflowTable.js +17 -14
  253. package/lib/helpers/SearchBuilder.js +73 -127
  254. package/lib/helpers/SearchBuilder.test.js +184 -175
  255. package/lib/helpers/index.js +116 -74
  256. package/lib/index.js +86 -38
  257. package/lib/reducer.js +11 -3
  258. package/lib/saga.js +42 -38
  259. package/lib/store.js +59 -35
  260. package/package.json +4 -29
  261. package/proxyhelper.js +105 -47
  262. package/assets/discussions/images/avi_128.png +0 -0
  263. package/assets/discussions/images/excel_128.png +0 -0
  264. package/assets/discussions/images/html_128.png +0 -0
  265. package/assets/discussions/images/illustrator_128.png +0 -0
  266. package/assets/discussions/images/indesign_128.png +0 -0
  267. package/assets/discussions/images/movie_128.png +0 -0
  268. package/assets/discussions/images/mpeg_128.png +0 -0
  269. package/assets/discussions/images/pdf_128.png +0 -0
  270. package/assets/discussions/images/photoshop_128.png +0 -0
  271. package/assets/discussions/images/powerpoint_128.png +0 -0
  272. package/assets/discussions/images/txt_128.png +0 -0
  273. package/assets/discussions/images/unknown_128.png +0 -0
  274. package/assets/discussions/images/word_128.png +0 -0
  275. package/assets/discussions/styles/_discussion.scss +0 -506
  276. package/lib/apis/discussions/index.js +0 -395
  277. package/lib/apis/socket/index.js +0 -77
  278. package/lib/apis/socket/socket.js +0 -350
  279. package/lib/apis/socket/socket.test.js +0 -90
  280. package/lib/apis/socket/timer.js +0 -45
  281. package/lib/apis/socket/timer.test.js +0 -51
  282. package/lib/apis/socket/topic.js +0 -185
  283. package/lib/apis/topics/index.js +0 -19
  284. package/lib/components/discussions/ChatInputForm.js +0 -424
  285. package/lib/components/discussions/DateBanner.js +0 -10
  286. package/lib/components/discussions/Discussion.js +0 -202
  287. package/lib/components/discussions/DiscussionForm.js +0 -227
  288. package/lib/components/discussions/InvitationForm.js +0 -107
  289. package/lib/components/discussions/MessageHistory.js +0 -110
  290. package/lib/components/discussions/MessagesByDate.js +0 -40
  291. package/lib/components/discussions/MessagesList.js +0 -30
  292. package/lib/components/discussions/MoreMessagesBanner.js +0 -26
  293. package/lib/components/discussions/ScrollHelper.js +0 -84
  294. package/lib/components/discussions/SystemMessage.js +0 -88
  295. package/lib/components/discussions/SystemMessageGroup.js +0 -15
  296. package/lib/components/discussions/UserMessage.js +0 -163
  297. package/lib/components/discussions/UserMessageGroup.js +0 -34
  298. package/lib/components/discussions/redux.js +0 -178
  299. package/lib/components/discussions/sagas.js +0 -500
  300. package/lib/helpers/discussions/canManage.js +0 -30
  301. package/lib/helpers/discussions/canManage.test.js +0 -69
  302. package/lib/helpers/discussions/generateSystemMessageContent.js +0 -131
  303. package/lib/helpers/discussions/generateSystemMessageContent.test.js +0 -450
  304. package/lib/models/discussions.js +0 -76
  305. package/lib/models/index.js +0 -1
@@ -1,500 +0,0 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
-
3
- var _marked = /*#__PURE__*/_regeneratorRuntime.mark(handleTopicChannel);
4
-
5
- import { eventChannel } from 'redux-saga';
6
- import { cancelled, race, take, put, call, cancel, fork, select, takeEvery } from 'redux-saga/effects';
7
- import { socket } from '../../apis/socket';
8
- import { fetchDiscussion, fetchMessages, sendMessage, updateMessage } from '../../apis/discussions';
9
- import { regSaga } from '../../store';
10
- import { ADD_DISCUSSION, JOIN_DISCUSSION, LEAVE_DISCUSSION, SET_DISCUSSION_ERROR, FETCH_MORE_MESSAGES, SEND_MESSAGE, SEND_MESSAGE_UPDATE, SET_MORE_MESSAGES, SET_TOPIC_STATUS, UPDATE_PRESENCE, UPDATE_DISCUSSION, ADD_MESSAGE, MESSAGE_UPDATE, REMOVE_MESSAGE, ADD_PARTICIPANT, REMOVE_PARTICIPANT, UPDATE_PARTICIPANT, ADD_INVITATION, REMOVE_INVITATION, UPDATE_INVITATION, UNSUBSCRIBED } from './redux';
11
- export function registerTopicChannel(topic) {
12
- return eventChannel(function (emit) {
13
- topic.onPresence(function (op, presenceData) {
14
- emit({
15
- event: 'presence',
16
- payload: {
17
- op: op,
18
- presenceData: presenceData
19
- }
20
- });
21
- }).onStatus(function (status) {
22
- return emit({
23
- event: 'status',
24
- payload: status
25
- });
26
- }).on('message:created', emit).on('message:updated', emit).on('message:deleted', emit).on('participant:created', emit).on('participant:updated', emit).on('participant:deleted', emit).on('invitation:created', emit).on('invitation:updated', emit).on('invitation:deleted', emit).on('relatedItem:created', emit).on('relatedItem:deleted', emit).on('discussion:updated', emit).on('discussion:deleted', emit).on('unsubscribed', emit);
27
- return function () {
28
- return topic.unsubscribe();
29
- };
30
- });
31
- }
32
- export function handleTopicChannel(channel, id, socket, topic) {
33
- var topicEvent;
34
- return _regeneratorRuntime.wrap(function handleTopicChannel$(_context) {
35
- while (1) {
36
- switch (_context.prev = _context.next) {
37
- case 0:
38
- _context.prev = 0;
39
-
40
- case 1:
41
- if (!true) {
42
- _context.next = 50;
43
- break;
44
- }
45
-
46
- _context.next = 4;
47
- return take(channel);
48
-
49
- case 4:
50
- topicEvent = _context.sent;
51
- _context.t0 = topicEvent.event;
52
- _context.next = _context.t0 === 'status' ? 8 : _context.t0 === 'presence' ? 11 : _context.t0 === 'discussion:updated' ? 14 : _context.t0 === 'message:created' ? 17 : _context.t0 === 'message:updated' ? 20 : _context.t0 === 'message:deleted' ? 23 : _context.t0 === 'participant:created' ? 26 : _context.t0 === 'participant:deleted' ? 29 : _context.t0 === 'participant:updated' ? 32 : _context.t0 === 'invitation:created' ? 35 : _context.t0 === 'invitation:deleted' ? 38 : _context.t0 === 'invitation:updated' ? 41 : _context.t0 === 'unsubscribed' ? 44 : 47;
53
- break;
54
-
55
- case 8:
56
- _context.next = 10;
57
- return put({
58
- type: SET_TOPIC_STATUS,
59
- payload: {
60
- id: id,
61
- status: topicEvent.payload
62
- }
63
- });
64
-
65
- case 10:
66
- return _context.abrupt("break", 48);
67
-
68
- case 11:
69
- _context.next = 13;
70
- return put({
71
- type: UPDATE_PRESENCE,
72
- payload: {
73
- id: id,
74
- presences: topic.presence()
75
- }
76
- });
77
-
78
- case 13:
79
- return _context.abrupt("break", 48);
80
-
81
- case 14:
82
- _context.next = 16;
83
- return put({
84
- type: UPDATE_DISCUSSION,
85
- payload: topicEvent.payload
86
- });
87
-
88
- case 16:
89
- return _context.abrupt("break", 48);
90
-
91
- case 17:
92
- _context.next = 19;
93
- return put({
94
- type: ADD_MESSAGE,
95
- payload: {
96
- id: id,
97
- message: topicEvent.payload
98
- }
99
- });
100
-
101
- case 19:
102
- return _context.abrupt("break", 48);
103
-
104
- case 20:
105
- _context.next = 22;
106
- return put({
107
- type: MESSAGE_UPDATE,
108
- payload: {
109
- id: id,
110
- message: topicEvent.payload
111
- }
112
- });
113
-
114
- case 22:
115
- return _context.abrupt("break", 48);
116
-
117
- case 23:
118
- _context.next = 25;
119
- return put({
120
- type: REMOVE_MESSAGE,
121
- payload: {
122
- id: id,
123
- message: topicEvent.payload
124
- }
125
- });
126
-
127
- case 25:
128
- return _context.abrupt("break", 48);
129
-
130
- case 26:
131
- _context.next = 28;
132
- return put({
133
- type: ADD_PARTICIPANT,
134
- payload: {
135
- id: id,
136
- participant: topicEvent.payload
137
- }
138
- });
139
-
140
- case 28:
141
- return _context.abrupt("break", 48);
142
-
143
- case 29:
144
- _context.next = 31;
145
- return put({
146
- type: REMOVE_PARTICIPANT,
147
- payload: {
148
- id: id,
149
- participant: topicEvent.payload
150
- }
151
- });
152
-
153
- case 31:
154
- return _context.abrupt("break", 48);
155
-
156
- case 32:
157
- _context.next = 34;
158
- return put({
159
- type: UPDATE_PARTICIPANT,
160
- payload: {
161
- id: id,
162
- participant: topicEvent.payload
163
- }
164
- });
165
-
166
- case 34:
167
- return _context.abrupt("break", 48);
168
-
169
- case 35:
170
- _context.next = 37;
171
- return put({
172
- type: ADD_INVITATION,
173
- payload: {
174
- id: id,
175
- invitation: topicEvent.payload
176
- }
177
- });
178
-
179
- case 37:
180
- return _context.abrupt("break", 48);
181
-
182
- case 38:
183
- _context.next = 40;
184
- return put({
185
- type: REMOVE_INVITATION,
186
- payload: {
187
- id: id,
188
- invitation: topicEvent.payload
189
- }
190
- });
191
-
192
- case 40:
193
- return _context.abrupt("break", 48);
194
-
195
- case 41:
196
- _context.next = 43;
197
- return put({
198
- type: UPDATE_INVITATION,
199
- payload: {
200
- id: id,
201
- invitation: topicEvent.payload
202
- }
203
- });
204
-
205
- case 43:
206
- return _context.abrupt("break", 48);
207
-
208
- case 44:
209
- _context.next = 46;
210
- return put({
211
- type: UNSUBSCRIBED,
212
- payload: {
213
- id: id
214
- }
215
- });
216
-
217
- case 46:
218
- return _context.abrupt("break", 48);
219
-
220
- case 47:
221
- console.log("Unhandled socket action '".concat(topicEvent.event, "' for ").concat(id, ": "), topicEvent);
222
-
223
- case 48:
224
- _context.next = 1;
225
- break;
226
-
227
- case 50:
228
- _context.prev = 50;
229
- _context.next = 53;
230
- return cancelled();
231
-
232
- case 53:
233
- if (!_context.sent) {
234
- _context.next = 56;
235
- break;
236
- }
237
-
238
- _context.next = 56;
239
- return channel.close();
240
-
241
- case 56:
242
- return _context.finish(50);
243
-
244
- case 57:
245
- case "end":
246
- return _context.stop();
247
- }
248
- }
249
- }, _marked, null, [[0,, 50, 57]]);
250
- }
251
-
252
- var selectMessageToken = function selectMessageToken(discussionId) {
253
- return function (state) {
254
- return state.getIn(['discussions', discussionId, 'nextPageToken']);
255
- };
256
- };
257
-
258
- regSaga(takeEvery(SEND_MESSAGE, /*#__PURE__*/_regeneratorRuntime.mark(function _callee(action) {
259
- return _regeneratorRuntime.wrap(function _callee$(_context2) {
260
- while (1) {
261
- switch (_context2.prev = _context2.next) {
262
- case 0:
263
- _context2.prev = 0;
264
- _context2.next = 3;
265
- return call(sendMessage, action.payload);
266
-
267
- case 3:
268
- _context2.next = 8;
269
- break;
270
-
271
- case 5:
272
- _context2.prev = 5;
273
- _context2.t0 = _context2["catch"](0);
274
- console.error(_context2.t0);
275
-
276
- case 8:
277
- case "end":
278
- return _context2.stop();
279
- }
280
- }
281
- }, _callee, null, [[0, 5]]);
282
- })));
283
- regSaga(takeEvery(SEND_MESSAGE_UPDATE, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(action) {
284
- return _regeneratorRuntime.wrap(function _callee2$(_context3) {
285
- while (1) {
286
- switch (_context3.prev = _context3.next) {
287
- case 0:
288
- _context3.prev = 0;
289
- _context3.next = 3;
290
- return call(updateMessage, action.payload);
291
-
292
- case 3:
293
- _context3.next = 8;
294
- break;
295
-
296
- case 5:
297
- _context3.prev = 5;
298
- _context3.t0 = _context3["catch"](0);
299
- console.error(_context3.t0);
300
-
301
- case 8:
302
- case "end":
303
- return _context3.stop();
304
- }
305
- }
306
- }, _callee2, null, [[0, 5]]);
307
- })));
308
- regSaga(takeEvery(FETCH_MORE_MESSAGES, /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(action) {
309
- var pageToken, _yield$call, messages, nextPageToken;
310
-
311
- return _regeneratorRuntime.wrap(function _callee3$(_context4) {
312
- while (1) {
313
- switch (_context4.prev = _context4.next) {
314
- case 0:
315
- _context4.prev = 0;
316
- _context4.next = 3;
317
- return select(selectMessageToken(action.payload));
318
-
319
- case 3:
320
- pageToken = _context4.sent;
321
- _context4.next = 6;
322
- return call(fetchMessages, action.payload, pageToken);
323
-
324
- case 6:
325
- _yield$call = _context4.sent;
326
- messages = _yield$call.messages;
327
- nextPageToken = _yield$call.nextPageToken;
328
- _context4.next = 11;
329
- return put({
330
- type: SET_MORE_MESSAGES,
331
- payload: {
332
- id: action.payload,
333
- messages: messages,
334
- nextPageToken: nextPageToken
335
- }
336
- });
337
-
338
- case 11:
339
- _context4.next = 16;
340
- break;
341
-
342
- case 13:
343
- _context4.prev = 13;
344
- _context4.t0 = _context4["catch"](0);
345
- console.error(_context4.t0);
346
-
347
- case 16:
348
- case "end":
349
- return _context4.stop();
350
- }
351
- }
352
- }, _callee3, null, [[0, 13]]);
353
- })));
354
- regSaga('WATCH_DISCUSSIONS_SOCKET', /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
355
- var discussionTasks, _loop;
356
-
357
- return _regeneratorRuntime.wrap(function _callee4$(_context6) {
358
- while (1) {
359
- switch (_context6.prev = _context6.next) {
360
- case 0:
361
- discussionTasks = [];
362
- _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() {
363
- var _yield$race, joinTopic, leaveTopic, topicId, topic, channel, handler, _yield$call2, discussion, error, discussionTask;
364
-
365
- return _regeneratorRuntime.wrap(function _loop$(_context5) {
366
- while (1) {
367
- switch (_context5.prev = _context5.next) {
368
- case 0:
369
- _context5.next = 2;
370
- return race({
371
- joinTopic: take(JOIN_DISCUSSION),
372
- leaveTopic: take(LEAVE_DISCUSSION)
373
- });
374
-
375
- case 2:
376
- _yield$race = _context5.sent;
377
- joinTopic = _yield$race.joinTopic;
378
- leaveTopic = _yield$race.leaveTopic;
379
-
380
- if (!joinTopic) {
381
- _context5.next = 33;
382
- break;
383
- }
384
-
385
- _context5.prev = 6;
386
- topicId = "discussions/discussion/".concat(joinTopic.payload.id);
387
- topic = socket.topic(topicId);
388
- channel = registerTopicChannel(topic);
389
- _context5.next = 12;
390
- return fork(handleTopicChannel, channel, joinTopic.payload.id, socket, topic);
391
-
392
- case 12:
393
- handler = _context5.sent;
394
- discussionTasks.push({
395
- id: joinTopic.payload.id,
396
- topic: topic,
397
- channel: channel,
398
- handler: handler
399
- });
400
- _context5.next = 16;
401
- return call(topic.subscribe.bind(topic), joinTopic.payload.invitationToken);
402
-
403
- case 16:
404
- _context5.next = 18;
405
- return call(fetchDiscussion, {
406
- id: joinTopic.payload.id
407
- });
408
-
409
- case 18:
410
- _yield$call2 = _context5.sent;
411
- discussion = _yield$call2.discussion;
412
- error = _yield$call2.error;
413
-
414
- if (!error) {
415
- _context5.next = 25;
416
- break;
417
- }
418
-
419
- console.error('Failed to join discussion!');
420
- _context5.next = 27;
421
- break;
422
-
423
- case 25:
424
- _context5.next = 27;
425
- return put({
426
- type: ADD_DISCUSSION,
427
- payload: discussion
428
- });
429
-
430
- case 27:
431
- _context5.next = 33;
432
- break;
433
-
434
- case 29:
435
- _context5.prev = 29;
436
- _context5.t0 = _context5["catch"](6);
437
- _context5.next = 33;
438
- return put({
439
- type: SET_DISCUSSION_ERROR,
440
- payload: {
441
- id: joinTopic.payload.id,
442
- error: _context5.t0.payload
443
- }
444
- });
445
-
446
- case 33:
447
- if (!leaveTopic) {
448
- _context5.next = 44;
449
- break;
450
- }
451
-
452
- _context5.prev = 34;
453
- // Fetch the task.
454
- discussionTask = discussionTasks.find(function (dt) {
455
- return dt.id === leaveTopic.payload;
456
- }); // Ask the channel to close the socket.
457
-
458
- _context5.next = 38;
459
- return cancel(discussionTask.handler);
460
-
461
- case 38:
462
- // Remove the task from the queue.
463
- discussionTasks = discussionTasks.filter(function (dt) {
464
- return dt.id !== discussionTask.id;
465
- });
466
- _context5.next = 44;
467
- break;
468
-
469
- case 41:
470
- _context5.prev = 41;
471
- _context5.t1 = _context5["catch"](34);
472
- console.warn('There was a problem leaving a discussion topic:', _context5.t1);
473
-
474
- case 44:
475
- case "end":
476
- return _context5.stop();
477
- }
478
- }
479
- }, _loop, null, [[6, 29], [34, 41]]);
480
- });
481
-
482
- case 2:
483
- if (!true) {
484
- _context6.next = 6;
485
- break;
486
- }
487
-
488
- return _context6.delegateYield(_loop(), "t0", 4);
489
-
490
- case 4:
491
- _context6.next = 2;
492
- break;
493
-
494
- case 6:
495
- case "end":
496
- return _context6.stop();
497
- }
498
- }
499
- }, _callee4);
500
- }));
@@ -1,30 +0,0 @@
1
- export default (function (discussion, profile) {
2
- if (!discussion) {
3
- return false;
4
- }
5
-
6
- if (profile.spaceAdmin) {
7
- return true;
8
- }
9
-
10
- if (discussion.owningUsers.map(function (u) {
11
- return u.username;
12
- }).includes(profile.username)) {
13
- return true;
14
- }
15
-
16
- var owningTeams = discussion.owningTeams.map(function (t) {
17
- return t.name;
18
- });
19
- var profileTeams = profile.memberships.map(function (m) {
20
- return m.team.name;
21
- });
22
-
23
- if (owningTeams.some(function (owningTeam) {
24
- return profileTeams.includes(owningTeam);
25
- })) {
26
- return true;
27
- }
28
-
29
- return false;
30
- });
@@ -1,69 +0,0 @@
1
- import { createDiscussion } from '../../models/discussions';
2
- import canManage from './canManage';
3
- var adminProfile = {
4
- username: 'admin@kinops.io',
5
- email: 'admin@kinops.io',
6
- memberships: [],
7
- spaceAdmin: true
8
- };
9
- var userProfile = {
10
- username: 'user@kinops.io',
11
- email: 'user@kinops.io',
12
- memberships: [{
13
- team: {
14
- name: 'IT'
15
- }
16
- }, {
17
- team: {
18
- name: 'Support'
19
- }
20
- }, {
21
- team: {
22
- name: 'Fulfillment'
23
- }
24
- }]
25
- };
26
- describe('canManage', function () {
27
- it('returns true if user is a space admin', function () {
28
- var discussion = createDiscussion({
29
- messagesPage: {
30
- messages: []
31
- }
32
- });
33
- expect(canManage(discussion, adminProfile)).toBe(true);
34
- });
35
- it('returns true if user is included in the owningUsers', function () {
36
- var discussion = createDiscussion({
37
- messagesPage: {
38
- messages: []
39
- },
40
- owningUsers: [{
41
- username: 'alex@kinops.io'
42
- }, {
43
- username: 'user@kinops.io'
44
- }]
45
- });
46
- expect(canManage(discussion, userProfile)).toBe(true);
47
- });
48
- it('returns true if user is a member of one of the owningTeams', function () {
49
- var discussion = createDiscussion({
50
- messagesPage: {
51
- messages: []
52
- },
53
- owningTeams: [{
54
- name: 'Admins'
55
- }, {
56
- name: 'Support'
57
- }]
58
- });
59
- expect(canManage(discussion, userProfile)).toBe(true);
60
- });
61
- it('returns false if none of the above are true', function () {
62
- var discussion = createDiscussion({
63
- messagesPage: {
64
- messages: []
65
- }
66
- });
67
- expect(canManage(discussion, userProfile)).toBe(false);
68
- });
69
- });