default/cve5/edit.pug (105 lines of code) (raw):

//- Copyright (c) 2017 Chandan B N. All rights reserved. //- Extends default document editor for CVE extends ../../views/edit block append bannerItemsLeft //-form.indent.out.nobr(onsubmit="event.preventDefault();loadCVE(this.git.value);return false;") input.txt(type="text",name="git",placeholder="CVE-YYYY-NNNN",pattern=".*CVE-[0-9]{4}-[0-9]{4,12}.*",size=17,title="CVE ID CVE-yyyy-nnnn+",required) button.btn.vgi-in(type="submit") GIT button.fbn.sfe.vgi-put(id="post1") Post to CVE.org //-a.vgi-tweet.fbn(type="button",oncontextmenu='tweetJSON(event, this);',onclick='tweetJSON(event, this);',value="Download",target="_blank",title="Share a tweet about this CVE") Tweet //-a.vgi-download.fbn(type="button",oncontextmenu='saveCSAF(event, this);',onclick='saveCSAF(event, this);',target="_blank",title="Download CSAF") CSAF block append scripts script(type="module") | import {CVSS40} from './static/cvss40.js'; | window.CVSS40 = CVSS40; script include cve.js //include csaf.js include portal.js - var compileScript = pugLib.compileFileClient('custom/cve5/cvelist.pug', {name: "cveRender", basedir: '', compileDebug: false,inlineRuntimeFunctions: true}) script !{compileScript} block prepend loadEditor script include preload.js block append loadEditor script include postload.js block prepend topHeaderRight block openButton input#importJSON.hid(type="file",accept="application/json",onchange="loadCVEFile(event,this);") a.fbn.vgi-folder(type="file",onclick='importFile(event, this);') Open block prepend bannerItemsRight block bannerItemsRightLoad form.indent.out.nobr(onsubmit="cveSelectLoad(event);return false;") input.txt.lbl#cveEditable(type="search",name="id",list="editablelist",placeholder="CVE-yyyy-nnnn..",title="Load CVE for editing",required) datalist#editablelist button.btn.vgi-in(type="submit") Load block customtabs input.tab(name='tabs', type='radio', id='advisoryTab', value="4") label.lbl(for='advisoryTab') Preview .wht.fil.bor.pad div(style='float:right') a.vgi-download.btn.right(type="button",oncontextmenu='downloadHtml(document.getElementById("cvetitle").innerText, render, this);',onclick='downloadHtml(document.getElementById("cvetitle").innerText, render, this);',value="Download") Download a.vgi-mail.btn.right(type="button",oncontextmenu='draftEmail(event, this, "render");',onclick='draftEmail(event, this,"render");',value="Email") Email div.render(id="render") input.tab(name='tabs', type='radio', id='cvePortalTab', value="6") label.lbl(for='cvePortalTab') CVE Portal .wht.fil.rnd.bor#port block prepend content dialog.dlg.bor.rnd.shd#cveErrorsModal #cveErrors center.pad2 input.btn.sfe(type="reset" onclick="document.getElementById('cveErrorsModal').close()" value="OK") +showSecret +userAddDialog +userEditDialog mixin userAddDialog dialog.dlg.bor.rnd.shd#userAddDialog +dlgHeader('vgi-user','Add a new user') form.gap(onsubmit="event.preventDefault();cveAddUser(this)") +userEdit('Add user') mixin userEditDialog dialog.dlg.bor.rnd.shd#userEditDialog +dlgHeader('vgi-user','Update user details') form#userEditForm.gap(onsubmit="event.preventDefault();cveUpdateUser(this)") +userEdit('Update') mixin userEdit(label) input.txt(type="hidden" name="u") input.txt(name="new_username" "pattern"="[a-zA-Z0-9-_@.]{3,50}" required=true placeholder="username/email" size="43" title="username - only alpha-numeric and . _ - @ are allowed (min 3 characters)") br input.txt(name="first" "pattern"=".{1,64}" required=true placeholder="First name" title="First Name") input.txt(name="last" "pattern"=".{1,64}" required=true placeholder="Last name" title="Last Name") div br - var idName = "cveUserAdmin"+label[0]; input(id=idName type="checkbox" name="admin") label.vgi-king.lbl(for=idName title="Is this an admin?") Admin if label input.lbl(id = idName + 'Active', type="checkbox" name="active" checked) label.lbl(for=idName + 'Active', title="Is the account active?") Active br input.gap.sfe.btn.vgi-magic(type="submit" value=label) if label | button.gap.btn.vgi-reuse(onclick="cveUserKeyReset(this)") Reset API Key mixin showSecret dialog.dlg.bor.rnd.shd#secretDialog +dlgHeader('vgi-lock','IMPORTANT! New API Secret Key generated!') center.gap form#secretDialogForm(onsubmit="event.preventDefault();this.reset();this.closest('dialog').close();return false") h3.vgi-alert#userMessage p Please securely store this API key. br | This key will not be shown again! b.lbl API Secret Key br input.txt.bor(type="password" size=39 name="pass" readonly) input#showpass(name="showpass" type="checkbox" onclick="this.form.pass.type = (this.form.pass.type === 'password'? 'text' : 'password')") label.vgi-eye.lbl.sbn(for="showpass") center.gap input.btn.sfe(type="reset" onclick="this.closest('dialog').close()" value="OK") mixin dlgHeader(icon, msg) header.ban.sec.pad b.lbl(class=icon)=msg | a.sbn.right.vgi-fail(onclick="this.closest('dialog').close()")