Thanks a lot for this fast answer!

> > How can I parse tomorrows day? The today macro would not work here...
>
> You can use the *evaluated parameter* syntax: {{javascript code}}
> to compute the desired value for the DueDate.
> Thus:
>   <<TTReportView ... DueDate:{{new Date().formatString("YYYY-MM-0DD")}}

Well I tried to add +1 to get tomorrow as desscribed in selfhtml...
but my knowledge of javascript is too poor.. how would I do the add?


I like to display also everything what is overdue. This is too heavy
for me... The value in the macro is a 1:1 text compare. Over due would
mean to do a less than.. This, I guess would be a code change in the
macro. ... I have added the code since it is not too much, I see where
the evaluation is made but I do not understand how to make  a <
compare happen and to keep the current functionality.

Thanks again
Michael


if(!version.extensions.TTReportViePlugin) {
version.extensions.TTReportViewPlugin = {installed:true};

        config.macros.TTReportView = {};
        config.macros.TTReportView.log = function(str) {
                if(window.console) {
                        console.log(str);
                        return;
                }
        };

        config.macros.TTReportView.handler =
function(place,macroName,params,wikifier,paramString,tiddler) {

                var container = story.findContainingTiddler(place);
                var wrapper = createTiddlyElement(place,"span");
                wrapper.setAttribute('refresh','content');
                wrapper.setAttribute('tiddler',tiddler.title);
                wrapper.setAttribute('force', 'true');

                var fieldPrefix = "tt_";

                //gather all of the parameters.
                var params = 
paramString.parseParams("anon",null,true,false,false);
                var fieldsString = getParam(params,"DisplayFields",'title');
                var displayFields = fieldsString.split(",");
                for(var i=0;i<displayFields.length;i++){
                        displayFields[i] = displayFields[i].trim();
                }
                var orderString = getParam(params,"OrderBy",'title,asc');
                var orderField =  fieldPrefix + orderString.split(",")[0];
                var order =  orderString.split(",")[1];
                var recentItems = getParam(params,"recent");
                var expectedParams = ['DisplayFields','OrderBy'];

                //interpret and store the filter values.
                var filters = [];
                for(var p in params) {
                        var name = params[p].name;
                        var value = params[p].value;
                        if((name && name != 'undefined') 
&!expectedParams.contains(name)) {
                                var match = true;
                                if(value.substring(0,1) == "!") {
                                        match = false;
                                        var str = value.substring(1);
                                }
                                else {
                                        var str = value;
                                }
                                if(name != "recent") { // exclude "recent" 
parameter
                                        filters.push({'field':fieldPrefix + 
name, 'value':str,
'match':match});
                                }
                        }
                }

                //collect the pertinent tiddlers.
                var taskTiddlers = store.getTaggedTiddlers("task");
                var toConsider = [];
                var toDisplay = [];
                var toExclude = [];

                // limit to recently modified tiddlers
                if(recentItems) {
                        taskTiddlers.sort(function(a,b) {
                                return b.modified - a.modified;
                        });
                        taskTiddlers = taskTiddlers.slice(0, recentItems);
                }

                // first get all the tiddlers we might want to include.
                for(var t=0; t<taskTiddlers.length; t++) {
                        var consider = true;
                        for(var f=0; f<filters.length; f++) {
                                if(filters[f].match == true) {
                                        if(store.getValue(taskTiddlers[t],
filters[f].field).toLowerCase() != filters[f].value.toLowerCase()){
                                                consider = false;
                                                break;
                                        }
                                }
                        }
                        if(consider)
                                toConsider.push(taskTiddlers[t]);
                }


                // now find which of our selected tiddlers we need to exclude
                for(var d=0; d<toConsider.length; d++) {
                        for(var f=0; f<filters.length; f++) {
                                if(filters[f].match == false) {
                                        if(store.getValue(toConsider[d], 
filters[f].field).toLowerCase()
== filters[f].value.toLowerCase()) {
                                                toExclude.push(toConsider[d]);
                                        }
                                }
                        }
                }

                // remove the excluded tiddlers.
                for (var i=0; i < toConsider.length; i++) {
                        if(toExclude.contains(toConsider[i]) === false)
                                toDisplay.push(toConsider[i]);
                }

                // Build a sortable table of the results.
                var tbl = createTiddlyElement(wrapper,'table',null,'sortable');
                var thead = createTiddlyElement(tbl,'thead');
                var theadr = createTiddlyElement(thead,'tr');
                for(var f=0; f<displayFields.length; f++) {
                        //specifiy the sorting column if required.
                        var c = null;
                        if(fieldPrefix + displayFields[f].toLowerCase() ==
orderField.toLowerCase()) {
                                var c = "autosort";
                                if(order != 'asc') c += " reverse";
                        }
                        
createTiddlyElement(theadr,'td',null,c,displayFields[f]);
                }
                var tbody = createTiddlyElement(tbl,'tbody');
                for(var d=0; d<toDisplay.length; d++) {
                        var tr = createTiddlyElement(tbody,'tr');
                        for(var f=0; f<displayFields.length; f++) {
                                var df = displayFields[f].toLowerCase();
                                if(TiddlyWiki.isStandardField(df))
                                        var fieldName = df;
                                else
                                        var fieldName = fieldPrefix + df;
                                var td  = 
createTiddlyElement(tr,'td',null,null,null);
                                var v = store.getValue(toDisplay[d], fieldName);
                                if(fieldName == 'title')
                                        
createTiddlyLink(td,v,true,null,false,false);
                                else
                                        createTiddlyText(td,v);
                        }
                }
        };
} //# end of 'install only once'

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWikiDev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/tiddlywikidev?hl=en.

Reply via email to