IbrahimHassan

ColllectionViewItem

Nov 11th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.66 KB | None | 0 0
  1. func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
  2.  
  3. if collectionView == myActionsCollectionView {
  4.  
  5. if taskList == nil || (taskList?.data?.count)! == 0
  6. {
  7. if indexPath.row == 0
  8. {
  9. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.wellComeCollectionViewCell, for: indexPath) as? WellComeCollectionViewCell else{
  10. return UICollectionViewCell()
  11. }
  12. return cell
  13. }
  14. else
  15. {
  16. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.familyOfficeCell, for: indexPath) as? FamilyOfficeCell else {
  17. return UICollectionViewCell()
  18. }
  19. cell.delegate = homeViewModel
  20. return cell
  21. }
  22.  
  23.  
  24. }
  25. else
  26. {
  27. if indexPath.row == 0
  28. {
  29. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.addTaskCell, for: indexPath) as? AddTaskCell else{
  30. return UICollectionViewCell()
  31. }
  32. return cell
  33. }
  34. else if indexPath.row == (taskList?.data?.count)! + 1
  35. {
  36. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.familyOfficeCell, for: indexPath) as? FamilyOfficeCell else {
  37. return UICollectionViewCell()
  38. }
  39. cell.delegate = homeViewModel
  40. return cell
  41.  
  42. }
  43. else
  44. {
  45.  
  46.  
  47. let data = taskList?.data![indexPath.row - 1]
  48.  
  49. if data?.type == "MY_TASKS" || data?.type == "MY_PENDING_TASKS"
  50. {
  51. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.myTasksCollectionViewCell, for: indexPath) as? MyTasksCollectionViewCell else{
  52. return UICollectionViewCell()
  53. }
  54. if data?.type == "MY_TASKS"
  55. {
  56. cell.lblTitle.text = "Present Tasks"
  57. cell.isPendingTask = false
  58. }
  59. else if data?.type == "MY_PENDING_TASKS"
  60. {
  61. cell.lblTitle.text = "Pending Tasks"
  62. cell.isPendingTask = true
  63. }
  64.  
  65. cell.initialization(tasksData: data!.data as! [TaskDetails] )
  66.  
  67. cell.viewAll = {[weak self] in
  68. let controller = R.storyboard.myActions.myActionsListVC()
  69. self?.pushOverTabBar(vc: controller!)
  70. }
  71. cell.selectedTask = {[weak self] task in
  72. let vc = R.storyboard.home.taskDetailsViewController()
  73. vc?.taskDetails = task
  74. vc?.delegate = self
  75. self?.pushOverTabBar(vc: vc!)
  76. }
  77. return cell
  78. }
  79. else if data?.type == "NEW_COMMITTEE" || data?.type == "NEW_SUB_COMMITTEE"
  80. {
  81. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.wellComeToCommiteCollectionViewCell, for: indexPath) as? WellComeToCommiteCollectionViewCell else{
  82. return UICollectionViewCell()
  83. }
  84.  
  85. cell.lblCommitteeName.text = data?.data?.first?.payload?.title ?? ""
  86.  
  87. if let tintColor = data?.data?.first?.payload?.categories?.getColor() {
  88. cell.set(color: tintColor)
  89. }
  90.  
  91. return cell
  92. } else if data?.type == "MEETING_DRAFT" {
  93. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.draftMeetingCell, for: indexPath) as? DraftMeetingCell else {
  94. return UICollectionViewCell()
  95. }
  96. cell.delegate = self
  97. if let data = data?.data {
  98. cell.set(taskData: data)
  99. }
  100. return cell
  101. } else if data?.type == "MEETING_INVITE" {
  102. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.meetingInviteCell, for: indexPath) as? MeetingInviteCell else {
  103. return UICollectionViewCell()
  104. }
  105. cell.contentView.addTap {
  106. if let dataId = data?.data?.first?._id {
  107. self.homeViewModel.setSeen(id: dataId, returnedValue: { (error) in
  108. if let err = error {
  109. self.showToast(controller: self, message: err, seconds: 1.5, color: UIColor.red)
  110. } else {
  111. if let meetingDetailId = data?.data?.first?.payload?._id {
  112. let vc = R.storyboard.meetingCreation.meetingDetailsViewController()
  113. vc?.meetingId = meetingDetailId
  114. self.navigationController?.pushViewController(vc!, animated: true)
  115. }
  116. }
  117. })
  118. }
  119. }
  120. cell.noView.addTap {
  121. if let dataId = data?.data?.first?.payload?._id {
  122. self.homeViewModel.updateMeetingStatus(dataId, "rejected", completionHandler: { (response, error) in
  123. if response != nil {
  124. if let id = data?.data?.first?._id {
  125. self.homeViewModel.setSeen(id: id, returnedValue: { (error) in
  126. if let err = error {
  127. self.showToast(controller: self, message: err, seconds: 1.5, color: UIColor.red)
  128. } else {
  129. self.homeViewModel.getTask()
  130. }
  131. })
  132. }
  133. }
  134. if let errorMsg = error {
  135. self.showToast(controller: self, message: errorMsg, seconds: 1.5, color: UIColor.red)
  136. }
  137. })
  138. }
  139. }
  140. cell.yesView.addTap {
  141. if let dataId = data?.data?.first?.payload?._id {
  142. self.homeViewModel.updateMeetingStatus(dataId, "accepted", completionHandler: { (response, error) in
  143. if response != nil {
  144. if let id = data?.data?.first?._id {
  145. self.homeViewModel.setSeen(id: id, returnedValue: { (error) in
  146. if let err = error {
  147. self.showToast(controller: self, message: err, seconds: 1.5, color: UIColor.red)
  148. } else {
  149. self.homeViewModel.getTask()
  150. }
  151. })
  152. }
  153. }
  154. if let errorMsg = error {
  155. self.showToast(controller: self, message: errorMsg, seconds: 1.5, color: UIColor.red)
  156. }
  157. })
  158. }
  159. }
  160. if let data = data?.data {
  161. cell.set(data: data)
  162. }
  163. return cell
  164. } else if data?.type == "MEETING_TODAY" {
  165. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.meetingsTodayCollectionViewCell, for: indexPath) as? MeetingsTodayCollectionViewCell else { return UICollectionViewCell() }
  166.  
  167. if let data = data?.data {
  168. cell.set(data: data)
  169. }
  170. return cell
  171. } else if data?.type == "MEETING_VENUE_CHANGED" {
  172. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.venueChangedCollectionViewCell, for: indexPath) as? VenueChangedCollectionViewCell else { return UICollectionViewCell() }
  173. if let data = data?.data {
  174. cell.set(data: data)
  175. }
  176. cell.contentView.addTap {
  177. if let dataId = data?.data?.first?._id {
  178. self.homeViewModel.setSeen(id: dataId, returnedValue: { (error) in
  179. if let err = error {
  180. self.showToast(controller: self, message: err, seconds: 1.5, color: UIColor.red)
  181. } else {
  182. if let meetingDetailId = data?.data?.first?.payload?._id {
  183. let vc = R.storyboard.meetingCreation.meetingDetailsViewController()
  184. vc?.meetingId = meetingDetailId
  185. self.navigationController?.pushViewController(vc!, animated: true)
  186. }
  187. }
  188. })
  189. }
  190. }
  191. return cell
  192. } else if data?.type == "MEETING_RESCHEDULE" {
  193. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.meetingRescheduledCollectionViewCell, for: indexPath) as? MeetingRescheduledCollectionViewCell else {
  194. return UICollectionViewCell()
  195. }
  196. cell.contentView.addTap {
  197. if let dataId = data?.data?.first?._id {
  198. self.homeViewModel.setSeen(id: dataId, returnedValue: { (error) in
  199. if let err = error {
  200. self.showToast(controller: self, message: err, seconds: 1.5, color: UIColor.red)
  201. } else {
  202. if let meetingDetailId = data?.data?.first?.payload?._id {
  203. let vc = R.storyboard.meetingCreation.meetingDetailsViewController()
  204. vc?.meetingId = meetingDetailId
  205. self.navigationController?.pushViewController(vc!, animated: true)
  206. }
  207. }
  208. })
  209. }
  210. }
  211. if let data = data?.data {
  212. cell.set(data: data)
  213. }
  214. return cell
  215. } else if data?.type == "MEETING_DRAFT_AGENDA_PUBLISHED" {
  216. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.draftAgendaPublishedCollectionViewCell, for: indexPath) as? DraftAgendaPublishedCollectionViewCell else { return UICollectionViewCell() }
  217. if let data = data?.data {
  218. cell.set(data: data)
  219. }
  220. cell.contentView.addTap {
  221. if let dataId = data?.data?.first?._id {
  222. self.homeViewModel.setSeen(id: dataId, returnedValue: { (error) in
  223. if let err = error {
  224. self.showToast(controller: self, message: err, seconds: 1.5, color: UIColor.red)
  225. } else {
  226. if let meetingDetailId = data?.data?.first?.payload?._id {
  227. let vc = R.storyboard.meetingCreation.meetingDetailsViewController()
  228. vc?.meetingId = meetingDetailId
  229. self.navigationController?.pushViewController(vc!, animated: true)
  230. }
  231. }
  232. })
  233. }
  234. }
  235. return cell
  236. } else {
  237. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.wellComeToCommiteCollectionViewCell, for: indexPath) as? WellComeToCommiteCollectionViewCell else{
  238. return UICollectionViewCell()
  239. }
  240. //cell.lblCommitteeName.text = data?.com_data?.title
  241.  
  242. // if let tintColor = data?.com_data?.categories?.getColor() {
  243. // cell.set(color: tintColor)
  244. // }
  245. // // }
  246. // // catch{
  247. // // }
  248. return cell
  249. }
  250.  
  251. }
  252.  
  253. }
  254. }
  255. else
  256. {
  257. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.committeeCollectionViewCell, for: indexPath) as? CommitteeCollectionViewCell else{
  258.  
  259. return UICollectionViewCell()
  260. }
  261. cell.createNewMeeting = {[weak self] in
  262.  
  263. let vc = R.storyboard.meetingCreation.createMeetingViewController()
  264. vc!.committeeData = self!.committeeList?.data![indexPath.row]
  265. self?.pushOverTabBar(vc: vc!)
  266.  
  267. }
  268. cell.initialization(committeeList?.data![indexPath.row])
  269. return cell
  270. }
  271. return UICollectionViewCell()
  272. }
Add Comment
Please, Sign In to add comment