summaryrefslogtreecommitdiff
path: root/startpage.html
diff options
context:
space:
mode:
authorSimon <vesspa0330@gmail.com>2025-07-01 21:16:06 -0400
committerSimon <vesspa0330@gmail.com>2025-07-01 21:16:06 -0400
commit8241429a7f9b37fffd9744ca9d56c38b6b4d173d (patch)
tree905f2cfe39dec035fa936eb9857eb0ef6540e21a /startpage.html
parentb3380dac7f44fb2af6146a7a83593dc8fdb763d7 (diff)
fixed bug where all new containers would share settings until page
refresh. fixed syntax issues + added page title
Diffstat (limited to 'startpage.html')
-rw-r--r--startpage.html147
1 files changed, 75 insertions, 72 deletions
diff --git a/startpage.html b/startpage.html
index 562c423..7af1a87 100644
--- a/startpage.html
+++ b/startpage.html
@@ -1,6 +1,7 @@
<!DOCTYPE html>
<html>
<head>
+ <title>startpage</title>
<style>
/*
* GENERAL STATE HELPERS
@@ -114,7 +115,7 @@
.expandableMenuToggle {
cursor: pointer;
- padding 18px;
+ padding: 18px;
width: 100%;
}
.expandableMenuToggle.active, .expandableMenuToggle:hover {
@@ -134,17 +135,6 @@
font-style: italic;
}
- #instructionsTab {
- }
- #bookmarkForm {
- }
- #linkCustomizationForm {
- }
- #containerCustomizationForm {
- }
- #resetForm {
- }
-
#editToggle {
z-index: 999;
position: fixed;
@@ -323,10 +313,7 @@
</form>
<form id="ioForm" onsubmit="return false">
- <label
- >use the button below to copy your current configuration to your
- clipboard<br/ >(you should save this somewhere)</label
- >
+ <label>use the button below to copy your current configuration to your clipboard<br />(you should save this somewhere)</label>
<button onclick="exportData()">export data</button><br />
<input id="importDataInput" />
@@ -401,24 +388,25 @@
borderWidth: "5",
borderRadius: "0",
borderColor: "grey",
- sectionFontName: "",
- sectionFontCode: "",
+ fontName: "",
+ fontCode: "",
sectionColor: "",
sectionSize: "16",
sectionItalic: false,
sectionBold: false,
linkColor: "",
linkSize: "16",
- enableDate: true,
- enableClock: true,
- /*
+ /*
*
* IMPLEMENT CLOCK TOGGLE LOGIC
*/
+ enableDate: true,
+ enableClock: true,
clockColor: "",
clockSize: "16",
clockBold: false,
clockItalic: false,
+
disableDivider: false,
dividerColor: "",
centerAlign: false,
@@ -434,8 +422,8 @@
borderWidth: "0",
borderRadius: "0",
borderColor: "grey",
- sectionFontName: "",
- sectionFontCode: "",
+ fontName: "",
+ : "",
sectionColor: "",
sectionSize: "16",
sectionItalic: false,
@@ -604,8 +592,8 @@
* creates a default image container (NEED TO IMPLEMENT DEFAULT IMAGE CONTAINER SETTINGS)
*/
initializeNewImageContainer() {
- // use default settings
- this.containerSettings = defaultImageContainerSettings;
+ // deep copy default settings
+ this.containerSettings = JSON.parse(JSON.stringify(defaultImageContainerSettings));
// insert default container HTML
document.body.insertAdjacentHTML(
@@ -636,8 +624,8 @@
* creates a default text container
*/
initializeNewTextContainer() {
- // use default settings
- this.containerSettings = defaultTextContainerSettings;
+ // deep copy default settings
+ this.containerSettings = JSON.parse(JSON.stringify(defaultTextContainerSettings));
// set no sections
this.sections = {};
@@ -698,9 +686,9 @@
*/
/**
* TODO:
- * --> remove "images" from wallpaper tab
- * ----> furthermore, condense all global settings into one tab
- * ----- including wallpaper, audio, cursor
+ * -> remove "images" from wallpaper tab
+ * -> furthermore, condense all global settings into one tab
+ * - including wallpaper, audio, cursor
* add toggles for each settings menu
* rename settings form div ids (see "note to self")
*/
@@ -762,10 +750,10 @@
<p class="expandableMenuToggle" onclick="toggleExpandableMenu(this)">+ ${this.id}: date / clock settings</p>
<div class="expandableMenu">
<label>show date?</label>
- <input id=${this.id + "-settings-date-toggle"} />
+ <input id=${this.id + "-settings-date-toggle"} type="checkbox" />
<label>show clock?</label>
- <input id=${this.id + "-settings-clock-toggle"} />
+ <input id=${this.id + "-settings-clock-toggle"} type="checkbox" />
<label>set date + time color: </label>
<input id=${this.id + "-settings-clock-color"} type="color" />
@@ -856,7 +844,7 @@
document.getElementById(this.id).style.left = this.x;
/** SIZE */
- const containerSettings = this.containerSettings;
+ let containerSettings = this.containerSettings;
document.getElementById(this.id).style.width = this.width + "px";
// this.width - 2 * parseInt(containerSettings.borderWidth);
document.getElementById(this.id).style.height = this.height + "px";
@@ -916,21 +904,21 @@
/** otherwise, this is a text-based container and there are more options to set: */
/** FONT */
- if (containerSettings.sectionFontName == "") {
+ if (containerSettings.fontName == "") {
document.getElementById(this.id + "-settings-font-name").innerHTML =
"system default";
} else {
document.getElementById(this.id + "-settings-font-name").innerHTML =
- containerSettings.sectionFontName;
+ containerSettings.fontName;
}
- if (containerSettings.sectionFontCode != "") {
+ if (containerSettings.fontCode != "") {
document.head.insertAdjacentHTML(
"beforeend",
- containerSettings.sectionFontCode
+ containerSettings.fontCode
);
// fill in settings ui
document.getElementById(this.id).style.fontFamily =
- containerSettings.sectionFontName;
+ containerSettings.fontName;
}
/** TEXT ALIGNMENT */
@@ -951,7 +939,7 @@
// (FONT NEEDS WORK)
// document.getElementById(this.id + "-settings-section-font-name").value =
- // containerSettings.sectionFontName;
+ // containerSettings.fontName;
document.getElementById(this.id + "-settings-section-color").value =
containerSettings.sectionColor;
document.getElementById(this.id + "-settings-section-size").value =
@@ -987,8 +975,10 @@
/** CLOCK */
// TODO EITHER SHOW THE CLOCK OR DONT
if (containerSettings.enableClock) {
+ // get container's clock element, set display to none
}
if (containerSettings.enableDate) {
+ // get container's date element, set display to none
}
document.getElementById(this.id + "-clock").style.color =
containerSettings.clockColor;
@@ -1247,7 +1237,7 @@
// ensure smooth ux when rerendering
if (containerSettings.disableDivider) {
- document.getElementById("clock").style.marginBottom = "18px";
+ document.getElementById(this.id + "-clock").style.marginBottom = "18px";
}
}
}
@@ -1479,6 +1469,7 @@
let valueArray = [];
containerDataMap.values().forEach((value) => {
valueArray.push(value);
+ console.log(value);
});
localStorage.setItem("containerMapValues", JSON.stringify(valueArray));
@@ -2075,9 +2066,11 @@
let containerId = colorChange.currentTarget.id.split("-")[0];
let container = containerDataMap.get(containerId);
+ console.log(container);
+
container.containerSettings.backgroundRgba = hexToRgba(
- document.getElementById(container.id + "-settings-bg-color").value,
- document.getElementById(container.id + "-settings-bg-alpha").value
+ document.getElementById(containerId + "-settings-bg-color").value,
+ document.getElementById(containerId + "-settings-bg-alpha").value
);
document.getElementById(containerId).style.backgroundColor =
@@ -2210,54 +2203,64 @@
// DIVIDER
function changeDividerColor(colorChange) {
- containerSettings.dividerColor = colorChange.target.value;
- let divider = document.getElementById("containerDivider");
+ let containerId = colorChange.target.id.split("-")[0];
+ let container = containerDataMap.get(containerId);
+
+ container.containerSettings.dividerColor = colorChange.target.value;
+ let divider = document.getElementById(containerId + "-divider");
// set multiple places for compatibility
- divider.style.color = containerSettings.dividerColor;
- divider.style.backgroundColor = containerSettings.dividerColor;
- divider.style.borderColor = containerSettings.dividerColor;
+ divider.style.color = container.containerSettings.dividerColor;
+ divider.style.backgroundColor = container.containerSettings.dividerColor;
+ divider.style.borderColor = container.containerSettings.dividerColor;
}
- function disableDivider(checkbox) {
- containerSettings.disableDivider = this.checked;
- document.getElementById("containerDivider").hidden = this.checked;
+ function disableDivider(checkboxChanged) {
+ let containerId = checkboxChanged.target.id.split("-")[0];
+ let container = containerDataMap.get(containerId);
- if (this.checked && links.length > 0) {
- document.getElementById("clock").style.marginBottom = "18px";
+ container.containerSettings.disableDivider = checkboxChanged.target.checked;
+ document.getElementById(containerId + "-divider").hidden = checkboxChanged.target.checked;
+
+ if (checkboxChanged.target.checked && Object.keys(container.sections).length > 0) {
+ document.getElementById(containerId + "-clock").style.marginBottom = "18px";
} else {
- document.getElementById("clock").style.marginBottom = "0px";
+ document.getElementById(containerId + "-clock").style.marginBottom = "0px";
}
}
// TEXT
- function changeContainerAlignment() {
- if (document.getElementById("setLeftAlign").checked) {
- containerSettings.centerAlign = false;
- document.getElementById("mainContainer").style.textAlign = "left";
- } else if (document.getElementById("setCenterAlign").checked) {
- containerSettings.centerAlign = true;
- document.getElementById("mainContainer").style.textAlign = "center";
+ function changeContainerAlignment(alignmentChanged) {
+ let containerId = alignmentChanged.target.id.split("-")[0];
+ let container = containerDataMap.get(containerId);
+
+ if (document.getElementById(containerId + "-settings-left-align").checked) {
+ container.containerSettings.centerAlign = false;
+ document.getElementById(containerId).style.textAlign = "left";
+ } else if (document.getElementById(containerId + "-settings-center-align").checked) {
+ container.containerSettings.centerAlign = true;
+ document.getElementById(containerId).style.textAlign = "center";
}
}
- function changeFont() {
- let input = document.getElementById("fontInput").value;
+ function changeFont(buttonClicked) {
+ let containerId = buttonClicked.target.id.split("-")[0];
+ let container = containerDataMap.get(containerId);
+
+ let input = document.getElementById(containerId + "-settings-font-input").value;
if (input == "") {
return;
}
- // wipe current font tags
- let oldTags = document.getElementsByTagName("link");
- for (let i = 0; i < oldTags.length; i++) {
- oldTags[0].remove();
- }
-
// parse input
fontCode = input;
fontName = fontCode.slice(fontCode.indexOf("family=") + 7);
- fontName = fontName.slice(0, fontName.indexOf("&") + 1);
- fontName = fontName.slice(0, fontName.indexOf(":")).replace("+", " ");
+ if (fontName.indexOf("&") != -1) {
+ fontName = fontName.slice(0, fontName.indexOf("&") + 1);
+ }
+ fontName = fontName.slice(0, fontName.indexOf(":")).replaceAll("+", " ");
// set new font
document.head.insertAdjacentHTML("beforeend", fontCode);
- document.body.style.fontFamily = fontName;
- document.getElementById("currentFont").innerHTML = fontName;
+ document.getElementById(containerId).style.fontFamily = fontName;
+ document.getElementById(containerId + "-settings-font-name").innerHTML = fontName;
+ container.containerSettings.fontCode = fontCode;
+ container.containerSettings.fontName = fontName;
}
// SHADOW