Merge branch 'develop' of https://github.com/getgrav/grav-plugin-admin into develop

This commit is contained in:
Andy Miller
2015-11-29 21:22:27 -07:00
13 changed files with 138 additions and 78 deletions

View File

@@ -111,6 +111,12 @@ class AdminPlugin extends Plugin
// Disable Asset pipelining
$this->config->set('system.assets.css_pipeline', false);
$this->config->set('system.assets.js_pipeline', false);
// Replace themes service with admin.
$this->grav['themes'] = function ($c) {
require_once __DIR__ . '/classes/themes.php';
return new Themes($this->grav);
};
}
// We need popularity no matter what
@@ -205,6 +211,17 @@ class AdminPlugin extends Plugin
}
}
};
if (empty($this->grav['page'])) {
$event = $this->grav->fireEvent('onPageNotFound');
if (isset($event->page)) {
unset($this->grav['page']);
$this->grav['page'] = $event->page;
} else {
throw new \RuntimeException('Page Not Found', 404);
}
}
}
/**

View File

@@ -500,6 +500,10 @@ class Admin
$latest = array();
if(is_null($pages->routes())){
return;
}
foreach ($pages->routes() as $url => $path) {
$page = $pages->dispatch($url, true);
if ($page && $page->routable()) {

View File

@@ -6,7 +6,6 @@ use Grav\Common\Config\Config;
use Grav\Common\Filesystem\Folder;
use Grav\Common\GPM\Installer;
use Grav\Common\Grav;
use Grav\Common\Themes;
use Grav\Common\Uri;
use Grav\Common\Data;
use Grav\Common\Page;

18
classes/themes.php Normal file
View File

@@ -0,0 +1,18 @@
<?php
namespace Grav\Plugin;
/**
* Admin theme object
*
* @author RocketTheme
* @license MIT
*/
class Themes extends \Grav\Common\Themes
{
public function init()
{
/** @var Themes $themes */
$themes = $this->grav['themes'];
$themes->configure();
}
}

View File

@@ -450,8 +450,8 @@ 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 rencontré une anomalie ? Veuillez la reporter sur GitHub."
ADMIN_BETA_MSG: "Ceci est une version bêta ! Utilisez-là en production à vos risques et périls..."
ADMIN_REPORT_ISSUE: "Vous avez rencontré une anomalie ? Veuillez la signaler 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é"
@@ -498,24 +498,24 @@ fr:
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"
VERSION: "Version "
WAS_MADE_WITH: "A été réalisé avec"
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"
OF_THIS_PLUGIN_IS_NOW_AVAILABLE: "de ce plugin est maintenant disponible"
AUTHOR: "Auteur"
HOMEPAGE: "Page d'accueil"
DEMO: "Démo"
BUG_TRACKER: "Gestion de bugs"
KEYWORDS: "Mots-clés"
LICENSE: "Licence"
DESCRIPTION: "Description"
README: "Lisez-moi"
AUTHOR: "Auteur "
HOMEPAGE: "Page d'accueil "
DEMO: "Démo "
BUG_TRACKER: "Gestion des anomalies "
KEYWORDS: "Mots clés "
LICENSE: "Licence "
DESCRIPTION: "Description "
README: "Lisez-moi "
REMOVE_THEME: "Retirer le thème"
INSTALL_THEME: "Installer le thème"
THEME: "Thème"
THEME: "Thème "
BACK_TO_THEMES: "Retour aux thèmes"
BACK_TO_PLUGINS: "Retour aux plugins"
CHECK_FOR_UPDATES: "Vérifier les mises à jour"
@@ -636,8 +636,8 @@ fr:
DEFAULT_AUTHOR_HELP: "Un nom d'auteur par défaut, souvent utilisé dans les thèmes ou le contenu des 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"
TAXONOMY_TYPES: "Types de classification"
TAXONOMY_TYPES_HELP: "Les types de classification 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)"
@@ -651,19 +651,19 @@ fr:
LONG: "Long"
DELIMITER: "Délimiteur"
DELIMITER_HELP: "Le délimiteur de résumé (par défaut '===')"
METADATA: "Metadata"
METADATA_HELP: "Les valeurs par défaut des metadata qui seront affichées sur chaque page sauf si substituées par la page"
METADATA: "Métadonnées"
METADATA_HELP: "Valeurs par défaut des métadonnées qui seront affichées pour chaque page sauf si substituées par la page"
NAME: "Nom"
CONTENT: "Contenu"
REDIRECTS_AND_ROUTES: "Redirections & Routes"
REDIRECTS_AND_ROUTES: "Redirections & Chemins"
CUSTOM_REDIRECTS: "Redirections personnalisées"
CUSTOM_REDIRECTS_HELP: "routes pour rediriger vers d'autres pages. Le remplacement Regex standard est valide"
CUSTOM_REDIRECTS_HELP: "chemin pour rediriger vers d'autres pages. Le remplacement par expressions régulières standards est valide"
CUSTOM_REDIRECTS_PLACEHOLDER_KEY: "/votre/alias"
CUSTOM_REDIRECTS_PLACEHOLDER_VALUE: "/votre/redirection"
CUSTOM_ROUTES: "Routes personnalisées"
CUSTOM_ROUTES_HELP: "routes pour l'alias vers d'autres pages. Le remplacement Regex standard est valide"
CUSTOM_ROUTES: "Chemins personnalisés"
CUSTOM_ROUTES_HELP: "chemin d'alias vers d'autres pages. Le remplacement par expressions régulières standards est valide"
CUSTOM_ROUTES_PLACEHOLDER_KEY: "/votre/alias"
CUSTOM_ROUTES_PLACEHOLDER_VALUE: "/votre/route"
CUSTOM_ROUTES_PLACEHOLDER_VALUE: "/votre/chemin"
FILE_STREAMS: "Flux de fichiers"
DEFAULT: "Par défaut"
PAGE_MEDIA: "Média de la page"
@@ -671,45 +671,45 @@ fr:
PUBLISHED: "Publié"
PUBLISHED_HELP: "Par défaut, une page est publiée à moins que vous ne définissiez `publié` sur : non ou via une date de publication future (publish_date), ou bien à une date de dépublication (unpublish_date) dans le passé"
DATE: "Date"
DATE_HELP: "La variable de date vous permet de définir spécifiquement une date associée à cette page."
DATE_HELP: "La variable de date vous permet de définir une date spécifique associée à cette page."
PUBLISHED_DATE: "Date de publication"
PUBLISHED_DATE_HELP: "Stipule une date pour déclencher automatiquement la publication."
PUBLISHED_DATE_HELP: "Permet de définir une date pour déclencher automatiquement la publication."
UNPUBLISHED_DATE: "Date de dépublication"
UNPUBLISHED_DATE_HELP: "Stipule une date pour déclencher automatiquement la dépublication."
UNPUBLISHED_DATE_HELP: "Permet de définir une date pour déclencher automatiquement la dépublication."
ROBOTS: "Robots"
TAXONOMIES: "Taxonomies"
TAXONOMY: "Taxonomie"
TAXONOMIES: "Classifications"
TAXONOMY: "Classification"
ADVANCED: "Avancé"
SETTINGS: "Paramètres"
FOLDER_NUMERIC_PREFIX: "Préfixe numérique de dossier"
FOLDER_NUMERIC_PREFIX_HELP: "Les préfixes numériques qui fournissent l'organisation manuelle et assument la visibilité"
FOLDER_NUMERIC_PREFIX_HELP: "Les préfixes numériques qui permettent le classement manuel pour une meilleure visibilité"
FOLDER_NAME: "Nom de dossier"
FOLDER_NAME_HELP: "Le nom de dossier qui sera mémorisé dans le système de fichier pour cette page"
FOLDER_NAME_HELP: "Le nom de dossier qui sera mémorisé dans le système pour cette page"
PARENT: "Parent"
DEFAULT_OPTION_ROOT: "- Racine -"
DEFAULT_OPTION_SELECT: "- Selection -"
DEFAULT_OPTION_SELECT: "- Sélection -"
DISPLAY_TEMPLATE: "Modèle d'affichage"
DISPLAY_TEMPLATE_HELP: "Le type de page qui sera interprété par le modèle Twig de rendu de page"
BODY_CLASSES: "Classes Body"
BODY_CLASSES: "Classes de Body"
ORDERING: "Agencement"
PAGE_ORDER: "Ordre des pages"
OVERRIDES: "Substitutions"
MENU: "Menu"
MENU_HELP: "La chaîne de caractères utilisée dans le menu. Si non défini, <b>Titre</b> sera utilisé."
MENU_HELP: "La chaîne de caractères à utiliser dans le menu. Si non défini, <b>Titre</b> sera utilisé."
SLUG: "Slug"
SLUG_HELP: "La variable slug vous permet de définir spécifiquement la portion d'URL de la page"
SLUG_VALIDATE_MESSAGE: "Un slug doit contenir seulement des catactères minuscules alphanumériques et des tirets"
SLUG_HELP: "La variable slug vous permet de définir une portion spécifique de l'URL d'une page"
SLUG_VALIDATE_MESSAGE: "Un slug doit contenir uniquement des catactères alphanumériques minuscules et des tirets"
PROCESS: "Traitement"
PROCESS_HELP: "Contrôle comment les pages sont traitées. Peut être défini par page plutôt que globalement"
DEFAULT_CHILD_TYPE: "Type enfant par défaut"
USE_GLOBAL: "**Use Global**"
USE_GLOBAL: "Utilisation globale"
ROUTABLE: "Routable"
ROUTABLE_HELP: "Si cette page est joignable par une URL"
ROUTABLE_HELP: "Si cette page est accessible par une URL"
CACHING: "Mise en cache"
VISIBLE: "Visible"
VISIBLE_HELP: "Détermine si une page est visible dans la navigation."
DISABLED: "Désactivé"
ITEMS: "**Eléments**"
ITEMS: "Éléments"
ORDER_BY: "Classement par"
ORDER: "Ordre"
FOLDER: "Dossier"
@@ -720,21 +720,21 @@ fr:
PAGE_TITLE_HELP: "Le titre de la page"
PAGE: "Page"
MODULAR_TEMPLATE: "Modèle modulaire"
FRONTMATTER: "Front Matter"
FRONTMATTER: "Propos liminaires"
FILENAME: "Nom de fichier"
PARENT_PAGE: "Page parente"
HOME_PAGE: "Page d'accueil"
HOME_PAGE_HELP: "La page que Grav utilisera comme page d'arrivée par défaut"
HOME_PAGE_HELP: "La page que Grav utilisera comme page de destination par défaut"
DEFAULT_THEME: "Thème par défaut"
DEFAULT_THEME_HELP: "Définit le thème par défaut que Grav utilisera (par défaut c'est Antimatter)"
DEFAULT_THEME_HELP: "Définit le thème que Grav utilisera par défaut (par défaut Antimatter)"
TIMEZONE: "Fuseau horaire"
TIMEZONE_HELP: "Se subsitue au fuseau horaire par défaut du serveur"
SHORT_DATE_FORMAT: "Format d'affichage court de la date"
SHORT_DATE_FORMAT_HELP: "Définit le format de date courte qui peut être utilisé par les thèmes"
SHORT_DATE_FORMAT_HELP: "Définit le format de date courte qui peut être utilisé dans les thèmes"
LONG_DATE_FORMAT: "Format d'affichage long de la date"
LONG_DATE_FORMAT_HELP: "Définit le format de la date longue qui peut être utilisé par les thèmes"
LONG_DATE_FORMAT_HELP: "Définit le format de la date longue qui peut être utilisé dans les thèmes"
DEFAULT_ORDERING: "Tri par défaut"
DEFAULT_ORDERING_HELP: "Les pages dans une liste seront affichées en utilisant ce tri à moins que cela est été substitué"
DEFAULT_ORDERING_HELP: "Les pages d'une liste seront affichées en utilisant ce tri à moins que cela est été substitué"
DEFAULT_ORDERING_DEFAULT: "Défaut - basé sur le nom de dossier"
DEFAULT_ORDERING_FOLDER: "Dossier - basé sur le nom de dossier sans le préfixe"
DEFAULT_ORDERING_TITLE: "Titre - basé sur le champ titre dans l'entête"
@@ -744,43 +744,43 @@ fr:
DEFAULT_PAGE_COUNT: "Nombre par défaut de page"
DEFAULT_PAGE_COUNT_HELP: "Nombre maximum par défaut de pages dans une liste"
DATE_BASED_PUBLISHING: "Publication basée sur la date"
DATE_BASED_PUBLISHING_HELP: "(Dé)publie automatiquement les pages basées sur leur date"
EVENTS: "Evènements"
EVENTS_HELP: "Active ou désactive les évènements spécifiques. Désactiver ceux-ci peut altérer les plugins"
REDIRECT_DEFAULT_ROUTE: "Route par défaut de redirection"
REDIRECT_DEFAULT_ROUTE_HELP: "Redirige automatiquement vers une route par défaut de page"
DATE_BASED_PUBLISHING_HELP: "(Dé)publie automatiquement les pages en fonction de leur date"
EVENTS: "Évènements"
EVENTS_HELP: "Active ou désactive des évènements spécifiques. Les désactiver peut altérer le comportement des plugins"
REDIRECT_DEFAULT_ROUTE: "Chemin par défaut de redirection"
REDIRECT_DEFAULT_ROUTE_HELP: "Redirige automatiquement vers un chemin de page par défaut"
LANGUAGES: "Langues"
SUPPORTED: "Supportées"
SUPPORTED_HELP: "Liste de code langue formé de 2 lettres et séparée par une virgule (par exemple 'en,fr,de')"
SUPPORTED: "Prises en charge"
SUPPORTED_HELP: "Liste de code langue formé de 2 lettres et séparé par une virgule (par exemple 'en,fr,de')"
TRANSLATIONS_ENABLED: "Traductions activées"
TRANSLATIONS_ENABLED_HELP: "Supporte les traductions dans Grav, plugins et extensions"
TRANSLATIONS_FALLBACK: "Fallback traductions"
TRANSLATIONS_FALLBACK_HELP: "Fallback vers une traduction supportée si la langue active n'existe pas"
TRANSLATIONS_ENABLED_HELP: "Prise en charge des traductions dans Grav, plugins et extensions"
TRANSLATIONS_FALLBACK: "Traductions de repli"
TRANSLATIONS_FALLBACK_HELP: "Traductions de repli qui seront prises en charge si la langue active n'existe pas"
ACTIVE_LANGUAGE_IN_SESSION: "Activer la langue dans les sessions"
ACTIVE_LANGUAGE_IN_SESSION_HELP: "Mémorise la langue active dans la session"
HTTP_HEADERS: "Entêtes HTTP"
EXPIRES: "Expires"
EXPIRES_HELP: "Définit l'entête Expires. La valeur est en secondes."
LAST_MODIFIED: "Last modified"
LAST_MODIFIED_HELP: "Définit l'entête last modified qui peut aider l'optimisation du cache des proxy et navigateurs"
LAST_MODIFIED_HELP: "Définit l'entête `Last modified`pouvant améliorer l'optimisation du cache des proxy et navigateurs"
ETAG: "ETag"
ETAG_HELP: "Définit l'entête etag pour aider l'identification d'une modification de page"
ETAG_HELP: "Définit l'entête `etag` pour aider l'identification d'une modification de page"
VARY_ACCEPT_ENCODING: "Vary accept encoding"
VARY_ACCEPT_ENCODING_HELP: "Définit l'entête `Vary: Accept Encoding` pour aider la mise en cache avec les proxy et CDN"
MARKDOWN_EXTRA_HELP: "Active par défaut le support de Markdown Extra - https://michelf.ca/projects/php-markdown/extra/"
MARKDOWN_EXTRA_HELP: "Active par défaut la prise en charge de Markdown Extra - https://michelf.ca/projects/php-markdown/extra/"
AUTO_LINE_BREAKS: "Sauts de ligne automatiques"
AUTO_LINE_BREAKS_HELP: "Active le support des sauts de ligne automatiques dans markdown"
AUTO_LINE_BREAKS_HELP: "Active la prise en charge des sauts de ligne automatiques dans markdown"
AUTO_URL_LINKS: "Liens URL automatiques"
AUTO_URL_LINKS_HELP: "Active la conversion automatique des URLs en hyperliens HTML"
ESCAPE_MARKUP: "Echappement balises HTML"
ESCAPE_MARKUP_HELP: "Echappe les balises en entités HTML"
ESCAPE_MARKUP: "Échappement balises HTML"
ESCAPE_MARKUP_HELP: "Échappe les balises en entités HTML"
CACHING_HELP: "Interrupteur global ON/OFF pour activer/désactiver la mise en cache Grav"
CACHE_CHECK_METHOD: "Procédé de contrôle du cache"
CACHE_CHECK_METHOD_HELP: "Selectionnez le procédé que Grav utilise pour contrôler si des fichiers de page ont été modifiés."
CACHE_CHECK_METHOD_HELP: "Sélectionnez le procédé que Grav utilisera pour contrôler si des fichiers de page ont été modifiés."
CACHE_DRIVER: "Gestionnaire de cache"
CACHE_DRIVER_HELP: "Choisissez quel gestionnaire de cache Grav doit utiliser. 'Auto Detect' tente de trouver le meilleur pour vous"
CACHE_DRIVER_HELP: "Choisissez quel gestionnaire de cache Grav doit utiliser. 'Auto Detect' permet de trouver le meilleur pour vous"
CACHE_PREFIX: "Préfixe du cache"
CACHE_PREFIX_HELP: "Un identificateur d'une partie de la clé Grav. Ne rien changer à moins que vous sachiez ce que vous faites."
CACHE_PREFIX_HELP: "Un identificateur d'une partie de la clé Grav. Ne rien changer à moins que vous sachiez ce que vous faites."
CACHE_PREFIX_PLACEHOLDER: "Derivé de la base URL (à substituer en entrant une chaîne aléatoire)"
LIFETIME: "Durée de vie"
LIFETIME_HELP: "Définit la durée de vie du cache en secondes. 0 = infinie"
@@ -790,14 +790,14 @@ fr:
TWIG_CACHING: "Mise en cache Twig"
TWIG_CACHING_HELP: "Contrôle le mécanisme de mise en cache de Twig. Laissez-le activé pour une meilleur performance."
TWIG_DEBUG: "Twig debug"
TWIG_DEBUG_HELP: "Autorise ou pas l'option de charger l'extension Twig Debugger"
TWIG_DEBUG_HELP: "Autorise ou non l'option permettant de charger l'extension Twig Debugger"
DETECT_CHANGES: "Détecter les modifications"
DETECT_CHANGES_HELP: "Twig recompilera automatiquement le cache Twig si il détecte des modifications dans les modèles Twig"
AUTOESCAPE_VARIABLES: "Auto-échapper les variables"
AUTOESCAPE_VARIABLES_HELP: "Auto-échappe toutes les variables. Cela va probablement altérer votre site"
AUTOESCAPE_VARIABLES: "Auto-échappement des variables"
AUTOESCAPE_VARIABLES_HELP: "Auto-échappe toutes les variables. Cela va probablement altérer votre site"
ASSETS: "Assets"
CSS_PIPELINE: "CSS pipeline"
CSS_PIPELINE_HELP: "Le CSS pipeline est l'unification de multiples ressources CSS en un seul fichier"
CSS_PIPELINE_HELP: "Le CSS pipeline permet l'unification de multiples ressources CSS en un seul fichier"
CSS_MINIFY: "Minification CSS"
CSS_MINIFY_HELP: "Minification du CSS durant la procédure de pipelining"
CSS_MINIFY_WINDOWS_OVERRIDE: "Substitution minification CSS Windows"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -102,7 +102,7 @@ $(function(){
};
root.GravAjax.toastErrorHandler = function (xhr, status, error) {
if (status !== 'abort') {
if (status !== 'abort' && !(status == 'error' && error == '')) {
toastr.error(error);
}
};

View File

@@ -98,12 +98,20 @@
ArrayField.prototype.remove = function(event) {
var row = $(event.target).closest('[data-grav-array-type="row"]');
var lastItem = false;
if (row.siblings().length == 0) {
//on the last item we just clear its values
row.find('input').val('');
return;
lastItem = true;
this.add(event);
}
row.remove();
if (lastItem == true) {
this.refreshAll();
}
if (this.isValueOnly()) {
this.refreshAll();
}

View File

@@ -210,6 +210,10 @@ $update-height: 3rem;
letter-spacing: -1px;
}
.padding {
padding: $padding-default;
}
.titlebar {
position: relative;
height: $topbar-height;

View File

@@ -1,10 +1,18 @@
{% extends 'partials/base.html.twig' %}
{% block content_full %}
<div class="error">
{% include 'partials/messages.html.twig' %}
{{ content }}
{% block titlebar %}
<h1><i class="fa fa-fw fa-exclamation-triangle"></i> {{ "PLUGIN_ADMIN.ERROR"|tu }}</h1>
{% endblock %}
{% block content %}
<div class="error-block">
<h1>Error {{ page.header.http_response_code }}</h1>
<div class="padding">
<p>
{{ page.content }}
</p>
</div>
</div>
{% endblock %}
{% block footer_section %}

View File

@@ -38,6 +38,10 @@
</div>
{% else %}
{% if field.value_only != true %}
{% if key == '0' and text == '' %}
{% set key = '' %}
{% endif %}
<input data-grav-array-type="key" type="text" value="{{ key }}" placeholder="{{ field.placeholder_key|e|tu }}" />
{% endif %}

View File

@@ -91,7 +91,7 @@
<a href="{{ page_url }}" class="page-edit">{{ p.title }}</a>
{% if p.language %}
<span class="badge lang {% if p.language == admin_lang %}info{% endif %}">{{p.language ?: default_site_lang}}</span>
<span class="badge lang {% if p.language == admin_lang %}info{% endif %}">{{p.language}}</span>
{% endif %}
<span class="page-home">{{ p.home ? '<i class="fa fa-home"></i>' }}</span>
<span class="page-tools">
@@ -194,8 +194,6 @@
{% endblock %}
{% block content %}
{% set default_site_lang = grav.config.system.languages|first|first %}
<div class="admin-block clear">
{% include 'partials/messages.html.twig' %}
{% if mode == 'new' %}