@chat21/chat21-ionic 3.0.60 → 3.0.61-rc14
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 +93 -0
- package/README.md +2 -0
- package/angular.json +4 -0
- package/config.xml +5 -5
- package/deploy_pre.sh +10 -10
- package/deploy_prod.sh +5 -1
- package/env.sample +3 -1
- package/package.json +13 -7
- package/resources/{Android → android}/icon/drawable-hdpi-icon.png +0 -0
- package/resources/{Android → android}/icon/drawable-ldpi-icon.png +0 -0
- package/resources/{Android → android}/icon/drawable-mdpi-icon.png +0 -0
- package/resources/{Android → android}/icon/drawable-xhdpi-icon.png +0 -0
- package/resources/{Android → android}/icon/drawable-xxhdpi-icon.png +0 -0
- package/resources/{Android → android}/icon/drawable-xxxhdpi-icon.png +0 -0
- package/resources/{Android → android}/icon.png +0 -0
- package/resources/{Android → android}/splash/drawable-land-hdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-land-ldpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-land-mdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-land-xhdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-land-xxhdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-land-xxxhdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-port-hdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-port-ldpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-port-mdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-port-xhdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-port-xxhdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-port-xxxhdpi-screen.png +0 -0
- package/resources/{Android → android}/splash.png +0 -0
- package/src/app/app-routing.module.ts +15 -0
- package/src/app/app.component.html +14 -4
- package/src/app/app.component.scss +18 -1
- package/src/app/app.component.ts +50 -16
- package/src/app/app.module.ts +12 -3
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +23 -5
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +142 -49
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +101 -18
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +20 -36
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.scss +10 -0
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +35 -40
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +7 -2
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +103 -12
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +39 -36
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +7 -1
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +148 -63
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +59 -22
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +32 -9
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +102 -23
- package/src/app/components/ddp-header/ddp-header.component.html +20 -6
- package/src/app/components/ddp-header/ddp-header.component.scss +4 -0
- package/src/app/components/ddp-header/ddp-header.component.ts +104 -10
- package/src/app/components/project-item/project-item.component.html +8 -7
- package/src/app/components/project-item/project-item.component.scss +7 -2
- package/src/app/components/project-item/project-item.component.ts +15 -2
- package/src/app/components/sidebar/sidebar.component.html +275 -0
- package/src/app/components/sidebar/sidebar.component.scss +79 -0
- package/src/app/components/sidebar/sidebar.component.spec.ts +24 -0
- package/src/app/components/sidebar/sidebar.component.ts +539 -0
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +117 -0
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.scss +330 -0
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.spec.ts +24 -0
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +490 -0
- package/src/app/pages/conversation-detail/conversation-detail.module.ts +6 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.html +20 -10
- package/src/app/pages/conversation-detail/conversation-detail.page.scss +28 -0
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +1132 -784
- package/src/app/pages/conversations-list/conversations-list.module.ts +2 -1
- package/src/app/pages/conversations-list/conversations-list.page.html +18 -9
- package/src/app/pages/conversations-list/conversations-list.page.scss +9 -1
- package/src/app/pages/conversations-list/conversations-list.page.ts +738 -425
- package/src/app/pages/create-canned-response/create-canned-response-routing.module.ts +17 -0
- package/src/app/pages/create-canned-response/create-canned-response.module.ts +30 -0
- package/src/app/pages/create-canned-response/create-canned-response.page.html +150 -0
- package/src/app/pages/create-canned-response/create-canned-response.page.scss +55 -0
- package/src/app/pages/create-canned-response/create-canned-response.page.spec.ts +24 -0
- package/src/app/pages/create-canned-response/create-canned-response.page.ts +319 -0
- package/src/app/pages/create-requester/create-requester-routing.module.ts +17 -0
- package/src/app/pages/create-requester/create-requester.module.ts +28 -0
- package/src/app/pages/create-requester/create-requester.page.html +67 -0
- package/src/app/pages/create-requester/create-requester.page.scss +30 -0
- package/src/app/pages/create-requester/create-requester.page.spec.ts +24 -0
- package/src/app/pages/create-requester/create-requester.page.ts +138 -0
- package/src/app/pages/create-ticket/create-ticket-routing.module.ts +17 -0
- package/src/app/pages/create-ticket/create-ticket.module.ts +28 -0
- package/src/app/pages/create-ticket/create-ticket.page.html +171 -0
- package/src/app/pages/create-ticket/create-ticket.page.scss +52 -0
- package/src/app/pages/create-ticket/create-ticket.page.spec.ts +24 -0
- package/src/app/pages/create-ticket/create-ticket.page.ts +432 -0
- package/src/app/pages/loader-preview/loader-preview.page.ts +226 -166
- package/src/app/pages/profile-info/profile-info.page.html +4 -4
- package/src/app/pages/profile-info/profile-info.page.scss +13 -2
- package/src/app/pages/profile-info/profile-info.page.ts +23 -21
- package/src/app/services/tiledesk/tiledesk.service.ts +209 -0
- package/src/app/shared/shared.module.ts +14 -1
- package/src/app/utils/scrollbar-theme.directive.ts +58 -24
- package/src/assets/i18n/de.json +69 -13
- package/src/assets/i18n/en.json +62 -6
- package/src/assets/i18n/es.json +61 -5
- package/src/assets/i18n/fr.json +64 -8
- package/src/assets/i18n/it.json +61 -5
- package/src/assets/i18n/pt.json +61 -5
- package/src/assets/i18n/ru.json +62 -6
- package/src/assets/i18n/sr.json +265 -0
- package/src/assets/i18n/tr.json +61 -5
- package/src/assets/images/default-avatar-x-select.png +0 -0
- package/src/assets/images/language_flag/ar.png +0 -0
- package/src/assets/images/language_flag/bg.png +0 -0
- package/src/assets/images/language_flag/ca.png +0 -0
- package/src/assets/images/language_flag/cs.png +0 -0
- package/src/assets/images/language_flag/da.png +0 -0
- package/src/assets/images/language_flag/de.png +0 -0
- package/src/assets/images/language_flag/el.png +0 -0
- package/src/assets/images/language_flag/en.png +0 -0
- package/src/assets/images/language_flag/es.png +0 -0
- package/src/assets/images/language_flag/fa.png +0 -0
- package/src/assets/images/language_flag/fi.png +0 -0
- package/src/assets/images/language_flag/fr.png +0 -0
- package/src/assets/images/language_flag/he.png +0 -0
- package/src/assets/images/language_flag/hi.png +0 -0
- package/src/assets/images/language_flag/hr.png +0 -0
- package/src/assets/images/language_flag/hu.png +0 -0
- package/src/assets/images/language_flag/id.png +0 -0
- package/src/assets/images/language_flag/it.png +0 -0
- package/src/assets/images/language_flag/ja.png +0 -0
- package/src/assets/images/language_flag/ko.png +0 -0
- package/src/assets/images/language_flag/ml-IN.png +0 -0
- package/src/assets/images/language_flag/ne-NP.png +0 -0
- package/src/assets/images/language_flag/nl.png +0 -0
- package/src/assets/images/language_flag/no.png +0 -0
- package/src/assets/images/language_flag/pl.png +0 -0
- package/src/assets/images/language_flag/pt-BR.png +0 -0
- package/src/assets/images/language_flag/pt.png +0 -0
- package/src/assets/images/language_flag/ro.png +0 -0
- package/src/assets/images/language_flag/ru.png +0 -0
- package/src/assets/images/language_flag/sk.png +0 -0
- package/src/assets/images/language_flag/sl.png +0 -0
- package/src/assets/images/language_flag/sr.png +0 -0
- package/src/assets/images/language_flag/sv-SE.png +0 -0
- package/src/assets/images/language_flag/ta.png +0 -0
- package/src/assets/images/language_flag/th.png +0 -0
- package/src/assets/images/language_flag/tr.png +0 -0
- package/src/assets/images/language_flag/uk.png +0 -0
- package/src/assets/images/language_flag/vi.png +0 -0
- package/src/assets/images/language_flag/zh-CN.png +0 -0
- package/src/assets/images/language_flag/zh-TW.png +0 -0
- package/src/assets/images/no_image_user.png +0 -0
- package/src/assets/images/priority_icons/high.svg +3 -0
- package/src/assets/images/priority_icons/high_v2.svg +14 -0
- package/src/assets/images/priority_icons/low.svg +10 -0
- package/src/assets/images/priority_icons/low_v2.svg +14 -0
- package/src/assets/images/priority_icons/medium.svg +16 -0
- package/src/assets/images/priority_icons/medium_v2.svg +11 -0
- package/src/assets/images/priority_icons/urgent.svg +4 -0
- package/src/assets/images/priority_icons/urgent_v2.svg +16 -0
- package/src/assets/tiledesk-solo-logo.png +0 -0
- package/src/chat-config-pre-test.json +3 -1
- package/src/chat-config-template.json +3 -1
- package/src/chat-config.json +4 -2
- package/src/chat21-core/utils/constants.ts +6 -1
- package/src/global.scss +405 -3
- package/src/index.html +7 -0
- package/publish_pre.sh +0 -33
- package/publish_prod.sh +0 -33
|
@@ -86,16 +86,18 @@ export class ProfileInfoPage implements OnInit {
|
|
|
86
86
|
private setUser() {
|
|
87
87
|
// width and height NON sono obbligatori
|
|
88
88
|
this.loggedUser = this.chatManager.getCurrentUser();
|
|
89
|
-
this.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
89
|
+
if (this.loggedUser) {
|
|
90
|
+
this.itemAvatar = {
|
|
91
|
+
imageurl: this.imageRepo.getImagePhotoUrl(this.loggedUser.uid),
|
|
92
|
+
avatar: this.loggedUser.avatar,
|
|
93
|
+
color: this.loggedUser.color,
|
|
94
|
+
online: this.loggedUser.online,
|
|
95
|
+
lastConnection: this.loggedUser.lastConnection,
|
|
96
|
+
status: '',
|
|
97
|
+
width: '100px',
|
|
98
|
+
height: '100px'
|
|
99
|
+
};
|
|
100
|
+
}
|
|
99
101
|
}
|
|
100
102
|
|
|
101
103
|
|
|
@@ -121,10 +123,10 @@ export class ProfileInfoPage implements OnInit {
|
|
|
121
123
|
private setSubscriptions() {
|
|
122
124
|
this.presenceService.userIsOnline(this.loggedUser.uid);
|
|
123
125
|
this.presenceService.lastOnlineForUser(this.loggedUser.uid);
|
|
124
|
-
|
|
125
|
-
|
|
126
|
+
|
|
127
|
+
|
|
126
128
|
const subscribeBSIsOnline = this.presenceService.BSIsOnline.subscribe((data: any) => {
|
|
127
|
-
|
|
129
|
+
this.logger.log('[PROFILE-INFO-PAGE] setSubscriptions $ubscribe to BSIsOnline - data', data);
|
|
128
130
|
if (data) {
|
|
129
131
|
const userId = data.uid;
|
|
130
132
|
const isOnline = data.isOnline;
|
|
@@ -135,7 +137,7 @@ export class ProfileInfoPage implements OnInit {
|
|
|
135
137
|
});
|
|
136
138
|
|
|
137
139
|
const subscribeBSLastOnline = this.presenceService.BSLastOnline.subscribe((data: any) => {
|
|
138
|
-
|
|
140
|
+
this.logger.log('[PROFILE-INFO-PAGE] setSubscriptions $ubscribe to BSLastOnline - data', data);
|
|
139
141
|
if (data) {
|
|
140
142
|
const userId = data.uid;
|
|
141
143
|
const timestamp = data.lastOnline;
|
|
@@ -150,7 +152,7 @@ export class ProfileInfoPage implements OnInit {
|
|
|
150
152
|
|
|
151
153
|
|
|
152
154
|
userIsOnLine = (userId: string, isOnline: boolean) => {
|
|
153
|
-
|
|
155
|
+
this.logger.log('[PROFILE-INFO-PAGE] userIsOnLine - userId ', userId, ' - isOnline ', isOnline);
|
|
154
156
|
this.itemAvatar.online = isOnline;
|
|
155
157
|
if (isOnline) {
|
|
156
158
|
this.itemAvatar.status = this.translationMap.get('LABEL_AVAILABLE');
|
|
@@ -180,9 +182,9 @@ export class ProfileInfoPage implements OnInit {
|
|
|
180
182
|
|
|
181
183
|
/** */
|
|
182
184
|
private unsubescribeAll() {
|
|
183
|
-
|
|
185
|
+
this.logger.log('unsubescribeAll: ', this.subscriptions);
|
|
184
186
|
this.subscriptions.forEach((subscription: any) => {
|
|
185
|
-
|
|
187
|
+
this.logger.log('unsubescribe: ', subscription);
|
|
186
188
|
// this.events.unsubscribe(subscription, null);
|
|
187
189
|
});
|
|
188
190
|
this.subscriptions = [];
|
|
@@ -207,15 +209,15 @@ export class ProfileInfoPage implements OnInit {
|
|
|
207
209
|
}
|
|
208
210
|
|
|
209
211
|
copyLoggedUserUID() {
|
|
210
|
-
var copyText = document.createElement("input");
|
|
212
|
+
var copyText = document.createElement("input");
|
|
211
213
|
copyText.setAttribute("type", "text");
|
|
212
214
|
copyText.setAttribute("value", this.loggedUser.uid);
|
|
213
|
-
|
|
214
|
-
document.body.appendChild(copyText);
|
|
215
|
+
|
|
216
|
+
document.body.appendChild(copyText);
|
|
215
217
|
copyText.select();
|
|
216
218
|
copyText.setSelectionRange(0, 99999); /*For mobile devices*/
|
|
217
219
|
document.execCommand("copy");
|
|
218
|
-
|
|
220
|
+
this.logger.log("Copied the text: " + copyText.value);
|
|
219
221
|
const tootipElem = <HTMLElement>document.querySelector('.chat-tooltip');
|
|
220
222
|
this.renderer.appendChild(tootipElem, this.renderer.createText('Copied!'))
|
|
221
223
|
|
|
@@ -91,9 +91,218 @@ export class TiledeskService {
|
|
|
91
91
|
}))
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
+
|
|
95
|
+
public getProjectById( token: string , id: string) {
|
|
96
|
+
const url = this.apiUrl + 'projects/' + id;
|
|
97
|
+
this.logger.log('[TILEDESK-SERVICE] - GET PROJECT BY ID URL', url);
|
|
98
|
+
|
|
99
|
+
const httpOptions = {
|
|
100
|
+
headers: new HttpHeaders({
|
|
101
|
+
'Content-Type': 'application/json',
|
|
102
|
+
Authorization: token
|
|
103
|
+
})
|
|
104
|
+
};
|
|
105
|
+
return this.http
|
|
106
|
+
.get(url, httpOptions)
|
|
107
|
+
.pipe(map((res: any) => {
|
|
108
|
+
this.logger.log('[TILEDESK-SERVICE] GET PROJECT BY ID URL - RES ', res);
|
|
109
|
+
return res
|
|
110
|
+
}))
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
public getProjectUsersByProjectId(project_id: string, token: string) {
|
|
115
|
+
const url = this.apiUrl + project_id + '/project_users/';
|
|
116
|
+
this.logger.log('[TILEDESK-SERVICE] - GET PROJECT-USER URL', url);
|
|
117
|
+
|
|
118
|
+
const httpOptions = {
|
|
119
|
+
headers: new HttpHeaders({
|
|
120
|
+
'Content-Type': 'application/json',
|
|
121
|
+
Authorization: token
|
|
122
|
+
})
|
|
123
|
+
};
|
|
124
|
+
return this.http
|
|
125
|
+
.get(url, httpOptions)
|
|
126
|
+
.pipe(map((res: any) => {
|
|
127
|
+
this.logger.log('[TILEDESK-SERVICE] - GET PROJECT-USER RES ', res);
|
|
128
|
+
return res
|
|
129
|
+
}))
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
public getAllLeadsActiveWithLimit(project_id: string, token: string, limit: number) {
|
|
133
|
+
const url = this.apiUrl + project_id + '/leads?limit=' + limit + '&with_fullname=true';
|
|
134
|
+
this.logger.log('[TILEDESK-SERVICE] - GET ALL ACTIVE LEADS (LIMIT 10000) - URL', url);
|
|
135
|
+
|
|
136
|
+
const httpOptions = {
|
|
137
|
+
headers: new HttpHeaders({
|
|
138
|
+
'Content-Type': 'application/json',
|
|
139
|
+
Authorization: token
|
|
140
|
+
})
|
|
141
|
+
};
|
|
142
|
+
return this.http
|
|
143
|
+
.get(url, httpOptions)
|
|
144
|
+
.pipe(map((res: any) => {
|
|
145
|
+
this.logger.log('[TILEDESK-SERVICE] - GET ALL ACTIVE LEADS (LIMIT 10000) ', res);
|
|
146
|
+
return res
|
|
147
|
+
}))
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
// ---------------------------------------------
|
|
152
|
+
// @ Create new project user to get new lead ID
|
|
153
|
+
// ---------------------------------------------
|
|
154
|
+
public createNewProjectUserToGetNewLeadID(project_id: string, token: string) {
|
|
155
|
+
const url = this.apiUrl + project_id + '/project_users/'
|
|
156
|
+
this.logger.log('[TILEDESK-SERVICE] - CREATE NEW PROJECT USER TO GET NEW LEAD ID url ', url);
|
|
157
|
+
const httpOptions = {
|
|
158
|
+
headers: new HttpHeaders({
|
|
159
|
+
'Content-Type': 'application/json',
|
|
160
|
+
Authorization: token
|
|
161
|
+
})
|
|
162
|
+
};
|
|
163
|
+
const body = {};
|
|
164
|
+
return this.http
|
|
165
|
+
.post(url, body, httpOptions)
|
|
166
|
+
.pipe(map((res: any) => {
|
|
167
|
+
this.logger.log('[TILEDESK-SERVICE] - CREATE NEW PROJECT USER TO GET NEW LEAD ID url ', res);
|
|
168
|
+
return res
|
|
169
|
+
}))
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// ---------------------------------------------
|
|
173
|
+
// @ Create new lead
|
|
174
|
+
// ---------------------------------------------
|
|
175
|
+
public createNewLead(leadid: string, fullname: string, leademail: string, project_id: string, token: string) {
|
|
176
|
+
const url = this.apiUrl + project_id + '/leads/'
|
|
177
|
+
this.logger.log('[TILEDESK-SERVICE] - CREATE NEW LEAD url ', url);
|
|
178
|
+
|
|
179
|
+
const httpOptions = {
|
|
180
|
+
headers: new HttpHeaders({
|
|
181
|
+
'Content-Type': 'application/json',
|
|
182
|
+
Authorization: token
|
|
183
|
+
})
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
const body = { 'lead_id': leadid, 'fullname': fullname, 'email': leademail };
|
|
187
|
+
this.logger.log('[TILEDESK-SERVICE] - CREATE NEW LEAD ', body);
|
|
188
|
+
|
|
189
|
+
return this.http
|
|
190
|
+
.post(url, body, httpOptions)
|
|
191
|
+
.pipe(map((res: any) => {
|
|
192
|
+
this.logger.log('[TILEDESK-SERVICE] - CREATE NEW LEAD RES ', res);
|
|
193
|
+
return res
|
|
194
|
+
}))
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// -------------------------------------------------------------------------------------
|
|
198
|
+
// @ Get all bots of the project (with all=true the response return also the identity bot)
|
|
199
|
+
// -------------------------------------------------------------------------------------
|
|
200
|
+
public getAllBotByProjectId(project_id: string, token: string) {
|
|
201
|
+
|
|
202
|
+
const url = this.apiUrl + project_id + '/faq_kb?all=true'
|
|
203
|
+
this.logger.log('[TILEDESK-SERVICE] - GET ALL BOTS BY PROJECT ID - URL', url);
|
|
204
|
+
|
|
205
|
+
const httpOptions = {
|
|
206
|
+
headers: new HttpHeaders({
|
|
207
|
+
'Content-Type': 'application/json',
|
|
208
|
+
Authorization: token
|
|
209
|
+
})
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
return this.http
|
|
213
|
+
.get(url, httpOptions)
|
|
214
|
+
.pipe(map((res: any) => {
|
|
215
|
+
this.logger.log('[TILEDESK-SERVICE] - GET ALL BOTS BY PROJECT ID - RES ', res);
|
|
216
|
+
return res
|
|
217
|
+
}))
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
// -------------------------------------------------------------------------------------
|
|
221
|
+
// @ Get all DEPTS of the project
|
|
222
|
+
// -------------------------------------------------------------------------------------
|
|
223
|
+
public getDeptsByProjectId(project_id: string, token: string) {
|
|
224
|
+
|
|
225
|
+
const url = this.apiUrl + project_id + '/departments/allstatus';
|
|
226
|
+
this.logger.log('[TILEDESK-SERVICE] - GET DEPTS (ALL STATUS) - URL', url);
|
|
227
|
+
|
|
228
|
+
const httpOptions = {
|
|
229
|
+
headers: new HttpHeaders({
|
|
230
|
+
'Content-Type': 'application/json',
|
|
231
|
+
Authorization: token
|
|
232
|
+
})
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
return this.http
|
|
236
|
+
.get(url, httpOptions)
|
|
237
|
+
.pipe(map((res: any) => {
|
|
238
|
+
this.logger.log('[TILEDESK-SERVICE] - GET DEPTS (ALL STATUS) - RES ', res);
|
|
239
|
+
return res
|
|
240
|
+
}))
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// -----------------------------------------------------------------------------------------
|
|
244
|
+
// @ Create ticket
|
|
245
|
+
// -----------------------------------------------------------------------------------------
|
|
246
|
+
createInternalRequest(requester_id: string, request_id: string, subject: string, message: string, departmentid: string, participantid: string, ticketpriority: string, project_id: string, token: string) {
|
|
247
|
+
|
|
248
|
+
const url = this.apiUrl + project_id + '/requests/' + request_id + '/messages'
|
|
249
|
+
this.logger.log('[WS-REQUESTS-SERV] - CREATE INTERNAL REQUEST URL ', url)
|
|
250
|
+
|
|
251
|
+
const httpOptions = {
|
|
252
|
+
headers: new HttpHeaders({
|
|
253
|
+
'Content-Type': 'application/json',
|
|
254
|
+
Authorization: token
|
|
255
|
+
})
|
|
256
|
+
};
|
|
257
|
+
// this.logger.log('JOIN FUNCT OPTIONS ', options);
|
|
258
|
+
let body = {}
|
|
259
|
+
body = { 'sender': requester_id, 'subject': subject, 'text': message, 'departmentid': departmentid, 'channel': { 'name': 'form' }, 'priority': ticketpriority };
|
|
260
|
+
if (participantid !== undefined) {
|
|
261
|
+
body['participants'] = [participantid]
|
|
262
|
+
} else {
|
|
263
|
+
body['participants'] = participantid
|
|
264
|
+
}
|
|
265
|
+
// , 'participants': [participantid]
|
|
266
|
+
|
|
267
|
+
this.logger.log('[WS-REQUESTS-SERV] - CREATE INTERNAL REQUEST body ', body);
|
|
268
|
+
return this.http
|
|
269
|
+
.post(url, body, httpOptions)
|
|
270
|
+
.pipe(map((res: any) => {
|
|
271
|
+
this.logger.log('[TILEDESK-SERVICE] - CREATE NEW LEAD RES ', res);
|
|
272
|
+
return res
|
|
273
|
+
}))
|
|
274
|
+
}
|
|
94
275
|
|
|
95
276
|
|
|
277
|
+
// -------------------------------------------------------------------------------------
|
|
278
|
+
// @ Create - Save (POST) new canned response
|
|
279
|
+
// -------------------------------------------------------------------------------------
|
|
280
|
+
public createCannedResponse(message: string, title: string, project_id: string, token: string) {
|
|
281
|
+
this.logger.log('[TILEDESK-SERVICE] - CREATE CANNED-RES - token', token);
|
|
282
|
+
const url = this.apiUrl + project_id + '/canned/'
|
|
283
|
+
this.logger.log('[TILEDESK-SERVICE] - CREATE CANNED-RES - URL', url);
|
|
284
|
+
|
|
285
|
+
const httpOptions = {
|
|
286
|
+
headers: new HttpHeaders({
|
|
287
|
+
'Content-Type': 'application/json',
|
|
288
|
+
Authorization: token
|
|
289
|
+
})
|
|
290
|
+
};
|
|
96
291
|
|
|
292
|
+
const body = { 'text': message, 'title': title };
|
|
293
|
+
|
|
294
|
+
this.logger.log('[TILEDESK-SERVICE] CREATE CANNED-RES - BODY ', body);
|
|
295
|
+
|
|
296
|
+
return this.http
|
|
297
|
+
.post(url, JSON.stringify(body), httpOptions)
|
|
298
|
+
.pipe(map((res: any) => {
|
|
299
|
+
this.logger.log('[TILEDESK-SERVICE] - CREATE CANNED-RES - RES ', res);
|
|
300
|
+
return res
|
|
301
|
+
}))
|
|
302
|
+
|
|
303
|
+
}
|
|
97
304
|
|
|
305
|
+
// .post(url, JSON.stringify(body), options)
|
|
306
|
+
// .map((res) => res.json());
|
|
98
307
|
|
|
99
308
|
}
|
|
@@ -39,9 +39,15 @@ import { TooltipModule, TooltipOptions } from 'ng2-tooltip-directive';
|
|
|
39
39
|
import { OptionHeaderComponent } from '../components/conversation-detail/option-header/option-header.component';
|
|
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
|
+
import { SidebarComponent } from '../components/sidebar/sidebar.component';
|
|
43
|
+
import { SidebarUserDetailsComponent } from '../components/sidebar-user-details/sidebar-user-details.component';
|
|
42
44
|
import { ProjectItemComponent } from '../components/project-item/project-item.component';
|
|
43
45
|
import { DefaultTooltipOptions } from 'src/chat21-core/utils/utils';
|
|
44
|
-
|
|
46
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
47
|
+
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
48
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
49
|
+
|
|
50
|
+
// import { MessageTextAreaComponent } from '../components/conversation-detail/message-text-area/message-text-area.component'; // MessageTextAreaComponent is part of the declarations ConversationDetailPageModule
|
|
45
51
|
|
|
46
52
|
@NgModule({
|
|
47
53
|
declarations: [
|
|
@@ -53,6 +59,8 @@ import { DefaultTooltipOptions } from 'src/chat21-core/utils/utils';
|
|
|
53
59
|
ListConversationsComponent,
|
|
54
60
|
IonListConversationsComponent,
|
|
55
61
|
ImageViewerComponent,
|
|
62
|
+
SidebarComponent,
|
|
63
|
+
SidebarUserDetailsComponent,
|
|
56
64
|
ProjectItemComponent,
|
|
57
65
|
IonConversationDetailComponent,
|
|
58
66
|
ConversationContentComponent,
|
|
@@ -87,6 +95,8 @@ import { DefaultTooltipOptions } from 'src/chat21-core/utils/utils';
|
|
|
87
95
|
AvatarProfileComponent,
|
|
88
96
|
DdpHeaderComponent,
|
|
89
97
|
ImageViewerComponent,
|
|
98
|
+
SidebarComponent,
|
|
99
|
+
SidebarUserDetailsComponent,
|
|
90
100
|
ProjectItemComponent,
|
|
91
101
|
UserPresenceComponent,
|
|
92
102
|
UserTypingComponent,
|
|
@@ -117,6 +127,9 @@ import { DefaultTooltipOptions } from 'src/chat21-core/utils/utils';
|
|
|
117
127
|
|
|
118
128
|
],
|
|
119
129
|
imports: [
|
|
130
|
+
MatTooltipModule,
|
|
131
|
+
MatSlideToggleModule,
|
|
132
|
+
MatSnackBarModule,
|
|
120
133
|
CommonModule,
|
|
121
134
|
IonicModule,
|
|
122
135
|
MomentModule,
|
|
@@ -4,42 +4,76 @@ import { NgModule, Directive, ElementRef } from '@angular/core';
|
|
|
4
4
|
})
|
|
5
5
|
export class ScrollbarThemeDirective {
|
|
6
6
|
constructor(el: ElementRef) {
|
|
7
|
+
// ::-webkit-scrollbar {
|
|
8
|
+
// width: 6px;
|
|
9
|
+
// height: 8px;
|
|
10
|
+
// }
|
|
11
|
+
// ::-webkit-scrollbar-track {
|
|
12
|
+
// background-color: #f9f9f9;
|
|
13
|
+
// }
|
|
14
|
+
// ::-webkit-scrollbar-thumb {
|
|
15
|
+
// background-color: #b9b9b9;
|
|
16
|
+
// border-radius: 0px;
|
|
17
|
+
// }
|
|
18
|
+
|
|
19
|
+
// ::-webkit-scrollbar-thumb:hover {
|
|
20
|
+
// background-color: #727272;
|
|
21
|
+
// }
|
|
22
|
+
|
|
7
23
|
const stylesheet = `
|
|
8
24
|
::-webkit-scrollbar {
|
|
9
|
-
|
|
25
|
+
width: 6px;
|
|
26
|
+
height: 8px;
|
|
10
27
|
}
|
|
11
28
|
::-webkit-scrollbar-track {
|
|
12
|
-
background: #
|
|
29
|
+
background: #f9f9f9;
|
|
13
30
|
}
|
|
14
31
|
::-webkit-scrollbar-thumb {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
border: 4px solid #020202;
|
|
32
|
+
background-color: #b9b9b9;
|
|
33
|
+
border-radius: 0px;
|
|
18
34
|
}
|
|
19
35
|
::-webkit-scrollbar-thumb:hover {
|
|
36
|
+
background-color: #727272;
|
|
20
37
|
}
|
|
38
|
+
`;
|
|
21
39
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
40
|
+
|
|
41
|
+
// const stylesheet = `
|
|
42
|
+
// ::-webkit-scrollbar {
|
|
43
|
+
// width: 10px;
|
|
44
|
+
// }
|
|
45
|
+
// ::-webkit-scrollbar-track {
|
|
46
|
+
// background: #0f0f0f;
|
|
47
|
+
// }
|
|
48
|
+
// ::-webkit-scrollbar-thumb {
|
|
49
|
+
// border-radius: 1rem;
|
|
50
|
+
// background: linear-gradient(var(--ion-color-light-tint), var(--ion-color-light));
|
|
51
|
+
// border: 4px solid #020202;
|
|
52
|
+
// }
|
|
53
|
+
// ::-webkit-scrollbar-thumb:hover {
|
|
54
|
+
// }
|
|
55
|
+
|
|
56
|
+
// ::-webkit-scrollbar {
|
|
57
|
+
// width: 20px;
|
|
58
|
+
// }
|
|
25
59
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
60
|
+
// /* Track */
|
|
61
|
+
// ::-webkit-scrollbar-track {
|
|
62
|
+
// box-shadow: inset 0 0 5px grey;
|
|
63
|
+
// border-radius: 10px;
|
|
64
|
+
// }
|
|
31
65
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
66
|
+
// /* Handle */
|
|
67
|
+
// ::-webkit-scrollbar-thumb {
|
|
68
|
+
// background: red;
|
|
69
|
+
// border-radius: 10px;
|
|
70
|
+
// }
|
|
37
71
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
`;
|
|
72
|
+
// /* Handle on hover */
|
|
73
|
+
// ::-webkit-scrollbar-thumb:hover {
|
|
74
|
+
// background: #b30000;
|
|
75
|
+
// }
|
|
76
|
+
// `;
|
|
43
77
|
|
|
44
78
|
setTimeout(() => {
|
|
45
79
|
const styleElmt = el.nativeElement.shadowRoot.querySelector('style');
|
|
@@ -50,7 +84,7 @@ export class ScrollbarThemeDirective {
|
|
|
50
84
|
barStyle.append(stylesheet);
|
|
51
85
|
el.nativeElement.shadowRoot.appendChild(barStyle);
|
|
52
86
|
}
|
|
53
|
-
},
|
|
87
|
+
}, 0);
|
|
54
88
|
|
|
55
89
|
}
|
|
56
90
|
}
|
package/src/assets/i18n/de.json
CHANGED
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
"LABEL_LAST_ACCESS": "letzter Zugriff",
|
|
12
12
|
"LABEL_TO": "beim",
|
|
13
13
|
"ARRAY_DAYS": [
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
"Montag",
|
|
15
|
+
"Dienstag",
|
|
16
|
+
"Mittwoch",
|
|
17
|
+
"Donnerstag",
|
|
18
|
+
"Freitag",
|
|
19
|
+
"Samstag",
|
|
20
|
+
"Sonntag"
|
|
21
21
|
],
|
|
22
22
|
"LABEL_SEND": "Senden",
|
|
23
23
|
"ID_CONVERSATION": "ID-Gespräch",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"LABEL_VIDEO_CHAT": "Videoanruf",
|
|
45
45
|
"LABEL_LEAVE_GROUP": "Die Gruppe verlassen",
|
|
46
46
|
"LABEL_CLOSE_GROUP": "Nah dran",
|
|
47
|
-
"ALERT_TITLE": "
|
|
47
|
+
"ALERT_TITLE": "Aufmerksamkeit!",
|
|
48
48
|
"CLOSE_ALERT_CONFIRM_LABEL": "OK",
|
|
49
49
|
"CLOSE_ALERT_CANCEL_LABEL": "ABBRECHEN",
|
|
50
50
|
"LEAVE_ALERT_MSG": "Die Gruppe verlassen?",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"INFO_SUPPORT_USER_ADDED_MESSAGE": "{{ subject }} {{ verb }} {{ complement }}",
|
|
66
66
|
"INFO_SUPPORT_CHAT_REOPENED": "Chat wieder geöffnet",
|
|
67
67
|
"INFO_SUPPORT_CHAT_CLOSED": "Chat geschlossen",
|
|
68
|
-
"INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU":"Ihnen wurde eine neue Support-Anfrage zugewiesen",
|
|
68
|
+
"INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU": "Ihnen wurde eine neue Support-Anfrage zugewiesen",
|
|
69
69
|
"LABEL_PROFILE": "Profil",
|
|
70
70
|
"LABEL_CLOSE": "Abgeschlossen",
|
|
71
71
|
"LABEL_DISCONNECT": "Trennen",
|
|
@@ -203,7 +203,63 @@
|
|
|
203
203
|
"PINNED_PROJECT": "Gepinntes Projekt",
|
|
204
204
|
"CHANGE_PINNED_PROJECT": "Gepinntes Projekt ändern",
|
|
205
205
|
"CHANGE_TO_AVAILABLE_UNAVAILABLE": "auf verfügbar/nicht verfügbar ändern",
|
|
206
|
-
"CHANGE_TO_YOUR_STATUS_TO_AVAILABLE": "
|
|
207
|
-
"CHANGE_TO_YOUR_STATUS_TO_UNAVAILABLE": "
|
|
208
|
-
"ALL_CONVS_SERVED":"Wurden alle Gespräche bedient? Gut gemacht!"
|
|
209
|
-
}
|
|
206
|
+
"CHANGE_TO_YOUR_STATUS_TO_AVAILABLE": "Ändern Sie Ihren Status auf verfügbar",
|
|
207
|
+
"CHANGE_TO_YOUR_STATUS_TO_UNAVAILABLE": "Ändern Sie Ihren Status auf nicht verfügbar",
|
|
208
|
+
"ALL_CONVS_SERVED": "Wurden alle Gespräche bedient? Gut gemacht!",
|
|
209
|
+
"PaydPlanName": "{{projectprofile}}-Plan",
|
|
210
|
+
"PaydPlanNamePro": "Pro-Plan",
|
|
211
|
+
"PaydPlanNameEnterprise": "Enterprise-Plan",
|
|
212
|
+
"ProPlanTrial": "Pro-Plan (Testversion)",
|
|
213
|
+
"FreePlan": "Kostenloser Plan",
|
|
214
|
+
"SubscriptionPaymentProblem": "Problem mit der Zahlung des Abos",
|
|
215
|
+
"ThePlanHasExpired": "Der Plan ist abgelaufen",
|
|
216
|
+
"owner": "Eigentümer",
|
|
217
|
+
"admin": "Administrator",
|
|
218
|
+
"agent": "Agent",
|
|
219
|
+
"Conversations": "Gespräche",
|
|
220
|
+
"Apps": "Anwendungen",
|
|
221
|
+
"Analytics": "Analytik",
|
|
222
|
+
"Activities": "Aktivitäten",
|
|
223
|
+
"History": "Verlauf",
|
|
224
|
+
"Settings": "Einstellungen",
|
|
225
|
+
"Resolve": "Lösen",
|
|
226
|
+
"Archive": "Archivieren",
|
|
227
|
+
"ActionNotAllowed": "Aktion nicht erlaubt",
|
|
228
|
+
"YouAreNoLongerAmongTheTeammatesManagingThisConversation":"Sie gehören nicht mehr zu den Teamkollegen, die diese Unterhaltung führen",
|
|
229
|
+
"TicketSuccessfullyCreated": "Ticket erfolgreich erstellt",
|
|
230
|
+
"Continue":"Fortsetzen",
|
|
231
|
+
"ViewArchivedConversations":"Archivierte Gespräche",
|
|
232
|
+
"ViewContactsList":"Kontaktliste",
|
|
233
|
+
"AddAsCannedResponse":"Als Standardantwort hinzufügen",
|
|
234
|
+
"AddNewCannedResponse":"Fügen Sie eine neue Standardantwort hinzu",
|
|
235
|
+
"TitleIsRequired":"Titel ist erforderlich",
|
|
236
|
+
"MessageIsRequired":"Nachricht ist erforderlich",
|
|
237
|
+
"Already_present_in_the_dashboard_json":"........",
|
|
238
|
+
"CreateTicket": "Ticket erstellen",
|
|
239
|
+
"Requester": "Anfragesteller",
|
|
240
|
+
"ViewRequesterDetails": "Anfordererdetails anzeigen",
|
|
241
|
+
"Priority": "Priorität",
|
|
242
|
+
"urgent": "Dringend",
|
|
243
|
+
"high": "Hohe",
|
|
244
|
+
"medium": "Mittlere",
|
|
245
|
+
"low": "Niedrige",
|
|
246
|
+
"SelectRequester": "Anforderer auswählen",
|
|
247
|
+
"AddRequester": "Anforderer hinzufügen",
|
|
248
|
+
"Subject": "Betreff",
|
|
249
|
+
"SelectAssignee": "Wählen Sie den Empfänger aus",
|
|
250
|
+
"Message": "Nachrichte",
|
|
251
|
+
"CreateNewRequester": "Neuen Anforderer erstellen",
|
|
252
|
+
"Name": "Name",
|
|
253
|
+
"NameIsRequired": "Name ist erforderlich",
|
|
254
|
+
"EnterValidEmail": "Geben Sie eine gültige Email Adresse ein",
|
|
255
|
+
"Title": "Titel",
|
|
256
|
+
"Add": "Hinzufügen",
|
|
257
|
+
"AddCustomization": "Personalisierung hinzufügen",
|
|
258
|
+
"SelectACustomizationToAddToYourMessage": "Personalisierungs-Feld auswählen",
|
|
259
|
+
"recipient_name_desc": "Der Vorname eines Besuchers wird zur Nachricht hinzugefügt.",
|
|
260
|
+
"agent_name_desc": "Der Name des Betreuers wird zur Nachricht hinzugefügt.",
|
|
261
|
+
"First_name_of_recipient": "Vorname des Empfängers",
|
|
262
|
+
"First_name_of_agent": "Vorname des Betreuers",
|
|
263
|
+
"EnterCannedResponseTitle": "Titel der Vordefinierten Anfrage eingeben",
|
|
264
|
+
"WriteMsgToSendToYourVisitors": "Verfassen Sie eine vordefinierte Antwort für Ihre Besucher"
|
|
265
|
+
}
|
package/src/assets/i18n/en.json
CHANGED
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"LABEL_VIDEO_CHAT": "Video call",
|
|
45
45
|
"LABEL_LEAVE_GROUP": "Leave the group",
|
|
46
46
|
"LABEL_CLOSE_GROUP": "Close",
|
|
47
|
-
"ALERT_TITLE": "
|
|
47
|
+
"ALERT_TITLE": "Attention!",
|
|
48
48
|
"CLOSE_ALERT_CONFIRM_LABEL": "OK",
|
|
49
49
|
"CLOSE_ALERT_CANCEL_LABEL": "CANCEL",
|
|
50
50
|
"LEAVE_ALERT_MSG": "Leave the group?",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"INFO_SUPPORT_USER_ADDED_MESSAGE": "{{ subject }} {{ verb }} {{ complement }}",
|
|
66
66
|
"INFO_SUPPORT_CHAT_REOPENED": "Chat reopened",
|
|
67
67
|
"INFO_SUPPORT_CHAT_CLOSED": "Chat closed",
|
|
68
|
-
"INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU":"A new support request has been assigned to you",
|
|
68
|
+
"INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU": "A new support request has been assigned to you",
|
|
69
69
|
"LABEL_PROFILE": "Profile",
|
|
70
70
|
"LABEL_CLOSE": "Closed",
|
|
71
71
|
"LABEL_DISCONNECT": "Disconnect",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"LABEL_INFO_USER": "Info user",
|
|
109
109
|
"LABEL_IS_WRITING": "typing",
|
|
110
110
|
"LABEL_VERSION": "version",
|
|
111
|
-
"LABEL_CONTACTS": "
|
|
111
|
+
"LABEL_CONTACTS": "Contacts",
|
|
112
112
|
"LABEL_PLACEHOLDER": "type your message..",
|
|
113
113
|
"LABEL_START_NW_CONV": "New conversation",
|
|
114
114
|
"LABEL_FIRST_MSG": "Describe shortly your problem, you will be contacted by an agent.",
|
|
@@ -203,7 +203,63 @@
|
|
|
203
203
|
"PINNED_PROJECT": "Pinned project",
|
|
204
204
|
"CHANGE_PINNED_PROJECT": "Change pinned project",
|
|
205
205
|
"CHANGE_TO_AVAILABLE_UNAVAILABLE": "change to available/unavailable",
|
|
206
|
-
"CHANGE_TO_YOUR_STATUS_TO_AVAILABLE": "
|
|
207
|
-
"CHANGE_TO_YOUR_STATUS_TO_UNAVAILABLE": "
|
|
208
|
-
"ALL_CONVS_SERVED": "Were all conversations served? Good job!"
|
|
206
|
+
"CHANGE_TO_YOUR_STATUS_TO_AVAILABLE": "Change your status to available",
|
|
207
|
+
"CHANGE_TO_YOUR_STATUS_TO_UNAVAILABLE": "Change your status to unavailable",
|
|
208
|
+
"ALL_CONVS_SERVED": "Were all conversations served? Good job!",
|
|
209
|
+
"PaydPlanName": "{{projectprofile}} Plan",
|
|
210
|
+
"PaydPlanNamePro": "Pro Plan",
|
|
211
|
+
"PaydPlanNameEnterprise": "Enterprise plan",
|
|
212
|
+
"ProPlanTrial": "Pro Plan (trial)",
|
|
213
|
+
"FreePlan":"Free Plan",
|
|
214
|
+
"SubscriptionPaymentProblem": "Subscription payment problem",
|
|
215
|
+
"ThePlanHasExpired": "The plan has expired",
|
|
216
|
+
"owner": "Owner",
|
|
217
|
+
"admin": "Administrator",
|
|
218
|
+
"agent": "Agent",
|
|
219
|
+
"Conversations": "Conversations",
|
|
220
|
+
"Apps":"Apps",
|
|
221
|
+
"Analytics":"Analytics",
|
|
222
|
+
"Activities": "Activities",
|
|
223
|
+
"History": "History",
|
|
224
|
+
"Settings": "Settings",
|
|
225
|
+
"Resolve": "Resolve",
|
|
226
|
+
"Archive": "Archive",
|
|
227
|
+
"ActionNotAllowed":"Action not allowed",
|
|
228
|
+
"YouAreNoLongerAmongTheTeammatesManagingThisConversation":"You are no longer among the teammates managing this conversation",
|
|
229
|
+
"TicketSuccessfullyCreated":"Ticket successfully created",
|
|
230
|
+
"Continue":"Continue",
|
|
231
|
+
"ViewArchivedConversations":"Archived conversations",
|
|
232
|
+
"ViewContactsList":"Contacts list",
|
|
233
|
+
"AddAsCannedResponse":"Add as canned response",
|
|
234
|
+
"AddNewCannedResponse":"Add a new canned response",
|
|
235
|
+
"TitleIsRequired":"Title is required",
|
|
236
|
+
"MessageIsRequired":"Message is required",
|
|
237
|
+
"Already_present_in_the_dashboard_json":"........",
|
|
238
|
+
"CreateTicket": "Create ticket",
|
|
239
|
+
"Requester": "Requester",
|
|
240
|
+
"ViewRequesterDetails": "View requester details",
|
|
241
|
+
"Priority": "Priority",
|
|
242
|
+
"urgent": "Urgent",
|
|
243
|
+
"high": "High",
|
|
244
|
+
"medium": "Medium",
|
|
245
|
+
"low": "Low",
|
|
246
|
+
"SelectRequester": "Select requester",
|
|
247
|
+
"AddRequester": "Add requester",
|
|
248
|
+
"Subject": "Subject",
|
|
249
|
+
"SelectAssignee": "Select assignee",
|
|
250
|
+
"Message": "Message",
|
|
251
|
+
"CreateNewRequester": "Create new requester",
|
|
252
|
+
"Name": "Name",
|
|
253
|
+
"NameIsRequired": "Name is required",
|
|
254
|
+
"EnterValidEmail": "Enter a valid email address",
|
|
255
|
+
"Title": "Title",
|
|
256
|
+
"Add": "Add",
|
|
257
|
+
"AddCustomization": "Add personalisation",
|
|
258
|
+
"SelectACustomizationToAddToYourMessage": "Select a personalisation value to add to message",
|
|
259
|
+
"recipient_name_desc": "The first name of the person the agent replying to will be added to message.",
|
|
260
|
+
"agent_name_desc": "The name of the agent who is replying will be added to the message.",
|
|
261
|
+
"First_name_of_recipient": "First name of recipient",
|
|
262
|
+
"First_name_of_agent": "First name of agent",
|
|
263
|
+
"EnterCannedResponseTitle": "Enter canned response title",
|
|
264
|
+
"WriteMsgToSendToYourVisitors": "Write a canned response message to send to your visitors"
|
|
209
265
|
}
|