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 + }) } } }