{
"version": 3,
"file": "posts.js",
"sourceRoot": "../src/coffee/",
"sources": [
"posts.coffee"
],
"names": [],
"mappings": "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",
"sourcesContent": [
"'use strict'\n\noriginal = []\n\neditorAdd = (elem, tag, par) ->\n\treturn ->\n\t\t# get the textarea and the selection\n\t\ttxt = elem.parentElement.parentElement.text\n\t\tcursor = txt.selectionStart\n\t\tselectionLen = txt.selectionEnd - txt.selectionStart\n\t\ttext = txt.value\n\t\t[start, end] = [txt.selectionStart, txt.selectionEnd]\n\t\ttxt.value = if start is 0 then \"\" else text[..start-1]\n\t\ttxt.value += \"[#{tag}#{if par then \"=#{par}\" else \"\"}]\"\n\t\ttxt.value += \"#{if end > 0 then text[start..end-1] else \"\"}\"\n\t\ttxt.value += \"[/#{tag}]#{text[end..]}\"\n\t\ttxt.selectionStart = cursor + tag.length + (if par then par.length + 1 else 0) + 2\n\t\ttxt.selectionEnd = txt.selectionStart + selectionLen\n\t\ttxt.focus()\n\n\nquoteText = (elem) ->\n\treturn ->\n\t\ttxt = elem.parentElement.parentElement.text\n\t\tselectedText = window.getSelection()?.toString()\n\n\t\tunless selectedText?.length > 0\n\t\t\t# if no text is selected, just add '>' where the cursor is\n\t\t\tsel = txt.selectionStart + 1\n\t\t\ttxt.value =\n\t\t\t\tif txt.selectionStart > 0\n\t\t\t\t\t\"#{txt.value[0...txt.selectionStart]}>#{txt.value[txt.selectionStart..]}\"\n\t\t\t\telse\n\t\t\t\t\t\">#{txt.value}\"\n\t\t\ttxt.focus()\n\t\t\ttxt.selectionEnd = txt.selectionStart = sel\n\t\t\treturn\n\n\t\t# Add selected text to the form, with a > after each newline\n\t\tselectedLines = (\"> #{line}\" for line in selectedText.split(\"\\n\"))\n\t\tif txt.value.length > 0\n\t\t\ttxt.value += \"\\n\"\n\t\ttxt.value += \"#{selectedLines.join(\"\\n\")}\"\n\t\ttxt.focus()\n\n\n# post quote by id\nquotePostId = (id) ->\n\treturn ->\n\t\ttext = document.getElementById \"reply-form-text\"\n\t\tsstart = text.selectionStart\n\t\tsend = text.selectionEnd\n\t\tslen = send - sstart\n\t\tif sstart == 0\n\t\t\tsep = if text.value[sstart] is \"\\n\" then \"\" else \"\\n\"\n\t\t\tif slen == 0\n\t\t\t\ttext.value = \">> ##{id}\" + sep + text.value\n\t\t\telse\n\t\t\t\ttext.value = \">> ##{id}\" + sep + text.value[send..]\n\t\telse\n\t\t\tsep = if text.value[sstart-1] is \"\\n\" then \"\" else \"\\n\"\n\t\t\ttext.value = text.value[0..sstart-1] + sep + \">> ##{id}\\n\" + text.value[send..]\n\t\ttext.selectionStart = text.selectionEnd = send + \">> ##{id}\\n\".length\n\t\ttext.focus()\n\n# Setup editor buttons\naddEditorButtons = (container) ->\n\telements = [\n\t\t{ tag: \"b\", text: \"B\" },\n\t\t{ tag: \"i\", text: \"i\" },\n\t\t{ tag: \"u\", text: \"u\" },\n\t\t{ tag: \"s\", text: \"strike\" },\n\t\t{ tag: \"img\", text: \"img\" },\n\t\t{ tag: \"url\", text: \"url\" },\n\t\t{ tag: \"spoiler\", text: \"spoiler\" },\n\t\t{ tag: \"youtube\", text: \"youtube\" },\n\t\t{ tag: \"html\", text: \"html\" },\n\t\t{ tag: \"video\", text: \"video\" },\n\t\t{ tag: \"video\", text: \"video (looped)\", par: \"gif\" },\n\t\t{ tag: \"pre\", text: \"pre\" },\n\t\t{ action: \"quote\", text: \">\" },\n\t]\n\tfor element in elements\n\t\tbutton = document.createElement 'a'\n\t\tif element.tag?\n\t\t\tbutton.addEventListener \"click\", editorAdd(button, element.tag, element.par)\n\t\tif element.action?\n\t\t\tswitch element.action\n\t\t\t\twhen \"quote\"\n\t\t\t\t\tbutton.addEventListener \"click\", quoteText(button)\n\t\t\t\telse throw new Exception \"Unknown editor op: \" + element.action\n\t\tbutton.innerHTML = element.text\n\t\tcontainer.appendChild button\n\ncancelForm = (id) ->\n\treturn ->\n\t\tpid = if id == 0 then \"thread\" else \"p#{id}\"\n\t\tpost = document.getElementById pid\n\t\tpost.innerHTML = original[id]\n\t\tpost.querySelector('.postEditLink')?.onclick = -> editPost +id\n\t\tpost.querySelector('.postDeleteLink')?.onclick = -> deletePost +id\n\n# post preview\nshowPreview = (where) ->\n\treturn ->\n\t\tform = document.getElementById where\n\t\ttext = (document.getElementById where + \"-text\").value\n\t\tunless text\n\t\t\treturn if form.firstChild.className == 'errmsg'\n\t\t\terrmsg = window.createElementEx \"p\", { className: \"errmsg\", id: \"#{where}-preview\" }\n\t\t\terrmsg.appendChild document.createTextNode \"Please insert some content.\"\n\t\t\tform.insertBefore errmsg, form.firstChild\n\t\t\treturn\n\t\treq = { text: text }\n\t\t# retreive content data from the server\n\t\tqwest.post('/postpreview', req)\n\t\t\t.then (resp) ->\n\t\t\t\tcreatePreview where, resp\n\t\t\t.catch (err) ->\n\t\t\t\treturn if form.firstChild.className == 'errmsg'\n\t\t\t\terrmsg = document.createElement 'p'\n\t\t\t\terrmsg.className = \"errmsg\"\n\t\t\t\terrmsg.innerHTML = \"Failed to retrieve content: #{err}\"\n\t\t\t\tform.insertBefore errmsg, form.firstChild\n\ncreatePreview = (where, content) ->\n\t# deselect selected post, if any\n\to.className = o.className.replace \"post-selected\", \"\" for o in document.querySelectorAll \".post-selected\"\n\t# if preview post already exists, just update it\n\tprevpost = document.getElementById \"#{where}-preview\"\n\tunless prevpost?\n\t\tprevpost = window.createElementEx \"article\", { id: \"#{where}-preview\" }\n\t\tform = document.getElementById(where)\n\t\tform.insertBefore prevpost, form.firstChild\n\n\tprevpost.removeChild prevpost.firstChild while prevpost.firstChild?\n\n\tpreviewAuthor = window.createElementEx \"h3\", { className: \"post-author\" }\n\tpreviewAuthor.appendChild document.createTextNode \"Post preview\"\n\tprevpost.appendChild previewAuthor\n\n\tpreviewContent = window.createElementEx \"div\", { className: \"post-content typebbcode\" }\n\tpreviewContent.innerHTML = content\n\tprevpost.appendChild previewContent\n\n# post edit\neditPost = (id) ->\n\tif id == 0\n\t\tpid = type = \"thread\"\n\t\tidname = \"OP\"\n\telse\n\t\tpid = \"p#{id}\"\n\t\ttype = \"post\"\n\t\tidname = \"##{id}\"\n\tpost = document.getElementById pid\n\tnickspan = document.querySelector \"##{pid} .nickname\"\n\tnick = nickspan.innerHTML\n\ttripcodebar = null\n\tif !window.crOpts.adminMode\n\t\tif nickspan.parentNode.querySelector('span.tripcode')?.innerHTML.length > 0\n\t\t\t# visible tripcode\n\t\t\ttripcodebar = window.createElementEx \"input\", {\n\t\t\t\ttype: \"text\"\n\t\t\t\tname: \"tripcode\"\n\t\t\t\tplaceholder: \"Tripcode (required)\"\n\t\t\t\trequired: true\n\t\t\t\tclassName: \"full short inline verysmall\"\n\t\t\t}\n\t\telse\n\t\t\t# hidden tripcode (post-author contains instead of nick)\n\t\t\thtrip = JSON.parse(window.localStorage?.getItem 'crLatestPost')?.htrip\n\t\t\ttripcodebar = window.createElementEx \"input\", {\n\t\t\t\ttype: \"text\"\n\t\t\t\tname: \"tripcode\"\n\t\t\t\trequired: true\n\t\t\t\tvalue: htrip\n\t\t\t\tclassName: \"unavailable\"\n\t\t\t}\n\n\t# if post is OP, allow editing thread tags\n\ttagsbar = null\n\ttags = post.dataset?.tags\n\tif idname is \"OP\"\n\t\ttagsbar = window.createElementEx \"input\", {\n\t\t\ttype: \"text\"\n\t\t\tname: \"tags\"\n\t\t\tplaceholder: \"Tags (separated by #)\"\n\t\t\tclassName: \"full small\"\n\t\t\tvalue: tags\n\t\t}\n\t\ttagsbar.dataset.acsearch = false\n\toriginal[id] = post.innerHTML\n\n\t# Editor\n\tsection = window.createElementEx \"section\", { id: id, className: \"form\" }\n\n\tanchor = window.createElementEx \"a\", { className: \"nolink\", name: \"edit\" }\n\tsection.appendChild anchor\n\n\teditform = window.createElementEx \"form\", { id: \"edit#{id}\", method: \"POST\" }\n\teditform.action = window.stripPage(location.pathname) + \"/post/\" + id + \"/edit\"\n\tsection.appendChild editform\n\n\tnickbar = document.createElement \"div\"\n\teditform.appendChild nickbar\n\n\tnickname = window.createElementEx \"span\", {\n\t\tclassName: \"full verysmall nickname\",\n\t\tstyle: { display: \"inline-block\", border: \"0\", width: \"auto\" }\n\t}\n\tnickname.innerHTML = nick\n\tnickbar.appendChild nickname\n\n\tif tripcodebar?\n\t\tnickbar.appendChild tripcodebar\n\n\teditingNo = window.createElementEx \"span\", {\n\t\tstyle: { display: \"inline-block\", color: \"#ccc\", fontSize: \"0.9em\", width: \"auto\" }\n\t}\n\teditingNo.appendChild document.createTextNode \"editing #{idname}\"\n\tnickbar.appendChild editingNo\n\n\n\teditorRight = window.createElementEx \"div\", { className: \"small editorButtonCont editorButtonContRight\" }\n\teditform.appendChild editorRight\n\n\tformattingHelper = window.createElementEx \"a\", { target: \"_blank\", href: \"/stiki/formatting\", rel: \"help\" }\n\tformattingHelper.appendChild document.createTextNode \"?\"\n\teditorRight.appendChild formattingHelper\n\n\teditorEditButtons = window.createElementEx \"div\", { className: \"small editorButtonCont\" }\n\taddEditorButtons editorEditButtons\n\teditform.appendChild editorEditButtons\n\n\ttextarea = window.createElementEx \"textarea\", {\n\t\tclassName: \"full small editor\"\n\t\tname: \"text\"\n\t\tid: \"edit#{id}-text\"\n\t\trequired: true\n\t\tplaceholder: \"Retreiving content...\"\n\t}\n\teditform.appendChild textarea\n\n\tif tagsbar?\n\t\teditform.appendChild tagsbar\n\n\tcenterButtonCont = window.createElementEx \"div\", { className: \"center\" }\n\teditform.appendChild centerButtonCont\n\n\tcharCounter = window.createElementEx \"div\", { className: \"chars-count\" }\n\tcharCounter.dataset[\"maxlen\"] = window.crOpts.maxlen\n\tcenterButtonCont.appendChild charCounter\n\n\tsubmit = window.createElementEx \"input\", { type: \"submit\", value: \"Edit post\" }\n\tcenterButtonCont.appendChild submit\n\n\tcancel = window.createElementEx \"button\", { type: \"button\" }\n\tcancel.addEventListener \"click\", cancelForm id\n\tcancel.appendChild document.createTextNode \"Cancel\"\n\tcenterButtonCont.appendChild cancel\n\n\tpreview = window.createElementEx \"input\", { type: \"button\", className: \"button\", value: \"Preview\" }\n\tpreview.addEventListener \"click\", showPreview \"edit#{id}\"\n\tcenterButtonCont.appendChild preview\n\n\tpost.removeChild post.firstChild while post.firstChild?\n\tpost.appendChild section\n\n\tqwest.post(window.stripPage(location.pathname) + \"/post/\" + id + \"/raw\")\n\t\t.then (resp) ->\n\t\t\ttextarea.value = resp\n\t\t\ttextarea.placeholder = \"Post content (Markdown, HTML and BBCode are supported)\"\n\t\t\tcharsCount \"edit#{id}\"\n\t\t.catch (err) ->\n\t\t\treturn if section.firstChild.className == \"errmsg\"\n\t\t\tsection = document.getElementById id\n\t\t\terrmsg = window.createElementEx 'p', {\n\t\t\t\tclassName: \"errmsg\"\n\t\t\t}\n\t\t\terrmsg.appendChild = document.createTextNode \"Failed to retrieve content: #{err}\"\n\t\t\tsection.insertBefore errmsg, section.firstChild\n\n\treturn\n\n# post delete\ndeletePost = (id) ->\n\tif id == 0\n\t\tpid = type = \"thread\"\n\t\tidname = \"OP\"\n\telse\n\t\tpid = \"p#{id}\"\n\t\ttype = \"post\"\n\t\tidname = \"##{id}\"\n\tpost = document.getElementById pid\n\tnickspan = document.querySelector \"##{pid} .nickname\"\n\tnick = nickspan.innerHTML\n\toriginal[id] = post.innerHTML\n\ttripcodebar = null\n\n\tif !window.crOpts.adminMode\n\t\tif nickspan.parentNode.querySelector('span.tripcode')?.innerHTML.length > 0\n\t\t\t# visible tripcode\n\t\t\ttripcodebar = window.createElementEx \"input\", {\n\t\t\t\ttype: \"text\",\n\t\t\t\tname: \"tripcode\",\n\t\t\t\tplaceholder: \"Tripcode (required)\",\n\t\t\t\trequired: true,\n\t\t\t\tclassName: \"full short inline verysmall\"\n\t\t\t}\n\t\telse\n\t\t\t# hidden tripcode (post-author contains instead of nick)\n\t\t\thtrip = JSON.parse(window.localStorage?.getItem 'crLatestPost')?.htrip\n\t\t\ttripcodebar = window.createElementEx \"input\", {\n\t\t\t\ttype: \"text\",\n\t\t\t\tname: \"tripcode\",\n\t\t\t\trequired: true,\n\t\t\t\tvalue: htrip\n\t\t\t}\n\n\tpurge = null\n\tif window.crOpts.adminMode\n\t\tpurge = window.createElementEx \"button\", { name: \"deletetype\", value: \"purge\", type: \"submit\" }\n\t\tpurge.appendChild document.createTextNode \"Purge\"\n\n\tsection = window.createElementEx \"section\", { id: id, className: \"form\" }\n\tadel = window.createElementEx \"a\", { name: \"delete\", className: \"noborder\" }\n\tsection.appendChild adel\n\n\tdelform = window.createElementEx \"form\", { method: \"POST\" }\n\tdelform.action = window.stripPage(location.pathname) + \"/post/\" + id + \"/delete\"\n\tsection.appendChild delform\n\n\tnickbar = document.createElement \"div\"\n\tdelform.appendChild nickbar\n\n\tnickname = window.createElementEx \"span\", {\n\t\tclassName: \"full verysmall nickname\",\n\t\tstyle: { display: \"inline-block\", border: \"0\", width: \"auto\" }\n\t}\n\tnickname.innerHTML = nick\n\tnickbar.appendChild nickname\n\n\tif tripcodebar?\n\t\tnickbar.appendChild tripcodebar\n\n\tdeletingNo = window.createElementEx \"span\", {\n\t\tstyle: { display: \"inline-block\", color: \"#ccc\", fontSize: \"0.9em\", width: \"auto\" }\n\t}\n\tdeletingNo.appendChild document.createTextNode \"deleting #{idname}\"\n\tnickbar.appendChild deletingNo\n\n\tcenterButtonCont = window.createElementEx \"div\", { className: \"center\" }\n\tdelform.appendChild centerButtonCont\n\n\tsubmit = window.createElementEx \"button\", { name: \"deletetype\", value: \"soft\", type: \"submit\" }\n\tsubmit.appendChild document.createTextNode \"Delete\"\n\tcenterButtonCont.appendChild submit\n\n\tcenterButtonCont.appendChild purge if purge?\n\n\tcancel = window.createElementEx \"button\", { type: \"button\" }\n\tcancel.addEventListener \"click\", cancelForm id\n\tcancel.appendChild document.createTextNode \"Cancel\"\n\tcenterButtonCont.appendChild cancel\n\n\tpost.removeChild post.firstChild while post.firstChild?\n\tpost.appendChild section\n\n\treturn\n\n# check form before submitting\nreplyPreSubmit = (elem, threadUrl) ->\n\tnick = document.querySelector(\"##{elem.id} input[name='nickname']\").value\n\tif nick.indexOf('#') > 0 and nick.indexOf('#') == nick.length - 1\n\t\talert \"Tripcode must have at least 1 character.\"\n\t\treturn false\n\treturn true\n\n# remove fallback and set onclick events\nfromList(document.getElementsByClassName 'postEditLink').map (e) ->\n\tpostId = e.dataset?.postid\n\treturn unless postId?\n\te.href = \"#p#{postId}\"\n\te.className =\"postEditLink edit nolink\"\n\tdo (postId) ->\n\t\te.onclick = -> editPost parseInt(postId, 10)\n\nfromList(document.getElementsByClassName 'postDeleteLink').map (e) ->\n\tpostId = e.dataset?.postid\n\treturn unless postId?\n\te.href = \"#p#{postId}\"\n\te.className =\"postDeleteLink delete nolink\"\n\tdo (postId) ->\n\t\te.onclick = -> deletePost parseInt(postId, 10)\n\npreview = document.getElementById \"preview-post\"\nif preview?\n\tpreview.className = \"button\"\n\tpreview.addEventListener \"click\", showPreview \"reply-form\"\n\neditorButtons = document.getElementById \"editorButtons\"\nif editorButtons?\n\taddEditorButtons editorButtons\n\n# Bind submit button\nif location.pathname[1...8] == 'thread/'\n\t# Add quote buttons\n\tfromList(document.getElementsByClassName 'postQuoteButton').map (e) ->\n\t\te.addEventListener \"click\", quotePostId e.dataset.postid\n\n\tdocument.getElementById('reply-form')?.addEventListener 'submit', (event) ->\n\t\treplyPreSubmit(event.target, window.location.pathname.split('/')[2])\n\n\tdocument.getElementById('reply-form')?.addEventListener 'submit', (event) ->\n\t\treplyPreSubmit(event.target, window.location.pathname.split('/')[2])\n"
]
}