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.
155 lines
4.7 KiB
155 lines
4.7 KiB
//
|
|
// MessageComposeViewController.swift
|
|
// GMERemittance
|
|
//
|
|
// Created by gme_2 on 02/10/2018.
|
|
//Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class MessageComposeViewController: UIViewController {
|
|
|
|
struct StringConstants {
|
|
let headerText = "support_description_text".localized()
|
|
let submitText = "submit_text".localized()
|
|
let cancelText = "cancel_text".localized()
|
|
let subjectAmendmentText = "request_for_amendment_text".localized()
|
|
let subjectCancelText = "request_for_cancellation_text".localized()
|
|
let requestMessagePlaceHolderText = "your_request_text".localized()
|
|
}
|
|
|
|
// MARK: IBOutlets
|
|
|
|
@IBOutlet weak var headerLabel: UILabel!
|
|
@IBOutlet weak var submitButton: UIButton!
|
|
@IBOutlet weak var cancelButton: UIButton!
|
|
@IBOutlet weak var textFieldSubject: UITextField!
|
|
@IBOutlet weak var textViewMessage: UITextView!
|
|
|
|
// MARK: Properties
|
|
var type: MailBoxType?
|
|
var controlNO: String?
|
|
var transactionId: String?
|
|
var presenter: MessageComposeModuleInterface?
|
|
|
|
// MARK: VC's Life cycle
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
self.setup()
|
|
}
|
|
|
|
override func viewWillAppear(_ animated: Bool) {
|
|
super.viewWillAppear(animated)
|
|
self.setupNormalNavigation(color: .themeRedDark)
|
|
self.navigationItem.title = "support_text".localized()
|
|
}
|
|
|
|
// MARK: IBActions
|
|
|
|
@IBAction func cancelMessage(_ sender: Any) {
|
|
navigationController?.popViewController(animated: true)
|
|
dismiss(animated: true, completion: nil)
|
|
}
|
|
|
|
// MARK: Other Functions
|
|
|
|
private func setup() {
|
|
// all setup should be done here
|
|
self.textViewMessage.text = StringConstants().requestMessagePlaceHolderText
|
|
textViewMessage.textColor = UIColor.themeText
|
|
textViewMessage.layer.borderWidth = 0.3
|
|
textViewMessage.layer.borderColor = UIColor.themeText.cgColor
|
|
textViewMessage.layer.backgroundColor = UIColor.white.cgColor
|
|
textViewMessage.delegate = self
|
|
let barbutton = UIBarButtonItem(
|
|
image: #imageLiteral(resourceName: "backIconBlack"),
|
|
style: .plain,
|
|
target: self,
|
|
action: #selector(self.cancelMessage(_:))
|
|
)
|
|
self.navigationItem.leftBarButtonItem = barbutton
|
|
setupSubject()
|
|
|
|
configureText()
|
|
|
|
}
|
|
|
|
private func configureText() {
|
|
self.headerLabel.text = StringConstants().headerText
|
|
self.submitButton.setTitle(StringConstants().submitText, for: UIControl.State.normal)
|
|
self.cancelButton.setTitle(StringConstants().cancelText, for: UIControl.State.normal)
|
|
}
|
|
|
|
private func setupSubject() {
|
|
if let type = self.type {
|
|
switch type {
|
|
case .cancel:
|
|
self.textFieldSubject.text = "request_for_cancellation_text".localized()
|
|
case .edit:
|
|
self.textFieldSubject.text = "request_for_amendment_text".localized()
|
|
case .pending:
|
|
self.textFieldSubject.text = "request_for_cancellation_text".localized()
|
|
}
|
|
}
|
|
|
|
self.textFieldSubject.isUserInteractionEnabled = false
|
|
}
|
|
|
|
@IBAction func submit(_ sender: UIButton) {
|
|
let subject = self.textFieldSubject.text!
|
|
let body = self.textViewMessage.text ?? ""
|
|
let controlNo = self.controlNO ?? ""
|
|
let transactionId = self.transactionId ?? ""
|
|
|
|
if body.isEmpty || body == "" || body == "Your request here" {
|
|
self.alert(message: "Remarks is required")
|
|
} else {
|
|
if let type = self.type {
|
|
switch type {
|
|
case .cancel:
|
|
self.presenter?.cancel(control: controlNo, transId: transactionId, subject: subject, body: body)
|
|
case .edit:
|
|
self.presenter?.edit(control: controlNo, transId: transactionId, subject: subject, body: body)
|
|
case .pending:
|
|
self.presenter?.pending(control: controlNo, transId: transactionId, subject: subject, body: body)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
// MARK: MessageComposeViewInterface
|
|
extension MessageComposeViewController: MessageComposeViewInterface {
|
|
func show(model: SuccessMessage) {
|
|
self.alert(
|
|
type: .normal,
|
|
message: model.message,
|
|
title: "success_text".localized()
|
|
) {
|
|
self.presenter?.dismiss()
|
|
}
|
|
}
|
|
|
|
func show(error: String) {
|
|
self.alert(type: .error, message: error)
|
|
}
|
|
}
|
|
|
|
extension MessageComposeViewController: UITextViewDelegate {
|
|
func textViewDidBeginEditing(_ textView: UITextView) {
|
|
if textView.textColor == UIColor.themeText {
|
|
textView.text = nil
|
|
textView.textColor = UIColor.init(hex: "#4a4a4a")
|
|
}
|
|
}
|
|
|
|
func textViewDidEndEditing(_ textView: UITextView) {
|
|
if textViewMessage.text.isEmpty {
|
|
textViewMessage.text = "your_request_text".localized()
|
|
textViewMessage.textColor = UIColor.themeText
|
|
}
|
|
}
|
|
}
|