mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-17 04:46:22 +00:00
feat(editor): preguntar al restaurar borrador
no lo pude testear por el problema que tuve
This commit is contained in:
parent
79197956f2
commit
b0e2cec22f
6 changed files with 34 additions and 2 deletions
|
@ -33,6 +33,9 @@
|
||||||
background: white;
|
background: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.editor-toolbar-aviso-guardado {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
.editor-aviso-word {
|
.editor-aviso-word {
|
||||||
display: none;
|
display: none;
|
||||||
position: initial; /* evitar que tape el texto */
|
position: initial; /* evitar que tape el texto */
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { storeContent, restoreContent, forgetContent } from 'editor/storage'
|
import { storeContent, restoreContent, hasContent, forgetContent } from 'editor/storage'
|
||||||
import { isDirectChild, moveChildren, safeGetSelection, safeGetRangeAt, setAuxiliaryToolbar, parentBlockNames } from 'editor/utils'
|
import { isDirectChild, moveChildren, safeGetSelection, safeGetRangeAt, setAuxiliaryToolbar, parentBlockNames } from 'editor/utils'
|
||||||
import { types, getValidChildren, getType } from 'editor/types'
|
import { types, getValidChildren, getType } from 'editor/types'
|
||||||
import { setupButtons as setupMarksButtons } from 'editor/types/marks'
|
import { setupButtons as setupMarksButtons } from 'editor/types/marks'
|
||||||
|
@ -182,6 +182,10 @@ export interface Editor {
|
||||||
},
|
},
|
||||||
contentEl: HTMLElement,
|
contentEl: HTMLElement,
|
||||||
wordAlertEl: HTMLElement,
|
wordAlertEl: HTMLElement,
|
||||||
|
guardado: {
|
||||||
|
alertEl: HTMLElement,
|
||||||
|
restoreEl: HTMLButtonElement,
|
||||||
|
},
|
||||||
htmlEl: HTMLTextAreaElement,
|
htmlEl: HTMLTextAreaElement,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,6 +223,10 @@ function setupEditor (editorEl: HTMLElement): void {
|
||||||
},
|
},
|
||||||
contentEl: getSel(editorEl, '.editor-content'),
|
contentEl: getSel(editorEl, '.editor-content'),
|
||||||
wordAlertEl: getSel(editorEl, '.editor-aviso-word'),
|
wordAlertEl: getSel(editorEl, '.editor-aviso-word'),
|
||||||
|
guardado: {
|
||||||
|
alertEl: getSel(editorEl, '.editor-toolbar-aviso-guardado'),
|
||||||
|
restoreEl: getSel(editorEl, '[data-editor-button=restore]'),
|
||||||
|
},
|
||||||
htmlEl: getSel(editorEl, 'textarea'),
|
htmlEl: getSel(editorEl, 'textarea'),
|
||||||
}
|
}
|
||||||
console.debug('iniciando editor', editor)
|
console.debug('iniciando editor', editor)
|
||||||
|
@ -228,7 +236,13 @@ function setupEditor (editorEl: HTMLElement): void {
|
||||||
// después o la versión local es la última.
|
// después o la versión local es la última.
|
||||||
//
|
//
|
||||||
// TODO: Preguntar si se lo quiere recuperar.
|
// TODO: Preguntar si se lo quiere recuperar.
|
||||||
|
if (hasContent(editor)) {
|
||||||
|
editor.guardado.alertEl.style.display = 'block'
|
||||||
|
editor.guardado.restoreEl.addEventListener('click', () => {
|
||||||
restoreContent(editor)
|
restoreContent(editor)
|
||||||
|
editor.guardado.alertEl.style.display = 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// Word alert
|
// Word alert
|
||||||
editor.contentEl.addEventListener('paste', () => {
|
editor.contentEl.addEventListener('paste', () => {
|
||||||
|
|
|
@ -22,6 +22,10 @@ export function storeContent (editor: Editor): void {
|
||||||
window.localStorage.setItem(getStorageKey(editor), editor.contentEl.innerHTML)
|
window.localStorage.setItem(getStorageKey(editor), editor.contentEl.innerHTML)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function hasContent (editor: Editor): boolean {
|
||||||
|
return !!window.localStorage.getItem(getStorageKey(editor))
|
||||||
|
}
|
||||||
|
|
||||||
export function restoreContent (editor: Editor): void {
|
export function restoreContent (editor: Editor): void {
|
||||||
const content = window.localStorage.getItem(getStorageKey(editor))
|
const content = window.localStorage.getItem(getStorageKey(editor))
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,10 @@
|
||||||
|
|
||||||
TODO: Eliminar todo el espacio en blanco para minificar HTML
|
TODO: Eliminar todo el espacio en blanco para minificar HTML
|
||||||
.editor-toolbar{ style: 'z-index: 1' }
|
.editor-toolbar{ style: 'z-index: 1' }
|
||||||
|
.editor-toolbar-aviso-guardado.alert.alert-primary
|
||||||
|
%p= t('editor.saved.alert')
|
||||||
|
%button.btn{ type: 'button', data: { 'editor_button': 'restore' } }= t('editor.saved.restore')
|
||||||
|
|
||||||
.editor-primary-toolbar.scrollbar-black
|
.editor-primary-toolbar.scrollbar-black
|
||||||
%button.btn{ type: 'button', title: t('editor.multimedia'), data: { editor_button: 'multimedia' } }>
|
%button.btn{ type: 'button', title: t('editor.multimedia'), data: { editor_button: 'multimedia' } }>
|
||||||
%i.fa.fa-fw.fa-upload>
|
%i.fa.fa-fw.fa-upload>
|
||||||
|
|
|
@ -604,6 +604,9 @@ en:
|
||||||
url: Address
|
url: Address
|
||||||
more: More heading levels
|
more: More heading levels
|
||||||
word: "If you're pasting from an hegemonic word processor, please be patient with us, it's not always simple to recover the whole format :)"
|
word: "If you're pasting from an hegemonic word processor, please be patient with us, it's not always simple to recover the whole format :)"
|
||||||
|
saved:
|
||||||
|
alert: "You have a draft of the article saved, do you want to restore it?"
|
||||||
|
restore: "Restore draft"
|
||||||
email_address:
|
email_address:
|
||||||
address_unknown: "the address is unknown"
|
address_unknown: "the address is unknown"
|
||||||
domain_does_not_accept_email: "this domain is not configured to accept email"
|
domain_does_not_accept_email: "this domain is not configured to accept email"
|
||||||
|
|
|
@ -617,6 +617,10 @@ es:
|
||||||
url: Dirección
|
url: Dirección
|
||||||
more: Más niveles de título
|
more: Más niveles de título
|
||||||
word: "Si estás pegando texto desde un hegemónico editor de texto que empieza con W, por favor tenenos paciencia, no siempre es simple recuperar y respetar todo el formato :)"
|
word: "Si estás pegando texto desde un hegemónico editor de texto que empieza con W, por favor tenenos paciencia, no siempre es simple recuperar y respetar todo el formato :)"
|
||||||
|
saved:
|
||||||
|
alert: "Tenés un borrador del artículo guardado, ¿querés restaurarlo?"
|
||||||
|
restore: "Restaurar artículo"
|
||||||
|
|
||||||
email_address:
|
email_address:
|
||||||
address_unknown: "la dirección es desconocida"
|
address_unknown: "la dirección es desconocida"
|
||||||
domain_does_not_accept_email: "el nombre de dominio no acepta correo"
|
domain_does_not_accept_email: "el nombre de dominio no acepta correo"
|
||||||
|
|
Loading…
Reference in a new issue