var index = location.search.slice(1)
if (index.length > 0) {
document.title = 'TextBoard - ' + index
}
var md = new remarkable.Remarkable();
var pagedata = { doPageExist: undefined, doEditNeedPwd: undefined, doViewNeedPwd: undefined, successful: undefined, viewpwd: undefined, editpwd: undefined }
function read(data) {
if (data.status == 'error') {
alert('密码错误,查看失败')
$('#text').text('密码错误,查看失败')
} else if (typeof data.text == 'string') {
pagedata.text = data.text
pagedata.successful = true
$('#text')[0].innerHTML = md.render(data.text)
}
}
function write(data) {
if (data.status == 'error') {
alert('密码错误,修改失败')
}
}
function check(data) {
pagedata.doViewNeedPwd = data.viewpwd
pagedata.doEditNeedPwd = data.editpwd
pagedata.doPageExist = data.existing
if (!data.viewpwd) {
$.post(`/api/read`, { index: index }, read)
} else {
password = pagedata.viewpwd ? pagedata.viewpwd : prompt('请输入查看密码:')
if (password == undefined) return
if (typeof password == 'string') pagedata.viewpwd = password
$.post(`/api/read`, { index: index, password: password }, read)
}
}
function edit() {
if (!pagedata.successful) {
return
}
if (!pagedata.edit) {
$('#textarea')[0].textContent = pagedata.text
$('#textarea')[0].value = pagedata.text
pagedata.edit = true
$('#edit')[0].classList.add('hidden')
$('#submit')[0].classList.remove('hidden')
$('#text')[0].classList.add('hidden')
$('#textarea')[0].classList.remove('hidden')
updateTextareaSize()
}
}
function submit() {
if (!pagedata.successful) {
return
}
if (!pagedata.edit) {
return
}
payload = { index: index, text: $('#textarea')[0].value }
if (pagedata.doPageExist) {
let password
if (pagedata.doEditNeedPwd) {
password = pagedata.editpwd ? pagedata.editpwd : prompt('请输入编辑密码:')
if (password == undefined) return
if (typeof password == 'string') pagedata.editpwd = password
}
if (password) {
payload.password = password
}
} else {
editpwd = prompt('请为该页面设置编辑密码,直接确定则不设密码:')
viewpwd = prompt('请为该页面设置查看密码,直接确定则不设密码:')
if (editpwd) {
payload.editpwd = editpwd
}
if (viewpwd) {
payload.viewpwd = viewpwd
}
}
pagedata.successful = false
$('#text').text('正在重新加载……')
$.post(`/api/write`, payload, write)
$.get(`/api/check?index=${index}`, check)
pagedata.edit = false
$('#edit')[0].classList.remove('hidden')
$('#submit')[0].classList.add('hidden')
$('#text')[0].classList.remove('hidden')
$('#textarea')[0].classList.add('hidden')
}
function updateTextareaSize() {
input = $('#textarea')[0]
input.style.height = 0;
input.style.height = input.scrollHeight + 'px';
}
$('#textarea')[0].oninput = updateTextareaSize
updateTextareaSize()
$.get(`/api/check?index=${index}`, check)