| Summary: | XPlanner's actual time setting should be able to use Mylyn's time tracking mechanism | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | Helen Bershadskaya <hbershadskaya> |
| Component: | Mylyn | Assignee: | Helen Bershadskaya <hbershadskaya> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | enhancement | ||
| Priority: | P3 | CC: | mugwai2, robert.elves, steffen.pingel, webmaster |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | |||
| Bug Depends on: | |||
| Bug Blocks: | 181911 | ||
| Attachments: | |||
|
Description
Helen Bershadskaya
Created attachment 84443 [details]
Bugzilla time tracking
screenshot
Created attachment 84444 [details]
bugzilla task editor
Please note non-flat UI on time tracking form
Created attachment 84445 [details]
bugzilla time tracking web ui
Created attachment 84446 [details]
bugzilla timetracking web ui (part 2)
Summary of discussion on latest mylyn call: 1. It is probably not a good idea to have Mylyn automatically store actual time spent on a task back into the actual tracking system, since first of all it would not allow the user to participate in fixing any inaccuracies, and second is actually not desired or even allowed in some work environments. 2. Implementation should include an edit field showing Mylyn's current actual time in the connector editor page, and a button for propagating that information into the actual tracking system. The user will be able to edit this time to accurately reflect what they want to store. 3. There should probably be a read-only field displaying the current total time already stored in the actual tracking system for this task, so the user can see exactly what they are updating. 4. After saving the time in the actual tracking system, the edit field will reset to Mylyn's current tracked time. 5. There should probably be some way to differentiate whether the time to be saved should be added to or replace the time in the task in the actual tracking system -- maybe a checkbox saying "add to/replace"? 6. To start with, a rough implementation should be made in the XPlanner connector first, and then we can review whether/how it applies to other connectors. Please feel free to add anything I have missed from the call... Created attachment 84449 [details]
jira timetracking web ui
Form shown upon "log work done" action in JIRA web UI
Helen: summary looks great. As per point (6), Bugzilla-specific presentation of this, and the general UI are out of the scope of this bug, and as discussed during the meeting we can iterate on that with a common UI once we have rudimentary XPlanner UI in place. (Copying Robert's comments from duplicate bug #196695 -- sorry for the confusion) >> I am not sure whether it would be best for the tracked time on the >> XPlanner edit page to be using its own timer, or to be synchronized >> with the "refresh" button result on the planning page. We need to make sure the timing being reported to XPlanner comes from the global mylyn time tracking facility and not its own timer. If functionality is missing in mylyn then just create a bug report and we'll work on adding it together. >> 3. If the tracking is to be synchronized with the refresh button on >> the planning page, I will need some kind of listener notification so >> that I can know the time has been refreshed. Yes, the time on both the planning page and in the XPlanner editor would both ideally be updated via a listener and the refresh button eliminated. This should probably work via the existing ITaskActivityListener interface and the AbstractRepositoryTaskEditor could implement this. Unfortunately we can't change that interface since it is public. But something along these lines should be done so just let me know what priority this is and I can investigate further. *** Bug 196695 has been marked as a duplicate of this bug. *** Robert, thanks for your comments. I didn't mean that the XPlanner page should have its own time tracking timer, just whether I should have a timer that updates the text on the page with Mylyn's current tracked time -- or whether the Refresh button should trigger the update instead of the timer. You answered this, though, with your second point -- if there is a listener that directly connects to the time tracking, that would be best. This is, I am sure, not very high priority in the overall scheme of Mylyn things, but is just what I think I am supposed to be working on among my XPlanner bugs, since it might affect Mylyn API as a result. Okay, and the time reported in your editor, should it be total time as is on the planning page or should it be since last submission? Good question. I assume the Mylyn tracked time is from the beginning of first time task activation, so just showing that, obviously would show the total time. I think I might need to keep track of time since last submission myself, in addition to the total time. Maybe I can display both, and the user can have a choice of which value they would like to use. If this is the case, probably the "add" option on the time should only be available if the "time since last submission" value is selected. Okay so really you will handle presentation and all you need is to get the timing update notifications. We could create a new interface like so:
/**
* @API-3.0 merge with ITaskActivityListener and turn into an abstract class
*/
public interface ITaskActivityListener2 extends ITaskActivityListener {
public abstract void taskTimeUpdated(AbstractTask task);
}
and you implement and register one of these in the constructor of your xplanner editor. THen within teh taskTimeUpdated method you could update your timing widgets and I could do the same for the planning editor. Then I just need to wire up the TaskActivityManager to fire these events.
That sounds good, Robert -- yes, that's exactly what I would need. Thanks Okay great, I'll add this capability then we can take it from there. Helen, I've created ITaskTimingListener interface and for now you can use via TaskListManager's addTimingListener() and removeTimingListener(). Behind these methods the listener is registered with TaskActivityManager which is currently internal. This will need to change for 3.0. I've made use of this interface for the TaskPlanningEditor and committed this so you can see this for an example use of this new interface. If you come across any problems or would like to see more timing related information exposed via this interface, let me know and we can iterate on this. Thank you Robert for doing this so quickly. I will let you know of my usage progress, but it looks like it should work. -Helen Hello Hellen, do you haven an idea of when this feature is implemented since this is the only feature my company is missing in the connector before we start working with it. Regards, Markus Hi Markus. I am hoping to do this by the end of this week -- sorry -- I've been a little out of commission for a while. Just out of curiosity -- is it specifically the actual time update coordinated with Mylyn's time tracking that you're missing, or just being able to set the actual time? (because you can just set an actual time value for the task currently). Also, this implies that you would be willing to pick up dev builds, since this feature will only be available in the next official Mylyn release (2.3, I believe) at the soonest. Thanks a lot for your interest -Helen Hi Helen, dev builds wouldn't be the problem. What we need is at least to be able to enter the time spend on a task exactly like in XPlanner (xplanner/do/edit/time). What would perfectly satisfy our needs is that every time you active a task it automaticaly inserts the start time in xplanner (may be with a setting that allows to round up to 15 ,30 or 60 minutes) and when deactivating it inserting the end time (also with the round up). Manuell editing should still be possible though. Something like this would be great. Regards, Markus Thanks for your reply, Markus. I believe, actually, what we were planning was to coordinate Mylyn's tracked time with the time that would be saved in XPlanner, but we weren't going to automatically update it for you -- you would still have to make sure the time you see on the XPlanner editor page would be the time you want to save in XPlanner, and then use the "submit" button to save it in the XPlanner repository yourself. The idea was that if we try to do it automatically, it would be too big-brotherly, and many people would not want (or some places even legally allow) that kind of automatic time stamping getting recorded. Would the manual submit of tracked time still be ok for you? -Helen Hi Helen, manually submitting it would be fine as long as the start and stop time will be generated automatically (may be with a setting that allows to round up to 15 ,30 or 60 minutes) in eclipse, so that maybe I can click on "submit" right away without the need to change anything. Regards, Markus Thanks, Markus. I think the rounding option should be doable. I do however have to change my too hopefully given completion estimate to end of next week, since it turns out I have a lot of other work I need to finish in the next few days. If you have any other ideas, please add them to this bug report. Thank you very much for your suggestions and interest in this connector. -Helen Created attachment 87931 [details]
Patch for first pass at using Mylyn's time tracking in XPlanner connector
This patch adds a new section to the actions section of the editor.
This new section gives the user the choice to use Mylyn's time tracking for storing in the XPlanner task's actual time setting. This
is done via a checkbox. Additionally there are controls to round the value to the nearest half hour, and radiobuttons to allow the
user to either add Mylyn's tracked time to the current repository actual time, or to replace it (the actual setting in the repository will
only change when the "submit" button is pressed).
The "Add" choice is useful if the Mylyn task is activated on a repository (XPlanner) task that already has some actual time in it. The "Replace"
choice is useful if the repository task starts out with no actual time.
The defaults are:
-- Not using mylyn's time tracking
-- Rounding to nearest half hour (half hour is the only thing that made sense, since XPlanner only allows one decimal point digit as part of its settings)
-- Adding time to current repository setting.
If any of these are changed, they are persisted for the next time the editor is opened on any XPlanner task.
Selecting any of these, immediately updates the "actual time" setting in the Mylyn XPlanner editor, and additionally uses the Mylyn tracking timer for the update (immediate update is so that user can see result right away on selection, instead of waiting for next applicable time tick).
Ability for user to update the time manually to whatever value they choose is still remaining. However, if the "update automatically" checkbox is on, with each relevant time tick, that value will be updated with the result of the above selections.
Created attachment 87932 [details]
mylyn/context/zip
Created attachment 87934 [details]
image with example XPlanner use of time tracking
This looks great Helen! Patch applied, ip log updated. Depending on how often it is a user will want to change the rounding and whether or not to replace or increment the value on the repository, you may be able to fold away these extras. I haven't see it done before but one interesting way of doing this might be to use an expandable composite with no title and set the check button as its text client, making what would appear as an expandable check box. Robert, Thanks for checking it in and for your comments. I really like the "foldable checkbox" idea. Will try and see if it works. Marking as fixed since the main issue was addressed. We can still of course keep the conversation going about the implementation. Helen: could you write up a short summary for me to insert into the New & Noteworthy? Sure. I think this should do it: ----------------- The XPlanner connector now allows using Mylyn's automatic time tracking to be incorporated in the actual time setting for an XPlanner task. The XPlanner Task editor actions section has a checkbox that allows the user to turn automatic time tracking on or off (default is off). There are also options for allowing the automatically tracked time to be added to or replace the current actual time (default is adding -- actual update is done when the Submit button is pressed), and rounding the automatically tracked time to the nearest half hour (default is to round). The user still has the option of putting in actual time manually, however, if automatic actual time tracking is enabled, the last entered user value will be overridden with the latest tracked time. ------------------ Let me know if this is not sufficient. Thanks a lot -Helen Great, thanks. Could you also attach a screenshot? Don't use the Mylyn screenshot capture facility for it because the compression of that is currently set too high for documentation. Mik, there is already an attached screenshot in comment #26 -- hopefully that will be ok (https://bugs.eclipse.org/bugs/attachment.cgi?id=87934). Great, thanks for pointing that out. Created attachment 91469 [details]
Patch for checkbox as expansion control for "auto tracking" section
This patch follows Robert's suggestion and sets the control for the expandable section to be the checkbox that controls whether the
time should be autotracked by Mylyn. This is just a UI change, really -- the section gets automatically expanded if the editor is opened
with the "auto tracking" setting "on".
Created attachment 91470 [details]
mylyn/context/zip
Patch applied. |