diff -r 0a9f6f29b7dd -r 48e7e336c052 svghmi/gen_index_xhtml.xslt --- a/svghmi/gen_index_xhtml.xslt Wed Aug 12 15:24:02 2020 +0200 +++ b/svghmi/gen_index_xhtml.xslt Thu Aug 13 11:30:18 2020 +0200 @@ -875,7 +875,7 @@ " - + " , @@ -976,9 +976,10 @@ only applies to HMI variable. - - : + " + ": + , @@ -1021,6 +1022,14 @@ } + let defaultval = local_defaults[varname]; + + console.log("page_local_index creat local", varname, pagename, new_index, defaultval); + + if(defaultval != undefined) + + cache[new_index] = defaultval; + return new_index; } @@ -1132,7 +1141,11 @@ apply_cache() { - if(!this.unsubscribable) for(let index of this.indexes){ + let dispatch = this.dispatch; + + if(dispatch == undefined) return; + + if(!this.unsubscribable) for(let index in this.indexes){ /* dispatch current cache in newly opened page widgets */ @@ -1142,7 +1155,15 @@ if(cached_val != undefined) - this.new_hmi_value(realindex, cached_val, cached_val); + try { + + dispatch.call(this, cached_val, cached_val, index); + + } catch(err) { + + console.log(err); + + } } @@ -1190,50 +1211,34 @@ new_hmi_value(index, value, oldval) { - try { - - // TODO avoid searching, store index at sub() - - for(let i = 0; i < this.indexes.length; i++) { - - let refindex = this.get_variable_index(i); - - - - if(index == refindex) { - - let d = this.dispatch; - - if(typeof(d) == "function"){ - - d.call(this, value, oldval, i); - - } - - else if(typeof(d) == "object"){ - - d[i].call(this, value, oldval); - - } - - /* else dispatch_0, ..., dispatch_n ? */ - - /*else { - - throw new Error("Dunno how to dispatch to widget at index = " + index); - - }*/ - - break; + // TODO avoid searching, store index at sub() + + let dispatch = this.dispatch; + + if(dispatch == undefined) return; + + for(let i = 0; i < this.indexes.length; i++) { + + let refindex = this.get_variable_index(i); + + + + if(index == refindex) { + + try { + + dispatch.call(this, value, oldval, i); + + } catch(err) { + + console.log(err); } + break; + } - } catch(err) { - - console.log(err); - } }