{ "id": "104491", "key": "TIMOB-11683", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "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": "14162", "description": "Release 3.1.0", "name": "Release 3.1.0", "archived": true, "released": true, "releaseDate": "2013-04-16" }, { "id": "14621", "description": "2012 Sprint 23 API", "name": "2012 Sprint 23 API", "archived": true, "released": true, "releaseDate": "2012-11-19" }, { "id": "14623", "description": "2012 Sprint 23 JS", "name": "2012 Sprint 23", "archived": true, "released": true, "releaseDate": "2012-11-19" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-11-20T18:00:14.000+0000", "created": "2012-11-07T01:38:22.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "api", "module_tableview", "parity", "qe-testadded" ], "versions": [ { "id": "14137", "description": "Release 2.1.3", "name": "Release 2.1.3", "archived": true, "released": true, "releaseDate": "2012-10-03" } ], "issuelinks": [ { "id": "22575", "type": { "id": "10001", "name": "Cloners", "inward": "is cloned into", "outward": "is cloned from" }, "outwardIssue": { "id": "103565", "key": "TIMOB-11523", "fields": { "summary": "Android: TableView - delete row cannot delete a row without giving it a number, but iOS can", "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": "High", "id": "2" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2014-06-19T12:43:51.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": "Steps To Reproduce:\r\n1. Run test code below\r\n{code}\r\nTi.UI.backgroundColor = 'white';\r\nvar win = Ti.UI.createWindow();\r\n \r\nvar sectionFruit = Ti.UI.createTableViewSection({ headerTitle: 'Fruit' });\r\nsectionFruit.add(Ti.UI.createTableViewRow({ title: 'Apples' }));\r\nsectionFruit.add(Ti.UI.createTableViewRow({ title: 'Bananas' }));\r\nsectionFruit.addEventListener(\"click\", function(){\r\n Ti.API.info(\"*************************** Clicked: \" + sectionFruit.headerTitle);\r\n});\r\n \r\nvar sectionVeg = Ti.UI.createTableViewSection({ headerTitle: 'Vegetables' });\r\nsectionVeg.add(Ti.UI.createTableViewRow({ title: 'Carrots' }));\r\nsectionVeg.add(Ti.UI.createTableViewRow({ title: 'Potatoes' }));\r\n \r\nvar sectionFish = Ti.UI.createTableViewSection({ headerTitle: 'Fish' });\r\nsectionFish.add(Ti.UI.createTableViewRow({ title: 'Cod' }));\r\nsectionFish.add(Ti.UI.createTableViewRow({ title: 'Haddock' }));\r\nsectionFish.addEventListener(\"click\", function(){\r\n Ti.API.info(\"*************************** Clicked: \" + sectionFish.headerTitle);\r\n});\r\n \r\nvar table = Ti.UI.createTableView({\r\n data: [sectionFruit, sectionVeg, sectionFish]\r\n});\r\ntable.addEventListener(\"click\", function(){\r\n Ti.API.info(\"*************************** Clicked: table\");\r\n});\r\n \r\nwin.add(table);\r\nwin.open();\r\n \r\nvar currentRows = [];\r\n \r\nvar b1 = Ti.UI.createButton({\r\n bottom: 10,\r\n title: \"remove Blue Row \" + currentRows.length\r\n});\r\nb1.addEventListener(\"click\", function(){\r\n var r = currentRows.pop();\r\n table.deleteRow(r);\r\n if (currentRows.length >= 1) {\r\n b1.title = \"remove Blue Row \" + (currentRows.length-1);\r\n }\r\n});\r\n \r\nvar b2 = Ti.UI.createButton({\r\n bottom: 100,\r\n title: \"insert Blue Row after index 0\"\r\n});\r\nb2.addEventListener(\"click\", function(){\r\n var r = Ti.UI.createTableViewRow({\r\n height:80,\r\n title:\"Blue Row \" + currentRows.length,\r\n color:'blue'\r\n });\r\n table.insertRowAfter(0, r);\r\n b1.title = \"remove Blue Row \" + currentRows.length;\r\n currentRows.push(r);\r\n \r\n r.addEventListener(\"click\", function(){\r\n Ti.API.info(\"*************************** Clicked: \" + r.title);\r\n });\r\n});\r\n \r\nvar b3 = Ti.UI.createButton({\r\n bottom: 190,\r\n title: \"append Blue Row\"\r\n});\r\nb3.addEventListener(\"click\", function(){\r\n var r = Ti.UI.createTableViewRow({\r\n height:80,\r\n title:\"Blue Row \" + currentRows.length,\r\n color:'blue'\r\n });\r\n table.appendRow(r);\r\n b1.title = \"remove Blue Row \" + currentRows.length;\r\n currentRows.push(r);\r\n \r\n r.addEventListener(\"click\", function(){\r\n Ti.API.info(\"*************************** Clicked: \" + r.title);\r\n });\r\n});\r\n \r\nwin.add(b1);\r\nwin.add(b2);\r\nwin.add(b3);\r\n{code}\r\n2. Click the buttons \"append\" or \"insert\" to add Blue Row to the table and then click the button \"remove\". \r\nExpected:\r\nThe Blue Row is removed.\r\nActual:\r\nThe first row is removed.", "attachment": [], "flagged": false, "summary": "iOS: TableView - implement deleteRow(TableViewRowProxy)", "creator": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "226541", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Marking this as a new feature since iOS has never supported deleting row by row proxy. No idea how QE got the idea.", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2012-11-07T18:16:46.000+0000", "updated": "2012-11-07T18:16:46.000+0000" }, { "id": "226613", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/3388", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-07T22:03:46.000+0000", "updated": "2012-11-07T22:03:46.000+0000" }, { "id": "240924", "author": { "name": "sbhadauria", "key": "sbhadauria", "displayName": "Shyam Bhadauria", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Its working fine on iOS as well as android.\r\nEnvironment used for verification -\r\nTitanium SDK: 3.1.0.v20130305190758\r\nTitanium  Studio:3.0.2.201302141201\r\nDevice: iOS simulator 6.0 (and Samsung GALAXY Note Android 2.3.6) ", "updateAuthor": { "name": "sbhadauria", "key": "sbhadauria", "displayName": "Shyam Bhadauria", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-06T11:11:51.000+0000", "updated": "2013-03-06T11:11:51.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }