2 //  BookTableViewCell.swift
 
   5 //  Created by Pawel Dabrowski on 14/06/2018.
 
   6 //  Copyright © 2018 Fundacja Nowoczesna Polska. All rights reserved.
 
  12 protocol BookTableViewCellDelegate: class{
 
  13     func bookTableViewCellDelegateDidTapTrashButton(bookSlug: String, indexPath: IndexPath?)
 
  16 class BookTableViewCell: UITableViewCell {
 
  18     weak var delegate: BookTableViewCellDelegate?
 
  20     @IBOutlet weak var coverImageView: UIImageView!
 
  21     @IBOutlet weak var authorLabel: UILabel!
 
  22     @IBOutlet weak var titleLabel: UILabel!
 
  24     @IBOutlet weak var epochTitleLabel: UILabel!
 
  25     @IBOutlet weak var kindTitleLabel: UILabel!
 
  26     @IBOutlet weak var genreTitleLabel: UILabel!
 
  28     @IBOutlet weak var epochLabel: UILabel!
 
  29     @IBOutlet weak var kindLabel: UILabel!
 
  30     @IBOutlet weak var genreLabel: UILabel!
 
  32     @IBOutlet weak var descFirstImageView: UIImageView!
 
  33     @IBOutlet weak var descFirstLabel: UILabel!
 
  34     @IBOutlet weak var descSecondImageView: UIImageView!
 
  35     @IBOutlet weak var descSecondLabel: UILabel!
 
  37     @IBOutlet weak var epochTopConstraint: NSLayoutConstraint!
 
  39     @IBOutlet weak var bookDescriptionView: BookDescriptionView!
 
  41     private var bookSlug = ""
 
  42     private var indexPath: IndexPath?
 
  44     override func awakeFromNib() {
 
  46         coverImageView.layer.cornerRadius = 4
 
  49     func setup(bookModel: BookModel){
 
  51         bookDescriptionView.setup(bookModel: bookModel)
 
  53         coverImageView.image = nil
 
  54         bookSlug = bookModel.slug
 
  55         if let url = bookModel.getCoverThumbUrl(){
 
  57             coverImageView.kf.setImage(with: ImageResource(downloadURL: url),
 
  58                                            placeholder: #imageLiteral(resourceName: "list_nocover"),
 
  59                                            options: [.transition(.fade(1))],
 
  61                                            completionHandler: { (image, error, cacheType, url) in
 
  66     func setup(bookDetailsModel: BookDetailsModel, delegate: BookTableViewCellDelegate, indexPath: IndexPath){
 
  68         self.delegate = delegate
 
  69         self.indexPath = indexPath
 
  71         bookSlug = bookDetailsModel.slug
 
  72         bookDescriptionView.setup(bookDetailsModel: bookDetailsModel)
 
  73         bookDescriptionView.trashButton.removeTarget(nil, action: nil, for: .allEvents)
 
  74         bookDescriptionView.trashButton.addTarget(self, action: #selector(trashButtonAction), for: .touchUpInside)
 
  76         coverImageView.image = nil
 
  78         if let url = bookDetailsModel.getCoverThumbUrl(){
 
  80             coverImageView.kf.setImage(with: ImageResource(downloadURL: url),
 
  81                                        placeholder: #imageLiteral(resourceName: "list_nocover"),
 
  82                                        options: [.transition(.fade(1))],
 
  84                                        completionHandler: { (image, error, cacheType, url) in
 
  89     @objc func trashButtonAction(){
 
  90         delegate?.bookTableViewCellDelegateDidTapTrashButton(bookSlug: bookSlug, indexPath: indexPath)