Presentation is loading. Please wait.

Presentation is loading. Please wait.

Implementing a custom JIRA UI using plugins 2.0 Andreas Knecht Plugins 2 & REST.

Similar presentations


Presentation on theme: "Implementing a custom JIRA UI using plugins 2.0 Andreas Knecht Plugins 2 & REST."— Presentation transcript:

1 Implementing a custom JIRA UI using plugins 2.0 Andreas Knecht Plugins 2 & REST

2 Overview How to implement a custom UI How to implement a REST resource Demo svn co https://labs.atlassian.com/svn/IPHONE/trunk https://labs.atlassian.com/svn/IPHONE/trunk Excellent resource - This is a great app, not just because it looks good. It's also a great resource for JIRA 4.0 REST plugin development. Matt Doar (PAC - 2 Dec 09) Excellent resource - This is a great app, not just because it looks good. It's also a great resource for JIRA 4.0 REST plugin development. Matt Doar (PAC - 2 Dec 09) ““ ””

3 Custom UI Why? Building Blocks o Servlet Filters o Webwork actions o HTML/JS + REST

4 This is not a talk about REST!

5 JIRA Web-Interface for the iPhone Easy to use interface on the iPhone Plugins 2 plugin Most of the work done client-side Custom REST interface

6 Plugin structure

7 Some stats 2000+ downloads since November 09 ~7000 LOC 20 20% days to develop 8 features

8 Custom UI - Filters Redirect certain users Inject content into pages

9 Custom UI - Define a Filter URL-Pattern Location o after-encoding, before-login, before-decoration, before-dispatch

10 Custom UI - Webwork Full MVC UI framework Views, Commands, Validation, Templating /secure/* is not secure roles-required=”admin” does not work /secure/* is not secure roles-required=”admin” does not work

11 Securing Webwork http://localhost:2990/jira/OrderForm!default.jspahttp://localhost:2990/jira/OrderForm!default.jspa?id=10001 http://localhost:2990/jira/OrderForm.jspa?id=100011

12 REST Simple for small data What about 100000 issues? vs

13 Expands to the Rescue.../rest/iphone/1.0/filter/10000.json

14 Expands to the Rescue.../rest/iphone/1.0/filter/10000.json.../rest/iphone/1.0/filter/10000.json?expand=result[1:2]

15 Expands to the Rescue.../rest/iphone/1.0/filter/10000.json.../rest/iphone/1.0/filter/10000.json?expand=result[1:2]

16 Expands to the Rescue.../rest/iphone/1.0/filter/10000.json?expand=result[1:2].issue.details

17 Expands to the Rescue.../rest/iphone/1.0/filter/10000.json?expand=result[1:2].issue.details

18 Expands to the Rescue.../rest/iphone/1.0/filter/10000.json?expand=result[1:2].issue.details.comments[1]

19 Expands to the Rescue.../rest/iphone/1.0/filter/10000.json?expand=result[1:2].issue.details.comments[1]

20 How do expands work? Lists vs Objects

21 How to expand lists

22 How to expand objects

23 REST provides com.atlassian.plugins.rest.common.expand.EntityExpanders...

24 REST Backend doesn’t always support expands Tricky to implement expands #protip: Use services

25 Services keep you safe!

26 Demo Implement ‘Add Comment’ feature Requires some client side JS Server side REST resource Tools

27 Summary Use HTML/JS as much as possible o Faster development turnaround o Good frameworks (jQuery, GWT, jQTouch...) If our REST API doesn’t do it for you...

28 Questions https://labs.atlassian.com/browse/IPHONE


Download ppt "Implementing a custom JIRA UI using plugins 2.0 Andreas Knecht Plugins 2 & REST."

Similar presentations


Ads by Google