Skip to content

Commit 108f14d

Browse files
Add markerDeleteButton plugin. (#389)
1 parent 9b6fac4 commit 108f14d

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
.wall-item-container:hover .marker-delete-button {
2+
display: block;
3+
}
4+
5+
.marker-delete-button {
6+
display: none;
7+
opacity: 0.25;
8+
position: absolute;
9+
top: 5px;
10+
right: 5px;
11+
z-index: 999;
12+
}
13+
14+
.marker-delete-button:hover {
15+
opacity: 0.75;
16+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
(async () => {
2+
const markerDeleteButton =
3+
'<button class="marker-delete-button btn btn-danger">Delete</button>';
4+
5+
async function setupMarkerDeleteButton() {
6+
document
7+
.querySelectorAll("div.wall-item-container")
8+
.forEach(function (node) {
9+
// Insert delete button.
10+
var deleteButton = document.createElement("div");
11+
deleteButton.innerHTML = markerDeleteButton;
12+
node.prepend(deleteButton);
13+
14+
// Parse marker ID.
15+
var markerImg = node
16+
.querySelector(".wall-item-media")
17+
.getAttribute("src");
18+
var markerID = markerImg.split("/")[6];
19+
20+
// Register click handler.
21+
deleteButton.addEventListener("click", function (e) {
22+
deleteMarker(markerID);
23+
});
24+
});
25+
}
26+
27+
async function deleteMarker(markerID) {
28+
const variables = { id: markerID };
29+
const query = `mutation SceneMarkerDestroy($id: ID!) {sceneMarkerDestroy(id: $id)}`;
30+
await csLib.callGQL({ query, variables }).then(() => {
31+
window.location.reload();
32+
});
33+
}
34+
35+
// Wait for markers page to load.
36+
csLib.PathElementListener(
37+
"/scenes/markers",
38+
"div.wall",
39+
setupMarkerDeleteButton
40+
); // PathElementListener is from cs-ui-lib.js
41+
})();
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: Marker Delete Button
2+
# requires: CommunityScriptsUILibrary
3+
description: Adds a delete button to entries on the Markers page.
4+
version: 0.1
5+
ui:
6+
requires:
7+
- CommunityScriptsUILibrary
8+
javascript:
9+
- markerDeleteButton.js
10+
css:
11+
- markerDeleteButton.css

0 commit comments

Comments
 (0)