You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
4.4 KiB

6 years ago
6 years ago
6 years ago
6 years ago
  1. //
  2. // MessageComposeViewController.swift
  3. // GMERemittance
  4. //
  5. // Created by gme_2 on 02/10/2018.
  6. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. class MessageComposeViewController: UIViewController {
  10. struct StringConstants {
  11. let headerText = "We are always there to help you."
  12. let submitText = "submit_text".localized()
  13. let cancelText = "cancel_text".localized()
  14. let subjectAmendmentText = "Request For Amendment"
  15. let subjectCancelText = "Request For Cancellation"
  16. let requestMessagePlaceHolderText = "Your request here"
  17. }
  18. // MARK: IBOutlets
  19. @IBOutlet weak var headerLabel: UILabel!
  20. @IBOutlet weak var submitButton: UIButton!
  21. @IBOutlet weak var cancelButton: UIButton!
  22. @IBOutlet weak var textFieldSubject: UITextField!
  23. @IBOutlet weak var textViewMessage: UITextView!
  24. // MARK: Properties
  25. var type: MailBoxType?
  26. var controlNO: String?
  27. var transactionId: String?
  28. var presenter: MessageComposeModuleInterface?
  29. // MARK: VC's Life cycle
  30. override func viewDidLoad() {
  31. super.viewDidLoad()
  32. self.setup()
  33. }
  34. override func viewWillAppear(_ animated: Bool) {
  35. super.viewWillAppear(animated)
  36. self.setupNormalNavigation()
  37. self.navigationItem.title = "Support"
  38. }
  39. // MARK: IBActions
  40. @IBAction func cancelMessage(_ sender: Any) {
  41. navigationController?.popViewController(animated: true)
  42. dismiss(animated: true, completion: nil)
  43. }
  44. // MARK: Other Functions
  45. private func setup() {
  46. // all setup should be done here
  47. self.textViewMessage.text = StringConstants().requestMessagePlaceHolderText
  48. textViewMessage.textColor = UIColor.lightGray
  49. textViewMessage.layer.borderWidth = 0.3
  50. textViewMessage.layer.borderColor = UIColor.lightGray.cgColor
  51. textViewMessage.layer.backgroundColor = UIColor.white.cgColor
  52. textViewMessage.delegate = self
  53. let barbutton = UIBarButtonItem.init(image: #imageLiteral(resourceName: "backIconBlack"), style: .plain, target: self, action: #selector(self.cancelMessage(_:)))
  54. self.navigationItem.leftBarButtonItem = barbutton
  55. setupSubject()
  56. configureText()
  57. }
  58. private func configureText() {
  59. self.headerLabel.text = StringConstants().headerText
  60. self.submitButton.setTitle(StringConstants().submitText, for: UIControlState.normal)
  61. self.cancelButton.setTitle(StringConstants().cancelText, for: UIControlState.normal)
  62. }
  63. private func setupSubject() {
  64. if let _type = self.type {
  65. switch _type {
  66. case .cancel:
  67. self.textFieldSubject.text = "Request For Cancellation"
  68. case .edit:
  69. self.textFieldSubject.text = "Request For Amendment"
  70. }
  71. }
  72. self.textFieldSubject.isUserInteractionEnabled = false
  73. }
  74. @IBAction func submit(_ sender: UIButton) {
  75. let subject = self.textFieldSubject.text!
  76. let body = self.textViewMessage.text ?? ""
  77. let controlNo = self.controlNO ?? ""
  78. let transactionId = self.transactionId ?? ""
  79. if let _type = self.type {
  80. switch _type {
  81. case .cancel:
  82. self.presenter?.cancel(control: controlNo, transId: transactionId, subject: subject, body: body)
  83. case .edit:
  84. self.presenter?.edit(control: controlNo, transId: transactionId, subject: subject, body: body)
  85. }
  86. }
  87. }
  88. }
  89. // MARK: MessageComposeViewInterface
  90. extension MessageComposeViewController: MessageComposeViewInterface {
  91. func show(model: SuccessMessage) {
  92. self.alert(message: model.message, title: "Success") {
  93. self.presenter?.dismiss()
  94. }
  95. }
  96. func show(error: String) {
  97. self.alert(message: error)
  98. }
  99. }
  100. extension MessageComposeViewController: UITextViewDelegate {
  101. func textViewDidBeginEditing(_ textView: UITextView) {
  102. if textView.textColor == UIColor.lightGray {
  103. textView.text = nil
  104. textView.textColor = UIColor.init(hex: "#4a4a4a")
  105. }
  106. }
  107. func textViewDidEndEditing(_ textView: UITextView) {
  108. if textViewMessage.text.isEmpty {
  109. textViewMessage.text = "Your request here"
  110. textViewMessage.textColor = UIColor.lightGray
  111. }
  112. }
  113. }