Hi Hubert,

Thanks for your kind words and sorry for the delayed response.

I'm not interested in timers or anything processing-heavy. Your solution 
> that triggers the alert when the user is interacting with TW is perfectly 
> suitable for me (I assume that the alert is triggered when the refresh 
> mechanism fires, which again is triggered by user interaction).
>
Good to see you have the same preferences as me.

I've had a look at the tiddler $:/plugins/telmiger/reminders/messages which 
> is where, I believe, most of the logic happens. You've built it 
> beautifully, but unfortunately it's not immediately obvious to me what 
> "holds off" the alert from being displayed until, say, the double down 
> arrow on the task in the Do section is pressed.
>
I had to take a look again myself ... this is where the messages are 
generated according to user settings: either a reminder (don’ forget to 
...) or an alert (did you really forget to ...?!) with slightly different 
styling to convey more or less urgency.
 

> As you've noted, an alert can be triggered just by interacting with the TW 
> (as long as the deadline is passed), which must imply that the alert is not 
> triggered by an action in the button but that some re-evaluation of 
> conditions must happen on a refresh cycle.
>
*This is my magic trick: *$:/plugins/telmiger/reminders/display is tagged 
$:/tags/TopRightBar 
and thus injected and always present in the top right bar. You are not able 
to see it, as it is hidden via CSS, but it is re-evaluated as you say with 
every refresh cycle. No need to set a tag here :)

After evaluating if alerting is active and setting the necessary variables, 
it creates a list for all tiddlers that have a deadline-field. The list 
item <li> will be empty as long as no message should be shown. When a 
deadline is near or a task is overdue, the result of the reminderCheck 
macro will be a reminder or an alert. The message will be visible until 
either the duedate is changed OR the task gets the tag ToDoNow:

<section class="te-reminders">
<ul class="te-list">
<$list filter="""[has<field>tag<tag>!tag[ToDoNow]!sort<field>]""" 
variable="tiddler">
<li class="todo-item te-flex-item"><$macrocall $name="reminderCheck" 
reminder-field=<<field>> tiddler=<<tiddler>> reminderspan=<<span>>/></li>
</$list>
</ul>

The sorting should make sure the list is sorted according to urgency so a 
user can push the first task into the ToDoNow section and postpone the rest.

So far I see that it's impossible to both have a tiddler tagged 
> $:/tags/Alert and not see it displayed as an alert immediately upon 
> creation, because once so tagged, such a tiddler *becomes* an alert and 
> so it *must *fire.
>
Tagging requires pushing a button as far as I am aware, so i did not use 
that.

I have automated alerts that show on startup (if conditions are met) but 
> this uses actions such as <$action-createtiddler/> (creating alerts on the 
> fly) embedded in $reveal widgets that narrow down the conditions for 
> displaying such alerts. But I can't fire such actions by merely interacting 
> with the TW itself, so I can't create alerts on demand in this way without 
> running <$action-createtiddler/> somewhere.
>
Ïf this was a question, I hope it is answered now ;–)

All the best,
Thomas

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/91ffe204-928b-4e74-ae10-3b155975a035%40googlegroups.com.

Reply via email to