PostView.swift 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. //
  2. // This file is part of the Gasteizko Margolariak IOS app.
  3. //
  4. // The Gasteizko Margolariak IOS app is free software: you can
  5. // redistribute it and/or modify it under the terms of the
  6. // GNU General Public License as published by the Free Software
  7. // Foundation, either version 3 of the License, or (at your
  8. // option) any later version.
  9. //
  10. // The Gasteizko Margolariak IOS app is distributed in the
  11. // hope that it will be useful, but WITHOUT ANY WARRANTY;
  12. // without even the implied warranty of MERCHANTABILITY or
  13. // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
  14. // Public License for more details.
  15. //
  16. // You should have received a copy of the GNU General Public
  17. // License along with the Gasteizko Margolariak IOS app.
  18. // If not, see <http://www.gnu.org/licenses/>.
  19. import Foundation
  20. import CoreData
  21. import UIKit
  22. /**
  23. Class to handle the post view.
  24. */
  25. class PostView: UIView {
  26. @IBOutlet var container: UIView!
  27. //The main scroll view.
  28. @IBOutlet weak var scrollView: UIScrollView!
  29. @IBOutlet weak var title: UILabel!
  30. @IBOutlet weak var image: UIImageView!
  31. @IBOutlet weak var text: UILabel!
  32. @IBOutlet weak var imageExtra: UIStackView!
  33. @IBOutlet weak var date: UILabel!
  34. @IBOutlet weak var commentCount: UILabel!
  35. @IBOutlet weak var commentList: UIStackView!
  36. @IBOutlet weak var commentUser: UITextField!
  37. @IBOutlet weak var commentContent: UITextView!
  38. override init(frame: CGRect){
  39. super.init(frame: frame)
  40. }
  41. /**
  42. Run when the view is started.
  43. */
  44. required init?(coder aDecoder: NSCoder) {
  45. print("POST:DEBUG: Init")
  46. super.init(coder: aDecoder)
  47. //Load the contents of the PostView.xib file.
  48. Bundle.main.loadNibNamed("PostView", owner: self, options: nil)
  49. self.addSubview(container)
  50. container.frame = self.bounds
  51. }
  52. func loadPost(id : Int){
  53. // Show post
  54. /*let context = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
  55. let appDelegate = UIApplication.shared.delegate as! AppDelegate
  56. let lang : String = getLanguage()
  57. context.persistentStoreCoordinator = appDelegate.persistentStoreCoordinator
  58. let fetchRequest: NSFetchRequest<Post> = Post.fetchRequest()
  59. fetchRequest.predicate = NSPredicate(format: "post == %i", id)
  60. do {
  61. //go get the results
  62. let searchResults = try context.fetch(fetchRequest)
  63. //I like to check the size of the returned results!
  64. print ("Post: \(searchResults.count)")
  65. var count = 0
  66. var sTitle: String
  67. var sText: String
  68. var image: String
  69. //You need to convert to NSManagedObject to use 'for' loops
  70. for r in searchResults as [NSManagedObject] {
  71. count = count + 1
  72. //get the Key Value pairs (although there may be a better way to do that...
  73. print("Perm: \(r.value(forKey: "permalink"))")
  74. sTitle = r.value(forKey: "title_\(lang)")! as! String
  75. sText = r.value(forKey: "text_\(lang)")! as! String
  76. title.text = sTitle
  77. text.text = sText
  78. // Get main image
  79. image = ""
  80. let imgFetchRequest: NSFetchRequest<Post_image> = Post_image.fetchRequest()
  81. let imgSortDescriptor = NSSortDescriptor(key: "idx", ascending: true)
  82. let imgSortDescriptors = [imgSortDescriptor]
  83. imgFetchRequest.sortDescriptors = imgSortDescriptors
  84. imgFetchRequest.predicate = NSPredicate(format: "post == %i", id)
  85. imgFetchRequest.fetchLimit = 1
  86. //TODO get more images
  87. do{
  88. let imgSearchResults = try context.fetch(imgFetchRequest)
  89. for imgR in imgSearchResults as [NSManagedObject]{
  90. image = imgR.value(forKey: "image")! as! String
  91. print ("IMAGE: \(image)")
  92. //TODO set image
  93. //row.setImage(filename: image)
  94. }
  95. } catch {
  96. print("Error getting image for post \(id): \(error)")
  97. }
  98. }
  99. } catch {
  100. print("Error with request: \(error)")
  101. }
  102. //Always at the end: update scrollview
  103. var h: Int = 0
  104. for view in scrollView.subviews {
  105. //contentRect = contentRect.union(view.frame);
  106. h = h + Int(view.frame.height) + 30 //Why 30?
  107. print("Blog curh: \(h)")
  108. }
  109. // TODO: Calculate at the end
  110. self.scrollView.contentSize.height = 2500//CGFloat(h);*/
  111. }
  112. func getLanguage() -> String{
  113. let pre = NSLocale.preferredLanguages[0].subStr(start: 0, end: 1)
  114. if(pre == "es" || pre == "en" || pre == "eu"){
  115. return pre
  116. }
  117. else{
  118. return "es"
  119. }
  120. }
  121. }