Remplacer simpleMDE par un éditeur maison #110

Merged
Darks merged 34 commits from new_editor into dev 2022-12-18 00:08:52 +01:00
2 changed files with 30 additions and 9 deletions
Showing only changes of commit 5e368ac08b - Show all commits

View File

@ -105,10 +105,14 @@ function editor_clear_modals(event, close = true) {
event.stopPropagation()
// Reset all modal inputs
document.getElementById('img-alt-input').value = '';
document.getElementById('img-link-input').value = '';
document.getElementById('media-alt-input').value = '';
document.getElementById('media-link-input').value = '';
document.getElementById('link-desc-input').value = '';
document.getElementById('link-desc-input').value = '';
const media_type = document.getElementsByName("media-type");
for(i = 0; i < media_type.length; i++) {
media_type[i].checked = false;
}
// Close all modal if requested
if (!close) { return }
@ -116,7 +120,7 @@ function editor_clear_modals(event, close = true) {
for (const i of modals) {i.style.display = 'none'};
}
function editor_insert_link(event, link_id, text_id, image = false)
function editor_insert_link(event, link_id, text_id, media = false)
{
const [editor, button, ta] = editor_event_source(event);
ta.focus();
@ -125,11 +129,19 @@ function editor_insert_link(event, link_id, text_id, image = false)
const link = document.getElementById(link_id).value;
const text = document.getElementById(text_id).value;
let media_type = "";
const media_selector = document.getElementsByName("media-type");
for(i = 0; i < media_selector.length; i++) {
if(media_selector[i].checked) {
media_type = `{type=${media_selector[i].value}}`;
}
}
editor_clear_modals(event);
let [start, end] = editor_replace_range(ta, indexStart, indexEnd,
`[${text.length === 0 ? ta.value.substring(indexStart, indexEnd) : text}]${image ? "!" : ""}(${link})`);
`[${text.length === 0 ? ta.value.substring(indexStart, indexEnd) : text}]${media ? "!" : ""}(${link})${media ? media_type : ""}`);
/* Restore selection */
if(indexStart != indexEnd) {

View File

@ -127,13 +127,22 @@
</svg>
<div class="modal" style="display: none">
<div>
<label for="img-alt-input">Texte alternatif (sera affiché en cas d'erreur de chargement)</label>
<input type="text" id="img-alt-input" name="img-alt-input">
<label for="img-link-input">Lien vers l'image</label>
<input type="url" id="img-link-input" name="img-link-input">
<label for="media-alt-input">Texte alternatif (sera affiché en cas d'erreur de chargement)</label>
<input type="text" id="media-alt-input" name="media-alt-input">
<label for="media-link-input">Lien vers le média</label>
<input type="url" id="media-link-input" name="media-link-input">
<fieldset title="Optionel mais peut être important si le type de média n'est pas correctement détecté">
<legend>
Type de média
</legend>
<label for="media-type-video" title="Vidéo">Vidéo</label>
<input type="radio" id="media-type-video" name="media-type" value="video" title="Vidéo" />
<label for="media-type-image" title="Image">Image</label>
<input type="radio" id="media-type-image" name="media-type" value="image" title="Image" />
</fieldset>
</div>
<div>
<a type="button" class="button bg-ok" onclick="editor_insert_link(event, 'img-link-input', 'img-alt-input', true)">Valider</a>
<a type="button" class="button bg-ok" onclick="editor_insert_link(event, 'media-link-input', 'media-alt-input', true)">Valider</a>
<a type="button" class="button bg-error" onclick="editor_clear_modals(event)">Annuler</a>
</div>
</div>