Looks like simple syntax errors are tripping up your loops, invalid
comparisons and redefining a variable that is already in scope are your
major culprits.
Run you code throught http://jshint.com or http://jslint.com and you can
see your errors.
On Thursday, February 12, 2015 at 9:20:03 AM UTC-6, Roma Hicks wrote:
>
> Also refactor out concerns in your code. It will help you bug hunt faster
> too. For example, I would personally pull this out of SumField:
> var checkTiddler = $tw.wiki.getTiddler(storeTiddler);
> if(checkTiddler && storeField) {
> output = String(output);
> if(output != checkTiddler.getFieldString(storeField)) {
> $tw.wiki.setText(storeTiddler,storeField,storeIndex,output);
> }
> }
> This has nothing to do with summing fields and it is a rather pivotal
> point in you code where a problem like yours might be arising. Separate it
> out and you can even mock it to see if it is behaving as it should.
>
> Sorry I edited my post and it took a long time so I don't want this advice
> to be overlooked.
>
> On Thursday, February 12, 2015 at 9:09:32 AM UTC-6, Roma Hicks wrote:
>>
>> Hello Jed, I will help you look it over but one thing I would do, is
>> start refactoring some of the code. The is some bits of repeating that you
>> could pull out. For example, your SumField and SumFieldFull and nearly
>> identical. Just call SumField as need in SumFieldFull through your loop.
>> This reduces the amount of code you need to maintain and avoids any
>> mistakes you may have created while copying blocks of code.
>>
>> Because of the nature of TiddlyWiki's plugin mechanism it is rather
>> difficult to debug in browser (or at least that I have found). Sprinkle
>> your code liberally with log outputs and rebuild your plugin. With some
>> good refactoring, and strategic placement of console.log you probably can
>> narrow the problem area quickly.
>>
>> Also refactor out concerns in your code. It will help you bug hunt
>> faster too. For example, I would personally pull this out of SumField:
>> var checkTiddler = $tw.wiki.getTiddler(storeTiddler);
>> if(checkTiddler && storeField) {
>> output = String(output);
>> if(output != checkTiddler.getFieldString(storeField)) {
>> $tw.wiki.setText(storeTiddler,storeField,storeIndex,output);
>> }
>> }
>> This has nothing to do with summing fields and it is a rather pivotal
>> point in you code where a problem like yours might be arising. Separate it
>> out and you can even mock it to see if it is behaving as it should.
>>
>>
>> On Tuesday, February 10, 2015 at 10:42:47 PM UTC-6, Jed Carty wrote:
>>>
>>> I have been trying to get the math plugin I am working on set up as a
>>> daemon that listens for changes and updates its output when one of the
>>> tiddlers that has an expression in it changes.
>>>
>>> At the moment the only function is summing fields from a list of
>>> tiddlers because I am running into a problem. The process will update and
>>> works as expected when there is only one expression to evaluate, and when
>>> there are multiple expressions but neither one actually has values to sum
>>> it works as expected. The second one can be seen because you can set the
>>> default value it outputs when it doesn't have any valid input.
>>>
>>> The problem is that once at least one has valid inputs only one
>>> expression will update. I had assumed that this was because the first
>>> tiddler would write its output and force a refresh that prevented the
>>> daemon from finishing the update for the other expressions, but I can't
>>> find any place where that would happen when only the inputs to the second
>>> expression are changing.
>>>
>>> I have been trying to figure this out for a while without any success,
>>> any ideas?
>>>
>>> The code is on git hub:
>>> https://github.com/inmysocks/TW5-MathyThing/blob/master/sumfield-daemon.js
>>>
>>> and an example wiki showing what happens is here:
>>> http://ooktech.com/jed/ExampleWikis/MathyThing/
>>>
>>> The operation takes the list of tiddlers from the filter in the filter
>>> input field and sums the values in the field given in the sum field input
>>> and stores those values in the store field of the store tiddler. The result
>>> is also displayed in the expression tiddler.
>>>
>>> In the example only Expression 1 will update regardless of the changes
>>> to the inputs to Expression 2.
>>>
>>> Sorry if I didn't explain this well, I am very frustrated right now. Any
>>> help would be greatly appreciated.
>>>
>>
--
You received this message because you are subscribed to the Google Groups
"TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/tiddlywikidev.
For more options, visit https://groups.google.com/d/optout.