Advanced portal/form customizations - overriding controller.js
1. View time records individually, instead of as a running total
2. Back-date time, so that analysts can enter it after-the-fact.
3. Attach Notes to the time. Possibly from an enum list of categories
I believe that we can accomplish #2 and #3 by extending the Billable Time class, and adding whatever properties we need. But for #1, we'd need to significantly change the UI for entering time. We could force the time to be added through a custom task, but then we'd still need to modify the Work Item forms to use a different type of element (other than "billableTime") to display the extra properties.
The "billableTime" controller & view have a couple of nice little features that we'd like to keep, if at all possible. The controller looks easy enough to modify to meet our goals, but any changes will get overwritten during portal upgrades. So my questions are:
1. Is there any supported way to override these built-in controllers & views?
2. If there's no supported way, does anyone have any suggestions on how to manage unsupported changes like this? It's looking like this is going to be a business requirement, so just not implementing the change is likely not an option.
3. Is there a better way to do this, and still stay within the supported methods?
Looking forward to any suggestions on how to move forward on this. Thanks!
Best Answer
-
seth_coussens Member Ninja IT Monkey ✭✭✭✭The best method here would be to define a custom tab in your work item form, and then show the billable time control on the custom tab. Then via the custom.js target this new tab and perform any sort of modifications you need using javascript to dynamically mutate the page the way you need it... this could include adding in additional HTML via templates. This would be easily removed, and thus supportable as it would flow through the customs pace. This would also make it more resilient to upgrades.5
Answers