views/edit.pug (149 lines of code) (raw):

//- Copyright (c) 2020 Chandan B N. All rights reserved. extends layout block info if doc && doc.updatedAt ='Last updated ' + textUtil.timeSince(doc.updatedAt) + ' ago by ' + doc.author + ' (v' + doc.__v + ')' block append head if !min link(rel='stylesheet', href= '/users/list/css') link(href=conf.basedir + "css/tagify.css",rel="stylesheet",type="text/css") block prepend bannerItemsLeft if !min a.fbn(href=(confOpts[schemaName].conf.uri? confOpts[schemaName].conf.uri : '/' + schemaName + '/' ), title=confOpts[schemaName].conf.title) ☰ block append bannerItemsLeft if !confOpts[schemaName].conf.readonly block openButton input#importJSON.hid(type="file",accept="application/json",onchange="loadFile(event,this);") a.fbn.vgi-folder(type="file",onclick='importFile(event, this);') Open if !min button.fbn.sfe.vgi-put(id="save1") SAVE a.fbn.vgi-download(type="button",oncontextmenu='downloadFile(event, this);',onclick='downloadFile(event, this);',value="Download") Download block scripts if opts script | var iconMap = if opts.icons | !{JSON.stringify(opts.icons)} else | {}; if opts.script script !{opts.script} if opts.render - var compileScript = pugLib.compileFileClient('views/'+opts.render +'.pug', {name: "pugRender",basedir: 'views',compileDebug: false,inlineRuntimeFunctions: true}) script !{compileScript} if opts.script && typeof opts.script === 'array' script each i,v in opts.script | #{v} = !{opts.script[v].toString()}; if opts.validators script | var custom_validators = [!{opts.validators.toString()}]; if opts.errorFilter script | var errorFilter = !{opts.errorFilter.toString()}; if !min script var csrfToken = "#{csrfToken}"; if opts && opts.conf && !opts.conf.readonly - var compileScript = pugLib.compileFileClient('views/subcontent.pug', {name: "subdocRender",basedir: 'views',compileDebug: false,inlineRuntimeFunctions: true}) script !{compileScript} script(src=conf.basedir + 'js/comment.js') block content div#mainTabGroup span.lbl &nbsp; block editorTab input.tab(name='tabs', type='radio', id='editorTab', value="1",checked) label.lbl#editorLabel(for='editorTab') span.flx block editorLabel | Editor details.popup#errPop summary.sml.hid#errCount div.wht.pop.pad.bor.shd#errList .wht.fil.bor.pad block editorArea iframe(name="x",style="display:none",src="about:blank") form.editor(target="x",action="",id="docEditor") if !min a#remove.gap.flr.fbn.vgi-del.tred Delete this entry from local Vulnogram database block sourceTab input.tab(name='tabs', type='radio', id='sourceTab', value="2") label.lbl(for='sourceTab') block sourceLabel | Source .wht.fil.bor.pad div(id="output",rows="40",cols="100%") p block customtabs if !min input.tab(name='tabs', type='radio', id='changesTab', value="6") label.lbl(for='changesTab') Changes .wht.fil.bor.pad div#unSavedChanges div#changelog if !min div(style="clear:both") button.gap.btn.save(id="save2",style="visibility:hidden") SAVE block initGlobals script if conf.publicDefectURL | var defectURL = "!{conf.publicDefectURL}"; | var idpath = "#{idpath}"; | var allowAjax = "#{allowAjax}"; | var schemaName = "#{schemaName}"; | var postUrl = "#{postUrl?postUrl:''}"; | var csrfToken = "#{csrfToken}"; | var ajaxBase = "#{conf.basedir}"; if doc && doc.body | var initJSON=!{JSON.stringify(doc.body).replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/</g, '\\u003C').replace(/>/g, '\\u003E').replace(/\//g, '\\u002F')}; else | var initJSON = undefined; if min | var docSchema=!{JSON.stringify(opts && opts.schema ? opts.schema : '{}').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/</g, '\\u003C').replace(/>/g, '\\u003E').replace(/\//g, '\\u002F')}; script(src=conf.basedir + 'js/util.js') script(src=conf.basedir + "js/wy/simple.js") script(src=conf.basedir + "js/wy/wysihtml-toolbar.min.js") if !min && opts && opts.schema script(src=conf.basedir + schemaName + '/schema.js') if conf.ajv && conf.ajvHash script(src=conf.ajv,integrity=conf.ajvHash,crossorigin="anonymous") script(src=conf.jsoneditor,integrity=conf.jsoneditorHash,crossorigin="anonymous") script(src=conf.basedir + "js/tagify.min.js") script(src=conf.ace,integrity=conf.aceHash,crossorigin="anonymous") script(src=conf.basedir + 'js/editor.js') script(src=conf.basedir + 'js/tablesort.min.js') block loadEditor block loadEditorloadJSON script loadJSON(initJSON); if doc && doc.body script getChanges("#{doc_id}"); +alertDialog block subcontent if !min include subcontent - var id = doc_id; if doc && opts && opts.conf && opts.conf.files - var files = []; if doc && doc.files - files = doc.files; +files +commentBox if doc && Object.keys(doc).length > 0 script | document.getElementById("commentTemplate").insertAdjacentElement('afterend', newCommentBox()); #commentsBox - var username = user.username; - var docs = ucomments;//.sort(function(a, b) {return a.updatedAt < b.updatedAt;}) #comments +comments block logolink br a.logo(href="https://github.com/Vulnogram/Vulnogram") Vulnogram Project mixin alertDialog dialog.bor.rnd.shd.pad2#alertDialog center form(onsubmit="event.preventDefault();return false;") h2.vgi-alert#alertMessage .gap#smallAlert center.gap input#alertOk.btn.sfe(type="reset" onclick="document.getElementById('alertDialog').close();" value="OK") input#alertCancel.btn.red(type="reset" onclick="document.getElementById('alertDialog').close();" value="Cancel" dstyle="display:none")