diff options
author | Evgeny Zinoviev <me@ch1p.io> | 2022-07-11 02:59:35 +0300 |
---|---|---|
committer | Evgeny Zinoviev <me@ch1p.io> | 2022-07-11 02:59:40 +0300 |
commit | 864e73cdc75a2fb0e4fad500f649dae2343c10a8 (patch) | |
tree | 6ce6762c6be72c98592a32fe0bed4f2ce751d544 /htdocs/js/admin.js | |
parent | cb13ea239b9f1ca6aea43125d5694d5a55dcd287 (diff) |
rewrite css and js assets building
Diffstat (limited to 'htdocs/js/admin.js')
-rw-r--r-- | htdocs/js/admin.js | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/htdocs/js/admin.js b/htdocs/js/admin.js deleted file mode 100644 index a717d5c..0000000 --- a/htdocs/js/admin.js +++ /dev/null @@ -1,193 +0,0 @@ -var LS = window.localStorage; - -var Draft = { - get: function() { - if (!LS) return null; - - var title = LS.getItem('draft_title') || null; - var text = LS.getItem('draft_text') || null; - - return { - title: title, - text: text - }; - }, - - setTitle: function(text) { - if (!LS) return null; - LS.setItem('draft_title', text); - }, - - setText: function(text) { - if (!LS) return null; - LS.setItem('draft_text', text); - }, - - reset: function() { - if (!LS) return; - LS.removeItem('draft_title'); - LS.removeItem('draft_text'); - } -}; - -var AdminWriteForm = { - form: null, - previewTimeout: null, - previewRequest: null, - - init: function(opts) { - opts = opts || {}; - - this.opts = opts; - this.form = document.forms[opts.pages ? 'pageForm' : 'postForm']; - this.isFixed = false; - - addEvent(this.form, 'submit', this.onSubmit); - if (!opts.pages) - addEvent(this.form.title, 'input', this.onInput); - - addEvent(this.form.text, 'input', this.onInput); - addEvent(ge('toggle_wrap'), 'click', this.onToggleWrapClick); - - if (this.form.text.value !== '') - this.showPreview(); - - // TODO make it more clever and context-aware - /*var draft = Draft.get(); - if (draft.title) - this.form.title.value = draft.title; - if (draft.text) - this.form.text.value = draft.text;*/ - - addEvent(window, 'scroll', this.onScroll); - addEvent(window, 'resize', this.onResize); - }, - - showPreview: function() { - if (this.previewRequest !== null) { - this.previewRequest.abort(); - } - this.previewRequest = ajax.post('/admin/markdown-preview.ajax', { - title: this.form.elements.title.value, - md: this.form.elements.text.value, - use_image_previews: this.opts.pages ? 1 : 0 - }, function(err, response) { - if (err) - return console.error(err); - ge('preview_html').innerHTML = response.html; - }); - }, - - onSubmit: function(event) { - try { - var fields = ['title', 'text']; - if (!this.opts.pages) - fields.push('tags'); - if (this.opts.edit) { - fields.push('new_short_name'); - } else { - fields.push('short_name'); - } - for (var i = 0; i < fields.length; i++) { - var field = fields[i]; - if (event.target.elements[field].value.trim() === '') - throw 'no_'+field - } - - // Draft.reset(); - } catch (e) { - var error = typeof e == 'string' ? lang((this.opts.pages ? 'err_pages_' : 'err_blog_')+e) : e.message; - alert(error); - console.error(e); - return cancelEvent(event); - } - }, - - onToggleWrapClick: function(e) { - var textarea = this.form.elements.text; - if (!hasClass(textarea, 'nowrap')) { - addClass(textarea, 'nowrap'); - } else { - removeClass(textarea, 'nowrap'); - } - return cancelEvent(e); - }, - - onInput: function(e) { - if (this.previewTimeout !== null) { - clearTimeout(this.previewTimeout); - } - this.previewTimeout = setTimeout(function() { - this.previewTimeout = null; - this.showPreview(); - - // Draft[e.target.name === 'title' ? 'setTitle' : 'setText'](e.target.value); - }.bind(this), 300); - }, - - onScroll: function() { - var ANCHOR_TOP = 10; - - var y = window.pageYOffset; - var form = this.form; - var td = ge('form_first_cell'); - var ph = ge('form_placeholder'); - - var rect = td.getBoundingClientRect(); - - if (rect.top <= ANCHOR_TOP && !this.isFixed) { - ph.style.height = form.getBoundingClientRect().height+'px'; - - var w = (rect.width - (parseInt(getComputedStyle(td).paddingRight, 10) || 0)); - form.style.display = 'block'; - form.style.width = w+'px'; - form.style.position = 'fixed'; - form.style.top = ANCHOR_TOP+'px'; - - this.isFixed = true; - } else if (rect.top > ANCHOR_TOP && this.isFixed) { - form.style.display = ''; - form.style.width = ''; - form.style.position = ''; - form.style.position = ''; - ph.style.height = ''; - - this.isFixed = false; - } - }, - - onResize: function() { - if (this.isFixed) { - var form = this.form; - var td = ge('form_first_cell'); - var ph = ge('form_placeholder'); - - var rect = td.getBoundingClientRect(); - var pr = parseInt(getComputedStyle(td).paddingRight, 10) || 0; - - ph.style.height = form.getBoundingClientRect().height+'px'; - form.style.width = (rect.width - pr) + 'px'; - } - } -}; -bindEventHandlers(AdminWriteForm); - -var BlogUploadList = { - submitNoteEdit: function(action, note) { - if (note === null) - return; - - var form = document.createElement('form'); - form.setAttribute('method', 'post'); - form.setAttribute('action', action); - - var input = document.createElement('input'); - input.setAttribute('type', 'hidden'); - input.setAttribute('name', 'note'); - input.setAttribute('value', note); - - form.appendChild(input); - document.body.appendChild(form); - form.submit(); - } -}; |