Manos Chorianopoulos

PopupMerchantsViewController dynamic list

...@@ -655,17 +655,32 @@ import AVFoundation ...@@ -655,17 +655,32 @@ import AVFoundation
655 655
656 @IBAction func redeemButtomAction(_ sender: Any) { 656 @IBAction func redeemButtomAction(_ sender: Any) {
657 if (isSMCoupon == true) { 657 if (isSMCoupon == true) {
658 - let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self)) 658 + var availableShopsList:Array<swiftApi.ShopAvailabilityItemModel> = []
659 - if let popupVC = storyboard.instantiateViewController(withIdentifier: "PopupMerchantsViewController") as? SwiftWarplyFramework.PopupMerchantsViewController { 659 + let smCouponsetsList = swiftApi().getCouponSetsDealsList()
660 - popupVC.modalPresentationStyle = .overCurrentContext 660 + let couponsetUuid = coupon?.couponset_uuid
661 - popupVC.modalTransitionStyle = .crossDissolve 661 + for couponset in smCouponsetsList {
662 - popupVC.coupon = coupon 662 + if (couponset.uuid == couponsetUuid) {
663 -// popupVC.headerText = "Βρες το προϊον στα supermarket" 663 + availableShopsList = couponset.shop_availability ?? []
664 -// popupVC.buttonTitle = "Βρες το" 664 + break;
665 - popupVC.buttonIcon = "shopping_cart" 665 + }
666 -// popupVC.footerText = "Η διαθεσιμότητα ενδέχεται να διαφέρει ανάλογα με την τοποθεσία." 666 + }
667 +
668 + if (availableShopsList.count > 0) {
669 + let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self))
670 + if let popupVC = storyboard.instantiateViewController(withIdentifier: "PopupMerchantsViewController") as? SwiftWarplyFramework.PopupMerchantsViewController {
671 + popupVC.modalPresentationStyle = .overCurrentContext
672 + popupVC.modalTransitionStyle = .crossDissolve
673 + popupVC.availableShopsList = availableShopsList
674 + // popupVC.headerText = "Βρες το προϊον στα supermarket"
675 + // popupVC.buttonTitle = "Βρες το"
676 + popupVC.buttonIcon = "shopping_cart"
677 + // popupVC.footerText = "Η διαθεσιμότητα ενδέχεται να διαφέρει ανάλογα με την τοποθεσία."
678 +
679 + self.present(popupVC, animated: true, completion: nil)
680 + }
667 681
668 - self.present(popupVC, animated: true, completion: nil) 682 + } else {
683 + // TODO: add error popup
669 } 684 }
670 685
671 } else { 686 } else {
......
...@@ -23,6 +23,8 @@ class MerchantTableViewCell: UITableViewCell { ...@@ -23,6 +23,8 @@ class MerchantTableViewCell: UITableViewCell {
23 // Delegate variable 23 // Delegate variable
24 weak var delegate: MerchantTableViewCellDelegate? 24 weak var delegate: MerchantTableViewCellDelegate?
25 25
26 + let merchantList:Array<swiftApi.MerchantModel> = swiftApi().getMerchantList()
27 +
26 var postImageURL: String? { 28 var postImageURL: String? {
27 didSet { 29 didSet {
28 if let url = postImageURL { 30 if let url = postImageURL {
...@@ -71,9 +73,14 @@ class MerchantTableViewCell: UITableViewCell { ...@@ -71,9 +73,14 @@ class MerchantTableViewCell: UITableViewCell {
71 contentView.frame = contentView.frame.inset(by: margins) 73 contentView.frame = contentView.frame.inset(by: margins)
72 } 74 }
73 75
74 - func configureCell(merchant: swiftApi.MerchantModel, buttonTitle: String, iconImage: String?) { 76 + func configureCell(shop: swiftApi.ShopAvailabilityItemModel, buttonTitle: String, iconImage: String?) {
75 77
76 - self.postImageURL = merchant._img_preview 78 + for merchant in merchantList {
79 + if (merchant._uuid == shop._merchant_uuid) {
80 + self.postImageURL = merchant._img_preview
81 + break;
82 + }
83 + }
77 84
78 buttonTitleLable.text = buttonTitle 85 buttonTitleLable.text = buttonTitle
79 86
......
...@@ -13,14 +13,13 @@ class PopupMerchantsViewController: UIViewController { ...@@ -13,14 +13,13 @@ class PopupMerchantsViewController: UIViewController {
13 @IBOutlet weak var closeButton: UIButton! 13 @IBOutlet weak var closeButton: UIButton!
14 @IBOutlet weak var tableView: DynamicSizeTableView! 14 @IBOutlet weak var tableView: DynamicSizeTableView!
15 15
16 - public var coupon: swiftApi.CouponItemModel? 16 + public var availableShopsList:Array<swiftApi.ShopAvailabilityItemModel> = []
17 +// public var coupon: swiftApi.CouponItemModel?
17 public var headerText: String? = "Βρες το προϊον στα supermarket" 18 public var headerText: String? = "Βρες το προϊον στα supermarket"
18 public var buttonTitle: String? = "Βρες το" 19 public var buttonTitle: String? = "Βρες το"
19 public var buttonIcon: String? 20 public var buttonIcon: String?
20 public var footerText: String? = "Η διαθεσιμότητα ενδέχεται να διαφέρει ανάλογα με την τοποθεσία." 21 public var footerText: String? = "Η διαθεσιμότητα ενδέχεται να διαφέρει ανάλογα με την τοποθεσία."
21 22
22 - let merchantList:Array<swiftApi.MerchantModel> = swiftApi().getMerchantList()
23 -
24 override func viewDidLoad() { 23 override func viewDidLoad() {
25 super.viewDidLoad() 24 super.viewDidLoad()
26 25
...@@ -59,7 +58,7 @@ extension PopupMerchantsViewController: UITableViewDelegate, UITableViewDataSour ...@@ -59,7 +58,7 @@ extension PopupMerchantsViewController: UITableViewDelegate, UITableViewDataSour
59 58
60 public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 59 public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
61 if (section == 0) { 60 if (section == 0) {
62 - return self.merchantList.count 61 + return self.availableShopsList.count
63 } else if (section == 1) { 62 } else if (section == 1) {
64 return 1 63 return 1
65 } else { 64 } else {
...@@ -82,7 +81,7 @@ extension PopupMerchantsViewController: UITableViewDelegate, UITableViewDataSour ...@@ -82,7 +81,7 @@ extension PopupMerchantsViewController: UITableViewDelegate, UITableViewDataSour
82 public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 81 public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
83 if (indexPath.section == 0) { 82 if (indexPath.section == 0) {
84 let cell = tableView.dequeueReusableCell(withIdentifier: "MerchantTableViewCellId", for: indexPath) as! MerchantTableViewCell 83 let cell = tableView.dequeueReusableCell(withIdentifier: "MerchantTableViewCellId", for: indexPath) as! MerchantTableViewCell
85 - cell.configureCell(merchant: merchantList[indexPath.row], buttonTitle: self.buttonTitle ?? "Βρες το", iconImage: buttonIcon) 84 + cell.configureCell(shop: availableShopsList[indexPath.row], buttonTitle: self.buttonTitle ?? "Βρες το", iconImage: buttonIcon)
86 85
87 // Set the delegate to self 86 // Set the delegate to self
88 cell.delegate = self 87 cell.delegate = self
...@@ -98,20 +97,9 @@ extension PopupMerchantsViewController: UITableViewDelegate, UITableViewDataSour ...@@ -98,20 +97,9 @@ extension PopupMerchantsViewController: UITableViewDelegate, UITableViewDataSour
98 } 97 }
99 98
100 public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 99 public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
101 -// self.dismiss(animated: true, completion: {}) 100 + // Do nothing - tap handled with protocol
102 - 101 +// print(" didSelectRowAt Button tapped in row \(indexPath.row)")
103 - // TODO: DELETE LOGS
104 - print(" didSelectRowAt Button tapped in row \(indexPath.row)")
105 -
106 - // TODO: Open merchant url
107 102
108 - // Logs
109 -// let couponSetData: swiftApi.CouponSetItemModel? = coupons[indexPath.row].couponset_data
110 -// print("Coupon clicked: " + (coupons[indexPath.row].coupon ?? ""))
111 -// print("Coupon Name clicked: " + (couponSetData?.name ?? ""))
112 -// print("Coupon Description clicked: " + (couponSetData?.short_description ?? ""))
113 -// print("Coupon Expiration clicked: " + (coupons[indexPath.row].expiration ?? ""))
114 -
115 } 103 }
116 104
117 public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 105 public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
...@@ -138,11 +126,14 @@ extension PopupMerchantsViewController: MerchantTableViewCellDelegate { ...@@ -138,11 +126,14 @@ extension PopupMerchantsViewController: MerchantTableViewCellDelegate {
138 func didTapButton(in cell: MerchantTableViewCell) { 126 func didTapButton(in cell: MerchantTableViewCell) {
139 // Find the index path of the cell where the button was tapped 127 // Find the index path of the cell where the button was tapped
140 if let indexPath = tableView.indexPath(for: cell) { 128 if let indexPath = tableView.indexPath(for: cell) {
141 - // TODO: DELETE LOGS 129 + let urlString = availableShopsList[indexPath.row]._product_url
142 - print("Button tapped in row \(indexPath.row)") 130 + if let url = URL(string: urlString){
143 - print("Button tapped cell: \(cell)") 131 + if UIApplication.shared.canOpenURL(url) {
144 - // Handle the button tap action here 132 + UIApplication.shared.open(url, options: [:], completionHandler: nil)
133 + }
134 + }
145 } 135 }
136 +
146 } 137 }
147 138
148 } 139 }
......