Browse Source

test at staging

pull/1/head
InKwon James Kim 5 years ago
parent
commit
0620e460fa
  1. 4
      GME Remit.xcodeproj/project.pbxproj
  2. 2
      GME Remit/AppDelegate.swift
  3. 98
      GME Remit/Extensions/UISearchBar+Ext.swift
  4. 4
      GME Remit/Modules/RemittanceModules/DomesticModules/RecentHistories/Application Logic/Model/RecentRecipientModel.swift
  5. 41
      GME Remit/Modules/RemittanceModules/DomesticModules/RecentHistories/User Interface/View/RecentHistories.storyboard
  6. 16
      GME Remit/Modules/RemittanceModules/DomesticModules/RecentHistories/User Interface/View/RecentHistoriesViewController.swift
  7. 8
      GME Remit/Modules/RemittanceModules/DomesticModules/RecentHistories/User Interface/View/ViewModel/RecentHistoriesViewModel.swift
  8. 6
      GME Remit/MultiLanguages/ko.lproj/Localizable.strings
  9. 7
      GME Remit/Utilities/TablePresenter/User Interface/View/TablePresenterViewController.swift

4
GME Remit.xcodeproj/project.pbxproj

@ -287,6 +287,7 @@
7389601322C2F208003FEA90 /* TablePresenterViewInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7389600822C2F208003FEA90 /* TablePresenterViewInterface.swift */; }; 7389601322C2F208003FEA90 /* TablePresenterViewInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7389600822C2F208003FEA90 /* TablePresenterViewInterface.swift */; };
7389601422C2F208003FEA90 /* TablePresenterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7389600922C2F208003FEA90 /* TablePresenterViewController.swift */; }; 7389601422C2F208003FEA90 /* TablePresenterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7389600922C2F208003FEA90 /* TablePresenterViewController.swift */; };
7389601922C2FADD003FEA90 /* TableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7389601822C2FADD003FEA90 /* TableCell.swift */; }; 7389601922C2FADD003FEA90 /* TableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7389601822C2FADD003FEA90 /* TableCell.swift */; };
738B3E4C233B56C6000EA5E5 /* UISearchBar+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738B3E4B233B56C6000EA5E5 /* UISearchBar+Ext.swift */; };
738DEC1B22D429AB00936C2C /* FunctionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738DEC1A22D429AB00936C2C /* FunctionTest.swift */; }; 738DEC1B22D429AB00936C2C /* FunctionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738DEC1A22D429AB00936C2C /* FunctionTest.swift */; };
738F04B12316238600BA5EE7 /* ShadowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738F04B02316238600BA5EE7 /* ShadowView.swift */; }; 738F04B12316238600BA5EE7 /* ShadowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738F04B02316238600BA5EE7 /* ShadowView.swift */; };
738FD48023038FDE008B144D /* UIFont+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738FD47F23038FDE008B144D /* UIFont+Ext.swift */; }; 738FD48023038FDE008B144D /* UIFont+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738FD47F23038FDE008B144D /* UIFont+Ext.swift */; };
@ -2556,6 +2557,7 @@
7389600822C2F208003FEA90 /* TablePresenterViewInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TablePresenterViewInterface.swift; sourceTree = "<group>"; }; 7389600822C2F208003FEA90 /* TablePresenterViewInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TablePresenterViewInterface.swift; sourceTree = "<group>"; };
7389600922C2F208003FEA90 /* TablePresenterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TablePresenterViewController.swift; sourceTree = "<group>"; }; 7389600922C2F208003FEA90 /* TablePresenterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TablePresenterViewController.swift; sourceTree = "<group>"; };
7389601822C2FADD003FEA90 /* TableCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableCell.swift; sourceTree = "<group>"; }; 7389601822C2FADD003FEA90 /* TableCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableCell.swift; sourceTree = "<group>"; };
738B3E4B233B56C6000EA5E5 /* UISearchBar+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UISearchBar+Ext.swift"; sourceTree = "<group>"; };
738DEC1A22D429AB00936C2C /* FunctionTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FunctionTest.swift; sourceTree = "<group>"; }; 738DEC1A22D429AB00936C2C /* FunctionTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FunctionTest.swift; sourceTree = "<group>"; };
738F04B02316238600BA5EE7 /* ShadowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowView.swift; sourceTree = "<group>"; }; 738F04B02316238600BA5EE7 /* ShadowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowView.swift; sourceTree = "<group>"; };
738FD47F23038FDE008B144D /* UIFont+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIFont+Ext.swift"; sourceTree = "<group>"; }; 738FD47F23038FDE008B144D /* UIFont+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIFont+Ext.swift"; sourceTree = "<group>"; };
@ -4719,6 +4721,7 @@
736E3219230A3CC1005799AA /* UIDevice+Ext.swift */, 736E3219230A3CC1005799AA /* UIDevice+Ext.swift */,
73976D1F2331B4F4003CF5E1 /* UIImageView+Ext.swift */, 73976D1F2331B4F4003CF5E1 /* UIImageView+Ext.swift */,
73A2238E23399A9F00FD75C9 /* UIScrollView+Ext.swift */, 73A2238E23399A9F00FD75C9 /* UIScrollView+Ext.swift */,
738B3E4B233B56C6000EA5E5 /* UISearchBar+Ext.swift */,
); );
path = Extensions; path = Extensions;
sourceTree = "<group>"; sourceTree = "<group>";
@ -14561,6 +14564,7 @@
D945F11D213E1D5100A24824 /* SendMoneyReceiptModuleInterface.swift in Sources */, D945F11D213E1D5100A24824 /* SendMoneyReceiptModuleInterface.swift in Sources */,
73195B3522FD5BC600151434 /* APIRouter.swift in Sources */, 73195B3522FD5BC600151434 /* APIRouter.swift in Sources */,
73A6E20222CEE51600E9BC68 /* BadgeAppearance.swift in Sources */, 73A6E20222CEE51600E9BC68 /* BadgeAppearance.swift in Sources */,
738B3E4C233B56C6000EA5E5 /* UISearchBar+Ext.swift in Sources */,
D97785AA215DD04400754079 /* TransactionHistoryTableViewCell.swift in Sources */, D97785AA215DD04400754079 /* TransactionHistoryTableViewCell.swift in Sources */,
73A621622330AD20000FFB5B /* RecentHistoriesInteractor.swift in Sources */, 73A621622330AD20000FFB5B /* RecentHistoriesInteractor.swift in Sources */,
730D7894227A94E1007E517E /* RewardItemCollectionViewCell.swift in Sources */, 730D7894227A94E1007E517E /* RewardItemCollectionViewCell.swift in Sources */,

2
GME Remit/AppDelegate.swift

@ -20,7 +20,7 @@ import IQKeyboardManagerSwift
import Localize_Swift import Localize_Swift
import ChannelIO import ChannelIO
let server: Server = .uat
let server: Server = .staging
var overlayView: UIView? var overlayView: UIView?
@UIApplicationMain @UIApplicationMain

98
GME Remit/Extensions/UISearchBar+Ext.swift

@ -0,0 +1,98 @@
//
// UISearchBar+Ext.swift
// GME Remit
//
// Created by InKwon James Kim on 25/09/2019.
// Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
extension UISearchBar {
func getTextField() -> UITextField? { return value(forKey: "searchField") as? UITextField }
func set(textColor: UIColor) { if let textField = getTextField() { textField.textColor = textColor } }
func setPlaceholder(textColor: UIColor) { getTextField()?.setPlaceholder(textColor: textColor) }
func setClearButton(color: UIColor) { getTextField()?.setClearButton(color: color) }
func setTextField(color: UIColor) {
guard let textField = getTextField() else { return }
switch searchBarStyle {
case .minimal:
textField.layer.backgroundColor = color.cgColor
textField.layer.cornerRadius = 6
case .prominent, .default: textField.backgroundColor = color
@unknown default: break
}
}
func setSearchImage(color: UIColor) {
guard let imageView = getTextField()?.leftView as? UIImageView else { return }
imageView.tintColor = color
imageView.image = imageView.image?.withRenderingMode(.alwaysTemplate)
}
}
private extension UITextField {
private class Label: UILabel {
private var _textColor = UIColor.lightGray
override var textColor: UIColor! {
set { super.textColor = _textColor }
get { return _textColor }
}
init(label: UILabel, textColor: UIColor = .lightGray) {
_textColor = textColor
super.init(frame: label.frame)
self.text = label.text
self.font = label.font
}
required init?(coder: NSCoder) { super.init(coder: coder) }
}
private class ClearButtonImage {
static private var _image: UIImage?
static private var semaphore = DispatchSemaphore(value: 1)
static func getImage(closure: @escaping (UIImage?)->()) {
DispatchQueue.global(qos: .userInteractive).async {
semaphore.wait()
DispatchQueue.main.async {
if let image = _image { closure(image); semaphore.signal(); return }
guard let window = UIApplication.shared.windows.first else { semaphore.signal(); return }
let searchBar = UISearchBar(frame: CGRect(x: 0, y: -200, width: UIScreen.main.bounds.width, height: 44))
window.rootViewController?.view.addSubview(searchBar)
searchBar.text = "txt"
searchBar.layoutIfNeeded()
_image = searchBar.getTextField()?.getClearButton()?.image(for: .normal)
closure(_image)
searchBar.removeFromSuperview()
semaphore.signal()
}
}
}
}
func setClearButton(color: UIColor) {
ClearButtonImage.getImage { [weak self] image in
guard let image = image,
let button = self?.getClearButton() else { return }
button.imageView?.tintColor = color
button.setImage(image.withRenderingMode(.alwaysTemplate), for: .normal)
}
}
var placeholderLabel: UILabel? { return value(forKey: "placeholderLabel") as? UILabel }
func setPlaceholder(textColor: UIColor) {
guard let placeholderLabel = placeholderLabel else { return }
let label = Label(label: placeholderLabel, textColor: textColor)
setValue(label, forKey: "placeholderLabel")
}
func getClearButton() -> UIButton? { return value(forKey: "clearButton") as? UIButton }
}

4
GME Remit/Modules/RemittanceModules/DomesticModules/RecentHistories/Application Logic/Model/RecentRecipientModel.swift

@ -19,8 +19,8 @@ struct RecentRecipientModel: Mappable {
mutating func mapping(map: Map) { mutating func mapping(map: Map) {
bank <- map["bank"] bank <- map["bank"]
account <- map["RecipientAccount"]
name <- map["RecipientName"]
account <- map["recipient_account"]
name <- map["recipient_name"]
} }
} }

41
GME Remit/Modules/RemittanceModules/DomesticModules/RecentHistories/User Interface/View/RecentHistories.storyboard

@ -114,9 +114,10 @@
<constraint firstAttribute="bottom" secondItem="8LO-G4-CMW" secondAttribute="bottom" id="kqR-Qn-oHm"/> <constraint firstAttribute="bottom" secondItem="8LO-G4-CMW" secondAttribute="bottom" id="kqR-Qn-oHm"/>
</constraints> </constraints>
</view> </view>
<tableView contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="vSd-Cn-NtH">
<tableView contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="vSd-Cn-NtH">
<rect key="frame" x="0.0" y="129" width="375" height="404.5"/> <rect key="frame" x="0.0" y="129" width="375" height="404.5"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<inset key="separatorInset" minX="15" minY="0.0" maxX="15" maxY="0.0"/>
<view key="tableFooterView" contentMode="scaleToFill" id="Jc0-AE-AKV"> <view key="tableFooterView" contentMode="scaleToFill" id="Jc0-AE-AKV">
<rect key="frame" x="0.0" y="126" width="375" height="44"/> <rect key="frame" x="0.0" y="126" width="375" height="44"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
@ -137,7 +138,7 @@
</constraints> </constraints>
</view> </view>
<prototypes> <prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="5" indentationWidth="5" reuseIdentifier="RecentRecipientCell" rowHeight="70" id="X2M-ta-xHv" customClass="RecentRecipientCell" customModule="GME_Remit" customModuleProvider="target">
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="5" indentationWidth="5" reuseIdentifier="RecentRecipientCell" rowHeight="70" id="X2M-ta-xHv" customClass="RecentRecipientCell" customModule="GME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="28" width="375" height="70"/> <rect key="frame" x="0.0" y="28" width="375" height="70"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="X2M-ta-xHv" id="et9-GJ-ooJ"> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="X2M-ta-xHv" id="et9-GJ-ooJ">
@ -145,28 +146,40 @@
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<subviews> <subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FkF-ac-dcc"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FkF-ac-dcc">
<rect key="frame" x="10" y="10" width="355" height="50"/>
<rect key="frame" x="20" y="10" width="335" height="50"/>
<subviews> <subviews>
<stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="4lw-Z7-vab"> <stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="4lw-Z7-vab">
<rect key="frame" x="5" y="0.0" width="345" height="50"/>
<rect key="frame" x="0.0" y="0.0" width="335" height="50"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="James Kim" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="ilt-ZQ-e17"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="James Kim" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="ilt-ZQ-e17">
<rect key="frame" x="0.0" y="0.0" width="69" height="50"/>
<rect key="frame" x="0.0" y="0.0" width="67" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="14"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="14"/>
<nil key="textColor"/> <nil key="textColor"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<stackView opaque="NO" contentMode="scaleToFill" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="6t6-J6-oAY"> <stackView opaque="NO" contentMode="scaleToFill" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="6t6-J6-oAY">
<rect key="frame" x="74" y="0.0" width="172.5" height="50"/>
<rect key="frame" x="72" y="0.0" width="167.5" height="50"/>
<subviews> <subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ibk" translatesAutoresizingMaskIntoConstraints="NO" id="Blw-jf-U4G">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vmN-5a-KJV">
<rect key="frame" x="0.0" y="0.0" width="50" height="50"/> <rect key="frame" x="0.0" y="0.0" width="50" height="50"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ibk" translatesAutoresizingMaskIntoConstraints="NO" id="Blw-jf-U4G">
<rect key="frame" x="1" y="1" width="48" height="48"/>
<constraints> <constraints>
<constraint firstAttribute="width" secondItem="Blw-jf-U4G" secondAttribute="height" multiplier="1:1" id="92z-OM-Pje"/> <constraint firstAttribute="width" secondItem="Blw-jf-U4G" secondAttribute="height" multiplier="1:1" id="92z-OM-Pje"/>
</constraints> </constraints>
</imageView> </imageView>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="Blw-jf-U4G" secondAttribute="trailing" constant="1" id="90v-q8-bJa"/>
<constraint firstAttribute="bottom" secondItem="Blw-jf-U4G" secondAttribute="bottom" constant="1" id="UtA-KL-jDk"/>
<constraint firstItem="Blw-jf-U4G" firstAttribute="leading" secondItem="vmN-5a-KJV" secondAttribute="leading" constant="1" id="Wiy-xb-d10"/>
<constraint firstItem="Blw-jf-U4G" firstAttribute="top" secondItem="vmN-5a-KJV" secondAttribute="top" constant="1" id="l60-KM-BaS"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Korea Development Bank(KDB)" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="9NA-kr-brd"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Korea Development Bank(KDB)" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="9NA-kr-brd">
<rect key="frame" x="52" y="0.0" width="120.5" height="50"/>
<rect key="frame" x="52" y="0.0" width="115.5" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="14"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="14"/>
<nil key="textColor"/> <nil key="textColor"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
@ -174,7 +187,7 @@
</subviews> </subviews>
</stackView> </stackView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="110223458044" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="sSB-S3-hHb"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="110223458044" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="sSB-S3-hHb">
<rect key="frame" x="251.5" y="0.0" width="93.5" height="50"/>
<rect key="frame" x="244.5" y="0.0" width="90.5" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="14"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="14"/>
<nil key="textColor"/> <nil key="textColor"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
@ -188,16 +201,17 @@
</subviews> </subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints> <constraints>
<constraint firstItem="4lw-Z7-vab" firstAttribute="leading" secondItem="FkF-ac-dcc" secondAttribute="leading" constant="5" id="8HL-J5-Wqa"/>
<constraint firstAttribute="trailing" secondItem="4lw-Z7-vab" secondAttribute="trailing" constant="5" id="9zs-y8-CKC"/>
<constraint firstItem="4lw-Z7-vab" firstAttribute="leading" secondItem="FkF-ac-dcc" secondAttribute="leading" id="8HL-J5-Wqa"/>
<constraint firstAttribute="trailing" secondItem="4lw-Z7-vab" secondAttribute="trailing" id="9zs-y8-CKC"/>
<constraint firstAttribute="bottom" secondItem="4lw-Z7-vab" secondAttribute="bottom" id="Pwj-Nc-aar"/> <constraint firstAttribute="bottom" secondItem="4lw-Z7-vab" secondAttribute="bottom" id="Pwj-Nc-aar"/>
<constraint firstAttribute="height" constant="50" id="tMn-UC-LBh"/>
<constraint firstItem="4lw-Z7-vab" firstAttribute="top" secondItem="FkF-ac-dcc" secondAttribute="top" id="vO4-Ae-DCb"/> <constraint firstItem="4lw-Z7-vab" firstAttribute="top" secondItem="FkF-ac-dcc" secondAttribute="top" id="vO4-Ae-DCb"/>
</constraints> </constraints>
</view> </view>
</subviews> </subviews>
<constraints> <constraints>
<constraint firstAttribute="trailing" secondItem="FkF-ac-dcc" secondAttribute="trailing" constant="10" id="TSh-jG-UJ1"/>
<constraint firstItem="FkF-ac-dcc" firstAttribute="leading" secondItem="et9-GJ-ooJ" secondAttribute="leading" constant="10" id="XEG-qZ-l5W"/>
<constraint firstAttribute="trailing" secondItem="FkF-ac-dcc" secondAttribute="trailing" constant="20" id="TSh-jG-UJ1"/>
<constraint firstItem="FkF-ac-dcc" firstAttribute="leading" secondItem="et9-GJ-ooJ" secondAttribute="leading" constant="20" id="XEG-qZ-l5W"/>
<constraint firstItem="FkF-ac-dcc" firstAttribute="top" secondItem="et9-GJ-ooJ" secondAttribute="top" constant="10" id="dQ3-0N-ZTj"/> <constraint firstItem="FkF-ac-dcc" firstAttribute="top" secondItem="et9-GJ-ooJ" secondAttribute="top" constant="10" id="dQ3-0N-ZTj"/>
<constraint firstAttribute="bottom" secondItem="FkF-ac-dcc" secondAttribute="bottom" constant="10" id="ftf-QG-zjO"/> <constraint firstAttribute="bottom" secondItem="FkF-ac-dcc" secondAttribute="bottom" constant="10" id="ftf-QG-zjO"/>
</constraints> </constraints>
@ -259,6 +273,7 @@
<connections> <connections>
<outlet property="calendarButton" destination="ua4-FA-oLE" id="gUc-xa-SJP"/> <outlet property="calendarButton" destination="ua4-FA-oLE" id="gUc-xa-SJP"/>
<outlet property="closeButton" destination="EPv-JI-308" id="Ymx-DI-ooD"/> <outlet property="closeButton" destination="EPv-JI-308" id="Ymx-DI-ooD"/>
<outlet property="closeCalandarButton" destination="xGJ-l2-4gF" id="u3l-h0-0FM"/>
<outlet property="endDateLabel" destination="8B4-ov-sul" id="Nbu-gl-KKA"/> <outlet property="endDateLabel" destination="8B4-ov-sul" id="Nbu-gl-KKA"/>
<outlet property="mainView" destination="9jL-Y3-Li7" id="rU2-JH-1ys"/> <outlet property="mainView" destination="9jL-Y3-Li7" id="rU2-JH-1ys"/>
<outlet property="notFoundLabel" destination="DSX-pB-voq" id="RA9-u9-XWm"/> <outlet property="notFoundLabel" destination="DSX-pB-voq" id="RA9-u9-XWm"/>

16
GME Remit/Modules/RemittanceModules/DomesticModules/RecentHistories/User Interface/View/RecentHistoriesViewController.swift

@ -42,6 +42,7 @@ class RecentHistoriesViewController: UIViewController {
@IBOutlet private weak var periodView: UIView! @IBOutlet private weak var periodView: UIView!
@IBOutlet private weak var startDateLabel: UILabel! @IBOutlet private weak var startDateLabel: UILabel!
@IBOutlet private weak var endDateLabel: UILabel! @IBOutlet private weak var endDateLabel: UILabel!
@IBOutlet private weak var closeCalandarButton: UIButton!
@IBOutlet private weak var periodViewHeightConstraint: NSLayoutConstraint! @IBOutlet private weak var periodViewHeightConstraint: NSLayoutConstraint!
@ -85,6 +86,8 @@ extension RecentHistoriesViewController {
private func setup() { private func setup() {
// all setup should be done here // all setup should be done here
tableView.rx.setDelegate(self).disposed(by: disposeBag)
setBinding() setBinding()
setPeriodViewStatus(isHidden: true) setPeriodViewStatus(isHidden: true)
mainView.layer.cornerRadius = 5 mainView.layer.cornerRadius = 5
@ -99,7 +102,8 @@ extension RecentHistoriesViewController {
viewWillAppear: viewWillAppear, viewWillAppear: viewWillAppear,
filterText: searchBar.rx.text.asDriverOnErrorJustComplete(), filterText: searchBar.rx.text.asDriverOnErrorJustComplete(),
selectTrigger: tableView.rx.itemSelected.asDriver(), selectTrigger: tableView.rx.itemSelected.asDriver(),
calendarTrigger: calendarButton.rx.tap.asDriver()
calendarTrigger: calendarButton.rx.tap.asDriver(),
closeCalandarTrigger: closeCalandarButton.rx.tap.asDriver()
) )
let output = viewModel.transform(input: input) let output = viewModel.transform(input: input)
@ -176,3 +180,13 @@ extension RecentHistoriesViewController {
} }
} }
extension RecentHistoriesViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 70
}
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
view.endEditing(true)
}
}

8
GME Remit/Modules/RemittanceModules/DomesticModules/RecentHistories/User Interface/View/ViewModel/RecentHistoriesViewModel.swift

@ -17,6 +17,7 @@ class RecentHistoriesViewModel: ViewModelType {
let filterText: Driver<String?> let filterText: Driver<String?>
let selectTrigger: Driver<IndexPath> let selectTrigger: Driver<IndexPath>
let calendarTrigger: Driver<Void> let calendarTrigger: Driver<Void>
let closeCalandarTrigger: Driver<Void>
} }
struct Output { struct Output {
@ -70,6 +71,13 @@ class RecentHistoriesViewModel: ViewModelType {
) )
.disposed(by: disposeBag) .disposed(by: disposeBag)
input.closeCalandarTrigger
.drive(onNext: {
self.presenter?.fetchHistories(from: "", to: "")
}
)
.disposed(by: disposeBag)
return Output( return Output(
isError: errorLinker.asDriverOnErrorJustComplete(), isError: errorLinker.asDriverOnErrorJustComplete(),
isProgress: progressLinker.asDriverOnErrorJustComplete(), isProgress: progressLinker.asDriverOnErrorJustComplete(),

6
GME Remit/MultiLanguages/ko.lproj/Localizable.strings

@ -178,8 +178,8 @@
"unpaid_text" = "미납"; "unpaid_text" = "미납";
"paid_text" = "지급"; "paid_text" = "지급";
"search_with_controlno_text" = "컨트롤 번호 찾기"; "search_with_controlno_text" = "컨트롤 번호 찾기";
"from_text" = "부터";
"to_text" = "까지";
"from_text" = "시작일";
"to_text" = "종료일";
"search_text" = "검색"; "search_text" = "검색";
"placeholder_from_text" = "시작일 선택"; "placeholder_from_text" = "시작일 선택";
"placeholder_to_text" = "종료일 선택"; "placeholder_to_text" = "종료일 선택";
@ -654,4 +654,4 @@
"insufficient_amount_error_text" = "충분한 금액이 없습니다."; "insufficient_amount_error_text" = "충분한 금액이 없습니다.";
"local_text" = "국내"; "local_text" = "국내";
"international_text" = "해외"; "international_text" = "해외";
"transfer_charge_text" = "Transfer Charge";
"transfer_charge_text" = "수수료";

7
GME Remit/Utilities/TablePresenter/User Interface/View/TablePresenterViewController.swift

@ -153,6 +153,13 @@ extension TablePresenterViewController {
presenter?.fetchModel(type: type) presenter?.fetchModel(type: type)
transparentView.backgroundColor = .themeBackgroundGray transparentView.backgroundColor = .themeBackgroundGray
// searchBar.searchBarStyle = .default
// searchBar.set(textColor: .black)
// searchBar.setTextField(color: .themeWhite)
// searchBar.setPlaceholder(textColor: .themeTextColor)
// searchBar.setSearchImage(color: .themeTextColor)
// searchBar.setClearButton(color: .themeTextColor)
} }
private func setConfiguration() { private func setConfiguration() {

Loading…
Cancel
Save