Fossil SCM
Experimentally add a 'toggle header' button to maximize screen space on mobile devices.
Commit
6ffb97a8c50b08f461587616e219a90eff8abf3b6754dde51a6e96eac444b254
Parent
205d80ed0494183…
1 file changed
+16
-1
+16
-1
| --- src/fossil.page.forumpost.js | ||
| +++ src/fossil.page.forumpost.js | ||
| @@ -52,10 +52,11 @@ | ||
| 52 | 52 | mimetype: F.nu(), |
| 53 | 53 | button: F.nu() |
| 54 | 54 | }); |
| 55 | 55 | const wrapper = e.widget = D.addClass(D.div(), 'ForumPostEditor'); |
| 56 | 56 | D.clearElement(wrapper); |
| 57 | + | |
| 57 | 58 | if( !opt.inReplyTo ){ |
| 58 | 59 | /* Title... */ |
| 59 | 60 | e.titleBar = D.addClass(D.div(),'titlebar'); |
| 60 | 61 | e.title = D.addClass(D.input('text'), 'title'); |
| 61 | 62 | e.title.setAttribute('maxlength', 125); |
| @@ -99,10 +100,11 @@ | ||
| 99 | 100 | e.mimetype.wrapper.append(e.mimetype.label); |
| 100 | 101 | } |
| 101 | 102 | e.mimetype.wrapper.append(e.mimetype.select); |
| 102 | 103 | } |
| 103 | 104 | |
| 105 | + e.buttons = D.addClass(D.div(), 'buttons'); | |
| 104 | 106 | { /* Preview/submit buttons... */ |
| 105 | 107 | e.button.preview = D.button("Preview", e=>this.#preview()); |
| 106 | 108 | e.button.submit = D.button("Submit"); |
| 107 | 109 | if( 1 ){ |
| 108 | 110 | F.confirmer(e.button.submit, { |
| @@ -111,11 +113,10 @@ | ||
| 111 | 113 | }); |
| 112 | 114 | }else{ |
| 113 | 115 | e.button.submit.addEventListener('click', ()=>this.#submit()); |
| 114 | 116 | } |
| 115 | 117 | e.button.submit.setAttribute('disabled', ''); |
| 116 | - e.buttons = D.addClass(D.div(), 'buttons'); | |
| 117 | 118 | wrapper.append(e.buttons); |
| 118 | 119 | |
| 119 | 120 | e.error = D.addClass(D.div(), 'error', 'hidden'); |
| 120 | 121 | wrapper.append(e.error); |
| 121 | 122 | e.error.addEventListener('dblclick',()=>this.reportError()); |
| @@ -279,10 +280,24 @@ | ||
| 279 | 280 | forces a document reflow. */); |
| 280 | 281 | return false; |
| 281 | 282 | } |
| 282 | 283 | }, true); |
| 283 | 284 | }/*shift-enter preview bits*/ |
| 285 | + | |
| 286 | + { | |
| 287 | + let visible = true; | |
| 288 | + const elemsToToggle = document.body.querySelectorAll( | |
| 289 | + ':scope > header, :scope > nav' | |
| 290 | + ); | |
| 291 | + e.button.toggleHeader = | |
| 292 | + D.button('Toggle header', e=>{ | |
| 293 | + for(const et of elemsToToggle){ | |
| 294 | + et.classList.toggle('hidden'); | |
| 295 | + } | |
| 296 | + }); | |
| 297 | + e.buttons.append(e.button.toggleHeader); | |
| 298 | + } | |
| 284 | 299 | |
| 285 | 300 | }/*constructor*/ |
| 286 | 301 | |
| 287 | 302 | /** This widget's top-most DOM element. */ |
| 288 | 303 | get widget(){ |
| 289 | 304 |
| --- src/fossil.page.forumpost.js | |
| +++ src/fossil.page.forumpost.js | |
| @@ -52,10 +52,11 @@ | |
| 52 | mimetype: F.nu(), |
| 53 | button: F.nu() |
| 54 | }); |
| 55 | const wrapper = e.widget = D.addClass(D.div(), 'ForumPostEditor'); |
| 56 | D.clearElement(wrapper); |
| 57 | if( !opt.inReplyTo ){ |
| 58 | /* Title... */ |
| 59 | e.titleBar = D.addClass(D.div(),'titlebar'); |
| 60 | e.title = D.addClass(D.input('text'), 'title'); |
| 61 | e.title.setAttribute('maxlength', 125); |
| @@ -99,10 +100,11 @@ | |
| 99 | e.mimetype.wrapper.append(e.mimetype.label); |
| 100 | } |
| 101 | e.mimetype.wrapper.append(e.mimetype.select); |
| 102 | } |
| 103 | |
| 104 | { /* Preview/submit buttons... */ |
| 105 | e.button.preview = D.button("Preview", e=>this.#preview()); |
| 106 | e.button.submit = D.button("Submit"); |
| 107 | if( 1 ){ |
| 108 | F.confirmer(e.button.submit, { |
| @@ -111,11 +113,10 @@ | |
| 111 | }); |
| 112 | }else{ |
| 113 | e.button.submit.addEventListener('click', ()=>this.#submit()); |
| 114 | } |
| 115 | e.button.submit.setAttribute('disabled', ''); |
| 116 | e.buttons = D.addClass(D.div(), 'buttons'); |
| 117 | wrapper.append(e.buttons); |
| 118 | |
| 119 | e.error = D.addClass(D.div(), 'error', 'hidden'); |
| 120 | wrapper.append(e.error); |
| 121 | e.error.addEventListener('dblclick',()=>this.reportError()); |
| @@ -279,10 +280,24 @@ | |
| 279 | forces a document reflow. */); |
| 280 | return false; |
| 281 | } |
| 282 | }, true); |
| 283 | }/*shift-enter preview bits*/ |
| 284 | |
| 285 | }/*constructor*/ |
| 286 | |
| 287 | /** This widget's top-most DOM element. */ |
| 288 | get widget(){ |
| 289 |
| --- src/fossil.page.forumpost.js | |
| +++ src/fossil.page.forumpost.js | |
| @@ -52,10 +52,11 @@ | |
| 52 | mimetype: F.nu(), |
| 53 | button: F.nu() |
| 54 | }); |
| 55 | const wrapper = e.widget = D.addClass(D.div(), 'ForumPostEditor'); |
| 56 | D.clearElement(wrapper); |
| 57 | |
| 58 | if( !opt.inReplyTo ){ |
| 59 | /* Title... */ |
| 60 | e.titleBar = D.addClass(D.div(),'titlebar'); |
| 61 | e.title = D.addClass(D.input('text'), 'title'); |
| 62 | e.title.setAttribute('maxlength', 125); |
| @@ -99,10 +100,11 @@ | |
| 100 | e.mimetype.wrapper.append(e.mimetype.label); |
| 101 | } |
| 102 | e.mimetype.wrapper.append(e.mimetype.select); |
| 103 | } |
| 104 | |
| 105 | e.buttons = D.addClass(D.div(), 'buttons'); |
| 106 | { /* Preview/submit buttons... */ |
| 107 | e.button.preview = D.button("Preview", e=>this.#preview()); |
| 108 | e.button.submit = D.button("Submit"); |
| 109 | if( 1 ){ |
| 110 | F.confirmer(e.button.submit, { |
| @@ -111,11 +113,10 @@ | |
| 113 | }); |
| 114 | }else{ |
| 115 | e.button.submit.addEventListener('click', ()=>this.#submit()); |
| 116 | } |
| 117 | e.button.submit.setAttribute('disabled', ''); |
| 118 | wrapper.append(e.buttons); |
| 119 | |
| 120 | e.error = D.addClass(D.div(), 'error', 'hidden'); |
| 121 | wrapper.append(e.error); |
| 122 | e.error.addEventListener('dblclick',()=>this.reportError()); |
| @@ -279,10 +280,24 @@ | |
| 280 | forces a document reflow. */); |
| 281 | return false; |
| 282 | } |
| 283 | }, true); |
| 284 | }/*shift-enter preview bits*/ |
| 285 | |
| 286 | { |
| 287 | let visible = true; |
| 288 | const elemsToToggle = document.body.querySelectorAll( |
| 289 | ':scope > header, :scope > nav' |
| 290 | ); |
| 291 | e.button.toggleHeader = |
| 292 | D.button('Toggle header', e=>{ |
| 293 | for(const et of elemsToToggle){ |
| 294 | et.classList.toggle('hidden'); |
| 295 | } |
| 296 | }); |
| 297 | e.buttons.append(e.button.toggleHeader); |
| 298 | } |
| 299 | |
| 300 | }/*constructor*/ |
| 301 | |
| 302 | /** This widget's top-most DOM element. */ |
| 303 | get widget(){ |
| 304 |