El administrador de activos no elimina archivos en el servidor a menos que se active la subida.
Hola Göranpero reapareciendo al recargar la página Inicializas el gestor de activos con 'Assets: allfiles', así que si no cambias 'allfiles', siempre obtienes el mismo conjunto de imágenesAdemás, al arrastrar una imagen al lienzo, la imagen no aparece. Solo el ico de "archivo perdido" y el nombre de la imagen. Para es...
Lee la respuesta completa abajo ↓Pregunta
Ejecutando la última versión (0.14.29) en el servidor local. Usando el preajuste de página web de ejemplo. Ubuntu 18.04, Chromium 68.
Assetmanager en la iniciativa:
assetManager: {
Tipo de almacenamiento: '',
storeOnChange: cierto,
storeAfterUpload: cierto,
embedAsBase64: 1,
Activos: all_files,
noAssets: '¡No hay recursos aquí, arrastra para subir!',
uploadFile: función (e) {
var files = e.dataTransfer ? e.dataTransfer.files: e.target.files;
var formData = new FormData();
for (var i in files) {
formData.append('file-' + i, files[i]);
console.log('Archivo (i): ' + i + ' Archivos: ' + archivos);
}
$.ajax({
URL: '/file_upload',
tipo: 'POST',
data: formData,
contentType: false,
crossDomain: cierto,
dataType: 'json',
mimeType: "multipart/form-data",
procesData: false,
éxito: función (resultado) {
var images = result['data'];
editor. AssetManager.add (imágenes);
console.log(imágenes);
}
});
},
cabeceras: {},
params: {},
autoAdd: 1,
uploadText: 'Deja archivos aquí o haz clic para subir.',
addBtnText: 'Añadir imagen',
Zona de caída: 0,
openAssetsOnDrop: 0,
dropzoneContent: '<div class="dropzone-inner">Drop media aquí.</div>'
modalTítulo: 'Seleccionar imagen',
},
Y extender el tipo de imagen:
const am = editor. Gestor de Activos;
editor. AssetManager.add(all_files);
Gestor de activos
Extiende la 'imagen' original y añade un cuadro de confirmación antes de eliminarla
console.log('Añadir funciones de imagen personalizadas');
am.addType('image', {
Al añadir sobre un tipo ya definido, puedes evitar indicar
'am.getType('image').view.extend({...' el editor lo hará por defecto
pero eventualmente puedes ampliar otro tipo
Vista: {
Si quieres ver más formas de extender, échale un vistazo
https://github.com/artf/grapesjs/blob/dev/src/asset_manager/view/AssetImageView.js
onRemove(e) {
e.stopPropagation();
modelo const = este.modelo;
console.log(modelo);
console.log('ID:')
console.log(modelo['atributos']['id'])
if (confirm('¿Estás seguro?')) {
$.post('/file_delete/', {
id: modelo['atributos']['id'],
}, función (resultado) {
si (resultado['éxito']) {
console.log('Archivo eliminado en el servidor: ' + model['atributos']['id']);
model.collection.remove(model);
} else {
model.collection.remove(model);
console.log('No se ha podido eliminar el archivo del servidor.');
}
}, 'json');
}
}
},
});
La all_files variable es cargar desde php, y tiene los datos y formato correctos, todas las imágenes almacenadas en el servidor.
El problema es que el onRemove no se activa como debería. Las imágenes aparecen correctamente en el modal de assetmanager, pero al pulsar la X la función no se activa. Pero se eliminan en modal, pero reaparecen al recargar la página. Pero si subo un archivo, entonces funciona. Aparece la ventana emergente de confirmación y el archivo se elimina correctamente en el servidor. ¿Alguna idea de por qué está pasando esto? ¿Me he perdido algo o es un error?
Además, al arrastrar una imagen al lienzo, la imagen no aparece. Solo el ico de "archivo perdido" y el nombre de la imagen.
¡Cualquier ayuda será bienvenida!
Respuestas (3)
Hola Göran
pero reapareciendo al recargar la página
Inicializas el gestor de activos con 'Assets: all_files', así que si no cambias 'all_files', siempre obtienes el mismo conjunto de imágenes
Además, al arrastrar una imagen al lienzo, la imagen no aparece. Solo el ico de "archivo perdido" y el nombre de la imagen.
Para esto, me gustaría pedir que creen otro número y quizá también con la demo
@artf No creo que me hayas entendido. Están reapareciendo porque no se eliminaron del servidor. all_files se generan mediante recarga de página en php y muestran los archivos correctos en el servidor.
El problema es que onRemove no se activa en absoluto hasta que subo un archivo, entonces se activa. ¿Por qué?
Ah, vale, probablemente porque tus assets ya están renderizados. Intenta aplicar esos cambios pero dentro de un plugin
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #1441
Arrastrar la imagen al lienzo no muestra la imagen
Ejecutando la última versión (0.14.29) en el servidor local. Usando el preajuste de página web de ejemplo. Ubuntu 18.04, Chromium 69. Tengo...
Issue #1468
[bug] modaltitle sin efecto
Hola, No puedo traducir el título de gestor de activos al francés. Ejemplo: assetManager: { Tipo de almacenamiento: '', storeOnChange: cier...
Issue #1476
[INSECTO]? Botón de eliminar de Administrador de Activos para activos
Usando la plantilla web predefinida de demo como punto de partida, noté que el botón de eliminar activo no aparece en la interfaz. La fuent...
Issue #1020
[¿PREGUNTAS/ERROR?] Conexión no local
Estoy usando la última versión con mi portátil Ubuntu. Node está instalado, "npm start" funciona pero no consigo acceder a grapesjs desde o...
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.
Explora plugins gratuitos →Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.
Explora plugins premium →Tutoriales relacionados
Guías detalladas sobre el mismo tema.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.