mGSDProjectStatusUpdatesPlugin (adapted from "mGSD Journals and projects" thread)

132 views
Skip to first unread message

David Szego

unread,
Feb 7, 2012, 9:54:27 AM2/7/12
to TiddlyWiki
Hi all...
I more or less packaged StuckAgain's excellent idea of using Journals
as Project Status Updates into a plugin ...

I say "more or less" because it adds the code so it won't get
overwritten, and gives instructions on how to add the other necessary
Tiddlers, all in one place.

Some caveats:
* I've re-term'd StuckAgain's use of "Journal" entries as project
notes, to "Status Updates" -- This keeps them separate from "Journal"
entries (which may be useful for actual personal journal entries).
This is also a little more appropriate for me as a Project Manager.
* Project names with (parenthesis) don't get their Status Updates
listed. Something to do with the tags:[['$1']] in the mgtdList choking
on the brackets.
* I've changed the date format to "YYYY/MM/DD - hh:0mm", which reads
like: "2012/2/6 - 21:36" ... You can change this in the plugin, but do
keep in mind that this changes the order.
* The Project Dashboard has been appended with a full-width area at
bottom for Status Updates
* Added a + button for new Status Updates (with instructions on
changing the label)

Check it out at http://www.thinkcreatesolve.biz/mGSDMeetingEnhancements.html
- scroll down to the [[Example Project]]
The plugin is in [[mGSDProjectStatusUpdatesPlugin]], or copied below
in this message.

Anyways, would love some help debugging the ( ) issue ... Kudos to
"StuckAgain" who is the proper author! This is just a compilation (and
tweaking) of his work!

-- David Szego

----------------

/***
|Name:|mGSDProjectStatusUpdatesPlugin|
|Description:|Creates "New Status Update" macros|
|Version:|1.0|
|Date:|6-Feb-2012|
|Source:|Based on http://mptw.tiddlyspot.com/#NewHerePlugin and
http://groups.google.com/group/gtd-tiddlywiki/browse_thread/thread/27...
|Author:|"StuckAgain", David Szego <david.sz...@me.com> based on Simon
Baird <simon.ba...@gmail.com> and the thread above|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!!To Install:
Please add a Tiddler called [[StatusUpdateView]], containing:
//{{{
<slider Status Updates>
<<mgtdList startTag:StatusUpdate
dontShowEmpty:no
tags:[['$1']]
sort:-date
gView:bold
ignoreRealm:yes
view:TiddlerText

</slider>
//}}}
And in the [[TagDashboards]] Tiddler, make the last divs of the ''!
Projects'' section, just before the ''!Context'' section, look like
this (shown in-place):
//{{{
<!--}}}-->

</div>
</div>
<p>
<div class="cols3">
<hr style="width: 98%;">
<div macro="newStatusUpdateHere" style="float:left;"></div><div
macro="tiddler StatusUpdateView with:{{tiddler.title}}"
style="float:left; clear:none;"></div>
</div>

<!--}}}-->

!Context
//}}}
And in your CSS [[StyleSheet]], add:
//{{{
// Additions for mGSDProjectStatusUpdatesPlugin
.sliderPanel { width: 98%; };
.sliderPanel h1, .sliderPanel h2, .sliderPanel h3, .sliderPanel h4,
.sliderPanel h5, .sliderPanelh6 {font-weight:bold; text-
decoration:none;
color:black}
.sliderPanel h1, .sliderPanel h2, .sliderPanel h3 {padding-bottom:1px;
margin-top:1.2em;margin-bottom:0.3em;}
.sliderPanel h4,.sliderPanel h5,.sliderPanel h6 {margin-top:1em;}
.sliderPanel h1 {font-size:1.35em;}
.sliderPanel h2 {font-size:1.25em;}
.sliderPanel h3 {font-size:1.1em;}
.sliderPanel h4 {font-size:1em;}
.sliderPanel h5 {font-size:.9em;}
.sliderPanel .mgtdList .innerList br { display:inline!important; }
.sliderPanel span.action {
font-size:1.2em;
font-weight:bold;
padding-top:9px;
padding-bottom:9px;
}
.sliderPanel hr { width: 98%; }
//}}}
!!!Code:
!!!!This adds a New Status Update button:
//You can change the ''label:'' to anything you'd like//
***/
//{{{
merge(config.macros, {
newStatusUpdateHere: {
handler:
function(place,macroName,params,wikifier,paramString,tiddler)
{
wikify("<<newJournal \"YYYY/MM/DD - hh:0mm\" label:'+'
tag:StatusUpdate [["+tiddler.title+"]]>>",place,null,tiddler);
}
}

});

//}}}
/***
!!!!This adds a StatusUpdate view method:
***/
//{{{
merge(Tiddler.prototype,{
//TiddlerText with contents - additional to core TiddlerViewMethods
tiddler
render_TiddlerText: function() {
var showControl= "";
var mydisplayType = "";
var tid_length="";
mydisplayType += store.getTiddlerText(this.title);
tid_length +=mydisplayType;
if (tid_length !="null") {showControl += '<<tiddler [[%0]]>>\n<hr/
>
\n'; }

return this.renderUtil(
'{{action{'+
'&nbsp; [[%0]] '+
'<<deleteTiddler [[%0]]>>'+
'\n'+
'}}} %1',
[
this.title,
showControl.format([this.title])
]
);
},
});

//}}}

HansBKK

unread,
Feb 7, 2012, 10:46:38 AM2/7/12
to tiddl...@googlegroups.com
Looks great David, thanks!

Could (anyone) post with what versions of modern browsers this package seems to be working OK as a traditional single-file TW?

David Szego

unread,
Feb 7, 2012, 12:29:00 PM2/7/12
to TiddlyWiki
I've used it with Firefox 9, 10 on Windows, Linux and Mac, and Safari
on Lion 10.7.3

IE8 on WindowsXP (ugh...) keeps popping up "Do you want to stop this
script?" but you did say *modern* browsers! ;->

HansBKK

unread,
Feb 7, 2012, 1:56:54 PM2/7/12
to tiddl...@googlegroups.com
On Wednesday, February 8, 2012 12:29:00 AM UTC+7, David Szego wrote:
IE8 on WindowsXP ... but you did say *modern* browsers

It isn't really is it, but then the OS is now how many decades old? I have to say I've been really happy with Win7 for the past 6+ months, given some tweaking for my "classic" UX preferences - if I get some "free" time I'll try on Win7/IE9.

Frankly I'm surprised the newer FFs are OK, isn't mGSD taggly-based? Although I never did try to isolate the problems with my own hodge-podge TWs, just sticking with FF3portable for now. . .

David Szego

unread,
Feb 19, 2012, 8:17:28 PM2/19/12
to TiddlyWiki
Hi all,

Some small but helpful changes:

v1.1 - 19/02/12:
* Moved mGSDProjectStatusUpdatesStyleSheet (not really needed, but
optional for custom styling) and StatusView into Shadow Tiddlers for
easier install
* Tag new StatusUpdates with "noNotes" and "hideTags" for a nicer
view of StatusUpdates outside of the Project Dashboard

Take a look at http://thinkcreatesolve.biz/mGSDEnhancements.html

Cheers,
David Szego

stuckagain

unread,
Mar 12, 2012, 7:56:29 PM3/12/12
to TiddlyWiki
David

Thank you for your great work at making this into a plugin. I think it
is a really helpful development. Thank you

A few comments from my observations so far:

1. this plugin is dependant on the Eric's nested slider plugin. Your
plugin could avoid this dependency. In my original version I used the
slider functionality that is built into vanilla mGSD.

2. My first attempt at this used a similar approach to you, i.e. a
separately closed slider for every status entry, but this was of not
much use in practice because it stopped me from easily opening all
updates in one go (to read or print project progress history. Is this
something you could reconsider?

3. It has made the rest of the CSS in a vanilla MGSD change (and look
unevenly sized), perhaps you could rejig this so that you have two
separate CSS tiddlers for transclusion in the StyleSheet. One for
Vanilla mGSD usage and one for your 'mGSD Enhancements' styling? Then,
for users like me who are using the plugin in a vanilla mGSD file, it
can be easily changed to avoid messing up the styled look and feel.

4. It has doesn't display status updates for 'Contacts'. If find this
indispensable, as the people I line-manage are my contacts and I want
to more easily see my notes for them! I am sure I could work out how
to do this, but perhaps you could change things to make this easier
for any user.

5. When clicking on the + button, the resultant new tiddly does not
include a tag for the same realm as the parent project (this problem
existing in my original version too!)

p.s. How do you use Journals differently from Status Updates?

I love what you have done so far.

Regards

Stuckagain

David Szego

unread,
Mar 15, 2012, 9:43:08 AM3/15/12
to tiddl...@googlegroups.com, da...@szego.me
Hi! Thanks for the compliments and feedback. All good points, let me answer inline...


1. this plugin is dependant on the Eric's nested slider plugin. Your
plugin could avoid this dependency. In my original version I used the
slider functionality that is built into vanilla mGSD.


There is commented code in the plugin to use the original built-in, and a header explaining that it can be used if preferred. Personally, I liked this layout better.
 
2. My first attempt at this used a similar approach to you, i.e. a
separately closed slider for every status entry, but this was of not
much use in practice because it stopped me from easily opening all
updates in one go (to read or print project progress history. Is this
something you could reconsider?

Probably very easy to put in as a config-setting checkbox at the top of the plugin (where people will actually read and find the option!) I'll put it on my to-do list. Maybe the same for the slider layout.
 
3. It has made the rest of the CSS in a vanilla MGSD change (and look
unevenly sized), perhaps you could rejig this so that you have two
separate CSS tiddlers for transclusion in the StyleSheet. One for
Vanilla mGSD usage and one for your 'mGSD Enhancements' styling? Then,
for users like me who are using the plugin in a vanilla mGSD file, it
can be easily changed to avoid messing up the styled look and feel.

That's a good idea. If you have any styling rules that you think work well, please pass them on.
 
4. It has doesn't display status updates for 'Contacts'. If find this
indispensable, as the people I line-manage are my contacts and I want
to more easily see my notes for them! I am sure I could work out how
to do this, but perhaps you could change things to make this easier
for any user.

Also a good idea! It's going on the to-do list too!

5. When clicking on the + button, the resultant new tiddly does not
include a tag for the same realm as the parent project (this problem
existing in my original version too!)

I'll check it out. Thanks. I had a similar problem in another plug-in, might apply here too.

p.s. How do you use Journals differently from Status Updates?

To me, "journals" are personal, like a diary, or at the very least more generalized notes. Status Updates relate specifically to a project (or soon, a Contact).

I love what you have done so far.

Many thanks!!!

Regards

Stuckagain

stuckagain

unread,
Mar 15, 2012, 6:51:52 PM3/15/12
to tiddl...@googlegroups.com
David

Can I also ask how the plugin chronologically sorts status update entries? What prompts the question is that I found through use that it uses a date/time tiddler name that drops the leading zeros. If it sorts on the tiddler title (as I think it should) then losing the leading zero will result in some entries being in the wrong order chronologically. In one of my first attempts at this I sorted on Tiddler creation date (much more logical. However, I soon found that this only worked if I was never too busy, and was always able to enter status updates as they happen. Alas, I sometimes catch-up after the event and enter status updates from several days previously. That's when I changed the sort to the tiddler name (which can always be manually backdated).

So could I suggest, a date default of "YYYY.0MM.0DD_0hh:0mm" for the tiddler name, sorting on tiddler names (and probably something in the plugin notes to explain how and why it works this way - if you agree).

Stuckagain

David Szego

unread,
Mar 15, 2012, 9:23:54 PM3/15/12
to tiddl...@googlegroups.com
There's a fairly obvious line of code in the plugin that includes:

<<newJournal \"YYYY/MM/DD - hh:0mm\ ......

but I think that was an oversight on my part from your suggestion of:

YYYY.0MM.0DD_0hh:0mm

The slashes and formatting are more for Canadian notation, as is the lack of a leading 0 on the hours as well.
However, I see that without the leading 0, this could cause issues with sorting.
I usually add to the title of the Status Update so that it looks like:

20120/03/13 - 9:15 - Replied to a post on Google Groups

So, I think replacing my missed leading 0 will be a good start, but you raise an interesting question:
Do you change the fuctionality so that it sorts on Tiddler Modification Date (which may be logical for Status Updates),
or do you stick with the Tiddler Title, which is easier for the user to modify (and thus affect the sort)?

Sounds like another checkbox item - "Sort on Tiddler Modification Date" - which defaults to Title if unselected.
Another one for the list!

Let me know if you can plug away at any of it! I'll attempt it in the next couple of weeks, need to get a few things off my plate first.

Cheers,
David.
Reply all
Reply to author
Forward
0 new messages