|
The more I use TDL the more I realize that it would help to transform the data into various report formats, and of course there are samples to help with this. But of all the technologies with which I've become proficient over the last 30+ years, XSL is not one of them.
I'm wondering if anyone else has started down this path "cold" to reformat raw data into useful reports, learning XSL along the way. What resources were used to assist? Until about a year ago I used to read a lot of tech books. But these days I'm so busy, well, that I need software to keep track of all of my tasks. I'll do the due diligence and study up on the craft as required. But for now I'm wondering if anyone has found any shortcuts to help kick-start this process.
And for anyone who is really proficient with XSL but knows nothing about other coding, I'll offer to barter one-for-one services with you : help me to create transforms and I'll write some code for you. Or perhaps we can just setup on Skype for occasional help? I do not want free/charity services. Just looking to avoid the school of hard knocks all on my own, and willing to do something in return for any assistance.
|
|
|
|
|
I started down the 'cold' path, largely by looking at the stylesheets already written, and using the W3C schools web-site, and google. As a consequence, I still don't fully 'get it', as evidenced by the horrible mess I sometimes create when trying to get creative with a stylesheet's functionality. I am also just a hobbyist - haven't coded in a real language for many years.
Also, I have been doing this in Notepad++. This is both good and a curse. It forces to me to be careful and check the code is working on a frequent basis. Finding an error can be a slow and frustrating process if I have made too many changes between checks. Don't really want to shell out for anything fancier.
So shortcuts - I don't know of any. I have wondered about learning this properly, but too busy really. As you say, it would be useful to talk to someone who knows about this more. No-one in my IT department at work knows much about xsl.
Not sure if that helps in any way. If you want to see what I have been up to, my stylesheets start with Z_.
zajchapp
|
|
|
|
|
{sigh}
Small world.
I am going through this exact process, at this exact same time.
Thus far, I have only gotten as far as working on updating the wiki with blurbs collected from searching this forum.
In the last week or so I've updated or touched:
(most still in progress)
- 3rd party tools
- FAQ (last few questions)
- stylesheet
- Stylesheet Gallery (& accompanying files)
[including how to print / w/stylesheets]
- Minimal ToDoList Installation
- Running ToDoList on Linux under Wine
- and have yet to even crack open a stylesheet.
Perhaps some of the material will reduce your own learning curve, if only by a tiny little bit.
As I continue my journey, I hope to keep writing to the wiki - I'm going through the learning curve myself, I may as well contribute back by documenting as I go, and give the next person a leg up.
As you go through your own journey, if you have any suggestions/revisions for such articles, or content for others, do please drop a note here. Hopefully someone will cut and paste it into the wiki.
What would be -particularly- helpful, are brief tutorials on stylesheets / modifications. '3rd party tools' lists what software I have seen mentioned thus far.
- what would be MOST helpful is a brief note of how useful / how to use each candidate: Download this, file/open that, click this, drag that, click go. [It need only be that simple.]
The real intimidating factor, as XML is a 'meaningless term'*, for someone who needs to be productive, right now, is the lack of the above. *(Like saying "water is wet." True, but neither helpful nor illuminating. Nobody's fault, this is the nature of the 'XML' beastie.)
A short step by step list that lets someone increase the font size on the project title, takes one away from the intimidation and removes most of the learning curve - what tool to use would be solved, letting one focus on how should the tool be wielded. (On what material is a separate topic, for another day. e.g. 'Executing / painting / iterating through a data query'.)
.
|
|
|
|
|
It ain't really so bad. Depends on how long you have to play...
I have found to handle the stylesheets you need to:
- understand what XML is about, how to handle XPath, what an XML schema is, and the TDL schema in particular.
Fortunately Dan has a file to two in \Resources\Misc that outlines the schema. Unfortunately it is out of date. Dan, this needs updating since your changes to comments, categories etc...
The other way to get you head around the schema is to open a tdl file in your text editor of choice and have a poke around...
It is also relevant to understand that most of the Task attributes are XML node attributes, except certain sub-nodes such as COMMENTS and multivalue ones such as CATEGORY, PERSON. Attributes are referenced with an @ (e.g. @STATUS, vs just COMMENTS). The stylesheets are all now updated to handle this.
- have some understanding of CCS and HTML, as the xsl stylesheet uses aspects of these (e.g. the styles), and has similar syntax in many cases. I have never really coded in html though, but I think if you had, xsl wouldn't be hard.
- understand the xsl syntax and structure. This isn't really so extensive, although it did take me a while to get my head around how the code is structured. I am used to old school procedural calls and there are no 'For' or 'While' loops... This is probably what still trips me up the most.
- understand that TDL uses xsl version 1, due to Windows restrictions. This means the functions available are much reduced vs the current xsl version. These are available on the web. This only an issue if you want to do fancy calculations (e.g. date manipulations). I spent some time hitting my head against why my code wasn't working...
I found the W3C website the most helpful resource, and they have some reasonable overviews as well as the commands etc... There is often some trial and error involved in applying the commands though, until you 'get it'.
One thing I have done in the stylesheets I have put together, is provide a number of user settable parameters at the top of the code to define the information presented and the formatting to some extent (e.g. show comments, show task colour). I am not sure anyone will find these, given there is probably a hurdle for people to actually open the stylesheets and have a look - and why would they?
Re the documentation and examples. Perhaps a highly simplified stylesheet with loads of comments might be useful.
PS: I have only just found the wiki. Will need to look more closely at it.
zajchapp
|
|
|
|
|
@zajchapp:
- so what tools/applications do you use? Just a code editor?
- assume the .xsd schema's were current. What to do with them? i.e. I get they're a data dictionary. Into what (tool?) do they get plugged in to?
- what is your development loop? Edit/save an .xsl, tdl open in another window, file/print/use .xsl, view result in browser, view source (in browser) to try and figure out what went wrong, repeat?
|
|
|
|
|
I use Notepad++, but have used other text editors (jEdit, Programmers Notebook). At least there is keyword highlighting etc... Have not got any auto code completion functionality to work in any of them.
The schema is just the dictionary as you say. They define the structure of the xml data that TDL uses - i.e. the file structure. You need to know this if you want to extract data from the file (using XPath). A tasklist file is just an xml file generated using the TDL XML schema - it is a text based, structured data store, using tags. The data tags correspond to the schema.
I have only queried these files from TDL, but I assume there are other tools that extract and present xml data could do this. The query used (e.g. stylesheet) just needs to understand the schema.
My development loop is as basic as it comes - much as you describe. I make changes to the stylesheet then save it. I have TDL open, with a test file that contains aspects I am coding for. I do a 'print preview' using the style sheet. If it works, sweet. If I have made an error, it will either not generate a preview (complete fail error(usually syntax error), or no content), or not present the information as expected. Then back to Notepad++ to find the error. Rinse and repeat. As mentioned, I try to work in small increments, as the limited error reason identification can make finding the error challenging.
Please be aware, all this is self-taught, very part-time, so there a huge gaps in my understanding. I am kind of expecting to be corrected at any moment...
zajchapp
|
|
|
|
|
zajchapp wrote: Dan, this needs updating since your changes to comments, categories etc... Absolutely.
|
|
|
|
|
And now there might be further changes - re the calcdatestrings!
|
|
|
|
|
I've hacked a few useful ones together.
The fastest way to test, as far as I found, was to take a copy of the xml tdl file, and add a style sheet directive to the top section, then open it in internet explorer and simply refresh the "page" whenever you make a modification to the stylesheet. Makes debugging/change-assessment much faster.
edit : for example, place this after the #?xml version ?#:
#?xml:stylesheet type="text/xsl" href="ProjectCheckList.xsl"?#
(with hash meaning greater or less than symbols!)
modified 6-Dec-13 12:19pm.
|
|
|
|
|
|
Steps to reproduce
+ Select Tools > Preferences > Inheritable Attributes. Under Attribute Inheritance, check "Have subtasks inherit ...", check "Category", check "Continue to update ..."
+ Create a task tree as follows (the value in the brackets is the category assigned to each task)
Business [Business]
Development Tasks [Development]
Task [Development]
Task [Development]
R&D Tasks [R&D]
Task X [R&D]
+ I want to move Task X from R&D Tasks to Development Tasks and I expect the category of Task X will be changed from R&D to Development. I move Task X up one level and then move it down one level under the Developement Tasks. The result task tree is as follows
Business [Business]
Development [Business]
Task [Business]
Task [Business]
Task X [Business]
R&D [Business]
In this sample, only the parent of Task X is changed (from R&D Tasks to Development Tasks) so only the category of Task X should be changed accordingly. The categories of other tasks should be left intact.
Please let me know if you can reproduce the issue.
|
|
|
|
|
Bui The Hoa wrote: so only the category of Task X should be changed accordingly Currently the design is to only update the subtask when the parent is edited.
And in this specific case the parent has not been edited; the subtask has been edited.
|
|
|
|
|
I use Bugzilla a lot with clients and am hoping to get more value with integration between TDL and Bugzilla. I'm just not sure yet of exactly what the possible integration points might be. It looks like Bugzilla has only been mentioned a few times in this group.
Does anyone have TDL integrated with Bugzilla? How?
So far the only integration I have is that I can open a bug page with a User-Defined tool, select task row, then click an icon in the toolbar. I was looking at the Bugzilla API[^] to see if it would be of any value for pushing data out into tickets, or retrieving data from them. I'm hoping others here can share experience.
Thanks!
|
|
|
|
|
iamstarbuck wrote: I can open a bug page with a User-Defined tool, select task row, then click an icon in the toolbar. Can you describe in more detail how you have achieved this as that may help me to suggest alternatives?
|
|
|
|
|
I actually got the roots of this solution from another old[^] posting in this forum.
Tools>Preferences>User Defined Tools
New Tool
Path = C:\Program Files (x86)\Mozilla Firefox\firefox.exe
(Browse for it, different path in different OS versions)
Arguments = "http://bugzilla.mydomain.com/bugzilla/show_bug.cgi?id="$(selTExtID)
Another query can be used there to see the current buglist for an individual. For example:
http://bugzilla.mydomain.com/bugzilla/buglist.cgi?f1=assigned_to&list_id=12345&o1=substring&query_format=advanced&resolution=---&v1=USERID
The REST API allows for JSON responses to GET and PUT requests.
Again, I can't say what I'm asking for except to know if and how others might be getting more value by combining these fine tools.
Thanks Dan!
|
|
|
|
|
Well, you've done exactly what I would have suggested, and the External ID was created for just that purpose, so you may have reached the current limits concerning 3rd-party integration.
But any (random) thoughts you might have about extending this would be welcome...
|
|
|
|
|
Bugzilla created on wiki, pointing to this thread.
|
|
|
|
|
.dan.g. wrote:
6.8 supports DropBox if you have the Windows DropBox desktop component installed.
Thanks. I see it now, provided by FtpStorage.dll.
Upon clicking File / Save To / Dropbox, the folder I last exported to is brought up, not my 'local Dropbox root' - is this expected?
- how is this different than saving the file any other place? i.e. What is functionally different by choosing Save To / Dropbox as opposed to just File / Save Tasklist (As)? (Where I had already chosen a spot on my local computer within its local dropbox replica.)
What I had hoped for in 'Drobox functionality' was a direct load/save from/to Dropbox and avoiding the need to install the Dropbox app - and the necessary accompanying documentation/instructions for my computer uncomfortable team members. e.g. Give them a dropbox share link to a .tdl, associate it with the accompanying dropbox shared todolist.exe, and they get on with their day - nothing to install or download, they just click and go. Is this a fantasy? (The Dropbox app will always be necessary?)
|
|
|
|
|
bs27975 wrote: provided by FtpStorage.dll. No. That dll provides access to a FTP server. DropBox/Google Drive/SkyDrive are built-in facilities, but still requiring an additional install.
bs27975 wrote: What I had hoped for in 'Drobox functionality' was a direct load/save from/to Dropbox and avoiding the need to install the Dropbox app I hear you. Unfortunately my experiences with Google's API rather put me off trying to provide direct access.
|
|
|
|
|
.dan.g. wrote:
bs27975 wrote:
provided by FtpStorage.dll.
No. That dll provides access to a FTP server. DropBox/Google Drive/SkyDrive are built-in facilities, but still requiring an additional install.
OK, I'm confused. Without ftpstorage.dll, no load from / save to choices were available. With it, they all were. Hmmm. And it can't be just any ol' .dll, or at least not MySpellCheck.dll.
Confused. Built-in but require additional install ... huh? (Do you mean the dropbox client?)
bs27975 wrote:
What I had hoped for in 'Drobox functionality' was a direct load/save from/to Dropbox and avoiding the need to install the Dropbox app
I hear you. Unfortunately my experiences with Google's API rather put me off trying to provide direct access. Dead |
Can't say as I blame you. I don't know if what I'm fantasizing is even possible.
Nevertheless, if you haven't already and the opportunity presents itself, you might peek at Dropbox docs long enough to confirm it'd be as bad as you think / google. AFAIK they must be rather different, at least functionally - Dropbox can not share sub-folders, and the Android app can save to dropbox but not Google Drive. So something's up. Sadly, neither will do file locking, and to even mention a desire for record, let alone field, locking - well ... evidently I'm from some other Solar System, not merely another planet.
- how the heck can Google have come along so late, dropped so much functionality developed over so many years, and somehow we're all sufficiently OK with it?
In any case, how do things functionally differ for the user with load from / save to Dropbox vs just saving the .tdl somewhere within the local Windows Dropbox replica?
_
|
|
|
|
|
_BS_ wrote: In any case, how do things functionally differ for the user with load from / save to Dropbox vs just saving the .tdl somewhere within the local Windows Dropbox replica?
Gotta say, I was confused by this as well. Applications don't need hooks for Dropbox. Just save to the local path on which Dropbox has been mounted - it's like Samba in that respect. Files are automatically live-synced from that location.
What would concern me is that both TDL and Dropbox start automatically on system boot and I'm not sure whether TDL would read the lists first, or whether Dropbox would sync them first. I wouldn't want TDL to read the local copy and then choke because the files were changed underneath it, or for TDL to over-write an update that comes in after the initial load. Perhaps "Dropbox integration" implies a more friendly realtime sync?
|
|
|
|
|
iamstarbuck wrote: Applications don't need hooks for Dropbox. Just save to the local path on which Dropbox has been mounted Indeed, and the relevant plugins just preclude the need for the user to navigate to those folders, especially if they use more than one cloud service.
|
|
|
|
|
_BS_ wrote: Without ftpstorage.dll, no load from / save to choices were available. With it, they all were
Sounds like a bug in that case...
After installing the DropBox client and deleting FTPStorage.dll, I could see the DropBox entry in 'File > Open From/Save To'.
modified 3-Dec-13 20:52pm.
|
|
|
|
|
.
OK, that's just weird. Perhaps something just had to be 'kicked'.
I deleted the .dll, went back in, and both GoogleDrive and Dropbox were still there. Huh.
To be fair, two other things happened in the mean time:
- I updated to 6.8, which is to say, dropped the .exe (only) into the dropbox folder.
- another user in a different location (across town) opened a different list, so when I next clicked on the .exe above (here), a different list than I was on before opened. (Which is all fine, just startled me. i.e. Could something by the other user's use have kicked something in the .ini in, or something, to make GD/DB stick? Doubtful.)
- both computers already had the dropbox client installed.
In any case, call it a glitch. But you may hear of such from others - at worst, dropping in the .dll, running the .exe, and then removing the .dll, takes one where you expected they would be. (Not that this should happen all that often - I'm working on a minimal install, after all.)
.
|
|
|
|
|
I can see the day when I will need to batch publish output, for example, one .html version with notes, one without.
Is it possible to automate from the command line Transform Active Tasklist using different stylesheets to different output destinations? e.g.
pubmytdl.cmd:
todolist mytdl.tdl -tat:myrepwnotes.xsl -filt:myfilt,comp,uncomp -col:cust-allocby,allocto >/mydropboxfolder/shared/mytdlwnotes.html
todolist mytdl.tdl -tat:myrepwonotes.xsl -filt:myfilt,comp,uncomp -col:cust-datestart,datedue >/mydropboxfolder/shared/mytdlwonotes.html
(Note: I am imagining these command line parameters, for the purposes of this question.)
- entering the question, I wonder ... could these parameters (except the .xsl) be/become embedded within the .xsl? Performing backflips to create capable commandline parameters would then become unnecessary.
|
|
|
|
|