| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- //
- // PengisianSurveyVC.swift
- // Sirani
- //
- // Created by Anhar Solehudin on 14/04/19.
- // Copyright © 2019 Anhar Solehudin. All rights reserved.
- //
- import UIKit
- class PengisianSurveyVC: UIViewController {
-
- // Outlets
- @IBOutlet weak var lblPertanyaan: UILabel!
- @IBOutlet weak var rbAnswer1: UIButton!
- @IBOutlet weak var btnAnswer1: UIButton!
- @IBOutlet weak var rbAnswer2: UIButton!
- @IBOutlet weak var btnAnswer2: UIButton!
- @IBOutlet weak var rbAnswer3: UIButton!
- @IBOutlet weak var btnAnswer3: UIButton!
- @IBOutlet weak var rbAnswer4: UIButton!
- @IBOutlet weak var btnAnswer4: UIButton!
- @IBOutlet weak var rbAnswer5: UIButton!
- @IBOutlet weak var btnAnswer5: UIButton!
- @IBOutlet weak var progressLayout: UIView!
- @IBOutlet weak var progress: UIActivityIndicatorView!
-
- // String Message
- private let alertNoConnectionTitle = "Informasi"
- private let alertNoConnectionMsg = "Sepertinya Anda sedang tidak tersambung pada koneksi internet"
- private let alertNoConnectionActionYes = "OK"
- private let saveFailedMsg = "Mengirim jawaban gagal, silahkan ulangi kembali"
-
- // Initialize
- private var presenter: PengisianSurveyPresenter!
- private var answers: [SurveyList] = [SurveyList]()
- private var selected_pertanyaan_id = 0
- private var selected_answer_id = 0
-
- // Others
- private var loading = false
-
- // View Lifecycles
- override var preferredStatusBarStyle: UIStatusBarStyle {
- return .lightContent
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- presenter = PengisianSurveyPresenter(siraniApiServices: SiraniApiServices())
- }
-
- override func viewWillAppear(_ animated: Bool) {
- presenter.attachView(view: self)
- }
-
- override func viewDidAppear(_ animated: Bool) {
- loadPertanyaan()
- }
-
- override func viewDidDisappear(_ animated: Bool) {
- presenter.detachView()
- }
-
- // private functions
- private func loadPertanyaan() {
- if !loading {
- if ConnectionHelper.isConnectedToNetwork() {
- presenter.loadPertanyaan()
- presenter.loadListJawaban()
- } else {
- showNoConnection()
- }
- }
- }
-
- private func selectanswer1() {
- selected_pertanyaan_id = answers[0].survey_id
- selected_answer_id = answers[0].id_jawaban
- rbAnswer1.setImage(UIImage(named: "checked-rb"), for: .normal)
- rbAnswer2.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer3.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer4.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer5.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- }
-
- private func selectanswer2() {
- selected_pertanyaan_id = answers[1].survey_id
- selected_answer_id = answers[1].id_jawaban
- rbAnswer1.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer2.setImage(UIImage(named: "checked-rb"), for: .normal)
- rbAnswer3.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer4.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer5.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- }
-
- private func selectanswer3() {
- selected_pertanyaan_id = answers[2].survey_id
- selected_answer_id = answers[2].id_jawaban
- rbAnswer1.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer2.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer3.setImage(UIImage(named: "checked-rb"), for: .normal)
- rbAnswer4.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer5.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- }
-
- private func selectanswer4() {
- selected_pertanyaan_id = answers[3].survey_id
- selected_answer_id = answers[3].id_jawaban
- rbAnswer1.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer2.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer3.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer4.setImage(UIImage(named: "checked-rb"), for: .normal)
- rbAnswer5.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- }
-
- private func selectanswer5() {
- selected_pertanyaan_id = answers[4].survey_id
- selected_answer_id = answers[4].id_jawaban
- rbAnswer1.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer2.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer3.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer4.setImage(UIImage(named: "unchecked-rb"), for: .normal)
- rbAnswer5.setImage(UIImage(named: "checked-rb"), for: .normal)
- }
-
- private func saveAnswer() {
- if !loading {
- if ConnectionHelper.isConnectedToNetwork() {
- if selected_answer_id > 0 {
- presenter.saveAnswer(survey_id: selected_pertanyaan_id, jawaban: selected_answer_id)
- }
- } else {
- showNoConnection()
- }
- }
- }
-
- // actions
- @IBAction func onBtnBackTap(_ sender: Any) {
- performSegue(withIdentifier: "unwindPengisianSurveyToHomeSegueId", sender: self)
- }
-
-
- @IBAction func onRbAnswer1Tap(_ sender: Any) {
- selectanswer1()
- }
-
- @IBAction func onBtnAnswer1Tap(_ sender: Any) {
- selectanswer1()
- }
-
- @IBAction func onRbAnswer2Tap(_ sender: Any) {
- selectanswer2()
- }
-
- @IBAction func onBtnAnswer2Tap(_ sender: Any) {
- selectanswer2()
- }
-
- @IBAction func onRbAnswer3Tap(_ sender: Any) {
- selectanswer3()
- }
-
- @IBAction func onBtnAnswer3Tap(_ sender: Any) {
- selectanswer3()
- }
-
- @IBAction func onRbAnswer4Tap(_ sender: Any) {
- selectanswer4()
- }
-
- @IBAction func onBtnAnswer4Tap(_ sender: Any) {
- selectanswer4()
- }
-
- @IBAction func onRbAnswer5Tap(_ sender: Any) {
- selectanswer5()
- }
-
- @IBAction func onBtnAnswer5Tap(_ sender: Any) {
- selectanswer5()
- }
-
- @IBAction func onBtnSimpanTap(_ sender: Any) {
- saveAnswer()
- }
-
- }
- extension PengisianSurveyVC: PengisianSurveyViewDelegate {
- func showNoConnection() {
- let alertNoConnection = UIAlertController(
- title: alertNoConnectionTitle,
- message: alertNoConnectionMsg,
- preferredStyle: .alert
- )
- alertNoConnection.addAction(
- UIAlertAction(title: alertNoConnectionActionYes, style: .default, handler: nil)
- )
- self.present(alertNoConnection, animated: true, completion: nil)
- }
-
- func showLoading() {
- loading = true
- progress.startAnimating()
- progressLayout.show()
- }
-
- func hideLoading() {
- loading = false
- progress.stopAnimating()
- progressLayout.hide()
- }
-
- func setPertanyaan(pertanyaan: String) {
- lblPertanyaan.text = pertanyaan
- }
-
- func setJawabanList(jawabanList: [SurveyList]) {
- answers.removeAll()
-
- if jawabanList.count > 0 {
- answers.append(jawabanList[0])
- answers.append(jawabanList[1])
- answers.append(jawabanList[2])
- answers.append(jawabanList[3])
- answers.append(jawabanList[4])
-
- btnAnswer1.setTitle(jawabanList[0].nama_jawaban, for: .normal)
- btnAnswer2.setTitle(jawabanList[1].nama_jawaban, for: .normal)
- btnAnswer3.setTitle(jawabanList[2].nama_jawaban, for: .normal)
- btnAnswer4.setTitle(jawabanList[3].nama_jawaban, for: .normal)
- btnAnswer5.setTitle(jawabanList[4].nama_jawaban, for: .normal)
- } else {
- btnAnswer1.setTitle("", for: .normal)
- btnAnswer2.setTitle("", for: .normal)
- btnAnswer3.setTitle("", for: .normal)
- btnAnswer4.setTitle("", for: .normal)
- btnAnswer5.setTitle("", for: .normal)
- }
- }
-
- func onSaveSuccess(msg: String) {
- let alertNoConnection = UIAlertController(
- title: alertNoConnectionTitle,
- message: msg,
- preferredStyle: .alert
- )
- alertNoConnection.addAction(
- UIAlertAction(title: alertNoConnectionActionYes, style: .default, handler: nil)
- )
- self.present(alertNoConnection, animated: true, completion: nil)
- }
-
- func onSaveFailed() {
- let alertNoConnection = UIAlertController(
- title: alertNoConnectionTitle,
- message: saveFailedMsg,
- preferredStyle: .alert
- )
- alertNoConnection.addAction(
- UIAlertAction(title: alertNoConnectionActionYes, style: .default, handler: nil)
- )
- self.present(alertNoConnection, animated: true, completion: nil)
- }
-
-
- }
|