Merge pull request #1 from opensupports/master

Update
This commit is contained in:
Guillermo Giuliana 2017-06-09 16:26:48 -03:00 committed by GitHub
commit 7b3625736b
95 changed files with 785 additions and 545 deletions

View File

@ -12,8 +12,8 @@ export default {
'FORGOT_PASSWORD': 'Passwort vergessen?', 'FORGOT_PASSWORD': 'Passwort vergessen?',
'RECOVER_PASSWORD': 'Passwort wiederherstellen', 'RECOVER_PASSWORD': 'Passwort wiederherstellen',
'RECOVER_SENT': 'Eine E-Mail mit Wiederherstellungs Anweisungen wurde gesendet.', 'RECOVER_SENT': 'Eine E-Mail mit Wiederherstellungs Anweisungen wurde gesendet.',
'NEW_EMAIL': 'नई ईमेल', 'NEW_EMAIL': 'Neue e-mail',
'FULL_NAME': 'पूरा नाम', 'FULL_NAME': 'vollständiger Name',
'OLD_PASSWORD': 'Altes Passwort', 'OLD_PASSWORD': 'Altes Passwort',
'NEW_PASSWORD': 'Neues Passwort', 'NEW_PASSWORD': 'Neues Passwort',
'REPEAT_NEW_PASSWORD': 'Wiederhole das neue Passwort', 'REPEAT_NEW_PASSWORD': 'Wiederhole das neue Passwort',

View File

@ -1,7 +1,7 @@
export default { export default {
'WELCOME': 'Bienvenue', 'WELCOME': 'Bienvenue',
'TICKETS': 'Des billets', 'TICKETS': 'Tickets',
'ARTICLES': 'Des articles', 'ARTICLES': 'Articles',
'ACCOUNT': 'Compte', 'ACCOUNT': 'Compte',
'SUBMIT': 'Soumettre', 'SUBMIT': 'Soumettre',
'EMAIL': 'Email', 'EMAIL': 'Email',
@ -9,28 +9,28 @@ export default {
'REPEAT_PASSWORD': 'Répéter le mot de passe', 'REPEAT_PASSWORD': 'Répéter le mot de passe',
'LOG_IN': 'S\'identifier', 'LOG_IN': 'S\'identifier',
'SIGN_UP': 'S\'inscrire', 'SIGN_UP': 'S\'inscrire',
'FORGOT_PASSWORD': 'Mot de passe oublié?', 'FORGOT_PASSWORD': 'Mot de passe oublié ?',
'RECOVER_PASSWORD': 'Récupérer mot de passe', 'RECOVER_PASSWORD': 'Récupérer mot de passe',
'RECOVER_SENT': 'Un e-mail contenant les instructions de récupération a été envoyé.', 'RECOVER_SENT': 'Un e-mail contenant les instructions de récupération a été envoyé.',
'NEW_EMAIL': 'Nouveau courriel', 'NEW_EMAIL': 'Nouveau courriel',
'FULL_NAME': 'Nom complet', 'FULL_NAME': 'Nom complet',
'OLD_PASSWORD': 'Ancien mot de passe', 'OLD_PASSWORD': 'Ancien mot de passe',
'NEW_PASSWORD': 'Nouveau mot de passe', 'NEW_PASSWORD': 'Nouveau mot de passe',
'REPEAT_NEW_PASSWORD': 'Répété le nouveau mot de passe', 'REPEAT_NEW_PASSWORD': 'Répéter le nouveau mot de passe',
'BACK_LOGIN_FORM': 'Retour au formulaire de connexion', 'BACK_LOGIN_FORM': 'Retour au formulaire de connexion',
'VIEW_ARTICLES': 'Voir les articles', 'VIEW_ARTICLES': 'Voir les articles',
'EDIT_PROFILE': 'Editer le profil', 'EDIT_PROFILE': 'Editer le profil',
'CLOSE_SESSION': 'Fermer la session', 'CLOSE_SESSION': 'Fermer la session',
'CREATE_TICKET': 'Créer un ticket', 'CREATE_TICKET': 'Créer un ticket',
'TICKET_LIST': 'Liste des billets', 'TICKET_LIST': 'Liste des tickets',
'SUPPORT_CENTER': 'Centre de soutien', 'SUPPORT_CENTER': 'Centre d\'assistance',
'DEPARTMENT': 'département', 'DEPARTMENT': 'Département',
'AUTHOR': 'Auteur', 'AUTHOR': 'Auteur',
'DATE': 'Rendez-vous amoureux', 'DATE': 'Date',
'RESPOND': 'Répondre', 'RESPOND': 'Répondre',
'RESPOND_TICKET': 'Répondre Ticket', 'RESPOND_TICKET': 'Répondre au ticket',
'NO_ATTACHMENT': 'Aucune pièce jointe', 'NO_ATTACHMENT': 'Aucune pièce jointe',
'STAFF': 'Personnel', 'STAFF': 'Administrateur',
'CUSTOMER': 'Client', 'CUSTOMER': 'Client',
'YES': 'Oui', 'YES': 'Oui',
'NO': 'Non', 'NO': 'Non',
@ -41,55 +41,55 @@ export default {
'SETTINGS': 'Paramètres', 'SETTINGS': 'Paramètres',
'STATISTICS': 'Statistiques', 'STATISTICS': 'Statistiques',
'LAST_ACTIVITY': 'Dernière Activité', 'LAST_ACTIVITY': 'Dernière Activité',
'MY_TICKETS': 'Mes billets', 'MY_TICKETS': 'Mes tickets',
'NEW_TICKETS': 'Nouveaux billets', 'NEW_TICKETS': 'Nouveaux tickets',
'ALL_TICKETS': 'Tous les billets', 'ALL_TICKETS': 'Tous les tickets',
'CUSTOM_RESPONSES': 'Réponses personnalisées', 'CUSTOM_RESPONSES': 'Réponses personnalisées',
'LIST_USERS': 'Liste des utilisateurs', 'LIST_USERS': 'Voir les utilisateurs',
'BAN_USERS': 'Utilisateurs de Ban', 'BAN_USERS': 'Bannir des utilisateurs',
'LIST_ARTICLES': 'Liste des articles', 'LIST_ARTICLES': 'Voir les articles',
'STAFF_MEMBERS': 'Les membres du personnel', 'STAFF_MEMBERS': 'Membres de l\'administration',
'DEPARTMENTS': 'Départements', 'DEPARTMENTS': 'Départements',
'SYSTEM_PREFERENCES': 'Préférences de système', 'SYSTEM_PREFERENCES': 'Préférences du système',
'ADVANCED_SETTINGS': 'Réglages avancés', 'ADVANCED_SETTINGS': 'Réglages avancés',
'EMAIL_TEMPLATES': 'Modèles de courrier électronique', 'EMAIL_TEMPLATES': 'Modèles de courrier électronique',
'FILTERS_CUSTOM_FIELDS': 'Filtres et champs personnalisés', 'FILTERS_CUSTOM_FIELDS': 'Filtres et champs personnalisés',
'PRIORITY': 'Priorité', 'PRIORITY': 'Priorité',
'NUMBER': 'Nombre', 'NUMBER': 'Nombre',
'HIGH': 'Haute', 'HIGH': 'Haute',
'MEDIUM': 'Moyen', 'MEDIUM': 'Moyenne',
'LOW': 'Faible', 'LOW': 'Faible',
'TITLE': 'Titre', 'TITLE': 'Titre',
'CONTENT': 'Contenu', 'CONTENT': 'Contenu',
'SAVE': 'sauvegarder', 'SAVE': 'Enregistrer',
'DISCARD_CHANGES': 'Annuler les modifications', 'DISCARD_CHANGES': 'Annuler les modifications',
'DELETE': 'Effacer', 'DELETE': 'Supprimer',
'LANGUAGE': 'La langue', 'LANGUAGE': 'Langue',
'OWNER': 'Propriétaire', 'OWNER': 'Assigné à',
'OWNED': 'Propriétaire', 'OWNED': 'Assigné à',
'STATUS': 'Statut', 'STATUS': 'Statut',
'NONE': 'Aucun', 'NONE': 'Aucun',
'OPENED': 'Ouvert', 'OPENED': 'Ouvert',
'CLOSED': 'Fermé', 'CLOSED': 'Fermé',
'CLOSE': 'Fermer', 'CLOSE': 'Fermer',
'RE_OPEN': 'Ouvert', 'RE_OPEN': 'Réouvrir',
'ASSIGN_TO_ME': 'Affectez-moi', 'ASSIGN_TO_ME': 'Assignez-moi',
'UN_ASSIGN': 'Désassigner', 'UN_ASSIGN': 'Désassigner',
'VIEW_TICKET': 'Voir le billet', 'VIEW_TICKET': 'Voir le ticket',
'VIEW_TICKET_DESCRIPTION': 'Vérifiez l\'état de votre billet en utilisant votre numéro de billet et votre courriel.', 'VIEW_TICKET_DESCRIPTION': 'Vérifiez l\'état de votre ticket en utilisant votre numéro de ticket et votre courriel.',
'SELECT_CUSTOM_RESPONSE': 'Sélectionnez une réponse personnalisée ...', 'SELECT_CUSTOM_RESPONSE': 'Sélectionnez une réponse personnalisée ...',
'WARNING': 'Attention', 'WARNING': 'Attention',
'INFO': 'Information', 'INFO': 'Information',
'ALL_DEPARTMENTS': 'Tous les départements', 'ALL_DEPARTMENTS': 'Tous les départements',
'EMAIL_BANNED': 'Email interdit', 'EMAIL_BANNED': 'Email bannis',
'UN_BAN': 'Désactiver l\'interdiction', 'UN_BAN': 'Désactiver le ban',
'BAN_NEW_EMAIL': ' Interdire un nouveau courriel', 'BAN_NEW_EMAIL': 'Bannir un nouveau courriel',
'BAN_EMAIL': 'Ban email', 'BAN_EMAIL': 'Bannir l\'email',
'EDIT_EMAIL': 'Modifier l\'email', 'EDIT_EMAIL': 'Modifier l\'email',
'EDIT_PASSWORD': 'Modifier le mot de passe', 'EDIT_PASSWORD': 'Modifier le mot de passe',
'CHANGE_EMAIL': 'Changer l\'e-mail', 'CHANGE_EMAIL': 'Changer l\'e-mail',
'CHANGE_PASSWORD': 'Changer le mot de passe', 'CHANGE_PASSWORD': 'Changer le mot de passe',
'NAME': 'prénom', 'NAME': 'Nom',
'SIGNUP_DATE': 'Date d\'inscription', 'SIGNUP_DATE': 'Date d\'inscription',
'SEARCH_USERS': 'Rechercher des utilisateurs ...', 'SEARCH_USERS': 'Rechercher des utilisateurs ...',
'SEARCH_EMAIL': 'Chercher un email...', 'SEARCH_EMAIL': 'Chercher un email...',
@ -100,129 +100,129 @@ export default {
'COLOR': 'Couleur', 'COLOR': 'Couleur',
'ADD_NEW_ARTICLE': 'Ajouter un nouvel article', 'ADD_NEW_ARTICLE': 'Ajouter un nouvel article',
'ADD_ARTICLE': 'Ajouter un article', 'ADD_ARTICLE': 'Ajouter un article',
'LAST_EDITED_IN': 'Dernière modification dans {date}', 'LAST_EDITED_IN': 'Dernière modification le {date}',
'EDIT': 'modifier', 'EDIT': 'Modifier',
'NO_RESULTS': 'Aucun résultat', 'NO_RESULTS': 'Aucun résultat',
'DELETE_AND_BAN': 'Supprimer et interdire', 'DELETE_AND_BAN': 'Supprimer et bannir',
'STAFF_LEVEL': 'Personnel', 'STAFF_LEVEL': 'Niveau d\'administration',
'ASSIGNED': 'Attribué', 'ASSIGNED': 'Assigné',
'ASSIGNED_TICKETS': '{tickets} billets assignés', 'ASSIGNED_TICKETS': '{tickets} tickets assignés',
'CLOSED_TICKETS': '{tickets} billets fermés', 'CLOSED_TICKETS': '{tickets} tickets fermés',
'LAST_LOGIN': 'Dernière connexion', 'LAST_LOGIN': 'Dernière connexion',
'ADD_NEW_STAFF': 'Ajouter du personnel', 'ADD_NEW_STAFF': 'Ajouter un nouvel administrateur',
'ADD_STAFF': 'Ajouter du personnel', 'ADD_STAFF': 'Ajouter un administrateur',
'LEVEL': 'Niveau', 'LEVEL': 'Niveau',
'LEVEL_1': 'Niveau 1 (billets)', 'LEVEL_1': 'Niveau 1 (Tickets)',
'LEVEL_2': 'Niveau 2 (billets + articles)', 'LEVEL_2': 'Niveau 2 (Tickets + Articles)',
'LEVEL_3': 'Niveau 3 (billets + articles + personnel)', 'LEVEL_3': 'Niveau 3 (Tickets + Articles + Administrateurs)',
'LEVEL_1_DESCRIPTION': 'Ne peut que répondre aux tickets et gérer les utilisateurs.', 'LEVEL_1_DESCRIPTION': 'Ne peut que répondre aux tickets et gérer les utilisateurs.',
'LEVEL_2_DESCRIPTION': 'Peut faire chaque niveau 1, peut créer ou modifier des articles et il peut créer des réponses personnalisées.', 'LEVEL_2_DESCRIPTION': 'En plus du niveau 1, peut créer ou modifier des articles et créer des réponses personnalisées.',
'LEVEL_3_DESCRIPTION': 'Peut faire tous les niveaux 2, peut créer ou modifier des membres du personnel et peut gérer l\'ensemble du système.', 'LEVEL_3_DESCRIPTION': 'En plus du niveau 2, peut créer ou modifier des membres de l\'administration et gérer l\'ensemble du système.',
'UPDATE_EMAIL': 'Mettre à jour le courrier électronique', 'UPDATE_EMAIL': 'Mettre à jour l\'email',
'UPDATE_PASSWORD': 'Mettre à jour le mot de passe', 'UPDATE_PASSWORD': 'Mettre à jour le mot de passe',
'UPDATE_LEVEL': 'Niveau de mise à jour', 'UPDATE_LEVEL': 'Mettre à jour le niveau',
'UPDATE_DEPARTMENTS': 'Mise à jour des départements', 'UPDATE_DEPARTMENTS': 'Mettre à jour les départements',
'EDIT_STAFF': 'Modifier le membre du personnel', 'EDIT_STAFF': 'Modifier le membre de l\'administration',
'ADD_DEPARTMENT': 'Ajouter un département', 'ADD_DEPARTMENT': 'Ajouter un département',
'UPDATE_DEPARTMENT': 'Service de mise à jour', 'UPDATE_DEPARTMENT': 'Mettre à jour le département',
'TRANSFER_TICKETS_TO': 'Transfert de billets à', 'TRANSFER_TICKETS_TO': 'Transférer les tickets à',
'COMMENTS': 'commentaires', 'COMMENTS': 'Commentaires',
'DELETE_STAFF_MEMBER': 'Supprimer le membre du personnel', 'DELETE_STAFF_MEMBER': 'Supprimer le membre de l\'administration',
'MAINTENANCE_MODE': 'Mode de Maintenance', 'MAINTENANCE_MODE': 'Mode de Maintenance',
'MAINTENANCE_MODE_INFO': 'Il désactivera temporairement le système pour les utilisateurs réguliers.', 'MAINTENANCE_MODE_INFO': 'Désactive temporairement le système pour les utilisateurs normaux.',
'RECOVER_DEFAULT': 'Récupération par défaut', 'RECOVER_DEFAULT': 'Récupération par défaut',
'SUPPORT_CENTER_URL': 'URL du centre de support', 'SUPPORT_CENTER_URL': 'URL du Centre de Support',
'SUPPORT_CENTER_TITLE': 'Titre du centre de supporte', 'SUPPORT_CENTER_TITLE': 'Titre du Centre de Support',
'SUPPORT_CENTER_LAYOUT': 'Disposition du centre de support', 'SUPPORT_CENTER_LAYOUT': 'Disposition du Centre de Support',
'DEFAULT_TIMEZONE': 'Par défaut Timezone (GMT)', 'DEFAULT_TIMEZONE': 'Fuseau horaire par défaut (GMT)',
'NOREPLY_EMAIL': 'aucune réponse email', 'NOREPLY_EMAIL': 'Adresse email "noreply"',
'SMTP_USER': 'Utilisateur SMTP', 'SMTP_USER': 'Utilisateur SMTP',
'SMTP_SERVER': 'Serveur SMTP', 'SMTP_SERVER': 'Serveur SMTP',
'SMTP_PASSWORD': 'Mot de passe SMTP', 'SMTP_PASSWORD': 'Mot de passe SMTP',
'PORT': 'Port', 'PORT': 'Port',
'RECAPTCHA_PUBLIC_KEY': 'Clé recaptcha poste', 'RECAPTCHA_PUBLIC_KEY': 'Clé publique Recaptcha',
'RECAPTCHA_PRIVATE_KEY': 'Recaptcha clé privée', 'RECAPTCHA_PRIVATE_KEY': 'Clé privée Recaptcha',
'ALLOW_FILE_ATTACHMENTS': 'Autoriser les pièces jointes au Fichier', 'ALLOW_FILE_ATTACHMENTS': 'Autoriser les pièces jointes',
'MAX_SIZE_KB': 'Taille Maximale (Ko)', 'MAX_SIZE_KB': 'Taille Maximale (Ko)',
'UPDATE_SETTINGS': 'Mettre à jour les paramêtres', 'UPDATE_SETTINGS': 'Mettre à jour les paramètres',
'DEFAULT_LANGUAGE': 'Langue par défaut', 'DEFAULT_LANGUAGE': 'Langue par défaut',
'SUPPORTED_LANGUAGES': 'Langues Prises en charges', 'SUPPORTED_LANGUAGES': 'Langues prises en charges',
'SUPPORTED_LANGUAGES_INFO': 'Les langues prises en charge sont les langues dans lesquelles les billets peuvent être écrits.', 'SUPPORTED_LANGUAGES_INFO': 'Les langues prises en charge sont les langues dans lesquelles les tickets peuvent être écrits.',
'ALLOWED_LANGUAGES': 'Langues autorisées', 'ALLOWED_LANGUAGES': 'Langues autorisées',
'ALLOWED_LANGUAGES_INFO': 'Les langues autorisées sont les langues qui peuvent être utilisées par un utilisateur.', 'ALLOWED_LANGUAGES_INFO': 'Les langues autorisées sont les langues qui peuvent être utilisées par un utilisateur.',
'SETTINGS_UPDATED': 'Les paramètres ont été mis à jour', 'SETTINGS_UPDATED': 'Les paramètres ont été mis à jour',
'ON': 'Sur', 'ON': 'Activé',
'OFF': 'De', 'OFF': 'Désactivé',
'BOXED': 'Boîte', 'BOXED': 'Boîte',
'FULL_WIDTH': 'Pleine largeur', 'FULL_WIDTH': 'Pleine largeur',
'LOAD_MORE': 'Charger plus', 'LOAD_MORE': 'Charger plus',
'MY_NOTIFICATIONS': 'Mes notifications', 'MY_NOTIFICATIONS': 'Mes notifications',
'ALL_NOTIFICATIONS': 'Toutes les notifications', 'ALL_NOTIFICATIONS': 'Toutes les notifications',
'VERIFY_SUCCESS': 'Mot de passe', 'VERIFY_SUCCESS': 'Utilisateur vérifié',
'VERIFY_FAILED': 'Impossible de vérifier', 'VERIFY_FAILED': 'Impossible de vérifier',
'ENABLE_USER_SYSTEM': 'Utiliser le système utilisateur pour les clients', 'ENABLE_USER_SYSTEM': 'Utiliser le système utilisateur pour les clients',
'ENABLE_USER_REGISTRATION': 'Activer l\'enregistrement des utilisateurs', 'ENABLE_USER_REGISTRATION': 'Activer l\'inscription des utilisateurs',
'INCLUDE_USERS_VIA_CSV': 'Inclure les utilisateurs via le fichier CSV', 'INCLUDE_USERS_VIA_CSV': 'Inclure des utilisateurs via un fichier CSV',
'BACKUP_DATABASE': 'Base de données de sauvegarde', 'BACKUP_DATABASE': 'Base de données de sauvegarde',
'DELETE_ALL_USERS': 'Supprimer tous les utilisateurs', 'DELETE_ALL_USERS': 'Supprimer tous les utilisateurs',
'PLEASE_CONFIRM_PASSWORD': 'Veuillez confirmer votre mot de passe pour effectuer ces modifications.', 'PLEASE_CONFIRM_PASSWORD': 'Veuillez confirmer votre mot de passe pour effectuer ces modifications.',
'REGISTRATION_API_KEYS': 'Clés API d\'enregistrement', 'REGISTRATION_API_KEYS': 'Clés d\'authentification API',
'NAME_OF_KEY': 'Nom de la clé', 'NAME_OF_KEY': 'Nom de la clé',
'KEY': 'Clé', 'KEY': 'Clé',
'ADD_API_KEY': 'Ajouter une clé API', 'ADD_API_KEY': 'Ajouter une clé API',
'NO_KEY_SELECTED': 'Aucune clé sélectionnée', 'NO_KEY_SELECTED': 'Aucune clé sélectionnée',
'CHECK_TICKET': 'Vérifier le billet', 'CHECK_TICKET': 'Vérifier le ticket',
'ACTIVITY': 'Activité', 'ACTIVITY': 'Activité',
'HOME': 'Accueil', 'HOME': 'Accueil',
'TICKET_NUMBER': 'Numéro de billet', 'TICKET_NUMBER': 'Numéro de ticket',
'NEXT': 'Prochain', 'NEXT': 'Suivant',
'CHART_CREATE_TICKET': 'Billets créés', 'CHART_CREATE_TICKET': 'Tickets créés',
'CHART_CLOSE': 'Billets fermés', 'CHART_CLOSE': 'Tickets fermés',
'CHART_SIGNUP': 'Inscriptions', 'CHART_SIGNUP': 'Inscriptions',
'CHART_COMMENT': 'Réponses', 'CHART_COMMENT': 'Réponses',
'CHART_ASSIGN': 'Attribué', 'CHART_ASSIGN': 'Assignés',
//ACTIVITIES //ACTIVITIES
'ACTIVITY_COMMENT': 'Billet commenté', 'ACTIVITY_COMMENT': 'ticket commenté',
'ACTIVITY_ASSIGN': 'Billet assigné', 'ACTIVITY_ASSIGN': 'ticket assigné',
'ACTIVITY_UN_ASSIGN': 'Billet non attribué', 'ACTIVITY_UN_ASSIGN': 'ticket non assigné',
'ACTIVITY_CLOSE': 'Billet fermé', 'ACTIVITY_CLOSE': 'ticket fermé',
'ACTIVITY_CREATE_TICKET': 'Billet créé', 'ACTIVITY_CREATE_TICKET': 'ticket créé',
'ACTIVITY_RE_OPEN': 'Billet rouvert', 'ACTIVITY_RE_OPEN': 'ticket réouvert',
'ACTIVITY_DEPARTMENT_CHANGED': 'A changé de département de billet', 'ACTIVITY_DEPARTMENT_CHANGED': 'a changé de département le ticket',
'ACTIVITY_PRIORITY_CHANGED': 'Priorité changée du billet', 'ACTIVITY_PRIORITY_CHANGED': 'a changé la priorité du ticket',
'ACTIVITY_EDIT_SETTINGS': 'Paramètres modifiés', 'ACTIVITY_EDIT_SETTINGS': 'a modifié les paramètres',
'ACTIVITY_SIGNUP': 'signé', 'ACTIVITY_SIGNUP': 's\'est inscrit',
'ACTIVITY_ADD_TOPIC': 'Sujet ajouté', 'ACTIVITY_ADD_TOPIC': 'a ajouté un sujet',
'ACTIVITY_ADD_ARTICLE': 'Article ajouté', 'ACTIVITY_ADD_ARTICLE': 'a ajouté un article',
'ACTIVITY_DELETE_TOPIC': 'Sujet supprimé', 'ACTIVITY_DELETE_TOPIC': 'a supprimé le sujet',
'ACTIVITY_DELETE_ARTICLE': 'Article supprimé', 'ACTIVITY_DELETE_ARTICLE': 'a supprimé un article',
'ACTIVITY_EDIT_ARTICLE': 'Article édité', 'ACTIVITY_EDIT_ARTICLE': 'a modifié un article',
'ACTIVITY_ADD_STAFF': 'Personnel supplémentaire', 'ACTIVITY_ADD_STAFF': 'a ajouté un administrateur',
'ACTIVITY_ADD_DEPARTMENT': 'Département ajouté', 'ACTIVITY_ADD_DEPARTMENT': 'a ajouté un département',
'ACTIVITY_DELETE_DEPARTMENT': 'Département supprimé', 'ACTIVITY_DELETE_DEPARTMENT': 'a supprimé le département',
'ACTIVITY_EDIT_DEPARTMENT': 'Département édité', 'ACTIVITY_EDIT_DEPARTMENT': 'a modifié le département',
'ACTIVITY_ADD_CUSTOM_RESPONSE': 'Ajout d\'une réponse personnalisée', 'ACTIVITY_ADD_CUSTOM_RESPONSE': 'a ajouté une réponse personnalisée',
'ACTIVITY_DELETE_CUSTOM_RESPONSE': 'Réponse personnalisée supprimée', 'ACTIVITY_DELETE_CUSTOM_RESPONSE': 'a supprimé une réponse personnalisée',
'ACTIVITY_EDIT_CUSTOM_RESPONSE': 'Réponse personnalisée éditée', 'ACTIVITY_EDIT_CUSTOM_RESPONSE': 'a modifié une réponse personnalisée',
'ACTIVITY_BAN_USER': 'Utilisateur interdit', 'ACTIVITY_BAN_USER': 'a banni un utilisateur',
'ACTIVITY_DELETE_USER': 'utilisateur supprimé', 'ACTIVITY_DELETE_USER': 'a supprimé un utilisateur',
'ACTIVITY_UN_BAN_USER': 'Utilisateur interdit', 'ACTIVITY_UN_BAN_USER': 'a retiré le ban d\'un utilisateur',
'SERVER_REQUIREMENTS': 'Configuration minimale du serveur', 'SERVER_REQUIREMENTS': 'Configuration minimale du serveur',
'DATABASE_CONFIGURATION': 'Configuration de base de données', 'DATABASE_CONFIGURATION': 'Configuration de la base de données',
'ADMIN_SETUP': 'Configuration de l\'administrateur', 'ADMIN_SETUP': 'Configuration de l\'administrateur',
'COMPLETED': 'Terminé', 'COMPLETED': 'Terminé',
'INSTALL_HEADER_TITLE': 'Assistant d\'installation d\'OpenSupports', 'INSTALL_HEADER_TITLE': 'Assistant d\'installation d\'OpenSupports',
'INSTALL_HEADER_DESCRIPTION': 'Cet assistant vous aidera à configurer et à installer OpenSupports sur votre site Web', 'INSTALL_HEADER_DESCRIPTION': 'Cet assistant vous aidera à configurer et à installer OpenSupports sur votre site Web',
'SELECT_LANGUAGE': 'Choisir la langue', 'SELECT_LANGUAGE': 'Choisir la langue',
'REQUIREMENT': 'Exigence', 'REQUIREMENT': 'Condition requise',
'VALUE': 'Valeur', 'VALUE': 'Valeur',
'REFRESH': 'Rafraîchir', 'REFRESH': 'Actualiser',
'USER_SYSTEM': 'Système utilisateur', 'USER_SYSTEM': 'Système utilisateur',
'PREVIOUS': 'précédent', 'PREVIOUS': 'Précédent',
'DATABASE_HOST': 'Serveur MySQL', 'DATABASE_HOST': 'Serveur MySQL',
'DATABASE_NAME': 'Nom de la base de données MySQL', 'DATABASE_NAME': 'Nom de la base de données MySQL',
'DATABASE_USER': 'Utilisateur MySQL', 'DATABASE_USER': 'Utilisateur MySQL',
@ -230,111 +230,111 @@ export default {
'ADMIN_NAME': 'Nom du compte administrateur', 'ADMIN_NAME': 'Nom du compte administrateur',
'ADMIN_EMAIL': 'Courriel du compte administrateur', 'ADMIN_EMAIL': 'Courriel du compte administrateur',
'ADMIN_PASSWORD': 'Mot de passe administrateur', 'ADMIN_PASSWORD': 'Mot de passe administrateur',
'ADMIN_PASSWORD_DESCRIPTION': 'Rappelez-vous ce mot de passe. Il est nécessaire pour accéder au panneau d\'administration. Vous pouvez le modifier ultérieurement.', 'ADMIN_PASSWORD_DESCRIPTION': 'Ne perdez pas ce mot de passe. Il est nécessaire pour accéder au panel d\'administration. Vous pourrez le modifier ultérieurement.',
'INSTALLATION_COMPLETED': 'Installation complétée.', 'INSTALLATION_COMPLETED': 'Installation terminée.',
'INSTALLATION_COMPLETED_DESCRIPTION': 'L\'installation d\'OpenSupports est terminée. Redirection vers le panneau d\'administration ...', 'INSTALLATION_COMPLETED_DESCRIPTION': 'L\'installation d\'OpenSupports est terminée. Redirection vers le panel d\'administration...',
'STEP_TITLE': 'Étape {current} of {total} - {title}', 'STEP_TITLE': 'Étape {current} of {total} - {title}',
'STEP_1_DESCRIPTION': 'Sélectionnez la langue de votre choix pour l\'assistant d\'installation.', 'STEP_1_DESCRIPTION': 'Sélectionnez la langue de votre choix pour l\'assistant d\'installation.',
'STEP_2_DESCRIPTION': 'Voici les conditions requises pour exécuter OpenSupports. Assurez-vous que toutes les exigences sont satisfaites.', 'STEP_2_DESCRIPTION': 'Voici les conditions requises pour exécuter OpenSupports. Assurez-vous que toutes les conditions requises soient satisfaites.',
'STEP_3_DESCRIPTION': 'Veuillez remplir la configuration de la base de données MySQL.', 'STEP_3_DESCRIPTION': 'Veuillez remplir la configuration de la base de données MySQL.',
'STEP_4_DESCRIPTION': 'Veuillez sélectionner les préférences de votre système utilisateur.', 'STEP_4_DESCRIPTION': 'Veuillez sélectionner les préférences de votre système utilisateur.',
'STEP_5_DESCRIPTION': 'Veuillez configurer le compte administrateur.', 'STEP_5_DESCRIPTION': 'Veuillez configurer le compte administrateur.',
'STEP_6_DESCRIPTION': 'L\'installation est terminée.', 'STEP_6_DESCRIPTION': 'L\'installation est terminée.',
//VIEW DESCRIPTIONS //VIEW DESCRIPTIONS
'CREATE_TICKET_DESCRIPTION': 'Il s\'agit d\'un formulaire de création de billets. Remplissez le formulaire et envoyez-nous vos questions / doutes / suggestions. Notre système de support répondra le plus rapidement possible.', 'CREATE_TICKET_DESCRIPTION': 'Il s\'agit d\'un formulaire de création de tickets. Remplissez le formulaire et envoyez-nous vos questions / doutes / suggestions. Notre système de support répondra le plus rapidement possible.',
'TICKET_LIST_DESCRIPTION': 'Vous trouverez ici une liste de tous les billets que vous avez envoyés à notre équipe d\'assistance.', 'TICKET_LIST_DESCRIPTION': 'Vous trouverez ici une liste de tous les tickets que vous avez envoyés à notre équipe d\'assistance.',
'TICKETS_DESCRIPTION': 'Envoyez un ticket via notre centre de support et recevez la réponse de vos doutes, suggestions et problèmes.', 'TICKETS_DESCRIPTION': 'Envoyez un ticket via notre centre de support et recevez la réponse de vos doutes, suggestions et problèmes.',
'ARTICLES_DESCRIPTION': 'Jetez un coup d\'oeil à nos articles sur les questions communes, les guides et la documentation.', 'ARTICLES_DESCRIPTION': 'Jetez un coup d\'oeil à nos articles sur les questions courantes, les guides et la documentation.',
'ACCOUNT_DESCRIPTION': 'Tous vos billets sont stockés dans le profil de votre compte. Gardez une trace de tous vos billets que vous envoyez à notre équipe.', 'ACCOUNT_DESCRIPTION': 'Tous vos tickets sont stockés dans le profil de votre compte. Gardez une trace de tous vos tickets que vous envoyez à notre équipe.',
'SUPPORT_CENTER_DESCRIPTION': 'Bienvenue dans notre centre de support. Vous pouvez nous contacter via un système de tickets. Vos billets seront répondu par notre personnel.', 'SUPPORT_CENTER_DESCRIPTION': 'Bienvenue dans notre centre de support. Vous pouvez nous contacter via un système de tickets. Notre équipe d\'assistance répondra à vos tickets.',
'CUSTOM_RESPONSES_DESCRIPTION': 'Les réponses personnalisées sont des réponses automatisées pour des problèmes communs', 'CUSTOM_RESPONSES_DESCRIPTION': 'Les réponses personnalisées sont des réponses automatisées pour des problèmes courants',
'MY_TICKETS_DESCRIPTION': 'Ici, vous pouvez afficher les billets dont vous êtes responsable.', 'MY_TICKETS_DESCRIPTION': 'Ici, vous pouvez afficher les tickets dont vous êtes responsable.',
'NEW_TICKETS_DESCRIPTION': 'Ici, vous pouvez afficher tous les nouveaux billets qui ne sont pas attribués par quiconque.', 'NEW_TICKETS_DESCRIPTION': 'Ici, vous pouvez afficher tous les nouveaux tickets qui n\'ont pas été attribués.',
'ALL_TICKETS_DESCRIPTION': 'Ici, vous pouvez afficher les billets des départements que vous avez affectés.', 'ALL_TICKETS_DESCRIPTION': 'Ici, vous pouvez afficher les tickets assignés aux départements auxquels vous appartenez.',
'TICKET_VIEW_DESCRIPTION': 'Ce billet a été envoyé par un client. Ici vous pouvez répondre ou assigner le billet', 'TICKET_VIEW_DESCRIPTION': 'Ce ticket a été envoyé par un client. Ici vous pouvez répondre ou assigner ce ticket',
'BAN_USERS_DESCRIPTION': 'Ici, vous pouvez voir une liste d\'e-mails interdits, vous pouvez les interdire ou les ajouter à la liste.', 'BAN_USERS_DESCRIPTION': 'Ici, vous pouvez voir la liste des e-mails qui ont été bannis. Vous pouvez en ajouter de nouveaux ou en supprimer de la liste.',
'LIST_USERS_DESCRIPTION': 'Il s\'agit de la liste des utilisateurs enregistrés sur cette plate-forme. Vous pouvez rechercher quelqu\'un en particulier, le supprimer ou l\'interdire.', 'LIST_USERS_DESCRIPTION': 'Il s\'agit de la liste des utilisateurs enregistrés sur cette plate-forme. Vous pouvez rechercher quelqu\'un en particulier, le supprimer ou le bannir.',
'USER_VIEW_DESCRIPTION': 'Ici vous pouvez trouver toutes les informations sur un utilisateur et tous les billets envoyés par l\'utilisateur. Vous pouvez également supprimer ou interdire.', 'USER_VIEW_DESCRIPTION': 'Ici vous pouvez trouver toutes les informations sur un utilisateur et tous les tickets envoyés par cet utilisateur. Vous pouvez également le supprimer ou le bannir.',
'DELETE_USER_DESCRIPTION': 'L\'utilisateur ne sera pas en mesure de se connecter au vieillissement et tous ses billets seront effacés. En outre, le courrier électronique ne peut plus être utilisé.', 'DELETE_USER_DESCRIPTION': 'L\'utilisateur ne sera plus en mesure de se connecter et tous ses tickets seront effacés. En outre, le courrier électronique ne pourra plus être utilisé.',
'DELETE_TOPIC_DESCRIPTION': 'En supprimant le sujet, tous les articles sur ce sujet seront effacés.', 'DELETE_TOPIC_DESCRIPTION': 'En supprimant le sujet, tous les articles correspondants seront effacés.',
'EDIT_TOPIC_DESCRIPTION': 'Ici, vous pouvez changer le nom, l\'icône et la couleur de l\'icône du sujet.', 'EDIT_TOPIC_DESCRIPTION': 'Ici, vous pouvez changer le nom, l\'icône et la couleur de l\'icône du sujet.',
'ADD_ARTICLE_DESCRIPTION': 'Ici vous pouvez ajouter un article qui sera disponible pour chaque utilisateur. Il sera ajouté à l\'intérieur de la catégorie {category}.', 'ADD_ARTICLE_DESCRIPTION': 'Ici vous pouvez ajouter un article qui sera disponible pour tous les utilisateurs. Il sera ajouté à l\'intérieur de la catégorie {category}.',
'LIST_ARTICLES_DESCRIPTION': 'Il s\'agit d\'une liste d\'articles qui comprend des informations sur nos services.', 'LIST_ARTICLES_DESCRIPTION': 'Il s\'agit d\'une liste d\'articles comprenant des informations sur nos services.',
'ADD_TOPIC_DESCRIPTION': 'Ici, vous pouvez ajouter un sujet qui fonctionne comme une catégorie pour les articles.', 'ADD_TOPIC_DESCRIPTION': 'Ici, vous pouvez ajouter un sujet qui fonctionne comme une catégorie pour les articles.',
'DELETE_ARTICLE_DESCRIPTION': 'Vous allez supprimer cet article pour toujours.', 'DELETE_ARTICLE_DESCRIPTION': 'Vous êtes sur le point de supprimer cet article définitivement.',
'STAFF_MEMBERS_DESCRIPTION': 'Ici, vous pouvez voir qui sont vos membres du personnel.', 'STAFF_MEMBERS_DESCRIPTION': 'Ici, vous pouvez voir qui sont vos membres de l\'administation.',
'ADD_STAFF_DESCRIPTION': 'Ici, vous pouvez ajouter des membres du personnel à vos équipes.', 'ADD_STAFF_DESCRIPTION': 'Ici, vous pouvez ajouter des membres de l\'administration à vos équipes.',
'EDIT_STAFF_DESCRIPTION': 'Ici, vous pouvez modifier des informations sur un membre du personnel.', 'EDIT_STAFF_DESCRIPTION': 'Ici, vous pouvez modifier des informations sur un membre de l\'administration.',
'MY_ACCOUNT_DESCRIPTION': 'Ici, vous pouvez modifier des informations vous concernant.', 'MY_ACCOUNT_DESCRIPTION': 'Ici, vous pouvez modifier des informations vous concernant.',
'DEPARTMENTS_DESCRIPTION': 'Un département est un groupe où les billets peuvent aller. Ils sont utilisés pour catégoriser les billets. Vous pouvez les affecter à d\'autres membres du personnel.', 'DEPARTMENTS_DESCRIPTION': 'Un département est un groupe où les tickets peuvent être assignés. Ils sont utilisés pour catégoriser les tickets. Vous pouvez les assigner à d\'autres administrateurs.',
'MAINTENANCE_MODE_DESCRIPTION': 'Le système de support est en mode maintenance, donc indisponible pour le moment. Nous reviendrons dès que possible.', 'MAINTENANCE_MODE_DESCRIPTION': 'Le système de support est en mode maintenance, donc indisponible pour le moment. Nous reviendrons dès que possible.',
'EMAIL_TEMPLATES_DESCRIPTION': 'Ici, vous pouvez modifier les modèles des e-mails qui seront envoyés aux utilisateurs. N\'oubliez pas que les doubles parenthèses des accolades indiquent une valeur variable. Par exemple, \'nom\' représente le nom de l\'utilisateur.', 'EMAIL_TEMPLATES_DESCRIPTION': 'Ici, vous pouvez modifier les modèles des e-mails qui seront envoyés aux utilisateurs. N\'oubliez pas que les doubles accolades indiquent une valeur variable. Par exemple, \'nom\' représente le nom de l\'utilisateur.',
'SYSTEM_PREFERENCES_DESCRIPTION': 'Ici, vous pouvez modifier les préférences du système.', 'SYSTEM_PREFERENCES_DESCRIPTION': 'Ici, vous pouvez modifier les préférences du système.',
'VERIFY_SUCCESS_DESCRIPTION': 'Votre utilisateur a été correctement vérifié. Vous pouvez vous connecter maintenant.', 'VERIFY_SUCCESS_DESCRIPTION': 'Votre utilisateur a été correctement vérifié. Vous pouvez vous connecter maintenant.',
'VERIFY_FAILED_DESCRIPTION': 'La vérification n\'a pas pu être effectuée.', 'VERIFY_FAILED_DESCRIPTION': 'La vérification n\'a pas pu être effectuée.',
'STATISTICS_DESCRIPTION': 'Ici, vous pouvez afficher les statistiques relatives aux billets et inscriptions..', 'STATISTICS_DESCRIPTION': 'Ici, vous pouvez afficher les statistiques relatives aux tickets et inscriptions.',
'ADVANCED_SETTINGS_DESCRIPTION': 'Ici, vous pouvez modifier les paramètres avancés de votre système. Attention, les modifications que vous effectuez ne peuvent pas être inversées.', 'ADVANCED_SETTINGS_DESCRIPTION': 'Ici, vous pouvez modifier les paramètres avancés de votre système. Attention, les modifications que vous effectuez sont irréversibles.',
'USER_SYSTEM_DISABLED': 'Le système utilisateur a été désactivé', 'USER_SYSTEM_DISABLED': 'Le système utilisateur a été désactivé',
'USER_SYSTEM_ENABLED': 'Le système utilisateur a été activé', 'USER_SYSTEM_ENABLED': 'Le système utilisateur a été activé',
'REGISTRATION_DISABLED': 'L\'enregistrement a été désactivé', 'REGISTRATION_DISABLED': 'L\'inscription a été désactivé',
'REGISTRATION_ENABLED': 'L\'enregistrement a été activé', 'REGISTRATION_ENABLED': 'L\'inscription a été activé',
'ADD_API_KEY_DESCRIPTION': 'Insérer le nom et générer une clé api d\'enregistrement.', 'ADD_API_KEY_DESCRIPTION': 'Insérer le nom et générer une clé api d\'authentification.',
'SIGN_UP_VIEW_DESCRIPTION': 'Vous pouvez créer un compte pour notre centre de support. Il est nécessaire pour envoyer des billets et voir la documentation.', 'SIGN_UP_VIEW_DESCRIPTION': 'Ici, vous pouvez créer un compte pour notre centre de support. Il est nécessaire pour soumettre des tickets et voir la documentation.',
'EDIT_PROFILE_VIEW_DESCRIPTION': 'Ici, vous pouvez modifier votre utilisateur en changeant votre adresse e-mail ou votre mot de passe.', 'EDIT_PROFILE_VIEW_DESCRIPTION': 'Ici, vous pouvez modifier votre utilisateur en changeant votre adresse e-mail ou votre mot de passe.',
'ENABLE_USER_SYSTEM_DESCRIPTION': 'Activer / désactiver l\'utilisation d\'un système utilisateur. Si vous le désactivez, tous les utilisateurs seront supprimés, mais les tickets seront conservés. Si vous l\'activez, les utilisateurs des tickets existants seront créés.', 'ENABLE_USER_SYSTEM_DESCRIPTION': 'Activer / désactiver l\'utilisation d\'un système utilisateur. Si vous le désactivez, tous les utilisateurs seront supprimés, mais les tickets seront conservés. Si vous l\'activez, les utilisateurs des tickets existants seront créés.',
'CSV_DESCRIPTION': 'Le fichier CSV doit comporter 3 colonnes: email, mot de passe, nom. Il n\'y a pas de limite dans le nombre de lignes. Il sera créé un utilisateur par ligne dans le fichier.', 'CSV_DESCRIPTION': 'Le fichier CSV doit comporter 3 colonnes: email, mot de passe, nom. Il n\'y a pas de limite dans le nombre de lignes. Il sera créé un utilisateur par ligne dans le fichier.',
//ERRORS //ERRORS
'EMAIL_OR_PASSWORD': 'E-mail ou mot de passe non valide', 'EMAIL_OR_PASSWORD': 'E-mail ou mot de passe invalide',
'EMAIL_NOT_EXIST': 'Le courriel n\'existe pas', 'EMAIL_NOT_EXIST': 'Le courriel n\'existe pas',
'ERROR_EMPTY': 'valeur invalide', 'ERROR_EMPTY': 'Valeur invalide',
'ERROR_PASSWORD': 'Mot de passe incorrect', 'ERROR_PASSWORD': 'Mot de passe incorrect',
'ERROR_NAME': 'Nom incorrect', 'ERROR_NAME': 'Nom incorrect',
'ERROR_TITLE': 'Titre invalide', 'ERROR_TITLE': 'Titre incorrect',
'ERROR_EMAIL': 'Email invalide', 'ERROR_EMAIL': 'Email invalide',
'ERROR_CONTENT_SHORT': 'Contenu trop court', 'ERROR_CONTENT_SHORT': 'Contenu trop court',
'PASSWORD_NOT_MATCH': 'Le mot de passe ne correspond pas', 'PASSWORD_NOT_MATCH': 'Le mot de passe ne correspond pas',
'INVALID_RECOVER': 'Données de récupération non valides', 'INVALID_RECOVER': 'Données de récupération non valides',
'TICKET_SENT_ERROR': 'Une erreur s\'est produite lors de la tentative de création le billet.', 'TICKET_SENT_ERROR': 'Une erreur s\'est produite lors de la création du ticket.',
'TICKET_COMMENT_ERROR': 'Une erreur s\'est produite lors de l\'ajout du commentaire.', 'TICKET_COMMENT_ERROR': 'Une erreur s\'est produite lors de l\'ajout du commentaire.',
'NO_PERMISSION': 'Vous n\'êtes pas autorisé à accéder à cette page.', 'NO_PERMISSION': 'Vous n\'êtes pas autorisé à accéder à cette page.',
'INVALID_USER': 'L\'identifiant d\'utilisateur n\'est pas valide', 'INVALID_USER': 'L\'identifiant d\'utilisateur n\'est pas valide',
'ERROR_RETRIEVING_TICKETS': 'Une erreur s\'est produite lors de la récupération des tickets.', 'ERROR_RETRIEVING_TICKETS': 'Une erreur s\'est produite lors de la récupération des tickets.',
'ERROR_RETRIEVING_USERS': 'Une erreur s\'est produite lors de la tentative de récupération des utilisateurs.', 'ERROR_RETRIEVING_USERS': 'Une erreur s\'est produite lors de la récupération des utilisateurs.',
'ERROR_RETRIEVING_BAN_LIST': 'Une erreur s\'est produite lors de la récupération de la liste des e-mails interdits.', 'ERROR_RETRIEVING_BAN_LIST': 'Une erreur s\'est produite lors de la récupération de la liste des e-mails bannis.',
'ERROR_BANNING_EMAIL': 'Une erreur s\'est produite lors de la tentative d\'interdiction du courrier électronique.', 'ERROR_BANNING_EMAIL': 'Une erreur s\'est produite lors de la tentative d\'interdiction du courrier électronique.',
'ERROR_RETRIEVING_ARTICLES': 'Une erreur s\'est produite lors de la tentative de récupération d\'articles.', 'ERROR_RETRIEVING_ARTICLES': 'Une erreur s\'est produite lors de la récupération des articles.',
'ERROR_LIST': 'Sélectionnez au moins un', 'ERROR_LIST': 'Sélectionnez-en au moins un',
'ERROR_URL': 'URL invalide', 'ERROR_URL': 'URL invalide',
'UNVERIFIED_EMAIL': 'Le courriel n\'a pas encore été validé', 'UNVERIFIED_EMAIL': 'Le courriel n\'a pas encore été validé',
'ERROR_UPDATING_SETTINGS': 'Une erreur s\'est produite lors de la tentative de mise à jour des paramètres', 'ERROR_UPDATING_SETTINGS': 'Une erreur s\'est produite lors de la mise à jour des paramètres',
'INVALID_EMAIL_OR_TICKET_NUMBER': 'Numéro de courriel ou de billet incorrect', 'INVALID_EMAIL_OR_TICKET_NUMBER': 'Numéro de courriel ou de ticket invalide',
'INVALID_FILE': 'Fichier non valide', 'INVALID_FILE': 'Fichier invalide',
'ERRORS_FOUND': 'Erreurs trouvées', 'ERRORS_FOUND': 'Des erreurs sont survenues',
//MESSAGES //MESSAGES
'SIGNUP_SUCCESS': 'Vous êtes enregistré avec succès dans notre système de support.', 'SIGNUP_SUCCESS': 'Vous êtes inscrit avec succès dans notre système de support.',
'TICKET_SENT': 'Le ticket a été créé avec succès.', 'TICKET_SENT': 'Le ticket a été créé avec succès.',
'VALID_RECOVER': 'Mot de passe récupéré avec succès', 'VALID_RECOVER': 'Mot de passe récupéré avec succès',
'EMAIL_EXISTS': 'l\'email existe déjà', 'EMAIL_EXISTS': 'L\'email existe déjà',
'ARE_YOU_SURE': 'Êtes-vous sûr?', 'ARE_YOU_SURE': 'Êtes-vous sûr ?',
'EMAIL_WILL_CHANGE': 'L\'e-mail actuel sera modifié', 'EMAIL_WILL_CHANGE': 'L\'e-mail actuel sera modifié',
'PASSWORD_WILL_CHANGE': 'Le mot de passe actuel sera modifié', 'PASSWORD_WILL_CHANGE': 'Le mot de passe actuel sera modifié',
'EMAIL_CHANGED': 'Le courrier électronique a été modifié avec succès', 'EMAIL_CHANGED': 'Le courrier électronique a été modifié avec succès',
'PASSWORD_CHANGED': 'Le mot de passe a été modifié avec succès', 'PASSWORD_CHANGED': 'Le mot de passe a été modifié avec succès',
'OLD_PASSWORD_INCORRECT': 'Ancien mot de passe est incorrect', 'OLD_PASSWORD_INCORRECT': 'Ancien mot de passe incorrect',
'WILL_LOSE_CHANGES': 'Vous n\'avez pas épargné. Vos modifications seront perdues.', 'WILL_LOSE_CHANGES': 'Vous n\'avez pas enregistrés vos modifications. Ces dernières seront perdues.',
'WILL_DELETE_CUSTOM_RESPONSE': 'La réponse personnalisée sera supprimée.', 'WILL_DELETE_CUSTOM_RESPONSE': 'La réponse personnalisée sera supprimée.',
'WILL_DELETE_DEPARTMENT': 'Le département sera supprimé. Tous les billets seront transférés au département sélectionné.', 'WILL_DELETE_DEPARTMENT': 'Le département sera supprimé. Tous les tickets seront transférés au département sélectionné.',
'NO_STAFF_ASSIGNED': 'Aucun membre du personnel n\'est affecté à ce service.', 'NO_STAFF_ASSIGNED': 'Aucun membre de l\'administration n\'est affecté à ce service.',
'LEVEL_UPDATED': 'Niveau a été mis à jour avec succès.', 'LEVEL_UPDATED': 'Le niveau a été mis à jour avec succès.',
'DEPARTMENTS_UPDATED': 'Les départements ont été mis à jour avec succès.', 'DEPARTMENTS_UPDATED': 'Les départements ont été mis à jour avec succès.',
'FAILED_EDIT_STAFF': 'Une erreur s\'est produite lors de la tentative de modification du membre du personnel.', 'FAILED_EDIT_STAFF': 'Une erreur s\'est produite lors de la tentative de modification de l\'administrateur.',
'EMAIL_BANNED_SUCCESSFULLY': 'Le courriel a été interdit avec succès', 'EMAIL_BANNED_SUCCESSFULLY': 'Le courriel a été banni avec succès',
'WILL_DELETE_STAFF': 'Ce membre du personnel sera supprimé et tous ses billets seront non affectés.', 'WILL_DELETE_STAFF': 'Cet administrateur sera supprimé et tous ses tickets ne seront plus assignés.',
'WILL_RECOVER_EMAIL_TEMPLATE': 'Ce modèle de courrier électronique récupérera sa valeur par défaut sur cette langue.', 'WILL_RECOVER_EMAIL_TEMPLATE': 'Ce modèle de courrier électronique sera réinitialisé à sa valeur par défaut pour cette langue.',
'SUCCESS_IMPORTING_CSV_DESCRIPTION': 'Le fichier CSV a été importé avec succès', 'SUCCESS_IMPORTING_CSV_DESCRIPTION': 'Le fichier CSV a été importé avec succès',
'SUCCESS_DELETING_ALL_USERS': 'Les utilisateurs ont été supprimés avec succès', 'SUCCESS_DELETING_ALL_USERS': 'Les utilisateurs ont été supprimés avec succès',
@ -343,17 +343,17 @@ export default {
'LAST_90_DAYS': 'Les 90 derniers jours', 'LAST_90_DAYS': 'Les 90 derniers jours',
'LAST_365_DAYS': 'Les 365 derniers jours', 'LAST_365_DAYS': 'Les 365 derniers jours',
'ACTIVITY_COMMENT_THIS': 'commenté ce ticket', 'ACTIVITY_COMMENT_THIS': 'a commenté ce ticket',
'ACTIVITY_ASSIGN_THIS': 'assigné ce ticket', 'ACTIVITY_ASSIGN_THIS': 'a assigné ce ticket',
'ACTIVITY_UN_ASSIGN_THIS': 'non affecté ce ticket', 'ACTIVITY_UN_ASSIGN_THIS': 'a supprimé l\'assignation de ce ticket',
'ACTIVITY_CLOSE_THIS': 'fermé ce ticket', 'ACTIVITY_CLOSE_THIS': 'a fermé ce ticket',
'ACTIVITY_CREATE_TICKET_THIS': 'créé ce ticket', 'ACTIVITY_CREATE_TICKET_THIS': 'a créé ce ticket',
'ACTIVITY_RE_OPEN_THIS': 'rouvert ce ticket', 'ACTIVITY_RE_OPEN_THIS': 'a réouvert ce ticket',
'ACTIVITY_DEPARTMENT_CHANGED_THIS': 'changement de département de ce ticket vers', 'ACTIVITY_DEPARTMENT_CHANGED_THIS': 'a changé le département de ce ticket pour',
'ACTIVITY_PRIORITY_CHANGED_THIS': 'priorité changée de ce ticket vers', 'ACTIVITY_PRIORITY_CHANGED_THIS': 'a changé la priorité de ce ticket pour',
'DATE_PREFIX': 'le', 'DATE_PREFIX': 'le',
'LEFT_EMPTY_DATABASE': 'Gauche vide pour la création automatique de la base de données', 'LEFT_EMPTY_DATABASE': 'Laisser vide pour la création automatique de la base de données',
'REMEMBER_ME': 'Rappelles toi', 'REMEMBER_ME': 'Se souvenir de moi',
'EMAIL_LOWERCASE': 'email', 'EMAIL_LOWERCASE': 'email',
'PASSWORD_LOWERCASE': 'mot de passe' 'PASSWORD_LOWERCASE': 'mot de passe'
}; };

View File

@ -1,6 +1,6 @@
<?php <?php
$url = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']); $path = rtrim(dirname($_SERVER['PHP_SELF']), '/');
$path = dirname($_SERVER['PHP_SELF']); $url = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $path;
?> ?>
<!doctype html> <!doctype html>
<html class="no-js" lang=""> <html class="no-js" lang="">
@ -25,4 +25,4 @@
</script> </script>
<script src="<?=$url ?>/js/main.js"></script> <script src="<?=$url ?>/js/main.js"></script>
</body> </body>
</html> </html>

View File

@ -35,11 +35,11 @@ class ConfigReducer extends Reducer {
const currentLanguage = sessionStore.getItem('language'); const currentLanguage = sessionStore.getItem('language');
sessionStore.storeConfigs(_.extend({}, payload.data, { sessionStore.storeConfigs(_.extend({}, payload.data, {
language: currentLanguage || payload.language language: currentLanguage || payload.data.language
})); }));
return _.extend({}, state, payload.data, { return _.extend({}, state, payload.data, {
language: currentLanguage || payload.language, language: currentLanguage || payload.data.language,
registration: !!(payload.data.registration * 1), registration: !!(payload.data.registration * 1),
'user-system-enabled': !!(payload.data['user-system-enabled']* 1), 'user-system-enabled': !!(payload.data['user-system-enabled']* 1),
'allow-attachments': !!(payload.data['allow-attachments']* 1), 'allow-attachments': !!(payload.data['allow-attachments']* 1),
@ -56,4 +56,4 @@ class ConfigReducer extends Reducer {
} }
} }
export default ConfigReducer.getInstance(); export default ConfigReducer.getInstance();

40
server/API_STANDARD.md Normal file
View File

@ -0,0 +1,40 @@
OpenSupports can work completely fine without a frontend. You could only use this API to manage the system.
This documentation is intended for application developers who are looking to integrate OpenSupports with other applications.
## Request/Response Interface
The API server is located in the `api/` folder of your OpenSupports' instance folder.
**All the requests must be done via POST method**, with the exception of the path `/system/download`.
The response object has the following JSON structure:
```
{
status: ["success"/"fail"],
message: [String],
data: [Object/Array/String]
}
```
* `status` indicates `"success"` if the request succeeded, else contains `"fail"`
* `message` contains the message in case of failure.
* `data` contains the returned data of the request.
For each path, we will document first the *Parameters*, then the *success* content of the property `data`, and finally the possible error messages it can return.
## Session Permissions
Some paths will not work if you're not logged in.
All paths have documented a *"Permission"* that can be:
* *any:* anyone can do a request, even if it's not logged in.
* *user:* only logged regular users can do the request.
* *staff1:* only a logged staff member with at least level 1 can do the request.
* *staff2:* only a logged staff member with at least level 2 can do the request.
* *staff3:* only a logged staff member with at least level 3 can do the request.
To login, user or staff, you have to make a request to [/user/login](#api-User-Login)
This request will return you the session data with an `userId` and a `token`. You will use these to validate the session every time you make a request that requires a logged user.
**All the paths that have permission `user`, `staff1`, `staff2` or `staff3`, require *userId* and *token* to be passed as parameter**. You need to pass them as `csrf_userid` and `csrf_token` respectively.
If you don't pass the userId and token, a `NO_PERMISSION` error will be returned.
Additionally, if there is no users (only staff members), you can check a ticket you created by providing your email and the ticketNumber to the `/ticket/check` path. This path will return you a `token` and `ticketNumber` you will use to comment, retrieve, or do any other operations to the ticket.

10
server/apidoc.json Normal file
View File

@ -0,0 +1,10 @@
{
"name": "OpenSupports API Documentation",
"version": "4.0.0",
"title": "OpenSupports API Documentation",
"description": "Backend API documentation for developers.",
"header": {
"title": "API Standards",
"filename": "API_STANDARD.md"
}
}

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /article/add-topic Add a new topic. * @api {post} /article/add-topic Add topic
* @apiVersion 4.0.0
* *
* @apiName Add topic * @apiName Add topic
* *
* @apiGroup article * @apiGroup Article
* *
* @apiDescription This path adds a new topic. * @apiDescription This path adds a new topic.
* *
* @apiPermission Staff level 2 * @apiPermission staff2
* *
* @apiParam {String} name Name of the new topic. * @apiParam {String} name Name of the new topic.
* @apiParam {String} icon Icon of the new topic. * @apiParam {String} icon Icon of the new topic.

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /article/add Add a article. * @api {post} /article/add Add article
* @apiVersion 4.0.0
* *
* @apiName Add * @apiName Add article
* *
* @apiGroup article * @apiGroup Article
* *
* @apiDescription This path adds a new article. * @apiDescription This path adds a new article.
* *
* @apiPermission Staff level 2 * @apiPermission staff2
* *
* @apiParam {String} title Title of the new article. * @apiParam {String} title Title of the new article.
* @apiParam {String} content Content of the new article. * @apiParam {String} content Content of the new article.

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /article/delete-topic Delete a topic. * @api {post} /article/delete-topic Delete topic
* @apiVersion 4.0.0
* *
* @apiName Delete topic * @apiName Delete topic
* *
* @apiGroup article * @apiGroup Article
* *
* @apiDescription This path deletes a topic. * @apiDescription This path deletes a topic.
* *
* @apiPermission Staff level 2 * @apiPermission staff2
* *
* @apiParam {Number} topicId Id of the topic. * @apiParam {Number} topicId Id of the topic.
* *

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /article/delete Delete a article. * @api {post} /article/delete Delete article
* @apiVersion 4.0.0
* *
* @apiName Delete * @apiName Delete article
* *
* @apiGroup article * @apiGroup Article
* *
* @apiDescription This path deletes a article. * @apiDescription This path deletes an article.
* *
* @apiPermission Staff level 2 * @apiPermission staff2
* *
* @apiParam {Number} articleId Id of the article. * @apiParam {Number} articleId Id of the article.
* *

View File

@ -3,20 +3,21 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /article/edit-topic Edit a topic. * @api {post} /article/edit-topic Edit topic
* @apiVersion 4.0.0
* *
* @apiName Edit topic * @apiName Edit topic
* *
* @apiGroup article * @apiGroup Article
* *
* @apiDescription This path edits a topic. * @apiDescription This path edits a topic.
* *
* @apiPermission Staff level 2 * @apiPermission staff2
* *
* @apiParam {Number} topicId Id of the topic. * @apiParam {Number} topicId Id of the topic.
* @apiParam {String} name The new name of the topic. * @apiParam {String} name The new name of the topic. Optional.
* @apiParam {String} icon The new icon of the topic. * @apiParam {String} icon The new icon of the topic. Optional.
* @apiParam {String} iconColor The new Icon's color of the topic. * @apiParam {String} iconColor The new Icon's color of the topic. Optional.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_TOPIC * @apiUse INVALID_TOPIC

View File

@ -3,21 +3,22 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /article/edit Edit a article. * @api {post} /article/edit Edit article
* @apiVersion 4.0.0
* *
* @apiName Edit a article * @apiName Edit a article
* *
* @apiGroup article * @apiGroup Article
* *
* @apiDescription This path edits a article. * @apiDescription This path edits an article.
* *
* @apiPermission Staff level 2 * @apiPermission staff2
* *
* @apiParam {Number} articleId Id of the article. * @apiParam {Number} articleId Id of the article.
* @apiParam {Number} topicId Id of the topic of the article. * @apiParam {Number} topicId Id of the topic of the article. Optional.
* @apiParam {String} content The new content of the article. * @apiParam {String} content The new content of the article. Optional.
* @apiParam {String} title The new title of the article. * @apiParam {String} title The new title of the article. Optional.
* @apiParam {Number} position The new position of the article. * @apiParam {Number} position The new position of the article. Optional.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_TOPIC * @apiUse INVALID_TOPIC

View File

@ -3,11 +3,12 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /article/get-all Retrieve all articles. * @api {post} /article/get-all Get all articles
* @apiVersion 4.0.0
* *
* @apiName Get all * @apiName Get all articles
* *
* @apiGroup article * @apiGroup Article
* *
* @apiDescription This path retrieves all the articles. * @apiDescription This path retrieves all the articles.
* *

View File

@ -3,22 +3,23 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /staff/add Add a new staff member. * @api {post} /staff/add Add staff
* @apiVersion 4.0.0
* *
* @apiName Add * @apiName Add staff
* *
* @apiGroup staff * @apiGroup Staff
* *
* @apiDescription This path add a new staff member. * @apiDescription This path adds a new staff member.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} name The name of the new staff member. * @apiParam {String} name The name of the new staff member.
* @apiParam {String} email The email of the new staff member. * @apiParam {String} email The email of the new staff member.
* @apiParam {String} password The password of the new staff member. * @apiParam {String} password The password of the new staff member.
* @apiParam {Number} level The level of the new staff member. * @apiParam {Number} level The level of the new staff member.
* @apiParam {String} profilePic The profile pic of the new staff member. * @apiParam {String} profilePic The profile pic of the new staff member.
* @apiParam {String} departments The departments that will have assigned the new staff member. * @apiParam {Number[]} departments The departments that will have assigned the new staff member.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_NAME * @apiUse INVALID_NAME

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /staff/assign-ticket Assign a ticket to a staff member. * @api {post} /staff/assign-ticket Assign ticket
* @apiVersion 4.0.0
* *
* @apiName Assign ticket * @apiName Assign ticket
* *
* @apiGroup staff * @apiGroup Staff
* *
* @apiDescription This path assigns a ticket to a staff member. * @apiDescription This path assigns a ticket to a staff member.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {Number} ticketNumber The number of the ticket to assign. * @apiParam {Number} ticketNumber The number of the ticket to assign.
* *

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
use RedBeanPHP\Facade as RedBean; use RedBeanPHP\Facade as RedBean;
/** /**
* @api {post} /staff/delete Delete a staff member. * @api {post} /staff/delete Delete staff
* @apiVersion 4.0.0
* *
* @apiName Delete * @apiName Delete staff
* *
* @apiGroup staff * @apiGroup Staff
* *
* @apiDescription This path deletes a staff member. * @apiDescription This path deletes a staff member.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {Number} staffId The id of the staff member. * @apiParam {Number} staffId The id of the staff member.
* *

View File

@ -2,21 +2,22 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /staff/edit Edit a staff member. * @api {post} /staff/edit Edit staff
* @apiVersion 4.0.0
* *
* @apiName Edit * @apiName Edit staff
* *
* @apiGroup staff * @apiGroup Staff
* *
* @apiDescription This path edits a staff member . * @apiDescription This path edits a staff member.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {Number} staffId Id of the staff. * @apiParam {Number} staffId Id of the staff.
* @apiParam {String} departments The name of the departments to change. * @apiParam {String} departments The name of the departments to change. Optional.
* @apiParam {String} email The new email of the staff member. * @apiParam {String} email The new email of the staff member. Optional.
* @apiParam {String} password The new password of the staff member. * @apiParam {String} password The new password of the staff member. Optional.
* @apiParam {Number} level The new level of the staff member. * @apiParam {Number} level The new level of the staff member. Optional.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_STAFF * @apiUse INVALID_STAFF

View File

@ -2,24 +2,25 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /staff/get-all-tickets Retrieve all tickets. * @api {post} /staff/get-all-tickets Get all tickets
* @apiVersion 4.0.0
* *
* @apiName Get all tickets * @apiName Get all tickets
* *
* @apiGroup staff * @apiGroup Staff
* *
* @apiDescription This path retrieves all tickets created. * @apiDescription This path retrieves all tickets.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {Number} page The page's number that it's looking for. * @apiParam {Number} page The page number.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_PAGE * @apiUse INVALID_PAGE
* *
* @apiSuccess {Object} data Information about a tickets and quantity of pages * @apiSuccess {Object} data Information about a tickets and quantity of pages.
* @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data.tickets Array of tickets of the current page * @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data.tickets Array of tickets of the current page.
* @apiSuccess {Number} data.pages Quantity of pages * @apiSuccess {Number} data.pages Quantity of pages.
* *
*/ */

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /staff/get-all Retrieve information about all the staff members. * @api {post} /staff/get-all Get all staffs
* @apiVersion 4.0.0
* *
* @apiName Get all * @apiName Get all staffs
* *
* @apiGroup staff * @apiGroup Staff
* *
* @apiDescription This path retrieves information about all the staff member. * @apiDescription This path retrieves information about all the staff member.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* *

View File

@ -3,19 +3,20 @@ use RedBeanPHP\Facade as RedBean;
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /staff/get-new-tickets Retrieve new tickets. * @api {post} /staff/get-new-tickets Get new tickets
* @apiVersion 4.0.0
* *
* @apiName Get new tickets * @apiName Get new tickets
* *
* @apiGroup staff * @apiGroup Staff
* *
* @apiDescription This path retrieves new tickets. * @apiDescription This path retrieves the new tickets of the departments the staff has assigned.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* *
* @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data Array of new tickets * @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data Array of new tickets.
* *
*/ */

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /staff/get-tickets Retrieve own tickets. * @api {post} /staff/get-tickets Get tickets
* @apiVersion 4.0.0
* *
* @apiName Get tickets * @apiName Get tickets
* *
* @apiGroup staff * @apiGroup Staff
* *
* @apiDescription This path retrieves the tickets of current staff member. * @apiDescription This path retrieves the tickets assigned to the current staff member.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* *

View File

@ -3,17 +3,18 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /staff/get Retrieve information about a staff member. * @api {post} /staff/get Get staff
* @apiVersion 4.0.0
* *
* @apiName Get * @apiName Get staff
* *
* @apiGroup staff * @apiGroup Staff
* *
* @apiDescription This path retrieves information about a staff member . * @apiDescription This path retrieves information about a staff member.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {Number} staffId The id of the staff member searched. * @apiParam {Number} staffId The id of the staff member to be searched.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* *

View File

@ -2,17 +2,18 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /staff/last-events Retrieve the last events. * @api {post} /staff/last-events Get last events
* @apiVersion 4.0.0
* *
* @apiName Last events * @apiName Get last events
* *
* @apiGroup staff * @apiGroup Staff
* *
* @apiDescription This path retrieves the last events. * @apiDescription This path retrieves the last events.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {Number} page The page's number of the list. * @apiParam {Number} page The page number.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_PAGE * @apiUse INVALID_PAGE

View File

@ -2,18 +2,19 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /staff/search-tickets Search some tickets. * @api {post} /staff/search-tickets Search tickets
* @apiVersion 4.0.0
* *
* @apiName Search tickets * @apiName Search tickets
* *
* @apiGroup staff * @apiGroup Staff
* *
* @apiDescription This path search some tickets. * @apiDescription This path search some tickets.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {String} query Key to search. * @apiParam {String} query Query string to search.
* @apiParam {Number} page The number of page. * @apiParam {Number} page The page number.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_QUERY * @apiUse INVALID_QUERY
@ -21,7 +22,7 @@ use Respect\Validation\Validator as DataValidator;
* *
* @apiSuccess {Object} data Information about tickets * @apiSuccess {Object} data Information about tickets
* @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data.tickets Array of tickets found * @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data.tickets Array of tickets found
* @apiSuccess {Number} data.pages Number of the page * @apiSuccess {Number} data.pages Number of pages
* *
*/ */

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /staff/un-assign-ticket Un-assign a ticket. * @api {post} /staff/un-assign-ticket Un-assign ticket
* @apiVersion 4.0.0
* *
* @apiName Un-assign ticket * @apiName Un-assign ticket
* *
* @apiGroup staff * @apiGroup Staff
* *
* @apiDescription This path un assign a ticket of a staff member. * @apiDescription This path un-assigns a ticket to the current staff member.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {Number} ticketNumber Ticket number to un-assign. * @apiParam {Number} ticketNumber Ticket number to un-assign.
* *

View File

@ -2,23 +2,24 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /system/add-api-key Create a new api-key. * @api {post} /system/add-api-key Add APIKey
* @apiVersion 4.0.0
* *
* @apiName Add api-key * @apiName Add APIKey
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path create a new api-key. * @apiDescription This path creates a new APIKey.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} name Name of the new api-key. * @apiParam {String} name Name of the new APIKey.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_NAME * @apiUse INVALID_NAME
* @apiUse NAME_ALREADY_USED * @apiUse NAME_ALREADY_USED
* *
* @apiSuccess {String} data Token of the api key * @apiSuccess {String} data Token of the APIKey.
* *
*/ */

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /system/add-department Create a new department. * @api {post} /system/add-department Add department
* @apiVersion 4.0.0
* *
* @apiName Add department * @apiName Add department
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path create a new department. * @apiDescription This path create a new department.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} name Name of the new department. * @apiParam {String} name Name of the new department.
* *

View File

@ -2,15 +2,16 @@
use Ifsnop\Mysqldump as IMysqldump; use Ifsnop\Mysqldump as IMysqldump;
/** /**
* @api {post} /system/backup-database Do a backup of the database. * @api {post} /system/backup-database Backup database
* @apiVersion 4.0.0
* *
* @apiName Backup database * @apiName Backup database
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path do a backup of the database. * @apiDescription This path does a backup of the database.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* *

View File

@ -1,13 +1,14 @@
<?php <?php
/** /**
* @api {post} /system/check-requirements Checks and retrieves the current requirements. * @api {post} /system/check-requirements Checks requirements
* @apiVersion 4.0.0
* *
* @apiName Check requirements * @apiName Check requirements
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path checks and retrieves the current requirements. * @apiDescription This path checks and retrieves the current requirements for the installation.
* *
* @apiPermission any * @apiPermission any
* *

View File

@ -1,17 +1,18 @@
<?php <?php
/** /**
* @api {post} /system/csv-import Receives a csv file with a list of users to signup . * @api {post} /system/csv-import CSV import
* @apiVersion 4.0.0
* *
* @apiName CSV import * @apiName CSV import
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path receives a csv file with a list of users to signup. * @apiDescription This path receives a csv file with a list of users to signup.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} file A csv file with this content format: email,password, name. * @apiParam {String} file A csv file with this content format: email, password, name.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_FILE * @apiUse INVALID_FILE

View File

@ -2,15 +2,16 @@
use RedBeanPHP\Facade as RedBean; use RedBeanPHP\Facade as RedBean;
/** /**
* @api {post} /system/delete-all-users Delete all users in database. * @api {post} /system/delete-all-users Delete all users
* @apiVersion 4.0.0
* *
* @apiName Delete all users * @apiName Delete all users
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path delete all users in database. * @apiDescription This path deletes all users in database.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} password The password of the current staff. * @apiParam {String} password The password of the current staff.
* *

View File

@ -2,17 +2,18 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /system/delete-api-key Delete a api-key. * @api {post} /system/delete-api-key Delete APIKey
* @apiVersion 4.0.0
* *
* @apiName Delete api-key * @apiName Delete APIKey
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path delete a api-key. * @apiDescription This path deletes an APIKey.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} name Name of the api-key to delete. * @apiParam {String} name Name of the APIKey to delete.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_NAME * @apiUse INVALID_NAME

View File

@ -3,17 +3,18 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /system/delete-department Delete a department. * @api {post} /system/delete-department Delete department
* @apiVersion 4.0.0
* *
* @apiName Delete department * @apiName Delete department
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path delete a department. * @apiDescription This path deletes a department.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {Number} departmentId Id of the department to delete. * @apiParam {Number} departmentId Id of the department to be deleted.
* @apiParam {Number} transferDepartmentId Id of the department where the tickets will be transfer to. * @apiParam {Number} transferDepartmentId Id of the department where the tickets will be transfer to.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION

View File

@ -1,15 +1,16 @@
<?php <?php
/** /**
* @api {post} /system/disable-registration Disable the registration. * @api {post} /system/disable-registration Disable registration
* @apiVersion 4.0.0
* *
* @apiName Disable registration * @apiName Disable registration
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path disable the registration. * @apiDescription This path disables the registration.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} password The password of the current staff. * @apiParam {String} password The password of the current staff.
* *

View File

@ -1,15 +1,16 @@
<?php <?php
/** /**
* @api {post} /system/disable-user-system Disable the user system. * @api {post} /system/disable-user-system Disable user system
* @apiVersion 4.0.0
* *
* @apiName Disable user system * @apiName Disable user system
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path disable the user system. * @apiDescription This path disables the user system.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} password The password of the current staff. * @apiParam {String} password The password of the current staff.
* *

View File

@ -2,6 +2,25 @@
use Ifsnop\Mysqldump as IMysqldump; use Ifsnop\Mysqldump as IMysqldump;
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/**
* @api {get} /system/download Download file
* @apiVersion 4.0.0
*
* @apiName Download file
*
* @apiGroup System
*
* @apiDescription This path downloads a file.
*
* @apiPermission any
*
* @apiParam {String} file The filename to be downloaded.
*
*
* @apiSuccess {Object} file File content
*
*/
class DownloadController extends Controller { class DownloadController extends Controller {
const PATH = '/download'; const PATH = '/download';
const METHOD = 'GET'; const METHOD = 'GET';

View File

@ -3,18 +3,18 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /system/edit-department Edit a department. * @api {post} /system/edit-department Edit department
* @apiVersion 4.0.0
* *
* @apiName Edit department * @apiName Edit department
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path edit a department created. * @apiDescription This path edits a department's name.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} name The new name of the department. * @apiParam {String} name The new name of the department.
*
* @apiParam {Number} departmentId The Id of the department. * @apiParam {Number} departmentId The Id of the department.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /system/edit-mail-template Edit a mail template. * @api {post} /system/edit-mail-template Edit mail template
* @apiVersion 4.0.0
* *
* @apiName Edit mail template * @apiName Edit mail template
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path edit a mail template. * @apiDescription This path edit a mail template.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} templateType The new type of the template. * @apiParam {String} templateType The new type of the template.
* @apiParam {String} language The new language of the template. * @apiParam {String} language The new language of the template.

View File

@ -1,19 +1,20 @@
<?php <?php
/** /**
* @api {post} /system/edit-settings Edit the settings of the system. * @api {post} /system/edit-settings Edit settings
* @apiVersion 4.0.0
* *
* @apiName Edit settings * @apiName Edit settings
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path edit the settings of the system. * @apiDescription This path edit the settings of the system.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} allowedLanguages The list of languages allowed. * @apiParam {String} allowedLanguages The list of languages allowed.
* @apiParam {String} supportedLanguages The list of languages supported. * @apiParam {String} supportedLanguages The list of languages supported.
* @apiParam {String} settings A list this content format: language, recaptcha-public, recaptcha-private, no-reply-email, smtp-host, smtp-port, smtp-user, smtp-pass, time-zone, maintenance-mode, layout, allow-attachments, max-size, title, url. * @apiParam {Setting} setting A setting can be any of the following: language, recaptcha-public, recaptcha-private, no-reply-email, smtp-host, smtp-port, smtp-user, smtp-pass, time-zone, maintenance-mode, layout, allow-attachments, max-size, title, url.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* *

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /system/enable-registration Enable the registration. * @api {post} /system/enable-registration Enable registration
* @apiVersion 4.0.0
* *
* @apiName Enable registration * @apiName Enable registration
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path enable the registration. * @apiDescription This path enables the registration.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} password The password of the current staff. * @apiParam {String} password The password of the current staff.
* *

View File

@ -1,15 +1,16 @@
<?php <?php
/** /**
* @api {post} /system/enable-user-system Enable user system. * @api {post} /system/enable-user-system Enable user system
* @apiVersion 4.0.0
* *
* @apiName Enable user system * @apiName Enable user system
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path enable the user system. * @apiDescription This path enables the user system.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} password The password of the current staff. * @apiParam {String} password The password of the current staff.
* *

View File

@ -2,19 +2,20 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /system/get-api-keys Retrieve api keys. * @api {post} /system/get-api-keys Get APIKeys
* @apiVersion 4.0.0
* *
* @apiName Get api keys * @apiName Get APIKeys
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path retrieves the all api keys. * @apiDescription This path retrieves the all APIKeys.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* *
* @apiSuccess {[APIKey](#api-Data_Structures-ObjectApikey)[]} data Array of api keys * @apiSuccess {[APIKey](#api-Data_Structures-ObjectApikey)[]} data Array of APIKeys
* *
*/ */

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /system/get-logs retrieve logs. * @api {post} /system/get-logs Get logs
* @apiVersion 4.0.0
* *
* @apiName Get logs * @apiName Get logs
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path retrieves the all logs. * @apiDescription This path retrieves the all the logs.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {Number} page The page of logs. * @apiParam {Number} page The page of logs.
* *

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /system/get-mail-templates Retrieve mail templates. * @api {post} /system/get-mail-templates Get mail templates
* @apiVersion 4.0.0
* *
* @apiName Get mail templates * @apiName Get mail templates
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path retrieves the all mail templates. * @apiDescription This path retrieves the all the mail templates.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* *

View File

@ -1,17 +1,18 @@
<?php <?php
/** /**
* @api {post} /system/get-settings Retrieve settings. * @api {post} /system/get-settings Get settings
* @apiVersion 4.0.0
* *
* @apiName Get settings * @apiName Get settings
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path retrieves one or more settings. * @apiDescription This path retrieves all the settings.
* *
* @apiPermission any * @apiPermission any
* *
* @apiParam {Boolean} allSettings A bool that means if you want a regular settings list or a complety settings list. * @apiParam {Boolean} allSettings Indicates if you want the regular settings list or a complete settings list. Complete list only available for staff level3.
* *
* @apiSuccess {Object} data Contains the information about the settings * @apiSuccess {Object} data Contains the information about the settings
* *

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /system/get-stats Retrieve stats. * @api {post} /system/get-stats Get stats
* @apiVersion 4.0.0
* *
* @apiName Get stats * @apiName Get stats
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path retrieves stats. * @apiDescription This path retrieves the last stats.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {String} period Period of search. * @apiParam {String} period Period of search.
* @apiParam {Number} staffId Id of the current staff. * @apiParam {Number} staffId Id of the current staff.

View File

@ -3,13 +3,14 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /system/init-admin Create the main administrator account. * @api {post} /system/init-admin Init admin
* @apiVersion 4.0.0
* *
* @apiName Init admin * @apiName Init admin
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path create the main administrator account. * @apiDescription This path creates the main administrator account. It can only be used once during installation
* *
* @apiPermission any * @apiPermission any
* *

View File

@ -2,6 +2,31 @@
//include '../../config.php'; //include '../../config.php';
use RedBeanPHP\Facade as RedBean; use RedBeanPHP\Facade as RedBean;
/**
* @api {post} /system/init-database Init database
* @apiVersion 4.0.0
*
* @apiName Init database
*
* @apiGroup System
*
* @apiDescription This path sets the database settings. It can only be used once during installation.
*
* @apiPermission any
*
* @apiParam {String} dbHost Url of the database server.
* @apiParam {String} dbName Name of the database. If not given, the system will try to create one.
* @apiParam {String} dbUser User of the database server.
* @apiParam {String} dbPassword Password of the database server.
*
* @apiUse DATABASE_CONNECTION
* @apiUse DATABASE_CREATION
* @apiUse INVALID_FILE
*
* @apiSuccess {Object} data Empty object
*
*/
class InitDatabaseController extends Controller { class InitDatabaseController extends Controller {
const PATH = '/init-database'; const PATH = '/init-database';
const METHOD = 'POST'; const METHOD = 'POST';

View File

@ -2,6 +2,30 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/**
* @api {post} /system/init-settings Init settings
* @apiVersion 4.0.0
*
* @apiName Init settings
*
* @apiGroup System
*
* @apiDescription This path sets the initial settings. It can only be used once during installation.
*
* @apiPermission any
*
* @apiParam {String} language Indicates the default language of the system.
* @apiParam {String} user-system-enabled Indicates if the user system should be enabled.
* @apiParam {String} registration Indicates if the registration should be enabled.
*
* @apiUse INVALID_LANGUAGE
* @apiUse INIT_SETTINGS_DONE
*
* @apiSuccess {Object} data Empty object
*
*/
class InitSettingsController extends Controller { class InitSettingsController extends Controller {
const PATH = '/init-settings'; const PATH = '/init-settings';
const METHOD = 'POST'; const METHOD = 'POST';
@ -47,7 +71,7 @@ class InitSettingsController extends Controller {
'allow-attachments' => 0, 'allow-attachments' => 0,
'max-size' => 1024, 'max-size' => 1024,
'title' => 'Support Center', 'title' => 'Support Center',
'url' => 'http://dev3.opensupports.com', 'url' => 'http://' . $_SERVER['HTTP_HOST'],
'registration' => !!Controller::request('registration'), 'registration' => !!Controller::request('registration'),
'user-system-enabled' => !!Controller::request('user-system-enabled'), 'user-system-enabled' => !!Controller::request('user-system-enabled'),
'last-stat-day' => date('YmdHi', strtotime(' -12 day ')), 'last-stat-day' => date('YmdHi', strtotime(' -12 day ')),
@ -113,4 +137,4 @@ class InitSettingsController extends Controller {
$department->store(); $department->store();
} }
} }
} }

View File

@ -1,6 +1,22 @@
<?php <?php
use RedBeanPHP\Facade as RedBean; use RedBeanPHP\Facade as RedBean;
/**
* @api {post} /system/installation-done Installation done
* @apiVersion 4.0.0
*
* @apiName Installation done
*
* @apiGroup System
*
* @apiDescription This path checks if the installation is already done.
*
* @apiPermission any
*
* @apiSuccess {Boolean} data Indicates if the installation is already done.
*
*/
class InstallationDoneController extends Controller { class InstallationDoneController extends Controller {
const PATH = '/installation-done'; const PATH = '/installation-done';
const METHOD = 'POST'; const METHOD = 'POST';

View File

@ -2,18 +2,19 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /system/recover-mail-template Recover mail template. * @api {post} /system/recover-mail-template Recover mail template
* @apiVersion 4.0.0
* *
* @apiName Recover mail template * @apiName Recover mail template
* *
* @apiGroup system * @apiGroup System
* *
* @apiDescription This path recover olds mail templates. * @apiDescription This path recovers an mail template to its original content.
* *
* @apiPermission Staff level 3 * @apiPermission staff3
* *
* @apiParam {String} templateType type of the template. * @apiParam {String} templateType Type of the template.
* @apiParam {String} language language of the template. * @apiParam {String} language Lenguage of the template.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_TEMPLATE * @apiUse INVALID_TEMPLATE

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /ticket/add-custom-response Add new custom responses. * @api {post} /ticket/add-custom-response Add custom responses
* @apiVersion 4.0.0
* *
* @apiName Add a custom response * @apiName Add a custom response
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path allows create new custom responses for tickets. * @apiDescription This path allows add new custom responses for tickets.
* *
* @apiPermission Staff Level 2 * @apiPermission staff2
* *
* @apiParam {String} name Name of the response. * @apiParam {String} name Name of the response.
* @apiParam {String} content Content of the response. * @apiParam {String} content Content of the response.

View File

@ -3,17 +3,18 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /ticket/change-department Change the department of a ticket. * @api {post} /ticket/change-department Change department
* @apiVersion 4.0.0
* *
* @apiName Change department * @apiName Change department
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path change the department of a ticket. * @apiDescription This path changes the department of a ticket.
* *
* @apiPermission Staff Level 1 * @apiPermission staff1
* *
* @apiParam {Number} ticketNumber The number of a ticket. * @apiParam {Number} ticketNumber The number of the ticket.
* @apiParam {Number} departmentId The id of the new department of the ticket. * @apiParam {Number} departmentId The id of the new department of the ticket.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /ticket/change-priority Change the priority of a ticket. * @api {post} /ticket/change-priority Change priority
* @apiVersion 4.0.0
* *
* @apiName Change priority * @apiName Change priority
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path change the priority of a ticket. * @apiDescription This path changes the priority of a ticket.
* *
* @apiPermission Staff Level 1 * @apiPermission staff1
* *
* @apiParam {Number} ticketNumber The number of a ticket. * @apiParam {Number} ticketNumber The number of a ticket.
* @apiParam {String} priority The new priority of the ticket. * @apiParam {String} priority The new priority of the ticket.

View File

@ -3,13 +3,14 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /ticket/check Check if a ticket was or not readed. * @api {post} /ticket/check Check ticket
* @apiVersion 4.0.0
* *
* @apiName Check * @apiName Check ticket
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path check if a ticket was or not readed. * @apiDescription This path logs you in to see a ticket, but only when there is no users.
* *
* @apiPermission any * @apiPermission any
* *

View File

@ -3,13 +3,14 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /ticket/close Close a ticket. * @api {post} /ticket/close Close ticket
* @apiVersion 4.0.0
* *
* @apiName Close * @apiName Close
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path close a ticket. * @apiDescription This path closes a ticket.
* *
* @apiPermission user * @apiPermission user
* *

View File

@ -3,19 +3,19 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /ticket/comment Comment a ticket. * @api {post} /ticket/comment Comment ticket
* * @apiVersion 4.0.0
* @apiName Comment *
* @apiName Comment ticket
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path comment a ticket. * @apiDescription This path comments a ticket.
* *
* @apiPermission user * @apiPermission user
* *
* @apiParam {String} content Content of the comment. * @apiParam {String} content Content of the comment.
* @apiParam {Number} ticketNumber The number of the ticket to comment. * @apiParam {Number} ticketNumber The number of the ticket to comment.
* @apiParam {String} csrf_token Token of the session.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_CONTENT * @apiUse INVALID_CONTENT

View File

@ -3,13 +3,14 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /ticket/create Create a new ticket. * @api {post} /ticket/create Create ticket
* @apiVersion 4.0.0
* *
* @apiName Create * @apiName Create ticket
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path create a new ticket. * @apiDescription This path creates a new ticket.
* *
* @apiPermission user * @apiPermission user
* *
@ -26,6 +27,7 @@ DataValidator::with('CustomValidations', true);
* @apiUse INVALID_DEPARTMENT * @apiUse INVALID_DEPARTMENT
* @apiUse INVALID_LANGUAGE * @apiUse INVALID_LANGUAGE
* @apiUse INVALID_CAPTCHA * @apiUse INVALID_CAPTCHA
* @apiUse INVALID_EMAIL
* *
* @apiSuccess {Object} data Information of the new ticket * @apiSuccess {Object} data Information of the new ticket
* @apiSuccess {Number} data.ticketNumber Number of the new ticket * @apiSuccess {Number} data.ticketNumber Number of the new ticket
@ -73,6 +75,10 @@ class CreateController extends Controller {
'validation' => DataValidator::captcha(), 'validation' => DataValidator::captcha(),
'error' => ERRORS::INVALID_CAPTCHA 'error' => ERRORS::INVALID_CAPTCHA
]; ];
$validations['requestData']['email'] = [
'validation' => DataValidator::email(),
'error' => ERRORS::INVALID_EMAIL
];
} }
return $validations; return $validations;

View File

@ -3,20 +3,20 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /ticket/delete-custom-response Delete a custom response. * @api {post} /ticket/delete-custom-response Delete custom response
* @apiVersion 4.0.0
* *
* @apiName Delete custom response * @apiName Delete custom response
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path delete a custom response. * @apiDescription This path deletes a custom response.
* *
* @apiPermission user * @apiPermission user
* *
* @apiParam {Number} id Id of the custom response to delete. * @apiParam {Number} id Id of the custom response to delete.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse NO_PERMISSION
* *
* @apiSuccess {Object} data Empty object * @apiSuccess {Object} data Empty object
* *

View File

@ -3,20 +3,21 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /ticket/edit-custom-response Edit a custom response. * @api {post} /ticket/edit-custom-response Edit custom response
* @apiVersion 4.0.0
* *
* @apiName Edit custom response * @apiName Edit custom response
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path edit a custom response. * @apiDescription This path edits a custom response.
* *
* @apiPermission Staff level 2 * @apiPermission staff2
* *
* @apiParam {Number} id Id of the custom response to edit. * @apiParam {Number} id Id of the custom response to edit.
* @apiParam {String} content The new content of the custom response. * @apiParam {String} content The new content of the custom response. It won't be changed if not defined.
* @apiParam {String} language The new language of the custom response. * @apiParam {String} language The new language of the custom response. It won't be changed if not defined,
* @apiParam {String} name The new name of the custom response. * @apiParam {String} name The new name of the custom response. It won't be changed if not defined.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_NAME * @apiUse INVALID_NAME

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /ticket/get-custom-responses Retrieve customs responses. * @api {post} /ticket/get-custom-responses Get custom responses
* @apiVersion 4.0.0
* *
* @apiName Get custom responses * @apiName Get custom responses
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path give back custom responses. * @apiDescription This path returns all the custom responses.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* *

View File

@ -2,18 +2,18 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /ticket/get Retrieve Ticket information. * @api {post} /ticket/get Get ticket
* @apiVersion 4.0.0
* *
* @apiName GetTicket * @apiName Get ticket
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path retrieves information about a ticket. * @apiDescription This path retrieves information about a ticket.
* *
* @apiPermission any * @apiPermission user
* *
* @apiParam {Number} ticketNumber The number of the ticket. * @apiParam {Number} ticketNumber The number of the ticket.
* @apiParam {String} csrf_token Token of the current session.
* *
* @apiUse INVALID_TICKET * @apiUse INVALID_TICKET
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION

View File

@ -2,13 +2,14 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /ticket/re-open Re open a closed ticket. * @api {post} /ticket/re-open Reopen ticket
* @apiVersion 4.0.0
* *
* @apiName Re open * @apiName Reopen ticket
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path re open a closed ticket. * @apiDescription This path reopens a closed ticket.
* *
* @apiPermission user * @apiPermission user
* *

View File

@ -2,17 +2,18 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /ticket/seen See if a ticket was or not seen. * @api {post} /ticket/seen See ticket
* @apiVersion 4.0.0
* *
* @apiName Seen * @apiName See ticket
* *
* @apiGroup Ticket * @apiGroup Ticket
* *
* @apiDescription This path see if a ticket was or not seen. * @apiDescription This path sets "unread" value to false, so it does not appear highlighted.
* *
* @apiPermission user * @apiPermission user
* *
* @apiParam {String} ticketNumber Number of the ticket. * @apiParam {Number} ticketNumber Number of the ticket.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_TICKET * @apiUse INVALID_TICKET

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /user/ban Bans email users. * @api {post} /user/ban Ban email
* @apiVersion 4.0.0
* *
* @apiName BanUser * @apiName Ban email
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path takes an Email and bans it. * @apiDescription This path takes an email and adds it to the ban list.
* *
* @apiPermission Staff Level 1 * @apiPermission staff1
* *
* @apiParam {String} email Email of user to ban. * @apiParam {String} email Email of user to ban.
* *

View File

@ -1,18 +1,19 @@
<?php <?php
/** /**
* @api {post} /user/check-session Check if session exist or not. * @api {post} /user/check-session Check session
* @apiVersion 4.0.0
* *
* @apiName Check session * @apiName Check session
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path retrieves a object that says if a session exist or not. * @apiDescription This path checks if the session exists.
* *
* @apiPermission Any * @apiPermission any
* *
* @apiSuccess {Object} data Information about the session * @apiSuccess {Object} data Information about the session.
* @apiSuccess {Boolean} data.sessionActive Indicate if the session is activated * @apiSuccess {Boolean} data.sessionActive Indicates if the session is active.
* *
*/ */

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
use RedBeanPHP\Facade as RedBean; use RedBeanPHP\Facade as RedBean;
/** /**
* @api {post} /user/delete Delete a user. * @api {post} /user/delete Delete user
* @apiVersion 4.0.0
* *
* @apiName Delete * @apiName Delete user
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path receive a user id and delete its user. * @apiDescription This path receives an user id and deletes the user.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {Number} userId The id of the user to delete. * @apiParam {Number} userId The id of the user to delete.
* *

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /user/edit-email Edit email of an user. * @api {post} /user/edit-email Edit email
* @apiVersion 4.0.0
* *
* @apiName Edit-email * @apiName Edit email
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path change the email of a user. * @apiDescription This path changes the email of an user.
* *
* @apiPermission User * @apiPermission user
* *
* @apiParam {String} newEmail The new email that the user wants to change. * @apiParam {String} newEmail The new email that the user wants to change.
* *

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /user/edit-password Edit password of an user. * @api {post} /user/edit-password Edit password
* @apiVersion 4.0.0
* *
* @apiName Edit-password * @apiName Edit password
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path edit the password of a user. * @apiDescription This path edits the password of an user.
* *
* @apiPermission User * @apiPermission user
* *
* @apiParam {String} newPassword The new password that the user wants to change. * @apiParam {String} newPassword The new password that the user wants to change.
* @apiParam {String} oldPassword The actual password of the user. * @apiParam {String} oldPassword The actual password of the user.

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /user/get-user Retrieve the information of an specific user. * @api {post} /user/get-user Get user information
* @apiVersion 4.0.0
* *
* @apiName Get-user * @apiName Get user information
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path retrieves information about an specific user. * @apiDescription This path retrieves information about a specific user.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {String} userId The id of the user to find information of. * @apiParam {String} userId The id of the user to find information of.
* *
@ -19,7 +20,7 @@ DataValidator::with('CustomValidations', true);
* @apiUse INVALID_USER * @apiUse INVALID_USER
* @apiUse USER_SYSTEM_DISABLED * @apiUse USER_SYSTEM_DISABLED
* *
* @apiSuccess {Object} data Information about a user * @apiSuccess {Object} data Information about an user
* @apiSuccess {String} data.name Name of the user * @apiSuccess {String} data.name Name of the user
* @apiSuccess {String} data.email Email of the user * @apiSuccess {String} data.email Email of the user
* @apiSuccess {Number} data.signupDate Date of signup of the user * @apiSuccess {Number} data.signupDate Date of signup of the user

View File

@ -2,20 +2,21 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /user/get-users Retrieve the information of a list of users. * @api {post} /user/get-users Get users list
* @apiVersion 4.0.0
* *
* @apiName Get-users * @apiName Get users list
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path retrieves information about a list of users. * @apiDescription This path retrieves the list of users by page.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {Number} page Number of pages of users. * @apiParam {Number} page Number of pages of users.
* @apiParam {String} orderBy Parameter to order the users by tickets or id. * @apiParam {String} orderBy Parameter to order the users by tickets or id.
* @apiParam {Boolean} desc Parameter to order the user ascending or descending way. * @apiParam {Boolean} desc Parameter to order the users in an ascending or descending way.
* @apiParam {String} search Key to find some specific users. * @apiParam {String} search Text query to find users.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_PAGE * @apiUse INVALID_PAGE

View File

@ -3,24 +3,25 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /user/get Retrieve the information of yourself. * @api {post} /user/get Get my information
* @apiVersion 4.0.0
* *
* @apiName Get * @apiName Get my Information
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path retrieve the information of a user. * @apiDescription This path retrieves information about the logged user.
* *
* @apiPermission User * @apiPermission user
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_CREDENTIALS * @apiUse INVALID_CREDENTIALS
* *
* @apiSuccess {Object} data Information about a user * @apiSuccess {Object} data Information about an user
* @apiSuccess {String} data.name Name of the user * @apiSuccess {String} data.name Name of the user
* @apiSuccess {String} data.email Email of the user * @apiSuccess {String} data.email Email of the user
* @apiSuccess {Boolean} data.verified Indicates if the user is verified * @apiSuccess {Boolean} data.verified Indicates if the user is verified
* @apiSuccess {Object} data Information about a user * @apiSuccess {Object} data Information about an user
* @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data.tickets Array of tickets of the user * @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data.tickets Array of tickets of the user
* *
*/ */

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /user/list-ban Retrieve the list of banned users. * @api {post} /user/list-ban Get ban list
* @apiVersion 4.0.0
* *
* @apiName List-ban * @apiName Get ban list
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path retrieves the list of banned users. * @apiDescription This path retrieves the list of banned emails.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* *

View File

@ -1,34 +1,35 @@
<?php <?php
/** /**
* @api {post} /user/login Login a user. * @api {post} /user/login Login
* @apiVersion 4.0.0
* *
* @apiName Login * @apiName Login
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path login a user. * @apiDescription This path logs in an user.
* *
* @apiPermission Any * @apiPermission any
* *
* @apiParam {Boolean} staff A bool that say if it want to login a staff or a normal user. * @apiParam {Boolean} staff Indicates if it wants to login a staff or a regular user.
* @apiParam {String} email The email of the user to login. * @apiParam {String} email The email of the user.
* @apiParam {String} password The password of the user to login. * @apiParam {String} password The password of the user.
* @apiParam {Boolean} remember A bool that say if the session wants to be remembered. * @apiParam {Boolean} remember Indicates if the session wants to be remembered.
* @apiParam {Number} userId The id of the user to login. * @apiParam {Number} userId The id of the user to login.
* @apiParam {String} rememberToken Token to login automatically. * @apiParam {String} rememberToken Token to login automatically. It replaces the password.
* *
* @apiUse USER_SYSTEM_DISABLED * @apiUse USER_SYSTEM_DISABLED
* @apiUse SESSION_EXISTS * @apiUse SESSION_EXISTS
* @apiUse UNVERIFIED_USER * @apiUse UNVERIFIED_USER
* @apiUse INVALID_CREDENTIALS * @apiUse INVALID_CREDENTIALS
* *
* @apiSuccess {Object} data Information about the session * @apiSuccess {Object} data Information about the session.
* @apiSuccess {Number} data.userId Id of the user * @apiSuccess {Number} data.userId Id of the user.
* @apiSuccess {String} data.userEmail Email of the user * @apiSuccess {String} data.userEmail Email of the user.
* @apiSuccess {Boolean} data.staff Indicates if the user is staff or not * @apiSuccess {Boolean} data.staff Indicates if the user is a staff.
* @apiSuccess {String} data.token Token of the session, used to verify the session when making other requests * @apiSuccess {String} data.token Token of the session, used to verify the session when making other requests.
* @apiSuccess {String} data.rememberToken Token of the remember session for automatic login * @apiSuccess {String} data.rememberToken Token of the remember session for automatic login .
* *
*/ */

View File

@ -1,14 +1,15 @@
<?php <?php
/** /**
* @api {post} /user/logout Log out the current user. * @api {post} /user/logout Log out
* @apiVersion 4.0.0
* *
* @apiName Log out * @apiName Log out
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path log out the current user. * @apiDescription This path logs out the current user.
* *
* @apiPermission Any * @apiPermission any
* *
* @apiSuccess {Object} data Empty object * @apiSuccess {Object} data Empty object
* *

View File

@ -3,19 +3,20 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /user/recover-password Change the password of the user using a token sended from the email. * @api {post} /user/recover-password Recover password
* @apiVersion 4.0.0
* *
* @apiName Recover password * @apiName Recover password
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path change the password of the user usign a token sended from the email. * @apiDescription This path changes the password of the user using a token sent by the email.
* *
* @apiPermission Any * @apiPermission any
* *
* @apiParam {String} email The email of the user who forgot the password. * @apiParam {String} email The email of the user who forgot the password.
* @apiParam {String} password The new password of the user. * @apiParam {String} password The new password of the user.
* @apiParam {String} token The token that was sended to the email of the user. * @apiParam {String} token The token sent by email to the user.
* *
* @apiUse INVALID_EMAIL * @apiUse INVALID_EMAIL
* @apiUse INVALID_PASSWORD * @apiUse INVALID_PASSWORD

View File

@ -3,17 +3,18 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /user/send-recover-password Send a token to the email of the user to change his password * @api {post} /user/send-recover-password Send password recovery
* @apiVersion 4.0.0
* *
* @apiName Send recover password * @apiName Send password recovery
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path send a token to the email of the user to change his password. * @apiDescription This path sends a token to the email of the user to change his password.
* *
* @apiPermission Any * @apiPermission any
* *
* @apiParam {String} email The email of the user who forgot the password. * @apiParam {String} email The email of the user who forgot the password.
* *
* @apiUse INVALID_EMAIL * @apiUse INVALID_EMAIL
* @apiUse USER_SYSTEM_DISABLED * @apiUse USER_SYSTEM_DISABLED

View File

@ -4,20 +4,21 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true); DataValidator::with('CustomValidations', true);
/** /**
* @api {post} /user/signup Sign up a new user. * @api {post} /user/signup Sign up
* @apiVersion 4.0.0
* *
* @apiName Sign up * @apiName Sign up
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path sign up a user on the system. * @apiDescription This path signs up an user on the system.
* *
* @apiPermission Any * @apiPermission any
* *
* @apiParam {String} name The name of the new user. * @apiParam {String} name The name of the new user.
* @apiParam {String} email The email of the new user. * @apiParam {String} email The email of the new user.
* @apiParam {String} password The password of the new user. * @apiParam {String} password The password of the new user.
* @apiParam {String} apyKey Key to sign up a user if the user system is disabled. * @apiParam {String} apiKey APIKey to sign up an user if the user system is disabled.
* *
* @apiUse INVALID_NAME * @apiUse INVALID_NAME
* @apiUse INVALID_EMAIL * @apiUse INVALID_EMAIL

View File

@ -2,17 +2,18 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /user/un-ban Take a user out of banned list. * @api {post} /user/un-ban Un ban
* @apiVersion 4.0.0
* *
* @apiName Un ban * @apiName Un ban
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path take a user out of banned list. * @apiDescription This path takes an email out of banned list.
* *
* @apiPermission Staff level 1 * @apiPermission staff1
* *
* @apiParam {String} email The email of the user who was banned. * @apiParam {String} email The email of the user who was banned.
* *
* @apiUse NO_PERMISSION * @apiUse NO_PERMISSION
* @apiUse INVALID_EMAIL * @apiUse INVALID_EMAIL

View File

@ -2,18 +2,19 @@
use Respect\Validation\Validator as DataValidator; use Respect\Validation\Validator as DataValidator;
/** /**
* @api {post} /user/verify Verify the email of a new user. * @api {post} /user/verify Verify email
* @apiVersion 4.0.0
* *
* @apiName Verify * @apiName Verify email
* *
* @apiGroup User * @apiGroup User
* *
* @apiDescription This path verify the email of a new user. * @apiDescription This path verifies the email of a new user.
* *
* @apiPermission any * @apiPermission any
* *
* @apiParam {String} email The email of the user. * @apiParam {String} email The email of the user.
* @apiParam {String} token The key of validation the user. * @apiParam {String} token The validation token sent by email to the user.
* *
* @apiUse INVALID_EMAIL * @apiUse INVALID_EMAIL
* @apiUse USER_SYSTEM_DISABLED * @apiUse USER_SYSTEM_DISABLED

View File

@ -1,6 +1,7 @@
<?php <?php
/** /**
* @api {OBJECT} APIKey APIKey * @api {OBJECT} APIKey APIKey
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {String} name Name of the APIKey. * @apiParam {String} name Name of the APIKey.
* @apiParam {String} token Token of the APIKey. * @apiParam {String} token Token of the APIKey.

View File

@ -1,6 +1,7 @@
<?php <?php
/** /**
* @api {OBJECT} Article Article * @api {OBJECT} Article Article
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {Number} id Id of the article. * @apiParam {Number} id Id of the article.
* @apiParam {String} title Title of the article. * @apiParam {String} title Title of the article.

View File

@ -1,8 +1,9 @@
<?php <?php
/** /**
* @api {OBJECT} Article Article * @api {OBJECT} Ban Ban
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {Email} email Email of the user banned. * @apiParam {Email} email The email address that is banned.
*/ */
class Ban extends DataStore { class Ban extends DataStore {

View File

@ -1,6 +1,7 @@
<?php <?php
/** /**
* @api {OBJECT} CustomResponse CustomResponse * @api {OBJECT} CustomResponse CustomResponse
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {Number} id Id of the custom response. * @apiParam {Number} id Id of the custom response.
* @apiParam {String} content Content of the custom response. * @apiParam {String} content Content of the custom response.

View File

@ -3,10 +3,11 @@ use RedBeanPHP\Facade as RedBean;
/** /**
* @api {OBJECT} Department Department * @api {OBJECT} Department Department
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {Number} id Id of the custom response. * @apiParam {Number} id Id of the department.
* @apiParam {String} name Name of the custom response. * @apiParam {String} name Name of the department.
* @apiParam {[Staff](#api-Data_Structures-ObjectStaff)[]} owners Owners of the department. * @apiParam {[Staff](#api-Data_Structures-ObjectStaff)[]} owners List of owners of the department.
*/ */
class Department extends DataStore { class Department extends DataStore {

View File

@ -2,14 +2,15 @@
use RedBeanPHP\Facade as RedBean; use RedBeanPHP\Facade as RedBean;
/** /**
* @api {OBJECT} Log Log * @api {OBJECT} Log Log
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {String} type The type of the log. * @apiParam {String} type The type of the log.
* @apiParam {String} to Destinatary of the log. * @apiParam {String} to Object where the action was performed.
* @apiParam {Object} author Author of the log. * @apiParam {Object} author Author of the log.
* @apiParam {String} author.name Name of the author. * @apiParam {String} author.name Name of the author.
* @apiParam {Number} author.id Id of the author. * @apiParam {Number} author.id Id of the author.
* @apiParam {Boolean} author.staff Kind of author. * @apiParam {Boolean} author.staff Indicates if the author is a staff.
* @apiParam {String} date Date of creation of the log. * @apiParam {String} date Date of the log creation.
*/ */
class Log extends DataStore { class Log extends DataStore {

View File

@ -3,6 +3,7 @@ use RedBeanPHP\Facade as RedBean;
/** /**
* @api {OBJECT} MailTemplate MailTemplate * @api {OBJECT} MailTemplate MailTemplate
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {String} type The type of the mail template. * @apiParam {String} type The type of the mail template.
* @apiParam {String} subject The subject of the mail template. * @apiParam {String} subject The subject of the mail template.

View File

@ -1,15 +1,15 @@
<?php <?php
/** /**
* @api {OBJECT} Staff Staff * @api {OBJECT} Staff Staff
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {Number} id The type of the mail template. * @apiParam {String} name Name of the staff member.
* @apiParam {String} name The subject of the mail template. * @apiParam {String} email Email of the staff member.
* @apiParam {String} email The language of the mail template. * @apiParam {String} profilePic profilePic url of the staff member.
* @apiParam {String} profilePic The body of the mail template. * @apiParam {Number} level Level of the staff member.
* @apiParam {Number} level The language of the mail template. * @apiParam {Object[]} departments The departments the staff member has assigned.
* @apiParam {Object[]} departments The departments of the staff. * @apiParam {[Ticket](#api-Data_Structures-ObjectTicket)[]} tickets The tickets the staff member has assigned.
* @apiParam {[Ticket](#api-Data_Structures-ObjectTicket)[]} tickets The tickets of the staff. * @apiParam {Number} lastLogin The last login of the staff member.
* @apiParam {Number} lastLogin The last login of the staff.
*/ */
class Staff extends DataStore { class Staff extends DataStore {

View File

@ -1,10 +1,11 @@
<?php <?php
/** /**
* @api {OBJECT} Stat Stat * @api {OBJECT} Stat Stat
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {Number} date The date of the stat. * @apiParam {Number} date The date of the stat as a number in format YYYYMMDD.
* @apiParam {String} type The type of the stat. * @apiParam {String} type The type of the stat. It can be CREATE_TICKET, CLOSE, SIGNUP, COMMENT, ASSIGN or UNASSIGN
* @apiParam {Boolean} general The general of the stat. * @apiParam {Boolean} general Indicates if the stat is from the general system or from a particular ticket.
* @apiParam {String} value The value of the stat. * @apiParam {String} value The value of the stat.
*/ */

View File

@ -1,6 +1,7 @@
<?php <?php
/** /**
* @api {OBJECT} Ticket Ticket * @api {OBJECT} Ticket Ticket
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {Number} ticketNumber The number of the ticket. * @apiParam {Number} ticketNumber The number of the ticket.
* @apiParam {String} title The title of the ticket. * @apiParam {String} title The title of the ticket.
@ -8,12 +9,12 @@
* @apiParam {Object} department The department of the ticket. * @apiParam {Object} department The department of the ticket.
* @apiParam {Number} department.id The id of the department of the ticket. * @apiParam {Number} department.id The id of the department of the ticket.
* @apiParam {String} department.name The department's name of the ticket. * @apiParam {String} department.name The department's name of the ticket.
* @apiParam {String} file The file of the ticket. * @apiParam {String} file The filename of the ticket if attached.
* @apiParam {String} language The language of the ticket. * @apiParam {String} language The language of the ticket.
* @apiParam {Boolean} unread The boolean to know if the user already readed or not. * @apiParam {Boolean} unread Indicates if the user has already read the last comment.
* @apiParam {Boolean} unreadStaff The boolean to know if the staff already readed or not. * @apiParam {Boolean} unreadStaff Indicates if the staff has already read the last comment.
* @apiParam {Boolean} closed The boolean to know if the ticket is already closed or not. * @apiParam {Boolean} closed Indicates if the ticket is closed.
* @apiParam {String} priority The priority of the ticket. * @apiParam {String} priority The priority of the ticket. It can be LOW, MEDIUM or HIGH.
* @apiParam {Object} author The author of the ticket. * @apiParam {Object} author The author of the ticket.
* @apiParam {Number} author.id The id of the author of the ticket. * @apiParam {Number} author.id The id of the author of the ticket.
* @apiParam {String} author.name The author's name of the ticket. * @apiParam {String} author.name The author's name of the ticket.

View File

@ -1,15 +1,16 @@
<?php <?php
/** /**
* @api {OBJECT} TicketEvent TicketEvent * @api {OBJECT} TicketEvent TicketEvent
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {String} type The type of the ticket event. * @apiParam {String} type The type of the ticket event. It can be COMMENT, ASSIGN, UN_ASSIGN, CLOSE, RE_OPEN, DEPARTMENT_CHANGED or PRIORITY_CHANGED
* @apiParam {String} content The content of the ticket event. * @apiParam {String} content The content of the ticket event.
* @apiParam {Object} author The author of the ticket event. * @apiParam {Object} author The author of the ticket event.
* @apiParam {Number} author.id The author's id of the ticket event. * @apiParam {Number} author.id The author's id of the ticket event.
* @apiParam {String} author.name The author's name of the ticket event. * @apiParam {String} author.name The author's name of the ticket event.
* @apiParam {String} author.email The author's email of the ticket event. * @apiParam {String} author.email The author's email of the ticket event.
* @apiParam {String} author.profilePic The author's profilePic of the ticket event. * @apiParam {String} author.profilePic The author's profilePic of the ticket event.
* @apiParam {Boolean} author.staff The boolean to know if the author is staff or not. * @apiParam {Boolean} author.staff Indicates if the author is a staff.
* @apiParam {String} date The date of the ticket event. * @apiParam {String} date The date of the ticket event.
* @apiParam {String} file The file of the ticket event. * @apiParam {String} file The file of the ticket event.
*/ */

View File

@ -1,6 +1,7 @@
<?php <?php
/** /**
* @api {OBJECT} Topic Topic * @api {OBJECT} Topic Topic
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {Number} id Id of the topic. * @apiParam {Number} id Id of the topic.
* @apiParam {String} name Name of the topic. * @apiParam {String} name Name of the topic.

View File

@ -3,11 +3,12 @@ use RedBeanPHP\Facade as RedBean;
/** /**
* @api {OBJECT} User User * @api {OBJECT} User User
* @apiVersion 4.0.0
* @apiGroup Data Structures * @apiGroup Data Structures
* @apiParam {String} email The email of the user. * @apiParam {String} email The email of the user.
* @apiParam {Number} id The id of the user. * @apiParam {Number} id The id of the user.
* @apiParam {String} name The name of the user. * @apiParam {String} name The name of the user.
* @apiParam {Boolean} verified A boolean to know if the user is already verified or not. * @apiParam {Boolean} verified Indicates if the user has verified the email.
*/ */
class User extends DataStore { class User extends DataStore {

View File

@ -41,6 +41,29 @@ describe'system/disable-user-system' do
(result['message']).should.equal('USER_SYSTEM_DISABLED') (result['message']).should.equal('USER_SYSTEM_DISABLED')
end end
it 'should create a ticket without user' do
request('/user/logout')
result = request('/ticket/create', {
title: 'test ticket without user',
content: 'The north remembers',
departmentId: 1,
language: 'en',
})
(result['status']).should.equal('fail')
(result['message']).should.equal('INVALID_EMAIL')
result = request('/ticket/create', {
title: 'test ticket without user',
content: 'The north remembers',
departmentId: 1,
language: 'en',
email: 'emailtest@opensupports.com'
})
(result['status']).should.equal('success')
end
it 'should not disable the user system if it is already disabled 'do it 'should not disable the user system if it is already disabled 'do
request('/user/logout') request('/user/logout')
Scripts.login($staff[:email], $staff[:password], true) Scripts.login($staff[:email], $staff[:password], true)
@ -69,7 +92,7 @@ describe'system/disable-user-system' do
numberOftickets= $database.query("SELECT * FROM ticket WHERE author_email IS NULL AND author_name IS NULL AND author_id IS NOT NULL" ) numberOftickets= $database.query("SELECT * FROM ticket WHERE author_email IS NULL AND author_name IS NULL AND author_id IS NOT NULL" )
(numberOftickets.num_rows).should.equal(36) (numberOftickets.num_rows).should.equal(37)
end end

View File

@ -13,16 +13,16 @@ describe'/system/get-stats' do
#day 1 #day 1
for i in 0..5 for i in 0..5
$database.query("INSERT INTO log VALUES('', 'SIGNUP', NULL, " + yesterday3 + ", NULL, NULL);") $database.query("INSERT INTO log VALUES('', 'SIGNUP', NULL, " + yesterday3 + ", NULL, NULL, NULL);")
end end
for i in 0..0 for i in 0..0
$database.query("INSERT INTO log VALUES('', 'CREATE_TICKET', NULL, " + yesterday3 + ", NULL, NULL);") $database.query("INSERT INTO log VALUES('', 'CREATE_TICKET', NULL, " + yesterday3 + ", NULL, NULL, NULL);")
end end
for i in 0..1 for i in 0..1
$database.query("INSERT INTO log VALUES('', 'CLOSE', NULL, " + yesterday3 + ", NULL, NULL);") $database.query("INSERT INTO log VALUES('', 'CLOSE', NULL, " + yesterday3 + ", NULL, NULL, NULL);")
end end
for i in 0..2 for i in 0..2
$database.query("INSERT INTO log VALUES('', 'COMMENT', NULL, " + yesterday3 + ", NULL, NULL);") $database.query("INSERT INTO log VALUES('', 'COMMENT', NULL, " + yesterday3 + ", NULL, NULL, NULL);")
end end
for i in 0..8 for i in 0..8
$database.query("INSERT INTO ticketevent VALUES('', 'CLOSE', NULL, NULL, " + yesterday3 + ", NULL, NULL, 1);") $database.query("INSERT INTO ticketevent VALUES('', 'CLOSE', NULL, NULL, " + yesterday3 + ", NULL, NULL, 1);")
@ -33,16 +33,16 @@ describe'/system/get-stats' do
#day 2 #day 2
for i in 0..7 for i in 0..7
$database.query("INSERT INTO log VALUES('', 'SIGNUP', NULL, " + yesterday2 + ", NULL, NULL);") $database.query("INSERT INTO log VALUES('', 'SIGNUP', NULL, " + yesterday2 + ", NULL, NULL, NULL);")
end end
for i in 0..2 for i in 0..2
$database.query("INSERT INTO log VALUES('', 'CREATE_TICKET', NULL, " + yesterday2 + ", NULL, NULL);") $database.query("INSERT INTO log VALUES('', 'CREATE_TICKET', NULL, " + yesterday2 + ", NULL, NULL, NULL);")
end end
for i in 0..9 for i in 0..9
$database.query("INSERT INTO log VALUES('', 'CLOSE', NULL, " + yesterday2 + ", NULL, NULL);") $database.query("INSERT INTO log VALUES('', 'CLOSE', NULL, " + yesterday2 + ", NULL, NULL, NULL);")
end end
for i in 0..2 for i in 0..2
$database.query("INSERT INTO log VALUES('', 'COMMENT', NULL, " + yesterday2 + ", NULL, NULL);") $database.query("INSERT INTO log VALUES('', 'COMMENT', NULL, " + yesterday2 + ", NULL, NULL, NULL);")
end end
for i in 0..10 for i in 0..10
$database.query("INSERT INTO ticketevent VALUES('', 'CLOSE', NULL, NULL, " + yesterday2 + ", NULL, NULL, 1);") $database.query("INSERT INTO ticketevent VALUES('', 'CLOSE', NULL, NULL, " + yesterday2 + ", NULL, NULL, 1);")
@ -53,16 +53,16 @@ describe'/system/get-stats' do
#day 3 #day 3
for i in 0..0 for i in 0..0
$database.query("INSERT INTO log VALUES('', 'SIGNUP', NULL, " + yesterday + ", NULL, NULL);") $database.query("INSERT INTO log VALUES('', 'SIGNUP', NULL, " + yesterday + ", NULL, NULL, NULL);")
end end
for i in 0..1 for i in 0..1
$database.query("INSERT INTO log VALUES('', 'CREATE_TICKET', NULL, " + yesterday + ", NULL, NULL);") $database.query("INSERT INTO log VALUES('', 'CREATE_TICKET', NULL, " + yesterday + ", NULL, NULL, NULL);")
end end
for i in 0..4 for i in 0..4
$database.query("INSERT INTO log VALUES('', 'CLOSE', NULL, " + yesterday + ", NULL, NULL);") $database.query("INSERT INTO log VALUES('', 'CLOSE', NULL, " + yesterday + ", NULL, NULL, NULL);")
end end
for i in 0..7 for i in 0..7
$database.query("INSERT INTO log VALUES('', 'COMMENT', NULL, " + yesterday + ", NULL, NULL);") $database.query("INSERT INTO log VALUES('', 'COMMENT', NULL, " + yesterday + ", NULL, NULL, NULL);")
end end
for i in 0..3 for i in 0..3
$database.query("INSERT INTO ticketevent VALUES('', 'CLOSE', NULL, NULL, " + yesterday + ", NULL, NULL, 1);") $database.query("INSERT INTO ticketevent VALUES('', 'CLOSE', NULL, NULL, " + yesterday + ", NULL, NULL, 1);")