| Matthias Andreas Benkard | ae40234 | 2020-01-25 10:09:57 +0100 | [diff] [blame] | 1 | {@eu.mulk.mulkcms2.benki.wiki.WikiPageRevision page} | 
| Matthias Andreas Benkard | d8f1644 | 2020-01-25 05:37:43 +0100 | [diff] [blame] | 2 |  | 
| Matthias Andreas Benkard | ae40234 | 2020-01-25 10:09:57 +0100 | [diff] [blame] | 3 | {#include base.html} | 
| Matthias Andreas Benkard | ffb428e | 2020-01-25 10:47:36 +0100 | [diff] [blame] | 4 |  | 
| Matthias Andreas Benkard | ae40234 | 2020-01-25 10:09:57 +0100 | [diff] [blame] | 5 | {#title}{page.title} — Benki Wiki{/title} | 
| Matthias Andreas Benkard | ffb428e | 2020-01-25 10:47:36 +0100 | [diff] [blame] | 6 |  | 
 | 7 | {#head} | 
 | 8 | <link rel="stylesheet" type="text/css" href="/web_modules/ContentTools/build/content-tools.min.css" /> | 
| Matthias Andreas Benkard | 93da53a | 2020-02-02 20:30:36 +0100 | [diff] [blame^] | 9 | <script type="module" src="/web_modules/elix/define/ExpandablePanel.js"></script> | 
 | 10 |  | 
 | 11 | <style type="text/css"> | 
 | 12 |   #warning-panel { | 
 | 13 |     background-color: lightcoral; | 
 | 14 |     font-style: italic; | 
 | 15 |   } | 
 | 16 | </style> | 
 | 17 |  | 
| Matthias Andreas Benkard | ffb428e | 2020-01-25 10:47:36 +0100 | [diff] [blame] | 18 | <script type="module"> | 
| Matthias Andreas Benkard | 578c865 | 2020-02-01 23:53:37 +0100 | [diff] [blame] | 19 |   import ContentTools from "/web_modules/ContentTools.js"; | 
| Matthias Andreas Benkard | 2f53745 | 2020-01-27 21:23:00 +0100 | [diff] [blame] | 20 |  | 
| Matthias Andreas Benkard | ffb428e | 2020-01-25 10:47:36 +0100 | [diff] [blame] | 21 |   window.addEventListener('DOMContentLoaded', function() { | 
 | 22 |     let editor = ContentTools.EditorApp.get(); | 
 | 23 |     editor.init('*[data-editable]', 'data-name'); | 
| Matthias Andreas Benkard | 2f53745 | 2020-01-27 21:23:00 +0100 | [diff] [blame] | 24 |  | 
| Matthias Andreas Benkard | d50bbb7 | 2020-01-27 05:53:07 +0100 | [diff] [blame] | 25 |     editor.addEventListener('saved', async function (ev) { | 
| Matthias Andreas Benkard | 93da53a | 2020-02-02 20:30:36 +0100 | [diff] [blame^] | 26 |       document.getElementById("warning-panel").close(); | 
 | 27 |  | 
| Matthias Andreas Benkard | d50bbb7 | 2020-01-27 05:53:07 +0100 | [diff] [blame] | 28 |       let regions = ev.detail().regions; | 
 | 29 |       if (Object.getOwnPropertyNames(regions).length === 0) { | 
 | 30 |         // Nothing changed. | 
 | 31 |         return; | 
 | 32 |       } | 
 | 33 |  | 
 | 34 |       this.busy(true); | 
 | 35 |  | 
 | 36 |       let requestParams = new URLSearchParams(); | 
 | 37 |       for (let name of Object.getOwnPropertyNames(regions)) { | 
 | 38 |         requestParams.append(name, regions[name]); | 
 | 39 |       } | 
 | 40 |  | 
| Matthias Andreas Benkard | 97130f9 | 2020-01-27 21:03:39 +0100 | [diff] [blame] | 41 |       let response = await fetch("/wiki/{page.title}", { | 
| Matthias Andreas Benkard | d50bbb7 | 2020-01-27 05:53:07 +0100 | [diff] [blame] | 42 |         method: 'POST', | 
 | 43 |         body: requestParams | 
 | 44 |       }); | 
| Matthias Andreas Benkard | 97130f9 | 2020-01-27 21:03:39 +0100 | [diff] [blame] | 45 |  | 
| Matthias Andreas Benkard | 93da53a | 2020-02-02 20:30:36 +0100 | [diff] [blame^] | 46 |       if (!response.ok) { | 
 | 47 |         document.getElementById("warning-panel").open(); | 
 | 48 |         document.getElementById("warning-text").innerText = "Failed to save page: " + response.statusText; | 
 | 49 |         this.busy(false); | 
 | 50 |         return; | 
 | 51 |       } | 
 | 52 |  | 
| Matthias Andreas Benkard | 2f53745 | 2020-01-27 21:23:00 +0100 | [diff] [blame] | 53 |       let status = await response.json(); | 
| Matthias Andreas Benkard | 93da53a | 2020-02-02 20:30:36 +0100 | [diff] [blame^] | 54 |       if (status.status !== "ok") { | 
 | 55 |         document.getElementById("warning-panel").open(); | 
 | 56 |         document.getElementById("warning-text").innerText = "Failed to save page: " + JSON.stringify(status); | 
 | 57 |         this.busy(false); | 
 | 58 |         return; | 
 | 59 |       } | 
 | 60 |  | 
 | 61 |       if (status.hasOwnProperty("content")) { | 
 | 62 |         document.getElementById("wiki-content").innerHTML = status.content; | 
| Matthias Andreas Benkard | 2f53745 | 2020-01-27 21:23:00 +0100 | [diff] [blame] | 63 |       } | 
 | 64 |  | 
| Matthias Andreas Benkard | d50bbb7 | 2020-01-27 05:53:07 +0100 | [diff] [blame] | 65 |       this.busy(false); | 
 | 66 |     }); | 
| Matthias Andreas Benkard | ffb428e | 2020-01-25 10:47:36 +0100 | [diff] [blame] | 67 |   }); | 
 | 68 | </script> | 
 | 69 | {/head} | 
 | 70 |  | 
| Matthias Andreas Benkard | ae40234 | 2020-01-25 10:09:57 +0100 | [diff] [blame] | 71 | {#body} | 
 | 72 | <article id="wiki-page"> | 
 | 73 |   <header> | 
| Matthias Andreas Benkard | d50bbb7 | 2020-01-27 05:53:07 +0100 | [diff] [blame] | 74 |     <div data-editable data-name="wiki-title"> | 
 | 75 |       <h1>{page.title}</h1> | 
 | 76 |     </div> | 
| Matthias Andreas Benkard | 93da53a | 2020-02-02 20:30:36 +0100 | [diff] [blame^] | 77 |  | 
 | 78 |     <elix-expandable-panel id="warning-panel"><div id="warning-text"></div></elix-expandable-panel> | 
| Matthias Andreas Benkard | ae40234 | 2020-01-25 10:09:57 +0100 | [diff] [blame] | 79 |   </header> | 
| Matthias Andreas Benkard | d8f1644 | 2020-01-25 05:37:43 +0100 | [diff] [blame] | 80 |  | 
| Matthias Andreas Benkard | ae40234 | 2020-01-25 10:09:57 +0100 | [diff] [blame] | 81 |   <main> | 
| Matthias Andreas Benkard | 2f53745 | 2020-01-27 21:23:00 +0100 | [diff] [blame] | 82 |     <div data-editable data-name="wiki-content" id="wiki-content"> | 
| Matthias Andreas Benkard | 97130f9 | 2020-01-27 21:03:39 +0100 | [diff] [blame] | 83 |       {#with page}{enrichedContent.raw}{/} | 
| Matthias Andreas Benkard | ffb428e | 2020-01-25 10:47:36 +0100 | [diff] [blame] | 84 |     </div> | 
| Matthias Andreas Benkard | ae40234 | 2020-01-25 10:09:57 +0100 | [diff] [blame] | 85 |   </main> | 
| Matthias Andreas Benkard | d8f1644 | 2020-01-25 05:37:43 +0100 | [diff] [blame] | 86 |  | 
| Matthias Andreas Benkard | ae40234 | 2020-01-25 10:09:57 +0100 | [diff] [blame] | 87 |   <hr> | 
| Matthias Andreas Benkard | 9222efa | 2020-01-24 19:11:24 +0100 | [diff] [blame] | 88 |  | 
| Matthias Andreas Benkard | ae40234 | 2020-01-25 10:09:57 +0100 | [diff] [blame] | 89 |   <footer> | 
 | 90 |     <a href="/wiki/{page.title}/revisions">Page revisions</a> | 
 | 91 |   </footer> | 
 | 92 | </article> | 
 | 93 | {/body} | 
| Matthias Andreas Benkard | ffb428e | 2020-01-25 10:47:36 +0100 | [diff] [blame] | 94 |  | 
| Matthias Andreas Benkard | ae40234 | 2020-01-25 10:09:57 +0100 | [diff] [blame] | 95 | {/include} |