mirror of
https://bitbucket.org/vendoo/vendoo_v1.0.git
synced 2025-12-25 19:57:41 +00:00
added ability to cancel adding a new listing and now hiding tab bar when starting the listing process. All images are now being downloaded from each listing
185 lines
7.2 KiB
Swift
185 lines
7.2 KiB
Swift
//
|
|
// ItemTableViewController.swift
|
|
// Vendoo
|
|
//
|
|
// Created by Okechi Onyeje on 5/26/16.
|
|
// Copyright © 2016 Okechi Onyeje. All rights reserved.
|
|
//
|
|
|
|
/*
|
|
This class will be used to retrieve and manipulate data seen by the end user for he/she's item listings
|
|
*/
|
|
import UIKit
|
|
|
|
class ItemTableViewController: UIViewController {
|
|
|
|
//outlet
|
|
@IBOutlet weak var itemTable: UITableView!
|
|
@IBOutlet weak var tableSegmentController: UISegmentedControl!
|
|
|
|
@IBOutlet weak var menuButton: UIBarButtonItem!
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
// Uncomment the following line to preserve selection between presentations
|
|
// self.clearsSelectionOnViewWillAppear = false
|
|
|
|
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
|
|
// self.navigationItem.rightBarButtonItem = self.editButtonItem()
|
|
|
|
self.tabBarController?.tabBar.hidden = false
|
|
|
|
//set delegates
|
|
self.itemTable.dataSource = self
|
|
self.itemTable.delegate = self
|
|
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(stopIndicator), name: "finished_fetching_listings", object: nil)
|
|
if self.revealViewController() != nil {
|
|
menuButton.target = self.revealViewController()
|
|
menuButton.action = "revealToggle:"
|
|
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
|
|
}
|
|
(self.tabBarController as? HomeViewController)?.firebaseManager.indicator.hidesWhenStopped = 1
|
|
//self.view.addSubview(((self.tabBarController as? HomeViewController)?.firebaseManager.indicator)!)
|
|
(self.tabBarController as? HomeViewController)?.firebaseManager.indicator.startAnimating()
|
|
|
|
}
|
|
|
|
|
|
override func viewWillAppear(animated: Bool) {
|
|
super.viewWillAppear(animated)
|
|
self.tabBarController?.tabBar.hidden = false
|
|
}
|
|
override func didReceiveMemoryWarning() {
|
|
super.didReceiveMemoryWarning()
|
|
// Dispose of any resources that can be recreated.
|
|
}
|
|
|
|
|
|
func stopIndicator(){
|
|
(self.tabBarController as? HomeViewController)?.firebaseManager.indicator.stopAnimating()
|
|
self.itemTable.reloadData()
|
|
}
|
|
|
|
|
|
/*
|
|
|
|
*/
|
|
|
|
}
|
|
|
|
|
|
// MARK: - Navigation
|
|
extension ItemTableViewController {
|
|
|
|
// In a storyboard-based application, you will often want to do a little preparation before navigation
|
|
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
|
|
// Get the new view controller using segue.destinationViewController.
|
|
// Pass the selected object to the new view controller.
|
|
}
|
|
}
|
|
|
|
// MARK: - TableView Datasource methods
|
|
extension ItemTableViewController: UITableViewDataSource{
|
|
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
|
|
// #warning Incomplete implementation, return the number of sections
|
|
return 1
|
|
}
|
|
|
|
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
|
// #warning Incomplete implementation, return the number of rows
|
|
return ((self.tabBarController as? HomeViewController)?.userListings.count)!
|
|
}
|
|
|
|
|
|
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
|
|
let cell: ItemCell! = (tableView.dequeueReusableCellWithIdentifier("Item Cell", forIndexPath: indexPath) as! ItemCell)
|
|
|
|
|
|
|
|
|
|
// Configure the cell...
|
|
//for each listing cell generated need to find the marketplaces it belongs to, the listing price, the name of the item, the status of the item, and the item image.
|
|
//Once these objects are retrieved, access the ItemCell properties and manipulate as needed
|
|
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!){
|
|
cell.itemStatus.text = "Status: Unpublished"
|
|
dispatch_async(dispatch_get_main_queue(), {
|
|
|
|
cell.alpha = 0.5
|
|
|
|
|
|
})
|
|
|
|
}
|
|
|
|
if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["areNetworksChosen"])!){
|
|
cell.networks.hidden = true
|
|
}else{
|
|
dispatch_async(dispatch_get_main_queue(), {
|
|
if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["ebay"])!){
|
|
cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 0, inSection: 0))?.hidden = true
|
|
}
|
|
if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["amazon"])!){
|
|
cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 1, inSection: 0))?.hidden = true
|
|
}
|
|
if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["etsy"])!){
|
|
cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 2, inSection: 0))?.hidden = true
|
|
|
|
}
|
|
if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["facebook"])!){
|
|
cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 3, inSection: 0))?.hidden = true
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
return cell
|
|
}
|
|
}
|
|
|
|
|
|
//MARK: - Tableview Delegate Methods
|
|
extension ItemTableViewController: UITableViewDelegate {
|
|
/*
|
|
// Override to support conditional editing of the table view.
|
|
override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
|
|
// Return false if you do not want the specified item to be editable.
|
|
return true
|
|
}
|
|
*/
|
|
|
|
/*
|
|
// Override to support editing the table view.
|
|
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
|
|
if editingStyle == .Delete {
|
|
// Delete the row from the data source
|
|
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
|
|
} else if editingStyle == .Insert {
|
|
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
|
|
}
|
|
}
|
|
*/
|
|
|
|
/*
|
|
// Override to support rearranging the table view.
|
|
override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) {
|
|
|
|
}
|
|
*/
|
|
|
|
/*
|
|
// Override to support conditional rearranging of the table view.
|
|
override func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {
|
|
// Return false if you do not want the item to be re-orderable.
|
|
return true
|
|
}
|
|
*/
|
|
}
|
|
|
|
|