diff --git a/static/default.css b/static/default.css index cb5fd23..22874a2 100644 --- a/static/default.css +++ b/static/default.css @@ -316,32 +316,33 @@ kbd { opacity: .4; } -.dialog-wrap { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.3); - overflow-y: auto; - - padding: 0 16px; -} - .dialog { - position: relative; + position: absolute; + top: 0; + left: 50%; width: 100%; max-width: 700px; margin: 96px auto; padding: 24px; + transform: translate(-50%, 0); background-color: #fff; border-radius: 4px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2); } +.dialog-backdrop { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.3); +} + .dialog__header { + position: relative; grid-column: 1 / -1; } @@ -355,7 +356,7 @@ kbd { display: block; top: 0; right: 0; - margin: 16px; + margin: 0; padding: 8px; border: none; background: url(/static/icon/x.svg) no-repeat 8px 8px / 16px 16px; diff --git a/static/shortcuts.js b/static/shortcuts.js index 54c7146..841ce12 100644 --- a/static/shortcuts.js +++ b/static/shortcuts.js @@ -122,16 +122,46 @@ } } - groupStart(title = null) { - if (title) this.fakeItem(title); + group(...args) { + if (typeof args[0] === 'string') this.fakeItem(args.shift()); shortcutsGroup = []; - } - groupEnd() { + args[0].bind(this)(); + if (shortcutsGroup && shortcutsGroup.length) allShortcuts.push(shortcutsGroup); shortcutsGroup = null; } + bindElement(shortcut, element, ...other) { + element = typeof element === 'string' ? $(element) : element; + if (!element) return; + this.add(shortcut, () => { + if (isTextField(element)) { + element.focus(); + } else { + element.click(); + } + }, ...other); + } + + bindLink(shortcut, link, ...other) { + this.add(shortcut, () => window.location.href = link, ...other); + } + + bindCollection(prefix, elements, collectionDescription, itemDescription) { + this.fakeItem(prefix + ' 1 – 9', collectionDescription); + + if (typeof elements === 'string') { + elements = $$(elements); + } else if (Array.isArray(elements)) { + elements = elements.map(el => typeof el === 'string' ? $(el) : el); + } + + for (let i = 1; i <= elements.length && i < 10; i++) { + this.bindElement(`${prefix} ${i}`, elements[i-1], `${itemDescription} #${i}`, false); + } + } + fakeItem(shortcut, description = null) { let list = shortcutsGroup || allShortcuts; list.push({ @@ -154,6 +184,7 @@ this.active = this.active[shortcut]; if (this.active.action) { + event.stopPropagation(); this.active.action(event); if (this.override) event.preventDefault(); this.resetActive(); @@ -173,61 +204,28 @@ } } - function bindElementFactory(handler) { - return (shortcut, element, ...other) => { - element = typeof element === 'string' ? $(element) : element; - if (!element) return; - handler.add(shortcut, () => { - if (isTextField(element)) { - element.focus(); - } else { - element.click(); - } - }, ...other); - }; - } - - function bindLinkFactory(handler) { - return (shortcut, link, ...other) => handler.add(shortcut, () => window.location.href = link, ...other); - } - - function bindCollectionFactory(handler) { - return (prefix, elements, collectionDescription, itemDescription) => { - handler.fakeItem(prefix + ' 1 – 9', collectionDescription); - - if (typeof elements === 'string') { - elements = $$(elements); - } else if (Array.isArray(elements)) { - elements = elements.map(el => typeof el === 'string' ? $(el) : el); - } - - for (let i = 1; i <= elements.length && i < 10; i++) { - bindElementFactory(handler)(`${prefix} ${i}`, elements[i-1], `${itemDescription} #${i}`, false); - } - } - } - class ShortcutsHelpDialog { constructor() { let template = $('#dialog-template'); - this.wrap = template.content.firstElementChild.cloneNode(true); - this.wrap.classList.add('shortcuts-help'); - this.wrap.hidden = true; + let clonedTemplate = template.content.cloneNode(true); + this.backdrop = clonedTemplate.children[0]; + this.dialog = clonedTemplate.children[1]; - let handleClose = (event) => { - event.preventDefault(); - event.stopPropagation(); - this.close(); - }; + this.dialog.classList.add('shortcuts-help'); + this.dialog.hidden = true; + this.backdrop.hidden = true; - this.shortcuts = new ShortcutHandler(this.wrap, false); - this.shortcuts.add('Escape', handleClose, null, false); + document.body.appendChild(this.backdrop); + document.body.appendChild(this.dialog); - this.wrap.querySelector('.dialog__title').textContent = 'List of shortcuts'; - this.wrap.querySelector('.dialog__close-button').addEventListener('click', handleClose); + this.close = this.close.bind(this); - this.wrap.addEventListener('click', handleClose); - this.wrap.querySelector('.dialog').addEventListener('click', event => event.stopPropagation()); + this.dialog.querySelector('.dialog__title').textContent = 'List of shortcuts'; + this.dialog.querySelector('.dialog__close-button').addEventListener('click', this.close); + this.backdrop.addEventListener('click', this.close); + + this.shortcuts = new ShortcutHandler(this.dialog, false); + this.shortcuts.add('Escape', this.close, null, false); let shortcutsGroup; let shortcutsGroupTemplate = document.createElement('div'); @@ -236,7 +234,7 @@ for (let item of allShortcuts) { if (item.description && !item.shortcut) { shortcutsGroup = shortcutsGroupTemplate.cloneNode(); - this.wrap.querySelector('.dialog__content').appendChild(shortcutsGroup); + this.dialog.querySelector('.dialog__content').appendChild(shortcutsGroup); let heading = document.createElement('h2'); heading.className = 'shortcuts-group-heading'; @@ -268,21 +266,21 @@ shortcutsGroup.appendChild(list); } } - - document.body.appendChild(this.wrap); } open() { this.prevActiveElement = document.activeElement; document.body.overflow = 'hidden'; - this.wrap.hidden = false; - this.wrap.children[0].focus(); + this.backdrop.hidden = false; + this.dialog.hidden = false; + this.dialog.focus(); } close() { document.body.overflow = ''; - this.wrap.hidden = true; + this.backdrop.hidden = true; + this.dialog.hidden = true; if (this.prevActiveElement) { this.prevActiveElement.focus(); @@ -300,39 +298,35 @@ // Global shortcuts work everywhere. let globalShortcuts = new ShortcutHandler(document, false); - globalShortcuts.add('?, ' + (isMac ? 'Meta+/' : 'Ctrl+/'), openShortcutsReference); + globalShortcuts.add('?, ' + (isMac ? 'Meta+/' : 'Ctrl+/'), openHelp); - // Common shortcuts work everywhere except on text fields. - let commonShortcuts = new ShortcutHandler(document, false, notTextField); - - let bindElement = bindElementFactory(commonShortcuts); - let bindLink = bindLinkFactory(commonShortcuts); - let bindCollection = bindCollectionFactory(commonShortcuts); + // Page shortcuts work everywhere except on text fields. + let pageShortcuts = new ShortcutHandler(document, false, notTextField); + pageShortcuts.add('?', openHelp, null, false); // Common shortcuts - commonShortcuts.groupStart('Common'); - bindCollection('g', '.header-links__link', 'First 9 header links', 'Header link'); - bindLink('g h', '/', 'Home'); - bindLink('g l', '/list/', 'List of hyphae'); - bindLink('g r', '/recent-changes/', 'Recent changes'); - bindElement('g u', '.header-links__entry_user .header-links__link', 'Your profile′s hypha'); - commonShortcuts.groupEnd(); + pageShortcuts.group('Common', function () { + this.bindCollection('g', '.header-links__link', 'First 9 header links', 'Header link'); + this.bindLink('g h', '/', 'Home'); + this.bindLink('g l', '/list/', 'List of hyphae'); + this.bindLink('g r', '/recent-changes/', 'Recent changes'); + this.bindElement('g u', '.header-links__entry_user .header-links__link', 'Your profile′s hypha'); + }); if (typeof editTextarea === 'undefined') { // Hypha shortcuts - commonShortcuts.groupStart('Hypha'); - bindCollection('', 'article .wikilink', 'First 9 hypha′s links', 'Hypha link'); - bindElement('p, Alt+ArrowLeft, Ctrl+Alt+ArrowLeft', '.prevnext__prev', 'Next hypha'); - bindElement('n, Alt+ArrowRight, Ctrl+Alt+ArrowRight', '.prevnext__next', 'Previous hypha'); - bindElement('s, Alt+ArrowUp, Ctrl+Alt+ArrowUp', $$('.navi-title a').slice(1, -1).slice(-1)[0], 'Parent hypha'); - bindElement('c, Alt+ArrowDown, Ctrl+Alt+ArrowDown', '.subhyphae__link', 'First child hypha'); - bindElement('e, Ctrl+Enter', '.hypha-tabs__link[href^="/edit/"]', 'Edit this hypha'); - commonShortcuts.groupEnd(); + pageShortcuts.group('Hypha', function () { + this.bindCollection('', 'article .wikilink', 'First 9 hypha′s links', 'Hypha link'); + this.bindElement('p, Alt+ArrowLeft, Ctrl+Alt+ArrowLeft', '.prevnext__prev', 'Next hypha'); + this.bindElement('n, Alt+ArrowRight, Ctrl+Alt+ArrowRight', '.prevnext__next', 'Previous hypha'); + this.bindElement('s, Alt+ArrowUp, Ctrl+Alt+ArrowUp', $$('.navi-title a').slice(1, -1).slice(-1)[0], 'Parent hypha'); + this.bindElement('c, Alt+ArrowDown, Ctrl+Alt+ArrowDown', '.subhyphae__link', 'First child hypha'); + this.bindElement('e, Ctrl+Enter', '.hypha-tabs__link[href^="/edit/"]', 'Edit this hypha'); + }); } else { // Hypha editor shortcuts. These work only on editor's text area. let editorShortcuts = new ShortcutHandler(editTextarea, true); - let bindElement = bindElementFactory(editorShortcuts); let shortcuts = [ // Win+Linux Mac Action Description @@ -346,19 +340,19 @@ ['Ctrl+k', 'Meta+k', wrapLink, 'Format: Link'], ]; - editorShortcuts.groupStart('Editor'); - for (let shortcut of shortcuts) { - if (isMac) { - editorShortcuts.add(shortcut[1], ...shortcut.slice(2)) - } else { - editorShortcuts.add(shortcut[0], ...shortcut.slice(2)) + editorShortcuts.group('Editor', function () { + for (let shortcut of shortcuts) { + if (isMac) { + this.add(shortcut[1], ...shortcut.slice(2)) + } else { + this.add(shortcut[0], ...shortcut.slice(2)) + } } - } - editorShortcuts.groupEnd(); + }); - editorShortcuts.groupStart(); - bindElement(isMac ? 'Meta+Enter' : 'Ctrl+Enter', $('.edit-form__save'), 'Save changes'); - editorShortcuts.groupEnd(); + editorShortcuts.group(function () { + this.bindElement(isMac ? 'Meta+Enter' : 'Ctrl+Enter', $('.edit-form__save'), 'Save changes'); + }); } }); })(); diff --git a/views/stuff.qtpl b/views/stuff.qtpl index 7a27a98..e1fe2d1 100644 --- a/views/stuff.qtpl +++ b/views/stuff.qtpl @@ -29,15 +29,14 @@ {%s= body %} {%= omnipresentScripts() %} diff --git a/views/stuff.qtpl.go b/views/stuff.qtpl.go index 054aab3..14309cc 100644 --- a/views/stuff.qtpl.go +++ b/views/stuff.qtpl.go @@ -94,63 +94,62 @@ func StreamBaseHTML(qw422016 *qt422016.Writer, title, body string, u *user.User, //line views/stuff.qtpl:30 qw422016.N().S(` `) -//line views/stuff.qtpl:43 +//line views/stuff.qtpl:42 streamomnipresentScripts(qw422016) -//line views/stuff.qtpl:43 +//line views/stuff.qtpl:42 qw422016.N().S(` `) -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 } -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 func WriteBaseHTML(qq422016 qtio422016.Writer, title, body string, u *user.User, headElements ...string) { -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 StreamBaseHTML(qw422016, title, body, u, headElements...) -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 } -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 func BaseHTML(title, body string, u *user.User, headElements ...string) string { -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 WriteBaseHTML(qb422016, title, body, u, headElements...) -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 return qs422016 -//line views/stuff.qtpl:46 +//line views/stuff.qtpl:45 } -//line views/stuff.qtpl:48 +//line views/stuff.qtpl:47 func StreamUserListHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:48 +//line views/stuff.qtpl:47 qw422016.N().S(`

List of users

`) -//line views/stuff.qtpl:53 +//line views/stuff.qtpl:52 var ( admins = make([]string, 0) moderators = make([]string, 0) @@ -167,303 +166,303 @@ func StreamUserListHTML(qw422016 *qt422016.Writer) { } } -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:67 qw422016.N().S(`

Admins

    `) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:70 for _, name := range admins { -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:70 qw422016.N().S(`
  1. `) -//line views/stuff.qtpl:72 +//line views/stuff.qtpl:71 qw422016.E().S(name) -//line views/stuff.qtpl:72 +//line views/stuff.qtpl:71 qw422016.N().S(`
  2. `) -//line views/stuff.qtpl:73 +//line views/stuff.qtpl:72 } -//line views/stuff.qtpl:73 +//line views/stuff.qtpl:72 qw422016.N().S(`

Moderators

    `) -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:76 for _, name := range moderators { -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:76 qw422016.N().S(`
  1. `) -//line views/stuff.qtpl:78 +//line views/stuff.qtpl:77 qw422016.E().S(name) -//line views/stuff.qtpl:78 +//line views/stuff.qtpl:77 qw422016.N().S(`
  2. `) -//line views/stuff.qtpl:79 +//line views/stuff.qtpl:78 } -//line views/stuff.qtpl:79 +//line views/stuff.qtpl:78 qw422016.N().S(`

Editors

    `) -//line views/stuff.qtpl:83 +//line views/stuff.qtpl:82 for _, name := range editors { -//line views/stuff.qtpl:83 +//line views/stuff.qtpl:82 qw422016.N().S(`
  1. `) -//line views/stuff.qtpl:84 +//line views/stuff.qtpl:83 qw422016.E().S(name) -//line views/stuff.qtpl:84 +//line views/stuff.qtpl:83 qw422016.N().S(`
  2. `) -//line views/stuff.qtpl:85 +//line views/stuff.qtpl:84 } -//line views/stuff.qtpl:85 +//line views/stuff.qtpl:84 qw422016.N().S(`
`) -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 } -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 func WriteUserListHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 StreamUserListHTML(qw422016) -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 } -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 func UserListHTML() string { -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 WriteUserListHTML(qb422016) -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 return qs422016 -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:88 } -//line views/stuff.qtpl:91 +//line views/stuff.qtpl:90 func StreamHyphaListHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:91 +//line views/stuff.qtpl:90 qw422016.N().S(`

List of hyphae

This wiki has `) -//line views/stuff.qtpl:95 +//line views/stuff.qtpl:94 qw422016.N().D(hyphae.Count()) -//line views/stuff.qtpl:95 +//line views/stuff.qtpl:94 qw422016.N().S(` hyphae.

`) -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 } -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 func WriteHyphaListHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 StreamHyphaListHTML(qw422016) -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 } -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 func HyphaListHTML() string { -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 WriteHyphaListHTML(qb422016) -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 return qs422016 -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:107 } -//line views/stuff.qtpl:110 +//line views/stuff.qtpl:109 func StreamAboutHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:110 +//line views/stuff.qtpl:109 qw422016.N().S(`

About `) -//line views/stuff.qtpl:114 +//line views/stuff.qtpl:113 qw422016.E().S(cfg.WikiName) -//line views/stuff.qtpl:114 +//line views/stuff.qtpl:113 qw422016.N().S(`

See /list for information about hyphae on this wiki.

`) -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 } -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 func WriteAboutHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 StreamAboutHTML(qw422016) -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 } -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 func AboutHTML() string { -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 WriteAboutHTML(qb422016) -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 return qs422016 -//line views/stuff.qtpl:132 +//line views/stuff.qtpl:131 } -//line views/stuff.qtpl:134 +//line views/stuff.qtpl:133 func StreamAdminPanelHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:134 +//line views/stuff.qtpl:133 qw422016.N().S(`
@@ -500,80 +499,80 @@ func StreamAdminPanelHTML(qw422016 *qt422016.Writer) {
`) -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 } -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 func WriteAdminPanelHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 StreamAdminPanelHTML(qw422016) -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 } -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 func AdminPanelHTML() string { -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 WriteAdminPanelHTML(qb422016) -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 return qs422016 -//line views/stuff.qtpl:169 +//line views/stuff.qtpl:168 } -//line views/stuff.qtpl:171 +//line views/stuff.qtpl:170 func streamomnipresentScripts(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:171 +//line views/stuff.qtpl:170 qw422016.N().S(` `) -//line views/stuff.qtpl:172 +//line views/stuff.qtpl:171 for _, scriptPath := range cfg.OmnipresentScripts { -//line views/stuff.qtpl:172 +//line views/stuff.qtpl:171 qw422016.N().S(` `) -//line views/stuff.qtpl:174 +//line views/stuff.qtpl:173 } -//line views/stuff.qtpl:174 +//line views/stuff.qtpl:173 qw422016.N().S(` `) -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 } -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 func writeomnipresentScripts(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 streamomnipresentScripts(qw422016) -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 } -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 func omnipresentScripts() string { -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 writeomnipresentScripts(qb422016) -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 return qs422016 -//line views/stuff.qtpl:175 +//line views/stuff.qtpl:174 }