Compare commits
13 Commits
master
...
edge-2022-
Author | SHA1 | Date | |
---|---|---|---|
122faaae85 | |||
0263964326 | |||
121cc23cdf | |||
55c3793c0e | |||
66e603324d | |||
6c49ca08bf | |||
9ba879666c | |||
e793bb288d | |||
42cc8e43e1 | |||
f7f8ba936c | |||
a9c8cb7dbd | |||
37221989f6 | |||
2e7595d639 |
57
index.js
57
index.js
@ -9,7 +9,6 @@ var SortOrderBStateI = true
|
||||
var SortOrderEnabled = false
|
||||
var SortValue = ""
|
||||
var OrderValue = ""
|
||||
var ReplaceNeeded = true
|
||||
function SetupJS() {
|
||||
SetupIndexArray()
|
||||
SetupJSTheme()
|
||||
@ -69,26 +68,37 @@ function SetupJSTheme() {
|
||||
var th = document.getElementById("theme")
|
||||
th.href = "#"
|
||||
if (document.addEventListener) {
|
||||
th.addEventListener("click", ToggleTheme)
|
||||
th.addEventListener("click", CToggleTheme)
|
||||
} else {
|
||||
th.setAttribute("onclick", "ToggleTheme();")
|
||||
th.onclick = ToggleTheme
|
||||
th.setAttribute("onclick", "CToggleTheme();")
|
||||
th.onclick = CToggleTheme
|
||||
}
|
||||
}
|
||||
function cReplaceHistory() {
|
||||
ReplaceHistory(window.location.href)
|
||||
}
|
||||
function ReplaceHistory(url) {
|
||||
if (window.history) {
|
||||
if (window.history.replaceState) {
|
||||
window.history.replaceState({
|
||||
light: !!document.getElementById("so-theme"),
|
||||
order: document.getElementById("so-order").value,
|
||||
sort: document.getElementById("so-sort").value
|
||||
}, "", url);
|
||||
console.log("REPLACE")
|
||||
}
|
||||
}
|
||||
}
|
||||
function PushHistory(url) {
|
||||
var s = true
|
||||
if (window.history) {
|
||||
if (window.history.pushState) {
|
||||
var objectData = {
|
||||
window.history.pushState({
|
||||
light: !!document.getElementById("so-theme"),
|
||||
order: document.getElementById("so-order").value,
|
||||
sort: document.getElementById("so-sort").value
|
||||
};
|
||||
if (ReplaceNeeded) {
|
||||
window.history.replaceState(objectData, "", url);
|
||||
ReplaceNeeded = false
|
||||
}
|
||||
window.history.pushState( objectData, "", url);
|
||||
}, "", url);
|
||||
console.log("PUSH")
|
||||
s = false
|
||||
}
|
||||
}
|
||||
@ -96,7 +106,11 @@ function PushHistory(url) {
|
||||
document.location.href = url
|
||||
}
|
||||
}
|
||||
function ToggleTheme() {
|
||||
function CToggleTheme() {
|
||||
ToggleTheme(true)
|
||||
}
|
||||
function ToggleTheme(p) {
|
||||
if (p) {cReplaceHistory();}
|
||||
var th = document.getElementById("theme")
|
||||
var thimg = document.getElementById("theme-img")
|
||||
var thsty = document.getElementById("style-theme")
|
||||
@ -109,7 +123,7 @@ function ToggleTheme() {
|
||||
th.title = "Switch to Light Mode"
|
||||
document.getElementById("so-form").removeChild(document.getElementById("so-theme"))
|
||||
logo.href = "?"
|
||||
PushHistory(url+"?"+TheParameters+"#")
|
||||
if (p) {PushHistory(url+"?"+TheParameters+"#");}
|
||||
thsty.href = CssDarkURL
|
||||
} else {
|
||||
thimg.src = MoonImageURL
|
||||
@ -121,29 +135,34 @@ function ToggleTheme() {
|
||||
thi.id = "so-theme"
|
||||
document.getElementById("so-form").appendChild(thi)
|
||||
logo.href = "?light"
|
||||
if (p) {
|
||||
if (TheParameters === "") {
|
||||
PushHistory(url + "?light#")
|
||||
} else {
|
||||
PushHistory(url + "?light&" + TheParameters + "#")
|
||||
}
|
||||
}
|
||||
thsty.href = CssLightURL
|
||||
}
|
||||
}
|
||||
function SetupJSHPL(){
|
||||
if (window.history) {
|
||||
if (window.history.pushState) {
|
||||
if (window.history.pushState && window.history.replaceState) {
|
||||
//document.addEventListener("DOMContentLoaded", cReplaceHistory)
|
||||
window.addEventListener("popstate", HandleHistoryPop)
|
||||
}
|
||||
}
|
||||
}
|
||||
function HandleHistoryPop(event) {
|
||||
console.log("POP")
|
||||
console.log(event.state)
|
||||
if (event.state) {
|
||||
SortOrderEnabled = false
|
||||
var isnl = !document.getElementById("so-theme")
|
||||
if ((event.state.light && isnl) || (!event.state.light && !isnl)) {ToggleTheme();}
|
||||
if ((event.state.light && isnl) || (!event.state.light && !isnl)) {ToggleTheme(false);}
|
||||
document.getElementById("so-order").value = event.state.order
|
||||
document.getElementById("so-sort").value = event.state.sort
|
||||
EntrySort(event.state.order, event.state.sort)
|
||||
EntrySort(event.state.order, event.state.sort, false)
|
||||
SortOrderEnabled = true
|
||||
}
|
||||
}
|
||||
@ -203,9 +222,9 @@ function SetupJSSOI() {
|
||||
SortOrderEnabled = true
|
||||
}
|
||||
function HandleSortOrderChange() {
|
||||
if (SortOrderEnabled) {EntrySort(document.getElementById("so-order").value, document.getElementById("so-sort").value);}
|
||||
if (SortOrderEnabled) {EntrySort(document.getElementById("so-order").value, document.getElementById("so-sort").value, true);}
|
||||
}
|
||||
function EntrySort(o, s) {
|
||||
function EntrySort(o, s, p) {
|
||||
var ts = s.toString().toLowerCase()
|
||||
var chg = false
|
||||
if (SortValue !== s) {
|
||||
@ -251,11 +270,13 @@ function EntrySort(o, s) {
|
||||
TheParameters = "order="+OrderValue+"&sort="+SortValue
|
||||
var url = document.location.href
|
||||
url = url.split("#", 1)[0].split('?', 1)[0]
|
||||
if (p) {
|
||||
if (document.getElementById("so-theme")) {
|
||||
PushHistory(url + "?light&" + TheParameters)
|
||||
} else {
|
||||
PushHistory(url + "?" + TheParameters)
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < EntryIndices.length; i++) {
|
||||
var tNode = document.getElementById("entry-"+EntryIndices[i])
|
||||
var pNode = tNode.parentNode
|
||||
|
Loading…
Reference in New Issue
Block a user