mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-11-07 05:45:53 +01:00
Added unset functionality to pagemedia (dropzone) (#1366)
* Added unset functionality to pagemedia (dropzone). Unset removes the file from the page without deleting it from the system. * Update unset.js for formatting * Update unset.js. Removed console log and modified JSON parsing for native faster one. * Updated unset.js. Fixed quote style * Fixed couple issues with the unset of images * Merged with latest Admin
This commit is contained in:
@@ -693,6 +693,7 @@ class AdminPlugin extends Plugin
|
|||||||
'FILE_ERROR_UPLOAD',
|
'FILE_ERROR_UPLOAD',
|
||||||
'DROP_FILES_HERE_TO_UPLOAD',
|
'DROP_FILES_HERE_TO_UPLOAD',
|
||||||
'DELETE',
|
'DELETE',
|
||||||
|
'UNSET',
|
||||||
'INSERT',
|
'INSERT',
|
||||||
'METADATA',
|
'METADATA',
|
||||||
'VIEW',
|
'VIEW',
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ PLUGIN_ADMIN:
|
|||||||
ADD_MODULAR: "Add Modular"
|
ADD_MODULAR: "Add Modular"
|
||||||
MOVE: "Move"
|
MOVE: "Move"
|
||||||
DELETE: "Delete"
|
DELETE: "Delete"
|
||||||
|
UNSET: "Unset"
|
||||||
VIEW: "View"
|
VIEW: "View"
|
||||||
SAVE: "Save"
|
SAVE: "Save"
|
||||||
NORMAL: "Normal"
|
NORMAL: "Normal"
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ const DropzoneMediaConfig = {
|
|||||||
<div class="dz-success-mark"><span>✔</span></div>
|
<div class="dz-success-mark"><span>✔</span></div>
|
||||||
<div class="dz-error-mark"><span>✘</span></div>
|
<div class="dz-error-mark"><span>✘</span></div>
|
||||||
<div class="dz-error-message"><span data-dz-errormessage></span></div>
|
<div class="dz-error-message"><span data-dz-errormessage></span></div>
|
||||||
|
<a class="dz-unset" title="${translations.PLUGIN_ADMIN.UNSET}" href="#" data-dz-unset>${translations.PLUGIN_ADMIN.UNSET}</a>
|
||||||
<a class="dz-remove" title="${translations.PLUGIN_ADMIN.DELETE}" href="javascript:undefined;" data-dz-remove>${translations.PLUGIN_ADMIN.DELETE}</a>
|
<a class="dz-remove" title="${translations.PLUGIN_ADMIN.DELETE}" href="javascript:undefined;" data-dz-remove>${translations.PLUGIN_ADMIN.DELETE}</a>
|
||||||
<a class="dz-metadata" title="${translations.PLUGIN_ADMIN.METADATA}" href="#" target="_blank" data-dz-metadata>${translations.PLUGIN_ADMIN.METADATA}</a>
|
<a class="dz-metadata" title="${translations.PLUGIN_ADMIN.METADATA}" href="#" target="_blank" data-dz-metadata>${translations.PLUGIN_ADMIN.METADATA}</a>
|
||||||
<a class="dz-view" title="${translations.PLUGIN_ADMIN.VIEW}" href="#" target="_blank" data-dz-view>${translations.PLUGIN_ADMIN.VIEW}</a>
|
<a class="dz-view" title="${translations.PLUGIN_ADMIN.VIEW}" href="#" target="_blank" data-dz-view>${translations.PLUGIN_ADMIN.VIEW}</a>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import $ from 'jquery';
|
|||||||
import './add';
|
import './add';
|
||||||
import './move';
|
import './move';
|
||||||
import './delete';
|
import './delete';
|
||||||
|
import './unset';
|
||||||
import './disable-buttons';
|
import './disable-buttons';
|
||||||
import PageMedia, { Instance as PageMediaInstances } from './media';
|
import PageMedia, { Instance as PageMediaInstances } from './media';
|
||||||
import './multilang';
|
import './multilang';
|
||||||
|
|||||||
@@ -194,4 +194,3 @@ export default class PageMedia extends FilesField {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export let Instance = new PageMedia();
|
export let Instance = new PageMedia();
|
||||||
|
|
||||||
|
|||||||
15
themes/grav/app/pages/page/unset.js
Normal file
15
themes/grav/app/pages/page/unset.js
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import $ from 'jquery';
|
||||||
|
|
||||||
|
$(document).on('click', '.dz-unset', function() {
|
||||||
|
$(this).closest('.dz-image-preview').remove();
|
||||||
|
const file_upload = $('.files-upload');
|
||||||
|
const unset_image = $(this).closest('.dz-image-preview').find('[data-dz-name]').text().trim();
|
||||||
|
const images = JSON.parse(file_upload.find('input[data-grav-field="hidden"]').val()) || {};
|
||||||
|
let image_array = {};
|
||||||
|
$.each(images, function(ind, obj) {
|
||||||
|
if (!ind.endsWith(unset_image)) {
|
||||||
|
image_array[ind] = obj;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
file_upload.find('input[data-grav-field="hidden"]').val(JSON.stringify(image_array));
|
||||||
|
});
|
||||||
2
themes/grav/css-compiled/preset.css
vendored
2
themes/grav/css-compiled/preset.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
themes/grav/css-compiled/template.css
vendored
2
themes/grav/css-compiled/template.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
38
themes/grav/js/admin.min.js
vendored
38
themes/grav/js/admin.min.js
vendored
File diff suppressed because one or more lines are too long
54
themes/grav/js/vendor.min.js
vendored
54
themes/grav/js/vendor.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1328,7 +1328,7 @@ form {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.dz-remove, .dz-view, .dz-insert, .dz-metadata {
|
.dz-remove, .dz-unset, .dz-view, .dz-insert, .dz-metadata {
|
||||||
|
|
||||||
background: darken($content-bg,5%);
|
background: darken($content-bg,5%);
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ $preview-height: 150px;
|
|||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
.dz-remove, .dz-view, .dz-insert, .dz-metadata {
|
.dz-remove, .dz-unset, .dz-view, .dz-insert, .dz-metadata {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,7 +120,7 @@ $preview-height: 150px;
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
//.dz-remove, .dz-insert {
|
//.dz-remove, .dz-unset, .dz-insert {
|
||||||
// display: none;
|
// display: none;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
@@ -138,7 +138,7 @@ $preview-height: 150px;
|
|||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dz-remove, .dz-view, .dz-insert, .dz-metadata {
|
.dz-remove, .dz-unset, .dz-view, .dz-insert, .dz-metadata {
|
||||||
display: none;
|
display: none;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 25px;
|
width: 25px;
|
||||||
@@ -180,6 +180,13 @@ $preview-height: 150px;
|
|||||||
|
|
||||||
.dz-remove {
|
.dz-remove {
|
||||||
top: 72px;
|
top: 72px;
|
||||||
|
&:after {
|
||||||
|
content: '\f1f8';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-unset {
|
||||||
|
top: 96px;
|
||||||
border-bottom-right-radius: 4px;
|
border-bottom-right-radius: 4px;
|
||||||
&:after {
|
&:after {
|
||||||
content: '\f00d';
|
content: '\f00d';
|
||||||
@@ -201,10 +208,13 @@ $preview-height: 150px;
|
|||||||
.dz-remove {
|
.dz-remove {
|
||||||
top: 24px;
|
top: 24px;
|
||||||
}
|
}
|
||||||
|
.dz-unset {
|
||||||
|
top: 72px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//&:hover .dz-remove:not(.file-thumbnail-remove), &:hover .dz-insert {
|
//&:hover .dz-remove, .dz-unset:not(.file-thumbnail-remove), &:hover .dz-insert {
|
||||||
// display: block;
|
// display: block;
|
||||||
// position: absolute;
|
// position: absolute;
|
||||||
// left: 0;
|
// left: 0;
|
||||||
@@ -216,7 +226,7 @@ $preview-height: 150px;
|
|||||||
// font-size: 0.8rem;
|
// font-size: 0.8rem;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
&:hover .dz-remove {
|
&:hover .dz-remove, &:hover .dz-unset {
|
||||||
&.file-thumbnail-remove {
|
&.file-thumbnail-remove {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
@@ -232,7 +242,7 @@ $preview-height: 150px;
|
|||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
//&.hide-backface:hover {
|
//&.hide-backface:hover {
|
||||||
// .dz-remove, .dz-insert {
|
// .dz-remove, .dz-unset, .dz-insert {
|
||||||
// display: none;
|
// display: none;
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
|
|||||||
Reference in New Issue
Block a user