TiddlyTools/timer.html Calendar *** new options ***

232 views
Skip to first unread message

Eric Shulman

unread,
Sep 27, 2020, 3:17:56 PM9/27/20
to TiddlyWiki
Hi all,


The Calendar now has new display options.
You can access these settings in a popup directly from the calendar display by clicking on the "gear" button.

* show/hide holidays and events
* show/hide tiddler additions and changes
* show/hide system additions and changes

You can select any combination of these checkboxes to determine which items will be shown in the date popups.

The options popup also gives you access to the calendar CSS settings (colors and font styles)
by clicking the "pencil" icon in the upper right corner of the popup

Note that the style for tiddler/system changes includes both a background color (light blue)
and an underline of the date number.  If changes occur on a date that is also a holiday
or event, the background color will be light green, but the underline will still be displayed
so it indicates both conditions (holiday AND tiddler changes).

Note also that you can easily change the colors and font styles to suit your tastes, just
by entering different CSS syntax, and you can add other styles to the color values
just by using ";" to separate the styles.

For example, the CSS for "events" is "lightgreen" but you could add a border around
the date by changing it to "lightgreen;border:3px solid red;"

enjoy,
-e

TW Tones

unread,
Sep 28, 2020, 2:40:56 AM9/28/20
to TiddlyWiki
Eric,

Once again thanks so much for all these developments. If I may ask,
  • I have an application for this for comprehensive date handling, do you think if you release more changes, I will be able to update my wiki?
  • If not, do you plan a "final release"?
    • If I track my own tiddlers I could import them to an upgraded version if necessary
Regards
Tony

Atronoush Parsi

unread,
Sep 28, 2020, 3:12:51 AM9/28/20
to tiddl...@googlegroups.com
Wow, this is awesome!

I used the custom filter like [tag[hmw]] and saw how nicely they were added to Calendar!

Timer is already great and has many features. The below are optional minor suggestions
- a small button to click and see the full calendar opened in story river e.g. TiddlyTools/Time/Calendar
- a small button to show monthly view / yearly view /weekly view in  TiddlyTools/Time/Calendar
- a small button to show the schedules in  TiddlyTools/Time/Calendar
- lets use tiddler color field for events when absent use default color

All above can be mixed in a drop down lets the user choose a view.

Atro



--
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 tiddlywiki+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/f82bd43f-84a9-459e-a5d7-c8d6efb717a1o%40googlegroups.com.

Eric Shulman

unread,
Sep 28, 2020, 4:49:50 AM9/28/20
to TiddlyWiki
On Monday, September 28, 2020 at 12:12:51 AM UTC-7, Atronoush wrote:
I used the custom filter like [tag[hmw]] and saw how nicely they were added to Calendar!

That was what I was thinking about when I added the custom filter.
It makes it possible to use the calendar as combination of the
$:/AdvancedSearch Filter tab ($:/core/ui/AdvancedSearch/Filter)
and the Sidebar Recent tab ($:/core/ui/SideBar/Recent) with the
added advantage of showing tiddlers by created *and* modified dates.

Timer is already great and has many features. The below are optional minor suggestions
- a small button to click and see the full calendar opened in story river e.g. TiddlyTools/Time/Calendar

When viewing the TiddlyTools/Time/Calendar in the Story River, clicking on a month name heading
toggles between year-view and month-view.  However, the SidebarCalendar month-view always
displays the month-view, and clicking on the month name heading in the Sidebar was being ignored.

To address this, I've just updated the SidebarCalendar (and the core Calendar code) to add
a flag that indicates when you are viewing a month in the sidebar and invokes a new macro,
showheading_sidebar(), instead of showheading_toggle().  This causes the click on the month
name heading in the SidebarCalendar to open TiddlyTools/Time/Calendar in the Story River
and display the year-view.  It also sets the year-view to show the same year as is currently
being viewed in the SidebarCalendar.

This should hopefully produce the effect that you suggested.  Let me know how it goes...

- a small button to show monthly view / yearly view /weekly view in  TiddlyTools/Time/Calendar

As I noted above, when viewing the TiddlyTools/Time/Calendar in the Story River, clicking on
a month name heading already toggles between year-view and month-view.  There is no "weekly view".
 
- a small button to show the schedules in TiddlyTools/Time/Calendar

"schedules" ???  I'm not sure what you mean.  Please elaborate. 
 
- lets use tiddler color field for events when absent use default color

Events are not stored as separate tiddlers.  Thus, there is no associated "tiddler color field" to be used.

Events are defined as a text-based list in TiddlyTools/Time/Events and can also be defined in
".ics" ICalendar tiddlers imported from external sources such as Google Calendar and

(see https://en.wikipedia.org/wiki/ICalendar for details of the .ics format)

enjoy,
-e

Atronoush Parsi

unread,
Sep 28, 2020, 5:08:22 AM9/28/20
to tiddl...@googlegroups.com
Hi Eric,

On Mon, Sep 28, 2020 at 12:20 PM Eric Shulman <elsd...@gmail.com> wrote:
On Monday, September 28, 2020 at 12:12:51 AM UTC-7, Atronoush wrote:
I used the custom filter like [tag[hmw]] and saw how nicely they were added to Calendar!

That was what I was thinking about when I added the custom filter.
It makes it possible to use the calendar as combination of the
$:/AdvancedSearch Filter tab ($:/core/ui/AdvancedSearch/Filter)
and the Sidebar Recent tab ($:/core/ui/SideBar/Recent) with the
added advantage of showing tiddlers by created *and* modified dates.

Timer is already great and has many features. The below are optional minor suggestions
- a small button to click and see the full calendar opened in story river e.g. TiddlyTools/Time/Calendar

When viewing the TiddlyTools/Time/Calendar in the Story River, clicking on a month name heading
toggles between year-view and month-view.  However, the SidebarCalendar month-view always
displays the month-view, and clicking on the month name heading in the Sidebar was being ignored.

Great! I tested and it works fine. I just experienced opening  TiddlyTools/Time/Calendar is little slow but I think it is fine.

To address this, I've just updated the SidebarCalendar (and the core Calendar code) to add
a flag that indicates when you are viewing a month in the sidebar and invokes a new macro,
showheading_sidebar(), instead of showheading_toggle().  This causes the click on the month
name heading in the SidebarCalendar to open TiddlyTools/Time/Calendar in the Story River
and display the year-view.  It also sets the year-view to show the same year as is currently
being viewed in the SidebarCalendar.

This should hopefully produce the effect that you suggested.  Let me know how it goes...

Thanks. It worked for me 

- a small button to show monthly view / yearly view /weekly view in  TiddlyTools/Time/Calendar

As I noted above, when viewing the TiddlyTools/Time/Calendar in the Story River, clicking on
a month name heading already toggles between year-view and month-view.  There is no "weekly view".
 
- a small button to show the schedules in TiddlyTools/Time/Calendar

"schedules" ???  I'm not sure what you mean.  Please elaborate. 

I mean a tiddler lists all events (or taks,...) in a nice chronological order like the one we see in Google Calendar.
Google Calendar has a year/month/day/5day and schedule view. I got the idea from that.

 
- lets use tiddler color field for events when absent use default color

Events are not stored as separate tiddlers.  Thus, there is no associated "tiddler color field" to be used.

Events are defined as a text-based list in TiddlyTools/Time/Events and can also be defined in
".ics" ICalendar tiddlers imported from external sources such as Google Calendar and

(see https://en.wikipedia.org/wiki/ICalendar for details of the .ics format)

Thank you again Eric.
Atro 

enjoy,
-e

--
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 tiddlywiki+...@googlegroups.com.

Eric Shulman

unread,
Sep 28, 2020, 6:08:25 AM9/28/20
to TiddlyWiki
On Monday, September 28, 2020 at 2:08:22 AM UTC-7, Atronoush wrote:
Great! I tested and it works fine. I just experienced opening  TiddlyTools/Time/Calendar is little slow but I think it is fine.

I've tried to optimize the Calendar code as much as possible, but it's doing a LOT of work to display 365 days, with date-specific filters for events and tiddler changes.

The worst bit of overhead is the matchevents() code, which can add as much as a half-second (500msec) of processing for each month when there are lots of events to filter. For a 12-month display, this turns into a 6 second wait before the calendar is rendered.  It seems to be related to the use of split[] and regexp[] filters, but I have not (yet) found any workarounds that produce better results... but I'm still working on it.

I mean a tiddler lists all events (or taks,...) in a nice chronological order like the one we see in Google Calendar.
Google Calendar has a year/month/day/5day and schedule view. I got the idea from that.

Here's a bit of wikitext code that displays the event data as a table.
\import TiddlyTools/Time/Calendar
\define showevents() yes
<$wikify name="events" text=<<getevents>>>
<table>
<$list filter=<<events>> variable="event">
   
<tr>
   
<td><$text text={{{ [<event>split[;]first[]] }}} /></td>
   
<td><$text text={{{ [<event>split[;]rest[]join[ ]] }}}/></td>
   
</tr>
</
$list>
</table>
One thing the above code doesn't yet do is to *sort* the events by date.
I'll try to work this into a new macro in the Calendar code, e.g., <<calendar_listevents>>
I'll let you know when I have something more for you to try...

-e

Pit.W.

unread,
Sep 28, 2020, 6:21:24 AM9/28/20
to tiddl...@googlegroups.com

Eric,

this is great!  And it is evolving into what I call a "game changer" :

Use case example: A consultant/lawyer starts a contract with a wiki for research and brainstorming, also writing the first drafts. He works at home, in the office, in the sub/bus, in the chauffeur driven limousine, plane, train, ship, submarine, space station... and all the time your timer counts the time for the monthly invoice...

The datepicker - plugin has an issue with UTC / time-zones. Does a similar problem occur in the timer?

Thanks again,

Pit.W

--
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 tiddlywiki+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/f82bd43f-84a9-459e-a5d7-c8d6efb717a1o%40googlegroups.com.


_________________________________________________________________
________________________________________________________
Ihre E-Mail-Postfächer sicher & zentral an einem Ort. Jetzt wechseln und alte E-Mail-Adresse mitnehmen! https://www.eclipso.de


Eric Shulman

unread,
Sep 28, 2020, 12:48:29 PM9/28/20
to TiddlyWiki
On Monday, September 28, 2020 at 3:08:25 AM UTC-7, Eric Shulman wrote:
I've tried to optimize the Calendar code as much as possible, but it's doing a LOT of work to display 365 days, with date-specific filters for events and tiddler changes.

The worst bit of overhead is the matchevents() code, which can add as much as a half-second (500msec) of processing for each month when there are lots of events to filter. For a 12-month display, this turns into a 6 second wait before the calendar is rendered.  It seems to be related to the use of split[] and regexp[] filters, but I have not (yet) found any workarounds that produce better results... but I'm still working on it.


I've re-written matchevents() to use removeprefix[] instead of regexp[] to match event dates.

The result:
a 5x speed improvement (!!) when showing a yearly calendar with lots of events.

Note that, even without the regexp[] matching, it still allows the TiddlyTools/Time/Events list
to use "....mmdd" syntax for annual recurring events (such as birthdays and certain fixed-date
holidays, e.g., New Year's, Christmas, etc.).  This is handled as a special case, rather than
a generic "regexp" pattern match.  Other pattern-based dates (such as the "Spring Break 2021"
example) no longer work and have been removed from the Events tiddler list.

I've also added .ics event tiddlers for "US_Holidays" and "UN_Holidays", so the Calendar now
shows a lot more green dates, without the excessively slow rendering time.

I also updated the Events section of the Info tiddler to include instructions for how to import
Google Calendar .ics files, as well as a link to https://www.calendarlabs.com/ical-calendar/
as a source for lots of free .ics files

enjoy,
-e

Atronoush Parsi

unread,
Sep 29, 2020, 1:46:34 AM9/29/20
to tiddl...@googlegroups.com
Eric,

On Mon, Sep 28, 2020 at 1:38 PM Eric Shulman <elsd...@gmail.com> wrote:
On Monday, September 28, 2020 at 2:08:22 AM UTC-7, Atronoush wrote:
Great! I tested and it works fine. I just experienced opening  TiddlyTools/Time/Calendar is little slow but I think it is fine.

I've tried to optimize the Calendar code as much as possible, but it's doing a LOT of work to display 365 days, with date-specific filters for events and tiddler changes.

The worst bit of overhead is the matchevents() code, which can add as much as a half-second (500msec) of processing for each month when there are lots of events to filter. For a 12-month display, this turns into a 6 second wait before the calendar is rendered.  It seems to be related to the use of split[] and regexp[] filters, but I have not (yet) found any workarounds that produce better results... but I'm still working on it.

I understand processing large amounts of data using wikitext /JS causes this lag.  

I mean a tiddler lists all events (or taks,...) in a nice chronological order like the one we see in Google Calendar.
Google Calendar has a year/month/day/5day and schedule view. I got the idea from that.

Here's a bit of wikitext code that displays the event data as a table.
\import TiddlyTools/Time/Calendar
\define showevents() yes
<$wikify name="events" text=<<getevents>>>
<table>
<$list filter=<<events>> variable="event">
   
<tr>
   
<td><$text text={{{ [<event>split[;]first[]] }}} /></td>
   
<td><$text text={{{ [<event>split[;]rest[]join[ ]] }}}/></td>
   
</tr>
</
$list>
</table>
One thing the above code doesn't yet do is to *sort* the events by date.
I'll try to work this into a new macro in the Calendar code, e.g., <<calendar_listevents>>
I'll let you know when I have something more for you to try...


Wonderful. I think now, the Timer is a powerful private Tiddlywiki Calendar system.
Appreciate all your efforts.
 
-e

--
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 tiddlywiki+...@googlegroups.com.

danraymond

unread,
Sep 29, 2020, 2:23:37 AM9/29/20
to TiddlyWiki

Eric; this is fantastic as always.

I have several immediate use cases.

One thing, the popup for my timers does not go away. I assumed ESC would do it but to no avail. my tiddlywiki is seen underneath dimmed out but behaves as if the popup is not there?

How to dismiss the popup?

Eric Shulman

unread,
Sep 29, 2020, 2:30:36 AM9/29/20
to TiddlyWiki
On Monday, September 28, 2020 at 11:23:37 PM UTC-7, danraymond wrote:
One thing, the popup for my timers does not go away. I assumed ESC would do it but to no avail. my tiddlywiki is seen underneath dimmed out but behaves as if the popup is not there?
How to dismiss the popup?

I assume you are referring to a "countdown timer", which displays a *modal* message box
(not a "popup") when the countdown reaches 0. To dismiss it, you must press the "close"
button in the lower right corner of the modal message box.  Currently, there is no handling
for keyboard input, so you must use the mouse to click the button.

-e

danraymond

unread,
Sep 29, 2020, 2:52:45 AM9/29/20
to TiddlyWiki
Yes it's the one from the countdown.

I don't get a "close" button. See image
2020-09-29 16_49_52-West End Ink — A Colourful Business.png

Eric Shulman

unread,
Sep 29, 2020, 3:42:11 AM9/29/20
to TiddlyWiki
On Monday, September 28, 2020 at 11:52:45 PM UTC-7, danraymond wrote:
Yes it's the one from the countdown.
I don't get a "close" button. See image

Wow.  That is very odd.  A normal modal message display has three parts:
   tc-modal-header, tc-modal-body, and tc-modal-footer.

For the Countdown modal message:
   the tc-modal-header shows the name of the tiddler in which the timer occurs (i.e, "My Timers")
   the tc-modal-body shows the countdown message text (i.e., "my message")
   the tc-modal-footer shows the message box buttons (i.e., "close")

Your snapshot appears to be showing only the tc-modal-body.
I wonder if you have some CSS that is hiding the other parts.

-e

danraymond

unread,
Sep 29, 2020, 3:46:38 AM9/29/20
to tiddl...@googlegroups.com
Makes sense,

I haven't myself changed any CSS.

However I am using Stroll and the Whitespace theme. Will see what I can find. Any suggested way to hunt this down?

-----------edit------------
After some experimentation seems all my modal boxes act the same way!
Not sure of next step

Ed Dixon

unread,
Sep 30, 2020, 12:28:08 PM9/30/20
to TiddlyWiki
Eric,

This does look excellent! I have been looking for a good calendar that can replace the basic one I have been using and this looks perefect! Is it possible or can it automagicly import tiddlers from a tid file from my old TW but handle converting the dates to a US MM/DD/YYYY format? Regretfully I did not change the format early on and have been using the default format but would love to convert these in the process of changing the calendar if that is possible. I hope the question makes sense I plan to export all tids in a .tid (or other if needed) file and import them into a new clean TW5 with this calendar plugin activated but have concerns about the date format used particualraly in the journal tids.?

Thanks!

dieg...@gmail.com

unread,
Sep 30, 2020, 6:23:39 PM9/30/20
to TiddlyWiki
Eric,

Thank you for this excellent project! It got me thinking it might be cool to have a github like "activity" calendar, which shows how many posts were made on a certain day by coloring the calendar according to a heat map.

You could select which filters to count by a filter, and whether to use their title (journals), or created date, modified date, etc.

Not suggesting you have to implement this, just adding the idea to this thread in case anyone else is interested.

TW Tones

unread,
Sep 30, 2020, 8:41:55 PM9/30/20
to TiddlyWiki
Ed,

It is best to maintain dates in the tiddler serial number form for maximum functionality, however use the view widget to present them in whatever format you want.

If you want to proceed with the conversion still, we can provide advice on how, but the simplest is to build a button containing a list widget that locates, reformats and uses action set field widget to store the new date (After import)

But again I recommend against this. In fact it may be wise to store you desired formatting in a tiddler like this date-display. Then view widget template={{date-display}} so it can be modified later with ease and update everywhere you use it.

Regards
Tony
Reply all
Reply to author
Forward
0 new messages