|
|
|
@ -1,11 +1,12 @@
|
|
|
|
import { saveSelection, loadSelection } from "./caret.js";
|
|
|
|
import { saveSelection, loadSelection } from "./caret.js";
|
|
|
|
import { normalizePagename } from "./tools.js";
|
|
|
|
import { normalizeName } from "./tools.js";
|
|
|
|
|
|
|
|
|
|
|
|
function setEditable() {
|
|
|
|
function setEditable() {
|
|
|
|
let editModeButton = document.getElementById('editModeButton');
|
|
|
|
let editModeButton = document.getElementById('editModeButton');
|
|
|
|
let cheezenotes = document.getElementById('cheezenotes');
|
|
|
|
let cheezenotes = document.getElementById('cheezenotes');
|
|
|
|
if (editModeButton.classList.contains('buttonoff')) {
|
|
|
|
if (editModeButton.classList.contains('buttonoff')) {
|
|
|
|
cheezenotes.contentEditable = false;
|
|
|
|
cheezenotes.contentEditable = false;
|
|
|
|
|
|
|
|
window.getSelection().removeAllRanges();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
cheezenotes.contentEditable = true;
|
|
|
|
cheezenotes.contentEditable = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -94,6 +95,7 @@ function onlinkin(e) {
|
|
|
|
let link = e.currentTarget;
|
|
|
|
let link = e.currentTarget;
|
|
|
|
if (document.getElementById('cheezenotes') !== document.activeElement) {
|
|
|
|
if (document.getElementById('cheezenotes') !== document.activeElement) {
|
|
|
|
document.getElementById('cheezenotes').contentEditable = false;
|
|
|
|
document.getElementById('cheezenotes').contentEditable = false;
|
|
|
|
|
|
|
|
window.getSelection().removeAllRanges();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -103,10 +105,11 @@ function onlink(e) {
|
|
|
|
e.preventDefault();
|
|
|
|
e.preventDefault();
|
|
|
|
setEditable();
|
|
|
|
setEditable();
|
|
|
|
let link = e.currentTarget;
|
|
|
|
let link = e.currentTarget;
|
|
|
|
if (link.host !== document.location.host) {
|
|
|
|
let datahref = link.getAttribute('data-href');
|
|
|
|
|
|
|
|
if (datahref.includes('/')) {
|
|
|
|
open(link.href);
|
|
|
|
open(link.href);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
fetch(link.href + '?data=&fromDomain=' + window.domain + '&fromPage=' + window.page).then((response) => {
|
|
|
|
fetch(link.href + '?data=&fromDomain=' + window.domain + '&fromPage=' + window.page + '&libelle=' + link.innerText).then((response) => {
|
|
|
|
let ta = document.getElementById('ta');
|
|
|
|
let ta = document.getElementById('ta');
|
|
|
|
response.text().then((data) => {
|
|
|
|
response.text().then((data) => {
|
|
|
|
let content = document.getElementById('content');
|
|
|
|
let content = document.getElementById('content');
|
|
|
|
@ -114,9 +117,9 @@ function onlink(e) {
|
|
|
|
let top = content.scrollTop;
|
|
|
|
let top = content.scrollTop;
|
|
|
|
window.history.replaceState({ top: top, left: left }, "");
|
|
|
|
window.history.replaceState({ top: top, left: left }, "");
|
|
|
|
window.history.pushState({}, "", link.href);
|
|
|
|
window.history.pushState({}, "", link.href);
|
|
|
|
document.title = 'CheezeNotes - ' + link.getAttribute('data-href');
|
|
|
|
document.title = 'CheezeNotes - ' + datahref;
|
|
|
|
ta.value = data;
|
|
|
|
ta.value = data;
|
|
|
|
let url = link.getAttribute('data-href').split('/');
|
|
|
|
let url = datahref.split(':');
|
|
|
|
let page = url[0];
|
|
|
|
let page = url[0];
|
|
|
|
let domain = window.domain;
|
|
|
|
let domain = window.domain;
|
|
|
|
if (url.length == 3) {
|
|
|
|
if (url.length == 3) {
|
|
|
|
@ -145,7 +148,19 @@ function onlinkout(e) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function onclickcheckbox(e) {
|
|
|
|
|
|
|
|
let cheezenotes = document.getElementById('cheezenotes');
|
|
|
|
|
|
|
|
cheezenotes.contentEditable = false;
|
|
|
|
|
|
|
|
window.getSelection().removeAllRanges();
|
|
|
|
|
|
|
|
console.log("onclickcheckbox");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function oncheckbox(e) {
|
|
|
|
function oncheckbox(e) {
|
|
|
|
|
|
|
|
/*let cheezenotes = document.getElementById('cheezenotes');
|
|
|
|
|
|
|
|
cheezenotes.contentEditable = false;
|
|
|
|
|
|
|
|
window.getSelection().removeAllRanges();*/
|
|
|
|
|
|
|
|
console.log("oncheckbox");
|
|
|
|
|
|
|
|
|
|
|
|
let cb = e.currentTarget;
|
|
|
|
let cb = e.currentTarget;
|
|
|
|
let line = cb.parentNode;
|
|
|
|
let line = cb.parentNode;
|
|
|
|
let text = line.innerText;
|
|
|
|
let text = line.innerText;
|
|
|
|
@ -270,6 +285,7 @@ function formatLine(line) {
|
|
|
|
for (let i = 0; i < checkboxes.length; i++) {
|
|
|
|
for (let i = 0; i < checkboxes.length; i++) {
|
|
|
|
let checkbox = checkboxes[i];
|
|
|
|
let checkbox = checkboxes[i];
|
|
|
|
checkbox.addEventListener('mouseover', onlinkin);
|
|
|
|
checkbox.addEventListener('mouseover', onlinkin);
|
|
|
|
|
|
|
|
checkbox.addEventListener('click', onclickcheckbox);
|
|
|
|
checkbox.addEventListener('change', oncheckbox);
|
|
|
|
checkbox.addEventListener('change', oncheckbox);
|
|
|
|
checkbox.addEventListener('mouseout', onlinkout);
|
|
|
|
checkbox.addEventListener('mouseout', onlinkout);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -581,16 +597,26 @@ function formatLink(link) {
|
|
|
|
if (href == '') {
|
|
|
|
if (href == '') {
|
|
|
|
href = libelle;
|
|
|
|
href = libelle;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (href.match(/^[^\:\/]+\/.*$/)) {
|
|
|
|
let datahref = href;
|
|
|
|
href = '/' + href;
|
|
|
|
|
|
|
|
|
|
|
|
if (href.match(/\:\/\//)) {
|
|
|
|
|
|
|
|
datahref = href;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
let dh = datahref.split(':');
|
|
|
|
|
|
|
|
if (dh.length === 1) {
|
|
|
|
|
|
|
|
datahref = window.domain + ":" + datahref;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
datahref = normalizeName(datahref);
|
|
|
|
|
|
|
|
href = window.base_url + datahref;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (libelle == '') {
|
|
|
|
if (libelle == '') {
|
|
|
|
return '<span class="token">[](</span><a class="link" data-href="' + href + '" href="' + href + '">' + url + '</a><span class="token">)</span>';
|
|
|
|
return '<span class="token">[](</span><a class="link" data-href="' + datahref + '" href="' + href + '">' + url + '</a><span class="token">)</span>';
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
if (libelle.startsWith('!')) {
|
|
|
|
if (libelle.startsWith('!')) {
|
|
|
|
return '<span class="token">[' + libelle + '</span><img style="vertical-align: top; max-height: 1rem;" class="image" src="' + href + '" title="' + libelle.substring(1) + '" /><span class="token">](' + url + ')</span>';
|
|
|
|
return '<span class="token">[' + libelle + '</span><img style="vertical-align: top; max-height: 1rem;" class="image" src="' + href + '" title="' + libelle.substring(1) + '" /><span class="token">](' + url + ')</span>';
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
return '<span class="token">[</span><a class="link" data-href="' + href + '" href="' + href + '">' + libelle + '</a><span class="token">](' + url + ')</span>';
|
|
|
|
return '<span class="token">[</span><a class="link" data-href="' + datahref + '" href="' + href + '">' + libelle + '</a><span class="token">](' + url + ')</span>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|