diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate index 606fe83..6064408 100644 Binary files a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate and b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 19781a5..4703507 100644 --- a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -10,11 +10,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/ItemTableViewController.swift" - timestampString = "504912890.797569" + timestampString = "505143089.818284" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "281" - endingLineNumber = "281" + startingLineNumber = "396" + endingLineNumber = "396" landmarkName = "tableView(_:cellForRowAtIndexPath:)" landmarkType = "5"> @@ -42,11 +42,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/ItemTableViewController.swift" - timestampString = "504910196.477146" + timestampString = "505143089.818284" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "92" - endingLineNumber = "92" + startingLineNumber = "106" + endingLineNumber = "106" landmarkName = "activeHistorSegSwitch(_:)" landmarkType = "5"> @@ -280,7 +280,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/ExternalWebViewController.swift" - timestampString = "505105059.906101" + timestampString = "505143090.189899" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "32" @@ -295,7 +295,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/ExternalWebViewController.swift" - timestampString = "505105059.906318" + timestampString = "505143090.190043" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "32" @@ -310,7 +310,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/ExternalWebViewController.swift" - timestampString = "505105059.906451" + timestampString = "505143090.190152" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "32" @@ -325,7 +325,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/ExternalWebViewController.swift" - timestampString = "505105059.906581" + timestampString = "505143090.190242" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "32" @@ -358,11 +358,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/ItemTableViewController.swift" - timestampString = "504912890.797569" + timestampString = "505143089.818284" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "224" - endingLineNumber = "224" + startingLineNumber = "253" + endingLineNumber = "253" landmarkName = "numberOfSectionsInTableView(_:)" landmarkType = "5"> @@ -374,11 +374,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/ItemTableViewController.swift" - timestampString = "504912890.797569" + timestampString = "505143089.818284" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "409" - endingLineNumber = "409" + startingLineNumber = "493" + endingLineNumber = "493" landmarkName = "tableView(_:didSelectRowAtIndexPath:)" landmarkType = "5"> @@ -390,11 +390,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/ItemTableViewController.swift" - timestampString = "504912890.797569" + timestampString = "505143089.818284" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "410" - endingLineNumber = "410" + startingLineNumber = "494" + endingLineNumber = "494" landmarkName = "tableView(_:didSelectRowAtIndexPath:)" landmarkType = "5"> @@ -406,11 +406,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/HomeViewController.swift" - timestampString = "504968542.456631" + timestampString = "505142560.542505" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "193" - endingLineNumber = "193" + startingLineNumber = "212" + endingLineNumber = "212" landmarkName = "viewDidLoad()" landmarkType = "5"> @@ -454,11 +454,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/HomeViewController.swift" - timestampString = "504968909.840568" + timestampString = "505142560.542505" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "194" - endingLineNumber = "194" + startingLineNumber = "214" + endingLineNumber = "214" landmarkName = "viewDidLoad()" landmarkType = "5"> @@ -502,11 +502,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/HomeViewController.swift" - timestampString = "504968963.93448" + timestampString = "505142560.542505" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "196" - endingLineNumber = "196" + startingLineNumber = "216" + endingLineNumber = "216" landmarkName = "viewDidLoad()" landmarkType = "5"> @@ -518,11 +518,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/HomeViewController.swift" - timestampString = "505104273.568652" + timestampString = "505142560.542505" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "146" - endingLineNumber = "146" + startingLineNumber = "149" + endingLineNumber = "149" landmarkName = "viewDidLoad()" landmarkType = "5"> @@ -533,13 +533,29 @@ shouldBeEnabled = "No" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Vendoo/HomeViewController.swift" - timestampString = "505104913.804045" + filePath = "Vendoo/ItemTableViewController.swift" + timestampString = "505143089.818284" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "148" - endingLineNumber = "148" - landmarkName = "viewDidLoad()" + startingLineNumber = "107" + endingLineNumber = "107" + landmarkName = "activeHistorSegSwitch(_:)" + landmarkType = "5"> + + + + diff --git a/Vendoo/HomeViewController.swift b/Vendoo/HomeViewController.swift index 32619c3..0a476f7 100644 --- a/Vendoo/HomeViewController.swift +++ b/Vendoo/HomeViewController.swift @@ -7,6 +7,7 @@ // import UIKit +import Foundation /// This class is resonsible for retrieving all listing information for the current user. /// Acts as the tab bar controller for entire application. @@ -24,6 +25,7 @@ class HomeViewController: UITabBarController { var userListings: [Listing] = [] var endedListings: [Listing] = [] var soldListings: [Listing] = [] + var draftListings: [Listing] = [] //notification manager variables var notificationsManager = ServiceNotificationManager() @@ -144,18 +146,34 @@ class HomeViewController: UITabBarController { //if no Listing status found then the listing is either active or a draft if listingInfo!["listingStatus"] == nil { - self.userListings.append( - Listing( - itemTitle: (listingInfo!["listingTitle"] as? String)!, - itemCategory: listingInfo!["listingCategory"] as? String, - itemQuantity: (listingInfo!["listingQuantity"] as? String)!, - itemPrice: listingInfo!["listingPrice"] as? String, - itemDescription: listingInfo!["listingDescription"] as? String, - itemImages: listingImages, - isDraftListing: (listingInfo!["isListingDraft"] as? Bool)!, - itemKey: key, - networksSellingOn: (listingInfo!["networks"] as? Dictionary)! - )) + if(((listingInfo!["isListingDraft"] as! Bool))){ + self.draftListings.append( + Listing( + itemTitle: (listingInfo!["listingTitle"] as? String)!, + itemCategory: listingInfo!["listingCategory"] as? String, + itemQuantity: (listingInfo!["listingQuantity"] as? String)!, + itemPrice: listingInfo!["listingPrice"] as? String, + itemDescription: listingInfo!["listingDescription"] as? String, + itemImages: listingImages, + isDraftListing: (listingInfo!["isListingDraft"] as? Bool)!, + itemKey: key, + networksSellingOn: (listingInfo!["networks"] as? Dictionary)! + )) + }else{ + self.userListings.append( + Listing( + itemTitle: (listingInfo!["listingTitle"] as? String)!, + itemCategory: listingInfo!["listingCategory"] as? String, + itemQuantity: (listingInfo!["listingQuantity"] as? String)!, + itemPrice: listingInfo!["listingPrice"] as? String, + itemDescription: listingInfo!["listingDescription"] as? String, + itemImages: listingImages, + isDraftListing: (listingInfo!["isListingDraft"] as? Bool)!, + itemKey: key, + networksSellingOn: (listingInfo!["networks"] as? Dictionary)! + )) + } + } //create ended Listing objects else if listingInfo!["listingStatus"] as? String == "Ended" { @@ -189,10 +207,12 @@ class HomeViewController: UITabBarController { print(notificationStartTracker) //once all listings have been retrieved and processed start retrieving possible notifications + if(notificationStartTracker == listingDict?.count){ - self.userListings.sortInPlace({$0.title > $1.title}) - self.endedListings.sortInPlace({$0.title > $1.title}) - self.soldListings.sortInPlace({$0.title > $1.title}) + self.userListings.sortInPlace({$0.title.lowercaseString < $1.title.lowercaseString}) + self.draftListings.sortInPlace({$0.title.lowercaseString < $1.title.lowercaseString}) + self.endedListings.sortInPlace({$0.title.lowercaseString < $1.title.lowercaseString}) + self.soldListings.sortInPlace({$0.title.lowercaseString < $1.title.lowercaseString}) NSNotificationCenter.defaultCenter().postNotificationName("finished_fetching_listings", object: nil) self.notificationsManager.setListings(self.userListings) self.notificationsManager.startServicePolling() diff --git a/Vendoo/ItemTableViewController.swift b/Vendoo/ItemTableViewController.swift index 56ed247..6528f79 100644 --- a/Vendoo/ItemTableViewController.swift +++ b/Vendoo/ItemTableViewController.swift @@ -21,7 +21,7 @@ class ItemTableViewController: UIViewController { @IBOutlet weak var menuButton: UIBarButtonItem! - @IBOutlet weak var historyFilter: UISegmentedControl! + @IBOutlet weak var historyCurrentlyFilter: UISegmentedControl! var loadingView: UIView! @@ -40,6 +40,19 @@ class ItemTableViewController: UIViewController { //set delegates self.itemTable.dataSource = self self.itemTable.delegate = self + + //History Segement + if(self.tableSegmentController.selectedSegmentIndex == 1){ + self.historyCurrentlyFilter.selectedSegmentIndex = UISegmentedControlNoSegment + self.historyCurrentlyFilter.setTitle("Sold", forSegmentAtIndex: 0) + self.historyCurrentlyFilter.setTitle("Unsold", forSegmentAtIndex: 1) + //Active segment + }else{ + self.historyCurrentlyFilter.selectedSegmentIndex = UISegmentedControlNoSegment + self.historyCurrentlyFilter.setTitle("Active", forSegmentAtIndex: 0) + self.historyCurrentlyFilter.setTitle("Draft", forSegmentAtIndex: 1) + } + NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(stopIndicator), name: "finished_fetching_listings", object: nil) if self.revealViewController() != nil { menuButton.target = self.revealViewController() @@ -90,23 +103,20 @@ class ItemTableViewController: UIViewController { // MARK: - IBAction extension ItemTableViewController { @IBAction func activeHistorSegSwitch(sender: UISegmentedControl) { + self.historyCurrentlyFilter.selectedSegmentIndex = UISegmentedControlNoSegment self.itemTable.reloadData() //History Segement if(self.tableSegmentController.selectedSegmentIndex == 1){ - self.historyFilter.enabled = true - self.historyFilter.userInteractionEnabled = true - self.historyFilter.hidden = false - + self.historyCurrentlyFilter.setTitle("Sold", forSegmentAtIndex: 0) + self.historyCurrentlyFilter.setTitle("Unsold", forSegmentAtIndex: 1) //Active segment }else{ - self.historyFilter.selectedSegmentIndex = UISegmentedControlNoSegment - self.historyFilter.enabled = false - self.historyFilter.userInteractionEnabled = false - self.historyFilter.hidden = true + self.historyCurrentlyFilter.setTitle("Active", forSegmentAtIndex: 0) + self.historyCurrentlyFilter.setTitle("Draft", forSegmentAtIndex: 1) } } - @IBAction func historyFilterSegSwitch(sender: UISegmentedControl) { + @IBAction func historyCurrentlyFilterSegSwitch(sender: UISegmentedControl) { self.itemTable.reloadData() } @@ -195,7 +205,7 @@ extension ItemTableViewController: UITableViewDataSource{ //if in the history segment if(self.tableSegmentController.selectedSegmentIndex == 1){ //hides title of unsold section if Sold filter selected - if(self.historyFilter.selectedSegmentIndex == 0){ + if(self.historyCurrentlyFilter.selectedSegmentIndex == 0){ if(section == 1){ return 0.0 }else{ @@ -203,7 +213,7 @@ extension ItemTableViewController: UITableViewDataSource{ } //hides title of sold section if Unsold filter selected - }else if(self.historyFilter.selectedSegmentIndex == 1){ + }else if(self.historyCurrentlyFilter.selectedSegmentIndex == 1){ if(section == 0){ return 0.0 }else{ @@ -215,14 +225,33 @@ extension ItemTableViewController: UITableViewDataSource{ return self.itemTable.sectionHeaderHeight } }else{ - return self.itemTable.sectionHeaderHeight + //hides title of draft section if active filter selected + if(self.historyCurrentlyFilter.selectedSegmentIndex == 0){ + if(section == 1){ + return 0.0 + }else{ + return self.itemTable.sectionHeaderHeight + } + + //hides title of active section if draft filter selected + }else if(self.historyCurrentlyFilter.selectedSegmentIndex == 1){ + if(section == 0){ + return 0.0 + }else{ + return self.itemTable.sectionHeaderHeight + } + + //Shows both section titles + }else{ + return self.itemTable.sectionHeaderHeight + } } } func numberOfSectionsInTableView(tableView: UITableView) -> Int { //number of sections for active segment if self.tableSegmentController.selectedSegmentIndex == 0 { - return 1 + return 2 } else { return 2 @@ -232,20 +261,41 @@ extension ItemTableViewController: UITableViewDataSource{ func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { //if in the active segment if self.tableSegmentController.selectedSegmentIndex == 0 { - return ((self.tabBarController as? HomeViewController)?.userListings.count)! + //hides draft section cells if active filter selected + if(self.historyCurrentlyFilter.selectedSegmentIndex == 0){ + if(section == 1){ + return 0 + }else{ + return ((self.tabBarController as? HomeViewController)?.userListings.count)! + } + //hides active section cells if draft filter selected + }else if(self.historyCurrentlyFilter.selectedSegmentIndex == 1){ + if(section == 0){ + return 0 + }else{ + return ((self.tabBarController as? HomeViewController)?.draftListings.count)! + } + }else{ + //shows both respective sections cells + if(section == 1){ + return ((self.tabBarController as? HomeViewController)?.draftListings.count)! + }else{ + return ((self.tabBarController as? HomeViewController)?.userListings.count)! + } + } } //if in the history segment else { //hides unsold section cells if Sold filter selected - if(self.historyFilter.selectedSegmentIndex == 0){ + if(self.historyCurrentlyFilter.selectedSegmentIndex == 0){ if(section == 1){ return 0 }else{ return ((self.tabBarController as? HomeViewController)?.soldListings.count)! } //hides sold section cells if Unsold filter selected - }else if(self.historyFilter.selectedSegmentIndex == 1){ + }else if(self.historyCurrentlyFilter.selectedSegmentIndex == 1){ if(section == 0){ return 0 }else{ @@ -275,12 +325,43 @@ extension ItemTableViewController: UITableViewDataSource{ //Active and unpublished listings if self.tableSegmentController.selectedSegmentIndex == 0 { - cell.itemImage.image = (self.tabBarController as? HomeViewController)?.userListings[indexPath.row].images[0] //come back - cell.itemName.text = (self.tabBarController as? HomeViewController)!.userListings[indexPath.row].title - cell.itemPrice.text = (self.tabBarController as? HomeViewController)!.userListings[indexPath.row].price - //check if item is published - if((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].isDraft!){ + //active lstings + if indexPath.section == 0 { + cell.itemImage.image = (self.tabBarController as? HomeViewController)?.userListings[indexPath.row].images[0] //come back + cell.itemName.text = (self.tabBarController as? HomeViewController)!.userListings[indexPath.row].title + cell.itemPrice.text = (self.tabBarController as? HomeViewController)!.userListings[indexPath.row].price + cell.itemStatus.text = "Status: Active" + + if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["areNetworksChosen"])!){ + cell.networks.hidden = true + }else{ + cell.selectedNetworks = [] + dispatch_async(dispatch_get_main_queue(), { + if(((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["ebay"])!){ + cell.addNetwork("ebay_icon") + } + if(((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["amazon"])!){ + cell.addNetwork("amazon_icon") + } + if(((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["etsy"])!){ + cell.addNetwork("etsy_icon") + + } + if(((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["facebook"])!){ + cell.addNetwork("facebook_icon") + } + cell.networks.reloadData() + + }) + + } + + }else{ + cell.itemImage.image = (self.tabBarController as? HomeViewController)?.draftListings[indexPath.row].images[0] //come back + cell.itemName.text = (self.tabBarController as? HomeViewController)!.draftListings[indexPath.row].title + cell.itemPrice.text = (self.tabBarController as? HomeViewController)!.draftListings[indexPath.row].price + cell.itemStatus.text = "Status: Unpublished" dispatch_async(dispatch_get_main_queue(), { @@ -289,32 +370,29 @@ extension ItemTableViewController: UITableViewDataSource{ }) - }else { - cell.itemStatus.text = "Status: Active" - } - - if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["areNetworksChosen"])!){ - cell.networks.hidden = true - }else{ - cell.selectedNetworks = [] - dispatch_async(dispatch_get_main_queue(), { - if(((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["ebay"])!){ - cell.addNetwork("ebay_icon") - } - if(((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["amazon"])!){ - cell.addNetwork("amazon_icon") - } - if(((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["etsy"])!){ - cell.addNetwork("etsy_icon") + if(!((self.tabBarController as? HomeViewController)!.draftListings[indexPath.row].networks["areNetworksChosen"])!){ + cell.networks.hidden = true + }else{ + cell.selectedNetworks = [] + dispatch_async(dispatch_get_main_queue(), { + if(((self.tabBarController as? HomeViewController)!.draftListings[indexPath.row].networks["ebay"])!){ + cell.addNetwork("ebay_icon") + } + if(((self.tabBarController as? HomeViewController)!.draftListings[indexPath.row].networks["amazon"])!){ + cell.addNetwork("amazon_icon") + } + if(((self.tabBarController as? HomeViewController)!.draftListings[indexPath.row].networks["etsy"])!){ + cell.addNetwork("etsy_icon") + + } + if(((self.tabBarController as? HomeViewController)!.draftListings[indexPath.row].networks["facebook"])!){ + cell.addNetwork("facebook_icon") + } + cell.networks.reloadData() - } - if(((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["facebook"])!){ - cell.addNetwork("facebook_icon") - } - cell.networks.reloadData() + }) - }) - + } } } @@ -397,7 +475,13 @@ extension ItemTableViewController: UITableViewDataSource{ //view listing that is active or draft if self.tableSegmentController.selectedSegmentIndex == 0 { - self.selectedListing = (self.tabBarController as? HomeViewController)?.userListings[indexPath.row] + //draft + if(indexPath.section == 1){ + self.selectedListing = (self.tabBarController as? HomeViewController)?.draftListings[indexPath.row] + //active + }else{ + self.selectedListing = (self.tabBarController as? HomeViewController)?.userListings[indexPath.row] + } } //view listing that is sold or unsold @@ -422,7 +506,11 @@ extension ItemTableViewController: UITableViewDataSource{ return "Sold" } }else{ - return nil + if(section == 1){ + return "Draft" + }else{ + return "Active" + } } } } diff --git a/Vendoo/Main.storyboard b/Vendoo/Main.storyboard index 5b3641c..24a4ed5 100755 --- a/Vendoo/Main.storyboard +++ b/Vendoo/Main.storyboard @@ -1292,7 +1292,7 @@ -