GroupNameViewController.swift 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // GroupNameViewController.swift
  3. // Qmera
  4. //
  5. // Created by Yayan Dwi on 21/10/21.
  6. //
  7. import UIKit
  8. class GroupNameViewController: UITableViewController {
  9. @IBOutlet weak var textField: UITextField!
  10. var isDismiss: (() -> ())?
  11. var data: String = ""
  12. var name: String?
  13. override func viewDidLoad() {
  14. super.viewDidLoad()
  15. title = "Change Group Name".localized()
  16. navigationController?.navigationBar.backgroundColor = .mainColor
  17. navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Save".localized(), style: .plain, target: self, action: #selector(save(sender:)))
  18. navigationItem.rightBarButtonItem?.isEnabled = false
  19. textField.text = name
  20. textField.addTarget(self, action: #selector(didChanged(sender:)), for: .editingChanged)
  21. textField.placeholder = "Name".localized()
  22. }
  23. @objc func didChanged(sender: Any) {
  24. if let text = textField.text, text.trimmingCharacters(in: .whitespaces).isEmpty || text.lowercased() == name?.lowercased() {
  25. navigationItem.rightBarButtonItem?.isEnabled = false
  26. } else if let button = navigationItem.rightBarButtonItem, !button.isEnabled {
  27. button.isEnabled = true
  28. }
  29. }
  30. @objc func save(sender: Any) {
  31. if let text = textField.text {
  32. DispatchQueue.global().async {
  33. if let resp = Nexilis.writeAndWait(message: CoreMessage_TMessageBank.getChangeGroupInfo(p_group_id: self.data, p_name: text)) {
  34. if resp.isOk() {
  35. Database.shared.database?.inTransaction({ fmdb, rollback in
  36. _ = Database.shared.updateRecord(fmdb: fmdb, table: "GROUPZ", cvalues: ["f_name": text], _where: "group_id = '\(self.data)'")
  37. })
  38. DispatchQueue.main.async {
  39. self.navigationController?.dismiss(animated: true, completion: {
  40. self.isDismiss?()
  41. })
  42. }
  43. }
  44. }
  45. }
  46. }
  47. }
  48. }