normalize local storage key space
This commit is contained in:
parent
c135dd8ded
commit
a60e4e5b46
1 changed files with 56 additions and 30 deletions
86
js/meta.js
86
js/meta.js
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue