diff --git a/bin/vue-i18n-extract/extract.sh b/bin/vue-i18n-extract/extract.sh
index c02f2093..83298b1e 100755
--- a/bin/vue-i18n-extract/extract.sh
+++ b/bin/vue-i18n-extract/extract.sh
@@ -3,8 +3,8 @@
if [ "$1" == "report" ]; then
OTHER_PARAMS=(--main-language-to-sync-keys en -l './src/i18n/*.json')
else
- OTHER_PARAMS=(--add --json-sort-keys --json-indent-characters "4,space" --no-detailed-report -l './src/i18n/en.json')
+ OTHER_PARAMS=(--add --json-sort-keys --json-indent-characters "4,space" --no-detailed-report -l './src/i18n/*.json')
fi
node ./bin/vue-i18n-extract/vue-i18n-extract.js report -v './src/**/*.?(js|vue)' \
- --no-dot-notation --add-value-for-languages en "${OTHER_PARAMS[@]}"
+ --no-dot-notation --add-value-for-languages en,it,fr,es,de "${OTHER_PARAMS[@]}"
diff --git a/src/i18n/de.json b/src/i18n/de.json
index 07e02d93..43c86b89 100644
--- a/src/i18n/de.json
+++ b/src/i18n/de.json
@@ -24,6 +24,7 @@
"Add time range": "Zeitraum hinzufügen",
"Added group {group}": "Gruppe {group} hinzugefügt",
"Added seat {seat}": "Nebenstelle {seat} hinzugefügt",
+ "Admin name": "Admin name",
"After": "Nach",
"Alias Number": "Alias-Nummer",
"Alias Numbers": "Alias-Nummern",
@@ -58,6 +59,8 @@
"Busy Lamp Field": "Besetztlampenfeld",
"CDR": "CDR",
"CLI": "CLI",
+ "CSTA Client": "CSTA Client",
+ "CSTA Controller": "CSTA Controller",
"Call": "Anrufen",
"Call Blocking": "Anrufblockierung",
"Call Forwarding": "Rufumleitung",
@@ -71,6 +74,7 @@
"Call back": "Rückruf",
"Call ended": "Anruf beendet",
"Call forwarded": "Anruf umgeleitet",
+ "Call holded": "Call holded",
"Call recordings": "Anrufaufzeichnungen",
"CallID": "Anruf-ID",
"Callee": "Angerufener",
@@ -124,6 +128,7 @@
"Custom Announcements": "Individuelle Ansagen",
"Custom sound": "Benutzerdefinierter Sound",
"Customer Details": "Kunden-Details",
+ "Customer Phonebook": "Customer Phonebook",
"Daily": "Täglich",
"Dashboard": "Übersicht",
"Data is in the clipboard": "Daten wurden in die Zwischenablage kopiert",
@@ -132,6 +137,7 @@
"Default sound": "Standard-Sound",
"Default sound set for all seats and groups": "Standard-Sound-Set für alle Nebenstellen und Gruppen",
"Delete": "Löschen",
+ "Delete customer phonebook": "Delete customer phonebook",
"Delete destination": "Ziel löschen",
"Delete forwarding": "Rufumleitung löschen",
"Delete recording": "Aufnahme löschen",
@@ -151,8 +157,10 @@
"Devices": "Geräte",
"Direction": "Richtung",
"Disable": "Deaktivieren",
+ "Disable phone web interface": "Disable phone web interface",
"Display Name": "Anzeigename",
"Do not ring primary number": "Die Hauptnummer nicht klingeln lassen",
+ "Download CSV": "Download CSV",
"Download fax": "Fax herunterladen",
"Download voicemail": "Voicemail herunterladen",
"Duration": "Dauer",
@@ -171,9 +179,10 @@
"Expires": "Läuft aus",
"Extension": "Durchwahl",
"Extension Settings": "Erweiterungseinstellungen",
+ "FW Upgrade disable": "FW Upgrade disable",
"Fax": "Fax",
"Fax Settings": "Faxeinstellungen",
- "Fax to Mail and Sendfax": "„Fax to Mail“ und „Sendfax“",
+ "Fax to mail and sendfax": "„Fax to Mail“ und „Sendfax“",
"Fax2Mail": "Fax2Mail",
"Faxes": "Faxe",
"File": "Datei",
@@ -210,6 +219,7 @@
"From email": "Absender-E-Mail-Addresse",
"General": "Allgemein",
"German": "Deutsch",
+ "Greet Greeting": "Greet Greeting",
"Group": "Gruppe",
"Group Name": "Gruppenname",
"Group/Seat/Pilot": "Gruppe/Nebenstelle/Hauptteilnehmer",
@@ -225,6 +235,7 @@
"If available": "Wenn verfügbar",
"If busy": "Wenn besetzt",
"If not available": "Wenn nicht verfügbar",
+ "Ignore Members Call Forwards when Hunting": "Ignore Members Call Forwards when Hunting",
"In": "In",
"In call with": "In Anruf mit",
"In call with {number}": "In Anruf mit {number}",
@@ -345,12 +356,17 @@
"Phone number": "Rufnummer",
"Pilot": "Hauptteilnehmer",
"Play all files in loop": "Alle Dateien in einer Schleife abspielen",
+ "Play announcement before call setup": "Play announcement before call setup",
+ "Play announcement before routing to CFU/CFNA": "Play announcement before routing to CFU/CFNA",
+ "Play announcement to callee after answer": "Play announcement to callee after answer",
"Please fill or remove the empty slots": "Bitte füllen oder entfernen Sie die leeren Einträge",
"Please select an option": "Bitte wählen Sie eine Option aus",
+ "Powered by": "Powered by",
"Preferences": "Einstellungen",
"Primary Number": "Hauptnummer",
"Privacy": "Datenschutz",
"Private": "Privat",
+ "Purge existing": "Purge existing",
"Q-Value": "Q-Wert",
"QR code unavailable. Please retry later": "QR-Code nicht verfügbar. Bitte später erneut versuchen",
"Quality": "Qualität",
@@ -472,6 +488,7 @@
"Super": "Hoch",
"T38": "T38",
"Target number": "Zielrufnummer",
+ "Temp Greeting": "Temp Greeting",
"Th": "Do",
"The \"{timeset}\" timeset contains incompatible values. You can resolve this by deleting it and recreating from the scratch.": "Das Zeit-Set „{timeset}“ enthält inkompatible Werte. Sie können dies beheben, indem Sie es von Grund auf neu anlegen.",
"The Destination Email is already used": "Die Ziel-E-Mail-Adresse wird bereits verwendet",
@@ -479,6 +496,7 @@
"There are no ACLs yet": "Es wurden noch keine ACLs erstellt",
"There are no Key Renew Notify Emails yet": "Es wurden noch keine E-Mail-Adressen zum Senden von Benachrichtigungen zur Schlüsselerneuerung eingetragen",
"There was an error, please retry later": "Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut",
+ "This number is already in use.": "This number is already in use.",
"Thursday": "Donnerstag",
"Time": "Zeit",
"Time is invalid": "Zeit ist ungültig",
@@ -506,13 +524,16 @@
"Updated {field} for device {device} successfully": "{field} für Gerät {device} geändert",
"Updated {field} for manager secretary config {msConfig} successfully": "{field} für Konfiguration {msConfig} geändert",
"Updated {field} for sound set {soundSet} successfully": "{field} für Sound-Set {soundSet} geändert",
+ "Updated {field} successfully": "Updated {field} successfully",
"Upload": "Hochladen",
+ "Upload CSV": "Upload CSV",
"Use Parent": "Eltern verwenden",
"Use RegExp": "RegExp verwenden",
"Use as default for all seats and groups": "Standard für alle Nebenstellen und Gruppen",
"Use custom number": "Benutzerdefinierte Nummer verwenden",
"Use language specific preset": "Sprachspezifische Voreinstellungen verwenden",
"User Agent": "User Agent",
+ "User config priority over provisioning": "User config priority over provisioning",
"User settings": "Benutzereinstellungen",
"Username": "Benutzername",
"Using Bye": "'Bye' verwenden",
@@ -591,6 +612,7 @@
"empty": "leer",
"forwarded to": "umgeleitet zu",
"from": "Von",
+ "greet": "greet",
"minutes": "Minuten",
"music on hold of the seat": "Musikwarteschlange des Teilnehmers",
"name": "Name",
@@ -602,6 +624,13 @@
"ring": "klingelt",
"second": "Sekunde",
"seconds": "Sekunden",
+ "temp": "temp",
+ "the behavior of the members call forwards from a Cloud PBX subscriber when it is called within a huntgroup": "the behavior of the members call forwards from a Cloud PBX subscriber when it is called within a huntgroup",
+ "the playback announcement as early media before Call Forward Unconditional or Unavailable": "the playback announcement as early media before Call Forward Unconditional or Unavailable",
+ "the playback announcement as early media before send the call to callee": "the playback announcement as early media before send the call to callee",
+ "the playback announcement to callee after he answered the call": "the playback announcement to callee after he answered the call",
+ "the right of this subscriber to be controlled by a CTI subscriber within the same customer using uaCSTA via SIP": "the right of this subscriber to be controlled by a CTI subscriber within the same customer using uaCSTA via SIP",
+ "the right this subscriber to initiate CTI sessions to other subscribers within the same customer using uaCSTA via SIP": "the right this subscriber to initiate CTI sessions to other subscribers within the same customer using uaCSTA via SIP",
"the visibility of the number within own PBX": "die Sichtbarkeit der Nummer bei PBX-internen Verbindungen",
"to": "an",
"unavailable": "nicht erreichbar",
diff --git a/src/i18n/en.json b/src/i18n/en.json
index 9df4e107..eec0ddb8 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -179,7 +179,7 @@
"FW Upgrade disable": "FW Upgrade disable",
"Fax": "Fax",
"Fax Settings": "Fax Settings",
- "Fax to Mail and Sendfax": "Fax to Mail and Sendfax",
+ "Fax to mail and sendfax": "Fax to Mail and Sendfax",
"Fax2Mail": "Fax2Mail",
"Faxes": "Faxes",
"File": "File",
@@ -190,6 +190,7 @@
"Filter groups": "Filter groups",
"Fine": "Fine",
"Folder : ": "Folder : ",
+ "Force CLI": "Force CLI",
"Forgot password?": "Forgot password?",
"Format": "Format",
"Forward": "Forward",
@@ -214,6 +215,7 @@
"From email": "From email",
"General": "General",
"German": "German",
+ "Greet Greeting": "Greet Greeting",
"Group": "Group",
"Group Name": "Group Name",
"Group/Seat/Pilot": "Group/Seat/Pilot",
@@ -469,6 +471,7 @@
"Super": "Super",
"T38": "T38",
"Target number": "Target number",
+ "Temp Greeting": "Temp Greeting",
"Th": "Th",
"The \"{timeset}\" timeset contains incompatible values. You can resolve this by deleting it and recreating from the scratch.": "The \"{timeset}\" timeset contains incompatible values. You can resolve this by deleting it and recreating from the scratch.",
"The Destination Email is already used": "The Destination Email is already used",
@@ -587,6 +590,7 @@
"empty": "empty",
"forwarded to": "forwarded to",
"from": "from",
+ "greet": "greet",
"minutes": "minutes",
"music on hold of the seat": "music on hold of the seat",
"name": "name",
@@ -598,6 +602,7 @@
"ring": "ring",
"second": "second",
"seconds": "seconds",
+ "temp": "temp",
"the behavior of the members call forwards from a Cloud PBX subscriber when it is called within a huntgroup": "the behavior of the members call forwards from a Cloud PBX subscriber when it is called within a huntgroup",
"the playback announcement as early media before Call Forward Unconditional or Unavailable": "the playback announcement as early media before Call Forward Unconditional or Unavailable",
"the playback announcement as early media before send the call to callee": "the playback announcement as early media before send the call to callee",
diff --git a/src/i18n/es.json b/src/i18n/es.json
index af465e34..cc0f1d2b 100644
--- a/src/i18n/es.json
+++ b/src/i18n/es.json
@@ -24,6 +24,7 @@
"Add time range": "Añadir rango de tiempo",
"Added group {group}": "Grupo agregado {group}",
"Added seat {seat}": "Asiento agregado {seat}",
+ "Admin name": "Admin name",
"After": "después de",
"Alias Number": "Número de alias",
"Alias Numbers": "Números de alias",
@@ -58,6 +59,8 @@
"Busy Lamp Field": "Campo de lámpara ocupado",
"CDR": "CDR",
"CLI": "CLI",
+ "CSTA Client": "CSTA Client",
+ "CSTA Controller": "CSTA Controller",
"Call": "Llamar",
"Call Blocking": "Bloqueo de llamadas",
"Call Forwarding": "Desvío de llamadas",
@@ -71,6 +74,7 @@
"Call back": "Llamar de vuelta",
"Call ended": "Llamada terminada",
"Call forwarded": "Llamada redirigida",
+ "Call holded": "Call holded",
"Call recordings": "Grabaciones de llamadas",
"CallID": "Identificador de Llamada",
"Callee": "Destino",
@@ -124,6 +128,7 @@
"Custom Announcements": "Anuncios Personalizados",
"Custom sound": "Sonido personalizado",
"Customer Details": "Detalles de cliente",
+ "Customer Phonebook": "Customer Phonebook",
"Daily": "Diariamente",
"Dashboard": "Tablero",
"Data is in the clipboard": "Data is in the clipboard",
@@ -132,6 +137,7 @@
"Default sound": "Sonido predeterminado",
"Default sound set for all seats and groups": "Conjunto de sonido predeterminado para todos los asientos y grupos",
"Delete": "Borrar",
+ "Delete customer phonebook": "Delete customer phonebook",
"Delete destination": "Eliminar destino",
"Delete forwarding": "Eliminar reenvío",
"Delete recording": "Eliminar grabación",
@@ -151,8 +157,10 @@
"Devices": "Dispositivos",
"Direction": "Direction",
"Disable": "Desactivar",
+ "Disable phone web interface": "Disable phone web interface",
"Display Name": "Display Name",
"Do not ring primary number": "No llamar al número principal",
+ "Download CSV": "Download CSV",
"Download fax": "Descargar fax",
"Download voicemail": "Descargar correo de voz",
"Duration": "Duración",
@@ -171,9 +179,10 @@
"Expires": "Expira",
"Extension": "Extensión",
"Extension Settings": "Configuración de la extensión",
+ "FW Upgrade disable": "FW Upgrade disable",
"Fax": "Fax",
"Fax Settings": "Ajustes de Fax",
- "Fax to Mail and Sendfax": "Fax a Correo y Envío de Fax",
+ "Fax to mail and sendfax": "Fax a Correo y Envío de Fax",
"Fax2Mail": "Fax2Mail",
"Faxes": "Faxes",
"File": "Archivo",
@@ -210,6 +219,7 @@
"From email": "Del correo electrónico",
"General": "General",
"German": "Alemán",
+ "Greet Greeting": "Greet Greeting",
"Group": "Grupo",
"Group Name": "Nombre del grupo",
"Group/Seat/Pilot": "Grupo/Asiento/Piloto",
@@ -225,6 +235,7 @@
"If available": "Si disponible",
"If busy": "Si está ocupado",
"If not available": "Si no está disponible",
+ "Ignore Members Call Forwards when Hunting": "Ignore Members Call Forwards when Hunting",
"In": "In",
"In call with": "En llamada con",
"In call with {number}": "En llamada con {number}",
@@ -344,12 +355,17 @@
"Phone number": "Número de teléfono",
"Pilot": "Piloto",
"Play all files in loop": "Reproducir todos los archivos en bucle",
+ "Play announcement before call setup": "Play announcement before call setup",
+ "Play announcement before routing to CFU/CFNA": "Play announcement before routing to CFU/CFNA",
+ "Play announcement to callee after answer": "Play announcement to callee after answer",
"Please fill or remove the empty slots": "Por favor, llene o elimine las ranuras vacías",
"Please select an option": "Por favor seleccione una opción",
+ "Powered by": "Powered by",
"Preferences": "Preferences",
"Primary Number": "Número primario",
"Privacy": "Privacidad",
"Private": "Privado",
+ "Purge existing": "Purge existing",
"Q-Value": "Valor Q",
"QR code unavailable. Please retry later": "El código QR no está disponible. Vuelva a intentarlo más tarde",
"Quality": "Calidad",
@@ -473,6 +489,7 @@
"Super": "Súper",
"T38": "T38",
"Target number": "Target number",
+ "Temp Greeting": "Temp Greeting",
"Th": "Th",
"The \"{timeset}\" timeset contains incompatible values. You can resolve this by deleting it and recreating from the scratch.": "El conjunto de tiempos {timeset} contiene valores incompatibles. Puede resolver esto eliminándolo y creándolo nuevamente.",
"The Destination Email is already used": "El correo electrónico de destino ya está utilizado",
@@ -480,6 +497,7 @@
"There are no ACLs yet": "Aún no hay ACLs",
"There are no Key Renew Notify Emails yet": "Aún no hay correos electrónicos para notificaciones de renovación de claves",
"There was an error, please retry later": "Se ha producido un error, por favor vuelva a intentarlo más tarde",
+ "This number is already in use.": "This number is already in use.",
"Thursday": "Jueves",
"Time": "Tiempo",
"Time is invalid": "El tiempo no es válido",
@@ -508,13 +526,16 @@
"Updated {field} for device {device} successfully": "Se actualizó correctamente {field} para el dispositivo {device}",
"Updated {field} for manager secretary config {msConfig} successfully": "Se actualizó correctamente {field} para la configuración de Jefe-Asistente {msConfig}",
"Updated {field} for sound set {soundSet} successfully": "Se actualizó correctamente {field} para el conjunto de sonidos {soundSet}",
+ "Updated {field} successfully": "Updated {field} successfully",
"Upload": "Subir",
+ "Upload CSV": "Upload CSV",
"Use Parent": "Use Parent",
"Use RegExp": "Utilizar RegExp",
"Use as default for all seats and groups": "Usar por defecto para todos los asientos y grupos",
"Use custom number": "Use custom number",
"Use language specific preset": "Usar un preajuste específico de idioma",
"User Agent": "Agente de usuario",
+ "User config priority over provisioning": "User config priority over provisioning",
"User settings": "Ajustes de usuario",
"Username": "Nombre de usuario",
"Using Bye": "Using Bye",
@@ -594,6 +615,7 @@
"empty": "vacío",
"forwarded to": "reenviado a",
"from": "de",
+ "greet": "greet",
"minutes": "minutos",
"music on hold of the seat": "music on hold of the seat",
"name": "nombre",
@@ -605,6 +627,13 @@
"ring": "llamar",
"second": "segundo",
"seconds": "segundos",
+ "temp": "temp",
+ "the behavior of the members call forwards from a Cloud PBX subscriber when it is called within a huntgroup": "the behavior of the members call forwards from a Cloud PBX subscriber when it is called within a huntgroup",
+ "the playback announcement as early media before Call Forward Unconditional or Unavailable": "the playback announcement as early media before Call Forward Unconditional or Unavailable",
+ "the playback announcement as early media before send the call to callee": "the playback announcement as early media before send the call to callee",
+ "the playback announcement to callee after he answered the call": "the playback announcement to callee after he answered the call",
+ "the right of this subscriber to be controlled by a CTI subscriber within the same customer using uaCSTA via SIP": "the right of this subscriber to be controlled by a CTI subscriber within the same customer using uaCSTA via SIP",
+ "the right this subscriber to initiate CTI sessions to other subscribers within the same customer using uaCSTA via SIP": "the right this subscriber to initiate CTI sessions to other subscribers within the same customer using uaCSTA via SIP",
"the visibility of the number within own PBX": "la visibilidad del número dentro de la propia centralita",
"to": "para",
"unavailable": "no disponible",
diff --git a/src/i18n/fr.json b/src/i18n/fr.json
index 87ee0fd7..b9258420 100644
--- a/src/i18n/fr.json
+++ b/src/i18n/fr.json
@@ -10,7 +10,7 @@
"Add ACL": "Ajouter ACL",
"Add Config": "Ajouter Config",
"Add Group": "Ajouter un groupe",
- "Add Phonebook": "Add Phonebook",
+ "Add Phonebook": "Ajouter un annuaire",
"Add Seat": "Ajouter un siège",
"Add Sound Set": "Ajouter un jeu de sons",
"Add Speed Dial": "Ajouter une numérotation rapide",
@@ -24,6 +24,7 @@
"Add time range": "Ajouter une plage de temps",
"Added group {group}": "Groupe {group} ajouté",
"Added seat {seat}": "Siège {seat} ajouté",
+ "Admin name": "Nom de l'administrateur",
"After": "Après",
"Alias Number": "Numéro d'alias",
"Alias Numbers": "Numéros associés",
@@ -58,6 +59,8 @@
"Busy Lamp Field": "Champ de la lampe occupée",
"CDR": "CDR",
"CLI": "CLI",
+ "CSTA Client": "Client de l'CSTA",
+ "CSTA Controller": "Contrôleur de l'CSTA",
"Call": "Appel",
"Call Blocking": "Blocage d’appel",
"Call Forwarding": "Renvoi d’appel",
@@ -71,6 +74,7 @@
"Call back": "Rappel",
"Call ended": "Appel terminé",
"Call forwarded": "Appel transféré",
+ "Call holded": "Appel en attente",
"Call recordings": "Enregistrements d'appels",
"CallID": "Code d'appel",
"Callee": "Appelé",
@@ -124,6 +128,7 @@
"Custom Announcements": "Annonces personnalisées",
"Custom sound": "Son personnalisé",
"Customer Details": "Détails du client",
+ "Customer Phonebook": "Annuaire du client",
"Daily": "Quotidien",
"Dashboard": "Tableau de bord",
"Data is in the clipboard": "Données dans le presse-papiers",
@@ -132,12 +137,13 @@
"Default sound": "Son par défaut",
"Default sound set for all seats and groups": "Son par défaut défini pour tous les sièges et groupes",
"Delete": "Efface",
+ "Delete customer phonebook": "Supprimer le répertoire client",
"Delete destination": "Supprimer la destination",
"Delete forwarding": "Supprimer le transfert",
"Delete recording": "Supprimer l'enregistrement",
"Delete registered device": "Delete registered device",
"Delete slot?": "Supprimer emplacement ?",
- "Delete subscriber phonebook": "Delete subscriber phonebook",
+ "Delete subscriber phonebook": "Supprimer le répertoire de l'abonné",
"Delete voicemail after email notification is delivered": "Supprimer le message vocal une fois la notification e-mail délivrée",
"Deliver Incoming Faxes": "Transmission des fax entrants",
"Deliver Outgoing Faxes": "Livrer des fax sortants",
@@ -151,8 +157,10 @@
"Devices": "Postes",
"Direction": "Direction",
"Disable": "Désactiver",
+ "Disable phone web interface": "Désactiver l'interface Web du téléphone",
"Display Name": "Display Name",
"Do not ring primary number": "Ne pas appeler le numéro principal",
+ "Download CSV": "Télécharger CSV",
"Download fax": "Télécharger le Fax",
"Download voicemail": "Télécharger le message vocal",
"Duration": "Durée",
@@ -171,9 +179,10 @@
"Expires": "Expire",
"Extension": "Extension",
"Extension Settings": "Paramètres des extensions",
+ "FW Upgrade disable": "FW Mise à niveau désactivée",
"Fax": "Fax",
"Fax Settings": "Paramètres du fax",
- "Fax to Mail and Sendfax": "Fax à E-mail et Sendfax",
+ "Fax to mail and sendfax": "Fax à E-mail et Sendfax",
"Fax2Mail": "Fax2Mail",
"Faxes": "Télécopies",
"File": "Fichier",
@@ -210,6 +219,7 @@
"From email": "De l'e-mail",
"General": "Général",
"German": "Allemand",
+ "Greet Greeting": "Greet Greeting",
"Group": "Groupe",
"Group Name": "Nom du groupe",
"Group/Seat/Pilot": "Groupe/Siège/Pilote",
@@ -225,6 +235,7 @@
"If available": "Si disponible",
"If busy": "Si occupé",
"If not available": "Si non disponible",
+ "Ignore Members Call Forwards when Hunting": "Ignorer les renvois d'appel des membres lors de la chasse",
"In": "In",
"In call with": "En communication avec",
"In call with {number}": "En appel avec {number}",
@@ -345,12 +356,17 @@
"Phone number": "Numéro de téléphone",
"Pilot": "Pilote",
"Play all files in loop": "Lire tous les fichiers en boucle",
+ "Play announcement before call setup": "Lire l'annonce avant la configuration de l'appel",
+ "Play announcement before routing to CFU/CFNA": "Lire l'annonce avant de l'acheminer vers CFU/CFNA",
+ "Play announcement to callee after answer": "Lire l'annonce à l'appelé après la réponse",
"Please fill or remove the empty slots": "Veuillez remplir ou supprimer les emplacements vides",
"Please select an option": "Veuillez sélectionner une option",
+ "Powered by": "Alimenté par",
"Preferences": "Preferences",
"Primary Number": "Numéro principal",
"Privacy": "Confidentialité",
"Private": "Privé",
+ "Purge existing": "Purger existant",
"Q-Value": "Valeur Q",
"QR code unavailable. Please retry later": "QR code unavailable. Please retry later",
"Quality": "Qualité",
@@ -472,6 +488,7 @@
"Super": "Supérieure",
"T38": "T38",
"Target number": "Target number",
+ "Temp Greeting": "Temp Greeting",
"Th": "Th",
"The \"{timeset}\" timeset contains incompatible values. You can resolve this by deleting it and recreating from the scratch.": "Le timeset \"{timeset}\" contient des valeurs incompatibles. Vous pouvez résoudre ce problème en le supprimant et en le recréant à partir de zéro.",
"The Destination Email is already used": "L'e-mail de destination est déjà utilisé",
@@ -479,6 +496,7 @@
"There are no ACLs yet": "Il n'y a pas encore d'ACLs",
"There are no Key Renew Notify Emails yet": "Il n'y a pas encore d'e-mails de notification de renouvellement des clés",
"There was an error, please retry later": "Il y a eu une erreur, veuillez réessayer plus tard",
+ "This number is already in use.": "Ce numéro est déjà utilisé.",
"Thursday": "Jeudi",
"Time": "Temps",
"Time is invalid": "L'heure n'est pas valide",
@@ -506,13 +524,16 @@
"Updated {field} for device {device} successfully": "Mise à jour réussie de {field} pour l'appareil {device}",
"Updated {field} for manager secretary config {msConfig} successfully": "Mise à jour de {field} pour la configuration {msConfig} du manager secretary avec succès",
"Updated {field} for sound set {soundSet} successfully": "Mise à jour réussie de {field} pour le jeu de sons {soundSet}",
+ "Updated {field} successfully": "{field} a été mis à jour avec succès",
"Upload": "Télécharger",
+ "Upload CSV": "Télécharger CSV",
"Use Parent": "Use Parent",
"Use RegExp": "Utiliser RegExp",
"Use as default for all seats and groups": "Utiliser par défaut pour tous les sièges et groupes",
"Use custom number": "Use custom number",
"Use language specific preset": "Utiliser un préréglage spécifique à la langue",
"User Agent": "User Agent",
+ "User config priority over provisioning": "Priorité de la configuration utilisateur sur le provisionnement",
"User settings": "Paramètres utilisateur",
"Username": "Nom d'utilisateur",
"Using Bye": "Using Bye",
@@ -590,6 +611,7 @@
"empty": "vide",
"forwarded to": "transmis à",
"from": "de",
+ "greet": "greet",
"minutes": "minutes",
"music on hold of the seat": "music on hold of the seat",
"name": "nom",
@@ -601,6 +623,13 @@
"ring": "sonner",
"second": "seconde",
"seconds": "secondes",
+ "temp": "temp",
+ "the behavior of the members call forwards from a Cloud PBX subscriber when it is called within a huntgroup": "le comportement des renvois d'appel des membres depuis un abonné Cloud PBX lorsqu'il est appelé au sein d'un groupement de recherche de ligne",
+ "the playback announcement as early media before Call Forward Unconditional or Unavailable": "l'annonce de lecture en tant que premier média avant le renvoi d'appel inconditionnel ou indisponible",
+ "the playback announcement as early media before send the call to callee": "l'annonce de lecture comme premier média avant d'envoyer l'appel à l'appelé",
+ "the playback announcement to callee after he answered the call": "l'annonce de lecture à l'appelé après qu'il ait répondu à l'appel",
+ "the right of this subscriber to be controlled by a CTI subscriber within the same customer using uaCSTA via SIP": "le droit de cet abonné d'être contrôlé par un abonné CTI au sein du même client utilisant uaCSTA via SIP",
+ "the right this subscriber to initiate CTI sessions to other subscribers within the same customer using uaCSTA via SIP": "le droit de cet abonné d'initier des sessions CTI avec d'autres abonnés du même client en utilisant uaCSTA via SIP",
"the visibility of the number within own PBX": "la visibilité du numéro dans son propre PBX",
"to": "à",
"unavailable": "indisponible",
diff --git a/src/i18n/it.json b/src/i18n/it.json
index 223e9595..8225acc0 100644
--- a/src/i18n/it.json
+++ b/src/i18n/it.json
@@ -7,25 +7,26 @@
"Accepted email address to allow mail2fax transmission.": "Accepted email address to allow mail2fax transmission.",
"Active": "Attivo",
"Add": "Aggiungi",
- "Add ACL": "Add ACL",
+ "Add ACL": "Aggiungi ACL",
"Add Config": "Aggiungi configurazione",
"Add Group": "Aggiungi gruppo",
- "Add Phonebook": "Add Phonebook",
+ "Add Phonebook": "Aggiungi Rubrica",
"Add Seat": "Aggiungi postazione",
"Add Sound Set": "Aggiungi set messaggi audio",
"Add Speed Dial": "Aggiungi chiamata rapida",
"Add call queue": "Aggiungi coda chiamate",
"Add destination": "Aggiungi destinazione",
"Add device": "Aggiungi dispositivo",
- "Add email": "Add email",
- "Add forwarding": "Add forwarding",
+ "Add email": "Aggiungi email",
+ "Add forwarding": "Aggiungi trasferimento di chiamata",
"Add number": "Aggiungi numero",
- "Add slot": "Add slot",
- "Add time range": "Add time range",
+ "Add slot": "Aggiungi slot",
+ "Add time range": "Aggiungi intervallo di tempo",
"Added group {group}": "Aggiunto gruppo {group}",
"Added seat {seat}": "Aggiunta postazione {seat}",
+ "Admin name": "Nome dell'amministratore",
"After": "After",
- "Alias Number": "Alias Number",
+ "Alias Number": "Numero Alias",
"Alias Numbers": "Numeri Alias",
"All": "Tutto",
"All anonymous incoming calls are blocked": "Tutte le chiamate anonime in ingresso vengono bloccate",
@@ -56,19 +57,22 @@
"Busy Lamp Field": "Busy Lamp Field",
"CDR": "CDR",
"CLI": "CLI",
+ "CSTA Client": "Cliente del CSTA",
+ "CSTA Controller": "CSTA Controller",
"Call": "Chiama",
"Call Blocking": "Blocco chiamate",
- "Call Forwarding": "Inoltro chiamate",
+ "Call Forwarding": "Inoltro di chiamata",
"Call Forwards": "Call Forwards",
"Call List": "Elenco chiamate",
"Call Queue": "Coda chiamate",
"Call Queue feature": "Call Queue feature",
"Call Queues": "Code chiamate",
- "Call Settings": "Call Settings",
+ "Call Settings": "Configurazioni Chiamata",
"Call Through": "Call Through",
"Call back": "Richiama",
"Call ended": "Chiamata terminata",
"Call forwarded": "Chiamata inoltrata",
+ "Call holded": "Chiamata trattenuta",
"Call recordings": "Call recordings",
"CallID": "CallID",
"Callee": "Chiamato",
@@ -83,9 +87,9 @@
"Cdr": "Cdr",
"Change Email": "Modifica email",
"Change PIN": "Modifica PIN",
- "Change Password": "Cambia password",
- "Change SIP Password": "Change SIP Password",
- "Change Web Password": "Change Web Password",
+ "Change Password": "Modifica password",
+ "Change SIP Password": "Modifica SIP Password",
+ "Change Web Password": "Modifica Web Password",
"Change login password": "Modifica password di accesso",
"Change password": "Modifica password",
"Changed PIN successfully.": "PIN modificato.",
@@ -104,12 +108,12 @@
"Cost": "Costo",
"Could not enable incoming call notifications.": "Impossibile abilitare le notifiche per le chiamate in ingresso.",
"Could not find any device matching any of the filter criteria": "Nessun dispositivo trovato che corrisponda ai criteri di filtro selezionati",
- "Could not find any group matching any of the filter criteria": "Could not find any group matching any of the filter criteria",
- "Create ACL": "Create ACL",
+ "Could not find any group matching any of the filter criteria": "Nessun gruppo trovato che corrisponda ai criteri di filtro selezionati",
+ "Create ACL": "Crea ACL",
"Create Call Queue": "Crea coda chiamate",
"Create Config": "Crea configurazione",
- "Create List": "Create List",
- "Create destination": "Create destination",
+ "Create List": "Crea lista",
+ "Create destination": "Crea destinazione",
"Create device": "Crea dispositivo",
"Create group": "Crea gruppo",
"Create seat": "Crea postazione",
@@ -122,41 +126,45 @@
"Custom Announcements": "Custom Announcements",
"Custom sound": "Audio personalizzato",
"Customer Details": "Dettagli cliente",
- "Daily": "Daily",
+ "Customer Phonebook": "Rubrica cliente",
+ "Daily": "Giornaliero",
"Dashboard": "Dashboard",
- "Data is in the clipboard": "Data is in the clipboard",
- "Data loading error": "Data loading error",
+ "Data is in the clipboard": "I dati sono negli appunti",
+ "Data loading error": "Errore nel caricamento dei dati",
"Default": "Predefinito",
"Default sound": "Audio predefinito",
"Default sound set for all seats and groups": "Set di suoni predefinito per tutte le postazioni e i gruppi",
"Delete": "Elimina",
- "Delete destination": "Delete destination",
- "Delete forwarding": "Delete forwarding",
- "Delete recording": "Delete recording",
- "Delete registered device": "Delete registered device",
- "Delete slot?": "Delete slot?",
- "Delete subscriber phonebook": "Delete subscriber phonebook",
+ "Delete customer phonebook": "Elimina rubrica",
+ "Delete destination": "Elimina destination",
+ "Delete forwarding": "Elimina inoltro",
+ "Delete recording": "Elimina recording",
+ "Delete registered device": "Elimina il dispositivo registrato",
+ "Delete slot?": "Eliminare slot?",
+ "Delete subscriber phonebook": "Elimina la rubrica dell'abbonato",
"Delete voicemail after email notification is delivered": "Cancella il messaggio vocale dopo che l'email di notifica è stata inviata",
- "Deliver Incoming Faxes": "Deliver Incoming Faxes",
- "Deliver Outgoing Faxes": "Deliver Outgoing Faxes",
+ "Deliver Incoming Faxes": "Consegna dei fax in arrivo",
+ "Deliver Outgoing Faxes": "Consegna dei fax in uscita",
"Description": "Descrizione",
"Destination": "Destinazione",
- "Destination Email": "Destination Email",
+ "Destination Email": "Email di destinazione",
"Destination Number": "Numero di destinazione",
- "Destination email to send the secret key renew notification to.": "Destination email to send the secret key renew notification to.",
- "Destination must not be empty": "Destination must not be empty",
+ "Destination email to send the secret key renew notification to.": "E-mail di destinazione a cui inviare la notifica di rinnovo della chiave segreta.",
+ "Destination must not be empty": "La destinazione non può essere vuota",
"Destinations": "Destinazioni",
"Devices": "Dispositivi",
"Direction": "Direction",
"Disable": "Disabilita",
+ "Disable phone web interface": "Disabilitare l'interfaccia web del telefono",
"Display Name": "Display Name",
"Do not ring primary number": "Do not ring primary number",
- "Download fax": "Download fax",
+ "Download CSV": "Scarica CSV",
+ "Download fax": "Scarica fax",
"Download voicemail": "Scarica messaggio vocale",
"Duration": "Durata",
"ECM": "ECM",
"Edit": "Modifica",
- "Edit List": "Edit List",
+ "Edit List": "Modifica Lista",
"Email": "Email",
"Enable": "Abilita",
"Enable regex matching for "Received from IP" and "Destination" fields.": "Enable regex matching for "Received from IP" and "Destination" fields.",
@@ -164,25 +172,26 @@
"Enable strict mode that requires all mail2fax emails to have the secret key as the very first line of the email + an empty line. The key is removed from the email once matched.": "Enable strict mode that requires all mail2fax emails to have the secret key as the very first line of the email + an empty line. The key is removed from the email once matched.",
"End time": "End time",
"English": "Italiano",
- "Enter a number to dial": "Enter a number to dial",
+ "Enter a number to dial": "Inserisci un numero per chiamare",
"Expires": "Scade",
"Extension": "Interno",
- "Extension Settings": "Extension Settings",
+ "Extension Settings": "Impostazioni dell'Estensione",
+ "FW Upgrade disable": "FW Upgrade disable",
"Fax": "Fax",
- "Fax Settings": "Fax Settings",
- "Fax to Mail and Sendfax": "Fax to Mail and Sendfax",
+ "Fax Settings": "Imposazioni Fax",
+ "Fax to mail and sendfax": "Fax to mail and sendfax",
"Fax2Mail": "Fax2Mail",
"Faxes": "Fax",
"File": "File",
"File Type": "File Type",
"Filter": "Filtra",
- "Filter by": "Filter by",
+ "Filter by": "Filtra per",
"Filter devices": "Filtra dispositivi",
- "Filter groups": "Filter groups",
+ "Filter groups": "Filtra grouppi",
"Fine": "Fine",
"Folder : ": "Folder : ",
- "Force CLI": "Force CLI",
- "Forgot password?": "Forgot password?",
+ "Force CLI": "Forza CLI",
+ "Forgot password?": "Password dimenticata?",
"Format": "Format",
"Forward": "Forward",
"Forward to Auto Attendant": "Forward to Auto Attendant",
@@ -200,12 +209,13 @@
"Forwarding": "Forwarding",
"Fr": "Fr",
"Free": "Libero",
- "French": "French",
+ "French": "Francese",
"Friday": "Venerdì",
"From": "Da",
"From email": "From email",
"General": "General",
- "German": "German",
+ "German": "Tedesco",
+ "Greet Greeting": "Greet Greeting",
"Group": "Gruppo",
"Group Name": "Nome del gruppo",
"Group/Seat/Pilot": "Gruppo/Postazione/Pilota",
@@ -221,6 +231,7 @@
"If available": "If available",
"If busy": "If busy",
"If not available": "If not available",
+ "Ignore Members Call Forwards when Hunting": "Ignore Members Call Forwards when Hunting",
"In": "In",
"In call with": "Chiamata in corso con",
"In call with {number}": "Chiamata in corso con {number}",
@@ -337,12 +348,17 @@
"Phone number": "Numero di telefono",
"Pilot": "Pilota",
"Play all files in loop": "Riproduci tutti i file a ripetizione",
+ "Play announcement before call setup": "Play announcement before call setup",
+ "Play announcement before routing to CFU/CFNA": "Play announcement before routing to CFU/CFNA",
+ "Play announcement to callee after answer": "Play announcement to callee after answer",
"Please fill or remove the empty slots": "Please fill or remove the empty slots",
"Please select an option": "Please select an option",
+ "Powered by": "Powered by",
"Preferences": "Preferences",
"Primary Number": "Numero primario",
"Privacy": "Privacy",
"Private": "Riservato",
+ "Purge existing": "Purge existing",
"Q-Value": "Q-Value",
"QR code unavailable. Please retry later": "QR code unavailable. Please retry later",
"Quality": "Qualità",
@@ -457,12 +473,13 @@
"Status": "Status",
"Su": "Su",
"Subscriber": "Abbonato",
- "Subscriber Phonebook": "Subscriber Phonebook",
+ "Subscriber Phonebook": "Rubrica Abbonato",
"Subscriber Sign In": "Accesso abbonato",
"Sunday": "Domenica",
"Super": "Super",
"T38": "T38",
"Target number": "Target number",
+ "Temp Greeting": "Temp Greeting",
"Th": "Th",
"The \"{timeset}\" timeset contains incompatible values. You can resolve this by deleting it and recreating from the scratch.": "The \"{timeset}\" timeset contains incompatible values. You can resolve this by deleting it and recreating from the scratch.",
"The Destination Email is already used": "The Destination Email is already used",
@@ -470,9 +487,10 @@
"There are no ACLs yet": "There are no ACLs yet",
"There are no Key Renew Notify Emails yet": "There are no Key Renew Notify Emails yet",
"There was an error, please retry later": "There was an error, please retry later",
+ "This number is already in use.": "This number is already in use.",
"Thursday": "Giovedì",
"Time": "Orario",
- "Time is invalid": "Time is invalid",
+ "Time is invalid": "Orario non valido",
"Timerange": "Timerange",
"To": "A",
"Today": "Oggi",
@@ -480,9 +498,9 @@
"Tu": "Tu",
"Tuesday": "Martedì",
"Type": "Tipo",
- "Type something": "Type something",
- "Unable to copy data to clipboard": "Unable to copy data to clipboard",
- "Unassign": "Unassign",
+ "Type something": "Scrivi qualcosa",
+ "Unable to copy data to clipboard": "Impossibile copiare i dati negli appunti",
+ "Unassign": "Rimuovere assegnazione",
"Unassigned": "Non assegnato",
"Unavailable Greeting": "Messaggio per numero non disponibile",
"Unblock Incoming": "Sblocca entranti",
@@ -490,19 +508,22 @@
"Unblock Outgoing": "Sblocca uscenti",
"Undo": "Undo",
"Unknown error": "Errore sconosciuto",
- "Unknown name": "Unknown name",
+ "Unknown name": "Nome sconosciuto",
"Updated {field} for call queue {callQueue} successfully": "Aggiornato campo {field} per la coda {callQueue}",
"Updated {field} for device {device} successfully": "Aggiornato campo {field} per il dispositivo {device}",
"Updated {field} for manager secretary config {msConfig} successfully": "Aggiornato campo {field} per configurazione segreteria {msConfig}",
"Updated {field} for sound set {soundSet} successfully": "Aggiornato campo {field} per il set di suoni {soundSet}",
+ "Updated {field} successfully": "Aggiornato {field} con successo",
"Upload": "Carica",
+ "Upload CSV": "Upload CSV",
"Use Parent": "Use Parent",
"Use RegExp": "Use RegExp",
"Use as default for all seats and groups": "Utilizza come predefinito per tutte le postazioni e i gruppi",
"Use custom number": "Use custom number",
"Use language specific preset": "Usa i valori preimpostati per la lingua",
"User Agent": "User Agent",
- "User settings": "User settings",
+ "User config priority over provisioning": "Priorità di configurazione utente sul provisioning",
+ "User settings": "impostazioni utente",
"Username": "Nome utente",
"Using Bye": "Using Bye",
"Using Cancel": "Using Cancel",
@@ -578,6 +599,7 @@
"empty": "empty",
"forwarded to": "forwarded to",
"from": "da",
+ "greet": "greet",
"minutes": "minuti",
"music on hold of the seat": "music on hold of the seat",
"name": "nome",
@@ -589,6 +611,13 @@
"ring": "squilla",
"second": "secondo",
"seconds": "secondi",
+ "temp": "temp",
+ "the behavior of the members call forwards from a Cloud PBX subscriber when it is called within a huntgroup": "the behavior of the members call forwards from a Cloud PBX subscriber when it is called within a huntgroup",
+ "the playback announcement as early media before Call Forward Unconditional or Unavailable": "the playback announcement as early media before Call Forward Unconditional or Unavailable",
+ "the playback announcement as early media before send the call to callee": "the playback announcement as early media before send the call to callee",
+ "the playback announcement to callee after he answered the call": "the playback announcement to callee after he answered the call",
+ "the right of this subscriber to be controlled by a CTI subscriber within the same customer using uaCSTA via SIP": "the right of this subscriber to be controlled by a CTI subscriber within the same customer using uaCSTA via SIP",
+ "the right this subscriber to initiate CTI sessions to other subscribers within the same customer using uaCSTA via SIP": "the right this subscriber to initiate CTI sessions to other subscribers within the same customer using uaCSTA via SIP",
"the visibility of the number within own PBX": "the visibility of the number within own PBX",
"to": "a",
"unavailable": "non disponibile",
diff --git a/src/pages/CscPageFaxSettings.vue b/src/pages/CscPageFaxSettings.vue
index 20e784a7..6956acc2 100644
--- a/src/pages/CscPageFaxSettings.vue
+++ b/src/pages/CscPageFaxSettings.vue
@@ -9,7 +9,7 @@
+
+
+
+
+
+
+
+
+
+
@@ -230,7 +276,13 @@ export default {
'busyGreetingUploadProgress',
'unavailableGreetingId',
'unavailableGreetingUrl',
- 'unavailableGreetingUploadProgress'
+ 'unavailableGreetingUploadProgress',
+ 'tempGreetingId',
+ 'tempGreetingUrl',
+ 'tempGreetingUploadProgress',
+ 'greetGreetingId',
+ 'greetGreetingUrl',
+ 'greetGreetingUploadProgress'
]),
...mapGetters('voicebox', [
'settingsLoading',
@@ -251,7 +303,15 @@ export default {
'unavailableGreetingUploading',
'unavailableGreetingFileLoaded',
'unavailableGreetingLabel',
- 'unavailableGreetingDeleting'
+ 'unavailableGreetingDeleting',
+ 'tempGreetingUploading',
+ 'tempGreetingFileLoaded',
+ 'tempGreetingLabel',
+ 'tempGreetingDeleting',
+ 'greetGreetingUploading',
+ 'greetGreetingFileLoaded',
+ 'greetGreetingLabel',
+ 'greetGreetingDeleting'
]),
...mapGetters('callSettings', [
'language',
@@ -360,7 +420,15 @@ export default {
'unavailableGreetingUpload',
'unavailableGreetingUploadAbort',
'unavailableGreetingPlay',
- 'unavailableGreetingDelete'
+ 'unavailableGreetingDelete',
+ 'tempGreetingUpload',
+ 'tempGreetingUploadAbort',
+ 'tempGreetingPlay',
+ 'tempGreetingDelete',
+ 'greetGreetingUpload',
+ 'greetGreetingUploadAbort',
+ 'greetGreetingPlay',
+ 'greetGreetingDelete'
]),
...mapWaitingActions('callSettings', {
loadPreferencesDefsAction: 'processing subscriberPreferences',
@@ -467,6 +535,62 @@ export default {
}).onOk(data => {
this.unavailableGreetingDelete()
})
+ },
+ async selectFileTempGreeting (file) {
+ try {
+ await this.tempGreetingUpload({
+ file: file,
+ subscriberId: this.id
+ })
+ } catch (err) {
+ showGlobalError(err?.message || this.$t('Unknown error'))
+ }
+ },
+ async selectFileGreetGreeting (file) {
+ try {
+ await this.greetGreetingUpload({
+ file: file,
+ subscriberId: this.id
+ })
+ } catch (err) {
+ showGlobalError(err?.message || this.$t('Unknown error'))
+ }
+ },
+ tempGreetingInitAudio () {
+ this.tempGreetingPlay(this.soundFileFormat)
+ this.$refs.uploadTemp.setPlayingTrue()
+ this.$refs.uploadTemp.setPausedFalse()
+ },
+ tempGreetingDeletionConfirmation () {
+ this.$q.dialog({
+ title: this.$t('Reset greeting sound'),
+ message: this.$t('You are about to reset the custom {type} greeting sound to defaults', {
+ type: this.$t('temp')
+ }),
+ color: 'primary',
+ cancel: true,
+ persistent: true
+ }).onOk(data => {
+ this.tempGreetingDelete()
+ })
+ },
+ greetGreetingInitAudio () {
+ this.greetGreetingPlay(this.soundFileFormat)
+ this.$refs.uploadGreet.setPlayingTrue()
+ this.$refs.uploadGreet.setPausedFalse()
+ },
+ greetGreetingDeletionConfirmation () {
+ this.$q.dialog({
+ title: this.$t('Reset greeting sound'),
+ message: this.$t('You are about to reset the custom {type} greeting sound to defaults', {
+ type: this.$t('greet')
+ }),
+ color: 'primary',
+ cancel: true,
+ persistent: true
+ }).onOk(data => {
+ this.greetGreetingDelete()
+ })
}
}
}
diff --git a/src/store/voicebox.js b/src/store/voicebox.js
index e2630c57..3ecceb0f 100644
--- a/src/store/voicebox.js
+++ b/src/store/voicebox.js
@@ -68,7 +68,25 @@ export default {
unavailableGreetingDeletionState: RequestState.initiated,
unavailableGreetingDeletionError: null,
- uploadCancelActions: {}
+ uploadCancelActions: {},
+
+ tempGreetingId: null,
+ tempGreetingUrl: null,
+ tempGreetingLoadState: RequestState.initiated,
+ tempGreetingUploadState: RequestState.initiated,
+ tempGreetingUploadError: null,
+ tempGreetingUploadProgress: 0,
+ tempGreetingDeletionState: RequestState.initiated,
+ tempGreetingDeletionError: null,
+
+ greetGreetingId: null,
+ greetGreetingUrl: null,
+ greetGreetingLoadState: RequestState.initiated,
+ greetGreetingUploadState: RequestState.initiated,
+ greetGreetingUploadError: null,
+ greetGreetingUploadProgress: 0,
+ greetGreetingDeletionState: RequestState.initiated,
+ greetGreetingDeletionError: null
},
getters: {
subscriberId (state, getters, rootState, rootGetters) {
@@ -144,6 +162,34 @@ export default {
},
unavailableGreetingDeleting (state) {
return state.unavailableGreetingDeletionState === RequestState.requesting
+ },
+ tempGreetingUploading (state) {
+ return state.tempGreetingUploadState === RequestState.requesting
+ },
+ tempGreetingFileLoaded (state) {
+ return state.tempGreetingLoadState === RequestState.succeeded
+ },
+ tempGreetingLabel (state) {
+ return state.tempGreetingId
+ ? i18n.global.tc('Custom sound')
+ : i18n.global.tc('Default sound')
+ },
+ tempGreetingDeleting (state) {
+ return state.tempGreetingDeletionState === RequestState.requesting
+ },
+ greetGreetingUploading (state) {
+ return state.greetGreetingUploadState === RequestState.requesting
+ },
+ greetGreetingFileLoaded (state) {
+ return state.greetGreetingLoadState === RequestState.succeeded
+ },
+ greetGreetingLabel (state) {
+ return state.greetGreetingId
+ ? i18n.global.tc('Custom sound')
+ : i18n.global.tc('Default sound')
+ },
+ greetGreetingDeleting (state) {
+ return state.greetGreetingDeletionState === RequestState.requesting
}
},
mutations: {
@@ -164,6 +210,12 @@ export default {
if (_.has(res, 'unavailableGreetingId') && res.unavailableGreetingId !== null) {
state.unavailableGreetingId = res.unavailableGreetingId
}
+ if (_.has(res, 'tempGreetingId') && res.tempGreetingId !== null) {
+ state.tempGreetingId = res.tempGreetingId
+ }
+ if (_.has(res, 'greetGreetingId') && res.greetGreetingId !== null) {
+ state.greetGreetingId = res.greetGreetingId
+ }
},
pinInitialize (state) {
@@ -319,6 +371,96 @@ export default {
},
updateUploadCancelActions (state, field, value) {
state.uploadCancelActions[field] = value
+ },
+ tempGreetingUploadProgress (state, progress) {
+ state.tempGreetingUploadProgress = progress
+ },
+ tempGreetingUploadRequesting (state) {
+ state.tempGreetingUploadState = RequestState.requesting
+ state.tempGreetingUploadError = null
+ state.tempGreetingUploadProgress = 0
+ },
+ tempGreetingUploadSucceeded (state, id) {
+ state.tempGreetingUploadState = RequestState.succeeded
+ state.tempGreetingUploadError = null
+ state.tempGreetingId = id
+ },
+ tempGreetingUploadFailed (state, error) {
+ state.tempGreetingUploadState = RequestState.failed
+ state.tempGreetingUploadError = error
+ state.tempGreetingUploadProgress = 0
+ },
+ tempGreetingPlayRequesting (state) {
+ state.tempGreetingLoadState = RequestState.requesting
+ state.tempGreetingUrl = null
+ },
+ tempGreetingPlaySucceeded (state, url) {
+ state.tempGreetingLoadState = RequestState.succeeded
+ state.tempGreetingUrl = url
+ },
+ tempGreetingPlayFailed (state) {
+ state.tempGreetingLoadState = RequestState.failed
+ state.tempGreetingUrl = null
+ },
+ tempGreetingDeletionRequesting (state) {
+ state.tempGreetingDeletionState = RequestState.requesting
+ state.tempGreetingDeletionError = null
+ },
+ tempGreetingDeletionFailed (state, error) {
+ state.tempGreetingDeletionState = RequestState.failed
+ state.tempGreetingDeletionError = error
+ },
+ tempGreetingDeletionSucceeded (state) {
+ state.tempGreetingDeletionState = RequestState.succeeded
+ state.tempGreetingDeletionError = null
+ state.tempGreetingId = null
+ state.tempGreetingLoadState = RequestState.initiated
+ state.tempGreetingUrl = null
+ },
+ greetGreetingUploadRequesting (state) {
+ state.greetGreetingUploadState = RequestState.requesting
+ state.greetGreetingUploadError = null
+ state.greetGreetingUploadProgress = 0
+ },
+ greetGreetingUploadSucceeded (state, id) {
+ state.greetGreetingUploadState = RequestState.succeeded
+ state.greetGreetingUploadError = null
+ state.greetGreetingId = id
+ },
+ greetGreetingUploadProgress (state, progress) {
+ state.greetGreetingUploadProgress = progress
+ },
+ greetGreetingUploadFailed (state, error) {
+ state.greetGreetingUploadState = RequestState.failed
+ state.greetGreetingUploadError = error
+ state.greetGreetingUploadProgress = 0
+ },
+ greetGreetingPlayRequesting (state) {
+ state.greetGreetingLoadState = RequestState.requesting
+ state.greetGreetingUrl = null
+ },
+ greetGreetingPlaySucceeded (state, url) {
+ state.greetGreetingLoadState = RequestState.succeeded
+ state.greetGreetingUrl = url
+ },
+ greetGreetingPlayFailed (state) {
+ state.tgreetGreetingLoadState = RequestState.failed
+ state.greetGreetingUrl = null
+ },
+ greetGreetingDeletionRequesting (state) {
+ state.greetGreetingDeletionState = RequestState.requesting
+ state.greetGreetingDeletionError = null
+ },
+ greetGreetingDeletionSucceeded (state) {
+ state.greetGreetingDeletionState = RequestState.succeeded
+ state.greetGreetingDeletionError = null
+ state.greetGreetingId = null
+ state.greetGreetingLoadState = RequestState.initiated
+ state.greetGreetingUrl = null
+ },
+ greetGreetingDeletionFailed (state, error) {
+ state.greetGreetingDeletionState = RequestState.failed
+ state.greetGreetingDeletionError = error
}
},
actions: {
@@ -334,12 +476,22 @@ export default {
getVoiceboxGreetingByType({
id: subscriberId,
type: 'unavail'
+ }),
+ getVoiceboxGreetingByType({
+ id: subscriberId,
+ type: 'temp'
+ }),
+ getVoiceboxGreetingByType({
+ id: subscriberId,
+ type: 'greet'
})
])
context.commit('settingsSucceeded', {
settings: res[0],
busyGreetingId: _.get(res, '1.items.0.id', null),
- unavailableGreetingId: _.get(res, '2.items.0.id', null)
+ unavailableGreetingId: _.get(res, '2.items.0.id', null),
+ tempGreetingId: _.get(res, '3.items.0.id', null),
+ greetGreetingId: _.get(res, '4.items.0.id', null)
})
},
async updateAction (context, options) {
@@ -495,6 +647,54 @@ export default {
type: 'unavailable',
id: context.state.unavailableGreetingId
})
+ },
+ async tempGreetingUpload (context, options) {
+ await context.dispatch('greetingUpload', {
+ type: 'temp',
+ greeting: 'temp',
+ file: options.file,
+ subscriberId: options.subscriberId
+ })
+ },
+ async tempGreetingUploadAbort (context) {
+ await context.dispatch('greetingUploadAbort', 'temp')
+ },
+ async tempGreetingPlay (context, format) {
+ await context.dispatch('greetingPlay', {
+ type: 'temp',
+ id: context.state.tempGreetingId,
+ format: format
+ })
+ },
+ async tempGreetingDelete (context) {
+ await context.dispatch('greetingDelete', {
+ type: 'temp',
+ id: context.state.tempGreetingId
+ })
+ },
+ async greetGreetingUpload (context, options) {
+ await context.dispatch('greetingUpload', {
+ type: 'greet',
+ greeting: 'greet',
+ file: options.file,
+ subscriberId: options.subscriberId
+ })
+ },
+ async greetGreetingUploadAbort (context) {
+ await context.dispatch('greetingUploadAbort', 'greet')
+ },
+ async greetGreetingPlay (context, format) {
+ await context.dispatch('greetingPlay', {
+ type: 'greet',
+ id: context.state.greetGreetingId,
+ format: format
+ })
+ },
+ async greetGreetingDelete (context) {
+ await context.dispatch('greetingDelete', {
+ type: 'greet',
+ id: context.state.greetGreetingId
+ })
}
}
}