284 lines
8.4 KiB
JavaScript
284 lines
8.4 KiB
JavaScript
(function() {
|
|
var deleteLinkDialog = new Dialog({
|
|
element: document.querySelector('#delete-link-dialog'),
|
|
drag: '.title',
|
|
actions: [{
|
|
id: 'delete',
|
|
callback: deleteLink,
|
|
selector: '.actions .delete'
|
|
}, {
|
|
id: 'cancel',
|
|
callback: 'close',
|
|
selector: '.actions .cancel'
|
|
}],
|
|
access: {
|
|
title: '.title',
|
|
error: '.error'
|
|
}
|
|
});
|
|
|
|
function deleteLink(button) {
|
|
var d = this;
|
|
var linkId = d.element.getAttribute('link_id');
|
|
d.actions.delete.disabled = true;
|
|
d.actions.cancel.disabled = true;
|
|
|
|
$.ajax({
|
|
'type': 'POST',
|
|
'url': '/deletelink',
|
|
'contentType': 'application/json',
|
|
'data': JSON.stringify({
|
|
link_id: linkId,
|
|
})
|
|
}).done(function(data) {
|
|
d.actions.delete.disabled = false;
|
|
d.actions.cancel.disabled = false;
|
|
if (data.error == "success") {
|
|
getLinks();
|
|
d.close();
|
|
} else {
|
|
d.access.error.innerHTML = data.error;
|
|
}
|
|
}).fail(function() {
|
|
d.actions.delete.disabled = false;
|
|
d.actions.cancel.disabled = false;
|
|
ajaxFailMessage(d);
|
|
});
|
|
}
|
|
|
|
function getLinks() {
|
|
var cveId = document.getElementById('title').getAttribute('cve_id');
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: '/getlinks',
|
|
contentType: 'application/json',
|
|
data: JSON.stringify({
|
|
cve_id: cveId
|
|
})
|
|
}).done(function(data) {
|
|
var linkList = document.getElementById('linklist');
|
|
if (!data.length) {
|
|
linkList.innerHTML = "No links available";
|
|
return;
|
|
}
|
|
var links = JSON.parse(data);
|
|
linkList.innerHTML = "";
|
|
links.forEach(function(v) {
|
|
var description = v.desc;
|
|
var url = v.link;
|
|
var id = v._id.$oid;
|
|
if (!description) {
|
|
description = 'No description';
|
|
}
|
|
|
|
var linkItem = createElement('div', {
|
|
parent: linkList
|
|
});
|
|
|
|
createElement('a', {
|
|
class: 'link',
|
|
href: url,
|
|
content: url,
|
|
parent: linkItem
|
|
});
|
|
createElement('span', {
|
|
class: 'linkdesc',
|
|
content: ' - ' + description,
|
|
parent: linkItem
|
|
});
|
|
|
|
var deleteButton = createElement('button', {
|
|
class: 'delete',
|
|
content: 'DELETE',
|
|
parent: linkItem
|
|
});
|
|
deleteButton.addEventListener('click', function() {
|
|
deleteLinkDialog.element.setAttribute('link_id', id);
|
|
deleteLinkDialog.access.error.innerText = "";
|
|
deleteLinkDialog.open();
|
|
});
|
|
|
|
var editButton = createElement('button', {
|
|
class: 'edit',
|
|
content: 'EDIT',
|
|
parent: linkItem
|
|
});
|
|
editButton.addEventListener('click', function() {
|
|
editLinkDialog.element.setAttribute('link_id', id);
|
|
editLinkDialog.access.link.value = url;
|
|
editLinkDialog.access.description.value = description;
|
|
editLinkDialog.open();
|
|
});
|
|
});
|
|
}).fail(function() {
|
|
ajaxFailMessage(linkList);
|
|
});
|
|
}
|
|
|
|
var addLinkDialog = new Dialog({
|
|
element: document.querySelector('#add-link-dialog'),
|
|
drag: '.title',
|
|
actions: [{
|
|
id: 'add',
|
|
callback: addLink,
|
|
selector: '.actions .add'
|
|
}, {
|
|
id: 'cancel',
|
|
callback: 'close',
|
|
selector: '.actions .cancel'
|
|
}],
|
|
access: {
|
|
title: '.title',
|
|
link: '.link',
|
|
description: '.description',
|
|
error: '.error'
|
|
}
|
|
});
|
|
|
|
var openAddLink = document.querySelector('.add-link');
|
|
openAddLink.addEventListener('click', function(e) {
|
|
addLinkDialog.open();
|
|
addLinkDialog.access.link.focus();
|
|
addLinkDialog.access.link.value = "";
|
|
addLinkDialog.access.description.value = "";
|
|
addLinkDialog.access.error.innerText = "";
|
|
});
|
|
|
|
function addLink(button) {
|
|
var d = this;
|
|
var cveId = d.element.getAttribute('cve_id');
|
|
var link = d.access.link.value;
|
|
var description = d.access.description.value;
|
|
|
|
d.actions.add.disabled = true;
|
|
d.actions.cancel.disabled = true;
|
|
|
|
$.ajax({
|
|
'type': 'POST',
|
|
'url': '/addlink',
|
|
'contentType': 'application/json',
|
|
'data': JSON.stringify({
|
|
cve_id: cveId,
|
|
link_url: link,
|
|
link_desc: description,
|
|
})
|
|
}).done(function(data) {
|
|
d.actions.add.disabled = false;
|
|
d.actions.cancel.disabled = false;
|
|
|
|
if (data.error == "success") {
|
|
getLinks();
|
|
d.close();
|
|
} else {
|
|
d.access.error.innerHTML = data.error;
|
|
}
|
|
}).fail(function() {
|
|
d.actions.add.disabled = false;
|
|
d.actions.cancel.disabled = false;
|
|
ajaxFailMessage(d);
|
|
});
|
|
}
|
|
|
|
var editLinkDialog = new Dialog({
|
|
element: document.querySelector('#edit-link-dialog'),
|
|
drag: '.title',
|
|
actions: [{
|
|
id: 'save',
|
|
callback: editLink,
|
|
selector: '.actions .save'
|
|
}, {
|
|
id: 'cancel',
|
|
callback: 'close',
|
|
selector: '.actions .cancel'
|
|
}],
|
|
access: {
|
|
title: '.title',
|
|
link: '.link',
|
|
description: '.description',
|
|
error: '.error'
|
|
}
|
|
});
|
|
|
|
function editLink(button) {
|
|
var d = this;
|
|
var linkId = d.element.getAttribute('link_id');
|
|
var link = d.access.link.value;
|
|
var description = d.access.description.value;
|
|
|
|
d.actions.save.disabled = true;
|
|
d.actions.cancel.disabled = true;
|
|
|
|
$.ajax({
|
|
'type': 'POST',
|
|
'url': '/editlink',
|
|
'contentType': 'application/json',
|
|
'data': JSON.stringify({
|
|
link_id: linkId,
|
|
link_url: link,
|
|
link_desc: description,
|
|
})
|
|
}).done(function(data) {
|
|
d.actions.save.disabled = false;
|
|
d.actions.cancel.disabled = false;
|
|
|
|
if (data.error == "success") {
|
|
getLinks();
|
|
d.close();
|
|
} else {
|
|
d.access.error.innerHTML = data.error;
|
|
}
|
|
}).fail(function() {
|
|
d.actions.save.disabled = false;
|
|
d.actions.cancel.disabled = false;
|
|
ajaxFailMessage(d);
|
|
});
|
|
}
|
|
|
|
var deleteCVEDialog = new Dialog({
|
|
element: document.querySelector('#delete-cve-dialog'),
|
|
drag: '.title',
|
|
actions: [{
|
|
id: 'delete',
|
|
callback: deleteCVE,
|
|
selector: '.actions .delete'
|
|
}, {
|
|
id: 'cancel',
|
|
callback: 'close',
|
|
selector: '.actions .cancel'
|
|
}],
|
|
access: {
|
|
title: '.title'
|
|
},
|
|
trigger: document.querySelector('.delete-cve')
|
|
});
|
|
|
|
function deleteCVE(button) {
|
|
var cveName = deleteCVEDialog.element.getAttribute('cve_name');
|
|
window.location = "/deletecve/" + cveName;
|
|
}
|
|
|
|
var resetCVEDialog = new Dialog({
|
|
element: document.querySelector('#reset-cve-dialog'),
|
|
drag: '.title',
|
|
actions: [{
|
|
id: 'reset',
|
|
callback: resetCVE,
|
|
selector: '.actions .delete'
|
|
}, {
|
|
id: 'cancel',
|
|
callback: 'close',
|
|
selector: '.actions .cancel'
|
|
}],
|
|
access: {
|
|
title: '.title'
|
|
},
|
|
trigger: document.querySelector('.reset-cve')
|
|
});
|
|
|
|
function resetCVE(button) {
|
|
var cveName = resetCVEDialog.element.getAttribute('cve_name');
|
|
window.location = "/resetcve/" + cveName;
|
|
}
|
|
|
|
getLinks();
|
|
})();
|