{ "id": "60854", "key": "TIMOB-222", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "11258", "description": "Holding Pen for Triaged Issues", "name": "Backlog", "archived": false, "released": false } ], "resolution": { "id": "7", "description": "", "name": "Invalid" }, "resolutiondate": "2011-04-15T02:25:39.000+0000", "created": "2011-04-15T02:25:38.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "feature", "ios", "iphone" ], "versions": [], "issuelinks": [ { "id": "14062", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "60855", "key": "TIMOB-223", "fields": { "summary": "Android: Alphabetically filtering support for table views", "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" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-03-02T18:15:55.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": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "{html}

Add ability to do alphabetical filtering on table view data.

{html}", "attachment": [], "flagged": false, "summary": "Alphabetically filtering support for table views", "creator": { "name": "nwright", "key": "nwright", "displayName": "Nolan Wright", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "nwright", "key": "nwright", "displayName": "Nolan Wright", "active": false, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "122956", "author": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

It would be possible to do sorting based on a supplied key(s)\n(IE, a tableView with {sortBy:['lastName','firstName']} would sort\nall cells based on their contents, sorted by last name, and where\nlast names match, sort by first names)

\n

However, there is some issues that will need resolving.

\n

For TableView, the indexes matter, especially for inserting and\ndeleting, and sorting this would destroy the index order.

\n

For TableView, the javascript data and native data needs to\nmatch, especially if we are to care about indexes and the like.\nThis means either doing the sorting on the javascript side, or\ntransferring the sorted data from native back into javascript. Both\nof these are expensive.

\n

For TableView, the headers are part of the data cell, and the\norder of the data cells is important for the header order.

\n

Possible solutions:

\n

1) Provide javascript-side functions that do the sorting and\nheader generation, essentially mooting differences.

\n

2) Subclass akin to grouped view, called SortedTableView.\nSetData is order agnostic (Since it's set by the sorting algorithm)\nand inserts have no index. Delete is done by passing a matching\nfilter to delete (Ie, all data cells whose key-value pairs match\nthe ones provided are deleted). Headers on data cells are ignored\nand are generated based on the letter of the first sorting key.

{html}", "updateAuthor": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:25:39.000+0000", "updated": "2011-04-15T02:25:39.000+0000" }, { "id": "122957", "author": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Changes in codebase have mooted this since then.

{html}", "updateAuthor": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:25:39.000+0000", "updated": "2011-04-15T02:25:39.000+0000" }, { "id": "408329", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing as invalid.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-02T18:15:51.000+0000", "updated": "2017-03-02T18:15:51.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }