Download presentation
Presentation is loading. Please wait.
Published byLorraine Barber Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.