Mercurial > libervia-web
diff libervia/pages/blog/edit/_browser/__init__.py @ 1420:925a7c498cda
pages (blog/edit): move preview code to new `BlogEditor` class in `editor` module
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 01 May 2021 18:50:04 +0200 |
parents | 0554103ec700 |
children |
line wrap: on
line diff
--- a/libervia/pages/blog/edit/_browser/__init__.py Thu Apr 29 20:51:36 2021 +0200 +++ b/libervia/pages/blog/edit/_browser/__init__.py Sat May 01 18:50:04 2021 +0200 @@ -1,58 +1,6 @@ -from browser import document, window, aio, bind -from aio_bridge import Bridge, BridgeException import editor -import dialog -from javascript import JSON -from template import Template - -bridge = Bridge() -item_tpl = Template('blog/item.html') -tab_select = window.tab_select - -async def on_preview(evt): - elt = evt.target - tab_preview = document["tab_preview"] - tab_preview.clear() - form = document["blog_post_edit"] - data = { - "content_rich": form.select_one('textarea[name="body"]').value.strip() - } - title = form.select_one('input[name="title"]').value.strip() - if title: - data["title_rich"] = title - tags = form.select_one('input[name="tags"]').value.strip() - if tags: - data['tags'] = [t.strip() for t in tags.split(',') if t.strip()] - try: - preview_data = JSON.parse(await bridge.mbPreview("", "", JSON.stringify(data))) - except BridgeException as e: - dialog.notification.show( - f"Can't generate item preview: {e.message}", - level="error" - ) - else: - tab_select(elt, "tab_preview", "is-active") - item_elt = item_tpl.get_elt({ - "item": preview_data, - "dates_format": "short", - }) - tab_preview <= item_elt - - -@bind(".click_to_edit", "click") -def on_edit(evt): - tab_select(evt.target, "tab_edit", "is-active") - - -@bind(document["blog_post_edit"], "submit") -def on_submit(evt): - submit_btn = document.select_one("button[type='submit']") - submit_btn.classList.add("is-loading") - - -for elt in document.select('.click_to_preview'): - elt.bind("click", lambda evt: aio.run(on_preview(evt))) editor.set_form_autosave("blog_post_edit") +editor.BlogEditor() editor.TagsEditor("input[name='tags']")