{ "id": "117352", "key": "ALOY-752", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "11113", "key": "ALOY", "name": "Alloy", "projectCategory": { "id": "10400", "description": "Tools for developing applications", "name": "Tooling" } }, "fixVersions": [ { "id": "15758", "description": "Alloy 1.4.0", "name": "Alloy 1.4.0", "archived": false, "released": true, "releaseDate": "2014-07-17" }, { "id": "15904", "description": "2014 Sprint 08", "name": "2014 Sprint 08", "archived": true, "released": true, "releaseDate": "2014-04-24" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2014-04-15T19:03:19.000+0000", "created": "2013-07-18T20:57:01.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "qe-testadded" ], "versions": [], "issuelinks": [ { "id": "42459", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "137601", "key": "ALOY-1154", "fields": { "summary": "Consider deep merging only font properties, not gradients, etc.", "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" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "updated": "2014-10-28T15:48:37.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "13603", "name": "Styling", "description": "TSS, dynamic styling, styling API" } ], "description": "When trying to use multiple classes that manipulate the font on say a Label, the font property, which is an object itself is not properly mixed in. Thus one class overwrites the other object as a whole.\r\n\r\nSay you have the following example: \r\n\r\nindex.xml\r\n\r\n\r\n \r\n\r\n\r\nindex.tss\r\n\r\n\".h1\":{\r\n\tfont:{\r\n\t\tfontSize: \"48dp\"\r\n\t}\r\n},\r\n\".bold\":{\r\n\tfont: {\r\n\t\tfontWeight: \"bold\"\r\n\t}\r\n}\r\n\r\nThe expectation is that this should generate a label with a fontsize of 48 and in bold. \r\n\r\nThe actual result is that it will produce a bold label - but not at the correct size", "attachment": [ { "id": "40904", "filename": "Screen Shot 2013-07-18 at 3.56.02 PM.png", "author": { "name": "bgrantges@appcelerator.com", "key": "bgrantges", "displayName": "Bert Grantges", "active": false, "timeZone": "America/Chicago" }, "created": "2013-07-18T20:57:01.000+0000", "size": 424950, "mimeType": "image/png" } ], "flagged": false, "summary": "font property is not properly being mixed in when using multiple classes", "creator": { "name": "bgrantges@appcelerator.com", "key": "bgrantges", "displayName": "Bert Grantges", "active": false, "timeZone": "America/Chicago" }, "subtasks": [], "reporter": { "name": "bgrantges@appcelerator.com", "key": "bgrantges", "displayName": "Bert Grantges", "active": false, "timeZone": "America/Chicago" }, "environment": null, "comment": { "comments": [ { "id": "262369", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Need to spend some time investigating if font should just get a specific fix, or deep merging of styles should be supported (always a dicey proposition in JS). ", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-18T21:20:59.000+0000", "updated": "2013-07-18T21:20:59.000+0000" }, { "id": "263699", "author": { "name": "bgrantges@appcelerator.com", "key": "bgrantges", "displayName": "Bert Grantges", "active": false, "timeZone": "America/Chicago" }, "body": "Tony - i see that this was assigned to a sprint, what are you thinking about deep merging? One off for font, or extending to other styles?", "updateAuthor": { "name": "bgrantges@appcelerator.com", "key": "bgrantges", "displayName": "Bert Grantges", "active": false, "timeZone": "America/Chicago" }, "created": "2013-07-29T18:56:46.000+0000", "updated": "2013-07-29T18:56:46.000+0000" }, { "id": "263704", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~bgrantges] deep merging would allow me to never encounter this again, and cover all other possible objects, but I don't think I'm going to do that because of the inherent risks with attempting to do that in JS. I think I'll just more intelligently merge {{font}} where possible.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-29T19:06:15.000+0000", "updated": "2013-07-29T19:06:15.000+0000" }, { "id": "280350", "author": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "body": "This will be a massive time saver and allow the proper use of the font object. It should be possible to use a mix and match approach here, the lack of this means much more complicated rules and styles.\r\n\r\nI understand why this is such a pain - a historical feature that appears to have been stuck in the - with font being the only real object property.\r\n\r\nMay be an option would be to split them out in tss files only, so being able to specify as follows;\r\n\r\n\".h1\": {\r\n font: {\r\n fontSize: \"48dp\"\r\n }\r\n},\r\n\".bold\": {\r\n fontWeight: \"bold\"\r\n}\r\n\r\nThis would combine as;\r\n\r\n font: {\r\n fontSize: \"48dp\",\r\n fontWeight: \"bold\"\r\n }\r\n\r\n\r\nThe normal font object rules still apply and overwrite each other, but the use of a root level modifier property simply overrides that option. This would mean the preprocessor could perform a much simpler job without having to work through the object logic.\r\n\r\nAgain - this would be ONLY an Alloy tss feature, everywhere else this stays the same. This way it works more like the platform rule in its differentiation.\r\n\r\nJust a thought.", "updateAuthor": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "created": "2013-11-20T17:52:10.000+0000", "updated": "2013-11-20T17:52:10.000+0000" }, { "id": "297267", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "PR https://github.com/appcelerator/alloy/pull/344\n\nFunctional test\n\n1. Build the included test app /test/apps/testing/ALOY-752\n2. The label should be large (30pt), bold, and in the Hoefler font, as specified by a mix of component, class, and ID selectors.", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-03-14T17:23:04.000+0000", "updated": "2014-03-14T17:23:04.000+0000" }, { "id": "297308", "author": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "body": "Still holding out for this one being resolved as the current situation makes it impossible to provide text styles in any simple manageable way.", "updateAuthor": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "created": "2014-03-14T18:47:18.000+0000", "updated": "2014-03-14T18:47:18.000+0000" }, { "id": "301028", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "PR tested and merged", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-04-15T19:03:19.000+0000", "updated": "2014-04-15T19:03:19.000+0000" }, { "id": "304131", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix. We see the label as expected & specified in the index.tss file.\r\n\r\nClosing.\r\n\r\nEnvironment:\r\nAppc Studio : 3.3.0.201405011408\r\nTi SDK : 3.3.0.v20140508101423\r\nMac OSX : 10.8.5\r\nAlloy : 1.4.0-dev\r\nCLI - 3.3.0-dev\r\nMobileweb\r\nNexus 5 - android 4.4.2\r\nIphone 5 - iOS 6.1.3", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-05-09T00:21:06.000+0000", "updated": "2014-05-09T00:21:06.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }