mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2026-05-06 04:37:08 +02:00
Merge branch 'develop' into feature/integrate-with-admin-pro
This commit is contained in:
14
CHANGELOG.md
14
CHANGELOG.md
@@ -1,8 +1,20 @@
|
||||
# v1.0.0-rc.7
|
||||
## 11/23/2015
|
||||
|
||||
1. [](#improved)
|
||||
* Various French language updates
|
||||
1. [](#bugfix)
|
||||
* **Nonce fixes** (hopefully the last of them!)
|
||||
|
||||
# v1.0.0-rc.6
|
||||
## XX/XX/2015
|
||||
## 11/21/2015
|
||||
|
||||
1. [](#improved)
|
||||
* Implemented logic to detect when offline and suppress Ajax calls
|
||||
* Added nonce logic to be used by JS
|
||||
1. [](#bugfix)
|
||||
* Nonce fix for updating themes
|
||||
* Nonce fix for deleting pages
|
||||
|
||||
# v1.0.0-rc.5
|
||||
## 11/20/2015
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: Admin Panel
|
||||
version: 1.0.0-rc.5
|
||||
version: 1.0.0-rc.7
|
||||
description: Adds an advanced administration panel to manage your site
|
||||
icon: empire
|
||||
author:
|
||||
|
||||
@@ -267,7 +267,7 @@ class AdminController
|
||||
|
||||
$author = $this->grav['config']->get('site.author.name', '');
|
||||
$fullname = $user->fullname ?: $username;
|
||||
$reset_link = rtrim($this->grav['uri']->rootUrl(true), '/') . '/' . trim($this->admin->base, '/') . '/reset/task' . $param_sep . 'reset/user'. $param_sep . $username . '/token' . $param_sep . $token;
|
||||
$reset_link = rtrim($this->grav['uri']->rootUrl(true), '/') . '/' . trim($this->admin->base, '/') . '/reset/task' . $param_sep . 'reset/user'. $param_sep . $username . '/token' . $param_sep . $token . '/admin-nonce' . $param_sep . Utils::getNonce('admin-form');
|
||||
|
||||
$sitename = $this->grav['config']->get('site.title', 'Website');
|
||||
$from = $this->grav['config']->get('plugins.email.from', 'noreply@getgrav.org');
|
||||
@@ -738,9 +738,11 @@ class AdminController
|
||||
}
|
||||
|
||||
// Filter value and save it.
|
||||
$this->post = array('enabled' => 1, '_redirect' => 'plugins');
|
||||
$this->post = array('enabled' => 1);
|
||||
$obj = $this->prepareData();
|
||||
$obj->save();
|
||||
|
||||
$this->post = array('_redirect' => 'plugins');
|
||||
$this->admin->setMessage($this->admin->translate('PLUGIN_ADMIN.SUCCESSFULLY_ENABLED_PLUGIN'), 'info');
|
||||
|
||||
return true;
|
||||
@@ -762,9 +764,11 @@ class AdminController
|
||||
}
|
||||
|
||||
// Filter value and save it.
|
||||
$this->post = array('enabled' => 0, '_redirect' => 'plugins');
|
||||
$this->post = array('enabled' => 0);
|
||||
$obj = $this->prepareData();
|
||||
$obj->save();
|
||||
|
||||
$this->post = array('_redirect' => 'plugins');
|
||||
$this->admin->setMessage($this->admin->translate('PLUGIN_ADMIN.SUCCESSFULLY_DISABLED_PLUGIN'), 'info');
|
||||
|
||||
return true;
|
||||
|
||||
@@ -454,20 +454,20 @@ en:
|
||||
fr:
|
||||
PLUGIN_ADMIN:
|
||||
ADMIN_BETA_MSG: "C'est une version beta ! Utilisez-là en production à vos risques et périls..."
|
||||
ADMIN_REPORT_ISSUE: "Vous avez trouvé un problème ? Reportez-le s'il vous plait sur GitHub."
|
||||
ADMIN_REPORT_ISSUE: "Vous avez rencontré une anomalie ? Veuillez la reporter sur GitHub."
|
||||
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS"
|
||||
LOGIN_BTN: "Connexion"
|
||||
LOGIN_BTN_FORGOT: "Mot de passe oublié"
|
||||
LOGIN_BTN_RESET: "Réinitialiser le mot de passe"
|
||||
LOGIN_BTN_SEND_INSTRUCTIONS: "Envoyer les instructions de réinitialisation"
|
||||
LOGIN_LOGGED_IN: "Vous avez été connecté avec succès"
|
||||
LOGIN_FAILED: "Echec de la connexion"
|
||||
LOGGED_OUT: "Vous avez été déconecté"
|
||||
RESET_LINK_EXPIRED: "Le lien de réinitialisation a expiré, réessayez s'il vous plait"
|
||||
LOGIN_LOGGED_IN: "Vous vous êtes connecté avec succès"
|
||||
LOGIN_FAILED: "Échec de la connexion"
|
||||
LOGGED_OUT: "Vous avez été déconnecté"
|
||||
RESET_LINK_EXPIRED: "Le lien de réinitialisation a expiré, veuillez réessayer"
|
||||
RESET_PASSWORD_RESET: "Le mot de passe a été réinitialisé"
|
||||
RESET_INVALID_LINK: "Lien de réinitialisation invalide, réessayez s'il vous plait"
|
||||
RESET_INVALID_LINK: "Lien de réinitialisation invalide, veuillez réessayer"
|
||||
FORGOT_INSTRUCTIONS_SENT_VIA_EMAIL: "Les instructions pour réinitialiser votre mot de passe ont été envoyées par email à %s"
|
||||
FORGOT_FAILED_TO_EMAIL: "Echec d'envoi des instructions par email. Réessayez ultérieurement s'il vous plait"
|
||||
FORGOT_FAILED_TO_EMAIL: "Échec de l'envoi des instructions par email. Veuillez réessayez ultérieurement"
|
||||
FORGOT_CANNOT_RESET_EMAIL_NO_EMAIL: "Impossible de réinitialiser le mot de passe pour %s, aucune adresse email n'est définie"
|
||||
FORGOT_USERNAME_DOES_NOT_EXIST: "L'utilisateur avec le nom d'utilisateur <b>%s</b> n'existe pas"
|
||||
FORGOT_EMAIL_NOT_CONFIGURED: "Impossible de réinitialiser le mot de passe. Ce site n'est pas configuré pour envoyer des emails"
|
||||
@@ -496,14 +496,14 @@ fr:
|
||||
CONTINUE: "Continuer"
|
||||
MODAL_DELETE_PAGE_CONFIRMATION_REQUIRED_TITLE: "Confirmation exigée"
|
||||
MODAL_CHANGED_DETECTED_TITLE: "Modifications détectées"
|
||||
MODAL_CHANGED_DETECTED_DESC: "Vous avez des modifications non sauvegardées. Etes-vous sûr(e) de quitter sans sauvegarder ?"
|
||||
MODAL_CHANGED_DETECTED_DESC: "Vous avez des modifications non sauvegardées. Êtes-vous sûr(e) de vouloir quitter sans sauvegarder ?"
|
||||
MODAL_DELETE_FILE_CONFIRMATION_REQUIRED_TITLE: "Confirmation exigée"
|
||||
MODAL_DELETE_FILE_CONFIRMATION_REQUIRED_DESC: "Etes-vous sûr(e) de vouloir supprimer ce fichier ? Cette action ne peut être annulée."
|
||||
MODAL_DELETE_FILE_CONFIRMATION_REQUIRED_DESC: "Êtes-vous sûr(e) de vouloir supprimer ce fichier ? Cette action ne pourra pas être annulée."
|
||||
ADD_FILTERS: "Ajouter des filtres"
|
||||
SEARCH_PAGES: "Rechercher des pages"
|
||||
VERSION: "Version"
|
||||
WAS_MADE_WITH: "A été réalisé avec"
|
||||
BY: "par"
|
||||
BY: "Par"
|
||||
UPDATE_THEME: "Mettre à jour le thème"
|
||||
UPDATE_PLUGIN: "Mettre à jour le plugin"
|
||||
OF_THIS_THEME_IS_NOW_AVAILABLE: "de ce thème est maintenant disponible"
|
||||
@@ -512,7 +512,7 @@ fr:
|
||||
HOMEPAGE: "Page d'accueil"
|
||||
DEMO: "Démo"
|
||||
BUG_TRACKER: "Gestion de bugs"
|
||||
KEYWORDS: "Mots clés"
|
||||
KEYWORDS: "Mots-clés"
|
||||
LICENSE: "Licence"
|
||||
DESCRIPTION: "Description"
|
||||
README: "Lisez-moi"
|
||||
@@ -525,14 +525,14 @@ fr:
|
||||
ADD: "Ajouter"
|
||||
CLEAR_CACHE: "Nettoyer le cache"
|
||||
CLEAR_CACHE_ALL_CACHE: "Totalité du cache"
|
||||
CLEAR_CACHE_ASSETS_ONLY: "Seulement les assets"
|
||||
CLEAR_CACHE_IMAGES_ONLY: "Seulement les images"
|
||||
CLEAR_CACHE_CACHE_ONLY: "Seulement le cache"
|
||||
CLEAR_CACHE_ASSETS_ONLY: "Uniquement les assets"
|
||||
CLEAR_CACHE_IMAGES_ONLY: "Uniquement les images"
|
||||
CLEAR_CACHE_CACHE_ONLY: "Uniquement le cache"
|
||||
DASHBOARD: "Tableau de bord"
|
||||
UPDATES_AVAILABLE: "Mises à jour disponible"
|
||||
UPDATES_AVAILABLE: "Mises à jour disponibles"
|
||||
DAYS: "Jours"
|
||||
UPDATE: "Mettre à jour"
|
||||
BACKUP: "Sauvegarde backup"
|
||||
BACKUP: "Sauvegarde"
|
||||
STATISTICS: "Statistiques"
|
||||
TODAY: "Aujourd'hui"
|
||||
WEEK: "Semaine"
|
||||
@@ -562,14 +562,14 @@ fr:
|
||||
INSTALL: "Installer"
|
||||
ACTIVE_THEME: "Thème actif"
|
||||
SWITCHING_TO: "Basculer vers"
|
||||
SWITCHING_TO_DESCRIPTION: "En basculant vers un thème différent, il n'y a pas de garantie que les dispositions de la page soient supportées. Il y a un risque potentiel d'erreurs lors du chargement desdites pages."
|
||||
SWITCHING_TO_DESCRIPTION: "En basculant vers un thème différent, il n'y a aucune garantie que la mise en page soit prise en charge. Il y a un risque potentiel d'erreurs lors du chargement desdites pages."
|
||||
SWITCHING_TO_CONFIRMATION: "Souhaitez-vous poursuivre et basculer vers le thème"
|
||||
CREATE_NEW_USER: "Créer un nouvel utilisateur"
|
||||
REMOVE_USER: "Retirer l'utilisateur"
|
||||
ACCESS_DENIED: "Accès refusé"
|
||||
ACCOUNT_NOT_ADMIN: "votre compte ne possède pas les permissions d'administrateur"
|
||||
PHP_INFO: "PHP Info"
|
||||
INSTALLER: "Installer"
|
||||
PHP_INFO: "Informations PHP"
|
||||
INSTALLER: "Installeur"
|
||||
AVAILABLE_THEMES: "Thèmes disponibles"
|
||||
AVAILABLE_PLUGINS: "Plugins disponibles"
|
||||
INSTALLED_THEMES: "Thèmes installés"
|
||||
@@ -598,8 +598,8 @@ fr:
|
||||
METHOD: "Méthode"
|
||||
ERROR_CLEARING_CACHE: "Erreur de nettoyage du cache"
|
||||
AN_ERROR_OCCURRED: "Une erreur est survenue"
|
||||
YOUR_BACKUP_IS_READY_FOR_DOWNLOAD: "Votre sauvegarde backup est prête à télécharger"
|
||||
DOWNLOAD_BACKUP: "Télécharger la sauvegarde backup"
|
||||
YOUR_BACKUP_IS_READY_FOR_DOWNLOAD: "Votre sauvegarde est prête à être téléchargée"
|
||||
DOWNLOAD_BACKUP: "Télécharger la sauvegarde"
|
||||
PAGES_FILTERED: "Pages filtrées"
|
||||
NO_PAGE_FOUND: "Aucune page trouvée"
|
||||
INVALID_PARAMETERS: "Paramètres invalides"
|
||||
@@ -608,27 +608,27 @@ fr:
|
||||
UNKNOWN_ERRORS: "Erreurs inconnues"
|
||||
EXCEEDED_GRAV_FILESIZSE_LIMIT: "Limite de taille de fichier Grav dépassée."
|
||||
UNSUPPORTED_FILE_TYPE: "Type de fichier non supporté"
|
||||
FAILED_TO_MOVE_UPLOADED_FILE: "Echec du déplacement du fichier uploadé."
|
||||
FILE_UPLOADED_SUCCESSFULLY: "Fichier uploadé avec succès"
|
||||
FAILED_TO_MOVE_UPLOADED_FILE: "Échec du déplacement du fichier uploadé."
|
||||
FILE_UPLOADED_SUCCESSFULLY: "Fichier chargé avec succès"
|
||||
FILE_DELETED: "Fichier supprimé"
|
||||
FILE_COULD_NOT_BE_DELETED: "Le fichier ne peut être supprimé"
|
||||
FILE_COULD_NOT_BE_DELETED: "Le fichier ne peut pas être supprimé"
|
||||
FILE_NOT_FOUND: "Fichier non trouvé"
|
||||
NO_FILE_FOUND: "Aucun fichier trouvé"
|
||||
GRAV_WAS_SUCCESSFULLY_UPDATED_TO: "Grav a été mis à jour avec succès"
|
||||
GRAV_UPDATE_FAILED: "Mise à jour Grav échouée"
|
||||
EVERYTHING_UPDATED: "Tout est mis à jour"
|
||||
UPDATES_FAILED: "Mises à jour échouées"
|
||||
GRAV_UPDATE_FAILED: "La mise à jour de Grav a échoué"
|
||||
EVERYTHING_UPDATED: "Tout est à jour"
|
||||
UPDATES_FAILED: "Les mises à jour ont échoué"
|
||||
AVATAR_BY: "Avatar par"
|
||||
LAST_BACKUP: "Dernière sauvegarde backup"
|
||||
LAST_BACKUP: "Dernière sauvegarde"
|
||||
FULL_NAME: "Nom complet"
|
||||
USERNAME: "Nom d'utilisateur"
|
||||
EMAIL: "Email"
|
||||
EMAIL: "E-mail"
|
||||
PASSWORD: "Mot de passe"
|
||||
TITLE: "Titre"
|
||||
LANGUAGE: "Langue"
|
||||
ACCOUNT: "Compte"
|
||||
EMAIL_VALIDATION_MESSAGE: "Doit être une adresse email valide"
|
||||
PASSWORD_VALIDATION_MESSAGE: "Le mot de passe doit contenir au moins un chiffre, une lettre minuscule et majuscule, et au moins 8 caractère ou plus"
|
||||
EMAIL_VALIDATION_MESSAGE: "Doit être une adresse e-mail valide"
|
||||
PASSWORD_VALIDATION_MESSAGE: "Le mot de passe doit contenir au moins un chiffre, une lettre minuscule et majuscule et au minimum 8 caractères"
|
||||
LANGUAGE_HELP: "Définir la langue préférée"
|
||||
MEDIA: "Média"
|
||||
DEFAULTS: "Par défaut"
|
||||
@@ -637,10 +637,10 @@ fr:
|
||||
SITE_TITLE_HELP: "Titre par défaut pour votre site, souvent utilisé dans les thèmes"
|
||||
DEFAULT_AUTHOR: "Auteur par défaut"
|
||||
DEFAULT_AUTHOR_HELP: "Un nom d'auteur par défaut, souvent utilisé dans les thèmes ou le contenu des pages"
|
||||
DEFAULT_EMAIL: "Email par défaut"
|
||||
DEFAULT_EMAIL_HELP: "Une email par défaut à référencer dans les thèmes ou pages"
|
||||
TAXONOMY_TYPES: "Types de taxonomie"
|
||||
TAXONOMY_TYPES_HELP: "Les types de taxonomie doivent être définis ici si vous souhaitez les utiliser dans les pages"
|
||||
DEFAULT_EMAIL: "E-mail par défaut"
|
||||
DEFAULT_EMAIL_HELP: "Une e-mail par défaut à référencer dans les thèmes ou pages"
|
||||
TAXONOMY_TYPES: "Types de hiérarchisation"
|
||||
TAXONOMY_TYPES_HELP: "Les types de hiérarchisation doivent être définis ici si vous souhaitez les utiliser dans les pages"
|
||||
PAGE_SUMMARY: "Résumé de page"
|
||||
ENABLED: "Activé"
|
||||
ENABLED_HELP: "Activer le résumé de page (le résumé retourne le même contenu que la page)"
|
||||
@@ -649,7 +649,7 @@ fr:
|
||||
SUMMARY_SIZE: "Taille du résumé"
|
||||
SUMMARY_SIZE_HELP: "Le nombre de caractères de la page à utiliser comme contenu de résumé"
|
||||
FORMAT: "Format"
|
||||
FORMAT_HELP: "court = utilise la première occurrence du délimiteur ou la taille; long = le délimiteur de résumé sera ignoré"
|
||||
FORMAT_HELP: "court = utilise la première occurrence du délimiteur ou la taille ; long = le délimiteur de résumé sera ignoré"
|
||||
SHORT: "Court"
|
||||
LONG: "Long"
|
||||
DELIMITER: "Délimiteur"
|
||||
|
||||
@@ -21,7 +21,9 @@ var bytesToSize = function(bytes) {
|
||||
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
|
||||
|
||||
var keepAlive = function keepAlive() {
|
||||
$.post(GravAdmin.config.base_url_relative + '/task' + GravAdmin.config.param_sep + 'keepAlive');
|
||||
$.post(GravAdmin.config.base_url_relative + '/task' + GravAdmin.config.param_sep + 'keepAlive', {
|
||||
'admin-nonce': GravAdmin.config.admin_nonce
|
||||
});
|
||||
};
|
||||
|
||||
$(function () {
|
||||
@@ -296,7 +298,7 @@ $(function () {
|
||||
if (grav.isUpdatable) {
|
||||
var icon = '<i class="fa fa-bullhorn"></i> ';
|
||||
content = 'Grav <b>v{available}</b> ' + translations.PLUGIN_ADMIN.IS_NOW_AVAILABLE + '! <span class="less">(' + translations.PLUGIN_ADMIN.CURRENT + ': v{version})</span> ',
|
||||
button = '<button data-maintenance-update="' + GravAdmin.config.base_url_relative + '/update.json/' + task + 'updategrav" class="button button-small secondary" id="grav-update-button">' + translations.PLUGIN_ADMIN.UPDATE_GRAV_NOW + '</button>';
|
||||
button = '<button data-maintenance-update="' + GravAdmin.config.base_url_relative + '/update.json/' + task + 'updategrav/admin-nonce' + GravAdmin.config.param_sep + GravAdmin.config.admin_nonce + '" class="button button-small secondary" id="grav-update-button">' + translations.PLUGIN_ADMIN.UPDATE_GRAV_NOW + '</button>';
|
||||
|
||||
if (grav.isSymlink) {
|
||||
button = '<span class="hint--left" style="float: right;" data-hint="' + translations.PLUGIN_ADMIN.GRAV_SYMBOLICALLY_LINKED + '"><i class="fa fa-fw fa-link"></i></span>';
|
||||
@@ -328,7 +330,7 @@ $(function () {
|
||||
var length,
|
||||
icon = '<i class="fa fa-bullhorn"></i>',
|
||||
content = '{updates} ' + translations.PLUGIN_ADMIN.OF_YOUR + ' {type} ' + translations.PLUGIN_ADMIN.HAVE_AN_UPDATE_AVAILABLE,
|
||||
button = '<a href="{location}/' + task + 'update" class="button button-small secondary">' + translations.PLUGIN_ADMIN.UPDATE + ' {Type}</a>',
|
||||
button = '<a href="{location}/' + task + 'update/admin-nonce' + GravAdmin.config.param_sep + GravAdmin.config.admin_nonce + '" class="button button-small secondary">' + translations.PLUGIN_ADMIN.UPDATE + ' {Type}</a>',
|
||||
plugins = $('.grav-update.plugins'),
|
||||
themes = $('.grav-update.themes'),
|
||||
sidebar = {plugins: $('#admin-menu a[href$="/plugins"]'), themes: $('#admin-menu a[href$="/themes"]')};
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
{% set admin_route = twig_vars['admin_route'] %}
|
||||
{% set admin_lang = twig_vars['admin_lang'] %}
|
||||
{% set warn = twig_vars['warn'] %}
|
||||
{% set uri = twig_vars['uri'] %}
|
||||
|
||||
{% if page.header.content.order.by %}
|
||||
{% set pcol = page.children().order(page.header.content.order.by, page.header.content.order.dir) %}
|
||||
@@ -96,9 +97,9 @@
|
||||
<span class="page-tools">
|
||||
|
||||
{% if warn %}
|
||||
<a href="#delete" data-remodal-target="delete" data-delete-url="{{ page_url }}/task{{ separator }}delete" class="page-delete" ><i class="fa fa-close"></i></a>
|
||||
<a href="#delete" data-remodal-target="delete" data-delete-url="{{ uri.addNonce(page_url ~ '/task' ~ separator ~ 'delete', 'admin-form', 'admin-nonce') }}" class="page-delete" ><i class="fa fa-close"></i></a>
|
||||
{% else %}
|
||||
<a href="{{ page_url }}/task{{ separator }}delete" class="page-delete" ><i class="fa fa-close"></i></a>
|
||||
<a href="{{ uri.addNonce(page_url ~ '/task' ~ separator ~ 'delete', 'admin-form', 'admin-nonce') }}" class="page-delete" ><i class="fa fa-close"></i></a>
|
||||
{% endif %}
|
||||
</span>
|
||||
<p class="page-route">{{ p.header.routes.default ?: p.route }} <span class="spacer"><i class="fa fa-long-arrow-right"></i></span> {{ p.template() }}</p>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</td>
|
||||
<td class="gpm-actions">
|
||||
{% if (not installing and (plugin.form.fields.enabled.type != 'hidden')) %}
|
||||
<a class="{{ data.get('enabled') ? 'enabled' : 'disabled' }}" href="{{ uri.addNonce(base_url_relative ~ '/plugins/' ~ slug ~ '/task' ~ config.system.param_sep ~ data.get('enabled') ? 'disable' : 'enable', 'admin-form', 'admin-nonce') }}">
|
||||
<a class="{{ data.get('enabled') ? 'enabled' : 'disabled' }}" href="{{ uri.addNonce(base_url_relative ~ '/plugins/' ~ slug ~ '/task' ~ config.system.param_sep ~ (data.get('enabled') ? 'disable' : 'enable'), 'admin-form', 'admin-nonce') }}">
|
||||
<i class="fa fa-fw fa-toggle-{{ data.get('enabled') ? 'on' : 'off' }}"></i>
|
||||
</a>
|
||||
{% elseif (installing) %}
|
||||
|
||||
Reference in New Issue
Block a user