mirror of
https://github.com/4cuck/nitter-status.git
synced 2026-10-26 00:52:25 +00:00
82 lines
2.6 KiB
JavaScript
82 lines
2.6 KiB
JavaScript
// Get the table and checkboxes
|
|
const dataTable = document.getElementById('status-tbl');
|
|
const toggleColumnCheckboxes = document.querySelectorAll('.toggle-column');
|
|
|
|
// Add event listeners to individual column toggle checkboxes
|
|
toggleColumnCheckboxes.forEach(checkbox => {
|
|
checkbox.addEventListener('change', function () {
|
|
const columnName = checkbox.getAttribute('data-name');
|
|
let checked = checkbox.checked;
|
|
toggleColumn(columnName,checked);
|
|
saveSettings();
|
|
});
|
|
});
|
|
|
|
function saveSettings() {
|
|
let data = {};
|
|
toggleColumnCheckboxes.forEach(checkbox => {
|
|
const columnName = checkbox.getAttribute('data-name');
|
|
let checked = checkbox.checked;
|
|
data[columnName] = checked;
|
|
});
|
|
setCookie(COOKIE_NAME, JSON.stringify(data),30);
|
|
}
|
|
|
|
// Function to toggle the visibility of a column based on its name or id
|
|
function toggleColumn(name,checked) {
|
|
const cellsTd = dataTable.querySelectorAll(`td[data-name="${name}"]`);
|
|
|
|
cellsTd.forEach(cell => {
|
|
cell.style.display = checked ? '' : 'none';
|
|
});
|
|
const cells = dataTable.querySelectorAll(`th[data-name="${name}"]`);
|
|
|
|
cells.forEach(cell => {
|
|
cell.style.display = checked ? '' : 'none';
|
|
});
|
|
}
|
|
|
|
const COOKIE_NAME = "table_settings";
|
|
document.addEventListener("DOMContentLoaded", function(event) {
|
|
let val = getCookie(COOKIE_NAME);
|
|
if (val) {
|
|
let res = JSON.parse( val );
|
|
console.log(res);
|
|
for (const [key, value] of Object.entries(res)) {
|
|
console.log(key, value);
|
|
toggleColumn(key,value);
|
|
toggleColumnCheckboxes.forEach(checkbox => {
|
|
if (checkbox.getAttribute('data-name') == key) {
|
|
checkbox.checked = value;
|
|
}
|
|
});
|
|
}
|
|
} else {
|
|
toggleColumnCheckboxes.forEach(checkbox => {
|
|
const columnName = checkbox.getAttribute('data-name');
|
|
let checked = checkbox.checked;
|
|
toggleColumn(columnName,checked);
|
|
});
|
|
}
|
|
});
|
|
|
|
function setCookie(name,value,days) {
|
|
var expires = "";
|
|
if (days) {
|
|
var date = new Date();
|
|
date.setTime(date.getTime() + (days*24*60*60*1000));
|
|
expires = "; expires=" + date.toUTCString();
|
|
}
|
|
document.cookie = name + "=" + (value || "") + expires + "; path=/";
|
|
}
|
|
|
|
function getCookie(name) {
|
|
var nameEQ = name + "=";
|
|
var ca = document.cookie.split(';');
|
|
for(var i=0;i < ca.length;i++) {
|
|
var c = ca[i];
|
|
while (c.charAt(0)==' ') c = c.substring(1,c.length);
|
|
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
|
|
}
|
|
return null;
|
|
} |