mirror of
https://bitbucket.org/vendoo/vendoo_v1.0.git
synced 2025-12-25 19:57:41 +00:00
Merged branch master into Seller-Networks-Settings
This commit is contained in:
commit
b3e38fb0ca
@ -14,6 +14,8 @@
|
|||||||
3E1AA4351D0DD173005FCCBB /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1AA4341D0DD173005FCCBB /* SettingsViewController.swift */; };
|
3E1AA4351D0DD173005FCCBB /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1AA4341D0DD173005FCCBB /* SettingsViewController.swift */; };
|
||||||
3E1B1F091D24926C00DBCF08 /* EbaySettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1B1F081D24926C00DBCF08 /* EbaySettingsViewController.swift */; };
|
3E1B1F091D24926C00DBCF08 /* EbaySettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1B1F081D24926C00DBCF08 /* EbaySettingsViewController.swift */; };
|
||||||
3E1B1F0B1D2493EE00DBCF08 /* EtsySettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1B1F0A1D2493EE00DBCF08 /* EtsySettingsViewController.swift */; };
|
3E1B1F0B1D2493EE00DBCF08 /* EtsySettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1B1F0A1D2493EE00DBCF08 /* EtsySettingsViewController.swift */; };
|
||||||
|
3E1DC3CD1D4232490091BC60 /* CategoriesTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1DC3CC1D4232490091BC60 /* CategoriesTableViewController.swift */; };
|
||||||
|
3E1DC3CF1D42328C0091BC60 /* CategoryCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1DC3CE1D42328C0091BC60 /* CategoryCell.swift */; };
|
||||||
3E4897D11D0067030069F742 /* FirebaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E4897D01D0067030069F742 /* FirebaseManager.swift */; };
|
3E4897D11D0067030069F742 /* FirebaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E4897D01D0067030069F742 /* FirebaseManager.swift */; };
|
||||||
3E6CC3571CF2A94B00E00A70 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E6CC3561CF2A94B00E00A70 /* AppDelegate.swift */; };
|
3E6CC3571CF2A94B00E00A70 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E6CC3561CF2A94B00E00A70 /* AppDelegate.swift */; };
|
||||||
3E6CC3591CF2A94B00E00A70 /* SignInViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E6CC3581CF2A94B00E00A70 /* SignInViewController.swift */; };
|
3E6CC3591CF2A94B00E00A70 /* SignInViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E6CC3581CF2A94B00E00A70 /* SignInViewController.swift */; };
|
||||||
@ -71,6 +73,8 @@
|
|||||||
3E1AA4341D0DD173005FCCBB /* SettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsViewController.swift; sourceTree = "<group>"; };
|
3E1AA4341D0DD173005FCCBB /* SettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsViewController.swift; sourceTree = "<group>"; };
|
||||||
3E1B1F081D24926C00DBCF08 /* EbaySettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EbaySettingsViewController.swift; sourceTree = "<group>"; };
|
3E1B1F081D24926C00DBCF08 /* EbaySettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EbaySettingsViewController.swift; sourceTree = "<group>"; };
|
||||||
3E1B1F0A1D2493EE00DBCF08 /* EtsySettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EtsySettingsViewController.swift; sourceTree = "<group>"; };
|
3E1B1F0A1D2493EE00DBCF08 /* EtsySettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EtsySettingsViewController.swift; sourceTree = "<group>"; };
|
||||||
|
3E1DC3CC1D4232490091BC60 /* CategoriesTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CategoriesTableViewController.swift; sourceTree = "<group>"; };
|
||||||
|
3E1DC3CE1D42328C0091BC60 /* CategoryCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CategoryCell.swift; sourceTree = "<group>"; };
|
||||||
3E4897D01D0067030069F742 /* FirebaseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FirebaseManager.swift; sourceTree = "<group>"; };
|
3E4897D01D0067030069F742 /* FirebaseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FirebaseManager.swift; sourceTree = "<group>"; };
|
||||||
3E6CC3531CF2A94B00E00A70 /* Vendoo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Vendoo.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
3E6CC3531CF2A94B00E00A70 /* Vendoo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Vendoo.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
3E6CC3561CF2A94B00E00A70 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
3E6CC3561CF2A94B00E00A70 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||||
@ -316,6 +320,8 @@
|
|||||||
3EC3252B1CF8944800626C48 /* NewItemPostingSession */ = {
|
3EC3252B1CF8944800626C48 /* NewItemPostingSession */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
3E1DC3CE1D42328C0091BC60 /* CategoryCell.swift */,
|
||||||
|
3E1DC3CC1D4232490091BC60 /* CategoriesTableViewController.swift */,
|
||||||
3EC3252C1CF894C400626C48 /* ItemImagePickerViewController.swift */,
|
3EC3252C1CF894C400626C48 /* ItemImagePickerViewController.swift */,
|
||||||
3ECEDB861CF9C722003566B3 /* ListingPreviewViewController.swift */,
|
3ECEDB861CF9C722003566B3 /* ListingPreviewViewController.swift */,
|
||||||
);
|
);
|
||||||
@ -634,12 +640,14 @@
|
|||||||
3EC325201CF7C3AB00626C48 /* NetworkTableViewCell.swift in Sources */,
|
3EC325201CF7C3AB00626C48 /* NetworkTableViewCell.swift in Sources */,
|
||||||
3EC325261CF7E90000626C48 /* FacebookGraphAPIManager.swift in Sources */,
|
3EC325261CF7E90000626C48 /* FacebookGraphAPIManager.swift in Sources */,
|
||||||
3E7CF3FC1CF5FE9400F486B2 /* RecoverPasswordViewController.swift in Sources */,
|
3E7CF3FC1CF5FE9400F486B2 /* RecoverPasswordViewController.swift in Sources */,
|
||||||
|
3E1DC3CF1D42328C0091BC60 /* CategoryCell.swift in Sources */,
|
||||||
3EC325111CF703A600626C48 /* ItemCell.swift in Sources */,
|
3EC325111CF703A600626C48 /* ItemCell.swift in Sources */,
|
||||||
3EA668A11D02836C00EE57A8 /* EbayWebServiceManager.swift in Sources */,
|
3EA668A11D02836C00EE57A8 /* EbayWebServiceManager.swift in Sources */,
|
||||||
3ECEDB871CF9C722003566B3 /* ListingPreviewViewController.swift in Sources */,
|
3ECEDB871CF9C722003566B3 /* ListingPreviewViewController.swift in Sources */,
|
||||||
3E1B1F0B1D2493EE00DBCF08 /* EtsySettingsViewController.swift in Sources */,
|
3E1B1F0B1D2493EE00DBCF08 /* EtsySettingsViewController.swift in Sources */,
|
||||||
3EC325231CF7DA5500626C48 /* HomeViewController.swift in Sources */,
|
3EC325231CF7DA5500626C48 /* HomeViewController.swift in Sources */,
|
||||||
3EC3252D1CF894C400626C48 /* ItemImagePickerViewController.swift in Sources */,
|
3EC3252D1CF894C400626C48 /* ItemImagePickerViewController.swift in Sources */,
|
||||||
|
3E1DC3CD1D4232490091BC60 /* CategoriesTableViewController.swift in Sources */,
|
||||||
3E7CF4011CF6366300F486B2 /* EtsyRESTAPIManager.swift in Sources */,
|
3E7CF4011CF6366300F486B2 /* EtsyRESTAPIManager.swift in Sources */,
|
||||||
3EC325151CF7104300626C48 /* ItemTableViewController.swift in Sources */,
|
3EC325151CF7104300626C48 /* ItemTableViewController.swift in Sources */,
|
||||||
3EFB0E331D0B968300A05D7A /* SideMenuView.swift in Sources */,
|
3EFB0E331D0B968300A05D7A /* SideMenuView.swift in Sources */,
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
Vendoo/.DS_Store
vendored
BIN
Vendoo/.DS_Store
vendored
Binary file not shown.
195
Vendoo/CategoriesTableViewController.swift
Normal file
195
Vendoo/CategoriesTableViewController.swift
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
//
|
||||||
|
// CategoriesTableViewController.swift
|
||||||
|
// Vendoo
|
||||||
|
//
|
||||||
|
// Created by Okechi Onyeje on 7/16/16.
|
||||||
|
// Copyright © 2016 Okechi Onyeje. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
class CategoriesTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
|
||||||
|
|
||||||
|
private var itemListingDictionary: Dictionary<String, AnyObject>! = Dictionary<String, AnyObject>()
|
||||||
|
private var graphManager: FacebookGraphAPIManager! = nil
|
||||||
|
private var firManager: FirebaseManager! = nil
|
||||||
|
private var etsyManager: EtsyRESTAPIManager! = nil
|
||||||
|
private var ebayManager: EbayWebServiceManager! = EbayWebServiceManager()
|
||||||
|
private var selectedCategory: String!
|
||||||
|
|
||||||
|
private var categories = ["Accessories",
|
||||||
|
"Art",
|
||||||
|
"Bath & Beauty",
|
||||||
|
"Bags & Purses",
|
||||||
|
"Books",
|
||||||
|
"Candles",
|
||||||
|
"Ceramics & Pottery",
|
||||||
|
"Children",
|
||||||
|
"Clothing",
|
||||||
|
"Crochet",
|
||||||
|
"Dolls & Miniatures",
|
||||||
|
"Everything Else",
|
||||||
|
"Furniture",
|
||||||
|
"Geekery",
|
||||||
|
"Glass",
|
||||||
|
"Holidays",
|
||||||
|
"Houseware",
|
||||||
|
"Jewelry",
|
||||||
|
"Knitting",
|
||||||
|
"Music",
|
||||||
|
"Needlecraft",
|
||||||
|
"Paper Goods",
|
||||||
|
"Patterns",
|
||||||
|
"Plants and Edibles",
|
||||||
|
"Quilts",
|
||||||
|
"Supplies",
|
||||||
|
"Toys",
|
||||||
|
"Vintage",
|
||||||
|
"Wedding",
|
||||||
|
"Woodworking"]
|
||||||
|
@IBOutlet weak var table: UITableView!
|
||||||
|
|
||||||
|
|
||||||
|
override func viewDidLoad() {
|
||||||
|
super.viewDidLoad()
|
||||||
|
|
||||||
|
self.table.delegate = self
|
||||||
|
self.table.dataSource = self
|
||||||
|
// 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()
|
||||||
|
}
|
||||||
|
|
||||||
|
override func didReceiveMemoryWarning() {
|
||||||
|
super.didReceiveMemoryWarning()
|
||||||
|
// Dispose of any resources that can be recreated.
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Table view data source
|
||||||
|
|
||||||
|
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.categories.count
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func setListingDictionary(listingDictionary: Dictionary<String, AnyObject>){
|
||||||
|
|
||||||
|
self.itemListingDictionary = listingDictionary
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func setManagers(fbManager: FacebookGraphAPIManager, fireManager: FirebaseManager, ebayManager: EbayWebServiceManager, etsyManager: EtsyRESTAPIManager){
|
||||||
|
self.graphManager = fbManager
|
||||||
|
self.firManager = fireManager
|
||||||
|
self.ebayManager = ebayManager
|
||||||
|
self.etsyManager = etsyManager
|
||||||
|
}
|
||||||
|
|
||||||
|
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
|
||||||
|
let cell: CategoryCell! = tableView.dequeueReusableCellWithIdentifier("CategoryCell", forIndexPath: indexPath) as? CategoryCell
|
||||||
|
|
||||||
|
// Configure the cell...
|
||||||
|
|
||||||
|
dispatch_async(dispatch_get_main_queue(), {
|
||||||
|
cell.categoryName.text = self.categories[indexPath.row]
|
||||||
|
|
||||||
|
//ebay
|
||||||
|
if(true){
|
||||||
|
cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 0, inSection: 0))?.hidden = true
|
||||||
|
}
|
||||||
|
//amazon
|
||||||
|
if(true){
|
||||||
|
cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 1, inSection: 0))?.hidden = true
|
||||||
|
}
|
||||||
|
//etsy
|
||||||
|
if(false){
|
||||||
|
cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 2, inSection: 0))?.hidden = true
|
||||||
|
|
||||||
|
}
|
||||||
|
//facebook
|
||||||
|
if(false){
|
||||||
|
cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 3, inSection: 0))?.hidden = true
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
return cell
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
|
||||||
|
self.selectedCategory = self.categories[indexPath.row]
|
||||||
|
self.performSegueWithIdentifier("NetworkSelectionSegue", sender: self)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
// 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
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// MARK: - Navigation
|
||||||
|
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
if(segue.identifier == "NetworkSelectionSegue") {
|
||||||
|
self.itemListingDictionary["category"] = self.selectedCategory
|
||||||
|
(segue.destinationViewController as! NetworksTableViewController).setListingDictionary(self.itemListingDictionary)
|
||||||
|
(segue.destinationViewController as! NetworksTableViewController).setManagers(self.graphManager,
|
||||||
|
fireManager: self.firManager, ebayManager: self.ebayManager, etsyManager: self.etsyManager )
|
||||||
|
|
||||||
|
(segue.destinationViewController as! NetworksTableViewController).setNetworkSelectFunctionality(true)
|
||||||
|
//print(self.categoryPicker.selectedRowInComponent(0))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@IBAction func cancelCategorySelection(sender: AnyObject) {
|
||||||
|
|
||||||
|
self.dismissViewControllerAnimated(true, completion: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
113
Vendoo/CategoryCell.swift
Normal file
113
Vendoo/CategoryCell.swift
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
//
|
||||||
|
// CategoryCell.swift
|
||||||
|
// Vendoo
|
||||||
|
//
|
||||||
|
// Created by Okechi Onyeje on 7/18/16.
|
||||||
|
// Copyright © 2016 Okechi Onyeje. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
class CategoryCell: UITableViewCell, UICollectionViewDelegate {
|
||||||
|
|
||||||
|
@IBOutlet weak var categoryName: UILabel!
|
||||||
|
@IBOutlet weak var networks: UICollectionView!
|
||||||
|
|
||||||
|
|
||||||
|
override func awakeFromNib() {
|
||||||
|
super.awakeFromNib()
|
||||||
|
// Initialization code
|
||||||
|
self.networks.delegate = self
|
||||||
|
self.networks.dataSource = self
|
||||||
|
self.networks.backgroundView?.backgroundColor = UIColor.whiteColor()
|
||||||
|
}
|
||||||
|
|
||||||
|
override func setSelected(selected: Bool, animated: Bool) {
|
||||||
|
super.setSelected(selected, animated: animated)
|
||||||
|
|
||||||
|
// Configure the view for the selected state
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// MARK: UICollectionViewDataSource
|
||||||
|
extension CategoryCell: UICollectionViewDataSource{
|
||||||
|
|
||||||
|
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
|
||||||
|
// #warning Incomplete implementation, return the number of sections
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
|
||||||
|
// #warning Incomplete implementation, return the number of items
|
||||||
|
return 4
|
||||||
|
}
|
||||||
|
|
||||||
|
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
|
||||||
|
|
||||||
|
let cell: UICollectionViewCell!
|
||||||
|
|
||||||
|
switch (indexPath.row){
|
||||||
|
case 0:
|
||||||
|
cell = collectionView.dequeueReusableCellWithReuseIdentifier("ebay", forIndexPath: indexPath)
|
||||||
|
break
|
||||||
|
case 1:
|
||||||
|
cell = collectionView.dequeueReusableCellWithReuseIdentifier("amazon", forIndexPath: indexPath)
|
||||||
|
break
|
||||||
|
case 2:
|
||||||
|
cell = collectionView.dequeueReusableCellWithReuseIdentifier("etsy", forIndexPath: indexPath)
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
cell = collectionView.dequeueReusableCellWithReuseIdentifier("facebook", forIndexPath: indexPath)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Configure the cell (in this case show or hide the cell depending on which network the item is being listed on)
|
||||||
|
|
||||||
|
return cell
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// MARK: UICollectionViewDelegate
|
||||||
|
extension CategoryCell {
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Uncomment this method to specify if the specified item should be highlighted during tracking
|
||||||
|
override func collectionView(collectionView: UICollectionView, shouldHighlightItemAtIndexPath indexPath: NSIndexPath) -> Bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Uncomment this method to specify if the specified item should be selected
|
||||||
|
override func collectionView(collectionView: UICollectionView, shouldSelectItemAtIndexPath indexPath: NSIndexPath) -> Bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Uncomment these methods to specify if an action menu should be displayed for the specified item, and react to actions performed on the item
|
||||||
|
override func collectionView(collectionView: UICollectionView, shouldShowMenuForItemAtIndexPath indexPath: NSIndexPath) -> Bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override func collectionView(collectionView: UICollectionView, canPerformAction action: Selector, forItemAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) -> Bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override func collectionView(collectionView: UICollectionView, performAction action: Selector, forItemAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ import Locksmith
|
|||||||
import AFNetworking
|
import AFNetworking
|
||||||
|
|
||||||
|
|
||||||
typealias ServiceResponse = (JSON, NSError?) -> Void
|
typealias ServiceResponse = (AnyObject?, NSError?) -> Void
|
||||||
|
|
||||||
|
|
||||||
class EtsyRESTAPIManager: NSObject {
|
class EtsyRESTAPIManager: NSObject {
|
||||||
@ -73,7 +73,7 @@ class EtsyRESTAPIManager: NSObject {
|
|||||||
|
|
||||||
EtsyRESTAPIManager.settingsDictionary = ([
|
EtsyRESTAPIManager.settingsDictionary = ([
|
||||||
"who_made":"i_did",
|
"who_made":"i_did",
|
||||||
"is_supply":"true",
|
"is_supply":true,
|
||||||
"when_made":"made_to_order"
|
"when_made":"made_to_order"
|
||||||
] as Dictionary<String, AnyObject>)
|
] as Dictionary<String, AnyObject>)
|
||||||
|
|
||||||
@ -213,6 +213,13 @@ extension EtsyRESTAPIManager {
|
|||||||
EtsyRESTAPIManager.settingsDictionary["userID"] = dict2[0]["login_name"]!
|
EtsyRESTAPIManager.settingsDictionary["userID"] = dict2[0]["login_name"]!
|
||||||
NSUserDefaults.standardUserDefaults().setObject(EtsyRESTAPIManager.settingsDictionary, forKey: "etsySettings")
|
NSUserDefaults.standardUserDefaults().setObject(EtsyRESTAPIManager.settingsDictionary, forKey: "etsySettings")
|
||||||
|
|
||||||
|
self.sendGETRequest("/shops/__SELF__/payment_templates", onCompletion: {
|
||||||
|
(data, error) -> Void in
|
||||||
|
|
||||||
|
self.sendGETRequest("/users/__SELF__/shipping/templates", onCompletion: nil)
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
, failure: { error in
|
, failure: { error in
|
||||||
print(error)
|
print(error)
|
||||||
@ -392,8 +399,8 @@ extension EtsyRESTAPIManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//sends the pregenerated url as a request to api service
|
//sends the pregenerated url as a request to api service
|
||||||
func sendGETRequest(request: String, onCompletion: ServiceResponse) {
|
func sendGETRequest(request: String, onCompletion: ServiceResponse?) {
|
||||||
let request = NSMutableURLRequest(URL: NSURL(string: request)!)
|
/* let request = NSMutableURLRequest(URL: NSURL(string: request)!)
|
||||||
|
|
||||||
let session = NSURLSession.sharedSession()
|
let session = NSURLSession.sharedSession()
|
||||||
|
|
||||||
@ -405,12 +412,93 @@ extension EtsyRESTAPIManager {
|
|||||||
onCompletion(nil, error)
|
onCompletion(nil, error)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
task.resume()
|
task.resume()*/
|
||||||
|
|
||||||
|
self.oauthswift.client.get(self.baseURL + request,
|
||||||
|
success: {
|
||||||
|
(data, response) -> Void in
|
||||||
|
let dataString = NSString(data: data, encoding: NSUTF8StringEncoding)
|
||||||
|
let dict = self.convertStringToDictionary(dataString! as String)
|
||||||
|
print(dict)
|
||||||
|
print(response)
|
||||||
|
|
||||||
|
switch (request) {
|
||||||
|
case "/shops/__SELF__/payment_templates" :
|
||||||
|
|
||||||
|
if ((dict!["results"]!.isKindOfClass(NSNull.classForCoder()))) {
|
||||||
|
//@TODO: Put payment template parameters in function call
|
||||||
|
self.oauthswift.client.post(self.baseURL + "/shops/__SELF__/payment_templates",
|
||||||
|
parameters: [
|
||||||
|
"shop_id":"__SELF__",
|
||||||
|
],
|
||||||
|
headers: nil,
|
||||||
|
success: {
|
||||||
|
(data, response) -> Void in
|
||||||
|
let dataString = NSString(data: data, encoding: NSUTF8StringEncoding)
|
||||||
|
let dict = self.convertStringToDictionary(dataString! as String)
|
||||||
|
print(dict)
|
||||||
|
print(response)
|
||||||
|
|
||||||
|
onCompletion!(nil,nil)
|
||||||
|
|
||||||
|
},
|
||||||
|
failure: {
|
||||||
|
(error) -> Void in
|
||||||
|
print(error)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case "/users/__SELF__/shipping/templates" :
|
||||||
|
var dict2 = (dict!["results"] as! [[String : AnyObject]])
|
||||||
|
|
||||||
|
if ((dict!["results"]!.isKindOfClass(NSNull.classForCoder()))) {
|
||||||
|
//@TODO: Put payment template parameters in function call
|
||||||
|
self.oauthswift.client.post(self.baseURL + "/shipping/templates",
|
||||||
|
parameters: [
|
||||||
|
"title":"vendoo_default",
|
||||||
|
"origin_country_id":209,
|
||||||
|
"primary_cost":2.00,
|
||||||
|
"secondary_cost":1.00
|
||||||
|
],
|
||||||
|
headers: nil,
|
||||||
|
success: {
|
||||||
|
(data, response) -> Void in
|
||||||
|
let dataString = NSString(data: data, encoding: NSUTF8StringEncoding)
|
||||||
|
let dict = self.convertStringToDictionary(dataString! as String)
|
||||||
|
print(dict)
|
||||||
|
print(response)
|
||||||
|
|
||||||
|
},
|
||||||
|
failure: {
|
||||||
|
(error) -> Void in
|
||||||
|
print(error)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}else {
|
||||||
|
EtsyRESTAPIManager.settingsDictionary["shipping_template_id"] = dict2[0]["shipping_template_id"]!
|
||||||
|
|
||||||
|
NSUserDefaults.standardUserDefaults().setObject(EtsyRESTAPIManager.settingsDictionary, forKey: "etsySettings")
|
||||||
|
}
|
||||||
|
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
failure: {
|
||||||
|
(error) -> Void in
|
||||||
|
print(error)
|
||||||
|
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
//sends the pregenerated url as a request to api service
|
//sends the pregenerated url as a request to api service
|
||||||
func sendPOSTRequest(request: String, body: [String: AnyObject], onCompletion: ServiceResponse) {
|
func sendPOSTRequest(request: String, var body: [String: AnyObject], onCompletion: ServiceResponse?) {
|
||||||
let request = NSMutableURLRequest(URL: NSURL(string: request)!)
|
|
||||||
|
/* let request = NSMutableURLRequest(URL: NSURL(string: request)!)
|
||||||
|
|
||||||
// Set the method to POST
|
// Set the method to POST
|
||||||
request.HTTPMethod = "POST"
|
request.HTTPMethod = "POST"
|
||||||
@ -433,8 +521,196 @@ extension EtsyRESTAPIManager {
|
|||||||
} catch {
|
} catch {
|
||||||
// Create your personal error
|
// Create your personal error
|
||||||
onCompletion(nil, nil)
|
onCompletion(nil, nil)
|
||||||
|
}*/
|
||||||
|
|
||||||
|
if(request.containsString("listings/") && request.containsString("/images")){
|
||||||
|
|
||||||
|
let url = NSURL(string: self.baseURL + request)!
|
||||||
|
let requested = NSMutableURLRequest(URL: url)
|
||||||
|
requested.HTTPMethod = "POST"
|
||||||
|
let boundary = "Boundary-\(NSUUID().UUIDString)"
|
||||||
|
/*var headers = oauthswift.client.credential.makeHeaders(url, method: OAuthSwiftHTTPRequest.Method.POST, parameters: ["Content-Type":"multipart/form-dataheader"]) // here with create the authentification headers
|
||||||
|
requested.addValue(self.apiKey, forHTTPHeaderField: "Authorization" )
|
||||||
|
|
||||||
|
//define the multipart request type
|
||||||
|
requested.addValue("\((body["image"] as! NSData).length)", forHTTPHeaderField: "Content-Length")
|
||||||
|
requested.addValue("bytes", forHTTPHeaderField: "Content-Transfer-Encoding")
|
||||||
|
requested.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
|
||||||
|
//requested.addValue(self.apiKey, forHTTPHeaderField: "API-KEY")
|
||||||
|
requested.HTTPBody = self.oauthswift.client.multiPartBodyFromParams(body, boundary: boundary)
|
||||||
|
/*let body1 = NSMutableData()
|
||||||
|
|
||||||
|
let fname = "main.jpg"
|
||||||
|
let mimetype = "image/jpg"
|
||||||
|
|
||||||
|
//define the data post parameter
|
||||||
|
|
||||||
|
body1.appendData("--\(boundary)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
|
||||||
|
body1.appendData("Content-Disposition:form-data; name=\"listing_id\"\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
|
||||||
|
body1.appendData("\(body["listing_id"] as! Int)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
body1.appendData("--\(boundary)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
|
||||||
|
body1.appendData("Content-Disposition:form-data; name=\"image\"; filename=\"\(fname)\"\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
|
||||||
|
body1.appendData("Content-Type: \(mimetype)\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
|
||||||
|
body1.appendData((body["image"] as! NSData))
|
||||||
|
body1.appendData("\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
|
||||||
|
|
||||||
|
|
||||||
|
body1.appendData("--\(boundary)--\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
requested.HTTPBody = body1*/
|
||||||
|
|
||||||
|
let session = NSURLSession.sharedSession()
|
||||||
|
|
||||||
|
|
||||||
|
let task = session.dataTaskWithRequest(requested) { data, response, error in
|
||||||
|
if nil != error {
|
||||||
|
// something went wrong
|
||||||
|
print(error)
|
||||||
|
|
||||||
|
onCompletion!(nil,nil)
|
||||||
|
switch (request) {
|
||||||
|
|
||||||
|
default:
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
let dataString = NSString(data: data!, encoding: NSUTF8StringEncoding)
|
||||||
|
let dict = self.convertStringToDictionary(dataString! as String)
|
||||||
|
print(dict)
|
||||||
|
print(response)
|
||||||
|
|
||||||
|
onCompletion!(nil, nil)
|
||||||
|
switch (request) {
|
||||||
|
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
task.resume()*/
|
||||||
|
/*
|
||||||
|
//var headers = oauthswift.client.credential.makeHeaders(url, method: OAuthSwiftHTTPRequest.Method.POST, parameters: ["Content-Type":"multipart/form-dataheader"]) // here with create the authentification headers
|
||||||
|
// here add additional headers "Content-type", etc..
|
||||||
|
requested.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
|
||||||
|
requested.addValue("\((body["image"] as! NSData).length)", forHTTPHeaderField: "Content-Length")
|
||||||
|
requested.addValue("bytes", forHTTPHeaderField: "Content-Transfer-Encoding")
|
||||||
|
//requested.addValue("form-data; name='Main Image'; filename='mainImage.jpg'", forHTTPHeaderField: "Content-Disposition")
|
||||||
|
requested.HTTPBody = self.oauthswift.client.multiPartBodyFromParams(body, boundary: "-XXX--")
|
||||||
|
|
||||||
|
let session = NSURLSession.sharedSession()
|
||||||
|
let task = session.dataTaskWithRequest(requested) { data, response, error in
|
||||||
|
if nil != error {
|
||||||
|
// something went wrong
|
||||||
|
print(error)
|
||||||
|
|
||||||
|
onCompletion!(nil,nil)
|
||||||
|
switch (request) {
|
||||||
|
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
let dataString = NSString(data: data!, encoding: NSUTF8StringEncoding)
|
||||||
|
let dict = self.convertStringToDictionary(dataString! as String)
|
||||||
|
print(dict)
|
||||||
|
print(response)
|
||||||
|
|
||||||
|
onCompletion!(nil, nil)
|
||||||
|
switch (request) {
|
||||||
|
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
task.resume()
|
||||||
|
*/
|
||||||
|
//body["oauth_verifier"] = (self.oauthswift.client.credential.oauth_verifier)
|
||||||
|
//@FIXME: multipart post request is returning with oauth signature invalid for uploading image in etsy
|
||||||
|
self.oauthswift.client.postMultiPartRequest(self.baseURL + request, method: OAuthSwiftHTTPRequest.Method.POST, parameters: body, success: {
|
||||||
|
(data, response) -> Void in
|
||||||
|
let dataString = NSString(data: data, encoding: NSUTF8StringEncoding)
|
||||||
|
let dict = self.convertStringToDictionary(dataString! as String)
|
||||||
|
print(dict)
|
||||||
|
print(response)
|
||||||
|
|
||||||
|
onCompletion!(nil, nil)
|
||||||
|
switch (request) {
|
||||||
|
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
failure: {
|
||||||
|
(error) -> Void in
|
||||||
|
print(error)
|
||||||
|
|
||||||
|
onCompletion!(nil,nil)
|
||||||
|
switch (request) {
|
||||||
|
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}else {
|
||||||
|
self.oauthswift.client.post(self.baseURL + request, parameters: body, headers: nil,
|
||||||
|
success: {
|
||||||
|
(data, response) -> Void in
|
||||||
|
let dataString = NSString(data: data, encoding: NSUTF8StringEncoding)
|
||||||
|
let dict = self.convertStringToDictionary(dataString! as String)
|
||||||
|
print(dict)
|
||||||
|
print(response)
|
||||||
|
|
||||||
|
switch (request) {
|
||||||
|
case "/shipping/templates":
|
||||||
|
|
||||||
|
break
|
||||||
|
case "/listings":
|
||||||
|
var dict2 = (dict!["results"] as! [[String : AnyObject]])
|
||||||
|
print(((dict2[0]["listing_id"])!))
|
||||||
|
onCompletion!(dict2, nil)
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
failure: {
|
||||||
|
(error) -> Void in
|
||||||
|
print(error)
|
||||||
|
switch (request) {
|
||||||
|
case "/shipping/templates":
|
||||||
|
|
||||||
|
break
|
||||||
|
case "/listings":
|
||||||
|
print(error.userInfo["Response-Body"])
|
||||||
|
if((error.userInfo["Response-Body"]!.isEqualToString("price is below listing fee."))) {
|
||||||
|
//@TODO: add alert to let user know that the price they have given is too low for etsy
|
||||||
|
|
||||||
|
}
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,7 @@ protocol FacebookGraphAPIManagerDelegate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
NOTES:
|
NOTE:
|
||||||
I am able to authorize application for use with facebook and deauthorize it while showing the toggle button switching back and forth, but during the last step of the process, for some reason NSUserDefault key for fbauthorized is not being called, in response handler, may need to run in a different thread
|
I am able to authorize application for use with facebook and deauthorize it while showing the toggle button switching back and forth, but during the last step of the process, for some reason NSUserDefault key for fbauthorized is not being called, in response handler, may need to run in a different thread
|
||||||
|
|
||||||
NEED to figure out how to post picture and text as the same timeline post current can only upload item title, price and description.
|
NEED to figure out how to post picture and text as the same timeline post current can only upload item title, price and description.
|
||||||
@ -173,12 +173,13 @@ extension FacebookGraphAPIManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//used to post to users timeline, path must start with '/'
|
//used to post to users timeline, path must start with '/'
|
||||||
func makePOSTResquest(requestPath: String!, params: [NSObject: AnyObject]!){
|
func makePOSTResquest(requestPath: String!, var params: [NSObject: AnyObject]!, onComplete: ServiceResponse){
|
||||||
|
|
||||||
|
|
||||||
/*if(FBSDKAccessToken.currentAccessToken() != nil && FBSDKAccessToken.currentAccessToken().hasGranted("pubish_actions")){*/
|
if(FBSDKAccessToken.currentAccessToken() != nil && FBSDKAccessToken.currentAccessToken().hasGranted("publish_actions")){
|
||||||
|
params["access_token"] = self.apiKey + "|" + self.apiSecret
|
||||||
|
|
||||||
let graphRequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: requestPath, parameters: params, HTTPMethod: "POST")
|
let graphRequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: requestPath + "?access_token=" + FBSDKAccessToken.currentAccessToken().tokenString, parameters: params, HTTPMethod: "POST")
|
||||||
graphRequest.startWithCompletionHandler({
|
graphRequest.startWithCompletionHandler({
|
||||||
(id, result, error) -> Void in
|
(id, result, error) -> Void in
|
||||||
|
|
||||||
@ -186,22 +187,23 @@ extension FacebookGraphAPIManager {
|
|||||||
if(error == nil){
|
if(error == nil){
|
||||||
|
|
||||||
print(result["id"])
|
print(result["id"])
|
||||||
self.delegate?.listingUploadedFB((result["id"] as? String)!)
|
//self.delegate?.listingUploadedFB((result["id"] as? String)!)
|
||||||
print(result)
|
print(result)
|
||||||
|
onComplete((result["id"] as? String)!, nil)
|
||||||
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
print(error)
|
||||||
}
|
}
|
||||||
//save id in firebase so retrieval can be done later
|
//save id in firebase so retrieval can be done later
|
||||||
})
|
})
|
||||||
//}
|
}
|
||||||
/*else{
|
/*else{
|
||||||
print("must reauthenticate facebook")
|
print("must reauthenticate facebook")
|
||||||
}*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*/}
|
||||||
|
|
||||||
//used to delete permissions and listings from users timeline, path must start with '/'
|
//used to delete permissions and listings from users timeline, path must start with '/'
|
||||||
func makeDELETIONResquest(requestPath: String!, params: [NSObject: AnyObject]!) -> Bool{
|
func makeDELETIONResquest(requestPath: String!, params: [NSObject: AnyObject]!) -> Bool{
|
||||||
|
|
||||||
|
|||||||
@ -34,16 +34,6 @@ class HomeViewController: UITabBarController {
|
|||||||
|
|
||||||
for (key, values) in listingDict! {
|
for (key, values) in listingDict! {
|
||||||
let serviceGroup: dispatch_group_t = dispatch_group_create()
|
let serviceGroup: dispatch_group_t = dispatch_group_create()
|
||||||
//@TODO: this is now getting all images but it is only displaying the last retrieved listings's set of images
|
|
||||||
/*dispatch_group_notify(countGroup, dispatch_get_main_queue(), {
|
|
||||||
print(HomeViewController.completionCount)
|
|
||||||
HomeViewController.completionCount += 1
|
|
||||||
if(HomeViewController.completionCount == 4){
|
|
||||||
|
|
||||||
HomeViewController.completionCount = 0
|
|
||||||
dispatch_group_leave(serviceGroup)
|
|
||||||
}
|
|
||||||
})*/
|
|
||||||
self.firebaseManager.ref.observeSingleEventOfType(.Value, withBlock: { snapshot in
|
self.firebaseManager.ref.observeSingleEventOfType(.Value, withBlock: { snapshot in
|
||||||
|
|
||||||
let databaseDict = snapshot.value as! [String : AnyObject]
|
let databaseDict = snapshot.value as! [String : AnyObject]
|
||||||
@ -52,7 +42,6 @@ class HomeViewController: UITabBarController {
|
|||||||
let mainListingImage = storageRef.child("images/\(key)/main.jpg")
|
let mainListingImage = storageRef.child("images/\(key)/main.jpg")
|
||||||
|
|
||||||
|
|
||||||
//@TODO: add in logic to programmatically retrieve each stored image and store in listing object as a way to display each image
|
|
||||||
dispatch_group_enter(serviceGroup)
|
dispatch_group_enter(serviceGroup)
|
||||||
mainListingImage.dataWithMaxSize(10 * 1024 * 1024, completion: {
|
mainListingImage.dataWithMaxSize(10 * 1024 * 1024, completion: {
|
||||||
(dataMain, error) -> Void in
|
(dataMain, error) -> Void in
|
||||||
|
|||||||
@ -23,7 +23,7 @@ class ItemImagePickerViewController: UIViewController {
|
|||||||
@IBOutlet weak var possibleItemImage3: UIImageView!
|
@IBOutlet weak var possibleItemImage3: UIImageView!
|
||||||
@IBOutlet weak var possibleItemImage4: UIImageView!
|
@IBOutlet weak var possibleItemImage4: UIImageView!
|
||||||
@IBOutlet weak var possibleItemImage5: UIImageView!
|
@IBOutlet weak var possibleItemImage5: UIImageView!
|
||||||
|
@IBOutlet weak var itemQuantity: UITextField!
|
||||||
@IBOutlet weak var itemName: UITextField!
|
@IBOutlet weak var itemName: UITextField!
|
||||||
@IBOutlet weak var itemDescription: UITextView!
|
@IBOutlet weak var itemDescription: UITextView!
|
||||||
@IBOutlet weak var itemPrice: UITextField!
|
@IBOutlet weak var itemPrice: UITextField!
|
||||||
@ -48,6 +48,7 @@ class ItemImagePickerViewController: UIViewController {
|
|||||||
self.categoryPicker.dataSource = self
|
self.categoryPicker.dataSource = self
|
||||||
self.itemDescription.delegate = self
|
self.itemDescription.delegate = self
|
||||||
self.itemName.delegate = self
|
self.itemName.delegate = self
|
||||||
|
self.itemQuantity.delegate = self
|
||||||
self.itemPrice.delegate = self
|
self.itemPrice.delegate = self
|
||||||
self.picker.delegate = self
|
self.picker.delegate = self
|
||||||
|
|
||||||
@ -91,13 +92,13 @@ extension ItemImagePickerViewController {
|
|||||||
// Get the new view controller using segue.destinationViewController.
|
// Get the new view controller using segue.destinationViewController.
|
||||||
// Pass the selected object to the new view controller.
|
// Pass the selected object to the new view controller.
|
||||||
|
|
||||||
if(segue.identifier == "SelectNetworkSegue"){
|
if(segue.identifier == "CategoriesSegue"){
|
||||||
print(self.itemName.text!)
|
print(self.itemName.text!)
|
||||||
print(self.itemDescription.text!)
|
print(self.itemDescription.text!)
|
||||||
print(self.possibleItemImageMain.image)
|
print(self.possibleItemImageMain.image)
|
||||||
print(self.itemPrice.text!)
|
print(self.itemPrice.text!)
|
||||||
|
|
||||||
var dict: Dictionary<String, AnyObject!> = ["title":self.itemName.text!, "description":self.itemDescription.text!, "price":self.itemPrice.text!, "category":self.pickerData[self.categoryPicker.selectedRowInComponent(0)]]
|
var dict: Dictionary<String, AnyObject!> = ["title":self.itemName.text!, "description":self.itemDescription.text!, "price":self.itemPrice.text!, "quantity":self.itemQuantity.text!]
|
||||||
var counter = 0
|
var counter = 0
|
||||||
var images: [UIImageView] = []
|
var images: [UIImageView] = []
|
||||||
for bool in self.itemImagesSelections {
|
for bool in self.itemImagesSelections {
|
||||||
@ -124,12 +125,13 @@ extension ItemImagePickerViewController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dict["pictures"] = images
|
dict["pictures"] = images
|
||||||
(segue.destinationViewController as! NetworksTableViewController).setListingDictionary(dict)
|
(segue.destinationViewController as! CategoriesTableViewController).setListingDictionary(dict)
|
||||||
(segue.destinationViewController as! NetworksTableViewController).setManagers(((self.tabBarController as? HomeViewController)?.fbGraphManager)!,
|
(segue.destinationViewController as! CategoriesTableViewController).setManagers(((self.tabBarController as? HomeViewController)?.fbGraphManager)!,
|
||||||
fireManager: ((self.tabBarController as? HomeViewController)?.firebaseManager)!, ebayManager: ((self.tabBarController as? HomeViewController)?.ebayGraphManager)! )
|
fireManager: ((self.tabBarController as? HomeViewController)?.firebaseManager)!, ebayManager: ((self.tabBarController as? HomeViewController)?.ebayGraphManager)!,
|
||||||
|
etsyManager: ((self.tabBarController as? HomeViewController)?.etsyManager)!)
|
||||||
|
|
||||||
(segue.destinationViewController as! NetworksTableViewController).setNetworkSelectFunctionality(true)
|
//(segue.destinationViewController as! NetworksTableViewController).setNetworkSelectFunctionality(true)
|
||||||
print(self.categoryPicker.selectedRowInComponent(0))
|
//print(self.categoryPicker.selectedRowInComponent(0))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -14,11 +14,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
|
//@TODO: Need to make multiple images work for etsy and facebook and need to implement multiple images saving to firebase
|
||||||
class ListingPreviewViewController: UIViewController {
|
class ListingPreviewViewController: UIViewController {
|
||||||
|
|
||||||
//IBOutlets
|
//IBOutlets
|
||||||
@IBOutlet weak var containerScrollView: UIScrollView!
|
@IBOutlet weak var containerScrollView: UIScrollView!
|
||||||
|
@IBOutlet weak var itemQuantity: UITextView!
|
||||||
@IBOutlet weak var itemPicture: UIImageView!
|
@IBOutlet weak var itemPicture: UIImageView!
|
||||||
@IBOutlet weak var itemTitle: UITextView!
|
@IBOutlet weak var itemTitle: UITextView!
|
||||||
@IBOutlet weak var itemDescription: UITextView!
|
@IBOutlet weak var itemDescription: UITextView!
|
||||||
@ -31,9 +32,11 @@ class ListingPreviewViewController: UIViewController {
|
|||||||
private var graphManager: FacebookGraphAPIManager! = nil
|
private var graphManager: FacebookGraphAPIManager! = nil
|
||||||
private var firManager: FirebaseManager! = nil
|
private var firManager: FirebaseManager! = nil
|
||||||
private var ebayManager: EbayWebServiceManager! = nil
|
private var ebayManager: EbayWebServiceManager! = nil
|
||||||
|
private var etsyManager: EtsyRESTAPIManager! = nil
|
||||||
private var itemListingDictionary: Dictionary<String, AnyObject>! = Dictionary<String, AnyObject>()
|
private var itemListingDictionary: Dictionary<String, AnyObject>! = Dictionary<String, AnyObject>()
|
||||||
private var alert = UIAlertController(title: "Listing Published", message: "Your listing has been published", preferredStyle: .Alert)
|
private var alert = UIAlertController(title: "Listing Published", message: "Your listing has been published", preferredStyle: .Alert)
|
||||||
private var lastListingKey: String!
|
private var lastListingKey: String!
|
||||||
|
private var newInProgressListing: Dictionary<String,AnyObject> = Dictionary<String, AnyObject>()
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
@ -44,7 +47,7 @@ class ListingPreviewViewController: UIViewController {
|
|||||||
self.networks.delegate = self
|
self.networks.delegate = self
|
||||||
self.networks.dataSource = self
|
self.networks.dataSource = self
|
||||||
self.networks.backgroundView?.backgroundColor = UIColor.whiteColor()
|
self.networks.backgroundView?.backgroundColor = UIColor.whiteColor()
|
||||||
self.graphManager.delegate = self
|
//self.graphManager.delegate = self
|
||||||
}
|
}
|
||||||
|
|
||||||
override func viewDidAppear(animated: Bool) {
|
override func viewDidAppear(animated: Bool) {
|
||||||
@ -64,6 +67,7 @@ class ListingPreviewViewController: UIViewController {
|
|||||||
self.itemDescription.text = self.itemListingDictionary["description"] as! String
|
self.itemDescription.text = self.itemListingDictionary["description"] as! String
|
||||||
self.itemPrice.text = self.itemListingDictionary["price"] as! String
|
self.itemPrice.text = self.itemListingDictionary["price"] as! String
|
||||||
self.itemCategory.text = self.itemListingDictionary["category"] as! String
|
self.itemCategory.text = self.itemListingDictionary["category"] as! String
|
||||||
|
self.itemQuantity.text = self.itemListingDictionary["quantity"] as! String
|
||||||
}
|
}
|
||||||
|
|
||||||
func setDictionary(netdictionary:Dictionary<String, Bool>, itemdictionary: Dictionary<String, AnyObject!>){
|
func setDictionary(netdictionary:Dictionary<String, Bool>, itemdictionary: Dictionary<String, AnyObject!>){
|
||||||
@ -71,10 +75,11 @@ class ListingPreviewViewController: UIViewController {
|
|||||||
self.itemListingDictionary = itemdictionary
|
self.itemListingDictionary = itemdictionary
|
||||||
}
|
}
|
||||||
|
|
||||||
func setManagers(fbManager: FacebookGraphAPIManager, fireManager: FirebaseManager, ebayManager: EbayWebServiceManager){
|
func setManagers(fbManager: FacebookGraphAPIManager, fireManager: FirebaseManager, ebayManager: EbayWebServiceManager, etsyManager: EtsyRESTAPIManager){
|
||||||
self.graphManager = fbManager
|
self.graphManager = fbManager
|
||||||
self.firManager = fireManager
|
self.firManager = fireManager
|
||||||
self.ebayManager = ebayManager
|
self.ebayManager = ebayManager
|
||||||
|
self.etsyManager = etsyManager
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -92,13 +97,20 @@ class ListingPreviewViewController: UIViewController {
|
|||||||
vc.itemPrice.text? = self.itemPrice.text
|
vc.itemPrice.text? = self.itemPrice.text
|
||||||
vc.itemDescription.text? = self.itemDescription.text
|
vc.itemDescription.text? = self.itemDescription.text
|
||||||
vc.possibleItemImageMain = self.itemPicture
|
vc.possibleItemImageMain = self.itemPicture
|
||||||
|
vc.itemQuantity.text? = self.itemQuantity.text
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension Dictionary {
|
||||||
|
mutating func update(other:Dictionary) {
|
||||||
|
for (key,value) in other {
|
||||||
|
self.updateValue(value, forKey:key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*
|
||||||
//MARK: - FacebookGraphAPIManagerDelegate methods
|
//MARK: - FacebookGraphAPIManagerDelegate methods
|
||||||
extension ListingPreviewViewController: FacebookGraphAPIManagerDelegate {
|
extension ListingPreviewViewController: FacebookGraphAPIManagerDelegate {
|
||||||
func listingUploadedFB(fbID: String) {
|
func listingUploadedFB(fbID: String) {
|
||||||
@ -111,7 +123,7 @@ extension ListingPreviewViewController: FacebookGraphAPIManagerDelegate {
|
|||||||
self.presentViewController(self.alert, animated: true, completion: nil)
|
self.presentViewController(self.alert, animated: true, completion: nil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
//MARK: - IBActions
|
//MARK: - IBActions
|
||||||
extension ListingPreviewViewController {
|
extension ListingPreviewViewController {
|
||||||
@ -125,6 +137,11 @@ extension ListingPreviewViewController {
|
|||||||
|
|
||||||
self.presentViewController(alert, animated: true, completion: nil)
|
self.presentViewController(alert, animated: true, completion: nil)
|
||||||
}else{
|
}else{
|
||||||
|
self.networksDictionary["areNetworksChosen"] = true
|
||||||
|
|
||||||
|
//save listing to private user path in firebase
|
||||||
|
let newListingRef = self.firManager.ref.child("Users").child("\(self.firManager.user_email)").child("user_Listings").childByAutoId()
|
||||||
|
let postingGroup: dispatch_group_t = dispatch_group_create()
|
||||||
|
|
||||||
//post to ebay
|
//post to ebay
|
||||||
if(self.networksDictionary["ebay"]!){
|
if(self.networksDictionary["ebay"]!){
|
||||||
@ -138,17 +155,196 @@ extension ListingPreviewViewController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//post to etsy
|
//post to etsy
|
||||||
if(self.networksDictionary["etsy"]!){
|
if(self.networksDictionary["etsy"]!){
|
||||||
|
|
||||||
|
dispatch_group_enter(postingGroup)
|
||||||
|
var categoryCode: Int!
|
||||||
|
switch self.itemCategory.text {
|
||||||
|
case "Accessories":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["accessories"] as! Int
|
||||||
|
break
|
||||||
|
case "Art":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["art"] as! Int
|
||||||
|
break
|
||||||
|
case "Bath & Beauty":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["bath_and_beauty"] as! Int
|
||||||
|
break
|
||||||
|
case "Bags & Purses":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["bags_and_purses"] as! Int
|
||||||
|
break
|
||||||
|
case "Books":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["books_and_zines"] as! Int
|
||||||
|
break
|
||||||
|
case "Candles":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["candles"] as! Int
|
||||||
|
break
|
||||||
|
case "Ceramics & Pottery":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["ceramics_and_pottery"] as! Int
|
||||||
|
break
|
||||||
|
case "Children":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["children"] as! Int
|
||||||
|
break
|
||||||
|
case "Clothing":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["clothing"] as! Int
|
||||||
|
break
|
||||||
|
case "Crochet":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["crochet"] as! Int
|
||||||
|
break
|
||||||
|
case "Dolls & Miniatures":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["dolls_and_miniatures"] as! Int
|
||||||
|
break
|
||||||
|
case "Everything Else":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["everything_else"] as! Int
|
||||||
|
break
|
||||||
|
case "Furniture":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["furniture"] as! Int
|
||||||
|
break
|
||||||
|
case "Geekery":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["geekery"] as! Int
|
||||||
|
break
|
||||||
|
case "Glass":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["glass"] as! Int
|
||||||
|
break
|
||||||
|
case "Holidays":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["holidays"] as! Int
|
||||||
|
break
|
||||||
|
case "Houseware":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["housewares"] as! Int
|
||||||
|
break
|
||||||
|
case "Jewelry":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["jewelry"] as! Int
|
||||||
|
break
|
||||||
|
case "Knitting":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["knitting"] as! Int
|
||||||
|
break
|
||||||
|
case "Music":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["music"] as! Int
|
||||||
|
break
|
||||||
|
case "Needlecraft":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["needlecraft"] as! Int
|
||||||
|
break
|
||||||
|
case "Paper Goods":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["paper_goods"] as! Int
|
||||||
|
break
|
||||||
|
case "Patterns":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["patterns"] as! Int
|
||||||
|
break
|
||||||
|
case "Plants and Edibles":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["plants_and_edibles"] as! Int
|
||||||
|
break
|
||||||
|
case "Quilts":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["quilts"] as! Int
|
||||||
|
break
|
||||||
|
case "Supplies":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["supplies"] as! Int
|
||||||
|
break
|
||||||
|
case "Toys":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["toys"] as! Int
|
||||||
|
break
|
||||||
|
case "Vintage":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["vintage"] as! Int
|
||||||
|
break
|
||||||
|
case "Wedding":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["weddings"] as! Int
|
||||||
|
break
|
||||||
|
case "Woodworking":
|
||||||
|
categoryCode = EtsyRESTAPIManager.settingsDictionary["categories"]!["woodworking"] as! Int
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
let body: [String: AnyObject] = [ "title": self.itemTitle.text,
|
||||||
|
"quantity":self.itemQuantity.text,
|
||||||
|
"description":self.itemDescription.text,
|
||||||
|
"price":self.itemPrice.text,
|
||||||
|
"category_id":categoryCode,
|
||||||
|
"who_made": EtsyRESTAPIManager.settingsDictionary["who_made"] as! String,
|
||||||
|
"is_supply": EtsyRESTAPIManager.settingsDictionary["is_supply"]!,
|
||||||
|
"when_made": EtsyRESTAPIManager.settingsDictionary["when_made"] as! String,
|
||||||
|
"shipping_template_id": EtsyRESTAPIManager.settingsDictionary["shipping_template_id"] as! Int,
|
||||||
|
"state":"draft"
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
self.etsyManager.sendPOSTRequest("/listings", body: body, onCompletion: {
|
||||||
|
(dict, error) -> Void in
|
||||||
|
|
||||||
|
var results = (dict as! [[String : AnyObject]])[0]
|
||||||
|
|
||||||
|
if((self.newInProgressListing["networkIDs"] == nil)){
|
||||||
|
self.newInProgressListing["networkIDs"] = Dictionary<String, AnyObject>()
|
||||||
|
}
|
||||||
|
var networkIDs = (self.newInProgressListing["networkIDs"] as! Dictionary<String, AnyObject>)
|
||||||
|
networkIDs["etsy"] = results["listing_id"] as? Int
|
||||||
|
self.newInProgressListing["networkIDs"] = networkIDs
|
||||||
|
|
||||||
|
let imageBody = ["listing_id": networkIDs["etsy"] as! Int,
|
||||||
|
//"type":"image/jpg",
|
||||||
|
"image": UIImageJPEGRepresentation(self.itemPicture.image!, 0.45)!]
|
||||||
|
|
||||||
|
self.etsyManager.sendPOSTRequest(("listings/\(networkIDs["etsy"] as! Int)/images"), body: imageBody, onCompletion: {
|
||||||
|
(dict, error) -> Void in
|
||||||
|
|
||||||
|
dispatch_group_leave(postingGroup)
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//post to facebook
|
||||||
|
if(self.networksDictionary["facebook"]!){
|
||||||
|
dispatch_group_enter(postingGroup)
|
||||||
|
|
||||||
//save listing to private user path in firebase
|
let tmpDirURL = NSURL.fileURLWithPath(NSTemporaryDirectory(), isDirectory: true)
|
||||||
let newListingRef = self.firManager.ref.child("Users").child("\(self.firManager.user_email)").child("user_Listings").childByAutoId()
|
let fileURL = tmpDirURL.URLByAppendingPathComponent("main").URLByAppendingPathExtension("jpg")
|
||||||
self.networksDictionary["areNetworksChosen"] = true
|
print("FilePath: \(fileURL.path!)")
|
||||||
let listing: Dictionary<String,AnyObject> = ["listingID": newListingRef.key,
|
do {
|
||||||
|
try UIImageJPEGRepresentation(self.itemPicture.image!, 0.45)!.writeToFile(fileURL.path!, options: NSDataWritingOptions.AtomicWrite)
|
||||||
|
}catch{
|
||||||
|
(error)
|
||||||
|
print(error)
|
||||||
|
}
|
||||||
|
|
||||||
|
//let parameters: Dictionary<String, AnyObject> = ["message":("**"+self.itemTitle.text!+"**\n\n"+"Price: "+self.itemPrice.text! + "\n\n"+self.itemDescription.text!)]
|
||||||
|
|
||||||
|
let parameters: Dictionary<String, AnyObject> = ["Source": UIImageJPEGRepresentation(self.itemPicture.image!, 0.45)!, "published":false]
|
||||||
|
|
||||||
|
self.lastListingKey = newListingRef.key
|
||||||
|
self.graphManager.makePOSTResquest("me/photos", params: parameters, onComplete: {
|
||||||
|
(imageId, error) -> Void in
|
||||||
|
|
||||||
|
var listingParams: Dictionary<String, AnyObject> = ["message":("**"+self.itemTitle.text!+"**\n\n"+"Price: "+self.itemPrice.text! + "\n\n"+self.itemDescription.text!), "attached_media[0]":"{\"media_fbid\":\"\(imageId as! String)\"}"]
|
||||||
|
self.graphManager.makePOSTResquest("me/feed", params: listingParams, onComplete: {
|
||||||
|
(listingId, error) -> Void in
|
||||||
|
|
||||||
|
if((self.newInProgressListing["networkIDs"] == nil)){
|
||||||
|
self.newInProgressListing["networkIDs"] = Dictionary<String, AnyObject>()
|
||||||
|
}
|
||||||
|
var networkIDs = (self.newInProgressListing["networkIDs"] as! Dictionary<String, AnyObject>)
|
||||||
|
networkIDs["facebook"] = listingId as! String
|
||||||
|
self.newInProgressListing["networkIDs"] = networkIDs
|
||||||
|
dispatch_group_leave(postingGroup)
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
/*
|
||||||
|
|
||||||
|
*/
|
||||||
|
})
|
||||||
|
|
||||||
|
//let parameters: Dictionary<String, AnyObject> = ["":""]
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
dispatch_group_notify(postingGroup, dispatch_get_main_queue(), {
|
||||||
|
self.newInProgressListing.update(["listingID": newListingRef.key,
|
||||||
"seller email": (NSUserDefaults.standardUserDefaults().objectForKey("email") as? String)!,
|
"seller email": (NSUserDefaults.standardUserDefaults().objectForKey("email") as? String)!,
|
||||||
"listingTitle": self.itemTitle.text,
|
"listingTitle": self.itemTitle.text,
|
||||||
"listingPrice": self.itemPrice.text,
|
"listingPrice": self.itemPrice.text,
|
||||||
@ -156,7 +352,8 @@ extension ListingPreviewViewController {
|
|||||||
"listingDescription": self.itemDescription.text,
|
"listingDescription": self.itemDescription.text,
|
||||||
"numberOfSupportingImages" : ((self.itemListingDictionary["pictures"] as? [UIImageView])?.count)! - 1,
|
"numberOfSupportingImages" : ((self.itemListingDictionary["pictures"] as? [UIImageView])?.count)! - 1,
|
||||||
"isListingDraft": false,
|
"isListingDraft": false,
|
||||||
"networks": self.networksDictionary]
|
"networks": self.networksDictionary])
|
||||||
|
|
||||||
|
|
||||||
self.firManager.ref.observeSingleEventOfType(.Value, withBlock: { snapshot in
|
self.firManager.ref.observeSingleEventOfType(.Value, withBlock: { snapshot in
|
||||||
|
|
||||||
@ -172,36 +369,15 @@ extension ListingPreviewViewController {
|
|||||||
listingImageRef.putData(UIImageJPEGRepresentation(self.itemPicture.image!, 0.8)!, metadata: nil,completion:
|
listingImageRef.putData(UIImageJPEGRepresentation(self.itemPicture.image!, 0.8)!, metadata: nil,completion:
|
||||||
{(metadata, error) -> Void in
|
{(metadata, error) -> Void in
|
||||||
|
|
||||||
newListingRef.setValue(listing)
|
newListingRef.setValue(self.newInProgressListing)
|
||||||
|
|
||||||
self.alert.title = "Listing saved with error"
|
// self.alert.title = "Listing saved with error"
|
||||||
self.alert.message = "Your listing has been saved but something went wrong when trying to publish to facebook"
|
// self.alert.message = "Your listing has been saved but something went wrong when trying to publish to facebook"
|
||||||
|
|
||||||
|
|
||||||
//let alert = UIAlertController(title: "Listing Published", message: "Your listing has been published", preferredStyle: .Alert)
|
//let alert = UIAlertController(title: "Listing Published", message: "Your listing has been published", preferredStyle: .Alert)
|
||||||
|
|
||||||
self.alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in self.alert.dismissViewControllerAnimated(true, completion: nil)}))
|
// self.alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in self.alert.dismissViewControllerAnimated(true, completion: nil)}))
|
||||||
|
|
||||||
let parameters: Dictionary<String, AnyObject> = ["message":("**"+self.itemTitle.text!+"**\n\n"+"Price: "+self.itemPrice.text! + "\n\n"+self.itemDescription.text!)]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//post to facebook
|
|
||||||
if(self.networksDictionary["facebook"]!){
|
|
||||||
|
|
||||||
//need to reverse process and upload to firebase last so that all network listing id's can be saved to firebase for notification access.
|
|
||||||
self.lastListingKey = newListingRef.key
|
|
||||||
self.graphManager.makePOSTResquest("me/feed", params: parameters)
|
|
||||||
|
|
||||||
//let parameters: Dictionary<String, AnyObject> = ["":""]
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//register new listing id in global path of firebase root'
|
//register new listing id in global path of firebase root'
|
||||||
self.firManager.ref.child("Global_listings").child(newListingRef.key).setValue(newListingRef.key)
|
self.firManager.ref.child("Global_listings").child(newListingRef.key).setValue(newListingRef.key)
|
||||||
@ -213,7 +389,7 @@ extension ListingPreviewViewController {
|
|||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -377,7 +377,7 @@
|
|||||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
<nil key="highlightedColor"/>
|
<nil key="highlightedColor"/>
|
||||||
</label>
|
</label>
|
||||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="1" minimumFontSize="17" id="otX-Vg-NmH" userLabel="price">
|
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="1" minimumFontSize="17" id="otX-Vg-NmH" userLabel="quantity">
|
||||||
<rect key="frame" x="136" y="81" width="88" height="21"/>
|
<rect key="frame" x="136" y="81" width="88" height="21"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
|
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
@ -418,6 +418,9 @@
|
|||||||
<state key="normal" title="Choose Category">
|
<state key="normal" title="Choose Category">
|
||||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
</state>
|
</state>
|
||||||
|
<connections>
|
||||||
|
<segue destination="dll-3G-IQL" kind="modal" identifier="CategoriesSegue" id="IJp-Zc-nNh"/>
|
||||||
|
</connections>
|
||||||
</button>
|
</button>
|
||||||
</subviews>
|
</subviews>
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
@ -437,6 +440,7 @@
|
|||||||
<outlet property="itemDescription" destination="osz-kc-aer" id="qN7-31-UDs"/>
|
<outlet property="itemDescription" destination="osz-kc-aer" id="qN7-31-UDs"/>
|
||||||
<outlet property="itemName" destination="QIK-Tn-AHX" id="YsY-i0-9oR"/>
|
<outlet property="itemName" destination="QIK-Tn-AHX" id="YsY-i0-9oR"/>
|
||||||
<outlet property="itemPrice" destination="PQC-e5-VHo" id="2Xi-s1-i8r"/>
|
<outlet property="itemPrice" destination="PQC-e5-VHo" id="2Xi-s1-i8r"/>
|
||||||
|
<outlet property="itemQuantity" destination="otX-Vg-NmH" id="NAV-nK-usy"/>
|
||||||
<outlet property="possibleItemImage2" destination="smo-O2-fSf" id="3sX-Jr-S82"/>
|
<outlet property="possibleItemImage2" destination="smo-O2-fSf" id="3sX-Jr-S82"/>
|
||||||
<outlet property="possibleItemImage3" destination="ZfH-0j-qER" id="VGg-RB-whX"/>
|
<outlet property="possibleItemImage3" destination="ZfH-0j-qER" id="VGg-RB-whX"/>
|
||||||
<outlet property="possibleItemImage4" destination="Krl-yM-1dX" id="21h-RC-hKj"/>
|
<outlet property="possibleItemImage4" destination="Krl-yM-1dX" id="21h-RC-hKj"/>
|
||||||
@ -1025,6 +1029,7 @@
|
|||||||
<outlet property="itemDescription" destination="u7b-0N-xli" id="d1N-lw-6sw"/>
|
<outlet property="itemDescription" destination="u7b-0N-xli" id="d1N-lw-6sw"/>
|
||||||
<outlet property="itemPicture" destination="K0z-pp-hzH" id="6Zm-Ig-Rm3"/>
|
<outlet property="itemPicture" destination="K0z-pp-hzH" id="6Zm-Ig-Rm3"/>
|
||||||
<outlet property="itemPrice" destination="Jh9-KG-0Yt" id="nbh-aq-W0b"/>
|
<outlet property="itemPrice" destination="Jh9-KG-0Yt" id="nbh-aq-W0b"/>
|
||||||
|
<outlet property="itemQuantity" destination="shU-ew-26O" id="yNg-ov-7q5"/>
|
||||||
<outlet property="itemTitle" destination="WuZ-2K-lz7" id="EkY-UX-lSj"/>
|
<outlet property="itemTitle" destination="WuZ-2K-lz7" id="EkY-UX-lSj"/>
|
||||||
<outlet property="networks" destination="MS3-nc-8va" id="duP-BL-Qp2"/>
|
<outlet property="networks" destination="MS3-nc-8va" id="duP-BL-Qp2"/>
|
||||||
<segue destination="0di-oP-cGQ" kind="modal" identifier="EditListingSegue" id="rkZ-c8-XJc"/>
|
<segue destination="0di-oP-cGQ" kind="modal" identifier="EditListingSegue" id="rkZ-c8-XJc"/>
|
||||||
@ -1995,7 +2000,7 @@
|
|||||||
<!--categories-->
|
<!--categories-->
|
||||||
<scene sceneID="e5k-kQ-o33">
|
<scene sceneID="e5k-kQ-o33">
|
||||||
<objects>
|
<objects>
|
||||||
<viewController title="categories" id="dll-3G-IQL" sceneMemberID="viewController">
|
<viewController title="categories" id="dll-3G-IQL" customClass="CategoriesTableViewController" customModule="Vendoo" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
<view key="view" contentMode="scaleToFill" id="S0F-gj-Dpz">
|
<view key="view" contentMode="scaleToFill" id="S0F-gj-Dpz">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
@ -2005,549 +2010,100 @@
|
|||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
<prototypes>
|
<prototypes>
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="NVz-An-tWd">
|
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="CategoryCell" id="NVz-An-tWd" customClass="CategoryCell" customModule="Vendoo" customModuleProvider="target">
|
||||||
<rect key="frame" x="0.0" y="28" width="375" height="44"/>
|
<rect key="frame" x="0.0" y="28" width="375" height="44"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="NVz-An-tWd" id="YDe-Pd-Fu2">
|
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="NVz-An-tWd" id="YDe-Pd-Fu2">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Antiques" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="pKO-dl-Ggb">
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="pKO-dl-Ggb">
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
<rect key="frame" x="8" y="11" width="175" height="21"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
<nil key="highlightedColor"/>
|
<nil key="highlightedColor"/>
|
||||||
</label>
|
</label>
|
||||||
</subviews>
|
<collectionView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" id="7Xh-YZ-bvC">
|
||||||
</tableViewCellContentView>
|
<rect key="frame" x="191" y="-9" width="176" height="61"/>
|
||||||
</tableViewCell>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="Ntj-Ll-Fxf">
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
<rect key="frame" x="0.0" y="72" width="375" height="44"/>
|
<collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="5" minimumInteritemSpacing="5" id="eY7-Fs-6Kn">
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<size key="itemSize" width="40" height="40"/>
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Ntj-Ll-Fxf" id="rhn-SZ-asL">
|
<size key="headerReferenceSize" width="0.0" height="0.0"/>
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
<size key="footerReferenceSize" width="0.0" height="0.0"/>
|
||||||
|
<inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||||
|
</collectionViewFlowLayout>
|
||||||
|
<cells>
|
||||||
|
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="ebay" id="mCV-zx-xeL">
|
||||||
|
<rect key="frame" x="0.0" y="10.5" width="40" height="40"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Art" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="TcO-R4-RNm">
|
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ebay_icon" id="lUG-4k-oqy">
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
</imageView>
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
</subviews>
|
||||||
</tableViewCellContentView>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
</tableViewCell>
|
</view>
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="40E-Ix-HeI">
|
<size key="customSize" width="40" height="40"/>
|
||||||
<rect key="frame" x="0.0" y="116" width="375" height="44"/>
|
</collectionViewCell>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="center" reuseIdentifier="amazon" id="LkM-kC-Zpp">
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="40E-Ix-HeI" id="mS4-Gf-voB">
|
<rect key="frame" x="45" y="10.5" width="40" height="40"/>
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Baby" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="ixK-Y9-Gez">
|
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="amazon_icon" id="BDv-y8-P6w">
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
</imageView>
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
</subviews>
|
||||||
</tableViewCellContentView>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
</tableViewCell>
|
</view>
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="ccy-c5-GEb">
|
</collectionViewCell>
|
||||||
<rect key="frame" x="0.0" y="160" width="375" height="44"/>
|
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" tag="2" contentMode="center" reuseIdentifier="etsy" id="LmS-RK-wqT">
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<rect key="frame" x="90" y="10.5" width="40" height="40"/>
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ccy-c5-GEb" id="JJB-uf-Y7r">
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Books" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Th8-iJ-Hfh">
|
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="etsy_icon" id="Ic1-xd-4Oc">
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
</imageView>
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
</subviews>
|
||||||
</tableViewCellContentView>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
</tableViewCell>
|
</view>
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="xaT-7C-dIj">
|
</collectionViewCell>
|
||||||
<rect key="frame" x="0.0" y="204" width="375" height="44"/>
|
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" tag="3" contentMode="center" reuseIdentifier="facebook" id="E6f-Dd-zq3">
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<rect key="frame" x="135" y="10.5" width="40" height="40"/>
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="xaT-7C-dIj" id="C70-VY-weq">
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Business & Industrial" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="jBx-Pm-q17">
|
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="facebook_icon" id="aKc-GO-v8c">
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
</imageView>
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
</subviews>
|
||||||
<nil key="highlightedColor"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
</label>
|
</view>
|
||||||
</subviews>
|
</collectionViewCell>
|
||||||
</tableViewCellContentView>
|
</cells>
|
||||||
</tableViewCell>
|
</collectionView>
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="3D5-Dr-Pdi">
|
|
||||||
<rect key="frame" x="0.0" y="248" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="3D5-Dr-Pdi" id="jCw-pG-d4H">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cameras & Photo" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="C0r-MH-nLQ">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="mUF-mg-8kA">
|
|
||||||
<rect key="frame" x="0.0" y="292" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="mUF-mg-8kA" id="Rcd-Mo-ed4">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cell Phones & Accessories" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="src-qw-4pB">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="PaM-CM-bCs">
|
|
||||||
<rect key="frame" x="0.0" y="336" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="PaM-CM-bCs" id="cTH-g8-bJj">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Clothing, Shoes, and Accessories" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="J1P-lX-Zrf">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="YUW-83-PU9">
|
|
||||||
<rect key="frame" x="0.0" y="380" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="YUW-83-PU9" id="Aau-3T-boW">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Coins & Money" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="hgs-FM-mQi">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="039-O5-LjA">
|
|
||||||
<rect key="frame" x="0.0" y="424" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="039-O5-LjA" id="wiW-Zm-908">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Collectibles" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="AQp-kB-3sa">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="kMZ-gc-Lx7">
|
|
||||||
<rect key="frame" x="0.0" y="468" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="kMZ-gc-Lx7" id="lQk-Rd-HtY">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Computers/Tablets" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="xhi-9e-TFE">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="Jqw-Vp-w7a">
|
|
||||||
<rect key="frame" x="0.0" y="512" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Jqw-Vp-w7a" id="gW8-nd-qgd">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Electronics" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="M4u-u2-Vsf">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="eQS-uV-OJz">
|
|
||||||
<rect key="frame" x="0.0" y="556" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="eQS-uV-OJz" id="kA8-Uk-ntR">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Crafts" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="ysv-UF-n07">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="7uP-rh-iva">
|
|
||||||
<rect key="frame" x="0.0" y="600" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7uP-rh-iva" id="h9x-3M-sDz">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Dolls & Bears" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="7U9-tC-28N">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="BfI-jN-aeW">
|
|
||||||
<rect key="frame" x="0.0" y="644" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="BfI-jN-aeW" id="PdD-og-7ea">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Movies" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="ZbO-Cu-3qE">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="ivF-Jg-tnw">
|
|
||||||
<rect key="frame" x="0.0" y="688" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ivF-Jg-tnw" id="MfN-Sf-7E1">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Automototive" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="kjO-sz-XAD">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="OuQ-it-xcA">
|
|
||||||
<rect key="frame" x="0.0" y="732" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="OuQ-it-xcA" id="vug-eG-R4W">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Entertainment" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="rvs-yt-mTa">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="BYm-Yu-DYN">
|
|
||||||
<rect key="frame" x="0.0" y="776" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="BYm-Yu-DYN" id="TXn-0h-UFJ">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Gift Cards & Coupons" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="8nh-ka-9TH">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="pqh-fT-I3x">
|
|
||||||
<rect key="frame" x="0.0" y="820" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="pqh-fT-I3x" id="o8K-hY-yFT">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Health & Beauty" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="lcH-u5-BVT">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="9Ci-T0-1PW">
|
|
||||||
<rect key="frame" x="0.0" y="864" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="9Ci-T0-1PW" id="XvS-TS-bXw">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Home & Garden" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="an8-tQ-ENC">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="24Q-ao-tWX">
|
|
||||||
<rect key="frame" x="0.0" y="908" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="24Q-ao-tWX" id="Sih-n9-qyZ">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Jewelry & Watches" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Yib-P7-lg5">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="SyD-fV-5BY">
|
|
||||||
<rect key="frame" x="0.0" y="952" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="SyD-fV-5BY" id="LVY-tt-iyV">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Music" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="8Cy-hd-ZXl">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="Qro-iK-T2O">
|
|
||||||
<rect key="frame" x="0.0" y="996" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Qro-iK-T2O" id="uQZ-3g-BL2">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Musical Instruments" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="5eM-1H-kcL">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="JVp-9P-ose">
|
|
||||||
<rect key="frame" x="0.0" y="1040" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="JVp-9P-ose" id="g6N-ps-fnQ">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Pet Supplies" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="OWu-Ji-Y5N">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="485-8x-Vo7">
|
|
||||||
<rect key="frame" x="0.0" y="1084" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="485-8x-Vo7" id="N9K-FS-v1M">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Pottery & Glass" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Ylh-YR-XaL">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="ip7-np-iYl">
|
|
||||||
<rect key="frame" x="0.0" y="1128" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ip7-np-iYl" id="wiG-Ep-epk">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sporting Goods" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Ew9-xO-S3Y">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="fVV-go-DzF">
|
|
||||||
<rect key="frame" x="0.0" y="1172" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="fVV-go-DzF" id="Mu3-U9-SNV">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sports Memorabelia" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="U0h-90-uxc">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="MJX-2n-HmR">
|
|
||||||
<rect key="frame" x="0.0" y="1216" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="MJX-2n-HmR" id="wcK-uX-HS6">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Stamps" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="vxc-EW-57O">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="UrK-h3-wHG">
|
|
||||||
<rect key="frame" x="0.0" y="1260" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="UrK-h3-wHG" id="iBb-nL-AbE">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Tickets" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="9Lm-Qe-XzR">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="8aZ-II-Ynw">
|
|
||||||
<rect key="frame" x="0.0" y="1304" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8aZ-II-Ynw" id="75o-Oz-GXZ">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Toys & Hobbies" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="v8v-qT-40j">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="IHn-XQ-FhV">
|
|
||||||
<rect key="frame" x="0.0" y="1348" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="IHn-XQ-FhV" id="z5Y-M0-UmJ">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Travel" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="s3T-E7-WHS">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="Kbi-d3-J0i">
|
|
||||||
<rect key="frame" x="0.0" y="1392" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Kbi-d3-J0i" id="CKR-T9-qAa">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Video Games" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="uO3-Tf-f4J">
|
|
||||||
<rect key="frame" x="8" y="11" width="359" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
</subviews>
|
||||||
</tableViewCellContentView>
|
</tableViewCellContentView>
|
||||||
|
<connections>
|
||||||
|
<outlet property="categoryName" destination="pKO-dl-Ggb" id="dlI-42-CEd"/>
|
||||||
|
<outlet property="networks" destination="7Xh-YZ-bvC" id="cYh-sp-kVZ"/>
|
||||||
|
</connections>
|
||||||
</tableViewCell>
|
</tableViewCell>
|
||||||
</prototypes>
|
</prototypes>
|
||||||
<sections/>
|
<sections/>
|
||||||
@ -2560,6 +2116,9 @@
|
|||||||
<rect key="frame" x="8" y="16" width="46" height="30"/>
|
<rect key="frame" x="8" y="16" width="46" height="30"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<state key="normal" title="Back"/>
|
<state key="normal" title="Back"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="cancelCategorySelection:" destination="dll-3G-IQL" eventType="touchUpInside" id="k0I-oY-cmp"/>
|
||||||
|
</connections>
|
||||||
</button>
|
</button>
|
||||||
</subviews>
|
</subviews>
|
||||||
<color key="backgroundColor" red="0.2784313725" green="0.80392156859999997" blue="0.68235294120000001" alpha="1" colorSpace="calibratedRGB"/>
|
<color key="backgroundColor" red="0.2784313725" green="0.80392156859999997" blue="0.68235294120000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
@ -2568,10 +2127,14 @@
|
|||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
</view>
|
</view>
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
||||||
|
<connections>
|
||||||
|
<outlet property="table" destination="z3N-JL-tlL" id="jcH-lJ-Fw3"/>
|
||||||
|
<segue destination="7B0-PA-tjd" kind="modal" identifier="NetworkSelectionSegue" id="eaI-bm-1aI"/>
|
||||||
|
</connections>
|
||||||
</viewController>
|
</viewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="VhZ-aP-JDs" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="VhZ-aP-JDs" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="1680.5" y="-624.5"/>
|
<point key="canvasLocation" x="1654.5" y="-649.5"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Ebay Settings-->
|
<!--Ebay Settings-->
|
||||||
<scene sceneID="bc4-4H-BM8">
|
<scene sceneID="bc4-4H-BM8">
|
||||||
@ -2813,8 +2376,9 @@
|
|||||||
<inferredMetricsTieBreakers>
|
<inferredMetricsTieBreakers>
|
||||||
<segue reference="Ds4-LY-IRj"/>
|
<segue reference="Ds4-LY-IRj"/>
|
||||||
<segue reference="syc-IR-LNQ"/>
|
<segue reference="syc-IR-LNQ"/>
|
||||||
<segue reference="Gnt-iE-cW9"/>
|
<segue reference="NOz-ya-avj"/>
|
||||||
<segue reference="vCG-jU-HYF"/>
|
<segue reference="KKl-Gj-ZVc"/>
|
||||||
|
<segue reference="rkZ-c8-XJc"/>
|
||||||
</inferredMetricsTieBreakers>
|
</inferredMetricsTieBreakers>
|
||||||
<color key="tintColor" red="0.2784313725" green="0.80392156859999997" blue="0.68235294120000001" alpha="1" colorSpace="calibratedRGB"/>
|
<color key="tintColor" red="0.2784313725" green="0.80392156859999997" blue="0.68235294120000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
</document>
|
</document>
|
||||||
|
|||||||
@ -88,10 +88,11 @@ extension NetworksTableViewController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func setManagers(fbManager: FacebookGraphAPIManager, fireManager: FirebaseManager, ebayManager: EbayWebServiceManager){
|
func setManagers(fbManager: FacebookGraphAPIManager, fireManager: FirebaseManager, ebayManager: EbayWebServiceManager, etsyManager: EtsyRESTAPIManager){
|
||||||
self.graphManager = fbManager
|
self.graphManager = fbManager
|
||||||
self.firManager = fireManager
|
self.firManager = fireManager
|
||||||
self.ebayManager = ebayManager
|
self.ebayManager = ebayManager
|
||||||
|
self.etsyManager = etsyManager
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -108,7 +109,7 @@ extension NetworksTableViewController {
|
|||||||
if(segue.identifier == "ItemPreviewSegue"){
|
if(segue.identifier == "ItemPreviewSegue"){
|
||||||
|
|
||||||
(segue.destinationViewController as! ListingPreviewViewController).setDictionary(self.networksDictionary, itemdictionary: self.itemListingDictionary)
|
(segue.destinationViewController as! ListingPreviewViewController).setDictionary(self.networksDictionary, itemdictionary: self.itemListingDictionary)
|
||||||
(segue.destinationViewController as! ListingPreviewViewController).setManagers(self.graphManager, fireManager: self.firManager, ebayManager: self.ebayManager)
|
(segue.destinationViewController as! ListingPreviewViewController).setManagers(self.graphManager, fireManager: self.firManager, ebayManager: self.ebayManager, etsyManager: self.etsyManager)
|
||||||
|
|
||||||
}
|
}
|
||||||
if(segue.identifier == "EtsySettingsSegue") {
|
if(segue.identifier == "EtsySettingsSegue") {
|
||||||
@ -415,12 +416,12 @@ extension NetworksTableViewController: UITableViewDelegate {
|
|||||||
cell = (self.tableView.dequeueReusableCellWithIdentifier("etsy", forIndexPath: indexPath) as! EtsyTableViewCell)
|
cell = (self.tableView.dequeueReusableCellWithIdentifier("etsy", forIndexPath: indexPath) as! EtsyTableViewCell)
|
||||||
cell.setSelected(false, animated: false)
|
cell.setSelected(false, animated: false)
|
||||||
|
|
||||||
|
|
||||||
//selection code for etsy
|
//selection code for etsy
|
||||||
if(cell.networkToggle.on == true){
|
if(cell.networkToggle.on == true){
|
||||||
|
|
||||||
dispatch_async(dispatch_get_main_queue(), { () -> Void in
|
dispatch_async(dispatch_get_main_queue(), { () -> Void in
|
||||||
cell.networkToggle.setOn(false, animated: true)
|
cell.networkToggle.setOn(false, animated: true)
|
||||||
|
cell.networkToggle.on = false
|
||||||
})
|
})
|
||||||
|
|
||||||
//code to deselect network
|
//code to deselect network
|
||||||
@ -430,6 +431,7 @@ extension NetworksTableViewController: UITableViewDelegate {
|
|||||||
|
|
||||||
dispatch_async(dispatch_get_main_queue(), { () -> Void in
|
dispatch_async(dispatch_get_main_queue(), { () -> Void in
|
||||||
cell.networkToggle.setOn(true, animated: true)
|
cell.networkToggle.setOn(true, animated: true)
|
||||||
|
cell.networkToggle.on = true
|
||||||
})
|
})
|
||||||
//code to select network
|
//code to select network
|
||||||
self.networksDictionary["etsy"] = true
|
self.networksDictionary["etsy"] = true
|
||||||
@ -489,7 +491,7 @@ extension NetworksTableViewController: UITableViewDelegate {
|
|||||||
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
/*
|
||||||
//case where class is being used to authorize a network for the app to post on
|
//case where class is being used to authorize a network for the app to post on
|
||||||
switch (indexPath.row){
|
switch (indexPath.row){
|
||||||
case 0:
|
case 0:
|
||||||
@ -630,7 +632,7 @@ extension NetworksTableViewController: UITableViewDelegate {
|
|||||||
break
|
break
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -753,6 +755,14 @@ extension NetworksTableViewController {
|
|||||||
})
|
})
|
||||||
break
|
break
|
||||||
case is FBTableViewCell.Type:
|
case is FBTableViewCell.Type:
|
||||||
|
let tabBar = self.tabBarController
|
||||||
|
((tabBar as? HomeViewController)?.fbGraphManager.authorizeApp(self))!
|
||||||
|
dispatch_async(dispatch_get_main_queue(), {
|
||||||
|
sender.setTitle("Logout", forState: UIControlState.Normal)
|
||||||
|
(sender.superview?.superview as! FBTableViewCell).settingsBtn.enabled = true
|
||||||
|
(sender.superview?.superview as! FBTableViewCell).settingsBtn.hidden = false
|
||||||
|
})
|
||||||
|
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
break
|
break
|
||||||
@ -783,6 +793,13 @@ extension NetworksTableViewController {
|
|||||||
})
|
})
|
||||||
break
|
break
|
||||||
case is FBTableViewCell.Type:
|
case is FBTableViewCell.Type:
|
||||||
|
let tabBar = self.tabBarController
|
||||||
|
((tabBar as? HomeViewController)?.fbGraphManager.deAuthorizeApp(self))!
|
||||||
|
dispatch_async(dispatch_get_main_queue(), {
|
||||||
|
sender.setTitle("Login", forState: UIControlState.Normal)
|
||||||
|
(sender.superview?.superview as! FBTableViewCell).settingsBtn.enabled = false
|
||||||
|
(sender.superview?.superview as! FBTableViewCell).settingsBtn.hidden = true
|
||||||
|
})
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
break
|
break
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user