Skip to content

Commit

Permalink
Move make up clicks to Settings
Browse files Browse the repository at this point in the history
faisalnjs committed Jan 22, 2025
1 parent bfc8261 commit ab6fc64
Showing 3 changed files with 41 additions and 55 deletions.
17 changes: 9 additions & 8 deletions index.html
Original file line number Diff line number Diff line change
@@ -132,6 +132,7 @@ <h2 id="history-date"></h2>
<button data-modal-view="settings/code">Seat Code</button>
<button data-modal-view="settings/theme">Theme</button>
<button data-modal-view="settings/keybinds">Keyboard Shortcuts</button>
<button data-modal-view="settings/makeup">Make Up Clicks</button>
<button data-modal-view="settings/reset">Reset</button>
<div class="row center">
<a href="https://github.com/khui0/virtual-clicker" class="icon"><i class="bi bi-github"></i></a>
@@ -246,14 +247,14 @@ <h1 class="text-placeholder">000</h1>
<button data-reset="history">Clear History</button>
<button data-reset="all">Reset All Settings</button>
</div>
</dialog>
<dialog data-modal-page="makeup" data-page-title="Making Up Clicks?">
<p>You will be submitting your click outside school hours. To make up clicks, select the date of the class to make up.</p>
<label for="date-input">Date</label>
<input type="date" id="date-input" />
<div data-modal-actions>
<button id="dismiss-makeup-button">Dismiss</button>
<button id="makeup-click-button">Make Up Click</button>
<div data-modal-page="makeup" data-page-title="Making Up Clicks?">
<p>You will be submitting your click outside school hours. To make up clicks, select the date of the class to make up.</p>
<label for="date-input">Date</label>
<input type="date" id="date-input" />
<div data-modal-actions>
<button id="dismiss-makeup-button">Dismiss</button>
<button id="makeup-click-button">Make Up Click</button>
</div>
</div>
</dialog>
<dialog data-modal-page="clear-data-fix" data-page-title="Settings May Not Save">
55 changes: 8 additions & 47 deletions src/clicker/clicker.js
Original file line number Diff line number Diff line change
@@ -16,7 +16,7 @@ let multipleChoice = null;

let historyIndex = 0;

let makeUpDate = null;
if (!storage.get("makeUpDate")) storage.set("makeUpDate", null);

// Initialization
{
@@ -111,28 +111,8 @@ document.getElementById("submit-button").addEventListener("click", () => {
}
};
validateQuestion(() => {
if (((new Date()).getDay() === 0 || (new Date()).getDay() === 6 || getExtendedPeriod() === -1) && !makeUpDate) {
ui.view("makeup");
const makeupClickButton = document.getElementById("makeup-click-button");
const newMakeupClickButton = makeupClickButton.cloneNode(true);
makeupClickButton.parentNode.replaceChild(newMakeupClickButton, makeupClickButton);
newMakeupClickButton.addEventListener("click", () => {
if (document.getElementById("date-input").value != '') {
const date = new Date(document.getElementById("date-input").value);
let now = new Date();
let hours = now.getHours();
let ampm = hours >= 12 ? 'PM' : 'AM';
hours = hours % 12;
hours = hours ? hours : 12;
makeUpDate = `${date.getMonth() + 1}/${date.getDate() + 1}/${date.getFullYear()} ${hours}:${String(now.getMinutes()).padStart(2, '0')}:${String(now.getSeconds()).padStart(2, '0')} ${ampm}`;
ui.view("");
submit();
} else {
makeUpDate = null;
document.getElementById("date-input").classList.add("attention");
document.getElementById("date-input").focus();
}
});
if (((new Date()).getDay() === 0 || (new Date()).getDay() === 6 || getExtendedPeriod() === -1) && !storage.get("makeUpDate")) {
ui.view("settings/makeup");
} else {
submit();
}
@@ -163,7 +143,7 @@ document.getElementById("submit-button").addEventListener("click", () => {
}
resetInputs();
// Show submit confirmation
ui.modeless(`<i class="bi bi-check-lg"></i>`, makeUpDate ? "Submitted Makeup!" : "Submitted!");
ui.modeless(`<i class="bi bi-check-lg"></i>`, storage.get("makeUpDate") ? "Submitted Makeup!" : "Submitted!");
}
});

@@ -207,7 +187,7 @@ document.getElementById("dismiss-makeup-button").addEventListener("click", () =>
function submitClick(code, question, answer) {
const fields = {
"entry.1896388126": code,
"entry.1232458460": makeUpDate ? `${question} ${makeUpDate}` : question,
"entry.1232458460": storage.get("makeUpDate") ? `${question} ${storage.get("makeUpDate")}` : question,
"entry.1065046570": answer,
};
const params = new URLSearchParams(fields).toString();
@@ -266,28 +246,9 @@ function updateCode() {
document.title = `Virtual Clicker (${storage.get("code")})`;
const matchesCurrentPeriod = parseInt(storage.get("code").slice(0, 1)) === getExtendedPeriod() + 1;
if ((new Date()).getDay() === 0 || (new Date()).getDay() === 6 || getExtendedPeriod() === -1) {
ui.view("makeup");
const makeupClickButton = document.getElementById("makeup-click-button");
const newMakeupClickButton = makeupClickButton.cloneNode(true);
makeupClickButton.parentNode.replaceChild(newMakeupClickButton, makeupClickButton);
newMakeupClickButton.addEventListener("click", () => {
if (document.getElementById("date-input").value != '') {
const date = new Date(document.getElementById("date-input").value);
let now = new Date();
let hours = now.getHours();
let ampm = hours >= 12 ? 'PM' : 'AM';
hours = hours % 12;
hours = hours ? hours : 12;
makeUpDate = `${date.getMonth() + 1}/${date.getDate() + 1}/${date.getFullYear()} ${hours}:${String(now.getMinutes()).padStart(2, '0')}:${String(now.getSeconds()).padStart(2, '0')} ${ampm}`;
ui.view("");
} else {
makeUpDate = null;
document.getElementById("date-input").classList.add("attention");
document.getElementById("date-input").focus();
}
});
ui.view("settings/makeup");
} else if (!matchesCurrentPeriod) {
ui.prompt("Mismatched Seat Code", `Your current seat code does not match the class period you are currently in (${(getExtendedPeriod() != -1) ? (getExtendedPeriod() + 1) : 'none'}). Responses may not be recorded correctly. Are you sure you would like to continue?`, [
ui.prompt("Mismatched Seat Code", `Your current seat code does not match the class period you are currently in (${(getExtendedPeriod() != -1) ? (getExtendedPeriod() + 1) : 'none'}). Responses may not be recorded correctly. Are you sure you would like to continue? To make up clicks, navigate to <b>Settings > Make Up Clicks</b>.`, [
{
text: "Change Code",
close: true,
@@ -377,7 +338,7 @@ function storeClick(code, question, answer, type) {
"answer": answer,
"timestamp": timestamp,
"type": type || "text",
"makeup": makeUpDate,
"makeup": storage.get("makeUpDate"),
});
storage.set("history", history);
updateHistory();
24 changes: 24 additions & 0 deletions src/modules/ui.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import "./ui.css";
import storage from "/src/modules/storage.js";

export function alert(title, text, callback, blur) {
return modal({
@@ -212,6 +213,29 @@ export function view(path) {
show(document.querySelector(`[data-modal-page="${pages[0]}"]`), title, buttons);
const event = new Event("view");
target.dispatchEvent(event);
if (path.includes('makeup')) {
const makeupClickButton = document.getElementById("makeup-click-button");
const newMakeupClickButton = makeupClickButton.cloneNode(true);
makeupClickButton.parentNode.replaceChild(newMakeupClickButton, makeupClickButton);
newMakeupClickButton.addEventListener("click", () => {
if (document.getElementById("date-input").value != '') {
document.getElementById("date-input").classList.remove("attention");
const date = new Date(document.getElementById("date-input").value);
let now = new Date();
let hours = now.getHours();
let ampm = hours >= 12 ? 'PM' : 'AM';
hours = hours % 12;
hours = hours ? hours : 12;
storage.set("makeUpDate", `${date.getMonth() + 1}/${date.getDate() + 1}/${date.getFullYear()} ${hours}:${String(now.getMinutes()).padStart(2, '0')}:${String(now.getSeconds()).padStart(2, '0')} ${ampm}`);
view("");
submit();
} else {
storage.set("makeUpDate", null);
document.getElementById("date-input").classList.add("attention");
document.getElementById("date-input").focus();
}
});
}
}

export function modeless(icon, message) {

0 comments on commit ab6fc64

Please sign in to comment.