From d18cadd884aa627a36ba3b16c08cc4b39f4042bb Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Thu, 22 Nov 2018 16:41:52 +0000 Subject: [PATCH] Add missing JS. --- sourcing/static/js/build_links.js | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 sourcing/static/js/build_links.js diff --git a/sourcing/static/js/build_links.js b/sourcing/static/js/build_links.js new file mode 100644 index 0000000..199d10f --- /dev/null +++ b/sourcing/static/js/build_links.js @@ -0,0 +1,47 @@ + $('#new-link').hide(); + $('#new-link').click((e) => { + var selection = window.getSelection(); + if(selection.type != 'Range') + return; + + var range = selection.getRangeAt(0); + var start = range.startContainer; + var start_element = range.startContainer.parentElement; + var end_element = range.endContainer.parentElement; + + var start = parseInt(start_element.getAttribute('data-start')) + range.startOffset; + var end = parseInt(end_element.getAttribute('data-start')) + range.endOffset; + var length = end - start; + + console.log('start', start, 'length', length); + + var text = start_element.textContent; + var text1 = text.substring(0, range.startOffset); + var text2 = text.substring(range.startOffset + 1); + + console.log([text1, text2]); + + var e = start_element; + var count = 0; + + while (e != end_element && count < 50) { + $(e).wrapInner(''); + count++; + e = e.nextElementSibling; + } + e = end_element; + $(e).wrapInner(''); + + selection.removeAllRanges(); + $('#new-link').hide(); + + }); + + document.addEventListener('selectionchange', () => { + var selection = window.getSelection(); + if (selection.toString()) { + $('#new-link').show(); + } else { + $('#new-link').hide(); + } + });