normalize local storage key space

This commit is contained in:
Stewart Allen 2020-03-20 00:22:37 -04:00
commit a60e4e5b46

View file

@ -71,6 +71,25 @@ THREE.Face3.prototype.mVisible = function(show) {
CP = Cube.prototype, CP = Cube.prototype,
BP = Bounds.prototype, BP = Bounds.prototype,
// --------------- // ---------------
SKEY = {
seed: 'meta-seed',
zoom: 'meta-zoom',
mmode: 'meta-mmode',
smode: 'meta-smode',
snames: 'meta-names',
spaces: 'meta-spaces',
wspace: 'meta-workspc',
workid: 'meta-work-id',
workvr: 'meta-work-vr'
},
OKEY = {
'spaceNames': 'meta-names',
'spaces': 'meta-spaces',
'workspace': 'meta-workspc',
'workspace-i': 'meta-work-id',
'workspace-v': 'meta-work-vr'
},
// ---------------
FACES = ['bt','tb','lr','rl','fb','bf'], FACES = ['bt','tb','lr','rl','fb','bf'],
FACE = { FACE = {
rl: { mi:0, x: HALF, y:0, z:0, rx:0, ry:PI2, rz:0, ox: 1, oy:0, oz:0, tx:PI2, ty:0, tz:0 }, rl: { mi:0, x: HALF, y:0, z:0, rx:0, ry:PI2, rz:0, ox: 1, oy:0, oz:0, tx:PI2, ty:0, tz:0 },
@ -248,6 +267,13 @@ THREE.Face3.prototype.mVisible = function(show) {
* LETS_GET_THIS_PARTY_STARTED() * LETS_GET_THIS_PARTY_STARTED()
******************************************************************* */ ******************************************************************* */
Object.keys(OKEY).forEach(key => {
if (SDB[key]) {
SDB[OKEY[key]] = SDB[key];
delete SDB[key];
}
});
function nextID() { function nextID() {
return ++cubeID; return ++cubeID;
} }
@ -533,9 +559,9 @@ THREE.Face3.prototype.mVisible = function(show) {
/** and a few more settings before we're done */ /** and a few more settings before we're done */
setGridSize(gridSize); setGridSize(gridSize);
setZoom(SDB['meta-zoom'] === 'true'); setZoom(SDB[SKEY.zoom] === 'true');
setSelectMode(SDB['meta-smode'] || SELECT.REGION,true); setSelectMode(SDB[SKEY.smode] || SELECT.REGION,true);
setMarkMode(SDB['meta-mmode'] || MARK.EMIT,true); setMarkMode(SDB[SKEY.mmode] || MARK.EMIT,true);
setEditMode(EDIT.SELECT); setEditMode(EDIT.SELECT);
setSpaceUnits('1 cm'); setSpaceUnits('1 cm');
@ -550,7 +576,7 @@ THREE.Face3.prototype.mVisible = function(show) {
if (value !== undefined) { if (value !== undefined) {
UI.invert.checked = value; UI.invert.checked = value;
} }
SPACE.view.setZoom(SDB['meta-zoom'] = UI.invert.checked); SPACE.view.setZoom(SDB[SKEY.zoom] = UI.invert.checked);
} }
function inputHasFocus() { function inputHasFocus() {
@ -665,7 +691,7 @@ THREE.Face3.prototype.mVisible = function(show) {
setEditMode(EDIT.ADD); setEditMode(EDIT.ADD);
break; break;
case cca('s'): case cca('s'):
setEditMode(EDIT.SELECT); setEditMode(EDIT.SELECT,false,true);
break; break;
case cca('d'): case cca('d'):
setEditMode(EDIT.DELETE); setEditMode(EDIT.DELETE);
@ -746,7 +772,7 @@ THREE.Face3.prototype.mVisible = function(show) {
DOC.body.focus(); DOC.body.focus();
} }
function setEditMode(newmode,term) { function setEditMode(newmode,term,toggle) {
focusInput(); focusInput();
updateHighlights(editModeButtons,newmode); updateHighlights(editModeButtons,newmode);
if (newmode === null) return; if (newmode === null) return;
@ -760,12 +786,12 @@ THREE.Face3.prototype.mVisible = function(show) {
case EDIT.ADD: color = COLOR.ADD; break; case EDIT.ADD: color = COLOR.ADD; break;
case EDIT.DELETE: color = COLOR.DELETE; break; case EDIT.DELETE: color = COLOR.DELETE; break;
case EDIT.SELECT: case EDIT.SELECT:
newSelect = sameMode ? SELECT_NEXT[selectMode] : selectMode; newSelect = toggle && sameMode ? SELECT_NEXT[selectMode] : selectMode;
color = COLOR.SELECT; color = COLOR.SELECT;
break; break;
case EDIT.CLONE: color = COLOR.CLONE; break; case EDIT.CLONE: color = COLOR.CLONE; break;
case EDIT.MARK: case EDIT.MARK:
newMark = sameMode ? MARK_NEXT[markMode] : markMode; newMark = toggle && sameMode ? MARK_NEXT[markMode] : markMode;
break; break;
} }
setSelectMode(newSelect,true); setSelectMode(newSelect,true);
@ -779,7 +805,7 @@ THREE.Face3.prototype.mVisible = function(show) {
updateHighlights(selectModeButtons,newmode); updateHighlights(selectModeButtons,newmode);
if (newmode == null) return; if (newmode == null) return;
selectMode = parseInt(newmode); selectMode = parseInt(newmode);
SDB['meta-smode'] = selectMode; SDB[SKEY.smode] = selectMode;
if (term) return; if (term) return;
setEditMode(EDIT.SELECT,term); setEditMode(EDIT.SELECT,term);
scheduleUpdateFaces(); scheduleUpdateFaces();
@ -789,7 +815,7 @@ THREE.Face3.prototype.mVisible = function(show) {
updateHighlights(markTypeButtons,newmode); updateHighlights(markTypeButtons,newmode);
if (newmode === null) return; if (newmode === null) return;
markMode = parseInt(newmode); markMode = parseInt(newmode);
SDB['meta-mmode'] = markMode; SDB[SKEY.mmode] = markMode;
selectedFace = null; selectedFace = null;
if (term) return; if (term) return;
setEditMode(EDIT.MARK,term); setEditMode(EDIT.MARK,term);
@ -1863,7 +1889,7 @@ THREE.Face3.prototype.mVisible = function(show) {
function updateSpaceName(name) { function updateSpaceName(name) {
setSpaceName(name); setSpaceName(name);
updateSpacesList(); updateSpacesList();
SDB['spaceNames'] = JSON.stringify(SPACENAMES); SDB[SKEY.snames] = JSON.stringify(SPACENAMES);
saveWorkspace(); saveWorkspace();
} }
@ -1892,12 +1918,12 @@ THREE.Face3.prototype.mVisible = function(show) {
} }
function seedCorners() { function seedCorners() {
if (!SDB['meta-seed']) { if (!SDB[SKEY.seed]) {
loadSTL("/obj/meta-corner-1.stl","corner-1"); loadSTL("/obj/meta-corner-1.stl","corner-1");
loadSTL("/obj/meta-corner-2.stl","corner-2"); loadSTL("/obj/meta-corner-2.stl","corner-2");
loadSTL("/obj/meta-corner-3.stl","corner-3"); loadSTL("/obj/meta-corner-3.stl","corner-3");
loadSTL("/obj/meta-corner-4.stl","corner-4"); loadSTL("/obj/meta-corner-4.stl","corner-4");
SDB['meta-seed'] = new Date().getTime(); SDB[SKEY.seed] = new Date().getTime();
} }
} }
@ -1929,10 +1955,10 @@ THREE.Face3.prototype.mVisible = function(show) {
SPACES.push(spaceID); SPACES.push(spaceID);
SPACENAMES[spaceID] = spaceName; SPACENAMES[spaceID] = spaceName;
} }
SDB['workspace-i'] = spaceID; SDB[SKEY.workid] = spaceID;
SDB['workspace-v'] = spaceVer; SDB[SKEY.workvr] = spaceVer;
SDB['spaces'] = JSON.stringify(SPACES); SDB[SKEY.spaces] = JSON.stringify(SPACES);
SDB['spaceNames'] = JSON.stringify(SPACENAMES); SDB[SKEY.snames] = JSON.stringify(SPACENAMES);
updateSpacesList(); updateSpacesList();
} }
@ -2003,7 +2029,7 @@ THREE.Face3.prototype.mVisible = function(show) {
units: spaceUnits units: spaceUnits
}); });
SDB['workspace'] = save; SDB[SKEY.wspace] = save;
new moto.Ajax(function(reply) { new moto.Ajax(function(reply) {
if (reply) { if (reply) {
@ -2011,8 +2037,8 @@ THREE.Face3.prototype.mVisible = function(show) {
if (res && res.ver) { if (res && res.ver) {
// server-side fork when save but not owned // server-side fork when save but not owned
if (res.space != spaceID) setSpaceName(spaceName+" new"); if (res.space != spaceID) setSpaceName(spaceName+" new");
SDB['workspace-i'] = spaceID = res.space; SDB[SKEY.workid] = spaceID = res.space;
SDB['workspace-v'] = res.ver; SDB[SKEY.workvr] = res.ver;
setSpaceVersion(res.ver); setSpaceVersion(res.ver);
updateURL(); updateURL();
updateSpaceState(); updateSpaceState();
@ -2057,8 +2083,8 @@ THREE.Face3.prototype.mVisible = function(show) {
if (!confirm("delete workspace "+(SPACENAMES[id] || id))) return; if (!confirm("delete workspace "+(SPACENAMES[id] || id))) return;
SPACES.splice(io,1); SPACES.splice(io,1);
delete SPACENAMES[id]; delete SPACENAMES[id];
SDB['spaces'] = JSON.stringify(SPACES); SDB[SKEY.spaces] = JSON.stringify(SPACES);
SDB['spaceNames'] = JSON.stringify(SPACENAMES); SDB[SKEY.snames] = JSON.stringify(SPACENAMES);
} }
updateSpacesList(); updateSpacesList();
} }
@ -2090,9 +2116,9 @@ THREE.Face3.prototype.mVisible = function(show) {
loadWorkspace(rec.rec); loadWorkspace(rec.rec);
spaceID = rec.space; spaceID = rec.space;
setSpaceVersion(rec.ver); setSpaceVersion(rec.ver);
SDB['workspace'] = rec.rec; SDB[SKEY.wspace] = rec.rec;
SDB['workspace-i'] = spaceID; SDB[SKEY.workid] = spaceID;
SDB['workspace-v'] = spaceVer; SDB[SKEY.workvr] = spaceVer;
updateURL(); updateURL();
updateFaces(); updateFaces();
} else { } else {
@ -2105,9 +2131,9 @@ THREE.Face3.prototype.mVisible = function(show) {
} }
function restoreWorkspaceLocal() { function restoreWorkspaceLocal() {
spaceID = SDB['workspace-i'] || genKey(); spaceID = SDB[SKEY.workid] || genKey();
setSpaceVersion(SDB['workspace-v'] || 1); setSpaceVersion(SDB[SKEY.workvr] || 1);
loadWorkspace(SDB['workspace']); loadWorkspace(SDB[SKEY.wspace]);
updateURL(); updateURL();
} }
@ -2178,8 +2204,8 @@ THREE.Face3.prototype.mVisible = function(show) {
} else { } else {
seedWorkspace(); seedWorkspace();
} }
let spaces = SDB['spaces'], let spaces = SDB[SKEY.spaces],
spaceNames = SDB['spaceNames']; spaceNames = SDB[SKEY.snames];
if (spaceNames) { if (spaceNames) {
SPACENAMES = JSON.parse(spaceNames); SPACENAMES = JSON.parse(spaceNames);
} }