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

This commit is contained in:
Andy Miller
2019-03-04 20:05:47 -07:00
5 changed files with 78 additions and 31 deletions

View File

@@ -5,6 +5,7 @@
* Improved image background overlay and tools
1. [](#bugfix)
* Incorrect 2FA lang code [#1618](https://github.com/getgrav/grav-plugin-admin/issues/1618)
* Fixed potential undefined property in `onPageNotFound` event handling
# v1.9.0-rc.3
## 02/18/2019

View File

@@ -499,7 +499,9 @@ class AdminPlugin extends Plugin
if (empty($this->grav['page'])) {
if ($this->grav['user']->authenticated) {
$event = $this->grav->fireEvent('onPageNotFound');
$event = new Event(['page' => null]);
$event->page = null;
$event = $this->grav->fireEvent('onPageNotFound', $event);
/** @var Page $page */
$page = $event->page;

View File

@@ -106,6 +106,7 @@ export default class FilesField {
if (!this.container.length) { return; }
this.urls = {};
this.customPost = this.container.data('filePostAdd') || {};
this.options = Object.assign({}, Dictionary, DropzoneMediaConfig, {
klass: this,
url: this.container.data('file-url-add') || config.current_url,
@@ -158,7 +159,6 @@ export default class FilesField {
dropzone.files.push(mock);
dropzone.options.addedfile.call(dropzone, mock);
if (mock.type.match(/^image\//)) {
console.log('mock');
dropzone.options.thumbnail.call(dropzone, mock, data.path);
dropzone.createThumbnailFromUrl(mock, data.path);
}
@@ -174,10 +174,17 @@ export default class FilesField {
}
onDropzoneSending(file, xhr, formData) {
formData.append('name', this.options.dotNotation);
if (Object.keys(this.customPost).length) {
Object.keys(this.customPost).forEach((key) => {
formData.append(key, this.customPost[key]);
});
} else {
formData.append('name', this.options.dotNotation);
formData.append('task', 'filesupload');
formData.append('uri', this.getURI());
}
formData.append('admin-nonce', config.admin_nonce);
formData.append('task', 'filesupload');
formData.append('uri', this.getURI());
}
onDropzoneSuccess(file, response, xhr) {
@@ -197,7 +204,6 @@ export default class FilesField {
input.val(value + ' ');
}
console.log(file.previewElement);
$(file.previewElement).find('[data-dz-unset]').css('display', null);
return this.handleError({
@@ -237,7 +243,7 @@ export default class FilesField {
onDropzoneRemovedFile(file, ...extra) {
if (!file.accepted || file.rejected) { return; }
let url = file.removeUrl || this.urls.delete;
let url = file.removeUrl || this.urls.delete || this.options.url;
let path = (url || '').match(/path:(.*)\//);
let body = { filename: file.name, uri: this.getURI() };
@@ -246,6 +252,17 @@ export default class FilesField {
body.session = file.sessionParams;
}
const customPost = this.container.data('filePostRemove') || {};
if (Object.keys(customPost).length) {
body = {};
Object.keys(customPost).forEach((key) => {
body[key] = customPost[key];
});
}
body['filename'] = file.name;
body['admin-nonce'] = config.admin_nonce;
request(url, { method: 'post', body }, () => {
if (!path) { return; }

File diff suppressed because one or more lines are too long

View File

@@ -35,10 +35,11 @@
{% set blueprint_name = type ~ '/' ~ blueprint_name %}
{% endif %}
{% set blueprint = base64_encode(blueprint_name) %}
{% set real_path = value.thumb ?? global.admin.getPagePathFromToken(path) %}
{% set remove = global.file_url_remove ? global.file_url_remove : (global.base_url_relative ~ '/media.json') %}
{% set remove = uri.addNonce(
remove ~
{% set real_path = value.thumb ?? global.context.media[path].relativePath ?? global.form.getPagePathFromToken(path) ?? global.admin.getPagePathFromToken(path) %}
{% set remove = global.file_task_remove ? global.file_url_remove : uri.addNonce(
global.file_url_remove ~
'/media.json' ~
'/route' ~ config.system.param_sep ~ base64_encode(global.base_path ~ '/' ~ real_path) ~
'/task' ~ config.system.param_sep ~ 'removeFileFromBlueprint' ~
'/proute' ~ config.system.param_sep ~ base64_encode(route) ~
@@ -59,14 +60,39 @@
{% set limit = not field.multiple ? 1 : files.limit %}
{% block input %}
{% set upload_limit = config.system.media.upload_limit / 1024 / 1024 %}
{% set form_max_filesize = form_max_filesize ?: config.system.media.upload_limit / 1024 / 1024 %}
{% set page_can_upload = exists or (type == 'page' and not exists and not (field.destination starts with '@self' or field.destination starts with 'self@')) %}
{% if type is not defined or page_can_upload %}
{% if form or (type is not defined or page_can_upload) %}
{% set settings = {name: field.name, paramName: (scope ~ field.name)|fieldName ~ (files.multiple ? '[]' : ''), limit: limit, filesize: upload_limit, accept: files.accept, resolution: files.resolution, resizeWidth: files.resizeWidth, resizeHeight: files.resizeHeight, resizeQuality: files.resizeQuality } %}
{% block prepend %}{% endblock %}
{% set settings = {name: field.name, paramName: (scope ~ field.name)|fieldName ~ (files.multiple ? '[]' : ''), limit: limit, filesize: form_max_filesize, accept: files.accept, resolution: files.resolution, resizeWidth: files.resizeWidth, resizeHeight: files.resizeHeight, resizeQuality: files.resizeQuality } %}
{% set dropzoneSettings = field.dropzone %}
{% if form.getMediaTaskRoute() %}
{% set file_url_add = base_url_relative ~ form.getMediaTaskRoute({}, 'json') %}
{% set file_task_add = {task: 'media.upload', name: field.name, '__form-name__': form.name, '__unique_form_id__': form.uniqueid} %}
<div class="form-input-wrapper dropzone files-upload {% if field.fancy is not same as(false) %}form-input-file{% endif %} {{ field.size|default('xlarge') }}" data-grav-file-settings="{{ settings|json_encode|e('html_attr') }}" {% if file_url_add %}data-file-url-add="{{ file_url_add }}"{% endif %} {% if file_url_remove %}data-file-url-remove="{{ file_url_remove }}"{% endif %}>
<input
{% set file_url_remove = base_url_relative ~ form.getMediaTaskRoute({}, 'json') %}
{% set file_task_remove = {task: 'media.delete', name: field.name, '__form-name__': form.name, '__unique_form_id__': form.uniqueid} %}
{% else %}
{% set file_url_remove = file_url_remove ?: base_url_relative %}
{% endif %}
<div class="{{ form_field_wrapper_classes ?: 'form-input-wrapper' }} {{ field.classes }} dropzone files-upload {% if field.fancy is not same as(false) %}form-input-file{% endif %} {{ field.size }}"
data-grav-file-settings="{{ settings|json_encode|e('html_attr') }}"
data-dropzone-options="{{ dropzoneSettings|json_encode|e('html_attr') }}"
{% if file_task_add and file_task_remove %}
data-file-post-add="{{ file_task_add|json_encode|e('html_attr') }}"
data-file-post-remove="{{ file_task_remove|json_encode|e('html_attr') }}"
data-file-url-add="{{ file_url_add }}"
data-file-url-remove="{{ file_url_remove }}"
{% else %}
{% if file_url_add %}data-file-url-add="{{ file_url_add }}"{% endif %}
{% if file_url_remove %}data-file-url-remove="{{ file_url_remove }}"{% endif %}
{% endif %}
>
{% block file_extras %}{% endblock %}
<input
{# required attribute structures #}
{% block input_attributes %}
type="file"
@@ -74,14 +100,15 @@
{% if files.accept %}accept="{{ files.accept|join(',') }}"{% endif %}
{% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %}
{% if field.random_name %}random="true"{% endif %}
{% if required %}required="required"{% endif %}
{{ parent() }}
{% endblock %}
/>
/>
{% for path, file in value %}
{{ macro.preview(path, file, _context) }}
{% endfor %}
{% include 'forms/fields/hidden/hidden.html.twig' with {field: {name: '_json.' ~ field.name}, value:value|raw|json_encode} %}
{% for path, file in value %}
{{ macro.preview(path, file, _context) }}
{% endfor %}
{% include 'forms/fields/hidden/hidden.html.twig' with {field: {name: '_json.' ~ field.name}, value: value|json_encode} %}
</div>
{% else %}