/// import * as vistorian from './vistorian'; import * as main from 'vistorian-core/src/main'; var SESSION_TABLENAMES: string = "vistorian.tablenames"; var SESSION_TABLE: string = "vistorian.table"; var SESSION_NETWORK: string = "vistorian.network"; var SESSION_NETWORKIDS: string = "vistorian.networkIds"; var SESSION_SESSIONID: string = "vistorian.lastSessionId"; var SEP: string = "#"; // SESSION export function saveSessionId(sessionid: string) { $.jStorage.set("vistorian.lastSessionId", sessionid); } export function getLastSessionId(): string { var session: string = $.jStorage.get("vistorian.lastSessionId"); return session; } ////////////// /// TABLES /// ////////////// // Stores all user's tables (tables must be in json format) export function saveUserTable(table: any, sessionid: string) { // add name to table names if not yet there. var tableNames: string[] = getTableNames(sessionid); var found: boolean = false; if (!tableNames) { tableNames = []; } else { tableNames.forEach(tableName => { if (tableName == table.name) { found = true; } }) } if (!found) { tableNames.push(table.name); saveTableNames(tableNames, sessionid); } $.jStorage.set(sessionid + "#" + "vistorian.table" + "#" + table.name, table); } // returns all users' tables export function getUserTables(sessionid: string): vistorian.VTable[] { var tablenames: string[] = getTableNames(sessionid); var tables: vistorian.VTable[] = []; for (var i = 0; i < tablenames.length; i++) { tables.push($.jStorage.get(sessionid + "#" + "vistorian.table" + "#" + tablenames[i])); } return tables; } export function getUserTable(tablename: string, sessionid: string): vistorian.VTable { return $.jStorage.get(sessionid + "#" + "vistorian.table" + "#" + tablename) } export function getTableNames(sessionid: string): string[] { var names: string[] = $.jStorage.get(sessionid + "#" + "vistorian.tablenames"); if (names == undefined) names = [] return names; } export function saveTableNames(tableNames: any, sessionid: string) { $.jStorage.set(sessionid + "#" + "vistorian.tablenames", tableNames); } export function deleteTable(table: vistorian.VTable, sessionid: string) { $.jStorage.deleteKey(sessionid + "#" + "vistorian.table" + "#" + table.name); var tableNames: string[] = getTableNames(sessionid); var found: boolean = false; if (!tableNames) { tableNames = []; } else { tableNames.forEach(tableName => { if (tableName == table.name) { found = true; } }) } if (found) { tableNames.splice(tableNames.indexOf(table.name), 1); saveTableNames(tableNames, sessionid); } } //////////////// /// NETWORKS /// //////////////// export function getNetworkIds(sessionid: string): number[] { var ids: number[] = $.jStorage.get(sessionid + "#" + "vistorian.networkIds"); if (ids == undefined) ids = [] return ids; } export function saveNetwork(network: vistorian.Network, sessionid: string) { // add name to table names if not yet there. var networkIds: number[] = getNetworkIds(sessionid); var found: boolean = false; if (!networkIds) { networkIds = []; } else { networkIds.forEach(networkId => { if (networkId == network.id) { found = true; } }) } if (!found) { networkIds.push(network.id); saveNetworkIds(networkIds, sessionid); } $.jStorage.set(sessionid + "#" + "vistorian.network" + "#" + network.id, network); } export function saveNetworkIds(networkIds: any, sessionid: string) { $.jStorage.set(sessionid + "#" + "vistorian.networkIds", networkIds); } export function getNetwork(networkId: string, sessionid: string): vistorian.Network { return $.jStorage.get(sessionid + "#" + "vistorian.network" + "#" + networkId); } export function deleteNetwork(network: vistorian.Network, sessionid: string) { main.deleteData(network.name); deleteNetworkById(network.id, sessionid); } export function deleteNetworkById(id: number, sessionid: string) { // remove network tables from local storage: $.jStorage.set(sessionid + "#" + "vistorian.network" + "#" + id, {}); $.jStorage.deleteKey(sessionid + "#" + "vistorian.network" + "#" + id); var networkIds: number[] = getNetworkIds(sessionid); var found: boolean = false; if (!networkIds) { networkIds = []; } else { networkIds.forEach(networkId => { if (networkId == id) { found = true; } }) } if (found) { networkIds.splice(networkIds.indexOf(id), 1); saveNetworkIds(networkIds, sessionid); } }