From 7366fb89724b1fbbf4a12d17aea8520f7b12cb13 Mon Sep 17 00:00:00 2001 From: "kam (from the studio)" Date: Wed, 24 Nov 2021 15:44:47 +0100 Subject: [PATCH] relative positioning --- .DS_Store | Bin 0 -> 6148 bytes assets/map_description_H.jpg | Bin 0 -> 232606 bytes assets/map_description_V.jpg | Bin 0 -> 228828 bytes index.html | 45 +++++ labels.js | 369 +++++++++++++++++++++++++++++++++++ labels.json | 1 + panels.js | 20 ++ picture.js | 25 +++ session.js | 1 + storedLabels.js | 0 style.css | 322 ++++++++++++++++++++++++++++++ text-export.js | 31 +++ 12 files changed, 814 insertions(+) create mode 100644 .DS_Store create mode 100644 assets/map_description_H.jpg create mode 100644 assets/map_description_V.jpg create mode 100644 index.html create mode 100644 labels.js create mode 100644 labels.json create mode 100644 panels.js create mode 100644 picture.js create mode 100644 session.js create mode 100644 storedLabels.js create mode 100644 style.css create mode 100644 text-export.js diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a1bd10a7d89e9f52e7f4595f36753d5fe6d40cc6 GIT binary patch literal 6148 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 Q4D(=^NAqVMh&uQG0hD~=WB>pF literal 0 HcmV?d00001 diff --git a/assets/map_description_V.jpg b/assets/map_description_V.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e8c18064c2e84033140af3e35b7898329a1e1c24 GIT binary patch literal 228828 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..d5548d2 --- /dev/null +++ b/index.html @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + Collecting Labels + + +
+
+ +
+
+
+
+ + + + + diff --git a/labels.js b/labels.js new file mode 100644 index 0000000..9eaeac3 --- /dev/null +++ b/labels.js @@ -0,0 +1,369 @@ +// Get the container to use as a canvas +const container = document.getElementById("container"); +const editor = document.getElementById("editor"); +const backgroundImage = document.getElementById("background-image"); +const imageTarget = document.getElementById("target"); +const backgroundContainer = document.getElementById("background-container"); + +let backgroundWidth; +let backgroundHeight; + +window.addEventListener("load", () => { + targetSize(); +}); + +window.addEventListener("resize", (e) => { + targetSize(); +}); + +function targetSize() { + backgroundWidth = backgroundImage.width; + backgroundHeight = backgroundImage.height; + + // cringe + imageTarget.style.width = backgroundWidth + "px"; + imageTarget.style.height = backgroundHeight + "px"; +} + +// List of labels +let labels = []; +let labelsObj = []; + +let closing = false; + +// Start is where the mouse is pressed, End is where the mouse is released +let startX; +let startY; +let endX; +let endY; + +// Minimum size for the label to be created +let minimumSizeX = 5; +let minimumSizeY = 5; + +// Boolean for showing the editor during drawing +let showEditor = false; +let editorX = 0; +let editorY = 0; + +function percentagePosition(e, target) { + let targetRect = target.getBoundingClientRect(); + let x = e.clientX - targetRect.left; + let y = e.clientY - targetRect.top; + + return { x: (x / backgroundWidth) * 100, y: (y / backgroundHeight) * 100 }; +} + +window.addEventListener("mousedown", (e) => { + let percentage = percentagePosition(e, imageTarget); + + if (e.target.tagName !== "BUTTON" && e.target.tagName !== "TEXTAREA") { + startX = percentage.x; + startY = percentage.y; + + editorX = e.x; + editorY = e.y; + + // activate the editor + showEditor = true; + editor.classList.add("show-editor"); + } +}); + +// Store the coordinates and trigger the function +window.addEventListener("mouseup", (e) => { + if (e.target.tagName !== "BUTTON" && e.target.tagName !== "TEXTAREA") { + let percentage = percentagePosition(e, imageTarget); + + endX = percentage.x; + endY = percentage.y; + + // disable the editor + showEditor = false; + editor.classList.remove("show-editor"); + editor.style.width = 0; + editor.style.height = 0; + + // draw label + drawLabel(); + } +}); + +// Edit the editor box using transform instead of left / top in order to be more efficient +// (but still with width and height ehm idk if this affects the performance a lot) +// (and it is something we must care of because this event is called like every frame that the mouse is dragged) + +window.addEventListener("mousemove", (e) => { + if (showEditor) { + let minX = Math.min(editorX, e.x); + let minY = Math.min(editorY, e.y); + + let maxX = Math.max(editorX, e.x); + let maxY = Math.max(editorY, e.y); + + let width = maxX - minX; + let height = maxY - minY; + + // Apply a different class when the sizes pass the minimum size + // (i don't know if is good made like this) + if (width > minimumSizeX && height > minimumSizeY) { + editor.classList.add("can-draw"); + } else { + editor.classList.remove("can-draw"); + } + + editor.style.transform = `translate(${minX}px, ${minY}px)`; + editor.style.width = `${maxX - minX}px`; + editor.style.height = `${maxY - minY}px`; + } +}); + +// Store the coordinates and trigger the function +// container.addEventListener("mousedown", (e) => { +// // Avoid inserting a new label if the user is clicking on a close button) +// if (e.target.tagName !== "BUTTON" && e.target.tagName !== "TEXTAREA") { +// startX = e.x; +// startY = e.y; + +// // activate the editor +// showEditor = true; +// editor.classList.add("show-editor"); +// } +// }); + +// container.addEventListener("mouseup", (e) => { +// if (e.target.tagName !== "BUTTON" && e.target.tagName !== "TEXTAREA") { +// endX = e.x; +// endY = e.y; + +// // disable the editor +// showEditor = false; +// editor.classList.remove("show-editor"); +// editor.style.width = 0; +// editor.style.height = 0; + +// // draw label +// drawLabel(); +// } +// }); + +// Edit the editor box using transform instead of left / top in order to be more efficient +// (but still with width and height ehm idk if this affects the performance a lot) +// (and it is something we must care of because this event is called like every frame that the mouse is dragged) +// container.addEventListener("mousemove", (e) => { +// if (showEditor) { +// let minX = Math.min(startX, e.x); +// let minY = Math.min(startY, e.y); + +// let maxX = Math.max(startX, e.x); +// let maxY = Math.max(startY, e.y); + +// let width = maxX - minX; +// let height = maxY - minY; + +// // Apply a different class when the sizes pass the minimum size +// // (i don't know if is good made like this) +// if (width > minimumSizeX && height > minimumSizeY) { +// editor.classList.add("can-draw"); +// } else { +// editor.classList.remove("can-draw"); +// } + +// editor.style.transform = `translate(${minX}px, ${minY}px)`; +// editor.style.width = `${maxX - minX}px`; +// editor.style.height = `${maxY - minY}px`; +// } +// }); + +// Check the mouse direction and create the Label +// The origin points of the label (because is positioned with top left) are always the lowest x and y values +// The width and height are the greater x and y values (because width and height cannot be negative) + +function drawLabel() { + let minX = Math.min(startX, endX); + let minY = Math.min(startY, endY); + + let maxX = Math.max(startX, endX); + let maxY = Math.max(startY, endY); + + let width = maxX - minX; + let height = maxY - minY; + + if (width > minimumSizeX && height > minimumSizeY) { + // Create a label and push it into the array of labels + let temporaryLabel = createLabel(minX, minY, width, height, labels.length); + temporaryLabel.classList.add("temporary"); + + let form = document.createElement("form"); + let input = document.createElement("textarea"); + input.placeholder = "Describe this area"; + + let insert = document.createElement("button"); + insert.innerHTML = "Insert"; + + let cancel = document.createElement("button"); + cancel.innerHTML = "x"; + + form.appendChild(input); + form.appendChild(insert); + form.appendChild(cancel); + + temporaryLabel.appendChild(form); + + imageTarget.appendChild(temporaryLabel); + + new Promise(function (resolve, reject) { + // then if the user click insert and there is a value in the input-- > resolve the promise and return the text input to create the label, + // if the user click cancel-- > reject the promise and don't create the label + + input.focus(); + + // Insert button + insert.addEventListener("click", (e) => { + e.preventDefault(); + if (input.value) { + resolve(); + } + }); + + // Cancel button + cancel.addEventListener("click", (e) => { + e.preventDefault(); + reject(); + }); + }) + .then(() => { + // Create the label + let label = createLabel(minX, minY, width, height, labels.length); + + // Add the text input to the label + let text = document.createElement("p"); + text.classList.add("label--text"); + text.innerHTML = input.value; + label.appendChild(text); + + let labelObj = { + position: { + x: minX, + y: minY, + }, + size: { + width: width, + height: height, + }, + index: labels.length, + text: input.value, + timestamp: Date.now(), + userID: userID, + }; + + uploadLabel(labelObj); + labelsObj.push(labelObj); + labels.push(label); + + imageTarget.appendChild(label); + createLabelTranscription(label); + }) + .catch((e) => {}) + .then(() => { + imageTarget.removeChild(temporaryLabel); + }); + } +} + +// Create the label element +function createLabel(x, y, width, height, index) { + let label = document.createElement("div"); + label.classList.add("label"); + label.style.left = `${x}%`; + label.style.top = `${y}%`; + label.style.width = `${width}%`; + label.style.height = `${height}%`; + + // data attribute index maybe we will need it later maybe not + // with the index number of the label + label.setAttribute("data-index", index); + + // Insert the number in the label + let labelNumber = document.createElement("p"); + labelNumber.classList.add("label--number"); + labelNumber.innerHTML = index + 1; + label.appendChild(labelNumber); + + // Add a button for deleting the label + // TODO: reactive numbering oh no + let close = document.createElement("button"); + close.classList.add("label--close"); + close.innerHTML = "x"; + close.addEventListener("click", (e) => { + label.remove(); + }); + label.appendChild(close); + + return label; +} + +const transcriptionPanel = document.getElementById("transcription-panel"); +const transcriptionList = transcriptionPanel.querySelector("ol"); + +function createLabelTranscription(label) { + let transcription = document.createElement("li"); + transcription.innerHTML = label.querySelector(".label--text").innerHTML; + + transcriptionList.appendChild(transcription); +} + +function uploadLabel(obj) { + fetch("https://hub.xpub.nl/soupboat/collecting-labels/", { + method: "POST", // or 'PUT' + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(obj), + }) + .then((response) => response.json()) + .then((data) => { + console.log("Success:", data); + }) + .catch((error) => { + console.error("Error:", error); + }); +} + +const load = document.getElementById("load-labels"); +load.addEventListener("click", loadLabels); + +function loadLabels() { + load.removeEventListener("click", loadLabels); + fetch("./labels.json") + .then((response) => { + return response.json(); + }) + .then((data) => { + labelsObj = [labelsObj, ...labels]; + data.labels.forEach((label, index) => { + let labelElement = createLabel( + label.position.x, + label.position.y, + label.size.width, + label.size.height, + index + ); + + // THIS IS TEMPORARY + labelElement.style.backgroundColor = `hsla(${Math.floor( + (label.userID / 10000000000) * 255 + )}, 100%, 75%, 0.2)`; + + // Add the text input to the label + let text = document.createElement("p"); + text.classList.add("label--text"); + text.innerHTML = label.text; + labelElement.appendChild(text); + + labelElement.classList.add("loaded"); + + imageTarget.appendChild(labelElement); + }); + }); +} diff --git a/labels.json b/labels.json new file mode 100644 index 0000000..c594648 --- /dev/null +++ b/labels.json @@ -0,0 +1 @@ +{"labels":[{"position":{"x":372,"y":211},"size":{"width":65,"height":52},"index":0,"text":"hello","timestamp":1637677092049,"userID":7333518059},{"position":{"x":487,"y":186},"size":{"width":98,"height":223},"index":0,"text":"place for food and drinks, but also laptops","timestamp":1637677147973,"userID":4737334710},{"position":{"x":830,"y":237},"size":{"width":78,"height":68},"index":1,"text":"i ate silver noodles here","timestamp":1637677150312,"userID":7333518059},{"position":{"x":780,"y":176},"size":{"width":90,"height":88},"index":0,"text":"yes","timestamp":1637677148724,"userID":5500151117},{"position":{"x":987,"y":180},"size":{"width":77,"height":82},"index":1,"text":"yes","timestamp":1637677155873,"userID":5500151117},{"position":{"x":877,"y":308},"size":{"width":92,"height":90},"index":2,"text":"i drank some fine wine here","timestamp":1637677160365,"userID":7333518059},{"position":{"x":964,"y":603},"size":{"width":131,"height":51},"index":0,"text":"Here I like to drink my morning coffie. sip sip sip in the morning glory","timestamp":1637677162844,"userID":5359759454},{"position":{"x":397,"y":190},"size":{"width":47,"height":46},"index":2,"text":"yes","timestamp":1637677163041,"userID":5500151117},{"position":{"x":455,"y":172},"size":{"width":51,"height":63},"index":1,"text":"documents","timestamp":1637677177678,"userID":5359759454},{"position":{"x":600,"y":288},"size":{"width":59,"height":61},"index":1,"text":"where I usually sit; comfortable","timestamp":1637677177935,"userID":4737334710},{"position":{"x":410,"y":288},"size":{"width":60,"height":62},"index":2,"text":"hello, Supi <3","timestamp":1637677192260,"userID":4737334710},{"position":{"x":362,"y":186},"size":{"width":129,"height":103},"index":3,"text":"i ate some really good onigiri here","timestamp":1637677194735,"userID":7333518059},{"position":{"x":454,"y":164},"size":{"width":65,"height":257},"index":3,"text":"yes","timestamp":1637677196365,"userID":5500151117},{"position":{"x":524,"y":389},"size":{"width":44,"height":30},"index":2,"text":"light source","timestamp":1637677204585,"userID":5359759454},{"position":{"x":497,"y":430},"size":{"width":73,"height":60},"index":3,"text":"there should be a chair here","timestamp":1637677205205,"userID":4737334710},{"position":{"x":367,"y":307},"size":{"width":103,"height":81},"index":4,"text":"i drank a glass of water here","timestamp":1637677210086,"userID":7333518059},{"position":{"x":455,"y":246},"size":{"width":35,"height":46},"index":3,"text":"Laptop","timestamp":1637677215083,"userID":5359759454},{"position":{"x":610,"y":580},"size":{"width":183,"height":83},"index":5,"text":"sometimes here there's some wind blowing","timestamp":1637677223929,"userID":7333518059},{"position":{"x":466,"y":599},"size":{"width":104,"height":117},"index":4,"text":"way to the kitchen","timestamp":1637677223650,"userID":4737334710},{"position":{"x":668,"y":640},"size":{"width":158,"height":71},"index":6,"text":"digital wind","timestamp":1637677228131,"userID":7333518059},{"position":{"x":1053,"y":380},"size":{"width":80,"height":178},"index":4,"text":"light source","timestamp":1637677228104,"userID":5359759454},{"position":{"x":700,"y":598},"size":{"width":69,"height":55},"index":4,"text":"yes","timestamp":1637677237000,"userID":5500151117},{"position":{"x":364,"y":622},"size":{"width":64,"height":33},"index":5,"text":"yes","timestamp":1637677244002,"userID":5500151117},{"position":{"x":974,"y":560},"size":{"width":133,"height":100},"index":5,"text":"gateway to breathing either fresh air or some weed","timestamp":1637677249143,"userID":4737334710},{"position":{"x":357,"y":598},"size":{"width":77,"height":66},"index":5,"text":"this is my archive and I really love it","timestamp":1637677256980,"userID":5359759454},{"position":{"x":748,"y":679},"size":{"width":195,"height":68},"index":7,"text":"kind of an electric approach to the politics of air circulation","timestamp":1637677261745,"userID":7333518059},{"position":{"x":809,"y":186},"size":{"width":73,"height":67},"index":6,"text":"where my backpack lays","timestamp":1637677266375,"userID":4737334710},{"position":{"x":871,"y":293},"size":{"width":29,"height":65},"index":6,"text":"yes","timestamp":1637677278331,"userID":5500151117},{"position":{"x":973,"y":666},"size":{"width":166,"height":71},"index":8,"text":"and a barrier here","timestamp":1637677282909,"userID":7333518059},{"position":{"x":800,"y":602},"size":{"width":165,"height":52},"index":7,"text":"do you ever watch TV?","timestamp":1637677291804,"userID":4737334710},{"position":{"x":758,"y":207},"size":{"width":267,"height":139},"index":0,"text":"hello from emma","timestamp":1637677318303,"userID":817257294},{"position":{"x":1002,"y":189},"size":{"width":66,"height":178},"index":6,"text":"light grey, soft fabric, many evening spent on this couch","timestamp":1637677320080,"userID":5359759454},{"position":{"x":797,"y":212},"size":{"width":297,"height":177},"index":9,"text":"social area","timestamp":1637677332480,"userID":7333518059},{"position":{"x":1041,"y":429},"size":{"width":76,"height":144},"index":7,"text":"shadows","timestamp":1637677333874,"userID":5359759454},{"position":{"x":979,"y":314},"size":{"width":88,"height":55},"index":8,"text":"this area is reserved to my friends","timestamp":1637677355022,"userID":5359759454},{"position":{"x":887,"y":314},"size":{"width":33,"height":33},"index":9,"text":"dark grey","timestamp":1637677364142,"userID":5359759454},{"position":{"x":987,"y":179},"size":{"width":76,"height":83},"index":7,"text":"weeknights","timestamp":1637677366233,"userID":5500151117},{"position":{"x":626,"y":653},"size":{"width":139,"height":83},"index":1,"text":"how many kilos this can hold up?","timestamp":1637677395737,"userID":817257294},{"position":{"x":634,"y":619},"size":{"width":131,"height":48},"index":10,"text":"ich kann mich gar nicht an das hier erinnern","timestamp":1637677395866,"userID":5359759454},{"position":{"x":396,"y":189},"size":{"width":47,"height":48},"index":8,"text":"always","timestamp":1637677407512,"userID":5500151117},{"position":{"x":1033,"y":536},"size":{"width":130,"height":217},"index":2,"text":"space towards the outside","timestamp":1637677410213,"userID":817257294},{"position":{"x":822,"y":674},"size":{"width":114,"height":69},"index":3,"text":"no communication with others area","timestamp":1637677419164,"userID":817257294},{"position":{"x":1083,"y":208},"size":{"width":40,"height":151},"index":11,"text":"heating source","timestamp":1637677423499,"userID":5359759454},{"position":{"x":454,"y":163},"size":{"width":64,"height":260},"index":9,"text":"always","timestamp":1637677425431,"userID":5500151117},{"position":{"x":364,"y":623},"size":{"width":62,"height":29},"index":10,"text":"task-based","timestamp":1637677441969,"userID":5500151117},{"position":{"x":997,"y":592},"size":{"width":97,"height":86},"index":12,"text":"door to the outside world","timestamp":1637677442313,"userID":5359759454},{"position":{"x":1106,"y":193},"size":{"width":68,"height":461},"index":10,"text":"there are some venetian curtains. they are really difficult to use. they are crazy. super sensible. they have an agency of their own. it is frustrating you cannot really rely on them you cannot make plan for your environment because they decide for you. aaaaa annoing ","timestamp":1637677446917,"userID":7333518059},{"position":{"x":699,"y":596},"size":{"width":70,"height":60},"index":11,"text":"task-based","timestamp":1637677452189,"userID":5500151117},{"position":{"x":347,"y":654},"size":{"width":121,"height":76},"index":11,"text":"there is a nice poster here eheheh","timestamp":1637677459563,"userID":7333518059},{"position":{"x":872,"y":178},"size":{"width":112,"height":84},"index":12,"text":"no","timestamp":1637677462196,"userID":5500151117},{"position":{"x":359,"y":172},"size":{"width":40,"height":35},"index":13,"text":"dusty corner","timestamp":1637677463311,"userID":5359759454},{"position":{"x":987,"y":263},"size":{"width":77,"height":100},"index":13,"text":"no","timestamp":1637677467680,"userID":5500151117},{"position":{"x":375,"y":210},"size":{"width":223,"height":170},"index":4,"text":"social area","timestamp":1637677468767,"userID":817257294},{"position":{"x":796,"y":185},"size":{"width":270,"height":189},"index":5,"text":"social area","timestamp":1637677469854,"userID":817257294},{"position":{"x":406,"y":486},"size":{"width":74,"height":53},"index":12,"text":"perceived space here is really different","timestamp":1637677475878,"userID":7333518059},{"position":{"x":369,"y":599},"size":{"width":175,"height":144},"index":6,"text":"what should i do in here?","timestamp":1637677480310,"userID":817257294},{"position":{"x":584,"y":189},"size":{"width":49,"height":48},"index":14,"text":"no","timestamp":1637677479675,"userID":5500151117},{"position":{"x":586,"y":292},"size":{"width":46,"height":48},"index":15,"text":"no","timestamp":1637677485937,"userID":5500151117},{"position":{"x":397,"y":291},"size":{"width":48,"height":47},"index":16,"text":"no","timestamp":1637677491073,"userID":5500151117},{"position":{"x":475,"y":658},"size":{"width":76,"height":85},"index":13,"text":"the entrance of a place is a statement","timestamp":1637677493037,"userID":7333518059},{"position":{"x":672,"y":458},"size":{"width":309,"height":93},"index":7,"text":"area where you can lie down and stare at the ceiling","timestamp":1637677505314,"userID":817257294},{"position":{"x":779,"y":175},"size":{"width":90,"height":88},"index":17,"text":"always","timestamp":1637677507883,"userID":5500151117},{"position":{"x":420,"y":410},"size":{"width":111,"height":57},"index":8,"text":"food","timestamp":1637677517837,"userID":817257294},{"position":{"x":872,"y":293},"size":{"width":26,"height":66},"index":18,"text":"always","timestamp":1637677520846,"userID":5500151117},{"position":{"x":904,"y":344},"size":{"width":50,"height":61},"index":9,"text":"food","timestamp":1637677522873,"userID":817257294},{"position":{"x":1039,"y":229},"size":{"width":65,"height":167},"index":10,"text":"confortable zone","timestamp":1637677531973,"userID":817257294},{"position":{"x":856,"y":447},"size":{"width":200,"height":179},"index":14,"text":"this space is perceived really different. in the map is big and empty but actually it feels more warm ","timestamp":1637677534206,"userID":7333518059},{"position":{"x":462,"y":287},"size":{"width":89,"height":149},"index":15,"text":"what's under this table???????","timestamp":1637677545595,"userID":7333518059},{"position":{"x":986,"y":364},"size":{"width":390,"height":448},"index":0,"text":"hi","timestamp":1637681065599,"userID":2944965634},{"position":{"x":877,"y":282},"size":{"width":45,"height":38},"index":1,"text":"kjbkhdvacöoisdjc-jbwcluzqfwcij","timestamp":1637681075013,"userID":2944965634},{"position":{"x":923,"y":318},"size":{"width":46,"height":48},"index":2,"text":"lkxvb","timestamp":1637681108261,"userID":2944965634},{"position":{"x":395,"y":169},"size":{"width":554,"height":349},"index":0,"text":"hellooooo","timestamp":1637682059598,"userID":492584205}]} \ No newline at end of file diff --git a/panels.js b/panels.js new file mode 100644 index 0000000..7153dee --- /dev/null +++ b/panels.js @@ -0,0 +1,20 @@ +const showInfo = document.getElementById("show-info"); +const infoPanel = document.getElementById("info-panel"); + +showInfo.addEventListener("click", (e) => { + infoPanel.classList.add("active"); + infoPanel.querySelector(".close").addEventListener("click", (e) => { + infoPanel.classList.remove("active"); + }); +}); + +const showTranscription = document.getElementById("show-transcription"); +// declared previously in labels.js +// const transcriptionPanel = document.getElementById("transcription-panel"); + +showTranscription.addEventListener("click", (e) => { + transcriptionPanel.classList.add("active"); + transcriptionPanel.querySelector(".close").addEventListener("click", (e) => { + transcriptionPanel.classList.remove("active"); + }); +}); diff --git a/picture.js b/picture.js new file mode 100644 index 0000000..4fe68be --- /dev/null +++ b/picture.js @@ -0,0 +1,25 @@ +// let fileName = ""; + +// window.addEventListener("load", function () { +// let input = document.querySelector('input[type="file"]'); +// input.addEventListener("change", function () { +// if (this.files && this.files[0]) { +// fileName = this.files[0].name; +// let img = document.querySelector("img"); +// img.onload = () => { +// img.classList.add("visible"); +// input.classList.add("hidden"); +// URL.revokeObjectURL(img.src); // no longer needed, free memory +// }; + +// img.src = URL.createObjectURL(this.files[0]); // set src to blob url +// } +// }); +// }); + +const imageButton = document.getElementById("show-image"); + +imageButton.addEventListener("click", (e) => { + let img = document.querySelector("img"); + img.classList.toggle("hidden"); +}); diff --git a/session.js b/session.js new file mode 100644 index 0000000..8b85997 --- /dev/null +++ b/session.js @@ -0,0 +1 @@ +const userID = Math.round(Math.random() * 10000000000); diff --git a/storedLabels.js b/storedLabels.js new file mode 100644 index 0000000..e69de29 diff --git a/style.css b/style.css new file mode 100644 index 0000000..ea52269 --- /dev/null +++ b/style.css @@ -0,0 +1,322 @@ +html, +body { + margin: 0; + font-family: Arial, Helvetica, sans-serif; + width: 100%; + overflow: hidden; +} + +.test-form { + position: fixed; + top: 0; + left: 0; + z-index: 500; +} + +#container { + position: absolute; + left: 50%; + top: 50%; + + transform: translate(-50%, -50%); + width: 90vw; + height: 90vh; + + padding: 0; +} + +#editor { + position: absolute; + display: none; + border: 1px solid tomato; + opacity: 0.5; + width: 0; + height: 0; + top: 0; + left: 0; + z-index: 150; + pointer-events: none; +} + +#editor.can-draw { + opacity: 1; +} + +#editor.show-editor { + display: block; +} + +.label { + position: absolute; + background-color: rgba(250, 99, 72, 0.2); + /* border: 1px solid currentColor; */ + box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.2); + + overflow: hidden; +} + +.label.temporary { + background: none; + /* border: 1px dashed tomato; */ + box-shadow: none; + overflow: visible; +} + +.label.temporary form { + width: 100%; + height: 100%; +} + +.label.temporary textarea { + width: 100%; + height: 100%; + padding: 1ch; + border: none; + background-color: rgba(255, 255, 255, 0.6); +} + +.label.temporary textarea:focus { + outline: 1px dashed tomato; +} + +.label.temporary button { + margin-top: 4px; +} + +.label.temporary button + button { + margin-left: 4px; +} + +.label.temporary .label--number, +.label.temporary .label--close { + display: none; +} + +.label--number { + display: inline-block; + margin: 0; + padding: 0 4px; + + user-select: none; + + background-color: white; +} + +.label--close { + position: absolute; + right: 0; + + border: none; + + padding: 0 4px; + + font-size: 1rem; + + background: none; + color: white; + + cursor: pointer; +} +.label--text { + margin: 1ch 0; + padding: 0 1ch; + + overflow: hidden; + width: 100%; + height: 100%; + text-overflow: ellipsis; + overflow-y: auto; + white-space: pre-line; +} + +.text-input { + display: none; + position: absolute; + z-index: 200; + width: 100%; + height: 100vh; + + justify-content: center; + align-items: center; + + background-color: rgba(255, 99, 71, 0.95); +} + +.text-input.visible { + display: flex; +} + +.modal input { + font-size: 1.5rem; + background: none; + border: none; + color: white; + border-bottom: 1px solid white; +} + +.modal input:focus { + outline: none; + background-color: rgba(255, 255, 255, 0.25); +} + +.text-input button { + color: white; + font-weight: bold; + background: none; + border: none; + cursor: pointer; + font-size: 1.5rem; +} + +#cancel { + font-weight: normal; +} + +.background-container { + width: 100%; + height: 100%; + margin: 0; +} + +#target { + position: absolute; + top: 0; + left: 0; + width: 0; + height: 0; + + left: 50%; + top: 50%; + + transform: translate(-50%, -50%); +} + +.background-container img { + width: auto; + height: auto; + + max-width: 100%; + max-height: 100%; + + left: 50%; + top: 50%; + + transform: translate(-50%, -50%); + + object-fit: contain; + + user-select: none; + position: relative; + pointer-events: none; +} + +.background-container img.visible { + display: initial; +} + +.hidden { + display: none; +} + +.info, +.transcription { + position: absolute; + right: 0; + bottom: 0; + top: 0; + z-index: 50; + + padding: 24px; + margin: 0; + + width: 25%; + line-height: 1.6; + + background-color: #111; + color: white; + + transform: translateX(100%); + transition: transform 0.4s ease-out; +} + +.transcription.active, +.info.active { + transform: translateX(0); + transition: transform 0.6s ease-in; +} + +.transcription .title, +.info .title { + margin: 0; +} + +.transcription ol { + padding: 0; + list-style-position: inside; + font-size: 1.125rem; +} + +#show-info, +#show-transcription, +.close, +button { + background: none; + + display: inline-block; + min-width: 24px; + height: 24px; + border-radius: 24px; + padding: 0 4px; + + border: 1px solid currentColor; + + color: tomato; + + cursor: pointer; +} + +#show-transcription:hover, +#show-info:hover { + border: 1px solid tomato; + background-color: tomato; + color: white; +} + +.close { + position: absolute; + right: 24px; + top: 32px; + color: white; +} + +#export-text:hover, +.close:hover { + border: 1px solid white; + background-color: white; + color: #111; +} + +#export-text { + color: white; +} + +nav { + position: absolute; + top: 0; + left: 0; + right: 0; + z-index: 50; + + padding: 24px; + text-align: right; + + pointer-events: none; +} + +nav > * { + pointer-events: all; +} + +img.hidden { + display: none; +} diff --git a/text-export.js b/text-export.js new file mode 100644 index 0000000..4ae4f0f --- /dev/null +++ b/text-export.js @@ -0,0 +1,31 @@ +const exportText = document.getElementById("export-text"); + +exportText.addEventListener("click", (e) => { + let text = document.querySelector("ol").innerText; + let title = fileName.slice(0, fileName.indexOf(".")) || "export"; + title += ".txt"; + download(text, title, "text/plain;charset=utf-8"); +}); + +// https://stackoverflow.com/questions/13405129/javascript-create-and-save-file +// Thank you Kanchu! +// Function to download data to a file +function download(data, filename, type) { + var file = new Blob([data], { type: type }); + if (window.navigator.msSaveOrOpenBlob) + // IE10+ + window.navigator.msSaveOrOpenBlob(file, filename); + else { + // Others + var a = document.createElement("a"), + url = URL.createObjectURL(file); + a.href = url; + a.download = filename; + document.body.appendChild(a); + a.click(); + setTimeout(function () { + document.body.removeChild(a); + window.URL.revokeObjectURL(url); + }, 0); + } +}