Files
Cue-View/src/saveSlots.js
T
2022-02-06 01:29:33 -05:00

115 lines
3.0 KiB
JavaScript

const VIEW = require('./view.js');
const DEVICE = require('./device.js');
let activeSlot = false;
let savedSlots = [[], [], [], []];
let savedDevices = [];
const storedSlots = localStorage.getItem('savedSlots');
if (storedSlots) {
savedSlots = JSON.parse(storedSlots);
}
const storedDevices = localStorage.getItem('savedDevices');
if (storedDevices) {
savedDevices = JSON.parse(storedDevices);
}
loadSlot = function (slotIndex) {
VIEW.toggleSlotButtons(slotIndex);
activeSlot = slotIndex;
for (var d in DEVICE.all) {
DEVICE.changePinIndex(DEVICE.all[d], false);
}
VIEW.resetPinned();
for (var d in savedSlots[slotIndex]) {
const savedDevice = savedSlots[slotIndex][d];
for (var d in DEVICE.all) {
const device = DEVICE.all[d];
// if(device.addresses[0] == savedDevice.addresses[0] && device.type == savedDevice.type){
if (device.id == savedDevice.id) {
VIEW.pinDevice(device);
VIEW.switchDevice(device.id);
} else if (
device.addresses[0] == savedDevice.addresses[0] &&
device.type == savedDevice.type &&
savedDevice.addresses[0] != undefined
) {
VIEW.pinDevice(device);
VIEW.switchDevice(device.id);
}
}
}
};
module.exports.loadSlot = loadSlot;
module.exports.loadDevices = function () {
console.log(`Loading ${savedDevices.length} saved devices...`);
for (let i = 0; i < savedDevices.length; i++) {
DEVICE.registerDevice({
type: savedDevices[i].type,
displayName: savedDevices[i].displayName,
defaultName: savedDevices[i].defaultName,
port: savedDevices[i].port,
addresses: savedDevices[i].addresses,
id: savedDevices[i].id,
});
}
};
module.exports.saveAll = function () {
console.log('Saving...');
const currentPins = VIEW.getPinnedDevices();
savedSlots[activeSlot] = [];
for (let i = 0; i < currentPins.length; i++) {
savedSlots[activeSlot][i] = {
addresses: currentPins[i].addresses,
type: currentPins[i].type,
id: currentPins[i].id,
};
}
localStorage.setItem('savedSlots', JSON.stringify(savedSlots));
console.log(
`Saved ${currentPins.length} pinned devices to slot ${activeSlot}!`
);
savedDevices = [];
var i = 0;
for (var d in DEVICE.all) {
var device = DEVICE.all[d];
savedDevices[i] = {
addresses: device.addresses,
type: device.type,
displayName: device.displayName,
defaultName: device.defaultName,
port: device.port,
id: device.id,
};
i++;
}
localStorage.setItem('savedDevices', JSON.stringify(savedDevices));
};
module.exports.deleteFromSlots = function (device) {
for (let i = 1; i <= 3; i++) {
console.log(savedSlots);
for (let j = 0; j < savedSlots[i].length; j++) {
if (savedSlots[i][j].id == device.id) {
delete savedSlots[i][j];
}
}
}
};
module.exports.reloadActiveSlot = function () {
loadSlot(activeSlot);
};
module.exports.resetSlots = function () {
localStorage.clear();
};