(Grav GitSync) Automatic Commit from dan

This commit is contained in:
dan 2022-02-19 20:08:46 +13:00 committed by GitSync
parent 72b3e0c552
commit 2fa5edfdbb
143 changed files with 11847 additions and 14514 deletions

View file

@ -0,0 +1,34 @@
---
title: 'Our Android section tutorial/guide is ready 🍻 '
published: true
date: '19-02-2022 20:06'
taxonomy:
category:
- news
tag:
- tutorials
- '#phone'
- '#android'
- '#magisk'
- fdroid
- afwall
- xprivacylua
- lsposed
- microg
- shelter
- aurora
- lineage
- privacy
aura:
author: dan
---
# Our Android section tutorial/guide is ready 🍻
Are you interested in refreshing your old Android phone via a Custom ROM? Using an Android device for your digital privacy ?
We just finished our tutorial/guide for our Android section.
F-Droid, Magisk, AFWall, LSPosed, microG ... they're all part of it.
Have a look:
https://wiki.techsaviours.org/en/phone/operating_systems/android

View file

@ -1,4 +1,4 @@
# EditorConfig is awesome: http://EditorConfig.org # EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file # top-most EditorConfig file
root = true root = true
@ -12,6 +12,6 @@ insert_final_newline = true
indent_style = space indent_style = space
indent_size = 2 indent_size = 2
# 2 space indentation # 4 space indentation
[*.{yaml,.yml}] [*.php]
indent_size = 2 indent_size = 4

View file

@ -1,3 +1,38 @@
# v1.10.30.2
## 02/09/2022
1. [](#bugfix)
* Fixed regression preventing new `elements` field from saving its state
# v1.10.30.1
## 02/09/2022
1. [](#improved)
* List field items will now require confirmation before getting deleted
# v1.10.30
## 02/07/2022
1. [](#new)
* Require **Grav 1.7.30**
* Updated SCSS compiler to v1.10
* PageMedia can now be collapsed and thumbnails previewed smaller, in order to save room on the page. Selection will be remembered.
* DEPRECATED: Admin field `pages_list_display_field` is no longer available as an option [#2191](https://github.com/getgrav/grav-plugin-admin/issues/2191)
* When listing installable themes/plugins, it is now possible to sort them by [Premium](https://getgrav.org/premium)
2. [](#improved)
* Updated JavaScript dependencies
* Cleaned up JavaScript unused dependencies and warnings
* Removed unused style assets
* Plugins list rows now properly highlight on hover, no more guessing when wanting to disable a plugin!
3. [](#bugfix)
* Fixed `elements` field when it's used inside `list` field
* Fixed issue uploading non-images media when Resolution setting enabled in Admin [#2172](https://github.com/getgrav/grav-plugin-admin/issues/2172)
* Prevent fields from being toggled incorrectly by adding originalValue to childs of fieldset. [#2218](https://github.com/getgrav/grav-plugin-admin/pull/2218)
* Fixed persistent focus on Folder field when Adding page (Safari) [#2209](https://github.com/getgrav/grav-plugin-admin/issues/2209)
* Fixed performance of Plugins / Themes sort in the installation table
* Fixed list field with key/value pairs throwing an exception due to bad value [#2199](https://github.com/getgrav/grav-plugin-admin/issues/2199)
* Fixed disabling/enabling plugin from the list breaking the plugin configuration
# v1.10.29 # v1.10.29
## 01/28/2022 ## 01/28/2022

View file

@ -1,6 +1,6 @@
# Grav Standard Administration Panel Plugin # Grav Standard Administration Panel Plugin
This **admin plugin** for [Grav](http://github.com/getgrav/grav) is an HTML user interface that provides a convenient way to configure Grav and easily create and modify pages. This will remain a totally optional plugin, and is not in any way required or needed to use Grav effectively. In fact, the admin provides an intentionally limited view to ensure it remains easy to use and not overwhelming. I'm sure power users will still prefer to work with the configuration files directly. This **admin plugin** for [Grav](https://github.com/getgrav/grav) is an HTML user interface that provides a convenient way to configure Grav and easily create and modify pages. This will remain a totally optional plugin, and is not in any way required or needed to use Grav effectively. In fact, the admin provides an intentionally limited view to ensure it remains easy to use and not overwhelming. I'm sure power users will still prefer to work with the configuration files directly.
![](assets/admin-dashboard.png) ![](assets/admin-dashboard.png)
@ -33,7 +33,7 @@ This **admin plugin** for [Grav](http://github.com/getgrav/grav) is an HTML user
We have tested internally, but we hope to use this public beta phase to identify, isolate, and fix issues related to the plugin to ensure it is as solid and reliable as possible. We have tested internally, but we hope to use this public beta phase to identify, isolate, and fix issues related to the plugin to ensure it is as solid and reliable as possible.
For **live chatting**, please use the dedicated [Slack Chat Room](https://getgrav.org/slack) for discussions directly related to Grav. For **live chatting**, please use the dedicated [Discord Chat Room](https://getgrav.org/discord) for discussions directly related to Grav.
For **bugs, features, improvements**, please ensure you [create issues in the admin plugin GitHub repository](https://github.com/getgrav/grav-plugin-admin). For **bugs, features, improvements**, please ensure you [create issues in the admin plugin GitHub repository](https://github.com/getgrav/grav-plugin-admin).
@ -99,7 +99,7 @@ By default, you can access the admin by pointing your browser to `http://yoursit
# Standard Free & Paid Pro Versions # Standard Free & Paid Pro Versions
If you have been following the [blog](http://getgrav.org/blog), [Twitter](https://twitter.com/getgrav), [Slack chat](https://getgrav.org/slack), etc., you probably already know now that our intention is to provide two versions of this plugin. If you have been following the [blog](https://getgrav.org/blog), [Twitter](https://twitter.com/getgrav), [Discord chat](https://getgrav.org/discord), etc., you probably already know now that our intention is to provide two versions of this plugin.
The **standard free version**, is very powerful, and has more functionality than most commercial flat-file CMS systems. The **standard free version**, is very powerful, and has more functionality than most commercial flat-file CMS systems.

View file

@ -119,6 +119,12 @@ class AdminPlugin extends Plugin
'list' => [ 'list' => [
'array' => true 'array' => true
], ],
'elements' => [
'input@' => true
],
'element' => [
'input@' => false
],
'file' => [ 'file' => [
'array' => true, 'array' => true,
'media_field' => true, 'media_field' => true,

View file

@ -26,7 +26,6 @@ session:
edit_mode: normal edit_mode: normal
frontend_preview_target: inline frontend_preview_target: inline
show_github_msg: true show_github_msg: true
pages_list_display_field: title
admin_icons: line-awesome admin_icons: line-awesome
enable_auto_updates_check: true enable_auto_updates_check: true
notifications: notifications:

View file

@ -1,13 +1,13 @@
name: Admin Panel name: Admin Panel
slug: admin slug: admin
type: plugin type: plugin
version: 1.10.29 version: 1.10.30.2
description: Adds an advanced administration panel to manage your site description: Adds an advanced administration panel to manage your site
icon: empire icon: empire
author: author:
name: Team Grav name: Team Grav
email: devs@getgrav.org email: devs@getgrav.org
url: http://getgrav.org url: https://getgrav.org
homepage: https://github.com/getgrav/grav-plugin-admin homepage: https://github.com/getgrav/grav-plugin-admin
keywords: admin, plugin, manager, panel keywords: admin, plugin, manager, panel
bugs: https://github.com/getgrav/grav-plugin-admin/issues bugs: https://github.com/getgrav/grav-plugin-admin/issues
@ -15,7 +15,7 @@ docs: https://github.com/getgrav/grav-plugin-admin/blob/develop/README.md
license: MIT license: MIT
dependencies: dependencies:
- { name: grav, version: '>=1.7.29' } - { name: grav, version: '>=1.7.30' }
- { name: form, version: '>=5.1.0' } - { name: form, version: '>=5.1.0' }
- { name: login, version: '>=3.6.2' } - { name: login, version: '>=3.6.2' }
- { name: email, version: '>=3.1.0' } - { name: email, version: '>=3.1.0' }
@ -202,12 +202,6 @@ form:
type: bool type: bool
help: PLUGIN_ADMIN.SHOW_GITHUB_LINK_HELP help: PLUGIN_ADMIN.SHOW_GITHUB_LINK_HELP
pages_list_display_field:
type: text
size: small
label: PLUGIN_ADMIN.PAGES_LIST_DISPLAY_FIELD
help: PLUGIN_ADMIN.PAGES_LIST_DISPLAY_FIELD_HELP
enable_auto_updates_check: enable_auto_updates_check:
type: toggle type: toggle
label: PLUGIN_ADMIN.AUTO_UPDATES label: PLUGIN_ADMIN.AUTO_UPDATES

View file

@ -22,6 +22,7 @@ use Grav\Common\Page\Medium\Medium;
use Grav\Common\Page\Page; use Grav\Common\Page\Page;
use Grav\Common\Page\Pages; use Grav\Common\Page\Pages;
use Grav\Common\Page\Collection; use Grav\Common\Page\Collection;
use Grav\Common\Plugins;
use Grav\Common\Security; use Grav\Common\Security;
use Grav\Common\User\Interfaces\UserCollectionInterface; use Grav\Common\User\Interfaces\UserCollectionInterface;
use Grav\Common\User\Interfaces\UserInterface; use Grav\Common\User\Interfaces\UserInterface;
@ -35,6 +36,7 @@ use PicoFeed\Parser\MalformedXmlException;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use RocketTheme\Toolbox\Event\Event; use RocketTheme\Toolbox\Event\Event;
use RocketTheme\Toolbox\File\File; use RocketTheme\Toolbox\File\File;
use RocketTheme\Toolbox\File\YamlFile;
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator; use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
use Twig\Loader\FilesystemLoader; use Twig\Loader\FilesystemLoader;
@ -629,10 +631,8 @@ class AdminController extends AdminBaseController
return false; return false;
} }
// Filter value and save it. $type = $this->getDataType();
$this->post = ['enabled' => true]; $this->updatePluginState($type, ['enabled' => true]);
$obj = $this->prepareData($this->post);
$obj->save();
$this->post = ['_redirect' => 'plugins']; $this->post = ['_redirect' => 'plugins'];
if ($this->grav['uri']->param('redirect')) { if ($this->grav['uri']->param('redirect')) {
@ -662,10 +662,8 @@ class AdminController extends AdminBaseController
return false; return false;
} }
// Filter value and save it. $type = $this->getDataType();
$this->post = ['enabled' => false]; $this->updatePluginState($type, ['enabled' => false]);
$obj = $this->prepareData($this->post);
$obj->save();
$this->post = ['_redirect' => 'plugins']; $this->post = ['_redirect' => 'plugins'];
$this->admin->setMessage($this->admin::translate('PLUGIN_ADMIN.SUCCESSFULLY_DISABLED_PLUGIN'), 'info'); $this->admin->setMessage($this->admin::translate('PLUGIN_ADMIN.SUCCESSFULLY_DISABLED_PLUGIN'), 'info');
@ -675,6 +673,30 @@ class AdminController extends AdminBaseController
return true; return true;
} }
/**
* @param string $type
* @param array $value
* @return void
*/
protected function updatePluginState(string $type, array $value): void
{
$obj = Plugins::get(preg_replace('|plugins/|', '', $type));
if (null === $obj) {
throw new \RuntimeException("Plugin '{$type}' doesn't exist!");
}
/** @var UniformResourceLocator $locator */
$locator = $this->grav['locator'];
// Configuration file will be saved to the existing config stream.
$filename = $locator->findResource('config://') . "/{$type}.yaml";
$file = YamlFile::instance($filename);
$contents = $value + $file->content();
$file->save($contents);
}
/** /**
* Set the default theme. * Set the default theme.
* *

View file

@ -363,7 +363,7 @@ class Gpm
$error[] = '<p>Grav has increased the minimum PHP requirement.<br />'; $error[] = '<p>Grav has increased the minimum PHP requirement.<br />';
$error[] = 'You are currently running PHP <strong>' . phpversion() . '</strong>'; $error[] = 'You are currently running PHP <strong>' . phpversion() . '</strong>';
$error[] = ', but PHP <strong>' . $upgrader->minPHPVersion() . '</strong> is required.</p>'; $error[] = ', but PHP <strong>' . $upgrader->minPHPVersion() . '</strong> is required.</p>';
$error[] = '<p><a href="http://getgrav.org/blog/changing-php-requirements-to-5.5" class="button button-small secondary">Additional information</a></p>'; $error[] = '<p><a href="https://getgrav.org/blog/changing-php-requirements-to-5.5" class="button button-small secondary">Additional information</a></p>';
Installer::setError(implode("\n", $error)); Installer::setError(implode("\n", $error));

View file

@ -190,16 +190,16 @@
}, },
{ {
"name": "scssphp/scssphp", "name": "scssphp/scssphp",
"version": "v1.9.0", "version": "v1.10.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/scssphp/scssphp.git", "url": "https://github.com/scssphp/scssphp.git",
"reference": "bc8bece4e5e176973a832f3763049ddbba16e6fd" "reference": "9699a52a862da4efb43985943afa17150155dd3d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/scssphp/scssphp/zipball/bc8bece4e5e176973a832f3763049ddbba16e6fd", "url": "https://api.github.com/repos/scssphp/scssphp/zipball/9699a52a862da4efb43985943afa17150155dd3d",
"reference": "bc8bece4e5e176973a832f3763049ddbba16e6fd", "reference": "9699a52a862da4efb43985943afa17150155dd3d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -215,7 +215,7 @@
"symfony/phpunit-bridge": "^5.1", "symfony/phpunit-bridge": "^5.1",
"thoughtbot/bourbon": "^7.0", "thoughtbot/bourbon": "^7.0",
"twbs/bootstrap": "~5.0", "twbs/bootstrap": "~5.0",
"twbs/bootstrap4": "4.6.0", "twbs/bootstrap4": "4.6.1",
"zurb/foundation": "~6.5" "zurb/foundation": "~6.5"
}, },
"suggest": { "suggest": {
@ -258,9 +258,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/scssphp/scssphp/issues", "issues": "https://github.com/scssphp/scssphp/issues",
"source": "https://github.com/scssphp/scssphp/tree/v1.9.0" "source": "https://github.com/scssphp/scssphp/tree/v1.10.0"
}, },
"time": "2021-12-13T11:55:16+00:00" "time": "2022-01-06T18:16:18+00:00"
} }
], ],
"packages-dev": [ "packages-dev": [
@ -885,12 +885,12 @@
} }
}, },
"autoload": { "autoload": {
"psr-4": {
"GuzzleHttp\\Psr7\\": "src/"
},
"files": [ "files": [
"src/functions_include.php" "src/functions_include.php"
] ],
"psr-4": {
"GuzzleHttp\\Psr7\\": "src/"
}
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
@ -976,9 +976,6 @@
"require": { "require": {
"php": "^7.1 || ^8.0" "php": "^7.1 || ^8.0"
}, },
"replace": {
"myclabs/deep-copy": "self.version"
},
"require-dev": { "require-dev": {
"doctrine/collections": "^1.0", "doctrine/collections": "^1.0",
"doctrine/common": "^2.6", "doctrine/common": "^2.6",
@ -986,12 +983,12 @@
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
"psr-4": {
"DeepCopy\\": "src/DeepCopy/"
},
"files": [ "files": [
"src/DeepCopy/deep_copy.php" "src/DeepCopy/deep_copy.php"
] ],
"psr-4": {
"DeepCopy\\": "src/DeepCopy/"
}
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
@ -1239,16 +1236,16 @@
}, },
{ {
"name": "phpdocumentor/type-resolver", "name": "phpdocumentor/type-resolver",
"version": "1.5.1", "version": "1.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git", "url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae" "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae", "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706",
"reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae", "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1283,9 +1280,9 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": { "support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues", "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.1" "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0"
}, },
"time": "2021-10-02T14:08:47+00:00" "time": "2022-01-04T19:58:01+00:00"
}, },
{ {
"name": "phpspec/prophecy", "name": "phpspec/prophecy",
@ -2544,16 +2541,16 @@
}, },
{ {
"name": "symfony/browser-kit", "name": "symfony/browser-kit",
"version": "v4.4.27", "version": "v4.4.37",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/browser-kit.git", "url": "https://github.com/symfony/browser-kit.git",
"reference": "9629d1524d8ced5a4ec3e94abdbd638b4ec8319b" "reference": "6e81008cac62369871cb6b8de64576ed138e3998"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/9629d1524d8ced5a4ec3e94abdbd638b4ec8319b", "url": "https://api.github.com/repos/symfony/browser-kit/zipball/6e81008cac62369871cb6b8de64576ed138e3998",
"reference": "9629d1524d8ced5a4ec3e94abdbd638b4ec8319b", "reference": "6e81008cac62369871cb6b8de64576ed138e3998",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2596,7 +2593,7 @@
"description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/browser-kit/tree/v4.4.27" "source": "https://github.com/symfony/browser-kit/tree/v4.4.37"
}, },
"funding": [ "funding": [
{ {
@ -2612,20 +2609,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-07-21T12:19:41+00:00" "time": "2022-01-02T09:41:36+00:00"
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v4.4.36", "version": "v4.4.37",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "621379b62bb19af213b569b60013200b11dd576f" "reference": "0259f01dbf9d77badddbbf4c2abb681f24c9cac6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/621379b62bb19af213b569b60013200b11dd576f", "url": "https://api.github.com/repos/symfony/console/zipball/0259f01dbf9d77badddbbf4c2abb681f24c9cac6",
"reference": "621379b62bb19af213b569b60013200b11dd576f", "reference": "0259f01dbf9d77badddbbf4c2abb681f24c9cac6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2686,7 +2683,7 @@
"description": "Eases the creation of beautiful and testable command line interfaces", "description": "Eases the creation of beautiful and testable command line interfaces",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v4.4.36" "source": "https://github.com/symfony/console/tree/v4.4.37"
}, },
"funding": [ "funding": [
{ {
@ -2702,20 +2699,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-12-15T10:33:10+00:00" "time": "2022-01-26T16:15:26+00:00"
}, },
{ {
"name": "symfony/css-selector", "name": "symfony/css-selector",
"version": "v4.4.27", "version": "v4.4.37",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/css-selector.git", "url": "https://github.com/symfony/css-selector.git",
"reference": "5194f18bd80d106f11efa8f7cd0fbdcc3af96ce6" "reference": "0628e6c6d7c92f1a7bae543959bdc17347be2436"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/5194f18bd80d106f11efa8f7cd0fbdcc3af96ce6", "url": "https://api.github.com/repos/symfony/css-selector/zipball/0628e6c6d7c92f1a7bae543959bdc17347be2436",
"reference": "5194f18bd80d106f11efa8f7cd0fbdcc3af96ce6", "reference": "0628e6c6d7c92f1a7bae543959bdc17347be2436",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2752,7 +2749,7 @@
"description": "Converts CSS selectors to XPath expressions", "description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/css-selector/tree/v4.4.27" "source": "https://github.com/symfony/css-selector/tree/v4.4.37"
}, },
"funding": [ "funding": [
{ {
@ -2768,7 +2765,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-07-21T12:19:41+00:00" "time": "2022-01-02T09:41:36+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
@ -2839,16 +2836,16 @@
}, },
{ {
"name": "symfony/dom-crawler", "name": "symfony/dom-crawler",
"version": "v4.4.36", "version": "v4.4.37",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/dom-crawler.git", "url": "https://github.com/symfony/dom-crawler.git",
"reference": "42de12bee3b5e594977209bcdf58ec4fef8dde39" "reference": "60d36408a3a48500bcc6e30d9f831e51d04d7fa4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/42de12bee3b5e594977209bcdf58ec4fef8dde39", "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/60d36408a3a48500bcc6e30d9f831e51d04d7fa4",
"reference": "42de12bee3b5e594977209bcdf58ec4fef8dde39", "reference": "60d36408a3a48500bcc6e30d9f831e51d04d7fa4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2893,7 +2890,7 @@
"description": "Eases DOM navigation for HTML and XML documents", "description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/dom-crawler/tree/v4.4.36" "source": "https://github.com/symfony/dom-crawler/tree/v4.4.37"
}, },
"funding": [ "funding": [
{ {
@ -2909,20 +2906,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-12-28T14:48:02+00:00" "time": "2022-01-02T09:41:36+00:00"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v4.4.34", "version": "v4.4.37",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
"reference": "1a024b45369c9d55d76b6b8a241bd20c9ea1cbd8" "reference": "3ccfcfb96ecce1217d7b0875a0736976bc6e63dc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1a024b45369c9d55d76b6b8a241bd20c9ea1cbd8", "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3ccfcfb96ecce1217d7b0875a0736976bc6e63dc",
"reference": "1a024b45369c9d55d76b6b8a241bd20c9ea1cbd8", "reference": "3ccfcfb96ecce1217d7b0875a0736976bc6e63dc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2977,7 +2974,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/event-dispatcher/tree/v4.4.34" "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.37"
}, },
"funding": [ "funding": [
{ {
@ -2993,7 +2990,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-11-15T14:42:25+00:00" "time": "2022-01-02T09:41:36+00:00"
}, },
{ {
"name": "symfony/event-dispatcher-contracts", "name": "symfony/event-dispatcher-contracts",
@ -3076,16 +3073,16 @@
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v4.4.36", "version": "v4.4.37",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "1fef05633cd61b629e963e5d8200fb6b67ecf42c" "reference": "b17d76d7ed179f017aad646e858c90a2771af15d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/1fef05633cd61b629e963e5d8200fb6b67ecf42c", "url": "https://api.github.com/repos/symfony/finder/zipball/b17d76d7ed179f017aad646e858c90a2771af15d",
"reference": "1fef05633cd61b629e963e5d8200fb6b67ecf42c", "reference": "b17d76d7ed179f017aad646e858c90a2771af15d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3118,7 +3115,7 @@
"description": "Finds files and directories via an intuitive fluent interface", "description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/finder/tree/v4.4.36" "source": "https://github.com/symfony/finder/tree/v4.4.37"
}, },
"funding": [ "funding": [
{ {
@ -3134,25 +3131,28 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-12-15T10:33:10+00:00" "time": "2022-01-02T09:41:36+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.23.0", "version": "v1.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git", "url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" "reference": "30885182c981ab175d4d034db0f6f469898070ab"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
"reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", "reference": "30885182c981ab175d4d034db0f6f469898070ab",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.1"
}, },
"provide": {
"ext-ctype": "*"
},
"suggest": { "suggest": {
"ext-ctype": "For best performance" "ext-ctype": "For best performance"
}, },
@ -3197,7 +3197,7 @@
"portable" "portable"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0"
}, },
"funding": [ "funding": [
{ {
@ -3213,20 +3213,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-02-19T12:13:01+00:00" "time": "2021-10-20T20:35:02+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-idn", "name": "symfony/polyfill-intl-idn",
"version": "v1.23.0", "version": "v1.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git", "url": "https://github.com/symfony/polyfill-intl-idn.git",
"reference": "65bd267525e82759e7d8c4e8ceea44f398838e65" "reference": "749045c69efb97c70d25d7463abba812e91f3a44"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/65bd267525e82759e7d8c4e8ceea44f398838e65", "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44",
"reference": "65bd267525e82759e7d8c4e8ceea44f398838e65", "reference": "749045c69efb97c70d25d7463abba812e91f3a44",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3248,12 +3248,12 @@
} }
}, },
"autoload": { "autoload": {
"psr-4": {
"Symfony\\Polyfill\\Intl\\Idn\\": ""
},
"files": [ "files": [
"bootstrap.php" "bootstrap.php"
] ],
"psr-4": {
"Symfony\\Polyfill\\Intl\\Idn\\": ""
}
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
@ -3284,7 +3284,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.23.0" "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.24.0"
}, },
"funding": [ "funding": [
{ {
@ -3300,11 +3300,11 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-05-27T09:27:20+00:00" "time": "2021-09-14T14:02:44+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-normalizer", "name": "symfony/polyfill-intl-normalizer",
"version": "v1.23.0", "version": "v1.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
@ -3333,12 +3333,12 @@
} }
}, },
"autoload": { "autoload": {
"psr-4": {
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
},
"files": [ "files": [
"bootstrap.php" "bootstrap.php"
], ],
"psr-4": {
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
},
"classmap": [ "classmap": [
"Resources/stubs" "Resources/stubs"
] ]
@ -3368,7 +3368,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0" "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0"
}, },
"funding": [ "funding": [
{ {
@ -3388,21 +3388,24 @@
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "v1.23.1", "version": "v1.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
"reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.1"
}, },
"provide": {
"ext-mbstring": "*"
},
"suggest": { "suggest": {
"ext-mbstring": "For best performance" "ext-mbstring": "For best performance"
}, },
@ -3448,7 +3451,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0"
}, },
"funding": [ "funding": [
{ {
@ -3464,20 +3467,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-05-27T12:26:48+00:00" "time": "2021-11-30T18:21:41+00:00"
}, },
{ {
"name": "symfony/polyfill-php80", "name": "symfony/polyfill-php80",
"version": "v1.23.1", "version": "v1.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php80.git", "url": "https://github.com/symfony/polyfill-php80.git",
"reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be" "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be", "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9",
"reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be", "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3494,12 +3497,12 @@
} }
}, },
"autoload": { "autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php80\\": ""
},
"files": [ "files": [
"bootstrap.php" "bootstrap.php"
], ],
"psr-4": {
"Symfony\\Polyfill\\Php80\\": ""
},
"classmap": [ "classmap": [
"Resources/stubs" "Resources/stubs"
] ]
@ -3531,7 +3534,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1" "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0"
}, },
"funding": [ "funding": [
{ {
@ -3547,20 +3550,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-07-28T13:41:28+00:00" "time": "2021-09-13T13:58:33+00:00"
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v4.4.36", "version": "v4.4.37",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/process.git", "url": "https://github.com/symfony/process.git",
"reference": "a35d6b8f82e2272504f23a267de49b8717ca0028" "reference": "b2d924e5a4cb284f293d5092b1dbf0d364cb8b67"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/a35d6b8f82e2272504f23a267de49b8717ca0028", "url": "https://api.github.com/repos/symfony/process/zipball/b2d924e5a4cb284f293d5092b1dbf0d364cb8b67",
"reference": "a35d6b8f82e2272504f23a267de49b8717ca0028", "reference": "b2d924e5a4cb284f293d5092b1dbf0d364cb8b67",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3593,7 +3596,7 @@
"description": "Executes commands in sub-processes", "description": "Executes commands in sub-processes",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/process/tree/v4.4.36" "source": "https://github.com/symfony/process/tree/v4.4.37"
}, },
"funding": [ "funding": [
{ {
@ -3609,7 +3612,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-12-19T16:27:15+00:00" "time": "2022-01-27T17:14:04+00:00"
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",
@ -3696,16 +3699,16 @@
}, },
{ {
"name": "symfony/yaml", "name": "symfony/yaml",
"version": "v4.4.36", "version": "v4.4.37",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/yaml.git", "url": "https://github.com/symfony/yaml.git",
"reference": "a19f7c44ba665fa9d9d415cc4493361381b93f9b" "reference": "d7f637cc0f0cc14beb0984f2bb50da560b271311"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/a19f7c44ba665fa9d9d415cc4493361381b93f9b", "url": "https://api.github.com/repos/symfony/yaml/zipball/d7f637cc0f0cc14beb0984f2bb50da560b271311",
"reference": "a19f7c44ba665fa9d9d415cc4493361381b93f9b", "reference": "d7f637cc0f0cc14beb0984f2bb50da560b271311",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3747,7 +3750,7 @@
"description": "Loads and dumps YAML files", "description": "Loads and dumps YAML files",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/yaml/tree/v4.4.36" "source": "https://github.com/symfony/yaml/tree/v4.4.37"
}, },
"funding": [ "funding": [
{ {
@ -3763,7 +3766,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-11-25T16:40:00+00:00" "time": "2022-01-24T20:11:01+00:00"
}, },
{ {
"name": "theseer/tokenizer", "name": "theseer/tokenizer",
@ -3889,5 +3892,5 @@
"platform-overrides": { "platform-overrides": {
"php": "7.3.6" "php": "7.3.6"
}, },
"plugin-api-version": "2.1.0" "plugin-api-version": "2.2.0"
} }

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "هذا إصدار بيتا! استخدم هذا في الإنتاج على مسؤوليتك الخاصة..." ADMIN_BETA_MSG: "هذا إصدار بيتا! استخدم هذا في الإنتاج على مسؤوليتك الخاصة..."
ADMIN_REPORT_ISSUE: "وجدت مشكلة؟ الرجاء الإبلاغ عن GitHub." ADMIN_REPORT_ISSUE: "وجدت مشكلة؟ الرجاء الإبلاغ عن GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS"
LOGIN_BTN: "تسجل الدخول" LOGIN_BTN: "تسجل الدخول"
LOGIN_BTN_FORGOT: "نسيت" LOGIN_BTN_FORGOT: "نسيت"
LOGIN_BTN_RESET: "إعادة تعيين كلمة المرور" LOGIN_BTN_RESET: "إعادة تعيين كلمة المرور"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Това е Бета версия! Използвате на ваша отговорност..." ADMIN_BETA_MSG: "Това е Бета версия! Използвате на ваша отговорност..."
ADMIN_REPORT_ISSUE: "Открили сте проблем? Моля, съобщете за него в GitHub." ADMIN_REPORT_ISSUE: "Открили сте проблем? Моля, съобщете за него в GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Задвижван от Grav</a> - Модерният Флат Файл CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Задвижван от Grav</a> - Модерният Флат Файл CMS"
LOGIN_BTN: "Вход" LOGIN_BTN: "Вход"
LOGIN_BTN_FORGOT: "Забравена парола" LOGIN_BTN_FORGOT: "Забравена парола"
LOGIN_BTN_RESET: "Промяна на паролата" LOGIN_BTN_RESET: "Промяна на паролата"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Un ermaeziadenn beta an hini eo! Arverit en endro produadur gant evezh..." ADMIN_BETA_MSG: "Un ermaeziadenn beta an hini eo! Arverit en endro produadur gant evezh..."
ADMIN_REPORT_ISSUE: "Kavet hoc'h eus ur gudenn? Danevellit anezhi war Github." ADMIN_REPORT_ISSUE: "Kavet hoc'h eus ur gudenn? Danevellit anezhi war Github."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Lusket gant Grav</a> - Ar CMS Restr plad modern" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Lusket gant Grav</a> - Ar CMS Restr plad modern"
LOGIN_BTN: "Anv arveriad" LOGIN_BTN: "Anv arveriad"
LOGIN_BTN_FORGOT: "Ankouaet" LOGIN_BTN_FORGOT: "Ankouaet"
LOGIN_BTN_RESET: "Adderaouekaat ar ger-tremen" LOGIN_BTN_RESET: "Adderaouekaat ar ger-tremen"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Aquesta és una versió beta! Utilitza-la en producció sota el teu propi risc..." ADMIN_BETA_MSG: "Aquesta és una versió beta! Utilitza-la en producció sota el teu propi risc..."
ADMIN_REPORT_ISSUE: "Has trobat algun problema? Sisplau, reporta'l a GitHub." ADMIN_REPORT_ISSUE: "Has trobat algun problema? Sisplau, reporta'l a GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Funcionant amb Grav</a> - El CMS de fitxers plans modern" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Funcionant amb Grav</a> - El CMS de fitxers plans modern"
LOGIN_BTN: "Inicia sessió" LOGIN_BTN: "Inicia sessió"
LOGIN_BTN_FORGOT: "Ho he oblidat" LOGIN_BTN_FORGOT: "Ho he oblidat"
LOGIN_BTN_RESET: "Restablir contrasenya" LOGIN_BTN_RESET: "Restablir contrasenya"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Prosím povolte JavaScript ve vašem prohlížeči." ADMIN_NOSCRIPT_MSG: "Prosím povolte JavaScript ve vašem prohlížeči."
ADMIN_BETA_MSG: "Jedná se o beta verzi! V ostrém provozu používejte pouze na vlastní nebezpečí..." ADMIN_BETA_MSG: "Jedná se o beta verzi! V ostrém provozu používejte pouze na vlastní nebezpečí..."
ADMIN_REPORT_ISSUE: "Objevili jste problém? Nahlaste ho, prosím, na GitHub." ADMIN_REPORT_ISSUE: "Objevili jste problém? Nahlaste ho, prosím, na GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Beží na Grav CMS</a> - Moderní správce obsahu pomocí souborů prostých textů" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Beží na Grav CMS</a> - Moderní správce obsahu pomocí souborů prostých textů"
LOGIN_BTN: "Přihlásit" LOGIN_BTN: "Přihlásit"
LOGIN_BTN_FORGOT: "Obnovit heslo" LOGIN_BTN_FORGOT: "Obnovit heslo"
LOGIN_BTN_RESET: "Obnovit heslo" LOGIN_BTN_RESET: "Obnovit heslo"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Mae hwn yn fersiwn beta! Defnyddio hwn yn cynhyrchu ar risg eich hun..." ADMIN_BETA_MSG: "Mae hwn yn fersiwn beta! Defnyddio hwn yn cynhyrchu ar risg eich hun..."
ADMIN_REPORT_ISSUE: "Canfod problem? Rhowch wybod ar GitHub." ADMIN_REPORT_ISSUE: "Canfod problem? Rhowch wybod ar GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\"> wedi'u pweru gan Grav</a>-ffeil fflat Modern CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\"> wedi'u pweru gan Grav</a>-ffeil fflat Modern CMS"
LOGIN_BTN: "Mewngofnodi" LOGIN_BTN: "Mewngofnodi"
LOGIN_BTN_FORGOT: "Anghofio" LOGIN_BTN_FORGOT: "Anghofio"
LOGIN_BTN_RESET: "Ailosod cyfrinair" LOGIN_BTN_RESET: "Ailosod cyfrinair"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Aktivér JavaScript i din browser." ADMIN_NOSCRIPT_MSG: "Aktivér JavaScript i din browser."
ADMIN_BETA_MSG: "Dette er en beta-udgivelse! Brug i produktionsmiljøer er på egen risiko..." ADMIN_BETA_MSG: "Dette er en beta-udgivelse! Brug i produktionsmiljøer er på egen risiko..."
ADMIN_REPORT_ISSUE: "Har du fundet et problem? Så bedes du rapportere det på GitHub." ADMIN_REPORT_ISSUE: "Har du fundet et problem? Så bedes du rapportere det på GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Drevet af Grav</a> - det moderne fladfil-CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Drevet af Grav</a> - det moderne fladfil-CMS"
LOGIN_BTN: "Login" LOGIN_BTN: "Login"
LOGIN_BTN_FORGOT: "Glemt" LOGIN_BTN_FORGOT: "Glemt"
LOGIN_BTN_RESET: "Nulstil adgangskode" LOGIN_BTN_RESET: "Nulstil adgangskode"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Bitte aktivieren Sie JavaScript in Ihrem Browser." ADMIN_NOSCRIPT_MSG: "Bitte aktivieren Sie JavaScript in Ihrem Browser."
ADMIN_BETA_MSG: "Dies ist eine Beta-Version! Benutzung auf eigene Gefahr..." ADMIN_BETA_MSG: "Dies ist eine Beta-Version! Benutzung auf eigene Gefahr..."
ADMIN_REPORT_ISSUE: "Fehler gefunden? Bitte melden Sie ihn auf GitHub." ADMIN_REPORT_ISSUE: "Fehler gefunden? Bitte melden Sie ihn auf GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\"> Umgesetzt mit Grav</a> - dem modernen Flat-File CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\"> Umgesetzt mit Grav</a> - dem modernen Flat-File CMS"
LOGIN_BTN: "Anmelden" LOGIN_BTN: "Anmelden"
LOGIN_BTN_FORGOT: "Passwort vergessen" LOGIN_BTN_FORGOT: "Passwort vergessen"
LOGIN_BTN_RESET: "Passwort zurücksetzen" LOGIN_BTN_RESET: "Passwort zurücksetzen"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Αυτή είναι δοκιμαστική έκδοση (beta)! Χρησιμοποιήστε την στην παραγωγή με δική σας ευθύνη..." ADMIN_BETA_MSG: "Αυτή είναι δοκιμαστική έκδοση (beta)! Χρησιμοποιήστε την στην παραγωγή με δική σας ευθύνη..."
ADMIN_REPORT_ISSUE: "Βρήκατε κάποιο πρόβλημα; Παρακαλείστε να το αναφέρετε στο GitHub." ADMIN_REPORT_ISSUE: "Βρήκατε κάποιο πρόβλημα; Παρακαλείστε να το αναφέρετε στο GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\"> με την ισχύ του Grav</a> - Το μοντέρνο CMS χωρίς τη χρήση Βάσης Δεδομένων" EMAIL_FOOTER: "<a href=\"https://getgrav.org\"> με την ισχύ του Grav</a> - Το μοντέρνο CMS χωρίς τη χρήση Βάσης Δεδομένων"
LOGIN_BTN: "Σύνδεση" LOGIN_BTN: "Σύνδεση"
LOGIN_BTN_FORGOT: "Το ξέχασα" LOGIN_BTN_FORGOT: "Το ξέχασα"
LOGIN_BTN_RESET: "Επαναφορά συνθηματικού" LOGIN_BTN_RESET: "Επαναφορά συνθηματικού"

View file

@ -2,7 +2,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Please enable JavaScript in your browser." ADMIN_NOSCRIPT_MSG: "Please enable JavaScript in your browser."
ADMIN_BETA_MSG: "This is a Beta release! Use this in production at your own risk..." ADMIN_BETA_MSG: "This is a Beta release! Use this in production at your own risk..."
ADMIN_REPORT_ISSUE: "Found an issue? Please report it on GitHub." ADMIN_REPORT_ISSUE: "Found an issue? Please report it on GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS"
LOGIN_BTN: "Login" LOGIN_BTN: "Login"
LOGIN_BTN_FORGOT: "Forgot" LOGIN_BTN_FORGOT: "Forgot"
LOGIN_BTN_RESET: "Reset Password" LOGIN_BTN_RESET: "Reset Password"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Tio ĉi estas beta-versio! Uzi ĝin en produkta medio estas je via propra risko..." ADMIN_BETA_MSG: "Tio ĉi estas beta-versio! Uzi ĝin en produkta medio estas je via propra risko..."
ADMIN_REPORT_ISSUE: "Ĉu vi trovis problemon? Bonvolu raporti ĝin ĉe GitHub." ADMIN_REPORT_ISSUE: "Ĉu vi trovis problemon? Bonvolu raporti ĝin ĉe GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Povigita de Grav</a> - La moderna platdosiera CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Povigita de Grav</a> - La moderna platdosiera CMS"
LOGIN_BTN: "Ensaluti" LOGIN_BTN: "Ensaluti"
LOGIN_BTN_FORGOT: "Forgesita" LOGIN_BTN_FORGOT: "Forgesita"
LOGIN_BTN_RESET: "Restarigi pasvorton" LOGIN_BTN_RESET: "Restarigi pasvorton"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Por favor, habilita JavaScript en tu navegador." ADMIN_NOSCRIPT_MSG: "Por favor, habilita JavaScript en tu navegador."
ADMIN_BETA_MSG: "¡Ésta es una versión Beta! Utilízala en producción bajo tu propio riesgo..." ADMIN_BETA_MSG: "¡Ésta es una versión Beta! Utilízala en producción bajo tu propio riesgo..."
ADMIN_REPORT_ISSUE: "¿Encontraste algún problema de funcionamiento? Por favor, repórtalo en GitHub." ADMIN_REPORT_ISSUE: "¿Encontraste algún problema de funcionamiento? Por favor, repórtalo en GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Generado con Grav</a> - El CMS moderno de archivos planos" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Generado con Grav</a> - El CMS moderno de archivos planos"
LOGIN_BTN: "Acceder" LOGIN_BTN: "Acceder"
LOGIN_BTN_FORGOT: "La olvidé" LOGIN_BTN_FORGOT: "La olvidé"
LOGIN_BTN_RESET: "Restablecer contraseña" LOGIN_BTN_RESET: "Restablecer contraseña"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Tegemist on beeta-versiooniga! Kasutamine töötaval veebilehel oma vastutusel..." ADMIN_BETA_MSG: "Tegemist on beeta-versiooniga! Kasutamine töötaval veebilehel oma vastutusel..."
ADMIN_REPORT_ISSUE: "Leidsid mõne vea? Palun anna sellest teada GitHub-i vahendusel." ADMIN_REPORT_ISSUE: "Leidsid mõne vea? Palun anna sellest teada GitHub-i vahendusel."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\"> Veebileht kasutab Grav'i</a> - kaasaegset failipõhist CMS-i" EMAIL_FOOTER: "<a href=\"https://getgrav.org\"> Veebileht kasutab Grav'i</a> - kaasaegset failipõhist CMS-i"
LOGIN_BTN: "Logi sisse" LOGIN_BTN: "Logi sisse"
LOGIN_BTN_FORGOT: "Unusta" LOGIN_BTN_FORGOT: "Unusta"
LOGIN_BTN_RESET: "Lähtesta salasõna" LOGIN_BTN_RESET: "Lähtesta salasõna"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Beta bertsio bat da hau! Produkzioan erabili ezazu zure ardurapean..." ADMIN_BETA_MSG: "Beta bertsio bat da hau! Produkzioan erabili ezazu zure ardurapean..."
ADMIN_REPORT_ISSUE: "Arazoren bat topatu duzu? Mesedez, horren berri eman GitHub-en." ADMIN_REPORT_ISSUE: "Arazoren bat topatu duzu? Mesedez, horren berri eman GitHub-en."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Grav-ekin eginda</a> - Fitxategi lauzko CMS modernoa" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Grav-ekin eginda</a> - Fitxategi lauzko CMS modernoa"
LOGIN_BTN: "Sartu" LOGIN_BTN: "Sartu"
LOGIN_BTN_FORGOT: "Ahaztu" LOGIN_BTN_FORGOT: "Ahaztu"
LOGIN_BTN_RESET: "Berrezarri pasahitza" LOGIN_BTN_RESET: "Berrezarri pasahitza"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "لطفاً جاوا اسکریپت را در مرورگرتان فعال کنید." ADMIN_NOSCRIPT_MSG: "لطفاً جاوا اسکریپت را در مرورگرتان فعال کنید."
ADMIN_BETA_MSG: "این یک نسخه تکمیل نشده است! استفاده از آن در محصولتان شمارا با خطر مواجه میکند..." ADMIN_BETA_MSG: "این یک نسخه تکمیل نشده است! استفاده از آن در محصولتان شمارا با خطر مواجه میکند..."
ADMIN_REPORT_ISSUE: "یک مشکل پیدا شد؟ لطفاً آن را در گیت هاب گزارش کنید." ADMIN_REPORT_ISSUE: "یک مشکل پیدا شد؟ لطفاً آن را در گیت هاب گزارش کنید."
EMAIL_FOOTER: "قدرت گرفته از <a href=\"http://getgrav.org\">گراو</a> - سامانه مدیریت محتوی مدرن و بی نیاز به پایگاه داده" EMAIL_FOOTER: "قدرت گرفته از <a href=\"https://getgrav.org\">گراو</a> - سامانه مدیریت محتوی مدرن و بی نیاز به پایگاه داده"
LOGIN_BTN: "ورود" LOGIN_BTN: "ورود"
LOGIN_BTN_FORGOT: "فراموش کرده اید" LOGIN_BTN_FORGOT: "فراموش کرده اید"
LOGIN_BTN_RESET: "تنظیم مجدد رمز عبور" LOGIN_BTN_RESET: "تنظیم مجدد رمز عبور"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Ota JavaScript käyttöön selaimessasi." ADMIN_NOSCRIPT_MSG: "Ota JavaScript käyttöön selaimessasi."
ADMIN_BETA_MSG: "Tämä on beta-versio! Käyttö tuotannossa omalla vastuulla..." ADMIN_BETA_MSG: "Tämä on beta-versio! Käyttö tuotannossa omalla vastuulla..."
ADMIN_REPORT_ISSUE: "Löysitkö virheen tai puutteen? Ilmoita siitä Github-palveluun." ADMIN_REPORT_ISSUE: "Löysitkö virheen tai puutteen? Ilmoita siitä Github-palveluun."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Tehty Gravilla</a> - Moderni Flat File CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Tehty Gravilla</a> - Moderni Flat File CMS"
LOGIN_BTN: "Kirjaudu sisään" LOGIN_BTN: "Kirjaudu sisään"
LOGIN_BTN_FORGOT: "Unohditko" LOGIN_BTN_FORGOT: "Unohditko"
LOGIN_BTN_RESET: "Nollaa salasana" LOGIN_BTN_RESET: "Nollaa salasana"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Veuillez activer JavaScript pour votre navigateur." ADMIN_NOSCRIPT_MSG: "Veuillez activer JavaScript pour votre navigateur."
ADMIN_BETA_MSG: "Ceci est une version bêta ! Utilisez-là en production à vos risques et périls..." 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." ADMIN_REPORT_ISSUE: "Vous avez rencontré une anomalie ? Veuillez la signaler sur GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Propulsé par Grav</a> - Le CMS Moderne sans base de données" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Propulsé par Grav</a> - Le CMS Moderne sans base de données"
LOGIN_BTN: "Connexion" LOGIN_BTN: "Connexion"
LOGIN_BTN_FORGOT: "Mot de passe oublié" LOGIN_BTN_FORGOT: "Mot de passe oublié"
LOGIN_BTN_RESET: "Réinitialiser le mot de passe" LOGIN_BTN_RESET: "Réinitialiser le mot de passe"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Porfavor habilite JavaScript no seu navegador." ADMIN_NOSCRIPT_MSG: "Porfavor habilite JavaScript no seu navegador."
ADMIN_BETA_MSG: "Esta é unha versión beta! Utilícea en produción asumindo o risco..." ADMIN_BETA_MSG: "Esta é unha versión beta! Utilícea en produción asumindo o risco..."
ADMIN_REPORT_ISSUE: "Atopou unha incidencia? Informe dela en GitHub" ADMIN_REPORT_ISSUE: "Atopou unha incidencia? Informe dela en GitHub"
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Xerado con Grav</a> - O CMS moderno sobre ficheiro plano" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Xerado con Grav</a> - O CMS moderno sobre ficheiro plano"
LOGIN_BTN: "Iniciar sesión" LOGIN_BTN: "Iniciar sesión"
LOGIN_BTN_FORGOT: "Esquecido" LOGIN_BTN_FORGOT: "Esquecido"
LOGIN_BTN_RESET: "Restabelecer o contrasinal" LOGIN_BTN_RESET: "Restabelecer o contrasinal"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "זוהי מהדורת ביתא! השימוש על אחריותכם בלבד..." ADMIN_BETA_MSG: "זוהי מהדורת ביתא! השימוש על אחריותכם בלבד..."
ADMIN_REPORT_ISSUE: "GitHub נמצאה בעיה? נא לדווח עליה דרך" ADMIN_REPORT_ISSUE: "GitHub נמצאה בעיה? נא לדווח עליה דרך"
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">אתר זה מופעל על ידי גראב</a> -מערכת ניהול בקובץ שטוח מודרני" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">אתר זה מופעל על ידי גראב</a> -מערכת ניהול בקובץ שטוח מודרני"
LOGIN_BTN: "התחברות" LOGIN_BTN: "התחברות"
LOGIN_BTN_FORGOT: "שכחת" LOGIN_BTN_FORGOT: "שכחת"
LOGIN_BTN_RESET: "איפוס סיסמה" LOGIN_BTN_RESET: "איפוס סיסמה"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Ovo je Beta izdanje! Koristite u produkciji na vlastiti rizik..." ADMIN_BETA_MSG: "Ovo je Beta izdanje! Koristite u produkciji na vlastiti rizik..."
ADMIN_REPORT_ISSUE: "Pronašli ste grešku? Molimo Vas da prijavite na GitHub." ADMIN_REPORT_ISSUE: "Pronašli ste grešku? Molimo Vas da prijavite na GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Pokreće Grav</a> - Moderni Flat File CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Pokreće Grav</a> - Moderni Flat File CMS"
LOGIN_BTN: "Prijava" LOGIN_BTN: "Prijava"
LOGIN_BTN_FORGOT: "Zaboravih" LOGIN_BTN_FORGOT: "Zaboravih"
LOGIN_BTN_RESET: "Resetiraj Lozinku" LOGIN_BTN_RESET: "Resetiraj Lozinku"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Kérjük, engedélyezd a JavaScriptet a böngésződben." ADMIN_NOSCRIPT_MSG: "Kérjük, engedélyezd a JavaScriptet a böngésződben."
ADMIN_BETA_MSG: "Ez egy béta kiadás! Éles környezetben csak saját felelősségre használd..." ADMIN_BETA_MSG: "Ez egy béta kiadás! Éles környezetben csak saját felelősségre használd..."
ADMIN_REPORT_ISSUE: "Találtál egy hibát? Kérlek jelezd a GitHub-on." ADMIN_REPORT_ISSUE: "Találtál egy hibát? Kérlek jelezd a GitHub-on."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Powered by Grav</a> - Egy Modern, File-alapú CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Powered by Grav</a> - Egy Modern, File-alapú CMS"
LOGIN_BTN: "Bejelentkezés" LOGIN_BTN: "Bejelentkezés"
LOGIN_BTN_FORGOT: "Elfelejtettem" LOGIN_BTN_FORGOT: "Elfelejtettem"
LOGIN_BTN_RESET: "Új jelszó" LOGIN_BTN_RESET: "Új jelszó"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Silahkan aktifkan JavaScript di browser Anda." ADMIN_NOSCRIPT_MSG: "Silahkan aktifkan JavaScript di browser Anda."
ADMIN_BETA_MSG: "Ini merupakan rilisan Beta! Gunakan ini di produksi dengan resiko anda sendiri..." ADMIN_BETA_MSG: "Ini merupakan rilisan Beta! Gunakan ini di produksi dengan resiko anda sendiri..."
ADMIN_REPORT_ISSUE: "Menemukan masalah? Harap laporkan di Github." ADMIN_REPORT_ISSUE: "Menemukan masalah? Harap laporkan di Github."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Ditenagai oleh Grav</a> - The Modern Flat File CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Ditenagai oleh Grav</a> - The Modern Flat File CMS"
LOGIN_BTN: "Login" LOGIN_BTN: "Login"
LOGIN_BTN_FORGOT: "Lupa" LOGIN_BTN_FORGOT: "Lupa"
LOGIN_BTN_RESET: "Reset Password" LOGIN_BTN_RESET: "Reset Password"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Per cortesia, abilita JavaScript nel browser." ADMIN_NOSCRIPT_MSG: "Per cortesia, abilita JavaScript nel browser."
ADMIN_BETA_MSG: "Questa è una versione beta! Usare in produzione a proprio rischio e pericolo…" ADMIN_BETA_MSG: "Questa è una versione beta! Usare in produzione a proprio rischio e pericolo…"
ADMIN_REPORT_ISSUE: "Trovato un problema? Per favore, apri un ticket su GitHub" ADMIN_REPORT_ISSUE: "Trovato un problema? Per favore, apri un ticket su GitHub"
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Powered by Grav</a> - Il CMS Flat File e Moderno" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Powered by Grav</a> - Il CMS Flat File e Moderno"
LOGIN_BTN: "Accedi" LOGIN_BTN: "Accedi"
LOGIN_BTN_FORGOT: "Dimenticata" LOGIN_BTN_FORGOT: "Dimenticata"
LOGIN_BTN_RESET: "Ripristina la password" LOGIN_BTN_RESET: "Ripristina la password"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "お使いのブラウザーの JavaScript を有効にしてください。" ADMIN_NOSCRIPT_MSG: "お使いのブラウザーの JavaScript を有効にしてください。"
ADMIN_BETA_MSG: "これはベータリリースです。稼働中サイトでは、自己責任においてご利用ください。" ADMIN_BETA_MSG: "これはベータリリースです。稼働中サイトでは、自己責任においてご利用ください。"
ADMIN_REPORT_ISSUE: "問題を見つけた場合は、GitHub にてご報告をお願いします。" ADMIN_REPORT_ISSUE: "問題を見つけた場合は、GitHub にてご報告をお願いします。"
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS"
LOGIN_BTN: "ログイン" LOGIN_BTN: "ログイン"
LOGIN_BTN_FORGOT: "パスワードを紛失" LOGIN_BTN_FORGOT: "パスワードを紛失"
LOGIN_BTN_RESET: "パスワードをリセット" LOGIN_BTN_RESET: "パスワードをリセット"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "이것은 베타입니다! 개인적으로 사용할시 위험할수있습니다..." ADMIN_BETA_MSG: "이것은 베타입니다! 개인적으로 사용할시 위험할수있습니다..."
ADMIN_REPORT_ISSUE: "문제가 있습니까? GitHub에 신고해주세요." ADMIN_REPORT_ISSUE: "문제가 있습니까? GitHub에 신고해주세요."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\"> Grav에 의해 구동</a>-현대 플랫 파일 CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\"> Grav에 의해 구동</a>-현대 플랫 파일 CMS"
LOGIN_BTN: "로그인" LOGIN_BTN: "로그인"
LOGIN_BTN_FORGOT: "잃어버림" LOGIN_BTN_FORGOT: "잃어버림"
LOGIN_BTN_RESET: "비밀번호 초기화" LOGIN_BTN_RESET: "비밀번호 초기화"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Tai Grav administravimo įskiepio beta versija! Naudokite atsargiai..." ADMIN_BETA_MSG: "Tai Grav administravimo įskiepio beta versija! Naudokite atsargiai..."
ADMIN_REPORT_ISSUE: "Radote klaidą? Prašome pranešti apie ją GitHub platformoje." ADMIN_REPORT_ISSUE: "Radote klaidą? Prašome pranešti apie ją GitHub platformoje."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Naudojama Grav</a> - Moderni TVS, nenaudojanti duomenų bazės" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Naudojama Grav</a> - Moderni TVS, nenaudojanti duomenų bazės"
LOGIN_BTN: "Prisijungti" LOGIN_BTN: "Prisijungti"
LOGIN_BTN_FORGOT: "Pamiršau" LOGIN_BTN_FORGOT: "Pamiršau"
LOGIN_BTN_RESET: "Atstatyti slaptažodį" LOGIN_BTN_RESET: "Atstatyti slaptažodį"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Хөтөч дээрээ JavaScript-ийг идэвхжүүлнэ үү." ADMIN_NOSCRIPT_MSG: "Хөтөч дээрээ JavaScript-ийг идэвхжүүлнэ үү."
ADMIN_BETA_MSG: "Энэ нь туршилтийн хувилбар шүү! Тиймээс ашиглалт нь таны өөрийн эрсдэлийн асуудал..." ADMIN_BETA_MSG: "Энэ нь туршилтийн хувилбар шүү! Тиймээс ашиглалт нь таны өөрийн эрсдэлийн асуудал..."
ADMIN_REPORT_ISSUE: "Алдаа олсон уу? Та ийшээ GitHub -д орж мэдэгдэнэ үү." ADMIN_REPORT_ISSUE: "Алдаа олсон уу? Та ийшээ GitHub -д орж мэдэгдэнэ үү."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Grav -ын тусламжаар</a> - Орчин үеийн текст файл CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Grav -ын тусламжаар</a> - Орчин үеийн текст файл CMS"
LOGIN_BTN: "Нэвтрэх" LOGIN_BTN: "Нэвтрэх"
LOGIN_BTN_FORGOT: "Мартсан" LOGIN_BTN_FORGOT: "Мартсан"
LOGIN_BTN_RESET: "Нууц үгийг өөрчлөх" LOGIN_BTN_RESET: "Нууц үгийг өөрчлөх"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Dette er en betaversjon! Bruk denne i produksjon på egen risiko..." ADMIN_BETA_MSG: "Dette er en betaversjon! Bruk denne i produksjon på egen risiko..."
ADMIN_REPORT_ISSUE: "Oppdaget et problem? Vennligst rapport det på GitHub." ADMIN_REPORT_ISSUE: "Oppdaget et problem? Vennligst rapport det på GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Drevet av Grav</a> - Det moderne flat file CMSet" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Drevet av Grav</a> - Det moderne flat file CMSet"
LOGIN_BTN: "Logg inn" LOGIN_BTN: "Logg inn"
LOGIN_BTN_FORGOT: "Glemt" LOGIN_BTN_FORGOT: "Glemt"
LOGIN_BTN_RESET: "Nullstill passord" LOGIN_BTN_RESET: "Nullstill passord"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Proszę, włącz JavaScript w przeglądarce." ADMIN_NOSCRIPT_MSG: "Proszę, włącz JavaScript w przeglądarce."
ADMIN_BETA_MSG: "To jest wersja Beta! Używasz tego w produkcji na własne ryzyko..." ADMIN_BETA_MSG: "To jest wersja Beta! Używasz tego w produkcji na własne ryzyko..."
ADMIN_REPORT_ISSUE: "Znalazłeś błąd? Zgłoś to na GitHub." ADMIN_REPORT_ISSUE: "Znalazłeś błąd? Zgłoś to na GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS"
LOGIN_BTN: "Zaloguj" LOGIN_BTN: "Zaloguj"
LOGIN_BTN_FORGOT: "Zapomniałem" LOGIN_BTN_FORGOT: "Zapomniałem"
LOGIN_BTN_RESET: "Zresetuj hasło" LOGIN_BTN_RESET: "Zresetuj hasło"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Por favor, ative o JavaScript no seu navegador." ADMIN_NOSCRIPT_MSG: "Por favor, ative o JavaScript no seu navegador."
ADMIN_BETA_MSG: "Esta é uma versão Beta! Usa-a em produção à tua responsabilidade..." ADMIN_BETA_MSG: "Esta é uma versão Beta! Usa-a em produção à tua responsabilidade..."
ADMIN_REPORT_ISSUE: "Encontrou um problema? Por favor reporte-o no GitHub." ADMIN_REPORT_ISSUE: "Encontrou um problema? Por favor reporte-o no GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\"> Gerado por Grav</a> - O moderno CMS de ficheiros simples" EMAIL_FOOTER: "<a href=\"https://getgrav.org\"> Gerado por Grav</a> - O moderno CMS de ficheiros simples"
LOGIN_BTN: "Entrar" LOGIN_BTN: "Entrar"
LOGIN_BTN_FORGOT: "Esqueci-me" LOGIN_BTN_FORGOT: "Esqueci-me"
LOGIN_BTN_RESET: "Repôr Palavra-passe" LOGIN_BTN_RESET: "Repôr Palavra-passe"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Vă rugăm să activați JavaScript în browser-ul dvs." ADMIN_NOSCRIPT_MSG: "Vă rugăm să activați JavaScript în browser-ul dvs."
ADMIN_BETA_MSG: "Aceasta este o versiune Beta! Folosiți-o pe propiul risc..." ADMIN_BETA_MSG: "Aceasta este o versiune Beta! Folosiți-o pe propiul risc..."
ADMIN_REPORT_ISSUE: "Ați găsit o problemă? Raportați-o pe Github." ADMIN_REPORT_ISSUE: "Ați găsit o problemă? Raportați-o pe Github."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Construit cu Grav</a> - CMS modern" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Construit cu Grav</a> - CMS modern"
LOGIN_BTN: "Logare" LOGIN_BTN: "Logare"
LOGIN_BTN_FORGOT: "Ai uitat?" LOGIN_BTN_FORGOT: "Ai uitat?"
LOGIN_BTN_RESET: "Resetarea parolei" LOGIN_BTN_RESET: "Resetarea parolei"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Toto je Beta verzia! Používajte v ostrej prevádzke na vlastné riziko..." ADMIN_BETA_MSG: "Toto je Beta verzia! Používajte v ostrej prevádzke na vlastné riziko..."
ADMIN_REPORT_ISSUE: "Vyskytla sa chyba? Prosím, nahláste to na GitHub." ADMIN_REPORT_ISSUE: "Vyskytla sa chyba? Prosím, nahláste to na GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Poháňaný Grav-om</a> - moderný flat-file redakčný systém" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Poháňaný Grav-om</a> - moderný flat-file redakčný systém"
LOGIN_BTN: "Prihlásiť sa" LOGIN_BTN: "Prihlásiť sa"
LOGIN_BTN_FORGOT: "Zabudli ste meno/heslo" LOGIN_BTN_FORGOT: "Zabudli ste meno/heslo"
LOGIN_BTN_RESET: "Obnoviť heslo" LOGIN_BTN_RESET: "Obnoviť heslo"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Ово је Бета издање! Користите га у раду на сопствену одговорност..." ADMIN_BETA_MSG: "Ово је Бета издање! Користите га у раду на сопствену одговорност..."
ADMIN_REPORT_ISSUE: "Пронашли сте грешку? Пријавите је на GitHub." ADMIN_REPORT_ISSUE: "Пронашли сте грешку? Пријавите је на GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Покреће се са Grav-ом</a> - Модерним Flat File CMS-ом" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Покреће се са Grav-ом</a> - Модерним Flat File CMS-ом"
LOGIN_BTN: "Пријава" LOGIN_BTN: "Пријава"
LOGIN_BTN_FORGOT: "Заборавили сте" LOGIN_BTN_FORGOT: "Заборавили сте"
LOGIN_BTN_RESET: "Ресетуј лозинку" LOGIN_BTN_RESET: "Ресетуј лозинку"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Detta är en betaversion! Använd i produktion på egen risk..." ADMIN_BETA_MSG: "Detta är en betaversion! Använd i produktion på egen risk..."
ADMIN_REPORT_ISSUE: "Hittat ett fel? Vänligen rapportera det på GitHub." ADMIN_REPORT_ISSUE: "Hittat ett fel? Vänligen rapportera det på GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS"
LOGIN_BTN: "Logga in" LOGIN_BTN: "Logga in"
LOGIN_BTN_FORGOT: "Glömt" LOGIN_BTN_FORGOT: "Glömt"
LOGIN_BTN_RESET: "Återställ Lösenord" LOGIN_BTN_RESET: "Återställ Lösenord"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "นี่เป็นรุ่นทดลอง หากคุณใช้บนเว็บจริงคุณต้องยอมรับในความเสี่ยงนั้นเอง" ADMIN_BETA_MSG: "นี่เป็นรุ่นทดลอง หากคุณใช้บนเว็บจริงคุณต้องยอมรับในความเสี่ยงนั้นเอง"
ADMIN_REPORT_ISSUE: "พบปัญหา กรุณารายงานบน GitHub" ADMIN_REPORT_ISSUE: "พบปัญหา กรุณารายงานบน GitHub"
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">ขับเคลื่อนด้วย Grav</a> - The Modern Flat File CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">ขับเคลื่อนด้วย Grav</a> - The Modern Flat File CMS"
LOGIN_BTN: "เข้าสู่ระบบ" LOGIN_BTN: "เข้าสู่ระบบ"
LOGIN_BTN_FORGOT: "ลืมรหัสผ่าน" LOGIN_BTN_FORGOT: "ลืมรหัสผ่าน"
LOGIN_BTN_RESET: "กำหนดรหัสผ่านใหม่" LOGIN_BTN_RESET: "กำหนดรหัสผ่านใหม่"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Lütfen tarayıcınızda Javascript aktive edin." ADMIN_NOSCRIPT_MSG: "Lütfen tarayıcınızda Javascript aktive edin."
ADMIN_BETA_MSG: "Bu bir beta sürümüdür! Sunucunuzda kullanmak sizin sorumluluğunuzdadır..." ADMIN_BETA_MSG: "Bu bir beta sürümüdür! Sunucunuzda kullanmak sizin sorumluluğunuzdadır..."
ADMIN_REPORT_ISSUE: "Hata mı var? Lütfen GitHub aracılığıyla bildirin." ADMIN_REPORT_ISSUE: "Hata mı var? Lütfen GitHub aracılığıyla bildirin."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Grav ile güçlendirilmiştir</a> - Modern Düz Dosya CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Grav ile güçlendirilmiştir</a> - Modern Düz Dosya CMS"
LOGIN_BTN: "Giriş" LOGIN_BTN: "Giriş"
LOGIN_BTN_FORGOT: "Şifremi Unuttum" LOGIN_BTN_FORGOT: "Şifremi Unuttum"
LOGIN_BTN_RESET: "Şifreni Sıfırla" LOGIN_BTN_RESET: "Şifreni Sıfırla"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "Будь ласка, увімкніть JavaScript у Вашому браузері." ADMIN_NOSCRIPT_MSG: "Будь ласка, увімкніть JavaScript у Вашому браузері."
ADMIN_BETA_MSG: "Це бета-реліз! Використовуйте його на продуктовому сервері на свій страх і ризик..." ADMIN_BETA_MSG: "Це бета-реліз! Використовуйте його на продуктовому сервері на свій страх і ризик..."
ADMIN_REPORT_ISSUE: "Виявила проблему? Будь ласка, повідомте про це на GitHub." ADMIN_REPORT_ISSUE: "Виявила проблему? Будь ласка, повідомте про це на GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Працює на Grav</a> - сучасна файлова CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Працює на Grav</a> - сучасна файлова CMS"
LOGIN_BTN: "Увійти" LOGIN_BTN: "Увійти"
LOGIN_BTN_FORGOT: "Забув" LOGIN_BTN_FORGOT: "Забув"
LOGIN_BTN_RESET: "Скинути пароль" LOGIN_BTN_RESET: "Скинути пароль"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "Đây là phiên bản thử nghiệm! Bạn phải tự chịu rủi ro khi sử dụng trong production..." ADMIN_BETA_MSG: "Đây là phiên bản thử nghiệm! Bạn phải tự chịu rủi ro khi sử dụng trong production..."
ADMIN_REPORT_ISSUE: "Tìm thấy một lỗi? Xin vui lòng báo cáo trên GitHub." ADMIN_REPORT_ISSUE: "Tìm thấy một lỗi? Xin vui lòng báo cáo trên GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Cung cấp bởi Grav</a> - The Modern Flat File CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">Cung cấp bởi Grav</a> - The Modern Flat File CMS"
LOGIN_BTN: "Đăng nhập" LOGIN_BTN: "Đăng nhập"
LOGIN_BTN_FORGOT: "Quên" LOGIN_BTN_FORGOT: "Quên"
LOGIN_BTN_RESET: "Đặt lại mật khẩu" LOGIN_BTN_RESET: "Đặt lại mật khẩu"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "请在您的浏览器中启用 JavaScript。" ADMIN_NOSCRIPT_MSG: "请在您的浏览器中启用 JavaScript。"
ADMIN_BETA_MSG: "这是一个 Beta 版本!若在生产环境中使用,请自行承担责任。" ADMIN_BETA_MSG: "这是一个 Beta 版本!若在生产环境中使用,请自行承担责任。"
ADMIN_REPORT_ISSUE: "遇到问题?请提交到 GitHub。" ADMIN_REPORT_ISSUE: "遇到问题?请提交到 GitHub。"
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">由 Grav 驱动</a> - 先进的纯文件 CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">由 Grav 驱动</a> - 先进的纯文件 CMS"
LOGIN_BTN: "登录" LOGIN_BTN: "登录"
LOGIN_BTN_FORGOT: "忘记密码" LOGIN_BTN_FORGOT: "忘记密码"
LOGIN_BTN_RESET: "重置密码" LOGIN_BTN_RESET: "重置密码"

View file

@ -2,7 +2,7 @@
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "這是 Beta 版!如果要用在營運中請自行承擔風險…" ADMIN_BETA_MSG: "這是 Beta 版!如果要用在營運中請自行承擔風險…"
ADMIN_REPORT_ISSUE: "發現有問題?請回報到 GitHub 上。" ADMIN_REPORT_ISSUE: "發現有問題?請回報到 GitHub 上。"
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">由 Grav 提供技術驅動</a> - 現代純文字檔案管理系統" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">由 Grav 提供技術驅動</a> - 現代純文字檔案管理系統"
LOGIN_BTN: "登入" LOGIN_BTN: "登入"
LOGIN_BTN_FORGOT: "忘記密碼" LOGIN_BTN_FORGOT: "忘記密碼"
LOGIN_BTN_RESET: "重設密碼" LOGIN_BTN_RESET: "重設密碼"

View file

@ -3,7 +3,7 @@ PLUGIN_ADMIN:
ADMIN_NOSCRIPT_MSG: "请在您的浏览器中启用 JavaScript。" ADMIN_NOSCRIPT_MSG: "请在您的浏览器中启用 JavaScript。"
ADMIN_BETA_MSG: "这是一个 Beta 版本!若在生产环境中使用,请自行承担责任。" ADMIN_BETA_MSG: "这是一个 Beta 版本!若在生产环境中使用,请自行承担责任。"
ADMIN_REPORT_ISSUE: "遇到问题?请提交到 GitHub。" ADMIN_REPORT_ISSUE: "遇到问题?请提交到 GitHub。"
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">由 Grav 驱动</a> - 先进的纯文件 CMS" EMAIL_FOOTER: "<a href=\"https://getgrav.org\">由 Grav 驱动</a> - 先进的纯文件 CMS"
LOGIN_BTN: "登录" LOGIN_BTN: "登录"
LOGIN_BTN_FORGOT: "忘记密码" LOGIN_BTN_FORGOT: "忘记密码"
LOGIN_BTN_RESET: "重置密码" LOGIN_BTN_RESET: "重置密码"

View file

@ -0,0 +1 @@
node_modules/

View file

@ -6,8 +6,15 @@ export default class CollectionsField {
constructor() { constructor() {
this.lists = $(); this.lists = $();
const body = $('body');
$('[data-type="collection"]').each((index, list) => this.addList(list)); $('[data-type="collection"]').each((index, list) => this.addList(list));
$('body').on('mutation._grav', this._onAddedNodes.bind(this)); body.on('mutation._grav', this._onAddedNodes.bind(this));
body.on('click', (event) => {
const target = $(event.target);
if (!(target.is('[data-action="confirm"], [data-action="delete"]') || target.closest('[data-action="confirm"], [data-action="delete"]').length)) {
CollectionsField.closeConfirmations();
}
});
} }
@ -16,6 +23,7 @@ export default class CollectionsField {
this.lists = this.lists.add(list); this.lists = this.lists.add(list);
list.on('click', '> .collection-actions [data-action="add"]', (event) => this.addItem(event)); list.on('click', '> .collection-actions [data-action="add"]', (event) => this.addItem(event));
list.on('click', '> ul > li > .item-actions [data-action="confirm"]', (event) => this.confirmRemove(event));
list.on('click', '> ul > li > .item-actions [data-action="delete"]', (event) => this.removeItem(event)); list.on('click', '> ul > li > .item-actions [data-action="delete"]', (event) => this.removeItem(event));
list.on('click', '> ul > li > .item-actions [data-action="collapse"]', (event) => this.collapseItem(event)); list.on('click', '> ul > li > .item-actions [data-action="collapse"]', (event) => this.collapseItem(event));
list.on('click', '> ul > li > .item-actions [data-action="expand"]', (event) => this.expandItem(event)); list.on('click', '> ul > li > .item-actions [data-action="expand"]', (event) => this.expandItem(event));
@ -26,7 +34,9 @@ export default class CollectionsField {
list.find('[data-collection-holder]').each((index, container) => { list.find('[data-collection-holder]').each((index, container) => {
container = $(container); container = $(container);
if (container.data('collection-sort') || container[0].hasAttribute('data-collection-nosort')) { return; } if (container.data('collection-sort') || container[0].hasAttribute('data-collection-nosort')) {
return;
}
container.data('collection-sort', new Sortable(container.get(0), { container.data('collection-sort', new Sortable(container.get(0), {
forceFallback: false, forceFallback: false,
@ -52,7 +62,9 @@ export default class CollectionsField {
return; return;
} }
list.find('> [data-collection-holder]')[position === 'top' ? 'prepend' : 'append'](template); list.find('> [data-collection-holder]')[position === 'top'
? 'prepend'
: 'append'](template);
this.reindex(list); this.reindex(list);
items = list.closest('[data-type="collection"]').find('> ul > [data-collection-item]'); items = list.closest('[data-type="collection"]').find('> ul > [data-collection-item]');
@ -60,14 +72,33 @@ export default class CollectionsField {
let sortAction = list.closest('[data-type="collection"]').find('[data-action="sort"]'); let sortAction = list.closest('[data-type="collection"]').find('[data-action="sort"]');
if (items.length) { if (items.length) {
if (topAction.length) { topAction.parent().removeClass('hidden'); } if (topAction.length) {
if (sortAction.length && items.length > 1) { sortAction.removeClass('hidden'); } topAction.parent().removeClass('hidden');
}
if (sortAction.length && items.length > 1) {
sortAction.removeClass('hidden');
}
} }
// refresh toggleables in a list // refresh toggleables in a list
$('[data-grav-field="toggleable"] input[type="checkbox"]').trigger('change'); $('[data-grav-field="toggleable"] input[type="checkbox"]').trigger('change');
} }
static closeConfirmations() {
$('.list-confirm-deletion[data-action="delete"]').addClass('hidden');
}
confirmRemove(event) {
const button = $(event.currentTarget);
const list = $(button.closest('.item-actions'));
const action = list.find('.list-confirm-deletion[data-action="delete"]');
const isHidden = action.hasClass('hidden');
CollectionsField.closeConfirmations();
action[isHidden ? 'removeClass' : 'addClass']('hidden');
}
removeItem(event) { removeItem(event) {
let button = $(event.currentTarget); let button = $(event.currentTarget);
let item = button.closest('[data-collection-item]'); let item = button.closest('[data-collection-item]');
@ -88,10 +119,14 @@ export default class CollectionsField {
let sortAction = list.closest('[data-type="collection"]').find('[data-action="sort"]'); let sortAction = list.closest('[data-type="collection"]').find('[data-action="sort"]');
if (!items.length) { if (!items.length) {
if (topAction.length) { topAction.parent().addClass('hidden'); } if (topAction.length) {
topAction.parent().addClass('hidden');
}
} }
if (sortAction.length && items.length <= 1) { sortAction.addClass('hidden'); } if (sortAction.length && items.length <= 1) {
sortAction.addClass('hidden');
}
this._updateActionsStateBasedOnMinMax(list); this._updateActionsStateBasedOnMinMax(list);
} }
@ -138,9 +173,17 @@ export default class CollectionsField {
let sort; let sort;
if (sortby_dir === 'asc') { if (sortby_dir === 'asc') {
sort = (A.val() < B.val()) ? -1 : (A.val() > B.val()) ? 1 : 0; sort = (A.val() < B.val())
? -1
: (A.val() > B.val())
? 1
: 0;
} else { } else {
sort = (A.val() > B.val()) ? -1 : (A.val() < B.val()) ? 1 : 0; sort = (A.val() > B.val())
? -1
: (A.val() < B.val())
? 1
: 0;
} }
return sort; return sort;
@ -171,7 +214,9 @@ export default class CollectionsField {
let hasCustomKey = observed.length; let hasCustomKey = observed.length;
let currentKey = item.data('collection-key-backup'); let currentKey = item.data('collection-key-backup');
item.attr('data-collection-key', hasCustomKey ? observedValue : index); item.attr('data-collection-key', hasCustomKey
? observedValue
: index);
['name', 'data-grav-field-name', 'for', 'id', 'data-grav-file-settings', 'data-file-post-add', 'data-file-post-remove', 'data-grav-array-name'].forEach((prop) => { ['name', 'data-grav-field-name', 'for', 'id', 'data-grav-file-settings', 'data-file-post-add', 'data-file-post-remove', 'data-grav-array-name'].forEach((prop) => {
item.find('[' + prop + '], [_' + prop + ']').each(function() { item.find('[' + prop + '], [_' + prop + ']').each(function() {
@ -211,7 +256,10 @@ export default class CollectionsField {
let matchedKey = currentKey; let matchedKey = currentKey;
let replaced = element.attr(prop).replace(regexps[0], (/* str, p1, offset */) => { let replaced = element.attr(prop).replace(regexps[0], (/* str, p1, offset */) => {
let extras = ''; let extras = '';
if (array_index) { extras = array_index; console.log(indexes, extras); } if (array_index) {
extras = array_index;
console.log(indexes, extras);
}
matchedKey = indexes.shift() || matchedKey; matchedKey = indexes.shift() || matchedKey;
return `[${matchedKey}]${extras}`; return `[${matchedKey}]${extras}`;
@ -230,7 +278,9 @@ export default class CollectionsField {
_onAddedNodes(event, target/* , record, instance */) { _onAddedNodes(event, target/* , record, instance */) {
let collections = $(target).find('[data-type="collection"]'); let collections = $(target).find('[data-type="collection"]');
if (!collections.length) { return; } if (!collections.length) {
return;
}
collections.each((index, collection) => { collections.each((index, collection) => {
collection = $(collection); collection = $(collection);

View file

@ -83,6 +83,11 @@ const ACCEPT_FUNC = function(file, done, settings) {
const hasMax = (resolution.max && (resolution.max.width || resolution.max.height)); const hasMax = (resolution.max && (resolution.max.width || resolution.max.height));
if (hasMin || (!(settings.resizeWidth || settings.resizeHeight) && hasMax)) { if (hasMin || (!(settings.resizeWidth || settings.resizeHeight) && hasMax)) {
reader.onload = function(event) { reader.onload = function(event) {
if (!/image\//.test(file.type)) {
done();
return;
}
const image = new Image(); const image = new Image();
image.src = event.target.result; image.src = event.target.result;
image.onerror = function() { image.onerror = function() {
@ -139,6 +144,7 @@ export default class FilesField {
this.dropzone = new Dropzone(container, this.options); this.dropzone = new Dropzone(container, this.options);
this.dropzone.on('complete', this.onDropzoneComplete.bind(this)); this.dropzone.on('complete', this.onDropzoneComplete.bind(this));
this.dropzone.on('success', this.onDropzoneSuccess.bind(this)); this.dropzone.on('success', this.onDropzoneSuccess.bind(this));
this.dropzone.on('addedfile', this.onDropzoneAddedFile.bind(this));
this.dropzone.on('removedfile', this.onDropzoneRemovedFile.bind(this)); this.dropzone.on('removedfile', this.onDropzoneRemovedFile.bind(this));
this.dropzone.on('sending', this.onDropzoneSending.bind(this)); this.dropzone.on('sending', this.onDropzoneSending.bind(this));
this.dropzone.on('error', this.onDropzoneError.bind(this)); this.dropzone.on('error', this.onDropzoneError.bind(this));
@ -255,6 +261,10 @@ export default class FilesField {
return decodeURIComponent(escape(window.atob(str))); return decodeURIComponent(escape(window.atob(str)));
} }
onDropzoneAddedFile(file, ...extra) {
return this.dropzone.options.addedfile(file);
}
onDropzoneRemovedFile(file, ...extra) { onDropzoneRemovedFile(file, ...extra) {
if (!file.accepted || file.rejected) { return; } if (!file.accepted || file.rejected) { return; }
let url = file.removeUrl || this.urls.delete || this.options.url; let url = file.removeUrl || this.urls.delete || this.options.url;

View file

@ -3,7 +3,7 @@ import '@babel/polyfill';
import $ from 'jquery'; import $ from 'jquery';
import './utils/remodal'; import './utils/remodal';
import 'simplebar'; import 'simplebar/dist/simplebar.min.js';
import GPM, { Instance as gpm } from './utils/gpm'; import GPM, { Instance as gpm } from './utils/gpm';
import KeepAlive from './utils/keepalive'; import KeepAlive from './utils/keepalive';
import Updates, { Instance as updates, Notifications, Feed } from './updates'; import Updates, { Instance as updates, Notifications, Feed } from './updates';

View file

@ -43,7 +43,9 @@ folder.on('input', (event) => {
}); });
folder.on('focus blur', (event) => getFields('title', event.currentTarget).title.trigger('input')); folder.on('focus blur', (event) => {
getFields('title').title.trigger('input');
});
$(document).on('change', '[name="data[route]"]', (event) => { $(document).on('change', '[name="data[route]"]', (event) => {
const rawroute = $(event.currentTarget).val(); const rawroute = $(event.currentTarget).val();

View file

@ -1,4 +1,5 @@
import $ from 'jquery'; import $ from 'jquery';
import Cookies from '../../utils/cookies.js';
import request from '../../utils/request'; import request from '../../utils/request';
import FilesField, { UriToMarkdown } from '../../forms/fields/files'; import FilesField, { UriToMarkdown } from '../../forms/fields/files';
import { config, translations } from 'grav-config'; import { config, translations } from 'grav-config';
@ -90,6 +91,7 @@ export default class PageMedia extends FilesField {
this.dropzone.options.thumbnail.call(this.dropzone, mock, data.url); this.dropzone.options.thumbnail.call(this.dropzone, mock, data.url);
}); });
this.updateThumbsSize();
this.container.find('.dz-preview').prop('draggable', 'true'); this.container.find('.dz-preview').prop('draggable', 'true');
}); });
} }
@ -113,16 +115,40 @@ export default class PageMedia extends FilesField {
} }
// accepted // accepted
this.updateThumbsSize();
this.updateMediaCount();
$('.dz-preview').prop('draggable', 'true'); $('.dz-preview').prop('draggable', 'true');
} }
onDropzoneAddedFile(file, ...extra) {
super.onDropzoneAddedFile(file, extra);
this.updateThumbsSize();
}
onDropzoneRemovedFile(file, ...extra) { onDropzoneRemovedFile(file, ...extra) {
super.onDropzoneRemovedFile(file, ...extra); super.onDropzoneRemovedFile(file, ...extra);
this.updateMediaCount();
if (this.sortable) { if (this.sortable) {
this.sortable.options.onSort(); this.sortable.options.onSort();
} }
} }
updateThumbsSize() {
const status = JSON.parse(Cookies.get('grav-admin-pagemedia') || '{}');
if (status.width) {
const input = this.container.closest('.pagemedia-field').find('.media-resizer');
updateMediaSizes(input, status.width, false);
}
}
updateMediaCount() {
const element = this.container.closest('.pagemedia-field').find('[data-pagemedia-count]');
element.text(`(${this.dropzone.files.length})`);
}
attachDragDrop() { attachDragDrop() {
this.container.delegate('[data-dz-insert]', 'click', (e) => { this.container.delegate('[data-dz-insert]', 'click', (e) => {
let target = $(e.currentTarget).parent('.dz-preview').find('.dz-filename'); let target = $(e.currentTarget).parent('.dz-preview').find('.dz-filename');
@ -204,4 +230,61 @@ export default class PageMedia extends FilesField {
} }
} }
export const updateMediaSizes = (input, width, store = true) => {
const status = JSON.parse(Cookies.get('grav-admin-pagemedia') || '{}');
const height = 150 * width / 200;
const media = input.closest('.pagemedia-field').find('.dz-details, [data-dz-thumbnail]');
media.css({ width, height });
if (store) {
const data = Object.assign({}, status, { width });
Cookies.set('grav-admin-pagemedia', JSON.stringify(data), { expires: Infinity });
}
};
export const updateMediaCollapseStatus = (element, store = true) => {
const status = JSON.parse(Cookies.get('grav-admin-pagemedia') || '{}');
element = $(element);
const icon = element.find('i.fa');
const container = element.closest('.pagemedia-field');
const panel = container.find('.form-data');
const slider = container.find('.media-resizer').parent();
const isCollapsed = !icon.hasClass('fa-chevron-down');
const collapsed = !isCollapsed;
icon.removeClass('fa-chevron-down fa-chevron-right').addClass(isCollapsed ? 'fa-chevron-down' : 'fa-chevron-right');
slider[isCollapsed ? 'removeClass' : 'addClass']('hidden');
panel[isCollapsed ? 'slideDown' : 'slideUp']();
if (store) {
const data = Object.assign({}, status, { collapsed });
Cookies.set('grav-admin-pagemedia', JSON.stringify(data), { expires: Infinity });
}
};
$(document).on('input', '.media-resizer', (event) => {
const target = $(event.currentTarget);
const width = target.val();
updateMediaSizes(target, width);
});
$(document).on('click', '.media-collapser', (event) => {
updateMediaCollapseStatus(event.currentTarget);
});
$(document).ready(() => {
const status = JSON.parse(Cookies.get('grav-admin-pagemedia') || '{}');
if (status.width) {
$('.media-resizer').each((index, input) => {
input = $(input);
updateMediaSizes(input, status.width, false);
});
}
});
export let Instance = new PageMedia(); export let Instance = new PageMedia();

View file

@ -2,12 +2,12 @@ import $ from 'jquery';
import { config, translations } from 'grav-config'; import { config, translations } from 'grav-config';
import request from '../utils/request'; import request from '../utils/request';
import { Instance as gpm } from '../utils/gpm'; import { Instance as gpm } from '../utils/gpm';
import { Promise } from 'es6-promise';
class Sorter { class Sorter {
getElements(elements, container) { getElements(elements, container) {
this.elements = elements || $('[data-gpm-plugin], [data-gpm-theme]'); this.elements = elements || document.querySelectorAll('[data-gpm-plugin], [data-gpm-theme]');
this.container = container || $('.gpm-plugins > table > tbody, .gpm-themes > .themes.card-row'); this.container = container || document.querySelector('.gpm-plugins > table > tbody, .gpm-themes > .themes.card-row');
return this.elements; return this.elements;
} }
@ -19,50 +19,78 @@ class Sorter {
} }
byCommon(direction = 'asc', data = '') { byCommon(direction = 'asc', data = '') {
let elements = this.getElements().sort((a, b) => { const elements = this.getElements();
let A = $(a).data(data).toString().toLowerCase(); this.removeGumroad();
let B = $(b).data(data).toString().toLowerCase();
Array.from(elements).sort((a, b) => {
let A = a.dataset[data].toString().toLowerCase();
let B = b.dataset[data].toString().toLowerCase();
return Sorter.sort(A, B, direction); return Sorter.sort(A, B, direction);
}).forEach((element) => {
this.container.appendChild(element);
}); });
return elements.appendTo(this.container); this.addGumroad();
return this.container;
} }
byName(direction = 'asc', data = 'gpm-name') { byName(direction = 'asc', data = 'gpmName') {
return this.byCommon(direction, data); return this.byCommon(direction, data);
} }
byAuthor(direction = 'asc', data = 'gpm-author') { byAuthor(direction = 'asc', data = 'gpmAuthor') {
return this.byCommon(direction, data); return this.byCommon(direction, data);
} }
byOfficial(direction = 'asc', data = 'gpm-official') { byOfficial(direction = 'asc', data = 'gpmOfficial') {
return this.byCommon(direction, data); return this.byCommon(direction, data);
} }
byReleaseDate(direction = 'asc', data = 'gpm-release-date') { byPremium(direction = 'asc', data = 'gpmPremium') {
let elements = this.getElements().sort((a, b) => { return this.byCommon(direction, data);
let A = new Date($(a).data(data)).getTime(); }
let B = new Date($(b).data(data)).getTime();
byReleaseDate(direction = 'asc', data = 'gpmReleaseDate') {
const elements = this.getElements();
this.removeGumroad();
Array.from(elements).sort((a, b) => {
let A = new Date(a.dataset[data]).getTime();
let B = new Date(b.dataset[data]).getTime();
return Sorter.sort(A, B, direction === 'asc' ? 'desc' : 'asc'); return Sorter.sort(A, B, direction === 'asc' ? 'desc' : 'asc');
}).forEach((element) => {
this.container.appendChild(element);
}); });
elements.appendTo(this.container); this.addGumroad();
return this.container;
} }
byUpdatable(direction = 'asc', data = 'gpm-updatable') { byUpdatable(direction = 'asc', data = 'gpmUpdatable') {
return this.byCommon(direction, data); return this.byCommon(direction, data);
} }
byEnabled(direction = 'asc', data = 'gpm-enabled') { byEnabled(direction = 'asc', data = 'gpmEnabled') {
return this.byCommon(direction, data); return this.byCommon(direction, data);
} }
byTesting(direction = 'asc', data = 'gpm-testing') { byTesting(direction = 'asc', data = 'gpmTesting') {
return this.byCommon(direction, data); return this.byCommon(direction, data);
} }
addGumroad() {
if (window.GumroadOverlay) {
window.GumroadOverlay.startNodeAdditionObserver();
}
}
removeGumroad() {
if (window.GumroadOverlay) {
window.GumroadOverlay.nodeAdditionObserver.disconnect();
}
}
} }
class Packages { class Packages {
@ -279,8 +307,8 @@ class Packages {
installPackages(type, slugs, callbackSuccess) { installPackages(type, slugs, callbackSuccess) {
let url = Packages.getInstallPackageUrl(type); let url = Packages.getInstallPackageUrl(type);
Promise.all(slugs.map((slug) => { global.Promise.all(slugs.map((slug) => {
return new Promise((resolve, reject) => { return new global.Promise((resolve, reject) => {
request(url, { request(url, {
method: 'post', method: 'post',
body: { body: {

View file

@ -1 +0,0 @@
import 'simplebar';

View file

@ -1,5 +1,4 @@
import $ from 'jquery'; import $ from 'jquery';
import Map from 'es6-map';
import Cookies from '../utils/cookies'; import Cookies from '../utils/cookies';
const MOBILE_BREAKPOINT = 48 - 0.062; const MOBILE_BREAKPOINT = 48 - 0.062;
@ -9,7 +8,7 @@ const TARGETS = '[data-sidebar-mobile-toggle], #overlay';
const MOBILE_QUERY = `(max-width: ${MOBILE_BREAKPOINT}em)`; const MOBILE_QUERY = `(max-width: ${MOBILE_BREAKPOINT}em)`;
const DESKTOP_QUERY = `(min-width: ${DESKTOP_BREAKPOINT}em)`; const DESKTOP_QUERY = `(min-width: ${DESKTOP_BREAKPOINT}em)`;
let map = new Map(); let map = new global.Map();
export default class Sidebar { export default class Sidebar {
constructor() { constructor() {

View file

@ -1,3 +0,0 @@
@import url("https://fonts.googleapis.com/css?family=Josefin+Slab:400|Roboto:300,400,500|Inconsolata:400,700&subset=latin-ext");body,h5,h6,.badge,.note,.grav-mdeditor-preview,input,select,textarea,button,.selectize-input{font-family:"Roboto","Helvetica","Tahoma","Geneva","Arial",sans-serif}h1,h2,h3,h4,.form-tabs>label,.label{font-family:"Josefin Slab","Helvetica","Tahoma","Geneva","Arial",sans-serif}code,kbd,pre,samp,body .CodeMirror{font-family:"Inconsolata","Monaco","Consolas","Lucida Console",monospace !important}
/*# sourceMappingURL=../css-compiled/fonts.css.map */

View file

@ -1 +0,0 @@
{"version":3,"file":"fonts.css","sources":["fonts.scss","configuration/fonts/_support.scss"],"sourcesContent":["$fonts-header: 'Josefin Slab' !default;\n$fonts-default: 'Roboto' !default;\n$fonts-mono: 'Inconsolata' !default;\n\n$font-definitions: (\n 'Josefin Slab': '400',\n Roboto: '300,400,500',\n Inconsolata: '400,700'\n);\n\n@import \"configuration/fonts/support\";\n","@function str-replace($string, $search, $replace: '') {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n@function admin-font-faces($fonts) {\n $url: \"https://fonts.googleapis.com/css?family=\";\n $nb: 0;\n\n @each $fontname, $weights in $fonts {\n\n @if $fontname == $fonts-default or\n $fontname == $fonts-header or\n $fontname == $fonts-mono {\n\n $nb: $nb + 1;\n $nb-word: 0;\n\n $fontname: str-replace(\"#{$fontname}\", \" \", \"+\");\n\n $url: $url + $fontname;\n\n @if $weights != null {\n $url: $url + \":\" + $weights;\n }\n\n @if $nb < 3 {\n $url: $url + \"|\";\n }\n }\n }\n\n @return $url + \"&subset=latin-ext\";\n}\n\n@mixin body-fonts($font) {\n body, h5, h6,\n .badge, .note, .grav-mdeditor-preview,\n input, select, textarea, button, .selectize-input {\n font-family: \"#{$font}\", \"Helvetica\", \"Tahoma\", \"Geneva\", \"Arial\", sans-serif;\n }\n}\n\n@mixin header-fonts($font) {\n h1, h2, h3, h4,\n .form-tabs > label, .label {\n font-family: \"#{$font}\", \"Helvetica\", \"Tahoma\", \"Geneva\", \"Arial\", sans-serif;\n }\n}\n\n@mixin mono-fonts($font) {\n code, kbd, pre, samp,\n body .CodeMirror {\n font-family: \"#{$font}\", \"Monaco\", \"Consolas\", \"Lucida Console\", monospace !important;\n }\n}\n$font-url: admin-font-faces($font-definitions);\n\n@import url(\"#{$font-url}\");\n\n@include body-fonts($fonts-default);\n\n@include header-fonts($fonts-header);\n\n@include mono-fonts($fonts-mono);\n\n\n\n\n\n"],"names":[],"mappings":"AC+DA,OAAO,CAAC,uHAAI,CAtBR,AAAA,IAAI,CAAE,EAAE,CAAE,EAAE,CACZ,MAAM,CAAE,KAAK,CAAE,sBAAsB,CACrC,KAAK,CAAE,MAAM,CAAE,QAAQ,CAAE,MAAM,CAAE,gBAAgB,AAAC,CAC9C,WAAW,CAAE,QAAU,CAAE,WAAW,CAAE,QAAQ,CAAE,QAAQ,CAAE,OAAO,CAAE,UAAU,CAChF,AAID,AAAA,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CACd,UAAU,CAAG,KAAK,CAAE,MAAM,AAAC,CACvB,WAAW,CAAE,cAAU,CAAE,WAAW,CAAE,QAAQ,CAAE,QAAQ,CAAE,OAAO,CAAE,UAAU,CAChF,AAID,AAAA,IAAI,CAAE,GAAG,CAAE,GAAG,CAAE,IAAI,CACpB,IAAI,CAAC,WAAW,AAAC,CACb,WAAW,CAAE,aAAU,CAAE,QAAQ,CAAE,UAAU,CAAE,gBAAgB,CAAE,SAAS,CAAC,UAAU,CACxF"}

View file

@ -1 +0,0 @@
{"version":3,"file":"paper.css","sources":["paper.scss"],"sourcesContent":["// CodeMirror Theme\n.cm-s-paper {\n $paper-fg: #666;\n $tag: darken($paper-fg, 10%);\n\n &.CodeMirror {\n color: $paper-fg;\n line-height: 1.4;\n font-size: 16px;\n }\n\n .cm-link {color: #0082ba;}\n .cm-comment {color: lighten($paper-fg,10%);}\n .cm-header {color: darken($paper-fg,5%);}\n .cm-strong {color: darken($paper-fg,10%);}\n .cm-em {color: darken($paper-fg, 10%);}\n .cm-string {color: #0082BA;}\n .cm-tag {color: $tag}\n .cm-bracket {color: lighten($tag, 10%);}\n .cm-hr {color: lighten($paper-fg,40%);font-weight: bold;}\n\n .cm-keyword {color: #0082ba;}\n .cm-atom {color: #9055af;}\n .cm-meta {color: $paper-fg;}\n\n .cm-number {color: #7f8c8d;}\n .cm-def {color: #00f;}\n .cm-variable {color: black;}\n //.cm-variable-2 {color: #555;}\n //.cm-variable-3 {color: #085;}\n .cm-property {color: black;}\n .cm-operator {color: black;}\n\n\n .cm-string-2 {color: #f50;}\n .cm-meta {color: #555;}\n .cm-error {color: #f00;}\n .cm-qualifier {color: #555;}\n .cm-builtin {color: #555;}\n\n\n .cm-attribute {color: #7f8c8d;}\n\n .cm-quote {color: #888;}\n\n\n .cm-header-1 {font-size: 140%;}\n .cm-header-2 {font-size: 120%;}\n .cm-header-3 {font-size: 110%;}\n\n .cm-negative {color: #d44;}\n .cm-positive {color: #292;}\n .cm-header, .cm-strong {font-weight: bold;}\n .cm-em {font-style: italic;}\n .cm-link {text-decoration: underline;}\n\n .cm-invalidchar {color: #f00;}\n}\n"],"names":[],"mappings":"AACA,AAII,WAJO,AAIN,WAAW,AAAC,CACT,KAAK,CAJE,IAAI,CAKX,WAAW,CAAE,GAAG,CAChB,SAAS,CAAE,IAAI,CAClB,AARL,AAUI,WAVO,CAUP,QAAQ,AAAC,CAAC,KAAK,CAAE,OAAO,CAAG,AAV/B,AAWI,WAXO,CAWP,WAAW,AAAC,CAAC,KAAK,CAAE,IAAsB,CAAG,AAXjD,AAYI,WAZO,CAYP,UAAU,AAAC,CAAC,KAAK,CAAE,OAAoB,CAAG,AAZ9C,AAaI,WAbO,CAaP,UAAU,AAAC,CAAC,KAAK,CAAE,OAAqB,CAAG,AAb/C,AAcI,WAdO,CAcP,MAAM,AAAC,CAAC,KAAK,CAAE,OAAsB,CAAG,AAd5C,AAeI,WAfO,CAeP,UAAU,AAAC,CAAC,KAAK,CAAE,OAAO,CAAG,AAfjC,AAgBI,WAhBO,CAgBP,OAAO,AAAC,CAAC,KAAK,CAdR,OAAsB,CAcN,AAhB1B,AAiBI,WAjBO,CAiBP,WAAW,AAAC,CAAC,KAAK,CAAE,IAAkB,CAAG,AAjB7C,AAkBI,WAlBO,CAkBP,MAAM,AAAC,CAAC,KAAK,CAAE,IAAsB,CAAC,WAAW,CAAE,IAAI,CAAG,AAlB9D,AAoBI,WApBO,CAoBP,WAAW,AAAC,CAAC,KAAK,CAAE,OAAO,CAAG,AApBlC,AAqBI,WArBO,CAqBP,QAAQ,AAAC,CAAC,KAAK,CAAE,OAAO,CAAG,AArB/B,AAsBI,WAtBO,CAsBP,QAAQ,AAAC,CAAC,KAAK,CArBJ,IAAI,CAqBc,AAtBjC,AAwBI,WAxBO,CAwBP,UAAU,AAAC,CAAC,KAAK,CAAE,OAAO,CAAG,AAxBjC,AAyBI,WAzBO,CAyBP,OAAO,AAAC,CAAC,KAAK,CAAE,IAAI,CAAG,AAzB3B,AA0BI,WA1BO,CA0BP,YAAY,AAAC,CAAC,KAAK,CAAE,KAAK,CAAG,AA1BjC,AA6BI,WA7BO,CA6BP,YAAY,AAAC,CAAC,KAAK,CAAE,KAAK,CAAG,AA7BjC,AA8BI,WA9BO,CA8BP,YAAY,AAAC,CAAC,KAAK,CAAE,KAAK,CAAG,AA9BjC,AAiCI,WAjCO,CAiCP,YAAY,AAAC,CAAC,KAAK,CAAE,IAAI,CAAG,AAjChC,AAkCI,WAlCO,CAkCP,QAAQ,AAAC,CAAC,KAAK,CAAE,IAAI,CAAG,AAlC5B,AAmCI,WAnCO,CAmCP,SAAS,AAAC,CAAC,KAAK,CAAE,IAAI,CAAG,AAnC7B,AAoCI,WApCO,CAoCP,aAAa,AAAC,CAAC,KAAK,CAAE,IAAI,CAAG,AApCjC,AAqCI,WArCO,CAqCP,WAAW,AAAC,CAAC,KAAK,CAAE,IAAI,CAAG,AArC/B,AAwCI,WAxCO,CAwCP,aAAa,AAAC,CAAC,KAAK,CAAE,OAAO,CAAG,AAxCpC,AA0CI,WA1CO,CA0CP,SAAS,AAAC,CAAC,KAAK,CAAE,IAAI,CAAG,AA1C7B,AA6CI,WA7CO,CA6CP,YAAY,AAAC,CAAC,SAAS,CAAE,IAAI,CAAG,AA7CpC,AA8CI,WA9CO,CA8CP,YAAY,AAAC,CAAC,SAAS,CAAE,IAAI,CAAG,AA9CpC,AA+CI,WA/CO,CA+CP,YAAY,AAAC,CAAC,SAAS,CAAE,IAAI,CAAG,AA/CpC,AAiDI,WAjDO,CAiDP,YAAY,AAAC,CAAC,KAAK,CAAE,IAAI,CAAG,AAjDhC,AAkDI,WAlDO,CAkDP,YAAY,AAAC,CAAC,KAAK,CAAE,IAAI,CAAG,AAlDhC,AAmDI,WAnDO,CAmDP,UAAU,CAnDd,WAAW,CAmDK,UAAU,AAAC,CAAC,WAAW,CAAE,IAAI,CAAG,AAnDhD,AAoDI,WApDO,CAoDP,MAAM,AAAC,CAAC,UAAU,CAAE,MAAM,CAAG,AApDjC,AAqDI,WArDO,CAqDP,QAAQ,AAAC,CAAC,eAAe,CAAE,SAAS,CAAG,AArD3C,AAuDI,WAvDO,CAuDP,eAAe,AAAC,CAAC,KAAK,CAAE,IAAI,CAAG"}

View file

@ -942,7 +942,7 @@ form .form-display-wrapper table {
.gpm > table > tbody > tr { .gpm > table > tbody > tr {
border-bottom: 1px solid #f7f7f7; } border-bottom: 1px solid #f7f7f7; }
.gpm > table > tbody > tr:hover { .gpm > table > tbody > tr:hover {
background: white; } background: #f2f2f2; }
.gpm .gpm-name { .gpm .gpm-name {
color: #99a2ad; } color: #99a2ad; }

File diff suppressed because one or more lines are too long

View file

@ -1404,6 +1404,19 @@ textarea.frontmatter {
.form-list-wrapper [data-collection-nosort] .collection-sort { .form-list-wrapper [data-collection-nosort] .collection-sort {
display: none; } display: none; }
.form-list-wrapper .list-confirm-deletion {
cursor: pointer;
display: flex;
position: absolute !important;
z-index: 10010;
padding: .5rem;
top: 13px;
right: 20px; }
.form-list-wrapper .list-confirm-deletion > i, .form-list-wrapper .list-confirm-deletion span {
text-align: center;
display: inline-flex;
align-items: center; }
.form-label.block { .form-label.block {
position: relative; } position: relative; }
.form-label.block:hover { .form-label.block:hover {
@ -4101,6 +4114,19 @@ html.remodal-is-locked {
padding-left: 20px; } padding-left: 20px; }
/* The MIT License */ /* The MIT License */
.pagemedia-field .form-label {
display: flex;
justify-content: space-between;
margin-right: 1.5rem;
align-items: center; }
.pagemedia-field .form-label label {
cursor: pointer;
flex: 1; }
.pagemedia-field input[type="range"]::-webkit-slider-runnable-track {
background: inherit !important;
border: none !important; }
.dropzone { .dropzone {
position: relative; position: relative;
border-radius: 4px; border-radius: 4px;
@ -4149,7 +4175,7 @@ html.remodal-is-locked {
content: '\f12a'; } content: '\f12a'; }
.dropzone .dz-preview .dz-progress { .dropzone .dz-preview .dz-progress {
position: absolute; position: absolute;
top: 150px; bottom: auto;
left: 0px; left: 0px;
right: 0px; right: 0px;
height: 4px; height: 4px;

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
/* /*
Name: 3024 day Name: 3024 day
Author: Jan T. Sott (http://github.com/idleberg) Author: Jan T. Sott (https://github.com/idleberg)
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror) CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)

View file

@ -1,7 +1,7 @@
/* /*
Name: 3024 night Name: 3024 night
Author: Jan T. Sott (http://github.com/idleberg) Author: Jan T. Sott (https://github.com/idleberg)
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror) CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)

View file

@ -1,7 +1,7 @@
/* /*
Name: dracula Name: dracula
Author: Michael Kaminsky (http://github.com/mkaminsky11) Author: Michael Kaminsky (https://github.com/mkaminsky11)
Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme) Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)

View file

@ -1,6 +1,6 @@
/* /*
Name: material Name: material
Author: Mattia Astorino (http://github.com/equinusocio) Author: Mattia Astorino (https://github.com/equinusocio)
Website: https://material-theme.site/ Website: https://material-theme.site/
*/ */

View file

@ -1,6 +1,6 @@
/* /*
Name: material Name: material
Author: Mattia Astorino (http://github.com/equinusocio) Author: Mattia Astorino (https://github.com/equinusocio)
Website: https://material-theme.site/ Website: https://material-theme.site/
*/ */

View file

@ -1,6 +1,6 @@
/* /*
Name: material Name: material
Author: Mattia Astorino (http://github.com/equinusocio) Author: Mattia Astorino (https://github.com/equinusocio)
Website: https://material-theme.site/ Website: https://material-theme.site/
*/ */

View file

@ -1,6 +1,6 @@
/* /*
Name: material Name: material
Author: Mattia Astorino (http://github.com/equinusocio) Author: Mattia Astorino (https://github.com/equinusocio)
Website: https://material-theme.site/ Website: https://material-theme.site/
*/ */

View file

@ -1,6 +1,6 @@
/* /*
Name: Moxer Theme Name: Moxer Theme
Author: Mattia Astorino (http://github.com/equinusocio) Author: Mattia Astorino (https://github.com/equinusocio)
Website: https://github.com/moxer-theme/moxer-code Website: https://github.com/moxer-theme/moxer-code
*/ */

View file

@ -1,6 +1,6 @@
/* /*
Name: Panda Syntax Name: Panda Syntax
Author: Siamak Mokhtari (http://github.com/siamak/) Author: Siamak Mokhtari (https://github.com/siamak/)
CodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax) CodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax)
*/ */
.cm-s-panda-syntax { .cm-s-panda-syntax {

View file

@ -1,7 +1,7 @@
/* /*
Name: seti Name: seti
Author: Michael Kaminsky (http://github.com/mkaminsky11) Author: Michael Kaminsky (https://github.com/mkaminsky11)
Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax) Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)

View file

@ -1,7 +1,7 @@
/* /*
Name: shadowfox Name: shadowfox
Author: overdodactyl (http://github.com/overdodactyl) Author: overdodactyl (https://github.com/overdodactyl)
Original shadowfox color scheme by Firefox Original shadowfox color scheme by Firefox

View file

@ -1,7 +1,7 @@
/* /*
Name: yeti Name: yeti
Author: Michael Kaminsky (http://github.com/mkaminsky11) Author: Michael Kaminsky (https://github.com/mkaminsky11)
Original yeti color scheme by Jesse Weed (https://github.com/jesseweed/yeti-syntax) Original yeti color scheme by Jesse Weed (https://github.com/jesseweed/yeti-syntax)

View file

@ -1,7 +1,7 @@
/* /*
Name: yoncé Name: yoncé
Author: Thomas MacLean (http://github.com/thomasmaclean) Author: Thomas MacLean (https://github.com/thomasmaclean)
Original yoncé color scheme by Mina Markham (https://github.com/minamarkham) Original yoncé color scheme by Mina Markham (https://github.com/minamarkham)

View file

@ -1,8 +0,0 @@
/**
* Featherlight - ultra slim jQuery lightbox
* Version 0.4.9 - http://noelboss.github.io/featherlight/
*
* Copyright 2014, Noël Raoul Bossart (http://www.noelboss.com)
* MIT Licensed.
**/
@media all{.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-.25em}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;min-width:30%;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0}.featherlight iframe{border:0}}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:10px;margin-right:10px;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}

View file

@ -2,7 +2,7 @@ var Grav;
/******/ (() => { // webpackBootstrap /******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({ /******/ var __webpack_modules__ = ({
/***/ 75833: /***/ 56299:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
@ -709,8 +709,8 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery
$(window).on('hashchange.' + NAMESPACE, handleHashChangeEvent); $(window).on('hashchange.' + NAMESPACE, handleHashChangeEvent);
}); });
}); });
// EXTERNAL MODULE: ./node_modules/simplebar/dist/simplebar.esm.js + 24 modules // EXTERNAL MODULE: ./node_modules/simplebar/dist/simplebar.min.js
var simplebar_esm = __webpack_require__(17924); var simplebar_min = __webpack_require__(85766);
// EXTERNAL MODULE: ./node_modules/toastr/toastr.js // EXTERNAL MODULE: ./node_modules/toastr/toastr.js
var toastr = __webpack_require__(8901); var toastr = __webpack_require__(8901);
var toastr_default = /*#__PURE__*/__webpack_require__.n(toastr); var toastr_default = /*#__PURE__*/__webpack_require__.n(toastr);
@ -1980,7 +1980,7 @@ var sortable_esm = __webpack_require__(51474);
var debounce = __webpack_require__(20296); var debounce = __webpack_require__(20296);
var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce); var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce);
// EXTERNAL MODULE: ./app/utils/storage.js // EXTERNAL MODULE: ./app/utils/storage.js
var storage = __webpack_require__(92511); var storage = __webpack_require__(31619);
;// CONCATENATED MODULE: ./app/pages/tree.js ;// CONCATENATED MODULE: ./app/pages/tree.js
function tree_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function tree_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@ -2532,7 +2532,7 @@ folder.on('input', function (event) {
input.setSelectionRange(selection.start, selection.end); input.setSelectionRange(selection.start, selection.end);
}); });
folder.on('focus blur', function (event) { folder.on('focus blur', function (event) {
return getFields('title', event.currentTarget).title.trigger('input'); getFields('title').title.trigger('input');
}); });
external_jQuery_default()(document).on('change', '[name="data[route]"]', function (event) { external_jQuery_default()(document).on('change', '[name="data[route]"]', function (event) {
var rawroute = external_jQuery_default()(event.currentTarget).val(); var rawroute = external_jQuery_default()(event.currentTarget).val();
@ -2648,6 +2648,161 @@ external_jQuery_default()(document).on('click', '.dz-unset', function () {
external_jQuery_default()('.disable-after-click').on('click', function () { external_jQuery_default()('.disable-after-click').on('click', function () {
external_jQuery_default()(this).addClass('pointer-events-disabled'); external_jQuery_default()(this).addClass('pointer-events-disabled');
}); });
;// CONCATENATED MODULE: ./app/utils/cookies.js
function cookies_typeof(obj) { "@babel/helpers - typeof"; return cookies_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, cookies_typeof(obj); }
/*
* Cookies.js - 1.2.3-grav
* https://github.com/ScottHamper/Cookies
*
* With SameSite support by Grav
*
* This is free and unencumbered software released into the public domain.
*/
var factory = function factory(window) {
var _arguments = arguments;
if (cookies_typeof(window.document) !== 'object') {
throw new Error('Cookies.js requires a `window` with a `document` object');
}
var Cookies = function Cookies(key, value, options) {
return _arguments.length === 1 ? Cookies.get(key) : Cookies.set(key, value, options);
}; // Allows for setter injection in unit tests
Cookies._document = window.document; // Used to ensure cookie keys do not collide with
// built-in `Object` properties
Cookies._cacheKeyPrefix = 'cookey.'; // Hurr hurr, :)
Cookies._maxExpireDate = new Date('Fri, 31 Dec 9999 23:59:59 UTC');
Cookies.defaults = {
path: '/',
secure: false,
sameSite: 'Lax'
};
Cookies.get = function (key) {
if (Cookies._cachedDocumentCookie !== Cookies._document.cookie) {
Cookies._renewCache();
}
var value = Cookies._cache[Cookies._cacheKeyPrefix + key];
return value === undefined ? undefined : decodeURIComponent(value);
};
Cookies.set = function (key, value, options) {
options = Cookies._getExtendedOptions(options);
options.expires = Cookies._getExpiresDate(value === undefined ? -1 : options.expires);
Cookies._document.cookie = Cookies._generateCookieString(key, value, options);
return Cookies;
};
Cookies.expire = function (key, options) {
return Cookies.set(key, undefined, options);
};
Cookies._getExtendedOptions = function (options) {
return {
path: options && options.path || Cookies.defaults.path,
domain: options && options.domain || Cookies.defaults.domain,
expires: options && options.expires || Cookies.defaults.expires,
secure: options && options.secure !== undefined ? options.secure : Cookies.defaults.secure,
sameSite: options && options.sameSite || Cookies.defaults.sameSite
};
};
Cookies._isValidDate = function (date) {
return Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime());
};
Cookies._getExpiresDate = function (expires, now) {
now = now || new Date();
if (typeof expires === 'number') {
expires = expires === Infinity ? Cookies._maxExpireDate : new Date(now.getTime() + expires * 1000);
} else if (typeof expires === 'string') {
expires = new Date(expires);
}
if (expires && !Cookies._isValidDate(expires)) {
throw new Error('`expires` parameter cannot be converted to a valid Date instance');
}
return expires;
};
Cookies._generateCookieString = function (key, value, options) {
key = key.replace(/[^#$&+\^`|]/g, encodeURIComponent);
key = key.replace(/\(/g, '%28').replace(/\)/g, '%29');
value = (value + '').replace(/[^!#$&-+\--:<-\[\]-~]/g, encodeURIComponent);
options = options || {};
var cookieString = key + '=' + value;
cookieString += options.path ? ';path=' + options.path : '';
cookieString += options.domain ? ';domain=' + options.domain : '';
cookieString += options.expires ? ';expires=' + options.expires.toUTCString() : '';
cookieString += options.secure ? ';secure' : '';
cookieString += options.sameSite ? ';SameSite=' + options.sameSite : '';
return cookieString;
};
Cookies._getCacheFromString = function (documentCookie) {
var cookieCache = {};
var cookiesArray = documentCookie ? documentCookie.split('; ') : [];
for (var i = 0; i < cookiesArray.length; i++) {
var cookieKvp = Cookies._getKeyValuePairFromCookieString(cookiesArray[i]);
if (cookieCache[Cookies._cacheKeyPrefix + cookieKvp.key] === undefined) {
cookieCache[Cookies._cacheKeyPrefix + cookieKvp.key] = cookieKvp.value;
}
}
return cookieCache;
};
Cookies._getKeyValuePairFromCookieString = function (cookieString) {
// "=" is a valid character in a cookie value according to RFC6265, so cannot `split('=')`
var separatorIndex = cookieString.indexOf('='); // IE omits the "=" when the cookie value is an empty string
separatorIndex = separatorIndex < 0 ? cookieString.length : separatorIndex;
var key = cookieString.substr(0, separatorIndex);
var decodedKey;
try {
decodedKey = decodeURIComponent(key);
} catch (e) {
if (console && typeof console.error === 'function') {
console.error('Could not decode cookie with key "' + key + '"', e);
}
}
return {
key: decodedKey,
value: cookieString.substr(separatorIndex + 1) // Defer decoding value until accessed
};
};
Cookies._renewCache = function () {
Cookies._cache = Cookies._getCacheFromString(Cookies._document.cookie);
Cookies._cachedDocumentCookie = Cookies._document.cookie;
};
Cookies._areEnabled = function () {
var testKey = 'cookies.js';
var areEnabled = Cookies.set(testKey, 1).get(testKey) === '1';
Cookies.expire(testKey);
return areEnabled;
};
Cookies.enabled = Cookies._areEnabled();
return Cookies;
};
__webpack_require__.g.Cookies = __webpack_require__.g && cookies_typeof(__webpack_require__.g.document) === 'object' ? factory(__webpack_require__.g) : factory;
/* harmony default export */ const cookies = (__webpack_require__.g.Cookies);
// EXTERNAL MODULE: ./node_modules/dropzone/dist/dropzone.js // EXTERNAL MODULE: ./node_modules/dropzone/dist/dropzone.js
var dist_dropzone = __webpack_require__(32025); var dist_dropzone = __webpack_require__(32025);
var dropzone_default = /*#__PURE__*/__webpack_require__.n(dist_dropzone); var dropzone_default = /*#__PURE__*/__webpack_require__.n(dist_dropzone);
@ -2724,6 +2879,11 @@ var ACCEPT_FUNC = function ACCEPT_FUNC(file, done, settings) {
if (hasMin || !(settings.resizeWidth || settings.resizeHeight) && hasMax) { if (hasMin || !(settings.resizeWidth || settings.resizeHeight) && hasMax) {
reader.onload = function (event) { reader.onload = function (event) {
if (!/image\//.test(file.type)) {
done();
return;
}
var image = new Image(); var image = new Image();
image.src = event.target.result; image.src = event.target.result;
@ -2798,6 +2958,7 @@ var FilesField = /*#__PURE__*/function () {
this.dropzone = new (dropzone_default())(container, this.options); this.dropzone = new (dropzone_default())(container, this.options);
this.dropzone.on('complete', this.onDropzoneComplete.bind(this)); this.dropzone.on('complete', this.onDropzoneComplete.bind(this));
this.dropzone.on('success', this.onDropzoneSuccess.bind(this)); this.dropzone.on('success', this.onDropzoneSuccess.bind(this));
this.dropzone.on('addedfile', this.onDropzoneAddedFile.bind(this));
this.dropzone.on('removedfile', this.onDropzoneRemovedFile.bind(this)); this.dropzone.on('removedfile', this.onDropzoneRemovedFile.bind(this));
this.dropzone.on('sending', this.onDropzoneSending.bind(this)); this.dropzone.on('sending', this.onDropzoneSending.bind(this));
this.dropzone.on('error', this.onDropzoneError.bind(this)); this.dropzone.on('error', this.onDropzoneError.bind(this));
@ -2922,6 +3083,11 @@ var FilesField = /*#__PURE__*/function () {
str = str.replace(/\s/g, ''); str = str.replace(/\s/g, '');
return decodeURIComponent(escape(window.atob(str))); return decodeURIComponent(escape(window.atob(str)));
} }
}, {
key: "onDropzoneAddedFile",
value: function onDropzoneAddedFile(file) {
return this.dropzone.options.addedfile(file);
}
}, { }, {
key: "onDropzoneRemovedFile", key: "onDropzoneRemovedFile",
value: function onDropzoneRemovedFile(file) { value: function onDropzoneRemovedFile(file) {
@ -4060,6 +4226,7 @@ function media_getPrototypeOf(o) { media_getPrototypeOf = Object.setPrototypeOf
var previewTemplate = "\n <div class=\"dz-preview dz-file-preview\">\n <div class=\"dz-details\">\n <div class=\"dz-filename\"><span data-dz-name></span></div>\n <div class=\"dz-size\" data-dz-size></div>\n <img data-dz-thumbnail />\n </div>\n <div class=\"dz-progress\"><span class=\"dz-upload\" data-dz-uploadprogress></span></div>\n <div class=\"dz-success-mark\"><span>\u2714</span></div>\n <div class=\"dz-error-mark\"><span>\u2718</span></div>\n <div class=\"dz-error-message\"><span data-dz-errormessage></span></div>\n <a class=\"dz-remove\" title=\"".concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DELETE, "\" href=\"javascript:undefined;\" data-dz-remove>").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DELETE, "</a>\n <a class=\"dz-metadata\" title=\"").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.METADATA, "\" href=\"#\" target=\"_blank\" data-dz-metadata>").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.METADATA, "</a>\n <a class=\"dz-view\" title=\"").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.VIEW, "\" href=\"#\" target=\"_blank\" data-dz-view>").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.VIEW, "</a>\n <a class=\"dz-insert\" title=\"").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.INSERT, "\" href=\"javascript:undefined;\" data-dz-insert>").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.INSERT, "</a>\n </div>").trim(); var previewTemplate = "\n <div class=\"dz-preview dz-file-preview\">\n <div class=\"dz-details\">\n <div class=\"dz-filename\"><span data-dz-name></span></div>\n <div class=\"dz-size\" data-dz-size></div>\n <img data-dz-thumbnail />\n </div>\n <div class=\"dz-progress\"><span class=\"dz-upload\" data-dz-uploadprogress></span></div>\n <div class=\"dz-success-mark\"><span>\u2714</span></div>\n <div class=\"dz-error-mark\"><span>\u2718</span></div>\n <div class=\"dz-error-message\"><span data-dz-errormessage></span></div>\n <a class=\"dz-remove\" title=\"".concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DELETE, "\" href=\"javascript:undefined;\" data-dz-remove>").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DELETE, "</a>\n <a class=\"dz-metadata\" title=\"").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.METADATA, "\" href=\"#\" target=\"_blank\" data-dz-metadata>").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.METADATA, "</a>\n <a class=\"dz-view\" title=\"").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.VIEW, "\" href=\"#\" target=\"_blank\" data-dz-view>").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.VIEW, "</a>\n <a class=\"dz-insert\" title=\"").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.INSERT, "\" href=\"javascript:undefined;\" data-dz-insert>").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.INSERT, "</a>\n </div>").trim();
var PageMedia = /*#__PURE__*/function (_FilesField) { var PageMedia = /*#__PURE__*/function (_FilesField) {
@ -4171,6 +4338,8 @@ var PageMedia = /*#__PURE__*/function (_FilesField) {
_this2.dropzone.options.thumbnail.call(_this2.dropzone, mock, data.url); _this2.dropzone.options.thumbnail.call(_this2.dropzone, mock, data.url);
}); });
_this2.updateThumbsSize();
_this2.container.find('.dz-preview').prop('draggable', 'true'); _this2.container.find('.dz-preview').prop('draggable', 'true');
}); });
} }
@ -4196,23 +4365,54 @@ var PageMedia = /*#__PURE__*/function (_FilesField) {
} // accepted } // accepted
this.updateThumbsSize();
this.updateMediaCount();
external_jQuery_default()('.dz-preview').prop('draggable', 'true'); external_jQuery_default()('.dz-preview').prop('draggable', 'true');
} }
}, {
key: "onDropzoneAddedFile",
value: function onDropzoneAddedFile(file) {
for (var _len = arguments.length, extra = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
extra[_key - 1] = arguments[_key];
}
media_get(media_getPrototypeOf(PageMedia.prototype), "onDropzoneAddedFile", this).call(this, file, extra);
this.updateThumbsSize();
}
}, { }, {
key: "onDropzoneRemovedFile", key: "onDropzoneRemovedFile",
value: function onDropzoneRemovedFile(file) { value: function onDropzoneRemovedFile(file) {
var _get2; var _get2;
for (var _len = arguments.length, extra = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { for (var _len2 = arguments.length, extra = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
extra[_key - 1] = arguments[_key]; extra[_key2 - 1] = arguments[_key2];
} }
(_get2 = media_get(media_getPrototypeOf(PageMedia.prototype), "onDropzoneRemovedFile", this)).call.apply(_get2, [this, file].concat(extra)); (_get2 = media_get(media_getPrototypeOf(PageMedia.prototype), "onDropzoneRemovedFile", this)).call.apply(_get2, [this, file].concat(extra));
this.updateMediaCount();
if (this.sortable) { if (this.sortable) {
this.sortable.options.onSort(); this.sortable.options.onSort();
} }
} }
}, {
key: "updateThumbsSize",
value: function updateThumbsSize() {
var status = JSON.parse(cookies.get('grav-admin-pagemedia') || '{}');
if (status.width) {
var input = this.container.closest('.pagemedia-field').find('.media-resizer');
updateMediaSizes(input, status.width, false);
}
}
}, {
key: "updateMediaCount",
value: function updateMediaCount() {
var element = this.container.closest('.pagemedia-field').find('[data-pagemedia-count]');
element.text("(".concat(this.dropzone.files.length, ")"));
}
}, { }, {
key: "attachDragDrop", key: "attachDragDrop",
value: function attachDragDrop() { value: function attachDragDrop() {
@ -4308,6 +4508,66 @@ var PageMedia = /*#__PURE__*/function (_FilesField) {
}(FilesField); }(FilesField);
var updateMediaSizes = function updateMediaSizes(input, width) {
var store = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
var status = JSON.parse(cookies.get('grav-admin-pagemedia') || '{}');
var height = 150 * width / 200;
var media = input.closest('.pagemedia-field').find('.dz-details, [data-dz-thumbnail]');
media.css({
width: width,
height: height
});
if (store) {
var data = Object.assign({}, status, {
width: width
});
cookies.set('grav-admin-pagemedia', JSON.stringify(data), {
expires: Infinity
});
}
};
var updateMediaCollapseStatus = function updateMediaCollapseStatus(element) {
var store = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
var status = JSON.parse(cookies.get('grav-admin-pagemedia') || '{}');
element = external_jQuery_default()(element);
var icon = element.find('i.fa');
var container = element.closest('.pagemedia-field');
var panel = container.find('.form-data');
var slider = container.find('.media-resizer').parent();
var isCollapsed = !icon.hasClass('fa-chevron-down');
var collapsed = !isCollapsed;
icon.removeClass('fa-chevron-down fa-chevron-right').addClass(isCollapsed ? 'fa-chevron-down' : 'fa-chevron-right');
slider[isCollapsed ? 'removeClass' : 'addClass']('hidden');
panel[isCollapsed ? 'slideDown' : 'slideUp']();
if (store) {
var data = Object.assign({}, status, {
collapsed: collapsed
});
cookies.set('grav-admin-pagemedia', JSON.stringify(data), {
expires: Infinity
});
}
};
external_jQuery_default()(document).on('input', '.media-resizer', function (event) {
var target = external_jQuery_default()(event.currentTarget);
var width = target.val();
updateMediaSizes(target, width);
});
external_jQuery_default()(document).on('click', '.media-collapser', function (event) {
updateMediaCollapseStatus(event.currentTarget);
});
external_jQuery_default()(document).ready(function () {
var status = JSON.parse(cookies.get('grav-admin-pagemedia') || '{}');
if (status.width) {
external_jQuery_default()('.media-resizer').each(function (index, input) {
input = external_jQuery_default()(input);
updateMediaSizes(input, status.width, false);
});
}
});
var media_Instance = new PageMedia(); var media_Instance = new PageMedia();
;// CONCATENATED MODULE: ./app/pages/page/multilang.js ;// CONCATENATED MODULE: ./app/pages/page/multilang.js
@ -4429,9 +4689,8 @@ if (orderingElement.length) {
Instance: filter_Instance Instance: filter_Instance
} }
}); });
// EXTERNAL MODULE: ./node_modules/immutable/dist/immutable.js // EXTERNAL MODULE: ./node_modules/immutable/dist/immutable.es.js
var immutable = __webpack_require__(43393); var immutable_es = __webpack_require__(35369);
var immutable_default = /*#__PURE__*/__webpack_require__.n(immutable);
// EXTERNAL MODULE: ./node_modules/immutablediff/src/diff.js // EXTERNAL MODULE: ./node_modules/immutablediff/src/diff.js
var src_diff = __webpack_require__(64847); var src_diff = __webpack_require__(64847);
var diff_default = /*#__PURE__*/__webpack_require__.n(src_diff); var diff_default = /*#__PURE__*/__webpack_require__.n(src_diff);
@ -4592,7 +4851,7 @@ var FormState = /*#__PURE__*/function () {
values[name] = value; values[name] = value;
} }
}); });
return immutable_default().OrderedMap(values); return immutable_es/* default.OrderedMap */.ZP.OrderedMap(values);
} }
}, { }, {
key: "diff", key: "diff",
@ -4608,7 +4867,7 @@ var FormState = /*#__PURE__*/function () {
return null; return null;
} }
return immutable_default().is(FormLoadState, this.collect()); return immutable_es/* default.is */.ZP.is(FormLoadState, this.collect());
} }
}]); }]);
@ -5391,10 +5650,18 @@ var CollectionsField = /*#__PURE__*/function () {
collections_classCallCheck(this, CollectionsField); collections_classCallCheck(this, CollectionsField);
this.lists = external_jQuery_default()(); this.lists = external_jQuery_default()();
var body = external_jQuery_default()('body');
external_jQuery_default()('[data-type="collection"]').each(function (index, list) { external_jQuery_default()('[data-type="collection"]').each(function (index, list) {
return _this.addList(list); return _this.addList(list);
}); });
external_jQuery_default()('body').on('mutation._grav', this._onAddedNodes.bind(this)); body.on('mutation._grav', this._onAddedNodes.bind(this));
body.on('click', function (event) {
var target = external_jQuery_default()(event.target);
if (!(target.is('[data-action="confirm"], [data-action="delete"]') || target.closest('[data-action="confirm"], [data-action="delete"]').length)) {
CollectionsField.closeConfirmations();
}
});
} }
collections_createClass(CollectionsField, [{ collections_createClass(CollectionsField, [{
@ -5407,6 +5674,9 @@ var CollectionsField = /*#__PURE__*/function () {
list.on('click', '> .collection-actions [data-action="add"]', function (event) { list.on('click', '> .collection-actions [data-action="add"]', function (event) {
return _this2.addItem(event); return _this2.addItem(event);
}); });
list.on('click', '> ul > li > .item-actions [data-action="confirm"]', function (event) {
return _this2.confirmRemove(event);
});
list.on('click', '> ul > li > .item-actions [data-action="delete"]', function (event) { list.on('click', '> ul > li > .item-actions [data-action="delete"]', function (event) {
return _this2.removeItem(event); return _this2.removeItem(event);
}); });
@ -5483,6 +5753,16 @@ var CollectionsField = /*#__PURE__*/function () {
external_jQuery_default()('[data-grav-field="toggleable"] input[type="checkbox"]').trigger('change'); external_jQuery_default()('[data-grav-field="toggleable"] input[type="checkbox"]').trigger('change');
} }
}, {
key: "confirmRemove",
value: function confirmRemove(event) {
var button = external_jQuery_default()(event.currentTarget);
var list = external_jQuery_default()(button.closest('.item-actions'));
var action = list.find('.list-confirm-deletion[data-action="delete"]');
var isHidden = action.hasClass('hidden');
CollectionsField.closeConfirmations();
action[isHidden ? 'removeClass' : 'addClass']('hidden');
}
}, { }, {
key: "removeItem", key: "removeItem",
value: function removeItem(event) { value: function removeItem(event) {
@ -5685,6 +5965,11 @@ var CollectionsField = /*#__PURE__*/function () {
list.find('> .collection-actions [data-action="add"]').attr('disabled', true); list.find('> .collection-actions [data-action="add"]').attr('disabled', true);
} }
} }
}], [{
key: "closeConfirmations",
value: function closeConfirmations() {
external_jQuery_default()('.list-confirm-deletion[data-action="delete"]').addClass('hidden');
}
}]); }]);
return CollectionsField; return CollectionsField;
@ -5693,7 +5978,7 @@ var CollectionsField = /*#__PURE__*/function () {
var collections_Instance = new CollectionsField(); var collections_Instance = new CollectionsField();
// EXTERNAL MODULE: ./app/utils/bootstrap-datetimepicker.js // EXTERNAL MODULE: ./app/utils/bootstrap-datetimepicker.js
var bootstrap_datetimepicker = __webpack_require__(36531); var bootstrap_datetimepicker = __webpack_require__(19912);
;// CONCATENATED MODULE: ./app/forms/fields/datetime.js ;// CONCATENATED MODULE: ./app/forms/fields/datetime.js
function datetime_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function datetime_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@ -9500,163 +9785,6 @@ external_jQuery_default()(document).on('change', '[data-grav-elements] select',
Instance: state_Instance Instance: state_Instance
} }
}); });
;// CONCATENATED MODULE: ./app/utils/cookies.js
function cookies_typeof(obj) { "@babel/helpers - typeof"; return cookies_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, cookies_typeof(obj); }
/*
* Cookies.js - 1.2.3-grav
* https://github.com/ScottHamper/Cookies
*
* With SameSite support by Grav
*
* This is free and unencumbered software released into the public domain.
*/
var factory = function factory(window) {
var _arguments = arguments;
if (cookies_typeof(window.document) !== 'object') {
throw new Error('Cookies.js requires a `window` with a `document` object');
}
var Cookies = function Cookies(key, value, options) {
return _arguments.length === 1 ? Cookies.get(key) : Cookies.set(key, value, options);
}; // Allows for setter injection in unit tests
Cookies._document = window.document; // Used to ensure cookie keys do not collide with
// built-in `Object` properties
Cookies._cacheKeyPrefix = 'cookey.'; // Hurr hurr, :)
Cookies._maxExpireDate = new Date('Fri, 31 Dec 9999 23:59:59 UTC');
Cookies.defaults = {
path: '/',
secure: false,
sameSite: 'Lax'
};
Cookies.get = function (key) {
if (Cookies._cachedDocumentCookie !== Cookies._document.cookie) {
Cookies._renewCache();
}
var value = Cookies._cache[Cookies._cacheKeyPrefix + key];
return value === undefined ? undefined : decodeURIComponent(value);
};
Cookies.set = function (key, value, options) {
options = Cookies._getExtendedOptions(options);
options.expires = Cookies._getExpiresDate(value === undefined ? -1 : options.expires);
Cookies._document.cookie = Cookies._generateCookieString(key, value, options);
return Cookies;
};
Cookies.expire = function (key, options) {
return Cookies.set(key, undefined, options);
};
Cookies._getExtendedOptions = function (options) {
return {
path: options && options.path || Cookies.defaults.path,
domain: options && options.domain || Cookies.defaults.domain,
expires: options && options.expires || Cookies.defaults.expires,
secure: options && options.secure !== undefined ? options.secure : Cookies.defaults.secure,
sameSite: options && options.sameSite || Cookies.defaults.sameSite
};
};
Cookies._isValidDate = function (date) {
return Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime());
};
Cookies._getExpiresDate = function (expires, now) {
now = now || new Date();
if (typeof expires === 'number') {
expires = expires === Infinity ? Cookies._maxExpireDate : new Date(now.getTime() + expires * 1000);
} else if (typeof expires === 'string') {
expires = new Date(expires);
}
if (expires && !Cookies._isValidDate(expires)) {
throw new Error('`expires` parameter cannot be converted to a valid Date instance');
}
return expires;
};
Cookies._generateCookieString = function (key, value, options) {
key = key.replace(/[^#$&+\^`|]/g, encodeURIComponent);
key = key.replace(/\(/g, '%28').replace(/\)/g, '%29');
value = (value + '').replace(/[^!#$&-+\--:<-\[\]-~]/g, encodeURIComponent);
options = options || {};
var cookieString = key + '=' + value;
cookieString += options.path ? ';path=' + options.path : '';
cookieString += options.domain ? ';domain=' + options.domain : '';
cookieString += options.expires ? ';expires=' + options.expires.toUTCString() : '';
cookieString += options.secure ? ';secure' : '';
cookieString += options.sameSite ? ';SameSite=' + options.sameSite : '';
return cookieString;
};
Cookies._getCacheFromString = function (documentCookie) {
var cookieCache = {};
var cookiesArray = documentCookie ? documentCookie.split('; ') : [];
for (var i = 0; i < cookiesArray.length; i++) {
var cookieKvp = Cookies._getKeyValuePairFromCookieString(cookiesArray[i]);
if (cookieCache[Cookies._cacheKeyPrefix + cookieKvp.key] === undefined) {
cookieCache[Cookies._cacheKeyPrefix + cookieKvp.key] = cookieKvp.value;
}
}
return cookieCache;
};
Cookies._getKeyValuePairFromCookieString = function (cookieString) {
// "=" is a valid character in a cookie value according to RFC6265, so cannot `split('=')`
var separatorIndex = cookieString.indexOf('='); // IE omits the "=" when the cookie value is an empty string
separatorIndex = separatorIndex < 0 ? cookieString.length : separatorIndex;
var key = cookieString.substr(0, separatorIndex);
var decodedKey;
try {
decodedKey = decodeURIComponent(key);
} catch (e) {
if (console && typeof console.error === 'function') {
console.error('Could not decode cookie with key "' + key + '"', e);
}
}
return {
key: decodedKey,
value: cookieString.substr(separatorIndex + 1) // Defer decoding value until accessed
};
};
Cookies._renewCache = function () {
Cookies._cache = Cookies._getCacheFromString(Cookies._document.cookie);
Cookies._cachedDocumentCookie = Cookies._document.cookie;
};
Cookies._areEnabled = function () {
var testKey = 'cookies.js';
var areEnabled = Cookies.set(testKey, 1).get(testKey) === '1';
Cookies.expire(testKey);
return areEnabled;
};
Cookies.enabled = Cookies._areEnabled();
return Cookies;
};
__webpack_require__.g.Cookies = __webpack_require__.g && cookies_typeof(__webpack_require__.g.document) === 'object' ? factory(__webpack_require__.g) : factory;
/* harmony default export */ const cookies = (__webpack_require__.g.Cookies);
// EXTERNAL MODULE: ./node_modules/es6-promise/dist/es6-promise.js
var es6_promise = __webpack_require__(82702);
;// CONCATENATED MODULE: ./app/utils/packages.js ;// CONCATENATED MODULE: ./app/utils/packages.js
function packages_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function packages_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@ -9669,7 +9797,6 @@ function packages_createClass(Constructor, protoProps, staticProps) { if (protoP
var Sorter = /*#__PURE__*/function () { var Sorter = /*#__PURE__*/function () {
function Sorter() { function Sorter() {
packages_classCallCheck(this, Sorter); packages_classCallCheck(this, Sorter);
@ -9678,76 +9805,111 @@ var Sorter = /*#__PURE__*/function () {
packages_createClass(Sorter, [{ packages_createClass(Sorter, [{
key: "getElements", key: "getElements",
value: function getElements(elements, container) { value: function getElements(elements, container) {
this.elements = elements || external_jQuery_default()('[data-gpm-plugin], [data-gpm-theme]'); this.elements = elements || document.querySelectorAll('[data-gpm-plugin], [data-gpm-theme]');
this.container = container || external_jQuery_default()('.gpm-plugins > table > tbody, .gpm-themes > .themes.card-row'); this.container = container || document.querySelector('.gpm-plugins > table > tbody, .gpm-themes > .themes.card-row');
return this.elements; return this.elements;
} }
}, { }, {
key: "byCommon", key: "byCommon",
value: function byCommon() { value: function byCommon() {
var _this = this;
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc'; var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
var elements = this.getElements().sort(function (a, b) { var elements = this.getElements();
var A = external_jQuery_default()(a).data(data).toString().toLowerCase(); this.removeGumroad();
var B = external_jQuery_default()(b).data(data).toString().toLowerCase(); Array.from(elements).sort(function (a, b) {
var A = a.dataset[data].toString().toLowerCase();
var B = b.dataset[data].toString().toLowerCase();
return Sorter.sort(A, B, direction); return Sorter.sort(A, B, direction);
}).forEach(function (element) {
_this.container.appendChild(element);
}); });
return elements.appendTo(this.container); this.addGumroad();
return this.container;
} }
}, { }, {
key: "byName", key: "byName",
value: function byName() { value: function byName() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc'; var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-name'; var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmName';
return this.byCommon(direction, data); return this.byCommon(direction, data);
} }
}, { }, {
key: "byAuthor", key: "byAuthor",
value: function byAuthor() { value: function byAuthor() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc'; var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-author'; var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmAuthor';
return this.byCommon(direction, data); return this.byCommon(direction, data);
} }
}, { }, {
key: "byOfficial", key: "byOfficial",
value: function byOfficial() { value: function byOfficial() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc'; var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-official'; var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmOfficial';
return this.byCommon(direction, data);
}
}, {
key: "byPremium",
value: function byPremium() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmPremium';
return this.byCommon(direction, data); return this.byCommon(direction, data);
} }
}, { }, {
key: "byReleaseDate", key: "byReleaseDate",
value: function byReleaseDate() { value: function byReleaseDate() {
var _this2 = this;
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc'; var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-release-date'; var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmReleaseDate';
var elements = this.getElements().sort(function (a, b) { var elements = this.getElements();
var A = new Date(external_jQuery_default()(a).data(data)).getTime(); this.removeGumroad();
var B = new Date(external_jQuery_default()(b).data(data)).getTime(); Array.from(elements).sort(function (a, b) {
var A = new Date(a.dataset[data]).getTime();
var B = new Date(b.dataset[data]).getTime();
return Sorter.sort(A, B, direction === 'asc' ? 'desc' : 'asc'); return Sorter.sort(A, B, direction === 'asc' ? 'desc' : 'asc');
}).forEach(function (element) {
_this2.container.appendChild(element);
}); });
elements.appendTo(this.container); this.addGumroad();
return this.container;
} }
}, { }, {
key: "byUpdatable", key: "byUpdatable",
value: function byUpdatable() { value: function byUpdatable() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc'; var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-updatable'; var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmUpdatable';
return this.byCommon(direction, data); return this.byCommon(direction, data);
} }
}, { }, {
key: "byEnabled", key: "byEnabled",
value: function byEnabled() { value: function byEnabled() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc'; var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-enabled'; var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmEnabled';
return this.byCommon(direction, data); return this.byCommon(direction, data);
} }
}, { }, {
key: "byTesting", key: "byTesting",
value: function byTesting() { value: function byTesting() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc'; var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-testing'; var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmTesting';
return this.byCommon(direction, data); return this.byCommon(direction, data);
} }
}, {
key: "addGumroad",
value: function addGumroad() {
if (window.GumroadOverlay) {
window.GumroadOverlay.startNodeAdditionObserver();
}
}
}, {
key: "removeGumroad",
value: function removeGumroad() {
if (window.GumroadOverlay) {
window.GumroadOverlay.nodeAdditionObserver.disconnect();
}
}
}], [{ }], [{
key: "sort", key: "sort",
value: function sort(A, B) { value: function sort(A, B) {
@ -9786,7 +9948,7 @@ var Packages = /*#__PURE__*/function () {
}, { }, {
key: "removePackage", key: "removePackage",
value: function removePackage(type, slug) { value: function removePackage(type, slug) {
var _this = this; var _this3 = this;
var url = Packages.getRemovePackageUrl(type); var url = Packages.getRemovePackageUrl(type);
utils_request(url, { utils_request(url, {
@ -9799,7 +9961,7 @@ var Packages = /*#__PURE__*/function () {
external_jQuery_default()('.remove-package-confirm').addClass('hidden'); external_jQuery_default()('.remove-package-confirm').addClass('hidden');
if (response.dependencies && response.dependencies.length > 0) { if (response.dependencies && response.dependencies.length > 0) {
_this.addDependenciesToList(response.dependencies); _this3.addDependenciesToList(response.dependencies);
external_jQuery_default()('.remove-package-dependencies').removeClass('hidden'); external_jQuery_default()('.remove-package-dependencies').removeClass('hidden');
} else { } else {
@ -9845,7 +10007,7 @@ var Packages = /*#__PURE__*/function () {
}, { }, {
key: "removeDependency", key: "removeDependency",
value: function removeDependency(type, slug, button) { value: function removeDependency(type, slug, button) {
var _this2 = this; var _this4 = this;
var url = Packages.getRemovePackageUrl(type); var url = Packages.getRemovePackageUrl(type);
utils_request(url, { utils_request(url, {
@ -9859,7 +10021,7 @@ var Packages = /*#__PURE__*/function () {
button.replaceWith(external_jQuery_default()('<span>Removed successfully</span>')); button.replaceWith(external_jQuery_default()('<span>Removed successfully</span>'));
if (response.dependencies && response.dependencies.length > 0) { if (response.dependencies && response.dependencies.length > 0) {
_this2.addDependenciesToList(response.dependencies, slug); _this4.addDependenciesToList(response.dependencies, slug);
} }
} }
}); });
@ -9921,8 +10083,8 @@ var Packages = /*#__PURE__*/function () {
key: "installPackages", key: "installPackages",
value: function installPackages(type, slugs, callbackSuccess) { value: function installPackages(type, slugs, callbackSuccess) {
var url = Packages.getInstallPackageUrl(type); var url = Packages.getInstallPackageUrl(type);
es6_promise.Promise.all(slugs.map(function (slug) { __webpack_require__.g.Promise.all(slugs.map(function (slug) {
return new es6_promise.Promise(function (resolve, reject) { return new __webpack_require__.g.Promise(function (resolve, reject) {
utils_request(url, { utils_request(url, {
method: 'post', method: 'post',
body: { body: {
@ -9995,7 +10157,7 @@ var Packages = /*#__PURE__*/function () {
}, { }, {
key: "handleInstallingDependenciesAndPackage", key: "handleInstallingDependenciesAndPackage",
value: function handleInstallingDependenciesAndPackage(type, event) { value: function handleInstallingDependenciesAndPackage(type, event) {
var _this3 = this; var _this5 = this;
var slugs = Packages.getSlugsFromEvent(event); var slugs = Packages.getSlugsFromEvent(event);
event.preventDefault(); event.preventDefault();
@ -10007,7 +10169,7 @@ var Packages = /*#__PURE__*/function () {
external_jQuery_default()('[data-packages-modal] .installing-dependencies').addClass('hidden'); external_jQuery_default()('[data-packages-modal] .installing-dependencies').addClass('hidden');
external_jQuery_default()('[data-packages-modal] .installing-package').removeClass('hidden'); external_jQuery_default()('[data-packages-modal] .installing-package').removeClass('hidden');
_this3.installPackages(type, slugs, function () { _this5.installPackages(type, slugs, function () {
external_jQuery_default()('[data-packages-modal] .installing-package').addClass('hidden'); external_jQuery_default()('[data-packages-modal] .installing-package').addClass('hidden');
external_jQuery_default()('[data-packages-modal] .installation-complete').removeClass('hidden'); external_jQuery_default()('[data-packages-modal] .installation-complete').removeClass('hidden');
@ -11371,9 +11533,6 @@ external_jQuery_default()(document).on('closed', '[data-remodal-id="changelog"]'
var instance = (external_jQuery_default()).remodal.lookup[external_jQuery_default()('[data-remodal-id=changelog]').data('remodal')]; var instance = (external_jQuery_default()).remodal.lookup[external_jQuery_default()('[data-remodal-id=changelog]').data('remodal')];
instance.$modal.html(''); instance.$modal.html('');
}); });
// EXTERNAL MODULE: ./node_modules/es6-map/index.js
var es6_map = __webpack_require__(1520);
var es6_map_default = /*#__PURE__*/__webpack_require__.n(es6_map);
;// CONCATENATED MODULE: ./app/utils/sidebar.js ;// CONCATENATED MODULE: ./app/utils/sidebar.js
function sidebar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function sidebar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@ -11383,14 +11542,13 @@ function sidebar_createClass(Constructor, protoProps, staticProps) { if (protoPr
var MOBILE_BREAKPOINT = 48 - 0.062; var MOBILE_BREAKPOINT = 48 - 0.062;
var DESKTOP_BREAKPOINT = 75 + 0.063; var DESKTOP_BREAKPOINT = 75 + 0.063;
var EVENTS = 'touchstart._grav click._grav'; var EVENTS = 'touchstart._grav click._grav';
var TARGETS = '[data-sidebar-mobile-toggle], #overlay'; var TARGETS = '[data-sidebar-mobile-toggle], #overlay';
var MOBILE_QUERY = "(max-width: ".concat(MOBILE_BREAKPOINT, "em)"); var MOBILE_QUERY = "(max-width: ".concat(MOBILE_BREAKPOINT, "em)");
var DESKTOP_QUERY = "(min-width: ".concat(DESKTOP_BREAKPOINT, "em)"); var DESKTOP_QUERY = "(min-width: ".concat(DESKTOP_BREAKPOINT, "em)");
var map = new (es6_map_default())(); var map = new __webpack_require__.g.Map();
var Sidebar = /*#__PURE__*/function () { var Sidebar = /*#__PURE__*/function () {
function Sidebar() { function Sidebar() {
@ -11699,7 +11857,7 @@ external_jQuery_default()(__webpack_require__.g).on('sidebar_state._grav', funct
/***/ }), /***/ }),
/***/ 36531: /***/ 19912:
/***/ ((module, exports, __webpack_require__) => { /***/ ((module, exports, __webpack_require__) => {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
@ -14517,7 +14675,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
/***/ }), /***/ }),
/***/ 92511: /***/ 31619:
/***/ (() => { /***/ (() => {
// localStorage // localStorage
@ -14777,8 +14935,8 @@ var map = {
"./si.js": 90124, "./si.js": 90124,
"./sk": 64249, "./sk": 64249,
"./sk.js": 64249, "./sk.js": 64249,
"./sl": 34082, "./sl": 14985,
"./sl.js": 34082, "./sl.js": 14985,
"./sq": 51104, "./sq": 51104,
"./sq.js": 51104, "./sq.js": 51104,
"./sr": 49131, "./sr": 49131,
@ -14797,8 +14955,8 @@ var map = {
"./te.js": 23110, "./te.js": 23110,
"./tet": 52095, "./tet": 52095,
"./tet.js": 52095, "./tet.js": 52095,
"./tg": 44257, "./tg": 27321,
"./tg.js": 44257, "./tg.js": 27321,
"./th": 9041, "./th": 9041,
"./th.js": 9041, "./th.js": 9041,
"./tk": 19005, "./tk": 19005,
@ -14863,6 +15021,46 @@ webpackContext.id = 46700;
/***/ }), /***/ }),
/***/ 56089:
/***/ ((module) => {
"use strict";
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==";
/***/ }),
/***/ 17735:
/***/ ((module) => {
"use strict";
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=";
/***/ }),
/***/ 96192:
/***/ ((module) => {
"use strict";
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC";
/***/ }),
/***/ 71090:
/***/ ((module) => {
"use strict";
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=";
/***/ }),
/***/ 46050:
/***/ ((module) => {
"use strict";
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=";
/***/ }),
/***/ 65311: /***/ 65311:
/***/ ((module) => { /***/ ((module) => {
@ -15006,7 +15204,7 @@ module.exports = jQuery;
/******/ /******/
/******/ /* webpack/runtime/jsonp chunk loading */ /******/ /* webpack/runtime/jsonp chunk loading */
/******/ (() => { /******/ (() => {
/******/ // no baseURI /******/ __webpack_require__.b = document.baseURI || self.location.href;
/******/ /******/
/******/ // object to store loaded and loading chunks /******/ // object to store loaded and loading chunks
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
@ -15047,7 +15245,7 @@ module.exports = jQuery;
/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ installedChunks[chunkId][0](); /******/ installedChunks[chunkId][0]();
/******/ } /******/ }
/******/ installedChunks[chunkIds[i]] = 0; /******/ installedChunks[chunkId] = 0;
/******/ } /******/ }
/******/ return __webpack_require__.O(result); /******/ return __webpack_require__.O(result);
/******/ } /******/ }
@ -15062,7 +15260,7 @@ module.exports = jQuery;
/******/ // startup /******/ // startup
/******/ // Load entry module and return exports /******/ // Load entry module and return exports
/******/ // This entry module depends on other loaded chunks and execution need to be delayed /******/ // This entry module depends on other loaded chunks and execution need to be delayed
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, [736], () => (__webpack_require__(75833))) /******/ var __webpack_exports__ = __webpack_require__.O(undefined, [736], () => (__webpack_require__(56299)))
/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); /******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
/******/ Grav = __webpack_exports__; /******/ Grav = __webpack_exports__;
/******/ /******/

File diff suppressed because one or more lines are too long

View file

@ -11,56 +11,52 @@
"author": "Trilby Media, LLC", "author": "Trilby Media, LLC",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"babel-loader": "^8.2.3",
"buffer": "^6.0.3", "buffer": "^6.0.3",
"chartist": "0.11.4", "chartist": "0.11.4",
"codemirror": "^5.61.0", "codemirror": "^5.65.1",
"debounce": "^1.2.1", "debounce": "^1.2.1",
"dropzone": "^5.9.2", "dropzone": "^5.9.3",
"eonasdan-bootstrap-datetimepicker": "^4.17.49", "eonasdan-bootstrap-datetimepicker": "^4.17.49",
"es6-map": "^0.1.5",
"es6-promise": "^4.2.8",
"eventemitter3": "^4.0.7", "eventemitter3": "^4.0.7",
"events": "^3.3.0", "events": "^3.3.0",
"exif-js": "^2.3.0", "exif-js": "^2.3.0",
"immutable": "^3.8.2", "immutable": "^4.0.0",
"immutablediff": "^0.4.4", "immutablediff": "^0.4.4",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"mout": "^1.2.2", "mout": "^1.2.3",
"popper.js": "^1.14.4", "popper.js": "^1.14.4",
"rangetouch": "^2.0.1", "rangetouch": "^2.0.1",
"remodal": "^1.1.1", "remodal": "^1.1.1",
"selectize": "^0.12.6", "selectize": "^0.12.6",
"simplebar": "^5.3.2", "simplebar": "^5.3.6",
"sortablejs": "^1.13.0", "sortablejs": "^1.14.0",
"speakingurl": "^14.0.1", "speakingurl": "^14.0.1",
"toastr": "^2.1.4", "toastr": "^2.1.4",
"watchjs": "0.0.0", "watchjs": "0.0.0",
"whatwg-fetch": "^3.6.2", "whatwg-fetch": "^3.6.2"
"yarn": "^1.22.10"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.14.0", "@babel/core": "^7.17.0",
"@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-proposal-class-properties": "^7.16.7",
"@babel/plugin-proposal-json-strings": "^7.13.8", "@babel/plugin-proposal-json-strings": "^7.16.7",
"@babel/plugin-proposal-object-rest-spread": "^7.13.8", "@babel/plugin-proposal-object-rest-spread": "^7.16.7",
"@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/polyfill": "^7.12.1", "@babel/polyfill": "^7.12.1",
"@babel/preset-env": "^7.14.0", "@babel/preset-env": "^7.16.11",
"@babel/register": "^7.13.16", "@babel/register": "^7.17.0",
"babel-eslint": "^10.1.0", "css-loader": "^6.6.0",
"babel-loader": "^8.2.2", "eslint": "^8.8.0",
"css-loader": "^5.2.4", "eslint-webpack-plugin": "^3.1.1",
"eslint": "^7.25.0", "exports-loader": "^3.1.0",
"eslint-loader": "^4.0.2", "imports-loader": "^3.1.1",
"exports-loader": "^2.0.0",
"imports-loader": "^2.0.0",
"json-loader": "^0.5.7", "json-loader": "^0.5.7",
"minimist": "^1.2.5", "minimist": "^1.2.5",
"style-loader": "^2.0.0", "style-loader": "^3.3.1",
"terser-webpack-plugin": "^5.1.1", "terser-webpack-plugin": "^5.3.1",
"webpack": "^5.36.2", "webpack": "^5.68.0",
"webpack-cli": "^4.6.0" "webpack-cli": "^4.9.2"
}, },
"resolutions": { "resolutions": {
"minimist": "^1.2.5" "minimist": "^1.2.5"

View file

@ -1527,7 +1527,11 @@ form {
border-bottom: 1px solid $underline; border-bottom: 1px solid $underline;
&:hover { &:hover {
@if (lightness($content-tabs-bg) < 50) {
background: lighten($content-bg, 2%); background: lighten($content-bg, 2%);
} @else {
background: darken($content-bg, 5%);
}
} }
} }
} }

View file

@ -3,6 +3,27 @@
$preview-width: 200px; $preview-width: 200px;
$preview-height: 150px; $preview-height: 150px;
.pagemedia-field {
.form-label {
display: flex;
justify-content: space-between;
margin-right: 1.5rem;
align-items: center;
label {
cursor: pointer;
flex: 1;
}
}
input[type="range"] {
&::-webkit-slider-runnable-track {
background: inherit !important;
border: none !important;
}
}
}
.dropzone { .dropzone {
position: relative; position: relative;
border-radius: $form-border-radius; border-radius: $form-border-radius;
@ -77,7 +98,7 @@ $preview-height: 150px;
.dz-progress { .dz-progress {
position: absolute; position: absolute;
top: $preview-height; bottom: auto;
left: 0px; left: 0px;
right: 0px; right: 0px;
height: 4px; height: 4px;

View file

@ -742,6 +742,22 @@ textarea.frontmatter {
[data-collection-nosort] .collection-sort { [data-collection-nosort] .collection-sort {
display: none; display: none;
} }
.list-confirm-deletion {
cursor: pointer;
display: flex;
position: absolute !important;
z-index: 10010;
padding: .5rem;
top: 13px;
right: 20px;
> i, span {
text-align: center;
display: inline-flex;
align-items: center;
}
}
} }
.form-label.block { .form-label.block {

View file

@ -1,7 +1,9 @@
{% extends "forms/field.html.twig" %} {% extends "forms/field.html.twig" %}
{% block field %} {% block field %}
{% embed 'forms/default/fields.html.twig' with {name: field.name, fields: field.fields} %} {% set name = parent_name|parent_field ~ '.' ~ field.name %}
{% set fields = prepare_form_fields(field.fields, name) %}
{% embed 'forms/default/fields.html.twig' with {name: name, fields: fields} %}
{% set initial_state = field.name|string is not same as (parent_value|string) ? 'display: none;' %} {% set initial_state = field.name|string is not same as (parent_value|string) ? 'display: none;' %}
{% block outer_markup_field_open %} {% block outer_markup_field_open %}
<div id="{{ parent_name ~ '__' ~ field.name|string }}" class="form-element" style="{{ initial_state }}"> <div id="{{ parent_name ~ '__' ~ field.name|string }}" class="form-element" style="{{ initial_state }}">

View file

@ -14,8 +14,7 @@
{{ parent() }} {{ parent() }}
{% set parent_name = field.name %} {% set parent_name = field.name %}
{% set parent_value = value %} {% set parent_value = value %}
{% set fields = prepare_form_fields(field.fields, field.name) %}
{% if fields|length %} {% if fields|length %}
{% include 'forms/default/fields.html.twig' with {name: field.name, fields: fields} %} {% include 'forms/default/fields.html.twig' with {name: parent_name, fields: field.fields} %}
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View file

@ -70,6 +70,9 @@
{% endif %} {% endif %}
{% set field_templates = include_form_field(child.type, field_layout, default_layout) %} {% set field_templates = include_form_field(child.type, field_layout, default_layout) %}
{% if default_layout != 'key' %}
{% set originalValue = child_value %}
{% endif %}
{% include field_templates with { field: child, value: child_value } %} {% include field_templates with { field: child, value: child_value } %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}

View file

@ -87,7 +87,7 @@
{% elseif child.name == 'value' %} {% elseif child.name == 'value' %}
{# Special handling for the value field #} {# Special handling for the value field #}
{% set child = child|merge({ name: item_name }) %} {% set child = child|merge({ name: item_name }) %}
{% set child_value = value %} {% set child_value = val %}
{% else %} {% else %}
{% set child_value = form ? form.value(child.name) : data.value(child.name) %} {% set child_value = form ? form.value(child.name) : data.value(child.name) %}
{% endif %} {% endif %}
@ -109,7 +109,11 @@
<i class="fa fa-chevron-circle-{{ field.collapsed ? 'right' : 'down' }}" data-action="{{ field.collapsed ? 'expand' : 'collapse' }}"></i> <i class="fa fa-chevron-circle-{{ field.collapsed ? 'right' : 'down' }}" data-action="{{ field.collapsed ? 'expand' : 'collapse' }}"></i>
<br /> <br />
{% endif %} {% endif %}
<i class="fa fa-trash-o" data-action="delete"></i> <i class="fa fa-trash-o" data-action="confirm"></i>
<div class="list-confirm-deletion button danger hidden" data-action="delete">
<i class="fa fa-fw text-primary fa-check"></i>
<span>{{ 'PLUGIN_ADMIN.DELETE'|t }}</span>
</div>
</div> </div>
</li> </li>
{% endfor %} {% endfor %}
@ -163,7 +167,11 @@
<i class="fa fa-chevron-circle-down" data-action="collapse"></i> <i class="fa fa-chevron-circle-down" data-action="collapse"></i>
<br /> <br />
{% endif %} {% endif %}
<i class="fa fa-trash-o" data-action="delete"></i> <i class="fa fa-trash-o" data-action="confirm"></i>
<div class="list-confirm-deletion button danger hidden" data-action="delete">
<i class="fa fa-fw text-primary fa-check"></i>
<span>{{ 'PLUGIN_ADMIN.DELETE'|t }}</span>
</div>
</div> </div>
{%- endif -%} {%- endif -%}
</li> </li>

View file

@ -26,12 +26,19 @@
{% set media_path = url(context.relativePagePath) %} {% set media_path = url(context.relativePagePath) %}
{% set media_uri = context.mediaUri() %} {% set media_uri = context.mediaUri() %}
{% set dropzone_settings = { maxFilesize: form_max_filesize }|merge(pagemedia_settings) %} {% set dropzone_settings = { maxFilesize: form_max_filesize }|merge(pagemedia_settings) %}
{% set pageMediaStore = get_cookie('grav-admin-pagemedia')|default('{"width":200,"collapsed":false}')|json_decode %}
<div class="form-field grid vertical {% if field.classes is defined %}{{ field.classes }}{% endif %}"> <div class="pagemedia-field form-field grid vertical {% if field.classes is defined %}{{ field.classes }}{% endif %}">
<div class="form-label"> <div class="form-label">
<label>{{ field.label|t }}</label> <label class="media-collapser">
<i class="fa fa-fw small fa-chevron-{{ pageMediaStore.collapsed ? 'right' : 'down' }}"></i>
{{ field.label|t }} <span data-pagemedia-count>({{ admin.page.media|length }})</span>
</label>
<div class="{{ pageMediaStore.collapsed ? 'hidden' : '' }}">
<input type="range" min="70" step="10" max="200" value="{{ pageMediaStore.width }}" class="media-resizer">
</div> </div>
<div class="form-data form-uploads-wrapper"> </div>
<div class="form-data form-uploads-wrapper" style="{{ pageMediaStore.collapsed ? 'display: none;' : '' }}">
<div id="grav-dropzone" <div id="grav-dropzone"
class="dropzone" class="dropzone"
data-media-url="{{ (base_url ~ media_url)|e('html_attr') }}" data-media-url="{{ (base_url ~ media_url)|e('html_attr') }}"

View file

@ -9,7 +9,7 @@
{% set config = twig_vars['config'] %} {% set config = twig_vars['config'] %}
{% set separator = config.system.param_sep %} {% set separator = config.system.param_sep %}
{% set display_field = config.plugins.admin.pages_list_display_field %} {% set display_field = config.plugins.admin.pages_list_display_field %} {# DEPRECATED #}
{% set base_url_relative_frontend = twig_vars['base_url_relative_frontend'] %} {% set base_url_relative_frontend = twig_vars['base_url_relative_frontend'] %}
{% set admin = twig_vars['admin'] %} {% set admin = twig_vars['admin'] %}
{% set warn = twig_vars['warn'] %} {% set warn = twig_vars['warn'] %}

View file

@ -1,5 +1,5 @@
{% if custom_admin_footer %} {% if custom_admin_footer %}
{{ custom_admin_footer|raw }} {{ custom_admin_footer|raw }}
{% else %} {% else %}
<a href="http://getgrav.org" target="_blank" rel="noopener noreferrer">Grav</a> v<span class="grav-version">{{ constant('GRAV_VERSION') }}</span> - Admin v{{ admin_version }} - {{ "PLUGIN_ADMIN.WAS_MADE_WITH"|t|lower }} <i class="fa fa-heart-o pulse"></i> {{ "PLUGIN_ADMIN.BY"|t|lower }} <a href="https://trilby.media" target="_blank" rel="noopener noreferrer">Trilby Media</a>. <a href="https://getgrav.org" target="_blank" rel="noopener noreferrer">Grav</a> v<span class="grav-version">{{ constant('GRAV_VERSION') }}</span> - Admin v{{ admin_version }} - {{ "PLUGIN_ADMIN.WAS_MADE_WITH"|t|lower }} <i class="fa fa-heart-o pulse"></i> {{ "PLUGIN_ADMIN.BY"|t|lower }} <a href="https://trilby.media" target="_blank" rel="noopener noreferrer">Trilby Media</a>.
{% endif %} {% endif %}

View file

@ -3,6 +3,7 @@
<option value="name" selected>{{ "PLUGIN_ADMIN.NAME"|t }}</option> <option value="name" selected>{{ "PLUGIN_ADMIN.NAME"|t }}</option>
<option value="author">{{ "PLUGIN_ADMIN.AUTHOR"|t }}</option> <option value="author">{{ "PLUGIN_ADMIN.AUTHOR"|t }}</option>
<option value="official">GravTeam</option> <option value="official">GravTeam</option>
<option value="premium">Premium</option>
<option value="release-date">{{ "PLUGIN_ADMIN.RELEASE_DATE"|t }}</option> <option value="release-date">{{ "PLUGIN_ADMIN.RELEASE_DATE"|t }}</option>
{% if list_view == 'plugins' and not installing %}<option value="enabled">{{ "PLUGIN_ADMIN.ENABLED"|t }}</option>{% endif %} {% if list_view == 'plugins' and not installing %}<option value="enabled">{{ "PLUGIN_ADMIN.ENABLED"|t }}</option>{% endif %}
{% if not installing %}<option value="updatable">{{ "PLUGIN_ADMIN.UPDATES_AVAILABLE"|t }}</option>{% endif %} {% if not installing %}<option value="updatable">{{ "PLUGIN_ADMIN.UPDATES_AVAILABLE"|t }}</option>{% endif %}

View file

@ -17,16 +17,17 @@
{% for slug, plugin in admin.plugins(not installing).toArray|ksort %} {% for slug, plugin in admin.plugins(not installing).toArray|ksort %}
{% set data = admin.data('plugins/' ~ slug) %} {% set data = admin.data('plugins/' ~ slug) %}
{% set isTestingRelease = admin.gpm.isTestingRelease(slug) %} {% set isTestingRelease = admin.gpm.isTestingRelease(slug) %}
{% set isPremium = admin.isPremiumProduct(plugin) %}
{% set releaseDate = plugin.date ?: admin.gpm.findPackage(slug, true).date %} {% set releaseDate = plugin.date ?: admin.gpm.findPackage(slug, true).date %}
<tr data-gpm-plugin="{{ slug|url_encode }}" data-gpm-name="{{ plugin.name }}" data-gpm-release-date="{{ releaseDate }}" data-gpm-author="{{ plugin.author.name }}" data-gpm-official="{{ admin.isTeamGrav(plugin) ? '1' : '2' }}" data-gpm-updatable="{{ admin.gpm.isUpdatable(slug) ? '1' : '2' }}" data-gpm-enabled="{{ data.get('enabled') ? '1' : '2' }}" data-gpm-testing="{{ isTestingRelease ? '1' : '2' }}"> <tr data-gpm-plugin="{{ slug|url_encode }}" data-gpm-name="{{ plugin.name }}" data-gpm-release-date="{{ releaseDate }}" data-gpm-author="{{ plugin.author.name }}" data-gpm-official="{{ admin.isTeamGrav(plugin) ? '1' : '2' }}" data-gpm-updatable="{{ admin.gpm.isUpdatable(slug) ? '1' : '2' }}" data-gpm-enabled="{{ data.get('enabled') ? '1' : '2' }}" data-gpm-testing="{{ isTestingRelease ? '1' : '2' }}" data-gpm-premium="{{ isPremium ? '1' : '2' }}">
<td class="gpm-name quadruple"> <td class="gpm-name quadruple">
<i class="fa fa-fw fa-{{ plugin.icon }}"></i> <i class="fa fa-fw fa-{{ plugin.icon }}"></i>
<a href="{{ admin_route('/plugins/' ~ slug|url_encode) }}">{{ plugin.name }}</a> <a href="{{ admin_route('/plugins/' ~ slug|url_encode) }}">{{ plugin.name }}</a>
{% if admin.isTeamGrav(plugin) %} {% if admin.isTeamGrav(plugin) %}
<small><span class="info-reverse"><i class="fa fa-check-circle" title="{{ "PLUGIN_ADMIN.GRAV_OFFICIAL_PLUGIN"|t }}"></i></span></small> <small><span class="info-reverse"><i class="fa fa-check-circle" title="{{ "PLUGIN_ADMIN.GRAV_OFFICIAL_PLUGIN"|t }}"></i></span></small>
{% endif %} {% endif %}
{% if admin.isPremiumProduct(plugin) %} {% if isPremium %}
{% if not gumroad_loaded %} {% if not gumroad_loaded %}
{% set gumroad_loaded = true %} {% set gumroad_loaded = true %}
<script src="//gumroad.com/js/gumroad.js"></script> <script src="//gumroad.com/js/gumroad.js"></script>

View file

@ -19,16 +19,17 @@
{% if (installing) %}{% set state = 'installing' %}{% endif %} {% if (installing) %}{% set state = 'installing' %}{% endif %}
{% if (config.get('system.pages.theme') == slug) %}{% set state = 'active' %}{% endif %} {% if (config.get('system.pages.theme') == slug) %}{% set state = 'active' %}{% endif %}
{% set isTestingRelease = admin.gpm.isTestingRelease(slug) %} {% set isTestingRelease = admin.gpm.isTestingRelease(slug) %}
{% set isPremium = admin.isPremiumProduct(theme) %}
{% set releaseDate = theme.date ?: admin.gpm.findPackage(slug, true).date %} {% set releaseDate = theme.date ?: admin.gpm.findPackage(slug, true).date %}
<div class="theme card-item pure-u-1-3 {{ state }}-theme" data-gpm-theme="{{ slug|url_encode }}" data-gpm-name="{{ theme.name }}" data-gpm-release-date="{{ releaseDate }}" data-gpm-author="{{ theme.author.name }}" data-gpm-official="{{ admin.isTeamGrav(theme) ? '1' : '2' }}" data-gpm-updatable="{{ admin.gpm.isUpdatable(slug) ? '1' : '2' }}" data-gpm-enabled="{{ data.get('enabled') ? '1' : '2' }}" data-gpm-testing="{{ isTestingRelease ? '1' : '2' }}"> <div class="theme card-item pure-u-1-3 {{ state }}-theme" data-gpm-theme="{{ slug|url_encode }}" data-gpm-name="{{ theme.name }}" data-gpm-release-date="{{ releaseDate }}" data-gpm-author="{{ theme.author.name }}" data-gpm-official="{{ admin.isTeamGrav(theme) ? '1' : '2' }}" data-gpm-updatable="{{ admin.gpm.isUpdatable(slug) ? '1' : '2' }}" data-gpm-enabled="{{ data.get('enabled') ? '1' : '2' }}" data-gpm-testing="{{ isTestingRelease ? '1' : '2' }}" data-gpm-premium="{{ isPremium ? '1' : '2' }}">
<div class="gpm-name"> <div class="gpm-name">
<i class="fa fa-fw fa-{{ theme.icon }}"></i> <i class="fa fa-fw fa-{{ theme.icon }}"></i>
<a href="{{ admin_route('/themes/' ~ slug|url_encode) }}">{{ theme.name }}</a> <a href="{{ admin_route('/themes/' ~ slug|url_encode) }}">{{ theme.name }}</a>
{% if admin.isTeamGrav(theme) %} {% if admin.isTeamGrav(theme) %}
<small><span class="info-reverse"><i class="fa fa-check-circle" title="{{ "PLUGIN_ADMIN.GRAV_OFFICIAL_THEME"|t }}"></i></span></small> <small><span class="info-reverse"><i class="fa fa-check-circle" title="{{ "PLUGIN_ADMIN.GRAV_OFFICIAL_THEME"|t }}"></i></span></small>
{% endif %} {% endif %}
{% if admin.isPremiumProduct(theme) %} {% if isPremium %}
{% if not gumroad_loaded %} {% if not gumroad_loaded %}
{% set gumroad_loaded = true %} {% set gumroad_loaded = true %}
<script src="//gumroad.com/js/gumroad.js"></script> <script src="//gumroad.com/js/gumroad.js"></script>

View file

@ -1,5 +1,6 @@
const path = require('path'); const path = require('path');
const TerserPlugin = require('terser-webpack-plugin'); const TerserPlugin = require('terser-webpack-plugin');
const ESLintPlugin = require('eslint-webpack-plugin');
module.exports = (env, argv) => ({ module.exports = (env, argv) => ({
entry: { entry: {
@ -32,10 +33,13 @@ module.exports = (env, argv) => ({
jquery: 'jQuery', jquery: 'jQuery',
'grav-config': 'GravAdmin' 'grav-config': 'GravAdmin'
}, },
plugins: [new ESLintPlugin({
extensions: ['js', 'jsx'],
exclude: ['/node_modules/']
})],
module: { module: {
rules: [ rules: [
{ enforce: 'pre', test: /\.json$/, loader: 'json-loader' }, { enforce: 'pre', test: /\.json$/, loader: 'json-loader' },
{ enforce: 'pre', test: /\.js$/, loader: 'eslint-loader', exclude: /node_modules/ },
{ {
test: /\.css$/, test: /\.css$/,
use: ['style-loader', 'css-loader'] use: ['style-loader', 'css-loader']

File diff suppressed because it is too large Load diff

View file

@ -4,4 +4,4 @@
require_once __DIR__ . '/composer/autoload_real.php'; require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit21cdc8503e0b8e5d43533c2109133c23::getLoader(); return ComposerAutoloaderInit38a448a612c5797456d245c809d4a914::getLoader();

Some files were not shown because too many files have changed in this diff Show more