85 lines
2.9 KiB
JavaScript
85 lines
2.9 KiB
JavaScript
function renderFileButton(apiURL, id, title, subtitle) {
|
|
let btn = document.createElement("a");
|
|
btn.classList = "file_button";
|
|
btn.href = "/u/"+id;
|
|
btn.target = "_blank";
|
|
let thumbnail = document.createElement("img");
|
|
thumbnail.src = apiURL+"/file/"+id+"/thumbnail?width=80&height=80";
|
|
thumbnail.alt = title;
|
|
let titleSpan = document.createElement("span");
|
|
titleSpan.classList = "file_button_title";
|
|
titleSpan.innerText = title;
|
|
let br = document.createElement("br");
|
|
let subtitleSpan = document.createElement("span");
|
|
subtitleSpan.classList = "file_button_subtitle";
|
|
subtitleSpan.innerText = subtitle;
|
|
|
|
btn.appendChild(thumbnail);
|
|
btn.appendChild(titleSpan);
|
|
btn.appendChild(br);
|
|
btn.appendChild(subtitleSpan);
|
|
return btn;
|
|
}
|
|
function renderListButton(apiURL, id, title, subtitle) {
|
|
let btn = document.createElement("a");
|
|
btn.classList = "file_button";
|
|
btn.href = "/l/"+id;
|
|
btn.target = "_blank";
|
|
let thumbnail = document.createElement("img");
|
|
thumbnail.src = apiURL+"/list/"+id+"/thumbnail?width=80&height=80";
|
|
thumbnail.alt = title;
|
|
let titleSpan = document.createElement("span");
|
|
titleSpan.classList = "file_button_title";
|
|
titleSpan.innerText = title;
|
|
let br = document.createElement("br");
|
|
let subtitleSpan = document.createElement("span");
|
|
subtitleSpan.classList = "file_button_subtitle";
|
|
subtitleSpan.innerText = subtitle;
|
|
|
|
btn.appendChild(thumbnail);
|
|
btn.appendChild(titleSpan);
|
|
btn.appendChild(br);
|
|
btn.appendChild(subtitleSpan);
|
|
return btn;
|
|
}
|
|
|
|
function addUploadHistory(fileID) {
|
|
// Make sure the user is not logged in, for privacy. This keeps the
|
|
// files uploaded while logged in and anonymously uploaded files
|
|
// separated
|
|
if (document.cookie.includes("pd_auth_key")) { return; }
|
|
|
|
let uploads = localStorage.getItem("uploaded_files");
|
|
if (uploads === null) { uploads = ""; }
|
|
|
|
// Check if there are not too many values stored
|
|
if (uploads.length > 3600) {
|
|
// 3600 characters is enough to store 400 file IDs. If we exceed that
|
|
// number we'll drop the last two items
|
|
uploads = uploads.substring(
|
|
uploads.indexOf(",") + 1
|
|
).substring(
|
|
uploads.indexOf(",") + 1
|
|
);
|
|
}
|
|
|
|
// Save the new ID
|
|
localStorage.setItem("uploaded_files", fileID + "," + uploads);
|
|
}
|
|
|
|
function copyText(text) {
|
|
// Create a textarea to copy the text from
|
|
let ta = document.createElement("textarea");
|
|
ta.setAttribute("readonly", "readonly")
|
|
ta.style.position = "absolute";
|
|
ta.style.left = "-9999px";
|
|
ta.value = text; // Put the text in the textarea
|
|
|
|
// Add the textarea to the DOM so it can be seleted by the user
|
|
document.body.appendChild(ta);
|
|
ta.select() // Select the contents of the textarea
|
|
let success = document.execCommand("copy"); // Copy the selected text
|
|
document.body.removeChild(ta); // Remove the textarea
|
|
return success;
|
|
}
|