{ "id": "113137", "key": "ALOY-630", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "11113", "key": "ALOY", "name": "Alloy", "projectCategory": { "id": "10400", "description": "Tools for developing applications", "name": "Tooling" } }, "fixVersions": [], "resolution": null, "resolutiondate": null, "created": "2013-04-19T17:27:22.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "Alloy", "xml" ], "versions": [], "issuelinks": [], "assignee": null, "updated": "2018-03-07T22:26:01.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [], "description": "Views should be able to include other views as a template and override. In the example below I use the id tag to identify which section to override.\r\na simple example is as follows.\r\n\r\nbase.xml\r\n{code:xml}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \t\t\t\r\n \r\n some custom content\t\t\r\n \r\n \r\n \r\n\r\n{code}\r\n\r\nmywin.xml\r\n{code:xml}\r\n\r\n\r\n \r\n\r\n\r\n some new content\r\n\r\n{code}", "attachment": [], "flagged": false, "summary": "Use base xml files for views", "creator": { "name": "mduitz", "key": "mduitz", "displayName": "Mitch Duitz", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "dsefton", "key": "dsefton", "displayName": "Daniel Sefton", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "248397", "author": { "name": "johncblandii", "key": "johncblandii", "displayName": "John C. Bland II", "active": true, "timeZone": "America/Chicago" }, "body": "+1 for the concept. Open to the implementation.", "updateAuthor": { "name": "johncblandii", "key": "johncblandii", "displayName": "John C. Bland II", "active": true, "timeZone": "America/Chicago" }, "created": "2013-04-19T18:03:55.000+0000", "updated": "2013-04-19T18:03:55.000+0000" }, { "id": "248689", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Would the views added to the just be appended to its children?", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-04-22T22:55:03.000+0000", "updated": "2013-04-22T22:55:03.000+0000" }, { "id": "248693", "author": { "name": "johncblandii", "key": "johncblandii", "displayName": "John C. Bland II", "active": true, "timeZone": "America/Chicago" }, "body": "I think a layout system would be better. Extending a view seems it can get a bit confusing. Without layouts, you could easily do something like:\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nMaybe even in the root of it allow you to set the layout:\r\n\r\n...\r\n", "updateAuthor": { "name": "johncblandii", "key": "johncblandii", "displayName": "John C. Bland II", "active": true, "timeZone": "America/Chicago" }, "created": "2013-04-22T23:14:27.000+0000", "updated": "2013-04-22T23:14:27.000+0000" }, { "id": "248695", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "John, I'm not sure I'm following. Also, we couldn't use {{layout}} since that is already in use by the Titanium API.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-04-22T23:17:38.000+0000", "updated": "2013-04-22T23:17:38.000+0000" }, { "id": "248698", "author": { "name": "johncblandii", "key": "johncblandii", "displayName": "John C. Bland II", "active": true, "timeZone": "America/Chicago" }, "body": "No worries on 'layout'. Consider all of that pseudo.\r\n\r\nOne of the best templating engines I've seen is Rails and that's what that comment was loosely based on: http://guides.rubyonrails.org/layouts_and_rendering.html. Basically a way to fill out a custom layout/template then fill it in with views that implement it.\r\n\r\nIt is basically a preference from having dealt with this many days doing interactive and backend work. Extending can get hairy (hence the love of composition of inheritance now-a-days; another story though). :-D\r\n\r\nHere is another, fuller, example of implementing a template/layout.\r\n\r\nmytemplate.xml\r\n{code:xml}\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n{code}\r\n\r\nsomeview.xml\r\n{code:xml}\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n{code}", "updateAuthor": { "name": "johncblandii", "key": "johncblandii", "displayName": "John C. Bland II", "active": true, "timeZone": "America/Chicago" }, "created": "2013-04-22T23:30:23.000+0000", "updated": "2013-04-22T23:30:23.000+0000" }, { "id": "248722", "author": { "name": "mduitz", "key": "mduitz", "displayName": "Mitch Duitz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Can the also include views, such that if the is not defined the yield would be the default view?\r\n", "updateAuthor": { "name": "mduitz", "key": "mduitz", "displayName": "Mitch Duitz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-04-23T01:31:57.000+0000", "updated": "2013-04-23T01:31:57.000+0000" }, { "id": "248723", "author": { "name": "johncblandii", "key": "johncblandii", "displayName": "John C. Bland II", "active": true, "timeZone": "America/Chicago" }, "body": "Yep. would be anything not wrapped in a ContentFor.\r\n\r\n(thx for pointing that out)", "updateAuthor": { "name": "johncblandii", "key": "johncblandii", "displayName": "John C. Bland II", "active": true, "timeZone": "America/Chicago" }, "created": "2013-04-23T01:38:12.000+0000", "updated": "2013-04-23T01:38:12.000+0000" } ], "maxResults": 7, "total": 7, "startAt": 0 } } }