@chat21/chat21-ionic 3.0.60-rc2 → 3.0.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE +661 -21
  3. package/deploy_pre.sh +45 -6
  4. package/deploy_prod.sh +34 -9
  5. package/env.sample +1 -1
  6. package/package.json +1 -1
  7. package/src/app/app.component.ts +45 -21
  8. package/src/app/app.module.ts +2 -2
  9. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +62 -36
  10. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +42 -13
  11. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +13 -6
  12. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +38 -3
  13. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +8 -6
  14. package/src/app/components/image-viewer/image-viewer.component.scss +2 -2
  15. package/src/app/components/project-item/project-item.component.html +140 -118
  16. package/src/app/components/project-item/project-item.component.scss +167 -90
  17. package/src/app/components/project-item/project-item.component.ts +41 -20
  18. package/src/app/pages/conversation-detail/conversation-detail.module.ts +2 -1
  19. package/src/app/pages/conversation-detail/conversation-detail.page.html +36 -43
  20. package/src/app/pages/conversation-detail/conversation-detail.page.ts +199 -110
  21. package/src/app/pages/conversations-list/conversations-list.page.html +9 -5
  22. package/src/app/pages/conversations-list/conversations-list.page.scss +12 -1
  23. package/src/app/pages/conversations-list/conversations-list.page.ts +24 -6
  24. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +16 -11
  25. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +157 -63
  26. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +51 -16
  27. package/src/app/shared/shared.module.ts +6 -5
  28. package/src/assets/i18n/de.json +209 -0
  29. package/src/assets/i18n/en.json +24 -8
  30. package/src/assets/i18n/es.json +209 -0
  31. package/src/assets/i18n/fr.json +209 -0
  32. package/src/assets/i18n/it.json +42 -34
  33. package/src/assets/i18n/pt.json +209 -0
  34. package/src/assets/i18n/ru.json +209 -0
  35. package/src/assets/i18n/tr.json +209 -0
  36. package/src/assets/js/chat21client.js +16 -3
  37. package/src/chat-config-mqtt.json +2 -1
  38. package/src/chat-config-pre-test.json +2 -0
  39. package/src/chat-config-template.json +1 -0
  40. package/src/chat-config.json +1 -0
  41. package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +54 -43
  42. package/src/chat21-core/providers/firebase/firebase-conversations-handler.ts +23 -0
  43. package/src/chat21-core/providers/mqtt/mqtt-archivedconversations-handler.ts +1 -1
  44. package/src/chat21-core/utils/constants.ts +2 -0
  45. package/src/chat21-core/utils/utils.ts +12 -1
  46. package/src/global.scss +4 -0
@@ -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
- 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;
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
- .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;
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
- .stretchspinner-unassigned-convs .rect2 {
33
- -webkit-animation-delay: -1.1s;
34
- animation-delay: -1.1s;
126
+ }
127
+
128
+ @keyframes dash {
129
+ 0% {
130
+ stroke-dasharray: 1, 200;
131
+ stroke-dashoffset: 0;
35
132
  }
36
-
37
- .stretchspinner-unassigned-convs .rect3 {
38
- -webkit-animation-delay: -1s;
39
- animation-delay: -1s;
133
+ 50% {
134
+ stroke-dasharray: 89, 200;
135
+ stroke-dashoffset: -35px;
40
136
  }
41
-
42
- .stretchspinner-unassigned-convs .rect4 {
43
- -webkit-animation-delay: -0.9s;
44
- animation-delay: -0.9s;
137
+ 100% {
138
+ stroke-dasharray: 89, 200;
139
+ stroke-dashoffset: -124px;
45
140
  }
46
-
47
- .stretchspinner-unassigned-convs .rect5 {
48
- -webkit-animation-delay: -0.8s;
49
- animation-delay: -0.8s;
141
+ }
142
+
143
+ @keyframes color {
144
+ 100%,
145
+ 0% {
146
+ stroke: #3ea9f5;
50
147
  }
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
- }
148
+ 50% {
149
+ stroke: #ff5722;
61
150
  }
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
- }
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
- .hide-stretchspinner {
78
- display: none;
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() unassigned_convs_url: any;
18
- unassigned_convs_url_sanitized: any;
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 = ['UnassignedConversations', 'NewConversations'];
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] - UNASSIGNED CONVS URL (ngOnInit)', this.unassigned_convs_url);
51
- this.unassigned_convs_url_sanitized = this.sanitizer.sanitize(SecurityContext.URL, this.unassigned_convs_url)
52
- this.logger.log('[UNASSIGNED-CONVS-PAGE] - UNASSIGNED CONVS URL SANITIZED (ngOnInit)', this.unassigned_convs_url_sanitized);
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.unassigned_convs_url_sanitized;
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
- // this.getIframeHaLoaded()
76
+ this.getIframeHaLoaded()
77
+
67
78
  }
68
79
 
69
80
  getIframeHaLoaded() {
70
81
  var self = this;
71
- var iframe = document.getElementById('unassigned-convs-iframe') as HTMLIFrameElement;;
72
- this.logger.log('[APP-STORE-INSTALL] GET iframe ', iframe)
73
- if (iframe) {
74
- iframe.addEventListener("load", function () {
75
- self.logger.log("[APP-STORE-INSTALL] GET - Finish");
76
- let spinnerElem = <HTMLElement>document.querySelector('.stretchspinner-unassigned-convs')
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 {
@@ -35,16 +35,17 @@ import { InfoSupportGroupComponent } from '../components/conversation-info/info-
35
35
  import { InfoDirectComponent } from '../components/conversation-info/info-direct/info-direct.component';
36
36
  import { AdvancedInfoAccordionComponent } from '../components/conversation-info/advanced-info-accordion/advanced-info-accordion.component';
37
37
  import { InfoGroupComponent } from '../components/conversation-info/info-group/info-group.component';
38
- import { TooltipModule } from 'ng2-tooltip-directive';
38
+ 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
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 { DefaultTooltipOptions } from 'src/chat21-core/utils/utils';
44
+ // import { MessageTextAreaComponent } from '../components/conversation-detail/message-text-area/message-text-area.component';
44
45
 
45
46
  @NgModule({
46
47
  declarations: [
47
- MessageTextAreaComponent,
48
+ // MessageTextAreaComponent,
48
49
  AvatarProfileComponent,
49
50
  DdpHeaderComponent,
50
51
  UserPresenceComponent,
@@ -81,7 +82,7 @@ import { MessageTextAreaComponent } from '../components/conversation-detail/mess
81
82
  OptionHeaderComponent
82
83
  ],
83
84
  exports: [
84
- MessageTextAreaComponent,
85
+ // MessageTextAreaComponent,
85
86
  AutofocusDirective,
86
87
  AvatarProfileComponent,
87
88
  DdpHeaderComponent,
@@ -119,7 +120,7 @@ import { MessageTextAreaComponent } from '../components/conversation-detail/mess
119
120
  CommonModule,
120
121
  IonicModule,
121
122
  MomentModule,
122
- TooltipModule
123
+ TooltipModule.forRoot(DefaultTooltipOptions as TooltipOptions)
123
124
 
124
125
  ],
125
126
  schemas: [
@@ -0,0 +1,209 @@
1
+ {
2
+ "LABEL_TU": "sie: ",
3
+ "LABEL_MSG_PUSH_START_CHAT": "Noch kein Gespräch",
4
+ "LABEL_MSG_START_CHAT": "Fangen Sie an zu chatten",
5
+ "LABEL_ACTIVE_NOW": "erhältlich",
6
+ "LABEL_AVAILABLE": "erhältlich",
7
+ "LABEL_NOT_AVAILABLE": "Nicht verfügbar",
8
+ "LABEL_NO_MSG_HERE": "Hier noch keine Nachricht...",
9
+ "LABEL_TODAY": "heute",
10
+ "LABEL_TOMORROW": "gestern",
11
+ "LABEL_LAST_ACCESS": "letzter Zugriff",
12
+ "LABEL_TO": "beim",
13
+ "ARRAY_DAYS": [
14
+ "Montag",
15
+ "Dienstag",
16
+ "Mittwoch",
17
+ "Donnerstag",
18
+ "Freitag",
19
+ "Samstag",
20
+ "Sonntag"
21
+ ],
22
+ "LABEL_SEND": "Senden",
23
+ "ID_CONVERSATION": "ID-Gespräch",
24
+ "LABEL_CREATED_THE": "Gruppe erstellt am",
25
+ "LABEL_INFO_ATTRIBUTE": "Attribute",
26
+ "LABEL_INFO_ADVANCED": "Fortschrittlich",
27
+ "LABEL_CLIENT": "Klient ",
28
+ "LABEL_SOURCEPAGE": "Quelle ",
29
+ "LABEL_DEPARTMENT_ID": "Abteilungs-ID ",
30
+ "LABEL_DEPARTMENT_NAME": "Abteilung ",
31
+ "requester_id": "Anforderer-ID",
32
+ "projectId": "Projekt-ID ",
33
+ "LABEL_NAME": "Nutzername ",
34
+ "LABEL_EMAIL": "Email ",
35
+ "LABEL_MEMBERS": "Teilnehmer",
36
+ "LABEL_INFO_MESSAGE": "Info-Nachricht",
37
+ "LABEL_READ_BY": "Gelesen von",
38
+ "LABEL_STATUS_MESSAGE": "Zustand",
39
+ "LABEL_SENT_THE": "desendet am",
40
+ "LABEL_SENT_BY": "von",
41
+ "LABEL_GUEST": "Gast",
42
+ "LABEL_CREATE_TICKET": "Ticket erstellen",
43
+ "LABEL_SEND_BY_EMAIL": "Per E-Mail gesendet",
44
+ "LABEL_VIDEO_CHAT": "Videoanruf",
45
+ "LABEL_LEAVE_GROUP": "Die Gruppe verlassen",
46
+ "LABEL_CLOSE_GROUP": "Nah dran",
47
+ "ALERT_TITLE": "WARNUNG",
48
+ "CLOSE_ALERT_CONFIRM_LABEL": "OK",
49
+ "CLOSE_ALERT_CANCEL_LABEL": "ABBRECHEN",
50
+ "LEAVE_ALERT_MSG": "Die Gruppe verlassen?",
51
+ "CLOSE_ALERT_MSG": "Gespräch beenden?",
52
+ "VIDEOCHAT_ALERT_MSG": "Dienst nicht verfügbar",
53
+ "CLOSING_CONVERSATION_SPINNER_MSG": "Warten Sie mal.<br> Wir beenden das Gespräch",
54
+ "CONVERSATION_CLOSED_ALERT_MSG": "Die Konversation wurde erfolgreich geschlossen.",
55
+ "CANNOT_CLOSE_CONVERSATION_ALERT_MSG": "Konversation konnte nicht geschlossen werden",
56
+ "LEAVING_GROUP_SPINNER_MSG": "Warten Sie mal.<br> Sie verlassen die Gruppe",
57
+ "CONVERSATION_LEFT_ALERT_MSG": "Die Gruppe wurde erfolgreich verlassen.",
58
+ "CANNOT_LEAVE_GROUP_ALERT_MSG": "Die Gruppe konnte nicht verlassen werden",
59
+ "GREETING": "Hallo, {{ value }}",
60
+ "ARCHIVED_CONVERSATIONS_PAGE_NO_CONVERSATIONS_ARCHIVED": "Es gibt keine Konversation im Archiv",
61
+ "INFO_SUPPORT_USER_ADDED_SUBJECT": "sie",
62
+ "INFO_SUPPORT_USER_ADDED_YOU_VERB": "wurden hinzugefügt ",
63
+ "INFO_SUPPORT_USER_ADDED_VERB": "beigetreten",
64
+ "INFO_SUPPORT_USER_ADDED_COMPLEMENT": "der Chat",
65
+ "INFO_SUPPORT_USER_ADDED_MESSAGE": "{{ subject }} {{ verb }} {{ complement }}",
66
+ "INFO_SUPPORT_CHAT_REOPENED": "Chat wieder geöffnet",
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",
69
+ "LABEL_PROFILE": "Profil",
70
+ "LABEL_CLOSE": "Abgeschlossen",
71
+ "LABEL_DISCONNECT": "Trennen",
72
+ "LABEL_NEW_CHAT": "Neuer Chat",
73
+ "LABEL_FORGOT_PASSWORD": "Haben Sie Ihr Passwort vergessen?",
74
+ "LABEL_SIGNIN": "Anmelden",
75
+ "LABEL_SIGNIN_TO": "Anmelden bei",
76
+ "LABEL_SIGNIN_ERROR": "Anmeldefehler",
77
+ "LABEL_PASSWORD": "Passwort",
78
+ "LABEL_ERROR_EMAIL": "Geben Sie eine gültige E-Mail-Adresse an.",
79
+ "LABEL_ERROR_PASSWORD": "Das Passwort muss mindestens 6 Zeichen lang sein.",
80
+ "LABEL_LOGIN": "Anmeldung",
81
+ "LABEL_LOGOUT": "Ausloggen",
82
+ "LABEL_WELCOME_TO": "Willkommen zu",
83
+ "LABEL_SIGNUP": "Anmelden",
84
+ "LABEL_ALREDY_HAVE_AN_ACCOUNT": "Sie haben bereits ein Konto?",
85
+ "LABEL_DONT_HAVE_AN_ACCOUNT_YET": "Sie haben noch kein Konto?",
86
+ "LABEL_FORGOT_YOUR_PASSWORD": "Passwort vergessen?",
87
+ "LABEL_CLICK_HERE": "Hier klicken",
88
+ "LABEL_REGISTRATION": "Anmeldung",
89
+ "LABEL_PLACEHOLDER_EMAIL": "Deine E-Mail",
90
+ "LABEL_PLACEHOLDER_PASSWORD": "Ihr Passwort",
91
+ "LABEL_PLACEHOLDER_NAME": "Dein Name",
92
+ "LABEL_PLACEHOLDER_LAST_NAME": "Ihr Nachname",
93
+ "LABEL_LAST_NAME": "Nachname",
94
+ "LABEL_FIELD_NOT_EMPTY": "Das Feld darf nicht leer sein.",
95
+ "LABEL_NEW_PASSWORD": "Generieren Sie ein neues Passwort",
96
+ "LABEL_CLOSED": "Abgeschlossen",
97
+ "LABEL_INFO": "Informationen",
98
+ "ALERT_NOTIFICATION": "Warnung: Das Senden von Benachrichtigungen ist deaktiviert, ändert die Browsereinstellungen, um das Senden von Benachrichtigungen zuzulassen.",
99
+ "LABEL_EXTERNAL_ID": "Externe ID",
100
+ "LABEL_IAT": "Iat",
101
+ "LABEL_REQUEST_DETAIL": "Einzelheiten anfordern",
102
+ "LABEL_ENTER_MSG": "Geben Sie eine Nachricht ein oder drücken Sie / für vorgefertigte Antworten",
103
+ "LABEL_ENTER_MSG_SHORT": "Geben Sie eine Nachricht ein",
104
+ "LABEL_ENTER_MSG_SHORTER": "Eingeben...",
105
+ "LABEL_MSG_LOGIN_TILEDESK": "Gehen Sie zum Login, um mit dem Chatten zu beginnen",
106
+ "LABEL_ARCHIVED": "Archiviert",
107
+ "LABEL_INFO_CONVERSATION": "Infogespräch",
108
+ "LABEL_INFO_USER": "Info-Benutzer",
109
+ "LABEL_IS_WRITING": "tippen",
110
+ "LABEL_VERSION": "Ausführung",
111
+ "LABEL_CONTACTS": "Kontakte",
112
+ "LABEL_PLACEHOLDER": "Geben Sie Ihre Nachricht ein..",
113
+ "LABEL_START_NW_CONV": "Neues Gespräch",
114
+ "LABEL_FIRST_MSG": "Beschreiben Sie kurz Ihr Problem, Sie werden von einem Agenten kontaktiert.",
115
+ "LABEL_FIRST_MSG_NO_AGENTS": "🤔 Alle Operatoren sind im Moment offline. Du kannst dein Problem trotzdem schildern. Sie wird dem Support-Team zugewiesen, das Ihnen so schnell wie möglich antworten wird.",
116
+ "LABEL_SELECT_TOPIC": "Wähle ein Thema",
117
+ "LABEL_COMPLETE_FORM": "Füllen Sie das Formular aus, um ein Gespräch mit dem nächsten verfügbaren Agenten zu beginnen.",
118
+ "LABEL_FIELD_NAME": "Name",
119
+ "LABEL_ERROR_FIELD_NAME": "Pflichtfeld (mindestens 5 Zeichen).",
120
+ "LABEL_FIELD_EMAIL": "Email",
121
+ "LABEL_ERROR_FIELD_EMAIL": "Geben sie eine gültige E-Mail-Adresse an.",
122
+ "LABEL_WRITING": "schreibt...",
123
+ "AGENT_NOT_AVAILABLE": " Offline",
124
+ "AGENT_AVAILABLE": " Online",
125
+ "GUEST_LABEL": "Gast",
126
+ "ALL_AGENTS_OFFLINE_LABEL": "Alle Operatoren sind im Moment offline",
127
+ "LABEL_LOADING": "Wird geladen...",
128
+ "CALLOUT_TITLE_PLACEHOLDER": "Brauchen Sie Hilfe?",
129
+ "CALLOUT_MSG_PLACEHOLDER": "Klicken Sie hier und beginnen Sie mit uns zu chatten!",
130
+ "CUSTOMER_SATISFACTION": "Kundenzufriedenheit",
131
+ "YOUR_OPINION_ON_OUR_CUSTOMER_SERVICE": "Ihre Meinung zu unserem Kundenservice",
132
+ "DOWNLOAD_TRANSCRIPT": "Transkript herunterladen",
133
+ "BACK": "Zurück",
134
+ "YOUR_RATING": "Deine Bewertung",
135
+ "WRITE_YOUR_OPINION": "Schreiben Sie Ihre Meinung ... (optional)",
136
+ "SUBMIT": "einreichen",
137
+ "THANK_YOU_FOR_YOUR_EVALUATION": "Vielen Dank für Ihre Bewertung",
138
+ "YOUR_RATING_HAS_BEEN_RECEIVED": "Ihre Bewertung ist eingegangen",
139
+ "ALERT_LEAVE_CHAT": "Möchten Sie den Chat verlassen?",
140
+ "YES": "ja",
141
+ "NO": "Nein",
142
+ "BUTTON_CLOSE_TO_ICON": "Chat minimieren",
143
+ "BUTTON_EDIT_PROFILE": "Profil aktualisieren",
144
+ "RATE_CHAT": "Chat bewerten",
145
+ "WELLCOME_TITLE": "Hallo, willkommen bei Tiledesk 👋",
146
+ "WELLCOME_MSG": "Wie können wir helfen?",
147
+ "WELLCOME": "Herzlich willkommen",
148
+ "OPTIONS": "Optionen",
149
+ "SOUND_OFF": "Ton aus",
150
+ "SOUND_ON": "Ton an",
151
+ "LOGOUT": "Ausloggen",
152
+ "CLOSE": "nah dran",
153
+ "PREV_CONVERSATIONS": "Ihre Gespräche",
154
+ "YOU": "Sie",
155
+ "SHOW_ALL_CONV": "alle zeigen",
156
+ "START_A_CONVERSATION": "Eine Konversation beginnen",
157
+ "NO_CONVERSATION": "Kein Gespräch",
158
+ "SEE_PREVIOUS": "siehe vorheriges",
159
+ "WAITING_TIME_FOUND": "Das Team antwortet normalerweise in $reply_time",
160
+ "WAITING_TIME_NOT_FOUND": "Das Team wird so schnell wie möglich antworten",
161
+ "CLOSED": "ABGESCHLOSSEN",
162
+ "PleaseSelectChatToStartMessaging": "Bitte wählen Sie einen Chat aus, um die Nachrichtenübermittlung zu starten",
163
+ "FromThisAreNew": "------------------",
164
+ "Preview": "Vorschau",
165
+ "AddACaption": "Fügen Sie eine Bildunterschrift hinzu",
166
+ "AnErrorOccurredWhileUnsubscribingFromNotifications": "Hoppla! Beim Abbestellen von Benachrichtigungen ist ein Fehler aufgetreten",
167
+ "SIGNIN_ERROR_USER_NOT_FOUND": "Authentifizierung fehlgeschlagen. Benutzer wurde nicht gefunden.",
168
+ "SIGNIN_ERROR_USER_WRONG_PSW": "Authentifizierung fehlgeschlagen. Falsches Passwort.",
169
+ "Email is required": "E-Mail ist erforderlich.",
170
+ "Email must be a valid email": "E-Mail muss eine gültige E-Mail sein.",
171
+ "Password is required": "Passwort wird benötigt.",
172
+ "Password must be at least 6 characters long": "Das Passwort muss mindestens 6 Zeichen lang sein.",
173
+ "UPLOAD_FILE_ERROR": "Beim Hochladen der Datei ist ein unerwarteter Fehler aufgetreten",
174
+ "DROP_IMAGE_HERE_TO_SEND_IT": "Legen Sie das Bild hier ab, um es zu senden",
175
+ "ONLY_IMAGE_FILES_ARE_ALLOWED_TO_PASTE": "Es dürfen nur Bilddateien und Text eingefügt werden",
176
+ "FAILED_TO_UPLOAD_THE_FORMAT_IS_NOT_SUPPORTED": "Hochladen fehlgeschlagen: Das Format wird nicht unterstützt",
177
+ "SENT_AN_IMAGE": "ein Bild geschickt",
178
+ "SENT_AN_ATTACHMENT": "Anhang gesendet",
179
+ "NO_INFORMATION_AVAILABLE": "Keine Information verfügbar",
180
+ "CONTACT_ID": "Kontakt-ID",
181
+ "USER_ID": "Benutzeridentifikation",
182
+ "CLOSE_TOAST": "Nah dran",
183
+ "WAITING_FOR_NETWORK": "Warte auf Netzwerk",
184
+ "Available": "Erhältlich",
185
+ "Unavailable": "Nicht verfügbar",
186
+ "Busy": "Beschäftigt",
187
+ "YouAreAboutToJoinThisChat": "Sie sind dabei, diesem Chat beizutreten",
188
+ "Cancel": "Abbrechen",
189
+ "AreYouSure": "Bist du sicher?",
190
+ "UnassignedConversations": "Nicht zugewiesene Gespräche",
191
+ "NewConversations": "Neue Gespräche",
192
+ "UPLOAD": "Hochladen",
193
+ "CANNED_RESPONSES": "Vorgefertigte Antworten",
194
+ "NO_CANNED_RESPONSES": "Keine vorgefertigten Antworten",
195
+ "THERE_ARE_NO_CANNED_RESPONSES_AVAILABLE": "Es sind keine vorgefertigten Antworten verfügbar",
196
+ "TO_CREATE_THEM_GO_TO_THE_PROJECT": "Um sie zu erstellen, gehen Sie zum Projekt (Sie können auf den Namen des Projekts klicken, das in der rechten Seitenleiste verfügbar ist) und klicken Sie unter dem Menüpunkt „Einstellungen“ in der Dashboard-Seitenleiste auf „Gespeicherte Antworten“ und dann auf die Schaltfläche „Antwort erstellen“",
197
+ "YES_CANNED_RESPONSES": "Sehen Sie sich die vorgefertigten Antworten an, indem Sie auf die Schaltfläche ⚡️ klicken oder ein / in den Textbereich eingeben. Sie können die Liste auch filtern, indem Sie nach dem / eingeben",
198
+ "VIEW_ALL_CONVERSATIONS": "Alle Konversationen anzeigen",
199
+ "CONVERSATIONS_IN_QUEUE": "Konversationen in der Warteschleife, wähle eine aus",
200
+ "CONVERSATION_IN_QUEUE": "Konversation in der Warteschlange, wählen Sie es aus",
201
+ "NO_CONVERSATION_IN_QUEUE": "kein Gespräch in der Warteschleife",
202
+ "PIN_A_PROJECT": "Pinnen Sie ein Projekt an",
203
+ "PINNED_PROJECT": "Gepinntes Projekt",
204
+ "CHANGE_PINNED_PROJECT": "Gepinntes Projekt ändern",
205
+ "CHANGE_TO_AVAILABLE_UNAVAILABLE": "auf verfügbar/nicht verfügbar ändern",
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
+ }
@@ -2,7 +2,7 @@
2
2
  "LABEL_TU": "you: ",
3
3
  "LABEL_MSG_PUSH_START_CHAT": "No conversation yet",
4
4
  "LABEL_MSG_START_CHAT": "Start chatting",
5
- "LABEL_ACTIVE_NOW": "active now",
5
+ "LABEL_ACTIVE_NOW": "available",
6
6
  "LABEL_AVAILABLE": "available",
7
7
  "LABEL_NOT_AVAILABLE": "not available",
8
8
  "LABEL_NO_MSG_HERE": "Still no message here...",
@@ -65,6 +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
69
  "LABEL_PROFILE": "Profile",
69
70
  "LABEL_CLOSE": "Closed",
70
71
  "LABEL_DISCONNECT": "Disconnect",
@@ -169,12 +170,12 @@
169
170
  "Email must be a valid email": "Email must be a valid email.",
170
171
  "Password is required": "Password is required.",
171
172
  "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",
173
+ "UPLOAD_FILE_ERROR": "An unexpected error occurred while uploading the file",
174
+ "DROP_IMAGE_HERE_TO_SEND_IT": "Drop image here to send it",
174
175
  "ONLY_IMAGE_FILES_ARE_ALLOWED_TO_PASTE": "Only image files and text are allowed to be pasted",
175
176
  "FAILED_TO_UPLOAD_THE_FORMAT_IS_NOT_SUPPORTED": "Failed to upload: the format is not supported",
176
177
  "SENT_AN_IMAGE": "sent an image",
177
- "SENT_AN_ATTACHMENT":"sent an attachment",
178
+ "SENT_AN_ATTACHMENT": "sent an attachment",
178
179
  "NO_INFORMATION_AVAILABLE": "No information available",
179
180
  "CONTACT_ID": "Contact ID",
180
181
  "USER_ID": "User ID",
@@ -183,11 +184,26 @@
183
184
  "Available": "Available",
184
185
  "Unavailable": "Unavailable",
185
186
  "Busy": "Busy",
186
- "YouAreAboutToJoinThisChat":"You are about to join this chat",
187
+ "YouAreAboutToJoinThisChat": "You are about to join this chat",
187
188
  "Cancel": "Cancel",
188
- "AreYouSure":"Are you sure?",
189
- "UnassignedConversations":"Unassigned Conversations",
189
+ "AreYouSure": "Are you sure?",
190
+ "UnassignedConversations": "Unassigned Conversations",
190
191
  "NewConversations": "New conversations",
191
192
  "UPLOAD": "Upload",
192
- "CANNED_RESPONSES":"Canned responses"
193
+ "CANNED_RESPONSES": "Canned responses",
194
+ "NO_CANNED_RESPONSES": "No canned responses",
195
+ "THERE_ARE_NO_CANNED_RESPONSES_AVAILABLE": "There are no canned responses available",
196
+ "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",
197
+ "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 /",
198
+ "VIEW_ALL_CONVERSATIONS": "View all conversations",
199
+ "CONVERSATIONS_IN_QUEUE": "conversations in queue, pick one",
200
+ "CONVERSATION_IN_QUEUE": "conversation in queue, pick it",
201
+ "NO_CONVERSATION_IN_QUEUE": "no conversation in queue",
202
+ "PIN_A_PROJECT": "Pin a Project",
203
+ "PINNED_PROJECT": "Pinned project",
204
+ "CHANGE_PINNED_PROJECT": "Change pinned project",
205
+ "CHANGE_TO_AVAILABLE_UNAVAILABLE": "change to available/unavailable",
206
+ "CHANGE_TO_YOUR_STATUS_TO_AVAILABLE": "change to your status to available",
207
+ "CHANGE_TO_YOUR_STATUS_TO_UNAVAILABLE": "change to your status to unavailable",
208
+ "ALL_CONVS_SERVED": "Were all conversations served? Good job!"
193
209
  }