@tuki-io/tuki-widgets 0.0.72 → 0.0.74
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.
- package/.editorconfig +16 -0
- package/.hintrc +14 -0
- package/.vscode/extensions.json +4 -0
- package/.vscode/launch.json +20 -0
- package/.vscode/tasks.json +42 -0
- package/README.md +25 -24
- package/angular.json +141 -0
- package/package.json +42 -7
- package/projects/tuki/widgets/README.md +24 -0
- package/projects/tuki/widgets/di2mt/api/api.endpoints.ts +26 -0
- package/projects/tuki/widgets/di2mt/assets/icons/details_d_icon.svg +3 -0
- package/{di2mt → projects/tuki/widgets/di2mt}/public-api.ts +1 -0
- package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/summary-card/summary-card.component.html +2 -2
- package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/summary-card/summary-card.component.scss +4 -1
- package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/table-filters/table-filters.component.html +3 -3
- package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.scss +244 -0
- package/{user-device-manage/src → projects/tuki/widgets/di2mt/shared/constants}/app.constants.ts +96 -96
- package/{di2mt → projects/tuki/widgets/di2mt}/shared/types/constants.ts +2 -1
- package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.html +3 -0
- package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.scss +37 -0
- package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.ts +40 -0
- package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +158 -0
- package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +430 -0
- package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +362 -0
- package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.module.ts +33 -0
- package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.service.ts +102 -0
- package/projects/tuki/widgets/di2mt/widgets/site-upgrade/types/user-upgrade.ts +22 -0
- package/{di2mt → projects/tuki/widgets/di2mt}/widgets/user-upgrade/types/user-upgrade.ts +2 -1
- package/{di2mt → projects/tuki/widgets/di2mt}/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.html +68 -13
- package/{di2mt → projects/tuki/widgets/di2mt}/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.scss +73 -3
- package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +313 -0
- package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.module.ts +34 -0
- package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.service.ts +79 -0
- package/{karma.conf.js → projects/tuki/widgets/karma.conf.js} +44 -44
- package/projects/tuki/widgets/package.json +13 -0
- package/{src → projects/tuki/widgets/src}/lib/widgets.component.spec.ts +23 -23
- package/{src → projects/tuki/widgets/src}/lib/widgets.component.ts +20 -20
- package/{src → projects/tuki/widgets/src}/lib/widgets.module.ts +16 -16
- package/{src → projects/tuki/widgets/src}/lib/widgets.service.spec.ts +16 -16
- package/{src → projects/tuki/widgets/src}/lib/widgets.service.ts +9 -9
- package/{src → projects/tuki/widgets/src}/public-api.ts +7 -7
- package/{src → projects/tuki/widgets/src}/test.ts +27 -27
- package/{users-list/src/styles → projects/tuki/widgets}/styles.scss +572 -572
- package/{tsconfig.lib.json → projects/tuki/widgets/tsconfig.lib.json} +36 -36
- package/{tsconfig.lib.prod.json → projects/tuki/widgets/tsconfig.lib.prod.json} +10 -10
- package/{tsconfig.spec.json → projects/tuki/widgets/tsconfig.spec.json} +17 -17
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/public-api.ts +8 -8
- package/projects/tuki/widgets/user-device-manage/src/app.constants.ts +96 -0
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/arrow-left.svg +5 -5
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/arrow-right.svg +5 -5
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/close_icon_x.svg +3 -3
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/delete_icon.svg +5 -5
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/dragger-vertical-icon.svg +3 -3
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/vartical_divider_icon.svg +3 -3
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/device.ts +292 -292
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/line-association-interface.ts +50 -50
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/line-association.ts +177 -177
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/classes/line-call-info-display.ts +21 -21
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/line-directory.ts +41 -41
- package/{users-list → projects/tuki/widgets/user-device-manage}/src/classes/line.ts +144 -144
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/classes/notification.ts +40 -39
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/recording-options.ts +6 -6
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/simplified-user.ts +169 -169
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/site-defaults.ts +167 -167
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/translation-pattern.ts +50 -50
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/types.ts +19 -19
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/classes/user-interface.ts +225 -225
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/classes/user.ts +8 -8
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/common-functions.ts +16 -16
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/confirm-dialog/info-dialog.component.html +14 -14
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/confirm-dialog/info-dialog.component.scss +80 -80
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/confirm-dialog/info-dialog.component.ts +35 -35
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/associated-line-row/associated-line-row.component.html +21 -21
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/associated-line-row/associated-line-row.component.scss +97 -97
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/associated-line-row/associated-line-row.component.ts +28 -28
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +5 -5
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.scss +19 -19
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +13 -13
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +6 -6
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +4 -4
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +63 -63
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line.component.html +241 -241
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line.component.scss +500 -500
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line.component.ts +194 -194
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/device-list/device-list.component.html +27 -27
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-list/device-list.component.scss +131 -131
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-list/device-list.component.ts +25 -25
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-manage-widget.component.html +209 -209
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-manage-widget.component.scss +502 -502
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-manage-widget.component.ts +354 -354
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/environments/environment.prod.ts +9 -9
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/environments/environment.ts +10 -10
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/interseptors/auth.interceptor.ts +35 -35
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/lazy-loading-select/lazy-loading-select.component.html +50 -50
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/lazy-loading-select/lazy-loading-select.component.scss +8 -8
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/lazy-loading-select/lazy-loading-select.component.ts +81 -81
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/material.module.ts +87 -87
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/notifications/notification.component.html +33 -33
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/notifications/notification.component.scss +84 -84
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/notifications/notification.component.ts +46 -46
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/removeKynFromIBM.service.ts +25 -25
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/api.service.ts +87 -87
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/common-functions.ts +17 -17
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/device.service.ts +95 -95
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/dns.service.ts +111 -111
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/line.service.ts +89 -89
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/notification.service.ts +68 -68
- package/{users-list → projects/tuki/widgets/user-device-manage}/src/services/removeKynFromIBM.service.ts +25 -25
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/site-settings.service.ts +82 -82
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/sorting-utils.service.ts +203 -203
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/user.service.ts +283 -283
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/utils.service.ts +87 -87
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/validation.service.ts +829 -829
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/styles/_variables.scss +90 -90
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/styles/form.scss +231 -231
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/styles/icons.scss +32 -32
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/styles/styles.scss +110 -110
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/styles/tables.scss +30 -30
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/user-device-manage.module.ts +73 -73
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/utils/app-loader/app-loader.component.html +6 -6
- package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/utils/app-loader/app-loader.component.scss +11 -11
- package/{user-manage → projects/tuki/widgets/user-device-manage}/src/utils/app-loader/app-loader.ts +13 -13
- package/{user-manage → projects/tuki/widgets/user-manage}/public-api.ts +6 -6
- package/{user-manage → projects/tuki/widgets/user-manage}/src/app.constants.ts +50 -50
- package/{user-manage → projects/tuki/widgets/user-manage}/src/assets/icons/arrow-left.svg +5 -5
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/assets/icons/arrow-right.svg +5 -5
- package/{user-manage → projects/tuki/widgets/user-manage}/src/assets/icons/delete_icon.svg +5 -5
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/assets/icons/dragger-vertical-icon.svg +3 -3
- package/{user-manage → projects/tuki/widgets/user-manage}/src/assets/icons/vartical_divider_icon.svg +3 -3
- package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/device.ts +232 -232
- package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/line-association-interface.ts +43 -43
- package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/line-association.ts +161 -161
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/classes/line-call-info-display.ts +21 -21
- package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/line-directory.ts +42 -42
- package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/line.ts +144 -144
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/classes/notification.ts +39 -40
- package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/pagination.ts +1 -1
- package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/recording-options.ts +6 -6
- package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/simplified-user.ts +165 -165
- package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/table-data.ts +6 -6
- package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/translation-pattern.ts +49 -49
- package/{users-list → projects/tuki/widgets/user-manage}/src/classes/user-interface.ts +225 -225
- package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/user-list.ts +42 -42
- package/{users-list → projects/tuki/widgets/user-manage}/src/classes/user.ts +8 -8
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/common-functions.ts +16 -16
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/device-list/device-list.component.html +27 -27
- package/{user-manage → projects/tuki/widgets/user-manage}/src/device-list/device-list.component.scss +131 -131
- package/{user-manage → projects/tuki/widgets/user-manage}/src/device-list/device-list.component.ts +25 -25
- package/{user-manage → projects/tuki/widgets/user-manage}/src/environments/environment.prod.ts +9 -9
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/environments/environment.ts +10 -10
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/interseptors/auth.interceptor.ts +35 -35
- package/{user-manage → projects/tuki/widgets/user-manage}/src/lazy-loading-select/lazy-loading-select.component.html +50 -50
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/lazy-loading-select/lazy-loading-select.component.scss +8 -8
- package/{user-manage → projects/tuki/widgets/user-manage}/src/lazy-loading-select/lazy-loading-select.component.ts +81 -81
- package/{user-manage → projects/tuki/widgets/user-manage}/src/material.module.ts +85 -85
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/notifications/notification.component.html +33 -33
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/notifications/notification.component.scss +84 -84
- package/{user-manage → projects/tuki/widgets/user-manage}/src/notifications/notification.component.ts +46 -46
- package/{user-manage → projects/tuki/widgets/user-manage}/src/removeKynFromIBM.service.ts +25 -25
- package/{user-manage → projects/tuki/widgets/user-manage}/src/services/api.service.ts +90 -90
- package/{user-manage → projects/tuki/widgets/user-manage}/src/services/dns.service.ts +116 -116
- package/{user-manage → projects/tuki/widgets/user-manage}/src/services/line.service.ts +31 -31
- package/{user-manage → projects/tuki/widgets/user-manage}/src/services/notification.service.ts +68 -68
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/services/removeKynFromIBM.service.ts +25 -25
- package/{user-manage → projects/tuki/widgets/user-manage}/src/services/site-settings.service.ts +35 -35
- package/{user-manage → projects/tuki/widgets/user-manage}/src/services/sorting-utils.service.ts +203 -203
- package/{user-manage → projects/tuki/widgets/user-manage}/src/services/user.service.ts +242 -242
- package/{user-manage → projects/tuki/widgets/user-manage}/src/services/users-search.service.ts +59 -59
- package/{users-list/src/utils → projects/tuki/widgets/user-manage/src/services}/utils.service.ts +71 -71
- package/{user-manage → projects/tuki/widgets/user-manage}/src/styles/_variables.scss +90 -90
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/styles/form.scss +231 -231
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/styles/icons.scss +32 -32
- package/{user-manage → projects/tuki/widgets/user-manage}/src/styles/styles.scss +110 -110
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/styles/tables.scss +30 -30
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-calling/user-calling-extension/user-calling-extension.component.html +10 -10
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-calling/user-calling-extension/user-calling-extension.component.scss +429 -429
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-calling/user-calling-extension/user-calling-extension.component.ts +63 -63
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-calling/user-calling.component.html +32 -32
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-calling/user-calling.component.scss +444 -444
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-calling/user-calling.component.ts +89 -89
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-details/notification.service.ts +68 -68
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-info/user-info.component.html +29 -29
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-info/user-info.component.scss +64 -64
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-info/user-info.component.ts +19 -19
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-manage-widget.component.html +290 -290
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-manage-widget.component.scss +463 -463
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-manage-widget.component.ts +212 -212
- package/{user-manage → projects/tuki/widgets/user-manage}/src/user-manage.module.ts +63 -63
- package/{user-manage → projects/tuki/widgets/user-manage}/src/utils/app-loader/app-loader.component.html +6 -6
- package/{user-manage → projects/tuki/widgets/user-manage}/src/utils/app-loader/app-loader.component.scss +11 -11
- package/{user-device-manage → projects/tuki/widgets/user-manage}/src/utils/app-loader/app-loader.ts +13 -13
- package/{users-list → projects/tuki/widgets/user-manage}/src/utils/pagination/pagination.component.html +26 -26
- package/{user-manage → projects/tuki/widgets/user-manage}/src/utils/pagination/pagination.component.scss +41 -41
- package/{user-manage → projects/tuki/widgets/user-manage}/src/utils/pagination/pagination.component.ts +41 -41
- package/{users-list → projects/tuki/widgets/users-list}/public-api.ts +8 -8
- package/{users-list → projects/tuki/widgets/users-list}/src/app.constants.ts +54 -54
- package/{users-list → projects/tuki/widgets/users-list}/src/assets/icons/close_icon_modal.svg +3 -3
- package/{users-list → projects/tuki/widgets/users-list}/src/assets/icons/move_user_to_another_location.svg +14 -14
- package/{users-list → projects/tuki/widgets/users-list}/src/assets/icons/white-close-icon.svg +3 -3
- package/{users-list → projects/tuki/widgets/users-list}/src/classes/app-location.ts +36 -36
- package/{users-list → projects/tuki/widgets/users-list}/src/classes/device.ts +225 -225
- package/{user-device-manage → projects/tuki/widgets/users-list}/src/classes/line.ts +144 -144
- package/{users-list → projects/tuki/widgets/users-list}/src/classes/move-user.ts +225 -225
- package/{users-list → projects/tuki/widgets/users-list}/src/classes/notification.ts +38 -38
- package/{users-list → projects/tuki/widgets/users-list}/src/classes/pagination.ts +18 -18
- package/{users-list → projects/tuki/widgets/users-list}/src/classes/simlified-user.ts +74 -74
- package/{users-list → projects/tuki/widgets/users-list}/src/classes/table-data.ts +6 -6
- package/{user-device-manage → projects/tuki/widgets/users-list}/src/classes/user-interface.ts +225 -225
- package/{users-list → projects/tuki/widgets/users-list}/src/classes/user-list.ts +47 -47
- package/{user-device-manage → projects/tuki/widgets/users-list}/src/classes/user.ts +8 -8
- package/{users-list → projects/tuki/widgets/users-list}/src/material.module.ts +94 -94
- package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.html +37 -37
- package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.scss +129 -129
- package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.ts +46 -46
- package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.html +31 -31
- package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.scss +20 -20
- package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.ts +26 -26
- package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +222 -222
- package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +239 -239
- package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +206 -206
- package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-wizard.component.html +12 -12
- package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-wizard.component.scss +41 -41
- package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-wizard.component.ts +36 -36
- package/{users-list → projects/tuki/widgets/users-list}/src/services/api-webex.service.ts +14 -14
- package/{users-list → projects/tuki/widgets/users-list}/src/services/api.service.ts +90 -90
- package/{users-list → projects/tuki/widgets/users-list}/src/services/dns.service.ts +128 -128
- package/{users-list → projects/tuki/widgets/users-list}/src/services/events-communication.service.ts +11 -11
- package/{users-list → projects/tuki/widgets/users-list}/src/services/move-user.service.ts +59 -59
- package/{users-list → projects/tuki/widgets/users-list}/src/services/notification.service.ts +68 -68
- package/{user-manage → projects/tuki/widgets/users-list}/src/services/removeKynFromIBM.service.ts +25 -25
- package/{users-list → projects/tuki/widgets/users-list}/src/services/site-settings.service.ts +26 -26
- package/{users-list → projects/tuki/widgets/users-list}/src/services/user.service.ts +159 -159
- package/{users-list → projects/tuki/widgets/users-list}/src/services/users-search.service.ts +139 -137
- package/{styles.scss → projects/tuki/widgets/users-list/src/styles/styles.scss} +572 -572
- package/{users-list → projects/tuki/widgets/users-list}/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +15 -15
- package/{users-list → projects/tuki/widgets/users-list}/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +103 -103
- package/{users-list → projects/tuki/widgets/users-list}/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +35 -35
- package/{users-list → projects/tuki/widgets/users-list}/src/users-list.component.html +86 -86
- package/{users-list → projects/tuki/widgets/users-list}/src/users-list.component.scss +572 -572
- package/{users-list → projects/tuki/widgets/users-list}/src/users-list.component.ts +312 -312
- package/{users-list → projects/tuki/widgets/users-list}/src/users-list.module.ts +63 -63
- package/{users-list → projects/tuki/widgets/users-list}/src/utils/app-loader/app-loader.component.html +6 -6
- package/{users-list → projects/tuki/widgets/users-list}/src/utils/app-loader/app-loader.component.scss +11 -11
- package/{users-list → projects/tuki/widgets/users-list}/src/utils/app-loader/app-loader.ts +13 -13
- package/{users-list → projects/tuki/widgets/users-list}/src/utils/common-functions.ts +32 -32
- package/{users-list → projects/tuki/widgets/users-list}/src/utils/notifications/notification.component.html +33 -33
- package/{users-list → projects/tuki/widgets/users-list}/src/utils/notifications/notification.component.scss +84 -84
- package/{users-list → projects/tuki/widgets/users-list}/src/utils/notifications/notification.component.ts +46 -46
- package/{user-manage → projects/tuki/widgets/users-list}/src/utils/pagination/pagination.component.html +26 -26
- package/{users-list → projects/tuki/widgets/users-list}/src/utils/pagination/pagination.component.scss +41 -41
- package/{users-list → projects/tuki/widgets/users-list}/src/utils/pagination/pagination.component.ts +41 -41
- package/{user-manage/src/services → projects/tuki/widgets/users-list/src/utils}/utils.service.ts +71 -71
- package/projects/widgets-playground/src/app/app.component.html +109 -0
- package/projects/widgets-playground/src/app/app.component.scss +15 -0
- package/projects/widgets-playground/src/app/app.component.spec.ts +31 -0
- package/projects/widgets-playground/src/app/app.component.ts +31 -0
- package/projects/widgets-playground/src/app/app.module.ts +43 -0
- package/projects/widgets-playground/src/assets/.gitkeep +0 -0
- package/projects/widgets-playground/src/assets/icons/already_upgraded.png +0 -0
- package/projects/widgets-playground/src/assets/icons/check2_icon.png +0 -0
- package/projects/widgets-playground/src/assets/icons/check_icon.png +0 -0
- package/projects/widgets-playground/src/assets/icons/expand_icon.png +0 -0
- package/projects/widgets-playground/src/assets/icons/issue_icon.png +0 -0
- package/projects/widgets-playground/src/assets/icons/menu_icon.png +0 -0
- package/projects/widgets-playground/src/assets/icons/ready_to_upgrade.png +0 -0
- package/projects/widgets-playground/src/assets/icons/search_icon.png +0 -0
- package/projects/widgets-playground/src/assets/icons/site.png +0 -0
- package/projects/widgets-playground/src/assets/icons/user.png +0 -0
- package/projects/widgets-playground/src/assets/icons/warning_icon.png +0 -0
- package/projects/widgets-playground/src/favicon.ico +0 -0
- package/projects/widgets-playground/src/index.html +13 -0
- package/projects/widgets-playground/src/main.ts +7 -0
- package/projects/widgets-playground/src/styles.scss +23 -0
- package/projects/widgets-playground/tsconfig.app.json +14 -0
- package/projects/widgets-playground/tsconfig.spec.json +14 -0
- package/proxy.conf.js +23 -0
- package/tsconfig.json +46 -0
- package/di2mt/api/api.endpoints.ts +0 -20
- package/di2mt/shared/components/table-filters/table-filters.component.scss +0 -52
- package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +0 -92
- package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +0 -187
- package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +0 -205
- package/di2mt/widgets/site-upgrade/site-upgrade.module.ts +0 -24
- package/di2mt/widgets/site-upgrade/site-upgrade.service.ts +0 -45
- package/di2mt/widgets/site-upgrade/types/user-upgrade.ts +0 -15
- package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +0 -218
- package/di2mt/widgets/user-upgrade/user-upgrade.module.ts +0 -24
- package/di2mt/widgets/user-upgrade/user-upgrade.service.ts +0 -73
- /package/{di2mt → projects/tuki/widgets/di2mt}/README.md +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/already_upgraded.png +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/check2_icon.png +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/check_icon.png +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/expand_icon.png +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/issue_icon.png +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/menu_icon.png +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/ready_to_upgrade.png +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/search_icon.png +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/site.png +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/user.png +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/warning_icon.png +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/ng-package.json +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/card/card.component.html +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/card/card.component.scss +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/card/card.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/chart-card/chart-card.component.html +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/chart-card/chart-card.component.scss +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/chart-card/chart-card.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/index.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/stat-card/stat-card.component.html +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/stat-card/stat-card.component.scss +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/stat-card/stat-card.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/status-list-card/status-list-card.component.html +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/status-list-card/status-list-card.component.scss +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/status-list-card/status-list-card.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/summary-card/summary-card.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/table-filters/table-filters.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/material.module.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/services/api.service.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/shared.module.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/types/data-table.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/shared/types/table/filter.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/styles/tuki-widgets-theme.scss +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/styles/variables.scss +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.html +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.scss +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.html +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.scss +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/types/upgrade-overview.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/upgrade-overview.module.ts +0 -0
- /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/upgrade-overview.service.ts +0 -0
- /package/{ng-package.json → projects/tuki/widgets/ng-package.json} +0 -0
- /package/{user-device-manage → projects/tuki/widgets/user-device-manage}/ng-package.json +0 -0
- /package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/icon_user.svg +0 -0
- /package/{user-manage → projects/tuki/widgets/user-manage}/ng-package.json +0 -0
- /package/{user-manage → projects/tuki/widgets/user-manage}/src/assets/icons/icon_user.svg +0 -0
- /package/{users-list → projects/tuki/widgets/users-list}/ng-package.json +0 -0
- /package/{users-list → projects/tuki/widgets/users-list}/src/assets/icons/icon_user.svg +0 -0
- /package/{users-list → projects/tuki/widgets/users-list}/src/users-list.component.css +0 -0
- /package/{users-list → projects/tuki/widgets/users-list}/src/users-list.component.css.map +0 -0
- /package/{users-list → projects/tuki/widgets/users-list}/src/utils/app-loader/app-loader.component.css +0 -0
- /package/{users-list → projects/tuki/widgets/users-list}/src/utils/app-loader/app-loader.component.css.map +0 -0
- /package/{users-list → projects/tuki/widgets/users-list}/src/utils/pagination/pagination.component.css +0 -0
- /package/{users-list → projects/tuki/widgets/users-list}/src/utils/pagination/pagination.component.css.map +0 -0
|
@@ -1,312 +1,312 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';
|
|
2
|
-
import { FormGroup } from '@angular/forms';
|
|
3
|
-
import { UserService } from './services/user.service';
|
|
4
|
-
import { APIService } from "./services/api.service";
|
|
5
|
-
import { NotificationService } from './services/notification.service';
|
|
6
|
-
import { Subscription } from 'rxjs';
|
|
7
|
-
import { UsersSearchService } from './services/users-search.service';
|
|
8
|
-
import { ListUser } from './classes/user-list';
|
|
9
|
-
import { MatTableDataSource } from '@angular/material/table';
|
|
10
|
-
import { PageEvent } from '@angular/material/paginator';
|
|
11
|
-
import { ApiWebexService } from './services/api-webex.service';
|
|
12
|
-
import { MAX_INTEGER } from './app.constants';
|
|
13
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
14
|
-
import { UserListConfirmDialogComponent } from './user-list-confirm-dialog/user-list-confirm-dialog.component';
|
|
15
|
-
|
|
16
|
-
const DISPLAYED_COLS = ['user-icon', 'name', 'email', 'status', 'role', 'actions'];
|
|
17
|
-
const LOCAL_STORAGE = {
|
|
18
|
-
USER_IN_MIGRATION: 'userIdInMigration'
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
@Component({
|
|
22
|
-
selector: 'app-users-list',
|
|
23
|
-
templateUrl: './users-list.component.html',
|
|
24
|
-
styleUrls: ['./users-list.component.scss']
|
|
25
|
-
})
|
|
26
|
-
export class UsersListComponent implements OnInit, OnDestroy {
|
|
27
|
-
@Input() token!: string;
|
|
28
|
-
@Input() customerId!: number;
|
|
29
|
-
@Input() siteId!: number;
|
|
30
|
-
@Output() openUser = new EventEmitter();
|
|
31
|
-
@Output() userMoved = new EventEmitter();
|
|
32
|
-
@Output() switchToWizard = new EventEmitter();
|
|
33
|
-
@Input() host!: string;
|
|
34
|
-
|
|
35
|
-
dataPending!: boolean;
|
|
36
|
-
moveInProgressUserId!: string;
|
|
37
|
-
users!: ListUser[];
|
|
38
|
-
dataSource!: MatTableDataSource<ListUser>;
|
|
39
|
-
displayedColumns = DISPLAYED_COLS;
|
|
40
|
-
moveUser: any;
|
|
41
|
-
moveUserIndex: any;
|
|
42
|
-
showMoveUserWizard = false;
|
|
43
|
-
moveUserPending = false;
|
|
44
|
-
private subscriptions: Subscription[] = [];
|
|
45
|
-
|
|
46
|
-
get form(): FormGroup {
|
|
47
|
-
return this.userService?.user?.form;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
constructor(
|
|
51
|
-
public userService: UserService,
|
|
52
|
-
private apiService: APIService,
|
|
53
|
-
private apiWebexService: ApiWebexService,
|
|
54
|
-
private notifications: NotificationService,
|
|
55
|
-
public usersSearchService: UsersSearchService,
|
|
56
|
-
private dialog: MatDialog
|
|
57
|
-
) {
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
ngOnInit(): void {
|
|
62
|
-
this.usersSearchService.setDefaultValues();
|
|
63
|
-
this.usersSearchService.customerId = this.customerId;
|
|
64
|
-
this.usersSearchService.siteId = this.siteId;
|
|
65
|
-
this.apiService.token = this.token;
|
|
66
|
-
this.apiWebexService.token = this.token;
|
|
67
|
-
this.apiService.apiUrl = this.host + '/dcp';
|
|
68
|
-
this.apiWebexService.apiUrl = this.host + '/webex';
|
|
69
|
-
|
|
70
|
-
this.getMigratedUsers();
|
|
71
|
-
const subscription = this.usersSearchService.foundUsers$
|
|
72
|
-
.subscribe((users: ListUser[]) => {
|
|
73
|
-
this.initializeDataSource(users);
|
|
74
|
-
});
|
|
75
|
-
this.subscriptions.push(subscription);
|
|
76
|
-
|
|
77
|
-
console.log('users list paris 7773');
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
ngOnDestroy() {
|
|
81
|
-
if (this.subscriptions?.length) {
|
|
82
|
-
this.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
pageNumberChangeEvent(perPageNumber: number): void {
|
|
87
|
-
this.usersSearchService.pageSize = perPageNumber;
|
|
88
|
-
this.usersSearchService.pageIndex = 0;
|
|
89
|
-
this.runSearch();
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
closeMoveUserWizard(afterUserMove?: boolean): void {
|
|
93
|
-
this.moveUser = null;
|
|
94
|
-
this.moveUserIndex = null;
|
|
95
|
-
localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
96
|
-
this.showMoveUserWizard = false;
|
|
97
|
-
this.switchToWizard.emit(false);
|
|
98
|
-
if (afterUserMove) {
|
|
99
|
-
this.getMigratedUsers();
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
pageEvent(event: PageEvent): void {
|
|
104
|
-
this.usersSearchService.pageSize = event.pageSize;
|
|
105
|
-
this.usersSearchService.pageIndex = event.pageIndex;
|
|
106
|
-
this.runSearch();
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
onUserClick(user: ListUser): void {
|
|
110
|
-
this.openUser.emit(user);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
moveUserToMT(user: ListUser, index: number): void {
|
|
114
|
-
|
|
115
|
-
if (user && user.siteId && user.userid) {
|
|
116
|
-
this.moveUserPending = true;
|
|
117
|
-
this.moveInProgressUserId = user.userid;
|
|
118
|
-
this.setStatusToUser(index, 'In Progress');
|
|
119
|
-
localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, user.userid);
|
|
120
|
-
|
|
121
|
-
const subscription = this.userService.moveUserToMT(this.customerId, user)
|
|
122
|
-
.subscribe(() => {
|
|
123
|
-
this.moveUser = null;
|
|
124
|
-
this.moveUserIndex = null;
|
|
125
|
-
this.getMigratedUsers();
|
|
126
|
-
}, () => {
|
|
127
|
-
this.removeUserInMigrationProgress();
|
|
128
|
-
this.setStatusToUser(index, 'Migration Error');
|
|
129
|
-
});
|
|
130
|
-
this.subscriptions.push(subscription);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
moveUserToDI(user: ListUser, index: number): void {
|
|
135
|
-
|
|
136
|
-
if (user && user.siteId && user.webexUUID) {
|
|
137
|
-
this.moveUserPending = true;
|
|
138
|
-
this.moveInProgressUserId = user.userid;
|
|
139
|
-
this.users[index].status = 'In Progress'
|
|
140
|
-
localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, user.userid);
|
|
141
|
-
|
|
142
|
-
const subscription = this.userService.moveUserToDI(this.customerId, user)
|
|
143
|
-
.subscribe(() => {
|
|
144
|
-
this.removeUserInMigrationProgress();
|
|
145
|
-
this.setStatusToUser(index, 'Active');
|
|
146
|
-
this.users[index].webexUUID = '';
|
|
147
|
-
if (this.usersSearchService.migratedUsers && this.usersSearchService.migratedUsers.length) {
|
|
148
|
-
this.usersSearchService.migratedUsers = this.usersSearchService.migratedUsers.filter((migratedUser: any) => migratedUser.userid !== user.email);
|
|
149
|
-
}
|
|
150
|
-
}, () => {
|
|
151
|
-
this.removeUserInMigrationProgress();
|
|
152
|
-
this.setStatusToUser(index, 'Migration Error');
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
private removeUserInMigrationProgress(): void {
|
|
158
|
-
localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
159
|
-
this.moveInProgressUserId = '';
|
|
160
|
-
this.moveUserPending = false;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
private setStatusToUser(index: number, status: string): void {
|
|
164
|
-
if (this.users && this.users[index]) {
|
|
165
|
-
this.users[index].status = status;
|
|
166
|
-
if (status === 'Migrated') {
|
|
167
|
-
this.users[index].roleName = '';
|
|
168
|
-
this.users[index].isMigrated = true;
|
|
169
|
-
this.users[index].status = status;
|
|
170
|
-
} else {
|
|
171
|
-
this.users[index].roleName = 'Dedicated Instance Calling user';
|
|
172
|
-
this.users[index].isMigrated = false;
|
|
173
|
-
this.users[index].status = status;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
this.dataSource = new MatTableDataSource(this.users);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
private initializeDataSource(users: ListUser[]): void {
|
|
180
|
-
if(users?.length) {
|
|
181
|
-
// this.setRandomUserRole(users);
|
|
182
|
-
this.users = users;
|
|
183
|
-
this.setUserMigrationProgress();
|
|
184
|
-
this.usersSearchService.setMigratedPropToUsers(this.users);
|
|
185
|
-
this.dataSource = new MatTableDataSource(users);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
private setUserRole(): void {
|
|
190
|
-
if (this.users?.length) {
|
|
191
|
-
this.users.forEach(user => {
|
|
192
|
-
if (!user.isMigrated) {
|
|
193
|
-
user.roleName = 'Dedicated Instance Calling user';
|
|
194
|
-
}
|
|
195
|
-
})
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
private setRandomUserRole(users: ListUser[]): void {
|
|
200
|
-
const max = Math.round(this.usersSearchService.pageSize - this.usersSearchService.pageSize / 4);
|
|
201
|
-
const min = Math.round(this.usersSearchService.pageSize / 2);
|
|
202
|
-
const randomAmount = Math.round(Math.random() * (max - min) + min);
|
|
203
|
-
const indexes = this.getArrayOfRandomUserIndexes(randomAmount);
|
|
204
|
-
indexes.forEach(index => {
|
|
205
|
-
if (users[index]) {
|
|
206
|
-
users[index].roleName = 'Dedicated Instance Calling user'
|
|
207
|
-
}
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
private getArrayOfRandomUserIndexes(randomAmount: number): number[] {
|
|
212
|
-
const indexes = [];
|
|
213
|
-
while (randomAmount > 0) {
|
|
214
|
-
const index = Math.round(Math.random() * (this.usersSearchService.pageSize - 1));
|
|
215
|
-
indexes.push(index)
|
|
216
|
-
randomAmount--;
|
|
217
|
-
}
|
|
218
|
-
return indexes;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
private runSearch(): void {
|
|
222
|
-
this.dataPending = true;
|
|
223
|
-
this.usersSearchService.quickRegularUsersSearch()
|
|
224
|
-
.subscribe(() => {
|
|
225
|
-
this.dataPending = false;
|
|
226
|
-
}, () => {
|
|
227
|
-
this.dataPending = false;
|
|
228
|
-
this.notifications.error('The data can not be received');
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
private setUserMigrationProgress(): void {
|
|
233
|
-
const userIdInMigration = localStorage.getItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
234
|
-
if (userIdInMigration) {
|
|
235
|
-
const index = this.users.findIndex(user => user.userid === userIdInMigration);
|
|
236
|
-
this.moveInProgressUserId = index > -1 ? this.users[index].userid : '';
|
|
237
|
-
this.moveUserPending = index > -1;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
private getMigratedUsers(): void {
|
|
242
|
-
this.dataPending = true;
|
|
243
|
-
const searchParams = {
|
|
244
|
-
customerid: this.customerId,
|
|
245
|
-
siteid: this.siteId,
|
|
246
|
-
'cloud-only': 'true'
|
|
247
|
-
};
|
|
248
|
-
// this.usersSearchService.quickWebexUsersSearch(searchParams, true, MAX_INTEGER)
|
|
249
|
-
this.usersSearchService.getMigratedUsers(this.customerId)
|
|
250
|
-
// this.usersSearchService.getMigratedWebexUsers(this.customerId)
|
|
251
|
-
.subscribe(() => {
|
|
252
|
-
const userIdInMigration = localStorage.getItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
253
|
-
if (userIdInMigration && this.usersSearchService.migratedUsers.filter((migratedUser: any) => migratedUser.userid === userIdInMigration)) {
|
|
254
|
-
localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
255
|
-
}
|
|
256
|
-
this.runSearch();
|
|
257
|
-
}, () => {
|
|
258
|
-
this.dataPending = false;
|
|
259
|
-
this.notifications.error('The data can not be received');
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
onMoveUser(user: ListUser, index: number, type: string, title: string): void {
|
|
264
|
-
const dialogRef = this.dialog.open(UserListConfirmDialogComponent, {
|
|
265
|
-
data: {
|
|
266
|
-
title: `Move user ${user.userid} to ${title}?`,
|
|
267
|
-
message: `<p>By moving out of Dedicated Instance, you may need to reassign directory numbers and lose calling services.</p>
|
|
268
|
-
<p>Are you sure you want to continue?</p>`,
|
|
269
|
-
confirmButtonText: 'Yes, continue'
|
|
270
|
-
}
|
|
271
|
-
});
|
|
272
|
-
dialogRef.beforeClosed().subscribe((result: any) => {
|
|
273
|
-
if (result) {
|
|
274
|
-
switch (type) {
|
|
275
|
-
case 'QuickMove':
|
|
276
|
-
this.moveUserToMT(user, index);
|
|
277
|
-
break;
|
|
278
|
-
case 'MT':
|
|
279
|
-
this.moveUser = user;
|
|
280
|
-
this.moveUserIndex = index;
|
|
281
|
-
this.showMoveUserWizard = true;
|
|
282
|
-
this.switchToWizard.emit(true);
|
|
283
|
-
break;
|
|
284
|
-
case 'DI':
|
|
285
|
-
this.moveUserToDI(user, index);
|
|
286
|
-
break;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
}
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
runMoveUserToMT(): void {
|
|
294
|
-
if (this.moveUser && this.moveUser.siteId && this.moveUser.userid) {
|
|
295
|
-
this.userService.moveUserPending = true;
|
|
296
|
-
this.moveInProgressUserId = this.moveUser.userid;
|
|
297
|
-
this.setStatusToUser(this.moveUserIndex, 'In Progress');
|
|
298
|
-
localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, this.moveUser.userid);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
const subscription = this.userService.moveUserToMT(this.customerId, this.moveUser)
|
|
302
|
-
.subscribe(() => {
|
|
303
|
-
this.userService.userMoved$.next(true);
|
|
304
|
-
}, () => {
|
|
305
|
-
this.removeUserInMigrationProgress();
|
|
306
|
-
this.setStatusToUser(this.moveUserIndex, 'Migration Error');
|
|
307
|
-
});
|
|
308
|
-
this.subscriptions.push(subscription);
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
}
|
|
1
|
+
import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';
|
|
2
|
+
import { FormGroup } from '@angular/forms';
|
|
3
|
+
import { UserService } from './services/user.service';
|
|
4
|
+
import { APIService } from "./services/api.service";
|
|
5
|
+
import { NotificationService } from './services/notification.service';
|
|
6
|
+
import { Subscription } from 'rxjs';
|
|
7
|
+
import { UsersSearchService } from './services/users-search.service';
|
|
8
|
+
import { ListUser } from './classes/user-list';
|
|
9
|
+
import { MatTableDataSource } from '@angular/material/table';
|
|
10
|
+
import { PageEvent } from '@angular/material/paginator';
|
|
11
|
+
import { ApiWebexService } from './services/api-webex.service';
|
|
12
|
+
import { MAX_INTEGER } from './app.constants';
|
|
13
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
14
|
+
import { UserListConfirmDialogComponent } from './user-list-confirm-dialog/user-list-confirm-dialog.component';
|
|
15
|
+
|
|
16
|
+
const DISPLAYED_COLS = ['user-icon', 'name', 'email', 'status', 'role', 'actions'];
|
|
17
|
+
const LOCAL_STORAGE = {
|
|
18
|
+
USER_IN_MIGRATION: 'userIdInMigration'
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
@Component({
|
|
22
|
+
selector: 'app-users-list',
|
|
23
|
+
templateUrl: './users-list.component.html',
|
|
24
|
+
styleUrls: ['./users-list.component.scss']
|
|
25
|
+
})
|
|
26
|
+
export class UsersListComponent implements OnInit, OnDestroy {
|
|
27
|
+
@Input() token!: string;
|
|
28
|
+
@Input() customerId!: number;
|
|
29
|
+
@Input() siteId!: number;
|
|
30
|
+
@Output() openUser = new EventEmitter();
|
|
31
|
+
@Output() userMoved = new EventEmitter();
|
|
32
|
+
@Output() switchToWizard = new EventEmitter();
|
|
33
|
+
@Input() host!: string;
|
|
34
|
+
|
|
35
|
+
dataPending!: boolean;
|
|
36
|
+
moveInProgressUserId!: string;
|
|
37
|
+
users!: ListUser[];
|
|
38
|
+
dataSource!: MatTableDataSource<ListUser>;
|
|
39
|
+
displayedColumns = DISPLAYED_COLS;
|
|
40
|
+
moveUser: any;
|
|
41
|
+
moveUserIndex: any;
|
|
42
|
+
showMoveUserWizard = false;
|
|
43
|
+
moveUserPending = false;
|
|
44
|
+
private subscriptions: Subscription[] = [];
|
|
45
|
+
|
|
46
|
+
get form(): FormGroup {
|
|
47
|
+
return this.userService?.user?.form;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
constructor(
|
|
51
|
+
public userService: UserService,
|
|
52
|
+
private apiService: APIService,
|
|
53
|
+
private apiWebexService: ApiWebexService,
|
|
54
|
+
private notifications: NotificationService,
|
|
55
|
+
public usersSearchService: UsersSearchService,
|
|
56
|
+
private dialog: MatDialog
|
|
57
|
+
) {
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
ngOnInit(): void {
|
|
62
|
+
this.usersSearchService.setDefaultValues();
|
|
63
|
+
this.usersSearchService.customerId = this.customerId;
|
|
64
|
+
this.usersSearchService.siteId = this.siteId;
|
|
65
|
+
this.apiService.token = this.token;
|
|
66
|
+
this.apiWebexService.token = this.token;
|
|
67
|
+
this.apiService.apiUrl = this.host + '/dcp';
|
|
68
|
+
this.apiWebexService.apiUrl = this.host + '/webex';
|
|
69
|
+
|
|
70
|
+
this.getMigratedUsers();
|
|
71
|
+
const subscription = this.usersSearchService.foundUsers$
|
|
72
|
+
.subscribe((users: ListUser[]) => {
|
|
73
|
+
this.initializeDataSource(users);
|
|
74
|
+
});
|
|
75
|
+
this.subscriptions.push(subscription);
|
|
76
|
+
|
|
77
|
+
console.log('users list paris 7773');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
ngOnDestroy() {
|
|
81
|
+
if (this.subscriptions?.length) {
|
|
82
|
+
this.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
pageNumberChangeEvent(perPageNumber: number): void {
|
|
87
|
+
this.usersSearchService.pageSize = perPageNumber;
|
|
88
|
+
this.usersSearchService.pageIndex = 0;
|
|
89
|
+
this.runSearch();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
closeMoveUserWizard(afterUserMove?: boolean): void {
|
|
93
|
+
this.moveUser = null;
|
|
94
|
+
this.moveUserIndex = null;
|
|
95
|
+
localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
96
|
+
this.showMoveUserWizard = false;
|
|
97
|
+
this.switchToWizard.emit(false);
|
|
98
|
+
if (afterUserMove) {
|
|
99
|
+
this.getMigratedUsers();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
pageEvent(event: PageEvent): void {
|
|
104
|
+
this.usersSearchService.pageSize = event.pageSize;
|
|
105
|
+
this.usersSearchService.pageIndex = event.pageIndex;
|
|
106
|
+
this.runSearch();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
onUserClick(user: ListUser): void {
|
|
110
|
+
this.openUser.emit(user);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
moveUserToMT(user: ListUser, index: number): void {
|
|
114
|
+
|
|
115
|
+
if (user && user.siteId && user.userid) {
|
|
116
|
+
this.moveUserPending = true;
|
|
117
|
+
this.moveInProgressUserId = user.userid;
|
|
118
|
+
this.setStatusToUser(index, 'In Progress');
|
|
119
|
+
localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, user.userid);
|
|
120
|
+
|
|
121
|
+
const subscription = this.userService.moveUserToMT(this.customerId, user)
|
|
122
|
+
.subscribe(() => {
|
|
123
|
+
this.moveUser = null;
|
|
124
|
+
this.moveUserIndex = null;
|
|
125
|
+
this.getMigratedUsers();
|
|
126
|
+
}, () => {
|
|
127
|
+
this.removeUserInMigrationProgress();
|
|
128
|
+
this.setStatusToUser(index, 'Migration Error');
|
|
129
|
+
});
|
|
130
|
+
this.subscriptions.push(subscription);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
moveUserToDI(user: ListUser, index: number): void {
|
|
135
|
+
|
|
136
|
+
if (user && user.siteId && user.webexUUID) {
|
|
137
|
+
this.moveUserPending = true;
|
|
138
|
+
this.moveInProgressUserId = user.userid;
|
|
139
|
+
this.users[index].status = 'In Progress'
|
|
140
|
+
localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, user.userid);
|
|
141
|
+
|
|
142
|
+
const subscription = this.userService.moveUserToDI(this.customerId, user)
|
|
143
|
+
.subscribe(() => {
|
|
144
|
+
this.removeUserInMigrationProgress();
|
|
145
|
+
this.setStatusToUser(index, 'Active');
|
|
146
|
+
this.users[index].webexUUID = '';
|
|
147
|
+
if (this.usersSearchService.migratedUsers && this.usersSearchService.migratedUsers.length) {
|
|
148
|
+
this.usersSearchService.migratedUsers = this.usersSearchService.migratedUsers.filter((migratedUser: any) => migratedUser.userid !== user.email);
|
|
149
|
+
}
|
|
150
|
+
}, () => {
|
|
151
|
+
this.removeUserInMigrationProgress();
|
|
152
|
+
this.setStatusToUser(index, 'Migration Error');
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
private removeUserInMigrationProgress(): void {
|
|
158
|
+
localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
159
|
+
this.moveInProgressUserId = '';
|
|
160
|
+
this.moveUserPending = false;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
private setStatusToUser(index: number, status: string): void {
|
|
164
|
+
if (this.users && this.users[index]) {
|
|
165
|
+
this.users[index].status = status;
|
|
166
|
+
if (status === 'Migrated') {
|
|
167
|
+
this.users[index].roleName = '';
|
|
168
|
+
this.users[index].isMigrated = true;
|
|
169
|
+
this.users[index].status = status;
|
|
170
|
+
} else {
|
|
171
|
+
this.users[index].roleName = 'Dedicated Instance Calling user';
|
|
172
|
+
this.users[index].isMigrated = false;
|
|
173
|
+
this.users[index].status = status;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
this.dataSource = new MatTableDataSource(this.users);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
private initializeDataSource(users: ListUser[]): void {
|
|
180
|
+
if(users?.length) {
|
|
181
|
+
// this.setRandomUserRole(users);
|
|
182
|
+
this.users = users;
|
|
183
|
+
this.setUserMigrationProgress();
|
|
184
|
+
this.usersSearchService.setMigratedPropToUsers(this.users);
|
|
185
|
+
this.dataSource = new MatTableDataSource(users);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
private setUserRole(): void {
|
|
190
|
+
if (this.users?.length) {
|
|
191
|
+
this.users.forEach(user => {
|
|
192
|
+
if (!user.isMigrated) {
|
|
193
|
+
user.roleName = 'Dedicated Instance Calling user';
|
|
194
|
+
}
|
|
195
|
+
})
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
private setRandomUserRole(users: ListUser[]): void {
|
|
200
|
+
const max = Math.round(this.usersSearchService.pageSize - this.usersSearchService.pageSize / 4);
|
|
201
|
+
const min = Math.round(this.usersSearchService.pageSize / 2);
|
|
202
|
+
const randomAmount = Math.round(Math.random() * (max - min) + min);
|
|
203
|
+
const indexes = this.getArrayOfRandomUserIndexes(randomAmount);
|
|
204
|
+
indexes.forEach(index => {
|
|
205
|
+
if (users[index]) {
|
|
206
|
+
users[index].roleName = 'Dedicated Instance Calling user'
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
private getArrayOfRandomUserIndexes(randomAmount: number): number[] {
|
|
212
|
+
const indexes = [];
|
|
213
|
+
while (randomAmount > 0) {
|
|
214
|
+
const index = Math.round(Math.random() * (this.usersSearchService.pageSize - 1));
|
|
215
|
+
indexes.push(index)
|
|
216
|
+
randomAmount--;
|
|
217
|
+
}
|
|
218
|
+
return indexes;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
private runSearch(): void {
|
|
222
|
+
this.dataPending = true;
|
|
223
|
+
this.usersSearchService.quickRegularUsersSearch()
|
|
224
|
+
.subscribe(() => {
|
|
225
|
+
this.dataPending = false;
|
|
226
|
+
}, () => {
|
|
227
|
+
this.dataPending = false;
|
|
228
|
+
this.notifications.error('The data can not be received');
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
private setUserMigrationProgress(): void {
|
|
233
|
+
const userIdInMigration = localStorage.getItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
234
|
+
if (userIdInMigration) {
|
|
235
|
+
const index = this.users.findIndex(user => user.userid === userIdInMigration);
|
|
236
|
+
this.moveInProgressUserId = index > -1 ? this.users[index].userid : '';
|
|
237
|
+
this.moveUserPending = index > -1;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
private getMigratedUsers(): void {
|
|
242
|
+
this.dataPending = true;
|
|
243
|
+
const searchParams = {
|
|
244
|
+
customerid: this.customerId,
|
|
245
|
+
siteid: this.siteId,
|
|
246
|
+
'cloud-only': 'true'
|
|
247
|
+
};
|
|
248
|
+
// this.usersSearchService.quickWebexUsersSearch(searchParams, true, MAX_INTEGER)
|
|
249
|
+
this.usersSearchService.getMigratedUsers(this.customerId)
|
|
250
|
+
// this.usersSearchService.getMigratedWebexUsers(this.customerId)
|
|
251
|
+
.subscribe(() => {
|
|
252
|
+
const userIdInMigration = localStorage.getItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
253
|
+
if (userIdInMigration && this.usersSearchService.migratedUsers.filter((migratedUser: any) => migratedUser.userid === userIdInMigration)) {
|
|
254
|
+
localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
255
|
+
}
|
|
256
|
+
this.runSearch();
|
|
257
|
+
}, () => {
|
|
258
|
+
this.dataPending = false;
|
|
259
|
+
this.notifications.error('The data can not be received');
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
onMoveUser(user: ListUser, index: number, type: string, title: string): void {
|
|
264
|
+
const dialogRef = this.dialog.open(UserListConfirmDialogComponent, {
|
|
265
|
+
data: {
|
|
266
|
+
title: `Move user ${user.userid} to ${title}?`,
|
|
267
|
+
message: `<p>By moving out of Dedicated Instance, you may need to reassign directory numbers and lose calling services.</p>
|
|
268
|
+
<p>Are you sure you want to continue?</p>`,
|
|
269
|
+
confirmButtonText: 'Yes, continue'
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
dialogRef.beforeClosed().subscribe((result: any) => {
|
|
273
|
+
if (result) {
|
|
274
|
+
switch (type) {
|
|
275
|
+
case 'QuickMove':
|
|
276
|
+
this.moveUserToMT(user, index);
|
|
277
|
+
break;
|
|
278
|
+
case 'MT':
|
|
279
|
+
this.moveUser = user;
|
|
280
|
+
this.moveUserIndex = index;
|
|
281
|
+
this.showMoveUserWizard = true;
|
|
282
|
+
this.switchToWizard.emit(true);
|
|
283
|
+
break;
|
|
284
|
+
case 'DI':
|
|
285
|
+
this.moveUserToDI(user, index);
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
runMoveUserToMT(): void {
|
|
294
|
+
if (this.moveUser && this.moveUser.siteId && this.moveUser.userid) {
|
|
295
|
+
this.userService.moveUserPending = true;
|
|
296
|
+
this.moveInProgressUserId = this.moveUser.userid;
|
|
297
|
+
this.setStatusToUser(this.moveUserIndex, 'In Progress');
|
|
298
|
+
localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, this.moveUser.userid);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
const subscription = this.userService.moveUserToMT(this.customerId, this.moveUser)
|
|
302
|
+
.subscribe(() => {
|
|
303
|
+
this.userService.userMoved$.next(true);
|
|
304
|
+
}, () => {
|
|
305
|
+
this.removeUserInMigrationProgress();
|
|
306
|
+
this.setStatusToUser(this.moveUserIndex, 'Migration Error');
|
|
307
|
+
});
|
|
308
|
+
this.subscriptions.push(subscription);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
}
|