WebFM/resources/js/uiEvents.js

118 lines
3.8 KiB
JavaScript
Raw Normal View History

let itemObj = undefined;
// For context menu to have element
document.onclick = (event) => {
let obj = event.target;
let callingID = obj.id;
let classNM = obj.className;
// right-click detect
if (event.which == 3) {
if (callingID == "imageID") {
setSelectedItem(obj.alt);
} else if (callingID == "dirID" || callingID == "fileID" ||
callingID == "movieID") {
let node = obj.parentNode;
setSelectedItem(node.children[1].value);
} else if (classNM == "fileStyle" || classNM == "dirStyle" ||
classNM == "movieStyle") {
setSelectedItem(obj.children[1].value);
}
}
}
// Actions for content
document.ondblclick = (event) => {
let obj = event.target;
let callingID = obj.id;
let classNM = obj.className;
// Left click detect
if (event.which == 1) {
// If clicking on container
2019-01-28 18:56:27 +00:00
if (classNM === "fileStyle" || classNM === "movieStyle" ||
classNM === "dirStyle") {
if (classNM === "dirStyle") {
getDir(obj.children[1].value);
2019-01-28 18:56:27 +00:00
} else if (classNM === "movieStyle") {
2019-04-12 19:39:24 +00:00
showMedia(obj.children[0].value, "video");
} else {
2019-01-24 02:11:59 +00:00
showMedia(obj.children[1].value, "file");
}
2019-03-28 20:26:12 +00:00
} else if (callingID === "dirID") { // If clicking on dir icon
let node = obj.parentNode;
getDir(node.children[1].value);
2019-03-28 20:26:12 +00:00
} else if (callingID === "movieID") { // If clicking on movie thumbnail
let node = obj.parentNode;
2019-01-28 18:56:27 +00:00
showMedia(node.children[1].value, "video");
2019-03-28 20:26:12 +00:00
} else if (callingID === "fileID") { // If clicking on file icon
let node = obj.parentNode;
2019-01-24 02:11:59 +00:00
showMedia(node.children[1].value, "file");
2019-03-28 20:26:12 +00:00
} else if (callingID === "imageID") { // If clicking on image
2019-01-24 02:11:59 +00:00
showMedia(obj.alt, "image");
2019-03-28 20:26:12 +00:00
} else if (callingID === "titleID") { // If clicking on text title
enableEdit(obj);
}
}
}
// Mainly for rename event
document.onkeydown = (event) => {
let obj = event.target;
let callingID = event.target.id;
let keyCodeVal = event.keyCode;
// If keycode == Enter
if (keyCodeVal == 13) {
if (callingID == "titleID") {
renameItem(obj);
}
}
}
2019-03-28 20:26:12 +00:00
const setSelectedItem = (item) => { itemObj = item; }
// Drage event for the poped out image and media container
const dragContainer = (elmnt) => {
let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
2018-07-07 20:32:45 +00:00
elmnt.onmousedown = dragMouseDown;
function dragMouseDown(e) {
e = e || window.event;
pauseEvent(e);
// get the mouse cursor position at startup:
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;
// call a function whenever the cursor moves:
document.onmousemove = elementDrag;
}
function elementDrag(e) {
e = e || window.event;
pauseEvent(e);
// calculate the new cursor position:
pos1 = pos3 - e.clientX;
pos2 = pos4 - e.clientY;
pos3 = e.clientX;
pos4 = e.clientY;
// set the element's new position:
elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
}
function closeDragElement(e) {
// stop moving when mouse button is released:
document.onmouseup = null;
document.onmousemove = null;
}
function pauseEvent(e) {
if(e.stopPropagation) e.stopPropagation();
if(e.preventDefault) e.preventDefault();
e.cancelBubble=true;
e.returnValue=false;
return false;
}
}