Presenting: RecentSys - list system titles in the Recent tab

Hey tiddly tinker - Mat von TWaddle has something for you:

RecentSys lets you to see both system titles and regular titles listed in the sidebar Recent tab. Toggle it on/off with an in-place button.

As someone who tinkers much with TW, this has helped me a lot.

6 Likes

Updated (I discovered that the sidebar tab buttons were erroneously pushed down a bit)

5 Likes

@twMat

This is very handy and I plan on using it. I’ve noticed that when using it, only today’s date is listed and not the date of tiddler modification. Would it be easy to modify this to show the actual date the tiddler was modified?

Right! I fiddled around with it but didn’t succeed. I probably don’t fully understand the timeline macro. What I would like is for it to show the last two days that anything was modified (because when it’s 1 minute past midnight, then the “last day” is only 1 minute) but it seems to bunch everything into “today” regardless of whether it was modified today or not. BTW, the reason to not simply show everything in the timeline is that it takes too long to render. If you suceed better than I do, please report here.

Here is another approach from @TW_Tones. He uses two sidebar tabs. You can scale the history and edit the tiddlers.

Without looking into the scripts I’d probably combine them.
One sidebar tab for cleanliness and scale and edit for Power.

I think @twMat’s solution is complementary to my own because it retains the time line, Thanks for sharing @twMat, My own is in recent order and of adjustable length, includes separately temp and state etc… Perhaps for heavily edited wikis.

I installed the “update” but its not the same as that on https://recent-sys.tiddlyhost.com/ and I cant seem to fix it, the toggle is in the sidebar not the recent tab.

I’ll check out your solution too.

Are you saying it stays above the tabs, and won’t move down into the Recent list? Does it appear all the time or only when Recent is active?

Not sure what could cause that. The RecentSys button (in the plugin .../main) is actually a $:/tags/SideBarSegment with list-before:$:/core/ui/SideBarSegments/tabs and then styled to relocate further down (and to only appear when Recent is open).

Ah, your design approach is interesting. I have various other additional items in my sidebar segment and so many tabs, I have three rows or sidebar tabs, thus it’s not aligning.

I did the following;

  • edited $:/core/ui/SideBar/Recent removed the sidebar segment, and transuded $:/plugins/TWaddle/RecentSys/main
  • Removed the position part of the stylesheet

The button now is in the top of the sidebar and disappears on switching

  • I added this to $:/plugins/TWaddle/RecentSys/main but its not appearing after switch

Basically, your design approach does not work with my layout overflow. But that’s fine, thanks for the inspiration.

I’d be curious to see if I could generealize RecentSys to work in that “environment” though. If it isn’t too much trouble, could you share a wiki with that, or some similar, setup that I could investigate?

Sure @twMat most likely tomorrow. However since the switch you use changes the core tiddler you may as well just edit the core tiddler to have two modes, with your button in it to toggle it.

  • Or like I did just have another tab, have a look at my one, but place your modified recent list in that new tab. Although I do like it being in the same tab with the button to toggle it, it is not necessary.
1 Like

The difference is that my solution only temporarily overwrites the core tiddler and then, toggling back, it deletes/resets it. That way, if the core tiddler is updated, you will get the updated standard timeline display. If it was permanently overwritten then it’s the usual cautions about overwrites…

I have found another similar solution by @DaveGifford, it works similarly to the one from @TW_Tones by adding a separate tab for recent system tiddlers and groups them by day.

I find the recent system tiddlers solution by @DaveGifford has this quirk:

It currently lists only those dates on which non-system tiddlers were last modified. So, if there’s a date on which only system tiddlers were modified, that date — and all tiddlers most recently modified on that date — do not appear on the Recent Sys list.

(Also, it shows “empty” date headers for dates on which only regular tiddlers were edited, and no system tiddlers – less of a problem, but still a bit of a glitch.)

Interesting! I never noticed that. I confess that the creative process behind my solution was “take the code from the timeline tiddler, put it in another tiddler, and play with it until it works.” A little knowledge is a dangerous thing. Not sure what to do to change it…

It feels like an entirely do-able project – duplicating the original timeline macro and tweaking how it’s building its list. Alas, Dayjob. :joy:

1 Like

This is the way I get my tiddlers to work as well haha

Yea… work takes presidence :\
I typically modify the MoreSideBar Recents tab to show the system tiddlers and the normal Recents tab to show just general tiddlers.
I felt it was a bit redundant to have the two exact same tabs but in two different locations, serving the exact same purpose.

I hear you, @springer!

Actually, I think fixing the version by @DaveGifford is a simple matter of removing another ! before is[system] which was needed in the original timeline but not in yours. (You had removed it in only one of the two necessary places.) The key line should look like this:

<$list filter="[is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]">

and the whole macro like this:

\define timelinesystem-title()
\whitespace trim
<!-- Override this macro with a global macro 
     of the same name if you need to change 
     how titles are displayed on the timeline 
     -->
<$view field="title"/>
\end
\define timelinesystem(limit:"100",format:"DDth MMM YYYY",subfilter:"",dateField:"modified")
<div class="tc-timeline">
<$list filter="[is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]">
<div class="tc-menu-list-item">
<$view field="$dateField$" format="date" template="$format$"/>
<$list filter="[sameday:$dateField${!!$dateField$}is[system]$subfilter$!sort[$dateField$]]">
<div class="tc-menu-list-subitem">
<$link to={{!!title}}><<timeline-title>></$link>
</div>
</$list>
</div>
</$list>
</div>
\end
2 Likes

Just a small asside you must have the timestamps on if your want any tiddlers modified to be updated.

Hey all, I’d encourage anyone building this kind of tweak (that is, a way to include system tiddlers in the recent tab, or a system-specific recent tab), to do TWO more things:

(1) simultaneously do the same for system TAGS (either toggle the tags tab to include system tags, or enable an additional More tab focused on system tags). I imagine having them toggle with the same button would be intuitive – at any given time, one either is in system-tinkering mode, or one is not.

(2) include a note in your solution demo about the ReadOnly css that would be helpful for anyone with a front-door (public) vs back-door (author) interface.

For the initial OP solution by @twMat here, the simplest ReadOnly css companion seems to be:

.recentsys-icon * {display: none;}

(Of course, that’s assuming the state is a temporary one – you don’t want your public viewers to load the page with the system stuff stuck in the on position!)

UPDATE: Ideally, someone ( :grin:) would build a version of the button by @twMat that would toggle the inclusion of system tiddlers across a wide range of places where we might look for them.

Meanwhile, I tweaked my tiddlyhost demo site with versions of the additional More tabs in the @DaveGifford style (with fix noted above):

  • added SysRecent tab (with list-after:$:/core/ui/MoreSideBar/Recent)
  • added SysTags tab (with list-after:$:/core/ui/MoreSideBare/Tags)

… and then realized that @Mohammad’s Node Explorer is another resource that does not (out of box) include system tiddlers, but where one might want to toggle system results into view temporarily while in system-tinkering edit mode.

(As a quick solution for myself, I just hacked Node Explorer for now. A toggle-them-all solution in the style of what @twMat did in the OP would take a bit more time, but would be fantastic: Basically comb through for all the GUI nooks and crannies that include a [!is[system]] string in a filter, and wipe out that specification…)