contentdb/app/public/static/js/package_create.js
2023-08-26 13:08:11 +01:00

75 lines
1.9 KiB
JavaScript

// @author rubenwardy
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
"use strict";
function hide(sel) {
document.querySelectorAll(sel).forEach(x => x.classList.add("d-none"));
}
function show(sel) {
document.querySelectorAll(sel).forEach(x => x.classList.remove("d-none"));
}
window.addEventListener("load", () => {
function finish() {
hide(".pkg_wiz_1");
hide(".pkg_wiz_2");
show(".pkg_repo");
show(".pkg_meta");
}
hide(".pkg_meta");
show(".pkg_wiz_1");
document.getElementById("pkg_wiz_1_skip").addEventListener("click", finish);
document.getElementById("pkg_wiz_1_next").addEventListener("click", () => {
const repoURL = document.getElementById("repo").value;
if (repoURL.trim() !== "") {
hide(".pkg_wiz_1");
show(".pkg_wiz_2");
hide(".pkg_repo");
function setField(sel, value) {
if (value && value !== "") {
const ele = document.querySelector(sel);
ele.value = value;
ele.dispatchEvent(new Event("change"));
// EasyMDE doesn't always refresh the codemirror correctly
if (ele.easy_mde) {
setTimeout(() => {
ele.easy_mde.value(value);
ele.easy_mde.codemirror.refresh()
}, 100);
}
}
}
performTask("/tasks/getmeta/new/?url=" + encodeURI(repoURL)).then(function(result) {
setField("#name", result.name);
setField("#title", result.title);
setField("#repo", result.repo || repoURL);
setField("#issueTracker", result.issueTracker);
setField("#desc", result.desc);
setField("#short_desc", result.short_desc);
setField("#forums", result.forums);
if (result.type && result.type.length > 2) {
setField("[name='type']", result.type);
}
finish();
}).catch(function(e) {
alert(e);
show(".pkg_wiz_1");
hide(".pkg_wiz_2");
show(".pkg_repo");
// finish()
});
} else {
finish();
}
})
})