From 5af03936378c77d392be11734491290bca9f819b Mon Sep 17 00:00:00 2001 From: Aiko Mastboom Date: Sat, 27 Apr 2013 21:59:20 +0200 Subject: [PATCH] app stays live when reimporting --- public/index.html | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/public/index.html b/public/index.html index f6d2d50..0548e54 100644 --- a/public/index.html +++ b/public/index.html @@ -281,7 +281,7 @@ function main_functions(app, viewModel, vm_config) { noneAceMode: null, /* does not get invalidated */ noneMode: function () { - if (!this.noneAceMode){ + if (!this.noneAceMode) { this.noneAceMode = _.find(viewModel._availableModes(), function (mode) { return mode.ace() == 'none'; @@ -403,15 +403,14 @@ function updateViewModelMain(app, viewModel, doc, vm_config) { viewModel._newAttribute(""); debug && console.log('updated viewModel', viewModel); mainViewModelUpdating = false; - app.fn.main.updateSelectedMode(); } /* crazy expensive caching tree traverse */ function traverse(current, field, property, depth, pos) { if (current == field) { - field._depth=depth; - field._pos=pos; + field._depth = depth; + field._pos = pos; return depth; } else if (current.hasOwnProperty(property)) { var links = current.links(); @@ -486,7 +485,6 @@ function initializeViewModel(app, doc, key, viewModels, vm_config) { } } }); - } function loadLocation(location, callback) { @@ -543,7 +541,7 @@ function handleConfigKey(app, key, snapshot, viewModels, callback) { return callback(err); } else { app.doc[key] = key_doc; - if (vm_config) { + if (vm_config && !app.state.vm.bound.hasOwnProperty(key)) { initializeViewModel(app, key_doc, key, viewModels, vm_config); } } @@ -586,7 +584,7 @@ var config_location = { var app = { state: { running: false, - vm: {bound : {}} + vm: {bound: {}} }, doc: {}, fn: {}, @@ -596,7 +594,7 @@ var app = { function initKnockout() { /* http://www.knockmeout.net/2012/05/quick-tip-skip-binding.html */ ko.bindingHandlers.stopBinding = { - init: function() { + init: function () { return { controlsDescendantBindings: true }; } }; @@ -607,23 +605,22 @@ function bindViewModels(app) { if (key in app.state.vm.bound) { debug && console.log('bindViewModels bindings already applied for', key); } else { - var viewModel = app.vm[key]; + var viewModel = app.vm[key]; var viewModelConfig = app.config.snapshot.viewModel[key]; var elementId = viewModelConfig.elementId; var element = document.getElementById(elementId); - console.log('bindViewModels applyBindings',key,viewModel,viewModelConfig, elementId); + debug && console.log('bindViewModels applyBindings', key, viewModel, viewModelConfig, elementId); ko.applyBindings(viewModel, element); app.state.vm.bound[key] = elementId; } }); - console.log('Viewmodels bound', 'ok'); + debug && console.log('Viewmodels bound', 'ok'); } function configLoaded(err) { if (err) { console.error('Error loading config', err); } console.log(app, 'Loaded', err || 'ok'); - console.log('app.state.running', app.state.running); if (app.state.running == false) { initKnockout(); @@ -631,7 +628,6 @@ function configLoaded(err) { bindViewModels(app); app.state.running = true; } -console.log('app.state.running', app.state.running); loadConfig(app, config_location, app.vm, configLoaded);