package.src.js.demo.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
Premium and Open Source dashboard template with responsive and high quality UI.
The newest version!
// Setting items
const items = {
"menu-position": { localStorage: "tablerMenuPosition", default: "top" },
"menu-behavior": { localStorage: "tablerMenuBehavior", default: "sticky" },
"container-layout": {
localStorage: "tablerContainerLayout",
default: "boxed",
},
}
// Theme config
const config = {}
for (const [key, params] of Object.entries(items)) {
const lsParams = localStorage.getItem(params.localStorage)
config[key] = lsParams ? lsParams : params.default
}
// Parse url params
const parseUrl = () => {
const search = window.location.search.substring(1)
const params = search.split("&")
for (let i = 0; i < params.length; i++) {
const arr = params[i].split("=")
const key = arr[0]
const value = arr[1]
if (!!items[key]) {
// Save to localStorage
localStorage.setItem(items[key].localStorage, value)
// Update local variables
config[key] = value
}
}
}
// Toggle form controls
const toggleFormControls = (form) => {
for (const [key, params] of Object.entries(items)) {
const elem = form.querySelector(
`[name="settings-${key}"][value="${config[key]}"]`,
)
if (elem) {
elem.checked = true
}
}
}
// Submit form
const submitForm = (form) => {
// Save data to localStorage
for (const [key, params] of Object.entries(items)) {
// Save to localStorage
const value = form.querySelector(`[name="settings-${key}"]:checked`).value
localStorage.setItem(params.localStorage, value)
// Update local variables
config[key] = value
}
window.dispatchEvent(new Event("resize"))
new bootstrap.Offcanvas(form).hide()
}
// Parse url
parseUrl()
// Elements
const form = document.querySelector("#offcanvasSettings")
// Toggle form controls
if (form) {
form.addEventListener("submit", function (e) {
e.preventDefault()
submitForm(form)
})
toggleFormControls(form)
}