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)