lx-scan
Version:
License eXtension to find 5-tuples of all installed packages: name, version, project home page, license (e. g. Apache v2, BSD) and required notice. It includes a GUI to edit information for each package and to enter information if necessary.
148 lines (121 loc) • 4.06 kB
JavaScript
(function (obj) {
obj.indexJS = function(params) {
// This is set up for allowing the file browser button some proper styling
$(document).on('change', '.btn-file :file', function() {
var input = $(this),
numFiles = input.get(0).files ? input.get(0).files.length : 1,
label = input.val().replace(/\\/g, '/').replace(/.*\//, '');
input.trigger('fileselect', [numFiles, label]);
});
$(document).ready( function () {
$(".btn-file :file").on("fileselect", function (event,numFiles,label) {
document.getElementById("filetext").value = label;
});
});
var htmlmatch = /^(https?:)?\/?\/?([^\/.]*[.\/])+([^\/.]*)?$/;
var linkclick;
obj.showbox = function(event,id,note,num) {
if(!window.debug) {
if(event.target.tagName==="A") return;
}
var lightbox = document.getElementById("lightbox"),
notice = document.getElementById("notice"),
lnumber = document.getElementById("lnumber");
notice.value = "Click to modify";
// Initialize the license number box
while (lnumber.firstChild) {
lnumber.removeChild(lnumber.firstChild);
}
var option;
var text;
for(var i=0;i<num;i++) {
option = document.createElement("option");
option.value = i;
text = document.createTextNode(i+1);
option.appendChild(text);
lnumber.appendChild(option);
}
document.getElementById("entry").value = id;
notice.onfocus = function() {
notice.value = note[lnumber.value];
};
var dialog = document.getElementById("dialog");
dialog.action = "/upload/" + "#" + id;
var change = document.getElementById("change");
change.style.display = 'none';
change.value = "";
document.getElementById("home").value = "";
var jfile = document.getElementById("jfile");
jfile.value = params.jfile;
var path = document.getElementById("path");
path.value = params.path;
$("#lightbox").modal("show");
return false;
};
obj.singletoggle = function(id) {
var div = document.getElementById(id);
if (div.style.display !== "none") {
div.style.display = "none";
} else {
div.style.display = "block";
}
};
obj.toggle = function() {
singletoggle("filediv");
singletoggle("newlinkdiv");
document.getElementById("newlink").value = "";
};
window.onresize = function () {
var dimmer = document.getElementById("dimmer");
if(dimmer) {
dimmer.style.width = document.body.offsetWidth + 20 + "px";
dimmer.style.height = document.body.offsetHeight + 20 + "px";
}
};
// for testing purposes;
window.onload = function () {
if(errortext) {
params.errortext.forEach(function(item) {
alert(item);
});
}
}
obj.checkpath = function(form) {
var newlink = document.getElementById("newlink");
var home = document.getElementById("home");
if(newlink.value !== "" && !htmlmatch.test(newlink.value)) {
alert("New license path must be a URL, path, or empty.");
return false;
}
if(home.value !== "" && !htmlmatch.test(home.value)) {
alert("New home page must be a URL.");
return false;
}
return true;
};
obj.subform = function() {
var form = document.getElementById("open");
var ofile = document.getElementById("ofile");
document.getElementById("ojfile").value = params.jfile;
form.submit();
};
obj.subform2 = function() {
var form = document.getElementById("dialog");
form.submit();
}
obj.togglemlink = function() {
var mlink = document.getElementById("menulink");
var menu = document.getElementById("menu");
if(mlink.style.background === menu.style.background) {
mlink.style.background = "#00B299";
} else {
mlink.style.background = menu.style.background;
}
};
obj.toggleOtherBox = function () {
var type = document.getElementById("type");
var change = document.getElementById("change");
change.style.display = type.value !== "oth" ? "none" : "inline-block";
}
}
})(this);