mirror of
https://gitlab.linphone.org/BC/public/flexisip-account-manager.git
synced 2026-01-17 10:08:05 +00:00
Fix FLEXIAPI-324 Add an app setup wizard page
This commit is contained in:
parent
4f3e9c57c9
commit
73c0132051
8 changed files with 64 additions and 32 deletions
|
|
@ -49,6 +49,7 @@ v2.0
|
|||
- Fix FLEXIAPI-332 Check if the first line was untouched and that the number of columns is exact on each lines
|
||||
- Fix FLEXIAPI-329 Use correct routes for accounts devices
|
||||
- Fix FLEXIAPI-330 Remove the ConfirmedRegistration email and related code
|
||||
- Fix FLEXIAPI-324 Add an app setup wizard page
|
||||
|
||||
v1.6
|
||||
----
|
||||
|
|
|
|||
|
|
@ -339,11 +339,6 @@ class Account extends Authenticatable
|
|||
return null;
|
||||
}
|
||||
|
||||
public function getProvisioningLinphoneUriAttribute(): string
|
||||
{
|
||||
return str_replace('https://', 'linphone-config:', route('provisioning.provision', ['provisioning_token' => $this->provisioning_token]));
|
||||
}
|
||||
|
||||
public static function dtmfProtocolsRule()
|
||||
{
|
||||
return implode(',', array_keys(self::$dtmfProtocols));
|
||||
|
|
|
|||
|
|
@ -40,6 +40,13 @@ class ProvisioningController extends Controller
|
|||
]);
|
||||
}
|
||||
|
||||
public function wizard(Request $request, string $provisioningToken)
|
||||
{
|
||||
return view('provisioning.wizard', [
|
||||
'token' => $provisioningToken
|
||||
]);
|
||||
}
|
||||
|
||||
public function qrcode(Request $request, string $provisioningToken)
|
||||
{
|
||||
$account = Account::withoutGlobalScopes()
|
||||
|
|
|
|||
|
|
@ -11,40 +11,43 @@
|
|||
"Activate All": "Tout activer",
|
||||
"Activate": "Activer",
|
||||
"Activated": "Activé",
|
||||
"Activity": "Activité",
|
||||
"Activity expiration delay": "Délais d'expiration après activité",
|
||||
"Activity": "Activité",
|
||||
"Add contact": "Ajout d'un contact",
|
||||
"Add contacts": "Ajouter des contacts",
|
||||
"Add existing contacts lists to display them in the user applications.": "Ajouter des listes de contacts existantes afin qu’elles soient visibles dans les applications de l’utilisateur.",
|
||||
"Add": "Ajouter",
|
||||
"Admin": "Administrateur",
|
||||
"Admins": "Administrateurs",
|
||||
"Administration": "Administration",
|
||||
"Admins": "Administrateurs",
|
||||
"All the admins will be super admins": "Tous les administrateurs seront super-administrateurs",
|
||||
"Allow a custom CSS theme": "Autoriser un thème CSS personnalisé",
|
||||
"Allow client settings to be overwritten by the provisioning ones": "Écraser la configuration client avec celle du déploiement",
|
||||
"An email will be sent to :email with a unique link allowing the user to reset its password.": "Un email sera envoyé à :email avec un lien unique l'invitant à réinitialiser son mot de passe",
|
||||
"An email will be sent to :email with a QR Code and provisioning link.": "Un email sera envoyé à :email contenant un QR Code et un lien de déploiement.",
|
||||
"An email will be sent to :email with a unique link allowing the user to reset its password.": "Un email sera envoyé à :email avec un lien unique l'invitant à réinitialiser son mot de passe",
|
||||
"An email will be sent to this email when someone join the newsletter": "Un email sera envoyé à cette addresse quand quelqu'un rejoint la liste de diffusion",
|
||||
"Api Keys": "Clefs d'API",
|
||||
"App Configuration": "Configuration de l'App",
|
||||
"App settings": "Paramètres d'application",
|
||||
"Api Keys": "Clefs d'API",
|
||||
"Assistant": "Assistant",
|
||||
"Blocked": "Bloqué",
|
||||
"Broadcast": "Broadcast",
|
||||
"By email": "Inscription par email",
|
||||
"By phone": "Par téléphone",
|
||||
"By": "Par",
|
||||
"Calls logs": "Journaux d'appel",
|
||||
"Call Recording": "Enregistrement d'appels",
|
||||
"Calls logs": "Journaux d'appel",
|
||||
"Cancel": "Annuler",
|
||||
"Cannot be changed once created.": "Ne peut être changé par la suite.",
|
||||
"Change your email": "Changer votre email",
|
||||
"Change your phone number": "Changer votre numéro de téléphone",
|
||||
"Code Verification" : "Vérification du code",
|
||||
"Instant Messaging": "Messagerie Instantanée",
|
||||
"Check the README.md documentation": "Voir la documentation dans README.md",
|
||||
"Clear to never expire": "Laisser vide pour ne jamais expirer",
|
||||
"Code Verification" : "Vérification du code",
|
||||
"Code": "Code",
|
||||
"Configuration": "Configuration",
|
||||
"Configure your Linphone application": "Configurer votre application Linphone",
|
||||
"Configure": "Configurer",
|
||||
"Confirm email": "Confirmer l'email",
|
||||
"Confirm password": "Confirmer le mot de passe",
|
||||
"Confirmed registration text": "Texte de confirmation d'inscription",
|
||||
|
|
@ -52,7 +55,6 @@
|
|||
"Contacts List": "Liste de Contacts",
|
||||
"Contacts Lists": "Listes de Contacts",
|
||||
"Contacts": "Contacts",
|
||||
"Configure": "Configurer",
|
||||
"Copyright text": "Texte droits d'auteurs",
|
||||
"Country code": "Code du pays",
|
||||
"Create": "Créer",
|
||||
|
|
@ -69,10 +71,10 @@
|
|||
"Dictionary": "Dictionnaire",
|
||||
"Display name": "Nom d'affichage",
|
||||
"Domain": "Domaine",
|
||||
"Download the app": "Télécharger l'application",
|
||||
"Edit": "Éditer",
|
||||
"By email": "Inscription par email",
|
||||
"Email": "Email",
|
||||
"Email Server": "Serveur Mail",
|
||||
"Email": "Email",
|
||||
"Empty": "Vide",
|
||||
"Enable the web interface": "Activer l'interface web",
|
||||
"Enabled": "Activé",
|
||||
|
|
@ -80,13 +82,13 @@
|
|||
"Enter the code you received below": "Saisissez le code reçu ci-dessous",
|
||||
"Errors": "Erreurs",
|
||||
"Expiration": "Expiration",
|
||||
"Expired Space": "Espace expiré",
|
||||
"Expired": "Expiré",
|
||||
"Export": "Exporter",
|
||||
"External Account": "Compte Externe",
|
||||
"Expired Space": "Espace expiré",
|
||||
"Features": "Fonctionnalités",
|
||||
"Fill to change": "Remplir pour changer",
|
||||
"Fill the related columns if you want to add an external account as well": "Remplissez également les colonnes suivantes si vous souhaitez ajouter un compte externe",
|
||||
"Fill to change": "Remplir pour changer",
|
||||
"From": "Depuis",
|
||||
"Host": "Hôte",
|
||||
"I accept the Privacy Policy": "J'accepte la Politique de Confidentialité",
|
||||
|
|
@ -98,7 +100,9 @@
|
|||
"In :days days": "Dans :days jours",
|
||||
"In ini format, will complete the other settings": "Au format ini, complètera les autres paramètres",
|
||||
"In lowercase letters": "En minuscules",
|
||||
"Incorrect username or password": "Nom d'utilisateur ou mot de passe incorrect",
|
||||
"Information": "Informations",
|
||||
"Instant Messaging": "Messagerie Instantanée",
|
||||
"Integration": "Intégration",
|
||||
"Intercom features": "Fonctionnalités d'interphonie",
|
||||
"It might actually disable this page, be careful": "Cette page pourrait être désactivée, faites attention",
|
||||
|
|
@ -115,43 +119,40 @@
|
|||
"My Account": "Mon Compte",
|
||||
"My Space": "Mon Espace",
|
||||
"Name": "Nom",
|
||||
"Never": "Jamais",
|
||||
"Never expire": "N'expire jamais",
|
||||
"Never": "Jamais",
|
||||
"New Admin": "Nouvel Admin",
|
||||
"New user": "Nouvel utilisateur",
|
||||
"New Space": "Nouvel Espace",
|
||||
"Newsletter registration email address": "Addresse email d'inscription à la liste de diffusion",
|
||||
"New user": "Nouvel utilisateur",
|
||||
"Newsletter registration confirmed": "Confirmation de l'inscription à la newsletter",
|
||||
"Newsletter registration email address": "Addresse email d'inscription à la liste de diffusion",
|
||||
"Next": "Suivant",
|
||||
"No account yet?": "Pas encore de compte ?",
|
||||
"No email yet": "Pas d'email pour le moment",
|
||||
"No limit": "Sans limite",
|
||||
"No phone yet": "Pas de téléphone pour le moment",
|
||||
"Number of minutes to expire the key after the last request.": "Nombre de minutes avant l'expiration de la clef après son dernier usage.",
|
||||
"Open the app": "Ouvrir l'application",
|
||||
"Other information": "Autres informations",
|
||||
"Outbound proxy": "Outbound proxy",
|
||||
"Password": "Mot de passe",
|
||||
"Your password" : "Votre mot de passe",
|
||||
"Phone Countries": "Numéros Internationaux",
|
||||
"Phone number": "Numéro de téléphone",
|
||||
"By phone": "Par téléphone",
|
||||
"Phone registration": "Inscription par téléphone",
|
||||
"Please enter the new email that you would like to link to your account.": "Veuillez entre l'adresse email que vous souhaitez lier à votre compte.",
|
||||
"Please enter the new phone number that you would like to link to your account.": "Veuillez entrer le numéro de téléphone que vous souhaitez lier à votre compte.",
|
||||
"Protocol": "Protocole",
|
||||
"Provisioning of your device": "Déploiement sur votre appareil",
|
||||
"Provisioning tokens": "Jetons de déploiement",
|
||||
"Provisioning": "Déploiement",
|
||||
"Provisioning of your device": "Déploiement sur votre appareil",
|
||||
"Public registration": "Inscription publiques",
|
||||
"QR Code scanning": "Scan de QR Code",
|
||||
"Realm": "Royaume",
|
||||
"Recover your account using your email": "Récupérer votre compte avec votre email",
|
||||
"Use the mobile app to recover your account using your phone number": "Utilisez l'application mobile pour récupérer votre compte avec votre numéro de téléphone",
|
||||
"Username or Phone": "Nom d'utilisateur ou téléphone",
|
||||
"Register": "Inscription",
|
||||
"Registrar": "Registrar",
|
||||
"Registration introduction": "Présentation lors de l'inscription",
|
||||
"Registration confirmed": "Confirmation de l'inscription",
|
||||
"Registration introduction": "Présentation lors de l'inscription",
|
||||
"Remote provisioning": "configuration distante",
|
||||
"Remove": "Remove",
|
||||
"Renew": "Renouveller",
|
||||
|
|
@ -163,8 +164,8 @@
|
|||
"Reset": "Réinitialiser",
|
||||
"Role": "Rôle",
|
||||
"Scan the following QR Code using an authenticated device and wait a few seconds.": "Scanner le QR Code avec un appareil authentifié et attendez quelques secondes",
|
||||
"Search": "Rechercher",
|
||||
"Search by username":"Rechercher par nom d'utilisateur",
|
||||
"Search": "Rechercher",
|
||||
"Select a contacts list": "Sélectionner une liste de contact",
|
||||
"Select a domain": "Sélectionner un domaine",
|
||||
"Select a file": "Choisir un fichier",
|
||||
|
|
@ -175,8 +176,8 @@
|
|||
"Show usernames only": "Afficher uniquement les noms d'utilisateur",
|
||||
"Sip Adress": "Adresse SIP",
|
||||
"SIP Domain": "Domaine SIP",
|
||||
"Space": "Espace",
|
||||
"Space is expiring in :days days": "Votre Espace expire dans %d jours",
|
||||
"Space": "Espace",
|
||||
"Spaces": "Espaces",
|
||||
"Statistics": "Statistiques",
|
||||
"Subdomain": "Sous-domaine",
|
||||
|
|
@ -187,7 +188,6 @@
|
|||
"The account doesn't exists": "Le compte n'existe pas",
|
||||
"The code has expired": "Le code a expiré",
|
||||
"The code is not valid": "Le code n'est pas valide",
|
||||
"We will send you a verification code to recover your account.": "Nous vous enverrons un code de vérification pour récupérer votre compte.",
|
||||
"The contact doesn't exists": "Le contact n'existe pas",
|
||||
"The file MUST be in CSV following this template": "Le fichier doit être au format CSV et respecter le modèle suivant",
|
||||
"The first line contains the labels": "La premières ligne contient les étiquettes",
|
||||
|
|
@ -202,16 +202,18 @@
|
|||
"Update": "Mettre à jour",
|
||||
"Updated on": "Mis à jour le",
|
||||
"Updated": "Mise à jour",
|
||||
"Use the mobile app to recover your account using your phone number": "Utilisez l'application mobile pour récupérer votre compte avec votre numéro de téléphone",
|
||||
"Used on": "Utilisé le",
|
||||
"User": "Utilisateur",
|
||||
"Users": "Utilisateurs",
|
||||
"Username or Phone": "Nom d'utilisateur ou téléphone",
|
||||
"Username": "Nom d'utilisateur",
|
||||
"Users": "Utilisateurs",
|
||||
"Value": "Valeur",
|
||||
"Verify": "Vérifier",
|
||||
"Via": "Via",
|
||||
"We will send you a verification code to recover your account.": "Nous vous enverrons un code de vérification pour récupérer votre compte.",
|
||||
"Week": "Semaine",
|
||||
"Welcome on :app_name": "Bienvenue sur :app_name",
|
||||
"Incorrect username or password": "Nom d'utilisateur ou mot de passe incorrect",
|
||||
"Year": "Année",
|
||||
"You already have an account?": "Vous avez déjà un compte ?",
|
||||
"You are going to permanently delete the following element. Please confirm your action.": "Vous allez supprimer l'élément suivant. Veuillez confirmer votre action.",
|
||||
|
|
@ -219,5 +221,6 @@
|
|||
"You can now continue your registration process in the application": "Vous pouvez maintenant continuer le processus d'inscription dans l'application",
|
||||
"You didn't receive the code?": "Vous n'avez pas reçu le code ?",
|
||||
"Your password was updated properly.": "Votre mot de passe a été mis à jour.",
|
||||
"Your password" : "Votre mot de passe",
|
||||
"Your space has expired. Access to your interface is now disabled, and your users can no longer benefit from the service. To reactivate your space, please contact your account manager.": "Votre espace est arrivé à expiration. L’accès à votre interface est désormais désactivé, et vos utilisateurs ne peuvent plus bénéficier du service. Pour réactiver votre espace, veuillez contacter votre responsable de compte."
|
||||
}
|
||||
10
flexiapi/public/css/style.css
vendored
10
flexiapi/public/css/style.css
vendored
|
|
@ -76,6 +76,16 @@ body {
|
|||
--color-purple: rgba(151, 71, 255, 1);
|
||||
}
|
||||
|
||||
#wizard h3 {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
#wizard .btn {
|
||||
display: block;
|
||||
text-align: center;
|
||||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
body.show_menu {
|
||||
max-height: 100vh;
|
||||
overflow: hidden;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
To connect your account to the application, click on the following button:
|
||||
|
||||
<x-mail::button :url="$account->provisioning_linphone_uri" color="primary">
|
||||
<x-mail::button :url="route('provisioning.wizard', ['provisioning_token' => $account->provisioning_token])" color="primary">
|
||||
Connect my account
|
||||
</x-mail::button>
|
||||
|
||||
|
|
|
|||
14
flexiapi/resources/views/provisioning/wizard.blade.php
Normal file
14
flexiapi/resources/views/provisioning/wizard.blade.php
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
@extends('layouts.main', ['welcome' => true])
|
||||
|
||||
@section('content')
|
||||
<div id="wizard">
|
||||
<h3>{{ __('Configure your Linphone application') }}</h3>
|
||||
|
||||
<a class="btn" href="linphone-config:{{ route('provisioning.provision', ['provisioning_token' => $token]) }}">
|
||||
{{ __('Open the app') }}
|
||||
</a>
|
||||
<a class="btn secondary" target="_blank" href="https://www.linphone.org/en/download/">
|
||||
{{ __('Download the app') }}
|
||||
</a>
|
||||
</div>
|
||||
@endsection
|
||||
|
|
@ -52,6 +52,8 @@ Route::redirect('/', 'login')->name('account.home');
|
|||
Route::get('about', 'AboutController@about')->name('about');
|
||||
|
||||
Route::middleware(['web_panel_enabled', 'space.check'])->group(function () {
|
||||
Route::get('wizard/{provisioning_token}', 'Account\ProvisioningController@wizard')->name('provisioning.wizard');
|
||||
|
||||
Route::get('login', 'Account\AuthenticateController@login')->name('account.login');
|
||||
Route::post('authenticate', 'Account\AuthenticateController@authenticate')->name('account.authenticate');
|
||||
Route::get('authenticate/qrcode/{token?}', 'Account\AuthenticateController@loginAuthToken')->name('account.authenticate.auth_token');
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue