Skip to content
Snippets Groups Projects
Commit bd11bc78 authored by Jake Read's avatar Jake Read
Browse files

good statechange update

parent f6917db4
No related branches found
No related tags found
No related merge requests found
...@@ -125,7 +125,7 @@ function addRep(rep) { ...@@ -125,7 +125,7 @@ function addRep(rep) {
var newi = fold.add(rep.state[key], twokey) var newi = fold.add(rep.state[key], twokey)
newi.folder = key.toString() newi.folder = key.toString()
newi.onFinishChange(function(value) { newi.onFinishChange(function(value) {
newState(rep, this.folder, this.property, value) newState(rep)
}) })
} }
} }
...@@ -133,7 +133,7 @@ function addRep(rep) { ...@@ -133,7 +133,7 @@ function addRep(rep) {
} else { } else {
var newi = datui.add(rep.state, key) var newi = datui.add(rep.state, key)
newi.onFinishChange(function(value) { newi.onFinishChange(function(value) {
newState(rep, null, this.property, value) newState(rep)
}) })
} }
} }
...@@ -167,23 +167,13 @@ function addRep(rep) { ...@@ -167,23 +167,13 @@ function addRep(rep) {
document.body.append(rep.ui.domElem) document.body.append(rep.ui.domElem)
} }
function newState(rep, folder, property, value){ function newState(rep){
// better if we do this with an update event? can add event watchers to each state, fired by change?
// write brief json for state change
// yep, fire all state and write tree scrubber on other side
var newState = {}
if(folder){
newState[folder] = {}
newState[folder][property] = value
} else {
newState[property] = value
}
var data = { var data = {
id: rep.id, id: rep.id,
newState: newState state: rep.state
} }
socketSend('put state', data) socketSend('put state', data)
console.log('pushing new state for ', folder, property) console.log('pushing new state', data)
} }
// init & hookup // init & hookup
......
...@@ -100,19 +100,25 @@ function addModule(path) { ...@@ -100,19 +100,25 @@ function addModule(path) {
function newState(data) { function newState(data) {
// should just recv all state, walk tree for differences // should just recv all state, walk tree for differences
console.log(modules[data.id]) var os = modules[data.id].state
var newState = data.newState var ns = data.state
var id = data.id var id = data.id
for (key in newState) {
if (typeof newState[key] == 'object' && newState[key] !== null) { for (key in os) {
for (subkey in newState[key]) { if (typeof os[key] == 'object' && os[key] !== null) {
modules[id].state[key][subkey] = newState[key][subkey] for (subkey in os[key]) {
if(os[key][subkey] != ns[key][subkey]){
os[key][subkey] = ns[key][subkey]
console.log(subkey, 'to ', ns[key][subkey], 'in', data.id)
}
} }
} else { } else {
modules[id].state[key] = newState[key] if(os[key] != ns[key]){
os[key] = ns[key]
console.log(key, 'to ', ns[key], 'in', data.id)
}
} }
} }
console.log(modules[id])
} }
function put(data) { function put(data) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment