Created
July 27, 2017 07:31
-
-
Save zaifz/2eba363432f56629a017d04ce8e973a7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func displayAssignMents(){ | |
//createTodoBtn.isHidden = true | |
// check whether you are in DayView Or Two Week View | |
if isDayView { | |
dayCollectionView.isHidden = false | |
dayCollectionView.reloadData() | |
_______ | |
if let theCount = dayScheduleModel?.allSchedules().count, theCount > 0 { | |
dayCollectionView.scrollToItem(at: IndexPath(item: theCount * 1000 / 2, section: 0), at: .centeredHorizontally, animated: false) | |
} | |
_______ | |
tableView.isHidden = true | |
todoEmptyInfoView.isHidden = true // ToDos Table | |
} else { | |
if(twoWeekCollectionView != nil){ | |
twoWeekCollectionView.reloadData() | |
twoWeekCollectionView.isHidden = false | |
twoWeeksTableView.isHidden = true // ToDos Table | |
} | |
} | |
} | |
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int{ | |
var itemsCount = 0 | |
selectedTab = 1 | |
itemsCount = dayScheduleModel?.allSchedules().count ?? 0 | |
// switch selectedTab { | |
// case 0: // AssignMents | |
// itemsCount = dayScheduleModel != nil ? (dayScheduleModel?.assignments().count)! : 0 | |
// break | |
// case 1: // EVENTS | |
// itemsCount = dayScheduleModel != nil ? (dayScheduleModel?.events().count)! : 0 | |
// break | |
// default: | |
// break | |
// } | |
return itemsCount * 1000 | |
} | |
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { | |
switch selectedTab { | |
case 0: | |
identifier = "assignmentCollectionVewCell" | |
break | |
case 1: | |
identifier = "eventCollectionVewCell" | |
break | |
default:break | |
} | |
let arrayCount = dayScheduleModel?.allSchedules().count ?? 0 | |
let cell:UICollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: identifier, for: indexPath) | |
if cell.isKind(of: AssignmentCollectionViewCell.self){ | |
let assignmentCell = (cell as? AssignmentCollectionViewCell) | |
// let assignMent = (dayScheduleModel?.assignments()[indexPath.row])! as Schedule | |
if indexPath.row % arrayCount < dayScheduleModel?.assignments().count { | |
let assignMent = (dayScheduleModel?.allSchedules()[indexPath.row % arrayCount])! as Schedule | |
// set all the values | |
assignmentCell!.assignmentCardView.color = getColorForType(assignMent.eventType, circle: assignMent.planStatus!)[0] | |
if !self.anyOtherAssnmtInDoneState { | |
assignmentCell!.assignmentCardView.timeBtn.setImage(UIImage(named:""), for: UIControlState()) | |
assignmentCell!.assignmentCardView.timeBtn.setTitle("", for: UIControlState()) | |
} | |
assignmentCell!.assignmentCardView.name.text = "Assignment" | |
assignmentCell?.assignmentCardView.name.textColor = UIColor.gray | |
assignmentCell?.assignmentCardView.coursename.text = assignMent.eventName | |
let date = getDateFromString(assignMent.date, format: "dd/MM/yyyy") | |
assignmentCell?.assignmentCardView.date.text = getStringFromDate(date!, format: "dd MMM,yyyy") | |
let due = daysBetweenDates(getDateFromString(getStringFromDate(Date(),format:"dd/MM/yyyy"),format:"dd/MM/yyyy")!, endDate: getDateFromString(assignMent.date, format: "dd/MM/yyyy")!) | |
if (due==0) { | |
assignmentCell?.assignmentCardView.dueLabel.text = "Due Today" | |
} else { | |
assignmentCell?.assignmentCardView.dueLabel.text = "Due in \(String(due)) days" | |
} | |
assignmentCell?.assignmentCardView.overview.text = assignMent.description | |
assignmentCell?.assignmentCardView.overview.textColor = UIColor.gray | |
assignmentCell?.assignmentCardView.timeBtn.tag = indexPath.row | |
assignmentCell?.assignmentCardView.timeBtn.addTarget(self, action: #selector(SmartSchedularViewController.findFreeSlotsAsnmt(_:)), for: .touchUpInside) | |
assignmentCell?.assignmentCardView.studyGroupBtn.tag = indexPath.row | |
assignmentCell?.assignmentCardView.studyGroupBtn.addTarget(self, action: #selector(SmartSchedularViewController.displayStudyGroups(_:)), for: .touchUpInside) | |
} | |
} else if cell.isKind(of: EventCollectionViewCell.self) { | |
if indexPath.row % arrayCount >= dayScheduleModel?.assignments().count ?? 0 && indexPath.row % arrayCount < dayScheduleModel?.events().count { | |
let eventCell = (cell as? EventCollectionViewCell) | |
// let event = (dayScheduleModel?.events()[indexPath.row])! as Schedule | |
let event = (dayScheduleModel?.allSchedules()[indexPath.row % arrayCount])! as Schedule | |
// print(indexPath.row, event.eventType,getColorForType(event.eventType, circle: 0)[0]) | |
// set all the values | |
eventCell?.eventCardView.color = getColorForType(event.eventType, circle: event.planStatus!)[0] | |
eventCell?.eventCardView.layoutSubviews() | |
eventCell!.eventCardView.coursename.text = event.eventName | |
if(ScheduleType.GROUP_EVENT.rawValue == event.eventType){ | |
eventCell!.eventCardView.overview.text = "" | |
}else{ | |
eventCell!.eventCardView.overview.text = event.description | |
} | |
eventCell?.eventCardView.timeBtn.tag = indexPath.row | |
eventCell?.eventCardView.timeBtn.addTarget(self, action: #selector(SmartSchedularViewController.showCoursesButtonAction(_:)), for: .touchUpInside) | |
eventCell?.eventCardView.timeBtn.isHidden = true | |
// Set Event Name | |
switch event.eventType { | |
case ScheduleType.CLASS.rawValue: | |
eventCell?.setCardText("Class") | |
eventCell?.eventCardView.timeBtn.isHidden = false | |
break | |
case ScheduleType.NATIVEEVENT.rawValue: | |
eventCell?.setCardText("Calendar") | |
break | |
case ScheduleType.GROUP_EVENT.rawValue: | |
eventCell?.setCardText("Group Event") | |
break | |
case ScheduleType.EVENT.rawValue: | |
eventCell?.setCardText("Suggested Event") | |
break | |
case ScheduleType.ASSIGNMENT_EVENT.rawValue: | |
eventCell?.setCardText("Assignment Event") | |
break | |
case ScheduleType.LAB.rawValue: | |
eventCell?.setCardText("Lab") | |
break | |
case ScheduleType.CRC_EVENT.rawValue: | |
eventCell?.setCardText("Suggested Event") | |
break | |
default: | |
eventCell?.setCardText(event.eventType) | |
break | |
} | |
if event.startHour == 0 && event.startMinit == 0 && event.endHour == 0 && event.endMinit == 0 { | |
if event.eventType == ScheduleType.CLASS.rawValue { | |
eventCell?.eventCardView.date.text = "Set Time for Course" | |
} | |
} else { | |
eventCell?.eventCardView.date.text = "\(convert24HrTo12Hr(event.startTime)) - \(convert24HrTo12Hr(event.endTime))" | |
} | |
} | |
} | |
return cell | |
} | |
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | |
switch selectedTab { | |
case 0: | |
identifier = "assignmentCollectionVewCell" | |
break | |
case 1: | |
identifier = "eventCollectionVewCell" | |
break | |
default:break | |
} | |
let arrayCount = dayScheduleModel?.allSchedules().count ?? 0 | |
if let _ = collectionView.dequeueReusableCell(withReuseIdentifier: identifier, for: indexPath) as? AssignmentCollectionViewCell { | |
// let assignMent = (dayScheduleModel?.assignments()[indexPath.row])! as Schedule | |
if indexPath.row % arrayCount < dayScheduleModel?.assignments().count { | |
let assignMent = (dayScheduleModel?.allSchedules()[indexPath.row % arrayCount])! as Schedule | |
let assignmentController = AssignmentCardDetailsController.instantiateFromAppStoryBoard(appStoryBoard: .smartScheduler) | |
assignmentController.assignMent = assignMent | |
assignmentController.smartSchedularController = self | |
assignmentController.index = indexPath.row | |
assignmentController.modalTransitionStyle = .coverVertical | |
assignmentController.modalPresentationStyle = UIModalPresentationStyle.overFullScreen | |
self.present(assignmentController, animated: true, completion: nil) | |
} | |
} else if let _ = collectionView.dequeueReusableCell(withReuseIdentifier: identifier, for: indexPath) as? EventCollectionViewCell{ | |
if indexPath.row % arrayCount >= dayScheduleModel?.assignments().count ?? 0 && indexPath.row % arrayCount < dayScheduleModel?.events().count { | |
// let event = (dayScheduleModel?.events()[indexPath.row])! as Schedule | |
let event = (dayScheduleModel?.allSchedules()[indexPath.row % arrayCount])! as Schedule | |
let eventController = EventCardDetailsController.instantiateFromAppStoryBoard(appStoryBoard: .smartScheduler) | |
eventController.event = event | |
eventController.smartSchedularController = self | |
eventController.modalPresentationStyle = UIModalPresentationStyle.overFullScreen | |
self.present(eventController, animated: true, completion: nil) | |
} | |
} | |
} | |
____________________________ | |
____________________________ | |
func displaySelectedSchedule(_ eventType:String,eventId:Int){ | |
// toggleTabs(getTabNoFromEventType(eventType)) | |
for s in 0..<dayCollectionView.numberOfSections { | |
for i in 0..<dayCollectionView.numberOfItems(inSection: s) { | |
let indexPath = IndexPath(item: i, section: s) | |
switch eventType { | |
case ScheduleType.ASSIGNMENT.rawValue,ScheduleType.GROUP_ASSIGNMENT.rawValue: | |
if indexPath.row < dayScheduleModel?.assignments().count { | |
let assignment = (dayScheduleModel?.allSchedules()[i])! as Schedule | |
// let assignment = (dayScheduleModel?.assignments()[i])! as Schedule | |
if assignment.eventId == eventId { | |
dayCollectionView.selectItem(at: indexPath, animated: true, scrollPosition: UICollectionViewScrollPosition.centeredHorizontally) | |
} | |
} | |
break | |
case ScheduleType.CLASS.rawValue,ScheduleType.ASSIGNMENT_EVENT.rawValue,ScheduleType.EVENT.rawValue,ScheduleType.NATIVEEVENT.rawValue,ScheduleType.GROUP_EVENT.rawValue,ScheduleType.LAB.rawValue,ScheduleType.CRC_EVENT.rawValue: | |
if indexPath.row >= dayScheduleModel?.assignments().count ?? 0 && indexPath.row < dayScheduleModel?.events().count { | |
let event = (dayScheduleModel?.allSchedules()[i])! as Schedule | |
// let assignment = (dayScheduleModel?.events()[i])! as Schedule | |
if event.eventId == eventId{ | |
dayCollectionView.selectItem(at: indexPath, animated: true, scrollPosition: UICollectionViewScrollPosition.centeredHorizontally) | |
} | |
} | |
break | |
case ScheduleType.OVERLAP.rawValue: | |
break | |
default: | |
break | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment