@chat21/chat21-ionic 3.0.60-rc2 → 3.0.60-rc6
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/CHANGELOG.md +18 -0
- package/deploy_pre.sh +45 -6
- package/deploy_prod.sh +34 -9
- package/package.json +1 -1
- package/src/app/app.module.ts +1 -1
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +10 -8
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +10 -6
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +34 -3
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +7 -5
- package/src/app/components/image-viewer/image-viewer.component.scss +2 -2
- package/src/app/components/project-item/project-item.component.html +114 -114
- package/src/app/components/project-item/project-item.component.scss +145 -83
- package/src/app/components/project-item/project-item.component.ts +40 -19
- package/src/app/pages/conversation-detail/conversation-detail.module.ts +2 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.html +7 -3
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +53 -33
- package/src/app/pages/conversations-list/conversations-list.page.html +11 -5
- package/src/app/pages/conversations-list/conversations-list.page.scss +12 -1
- package/src/app/pages/conversations-list/conversations-list.page.ts +24 -6
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +16 -11
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +157 -63
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +51 -16
- package/src/app/shared/shared.module.ts +3 -3
- package/src/assets/i18n/en.json +19 -7
- package/src/assets/i18n/es.json +205 -0
- package/src/assets/i18n/it.json +37 -33
- package/src/chat-config-mqtt.json +2 -1
- package/src/chat-config-pre-test.json +1 -0
- package/src/global.scss +4 -0
|
@@ -36,12 +36,16 @@
|
|
|
36
36
|
</ion-avatar>
|
|
37
37
|
<ion-label part="message-text" class="waiting-for-network-msg"> Waiting for network</ion-label>
|
|
38
38
|
</ion-item>
|
|
39
|
-
|
|
40
|
-
<ion-item *ngIf="supportMode && displayNewConvsItem" class="ion-no-padding open-iframe-item"
|
|
41
|
-
button="true"
|
|
42
|
-
(click)="openUnsevedConversationIframe()">
|
|
39
|
+
<!-- button="true" (click)="openUnsevedConversationIframe()" -->
|
|
40
|
+
<ion-item *ngIf="supportMode && displayNewConvsItem" class="ion-no-padding open-iframe-item">
|
|
43
41
|
<div tabindex="0"></div>
|
|
44
|
-
<
|
|
42
|
+
<!-- <ion-note class="pinned-project">
|
|
43
|
+
{{ 'PINNED_PROJECT' | translate }}
|
|
44
|
+
</ion-note> -->
|
|
45
|
+
|
|
46
|
+
<app-project-item style="width: 100%;"
|
|
47
|
+
(openUnsevedConvsEvent)="openUnsevedConversationIframe($event)"
|
|
48
|
+
(projectIdEvent)="getLastProjectId($event)"></app-project-item>
|
|
45
49
|
</ion-item>
|
|
46
50
|
|
|
47
51
|
<span
|
|
@@ -102,6 +106,8 @@
|
|
|
102
106
|
<ion-item id="no-convs" class="ion-text-center" lines="none">
|
|
103
107
|
<ion-label class="ion-text-wrap" color="medium">
|
|
104
108
|
{{ 'LABEL_MSG_PUSH_START_CHAT' | translate }}
|
|
109
|
+
|
|
110
|
+
|
|
105
111
|
</ion-label>
|
|
106
112
|
</ion-item>
|
|
107
113
|
</div>
|
|
@@ -297,6 +297,17 @@ ion-list {
|
|
|
297
297
|
.open-iframe-item {
|
|
298
298
|
padding-left: 0px !important ;
|
|
299
299
|
padding-right: 0px !important;
|
|
300
|
-
height: 55px !important;
|
|
300
|
+
// height: 55px !important;
|
|
301
301
|
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
|
|
302
|
+
--background-hover: #ffffff;
|
|
303
|
+
cursor:default !important;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.pinned-project {
|
|
307
|
+
|
|
308
|
+
color: #3880ff;
|
|
309
|
+
position: absolute;
|
|
310
|
+
right: 8px;
|
|
311
|
+
top: 2px;
|
|
312
|
+
// font-size: 12px !important;
|
|
302
313
|
}
|
|
@@ -72,6 +72,8 @@ export class ConversationListPage implements OnInit {
|
|
|
72
72
|
subscription: Subscription;
|
|
73
73
|
|
|
74
74
|
public UNASSIGNED_CONVS_URL: any;
|
|
75
|
+
public PROJECTS_FOR_PANEL_URL: any;
|
|
76
|
+
public IFRAME_URL: any;
|
|
75
77
|
public hasClickedOpenUnservedConvIframe: boolean = false;
|
|
76
78
|
public lastProjectId: string;
|
|
77
79
|
public isOnline: boolean = true;
|
|
@@ -239,24 +241,40 @@ export class ConversationListPage implements OnInit {
|
|
|
239
241
|
this.lastProjectId = projectid;
|
|
240
242
|
}
|
|
241
243
|
|
|
242
|
-
openUnsevedConversationIframe() {
|
|
244
|
+
openUnsevedConversationIframe(event) {
|
|
245
|
+
console.log('[CONVS-LIST-PAGE] openUnsevedConversationIframe ', event)
|
|
243
246
|
this.hasClickedOpenUnservedConvIframe = true
|
|
244
247
|
this.logger.log('[CONVS-LIST-PAGE] - HAS CLIKED OPEN UNSERVED REQUEST IFRAME', this.hasClickedOpenUnservedConvIframe);
|
|
245
248
|
const DASHBOARD_BASE_URL = this.appConfigProvider.getConfig().dashboardUrl;
|
|
249
|
+
// http://localhost:4204/#/projects-for-panel
|
|
250
|
+
this.PROJECTS_FOR_PANEL_URL = DASHBOARD_BASE_URL + '#/projects-for-panel';
|
|
246
251
|
this.UNASSIGNED_CONVS_URL = DASHBOARD_BASE_URL + '#/project/' + this.lastProjectId + '/unserved-request-for-panel';
|
|
252
|
+
|
|
253
|
+
if (event === 'pinbtn') {
|
|
254
|
+
this.IFRAME_URL = this.PROJECTS_FOR_PANEL_URL
|
|
255
|
+
} else {
|
|
256
|
+
this.IFRAME_URL = this.UNASSIGNED_CONVS_URL
|
|
257
|
+
}
|
|
258
|
+
|
|
247
259
|
this.logger.log('[CONVS-LIST-PAGE] - HAS CLIKED OPEN UNSERVED REQUEST IFRAME > UNASSIGNED CONVS URL', this.UNASSIGNED_CONVS_URL);
|
|
248
|
-
this.openUnassignedConversations(this.
|
|
260
|
+
this.openUnassignedConversations(this.IFRAME_URL, event)
|
|
249
261
|
}
|
|
250
262
|
|
|
251
263
|
// ---------------------------------------------------------
|
|
252
264
|
// Opens the Unassigned Conversations iframe
|
|
253
265
|
// ---------------------------------------------------------
|
|
254
|
-
openUnassignedConversations(
|
|
255
|
-
|
|
266
|
+
openUnassignedConversations(IFRAME_URL: string, event) {
|
|
256
267
|
if (checkPlatformIsMobile()) {
|
|
257
|
-
presentModal(this.modalController, UnassignedConversationsPage, {
|
|
268
|
+
presentModal(this.modalController, UnassignedConversationsPage, {
|
|
269
|
+
iframe_URL: IFRAME_URL,
|
|
270
|
+
callerBtn: event
|
|
271
|
+
});
|
|
258
272
|
} else {
|
|
259
|
-
this.navService.push(UnassignedConversationsPage, {
|
|
273
|
+
this.navService.push(UnassignedConversationsPage, {
|
|
274
|
+
iframe_URL: IFRAME_URL,
|
|
275
|
+
callerBtn: event
|
|
276
|
+
|
|
277
|
+
});
|
|
260
278
|
}
|
|
261
279
|
}
|
|
262
280
|
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
<ion-header>
|
|
2
2
|
<ion-toolbar>
|
|
3
|
-
<ion-title
|
|
3
|
+
<ion-title *ngIf="callerBtn !== 'pinbtn'">
|
|
4
|
+
{{translationMap?.get('NewConversations') }}
|
|
5
|
+
</ion-title>
|
|
6
|
+
<ion-title *ngIf="callerBtn === 'pinbtn'">
|
|
7
|
+
{{translationMap?.get('PIN_A_PROJECT') }}
|
|
8
|
+
</ion-title>
|
|
4
9
|
<ion-buttons slot="end">
|
|
5
10
|
<ion-button ion-button fill="clear" (click)="onClose()">
|
|
6
11
|
<ion-icon slot="icon-only" name="close"></ion-icon>
|
|
@@ -9,14 +14,14 @@
|
|
|
9
14
|
</ion-toolbar>
|
|
10
15
|
</ion-header>
|
|
11
16
|
|
|
12
|
-
<ion-content overflow-scroll="true" id="iframe-ion-content"
|
|
13
|
-
[ngClass]="{'ion-content-black-background' : isProjectsForPanel === true}">
|
|
17
|
+
<ion-content overflow-scroll="true" id="iframe-ion-content"
|
|
18
|
+
[ngClass]="{'ion-content-black-background' : isProjectsForPanel === true}">
|
|
14
19
|
<!-- <iframe id="i_frame" style="width:100%; height:99%" frameBorder="0" allowfullscreen [src]="unassigned_convs_url_sanitized"></iframe> -->
|
|
15
|
-
|
|
16
|
-
<div class="
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
</div>
|
|
22
|
-
</ion-content>
|
|
20
|
+
<div class="loader-spinner-wpr">
|
|
21
|
+
<div id="loader" class="loader">
|
|
22
|
+
<svg class="circular" viewBox="25 25 50 50">
|
|
23
|
+
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="2" stroke-miterlimit="10" />
|
|
24
|
+
</svg>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</ion-content>
|
|
@@ -1,79 +1,173 @@
|
|
|
1
1
|
.ion-content-black-background {
|
|
2
|
-
--background: #2d323e
|
|
2
|
+
--background: #2d323e;
|
|
3
3
|
}
|
|
4
4
|
|
|
5
5
|
// -------------------------------------------------
|
|
6
6
|
// stretch spinner https://tobiasahlin.com/spinkit/
|
|
7
7
|
// -------------------------------------------------
|
|
8
8
|
.stretchspinner-unassigned-convs {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
9
|
+
// margin: 100px auto;
|
|
10
|
+
width: 50px;
|
|
11
|
+
height: 40px;
|
|
12
|
+
text-align: center;
|
|
13
|
+
font-size: 10px;
|
|
14
|
+
position: absolute;
|
|
15
|
+
margin: auto;
|
|
16
|
+
top: 0;
|
|
17
|
+
left: 0;
|
|
18
|
+
bottom: 0;
|
|
19
|
+
right: 0;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.stretchspinner-unassigned-convs > div {
|
|
23
|
+
background-color: #3ea9f5;
|
|
24
|
+
height: 100%;
|
|
25
|
+
width: 6px;
|
|
26
|
+
display: inline-block;
|
|
27
|
+
|
|
28
|
+
-webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out;
|
|
29
|
+
animation: sk-stretchdelay 1.2s infinite ease-in-out;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.stretchspinner-unassigned-convs .rect2 {
|
|
33
|
+
-webkit-animation-delay: -1.1s;
|
|
34
|
+
animation-delay: -1.1s;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.stretchspinner-unassigned-convs .rect3 {
|
|
38
|
+
-webkit-animation-delay: -1s;
|
|
39
|
+
animation-delay: -1s;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.stretchspinner-unassigned-convs .rect4 {
|
|
43
|
+
-webkit-animation-delay: -0.9s;
|
|
44
|
+
animation-delay: -0.9s;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.stretchspinner-unassigned-convs .rect5 {
|
|
48
|
+
-webkit-animation-delay: -0.8s;
|
|
49
|
+
animation-delay: -0.8s;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@-webkit-keyframes sk-stretchdelay {
|
|
53
|
+
0%,
|
|
54
|
+
40%,
|
|
55
|
+
100% {
|
|
56
|
+
-webkit-transform: scaleY(0.4);
|
|
57
|
+
}
|
|
58
|
+
20% {
|
|
59
|
+
-webkit-transform: scaleY(1);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@keyframes sk-stretchdelay {
|
|
64
|
+
0%,
|
|
65
|
+
40%,
|
|
66
|
+
100% {
|
|
67
|
+
transform: scaleY(0.4);
|
|
68
|
+
-webkit-transform: scaleY(0.4);
|
|
69
|
+
}
|
|
70
|
+
20% {
|
|
71
|
+
transform: scaleY(1);
|
|
72
|
+
-webkit-transform: scaleY(1);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// -------------------------------------------------
|
|
77
|
+
// Loader as in dashboard
|
|
78
|
+
// -------------------------------------------------
|
|
79
|
+
.loader {
|
|
80
|
+
margin: 0 auto;
|
|
81
|
+
width: 60px;
|
|
82
|
+
position: absolute;
|
|
83
|
+
display: block;
|
|
84
|
+
left: 0;
|
|
85
|
+
right: 0;
|
|
86
|
+
z-index: 1;
|
|
87
|
+
// @include transform-translate-y(-50%);
|
|
88
|
+
-webkit-transform: translateY(-50%);
|
|
89
|
+
-moz-transform: translateY(-50%);
|
|
90
|
+
-ms-transform: translateY(-50%);
|
|
91
|
+
transform: translateY(-50%);
|
|
92
|
+
text-align: center;
|
|
93
|
+
top: 50%;
|
|
94
|
+
|
|
95
|
+
&:before {
|
|
96
|
+
content: "";
|
|
97
|
+
display: block;
|
|
98
|
+
padding-top: 100%;
|
|
20
99
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.circular {
|
|
103
|
+
animation: rotate 2s linear infinite;
|
|
104
|
+
height: 100%;
|
|
105
|
+
transform-origin: center center;
|
|
106
|
+
width: 100%;
|
|
107
|
+
position: absolute;
|
|
108
|
+
top: 0;
|
|
109
|
+
bottom: 0;
|
|
110
|
+
left: 0;
|
|
111
|
+
right: 0;
|
|
112
|
+
margin: auto;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.path {
|
|
116
|
+
stroke-dasharray: 1, 200;
|
|
117
|
+
stroke-dashoffset: 0;
|
|
118
|
+
animation: dash 1.5s ease-in-out infinite, color 2s ease-in-out infinite;
|
|
119
|
+
stroke-linecap: round;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
@keyframes rotate {
|
|
123
|
+
100% {
|
|
124
|
+
transform: rotate(360deg);
|
|
30
125
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@keyframes dash {
|
|
129
|
+
0% {
|
|
130
|
+
stroke-dasharray: 1, 200;
|
|
131
|
+
stroke-dashoffset: 0;
|
|
35
132
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
animation-delay: -1s;
|
|
133
|
+
50% {
|
|
134
|
+
stroke-dasharray: 89, 200;
|
|
135
|
+
stroke-dashoffset: -35px;
|
|
40
136
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
animation-delay: -0.9s;
|
|
137
|
+
100% {
|
|
138
|
+
stroke-dasharray: 89, 200;
|
|
139
|
+
stroke-dashoffset: -124px;
|
|
45
140
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
@keyframes color {
|
|
144
|
+
100%,
|
|
145
|
+
0% {
|
|
146
|
+
stroke: #3ea9f5;
|
|
50
147
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
0%,
|
|
54
|
-
40%,
|
|
55
|
-
100% {
|
|
56
|
-
-webkit-transform: scaleY(0.4);
|
|
57
|
-
}
|
|
58
|
-
20% {
|
|
59
|
-
-webkit-transform: scaleY(1);
|
|
60
|
-
}
|
|
148
|
+
50% {
|
|
149
|
+
stroke: #ff5722;
|
|
61
150
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
0%,
|
|
65
|
-
40%,
|
|
66
|
-
100% {
|
|
67
|
-
transform: scaleY(0.4);
|
|
68
|
-
-webkit-transform: scaleY(0.4);
|
|
69
|
-
}
|
|
70
|
-
20% {
|
|
71
|
-
transform: scaleY(1);
|
|
72
|
-
-webkit-transform: scaleY(1);
|
|
73
|
-
}
|
|
151
|
+
100% {
|
|
152
|
+
stroke: #3ea9f5;
|
|
74
153
|
}
|
|
75
|
-
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// -------------------------------------
|
|
157
|
+
// Loader spinner wpr
|
|
158
|
+
// -------------------------------------
|
|
159
|
+
.loader-spinner-wpr {
|
|
160
|
+
text-align: center;
|
|
161
|
+
// font-size: 10px;
|
|
162
|
+
position: absolute;
|
|
163
|
+
margin: auto;
|
|
164
|
+
top: 0;
|
|
165
|
+
left: 0;
|
|
166
|
+
bottom: 0;
|
|
167
|
+
right: 0;
|
|
168
|
+
background: #fff;
|
|
169
|
+
}
|
|
76
170
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
171
|
+
.hide-stretchspinner {
|
|
172
|
+
display: none;
|
|
173
|
+
}
|
|
@@ -14,8 +14,12 @@ import { CustomTranslateService } from 'src/chat21-core/providers/custom-transla
|
|
|
14
14
|
})
|
|
15
15
|
export class UnassignedConversationsPage implements OnInit {
|
|
16
16
|
|
|
17
|
-
@Input()
|
|
18
|
-
|
|
17
|
+
@Input() iframe_URL: any;
|
|
18
|
+
@Input() callerBtn: string;
|
|
19
|
+
// @Input() prjctsxpanel_url: any;
|
|
20
|
+
// @Input() unassigned_convs_url: any;
|
|
21
|
+
|
|
22
|
+
iframe_url_sanitized: any;
|
|
19
23
|
private logger: LoggerService = LoggerInstance.getInstance();
|
|
20
24
|
// has_loaded: boolean;
|
|
21
25
|
ion_content: any;
|
|
@@ -32,7 +36,11 @@ export class UnassignedConversationsPage implements OnInit {
|
|
|
32
36
|
) { }
|
|
33
37
|
|
|
34
38
|
ngOnInit() {
|
|
35
|
-
const keys = [
|
|
39
|
+
const keys = [
|
|
40
|
+
'UnassignedConversations',
|
|
41
|
+
'NewConversations',
|
|
42
|
+
'PIN_A_PROJECT'
|
|
43
|
+
];
|
|
36
44
|
this.translationMap = this.translateService.translateLanguage(keys);
|
|
37
45
|
this.buildIFRAME();
|
|
38
46
|
this.listenToPostMsg();
|
|
@@ -47,14 +55,16 @@ export class UnassignedConversationsPage implements OnInit {
|
|
|
47
55
|
}
|
|
48
56
|
|
|
49
57
|
buildIFRAME() {
|
|
50
|
-
this.logger.log('[UNASSIGNED-CONVS-PAGE] -
|
|
51
|
-
this.
|
|
52
|
-
|
|
58
|
+
this.logger.log('[UNASSIGNED-CONVS-PAGE] - iframe_URL (ngOnInit)', this.iframe_URL);
|
|
59
|
+
this.logger.log('[UNASSIGNED-CONVS-PAGE] - callerBtn (ngOnInit)', this.callerBtn);
|
|
60
|
+
|
|
61
|
+
this.iframe_url_sanitized = this.sanitizer.sanitize(SecurityContext.URL, this.iframe_URL)
|
|
62
|
+
this.logger.log('[UNASSIGNED-CONVS-PAGE] - UNASSIGNED CONVS URL SANITIZED (ngOnInit)', this.iframe_url_sanitized);
|
|
53
63
|
// this.has_loaded = false
|
|
54
64
|
|
|
55
65
|
this.ion_content = document.getElementById("iframe-ion-content");
|
|
56
66
|
this.iframe = document.createElement("iframe");
|
|
57
|
-
this.iframe.src = this.
|
|
67
|
+
this.iframe.src = this.iframe_url_sanitized;
|
|
58
68
|
this.iframe.width = "100%";
|
|
59
69
|
this.iframe.height = "99%";
|
|
60
70
|
this.iframe.id = "unassigned-convs-iframe"
|
|
@@ -63,23 +73,35 @@ export class UnassignedConversationsPage implements OnInit {
|
|
|
63
73
|
this.iframe.style.background = "white";
|
|
64
74
|
this.ion_content.appendChild(this.iframe);
|
|
65
75
|
|
|
66
|
-
|
|
76
|
+
this.getIframeHaLoaded()
|
|
77
|
+
|
|
67
78
|
}
|
|
68
79
|
|
|
69
80
|
getIframeHaLoaded() {
|
|
70
81
|
var self = this;
|
|
71
|
-
var
|
|
72
|
-
this.logger.log('[
|
|
73
|
-
if (
|
|
74
|
-
|
|
75
|
-
self.logger.log("[
|
|
76
|
-
|
|
82
|
+
var iframeWin = document.getElementById('unassigned-convs-iframe') as HTMLIFrameElement;;
|
|
83
|
+
this.logger.log('[UNASSIGNED-CONVS-PAGE] GET iframe ', iframeWin)
|
|
84
|
+
if (iframeWin) {
|
|
85
|
+
iframeWin.addEventListener("load", function () {
|
|
86
|
+
self.logger.log("[UNASSIGNED-CONVS-PAGE] GET - Finish");
|
|
87
|
+
|
|
88
|
+
const isIFrame = (input: HTMLElement | null): input is HTMLIFrameElement =>
|
|
89
|
+
input !== null && input.tagName === 'IFRAME';
|
|
90
|
+
|
|
91
|
+
if (isIFrame(iframeWin) && iframeWin.contentWindow) {
|
|
92
|
+
const msg = { action: "hidewidget", calledBy: 'unassigned-convs' }
|
|
93
|
+
iframeWin.contentWindow.postMessage(msg, '*');
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
let spinnerElem = <HTMLElement>document.querySelector('.loader-spinner-wpr')
|
|
77
98
|
|
|
78
99
|
self.logger.log('[APP-STORE-INSTALL] GET iframeDoc readyState spinnerElem', spinnerElem)
|
|
79
100
|
spinnerElem.classList.add("hide-stretchspinner")
|
|
80
101
|
|
|
81
102
|
});
|
|
82
103
|
}
|
|
104
|
+
|
|
83
105
|
}
|
|
84
106
|
|
|
85
107
|
listenToPostMsg() {
|
|
@@ -94,18 +116,31 @@ export class UnassignedConversationsPage implements OnInit {
|
|
|
94
116
|
this.isProjectsForPanel = false;
|
|
95
117
|
}
|
|
96
118
|
}
|
|
119
|
+
|
|
120
|
+
if (event.data === 'hasChangedProject') {
|
|
121
|
+
this.closemodal()
|
|
122
|
+
}
|
|
97
123
|
});
|
|
98
124
|
}
|
|
99
125
|
|
|
126
|
+
public async closemodal() {
|
|
127
|
+
// const modal = await this.modalController.getTop();
|
|
128
|
+
// modal.dismiss({
|
|
129
|
+
// confirmed: true
|
|
130
|
+
// });
|
|
131
|
+
// await this.modalController.dismiss({ confirmed: true });
|
|
132
|
+
this.onClose()
|
|
133
|
+
|
|
134
|
+
}
|
|
135
|
+
|
|
100
136
|
|
|
101
137
|
async onClose() {
|
|
102
138
|
this.logger.log('[UNASSIGNED-CONVS-PAGE] - onClose MODAL')
|
|
103
139
|
this.logger.log('[UNASSIGNED-CONVS-PAGE] - onClose MODAL isModalOpened ', await this.modalController.getTop())
|
|
104
140
|
const isModalOpened = await this.modalController.getTop();
|
|
105
|
-
|
|
141
|
+
this.logger.log('[UNASSIGNED-CONVS-PAGE] - onClose MODAL isModalOpened ', isModalOpened)
|
|
106
142
|
if (isModalOpened) {
|
|
107
143
|
this.modalController.dismiss({
|
|
108
|
-
|
|
109
144
|
confirmed: true
|
|
110
145
|
});
|
|
111
146
|
} else {
|
|
@@ -40,11 +40,11 @@ import { OptionHeaderComponent } from '../components/conversation-detail/option-
|
|
|
40
40
|
import { MessageAttachmentComponent } from '../chatlib/conversation-detail/message/message-attachment/message-attachment.component';
|
|
41
41
|
import { ImageViewerComponent } from '../components/image-viewer/image-viewer.component';
|
|
42
42
|
import { ProjectItemComponent } from '../components/project-item/project-item.component';
|
|
43
|
-
import { MessageTextAreaComponent } from '../components/conversation-detail/message-text-area/message-text-area.component';
|
|
43
|
+
// import { MessageTextAreaComponent } from '../components/conversation-detail/message-text-area/message-text-area.component';
|
|
44
44
|
|
|
45
45
|
@NgModule({
|
|
46
46
|
declarations: [
|
|
47
|
-
MessageTextAreaComponent,
|
|
47
|
+
// MessageTextAreaComponent,
|
|
48
48
|
AvatarProfileComponent,
|
|
49
49
|
DdpHeaderComponent,
|
|
50
50
|
UserPresenceComponent,
|
|
@@ -81,7 +81,7 @@ import { MessageTextAreaComponent } from '../components/conversation-detail/mess
|
|
|
81
81
|
OptionHeaderComponent
|
|
82
82
|
],
|
|
83
83
|
exports: [
|
|
84
|
-
MessageTextAreaComponent,
|
|
84
|
+
// MessageTextAreaComponent,
|
|
85
85
|
AutofocusDirective,
|
|
86
86
|
AvatarProfileComponent,
|
|
87
87
|
DdpHeaderComponent,
|
package/src/assets/i18n/en.json
CHANGED
|
@@ -169,12 +169,12 @@
|
|
|
169
169
|
"Email must be a valid email": "Email must be a valid email.",
|
|
170
170
|
"Password is required": "Password is required.",
|
|
171
171
|
"Password must be at least 6 characters long": "Password must be at least 6 characters long.",
|
|
172
|
-
"UPLOAD_FILE_ERROR":"An unexpected error occurred while uploading the file",
|
|
173
|
-
"DROP_IMAGE_HERE_TO_SEND_IT":"Drop image here to send it",
|
|
172
|
+
"UPLOAD_FILE_ERROR": "An unexpected error occurred while uploading the file",
|
|
173
|
+
"DROP_IMAGE_HERE_TO_SEND_IT": "Drop image here to send it",
|
|
174
174
|
"ONLY_IMAGE_FILES_ARE_ALLOWED_TO_PASTE": "Only image files and text are allowed to be pasted",
|
|
175
175
|
"FAILED_TO_UPLOAD_THE_FORMAT_IS_NOT_SUPPORTED": "Failed to upload: the format is not supported",
|
|
176
176
|
"SENT_AN_IMAGE": "sent an image",
|
|
177
|
-
"SENT_AN_ATTACHMENT":"sent an attachment",
|
|
177
|
+
"SENT_AN_ATTACHMENT": "sent an attachment",
|
|
178
178
|
"NO_INFORMATION_AVAILABLE": "No information available",
|
|
179
179
|
"CONTACT_ID": "Contact ID",
|
|
180
180
|
"USER_ID": "User ID",
|
|
@@ -183,11 +183,23 @@
|
|
|
183
183
|
"Available": "Available",
|
|
184
184
|
"Unavailable": "Unavailable",
|
|
185
185
|
"Busy": "Busy",
|
|
186
|
-
"YouAreAboutToJoinThisChat":"You are about to join this chat",
|
|
186
|
+
"YouAreAboutToJoinThisChat": "You are about to join this chat",
|
|
187
187
|
"Cancel": "Cancel",
|
|
188
|
-
"AreYouSure":"Are you sure?",
|
|
189
|
-
"UnassignedConversations":"Unassigned Conversations",
|
|
188
|
+
"AreYouSure": "Are you sure?",
|
|
189
|
+
"UnassignedConversations": "Unassigned Conversations",
|
|
190
190
|
"NewConversations": "New conversations",
|
|
191
191
|
"UPLOAD": "Upload",
|
|
192
|
-
"CANNED_RESPONSES":"Canned responses"
|
|
192
|
+
"CANNED_RESPONSES": "Canned responses",
|
|
193
|
+
"NO_CANNED_RESPONSES": "No canned responses",
|
|
194
|
+
"THERE_ARE_NO_CANNED_RESPONSES_AVAILABLE": "There are no canned responses available",
|
|
195
|
+
"TO_CREATE_THEM_GO_TO_THE_PROJECT": "To create them go to the project (you can click on the name of the project available in the right sidebar) and under the menu item 'Settings' in the Dashboard sidebar click on 'Canned responses' and then on the 'Create response' button",
|
|
196
|
+
"YES_CANNED_RESPONSES": "View the canned responses by clicking on the ⚡️ button or by typing a / in the text area, you can also filter the list by typing after the /",
|
|
197
|
+
"VIEW_ALL_CONVERSATIONS": "View all conversations",
|
|
198
|
+
"CONVERSATIONS_IN_QUEUE": "conversations in queue",
|
|
199
|
+
"PIN_A_PROJECT": "Pin a Project",
|
|
200
|
+
"PINNED_PROJECT": "Pinned project",
|
|
201
|
+
"CHANGE_PINNED_PROJECT": "Change pinned project",
|
|
202
|
+
"CHANGE_TO_AVAILABLE_UNAVAILABLE": "change to available/unavailable",
|
|
203
|
+
"CHANGE_TO_YOUR_STATUS_TO_AVAILABLE": "change to your status to available",
|
|
204
|
+
"CHANGE_TO_YOUR_STATUS_TO_UNAVAILABLE": "change to your status to unavailable"
|
|
193
205
|
}
|