瀏覽代碼

- news di halaman home
- halaman news
- detail news
- menambahkan image
- menambahkan scrollview
- fix bug paging list news
- searching news

Hendi 3 年之前
父節點
當前提交
7ac68f811d

二進制
Sirani.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate


+ 9 - 3
Sirani/ApiServices/SiraniApiServices.swift

@@ -42,11 +42,17 @@ class SiraniApiServices {
     
     // News -> Home, NewsVC
     func postToGetNews(cursor: Int, prev: Int, jenis: String, columns: String, keyword: String) -> DataRequest {
-        
+        print("CEK 123")
+        print("cursor \(cursor)")
+        print("prev \(prev)")
+        print("jenis \(jenis)")
+        print("columns \(columns)")
+        print("keyword \(keyword)")
+
         let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
         let body: Parameters = [
-            "cursor" : String(cursor),
-            "prev" : String(prev),
+            "limit" : String(cursor),
+            "page" : String(prev),
             "jenis" : jenis,
             "columns" : columns,
             "keyword" : keyword

+ 206 - 79
Sirani/Base.lproj/Main.storyboard

@@ -1072,7 +1072,7 @@
                                 <rect key="frame" x="0.0" y="100" width="375" height="518"/>
                                 <subviews>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Rq9-u2-Y5G" userLabel="HomeContainerView">
-                                        <rect key="frame" x="0.0" y="0.0" width="375" height="851"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="375" height="1191"/>
                                         <subviews>
                                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TDy-Tj-zZA" userLabel="Slideshow" customClass="ImageSlideshow" customModule="ImageSlideshow">
                                                 <rect key="frame" x="0.0" y="0.0" width="375" height="160"/>
@@ -1129,58 +1129,87 @@
                                                 <nil key="highlightedColor"/>
                                             </label>
                                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="7hU-Gk-bJ8" userLabel="HomeNewsTV">
-                                                <rect key="frame" x="8" y="383" width="359" height="360"/>
+                                                <rect key="frame" x="8" y="383" width="359" height="700"/>
                                                 <color key="backgroundColor" red="0.98059982059999995" green="0.97617191079999999" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                 <constraints>
-                                                    <constraint firstAttribute="height" constant="360" id="xtY-ki-2Mp"/>
+                                                    <constraint firstAttribute="height" constant="700" id="xtY-ki-2Mp"/>
                                                 </constraints>
                                                 <color key="sectionIndexBackgroundColor" red="0.98059982061386108" green="0.97617191076278687" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                 <color key="sectionIndexTrackingBackgroundColor" red="0.98059982059999995" green="0.97617191079999999" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                 <prototypes>
-                                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" reuseIdentifier="HomeNewsCellId" rowHeight="70" id="hpD-jX-RRo" customClass="HomeNewsCell" customModule="Sirani" customModuleProvider="target">
-                                                        <rect key="frame" x="0.0" y="50" width="359" height="70"/>
+                                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" reuseIdentifier="HomeNewsCellId" rowHeight="106" id="hpD-jX-RRo" customClass="HomeNewsCell" customModule="Sirani" customModuleProvider="target">
+                                                        <rect key="frame" x="0.0" y="50" width="359" height="106"/>
                                                         <autoresizingMask key="autoresizingMask"/>
                                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="hpD-jX-RRo" id="csa-or-MHB">
-                                                            <rect key="frame" x="0.0" y="0.0" width="359" height="70"/>
+                                                            <rect key="frame" x="0.0" y="0.0" width="359" height="106"/>
                                                             <autoresizingMask key="autoresizingMask"/>
                                                             <subviews>
-                                                                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="This is title This is title This is title " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ape-Zz-E3Z" userLabel="HomeLblCellTitleNews">
-                                                                    <rect key="frame" x="8" y="8" width="255" height="17.5"/>
-                                                                    <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/>
-                                                                    <color key="textColor" red="0.1056468859" green="0.26498940589999997" blue="0.5374458432" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
-                                                                    <nil key="highlightedColor"/>
-                                                                </label>
-                                                                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="15-03-2019" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KSL-Vz-Jw8" userLabel="HomeLblCellDate">
-                                                                    <rect key="frame" x="271" y="8" width="80" height="14.5"/>
-                                                                    <constraints>
-                                                                        <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="80" id="S2z-wk-hXJ"/>
-                                                                    </constraints>
-                                                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
-                                                                    <color key="textColor" red="0.1056468859" green="0.26498940589999997" blue="0.5374458432" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
-                                                                    <nil key="highlightedColor"/>
-                                                                </label>
-                                                                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="TopLeft" horizontalHuggingPriority="251" verticalHuggingPriority="251" lineBreakMode="wordWrap" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y3A-5A-0yE" userLabel="HomeLblCellPreContent">
-                                                                    <rect key="frame" x="8" y="29.5" width="343" height="30"/>
+                                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lG6-4n-MWQ">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="359" height="106"/>
+                                                                    <subviews>
+                                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="039-XZ-asY">
+                                                                            <rect key="frame" x="0.0" y="0.0" width="150" height="106"/>
+                                                                            <constraints>
+                                                                                <constraint firstAttribute="width" constant="150" id="8di-NY-FwO"/>
+                                                                            </constraints>
+                                                                        </imageView>
+                                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="calendar.badge.clock" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="Yia-FS-dUF">
+                                                                            <rect key="frame" x="155" y="6.5" width="21.5" height="19"/>
+                                                                            <color key="tintColor" systemColor="systemOrangeColor"/>
+                                                                            <constraints>
+                                                                                <constraint firstAttribute="height" constant="20" id="7fp-7S-Jyo"/>
+                                                                                <constraint firstAttribute="width" constant="20" id="cBK-jl-CGg"/>
+                                                                            </constraints>
+                                                                        </imageView>
+                                                                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="15-03-2019" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KSL-Vz-Jw8" userLabel="HomeLblCellDate">
+                                                                            <rect key="frame" x="180" y="8" width="174" height="14.5"/>
+                                                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
+                                                                            <color key="textColor" systemColor="systemOrangeColor"/>
+                                                                            <nil key="highlightedColor"/>
+                                                                        </label>
+                                                                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="This is title This is title This is title " textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ape-Zz-E3Z" userLabel="HomeLblCellTitleNews">
+                                                                            <rect key="frame" x="155" y="27.5" width="199" height="33.5"/>
+                                                                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/>
+                                                                            <color key="textColor" red="0.1056468859" green="0.26498940589999997" blue="0.5374458432" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
+                                                                            <nil key="highlightedColor"/>
+                                                                        </label>
+                                                                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="TopLeft" horizontalHuggingPriority="251" verticalHuggingPriority="251" lineBreakMode="wordWrap" numberOfLines="4" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y3A-5A-0yE" userLabel="HomeLblCellPreContent">
+                                                                            <rect key="frame" x="155" y="66" width="199" height="57.5"/>
+                                                                            <constraints>
+                                                                                <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="30" id="EFk-lR-jGY"/>
+                                                                            </constraints>
+                                                                            <string key="text">This Is Pre Content This Is Pre Content This Is Pre Content This Is Pre Content This Is Pre Content This Is Pre Content This Is Pre Content This Is Pre Content </string>
+                                                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                                                            <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                            <nil key="highlightedColor"/>
+                                                                        </label>
+                                                                    </subviews>
                                                                     <constraints>
-                                                                        <constraint firstAttribute="height" constant="30" id="EFk-lR-jGY"/>
+                                                                        <constraint firstItem="Y3A-5A-0yE" firstAttribute="leading" secondItem="Ape-Zz-E3Z" secondAttribute="leading" id="HmF-Ee-Gx2"/>
+                                                                        <constraint firstItem="Yia-FS-dUF" firstAttribute="top" secondItem="lG6-4n-MWQ" secondAttribute="top" constant="5" id="Maz-L6-TcV"/>
+                                                                        <constraint firstItem="039-XZ-asY" firstAttribute="top" secondItem="lG6-4n-MWQ" secondAttribute="top" id="N25-eE-s01"/>
+                                                                        <constraint firstItem="Ape-Zz-E3Z" firstAttribute="trailing" secondItem="KSL-Vz-Jw8" secondAttribute="trailing" id="QDf-h2-QCt"/>
+                                                                        <constraint firstItem="Ape-Zz-E3Z" firstAttribute="top" secondItem="KSL-Vz-Jw8" secondAttribute="bottom" constant="5" id="RvL-Ph-BG2"/>
+                                                                        <constraint firstItem="039-XZ-asY" firstAttribute="top" secondItem="lG6-4n-MWQ" secondAttribute="top" id="SGd-bz-BwD"/>
+                                                                        <constraint firstAttribute="bottom" secondItem="039-XZ-asY" secondAttribute="bottom" id="W04-Sx-tN4"/>
+                                                                        <constraint firstItem="039-XZ-asY" firstAttribute="top" secondItem="lG6-4n-MWQ" secondAttribute="top" id="WHo-wx-VqC"/>
+                                                                        <constraint firstItem="Y3A-5A-0yE" firstAttribute="trailing" secondItem="Ape-Zz-E3Z" secondAttribute="trailing" id="bML-xN-jQl"/>
+                                                                        <constraint firstItem="039-XZ-asY" firstAttribute="leading" secondItem="lG6-4n-MWQ" secondAttribute="leading" id="gna-YN-LmL"/>
+                                                                        <constraint firstItem="Yia-FS-dUF" firstAttribute="leading" secondItem="039-XZ-asY" secondAttribute="trailing" constant="5" id="lrH-46-vXj"/>
+                                                                        <constraint firstItem="KSL-Vz-Jw8" firstAttribute="centerY" secondItem="Yia-FS-dUF" secondAttribute="centerY" id="r06-95-R1U"/>
+                                                                        <constraint firstItem="Y3A-5A-0yE" firstAttribute="top" secondItem="Ape-Zz-E3Z" secondAttribute="bottom" constant="5" id="r4q-YU-Oup"/>
+                                                                        <constraint firstAttribute="trailing" secondItem="KSL-Vz-Jw8" secondAttribute="trailing" constant="5" id="rej-Od-Qul"/>
+                                                                        <constraint firstItem="KSL-Vz-Jw8" firstAttribute="leading" secondItem="Yia-FS-dUF" secondAttribute="trailing" constant="5" id="tVs-D4-ZpC"/>
+                                                                        <constraint firstItem="Ape-Zz-E3Z" firstAttribute="leading" secondItem="Yia-FS-dUF" secondAttribute="leading" id="yDF-f0-dnL"/>
                                                                     </constraints>
-                                                                    <string key="text">This Is Pre Content This Is Pre Content This Is Pre Content This Is Pre Content This Is Pre Content This Is Pre Content This Is Pre Content This Is Pre Content </string>
-                                                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                                                                    <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                                                    <nil key="highlightedColor"/>
-                                                                </label>
+                                                                </view>
                                                             </subviews>
                                                             <color key="backgroundColor" red="0.98059982059999995" green="0.97617191079999999" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                             <constraints>
-                                                                <constraint firstItem="KSL-Vz-Jw8" firstAttribute="top" secondItem="csa-or-MHB" secondAttribute="top" constant="8" id="D2t-Nj-F8m"/>
-                                                                <constraint firstItem="Y3A-5A-0yE" firstAttribute="leading" secondItem="csa-or-MHB" secondAttribute="leading" constant="8" id="IIQ-Or-01S"/>
-                                                                <constraint firstAttribute="bottom" secondItem="Y3A-5A-0yE" secondAttribute="bottom" constant="10.5" id="TOq-hh-kQO"/>
-                                                                <constraint firstAttribute="trailing" secondItem="Y3A-5A-0yE" secondAttribute="trailing" constant="8" id="Tau-fI-cjw"/>
-                                                                <constraint firstAttribute="trailing" secondItem="KSL-Vz-Jw8" secondAttribute="trailing" constant="8" id="j2R-kx-5SX"/>
-                                                                <constraint firstItem="Ape-Zz-E3Z" firstAttribute="leading" secondItem="csa-or-MHB" secondAttribute="leading" constant="8" id="t9w-z4-ReU"/>
-                                                                <constraint firstItem="KSL-Vz-Jw8" firstAttribute="leading" secondItem="Ape-Zz-E3Z" secondAttribute="trailing" constant="8" id="uZq-Gs-QrB"/>
-                                                                <constraint firstItem="Y3A-5A-0yE" firstAttribute="top" secondItem="Ape-Zz-E3Z" secondAttribute="bottom" constant="4" id="wO4-GY-XCL"/>
-                                                                <constraint firstItem="Ape-Zz-E3Z" firstAttribute="top" secondItem="csa-or-MHB" secondAttribute="top" constant="8" id="xuI-6i-C6K"/>
+                                                                <constraint firstAttribute="bottom" secondItem="lG6-4n-MWQ" secondAttribute="bottom" id="4gV-6x-2o3"/>
+                                                                <constraint firstItem="lG6-4n-MWQ" firstAttribute="leading" secondItem="csa-or-MHB" secondAttribute="leading" id="4tH-EJ-g4R"/>
+                                                                <constraint firstAttribute="trailing" secondItem="lG6-4n-MWQ" secondAttribute="trailing" id="KHq-Np-WXT"/>
+                                                                <constraint firstItem="lG6-4n-MWQ" firstAttribute="top" secondItem="csa-or-MHB" secondAttribute="top" id="nxE-zY-gSC"/>
                                                             </constraints>
                                                         </tableViewCellContentView>
                                                         <color key="backgroundColor" red="0.98059982059999995" green="0.97617191079999999" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
@@ -1188,12 +1217,13 @@
                                                             <outlet property="lblDate" destination="KSL-Vz-Jw8" id="rFv-IR-vOn"/>
                                                             <outlet property="lblPreContent" destination="Y3A-5A-0yE" id="rcj-wN-Ucj"/>
                                                             <outlet property="lblTitle" destination="Ape-Zz-E3Z" id="hrZ-lm-lvc"/>
+                                                            <outlet property="thumbImageView" destination="039-XZ-asY" id="HSI-W9-mr0"/>
                                                         </connections>
                                                     </tableViewCell>
                                                 </prototypes>
                                             </tableView>
                                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yUc-rI-FWe" userLabel="HomeBtnMoreNews">
-                                                <rect key="frame" x="287" y="751" width="80" height="30"/>
+                                                <rect key="frame" x="287" y="1091" width="80" height="30"/>
                                                 <color key="backgroundColor" red="0.1056468859" green="0.26498940589999997" blue="0.5374458432" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                 <constraints>
                                                     <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="80" id="33B-Hj-rlE"/>
@@ -1208,13 +1238,13 @@
                                                 </connections>
                                             </button>
                                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gjj-XD-QRq" userLabel="ViewHelperBtnMoreNews">
-                                                <rect key="frame" x="8" y="751" width="271" height="30"/>
+                                                <rect key="frame" x="8" y="1091" width="271" height="30"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" constant="30" id="6fP-aw-Llv"/>
                                                 </constraints>
                                             </view>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ditjen SDPPI Kominfo @2019" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="olC-hf-6O8">
-                                                <rect key="frame" x="8" y="797" width="359" height="16"/>
+                                                <rect key="frame" x="8" y="1137" width="359" height="16"/>
                                                 <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                                 <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                                 <nil key="highlightedColor"/>
@@ -1957,7 +1987,7 @@
                         <segue destination="Fp4-5m-b0B" kind="show" identifier="TarifSertifikatSegueId" id="o4o-Lc-HmC"/>
                         <segue destination="Eyu-9N-mwO" kind="show" identifier="InformasiSertifikasiSegueId" id="RXv-ad-3Y4"/>
                         <segue destination="Hr2-Os-iol" kind="show" identifier="BalaiUjiSegueId" id="AIo-UT-PY1"/>
-                        <segue destination="Liq-DJ-uSy" kind="show" identifier="NewsSegueId" id="w6S-kx-wCh"/>
+                        <segue destination="Liq-DJ-uSy" kind="presentation" identifier="NewsSegueId" modalPresentationStyle="fullScreen" id="w6S-kx-wCh"/>
                         <segue destination="IOA-il-eWl" kind="show" identifier="hasilSurveySegueId" id="diA-hf-AJH"/>
                         <segue destination="ePj-tb-upo" kind="show" identifier="aplikasiEntrySegueId" id="tgF-DP-vKI"/>
                         <segue destination="jjs-Pn-zJC" kind="show" identifier="sp2OtorisasiSegueId" id="HYr-K7-ynh"/>
@@ -2748,7 +2778,7 @@
             <objects>
                 <viewController id="Liq-DJ-uSy" customClass="NewsVC" customModule="Sirani" customModuleProvider="target" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="MIT-1o-mPQ">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Z9r-CY-laV" userLabel="NewsHeader">
@@ -2852,7 +2882,7 @@
                                 </constraints>
                             </view>
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="U7P-P2-Lfb" userLabel="NewsTV">
-                                <rect key="frame" x="0.0" y="156" width="375" height="461"/>
+                                <rect key="frame" x="0.0" y="156" width="375" height="481"/>
                                 <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <color key="sectionIndexBackgroundColor" red="0.98059982059999995" green="0.97617191079999999" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                 <prototypes>
@@ -2863,22 +2893,40 @@
                                             <rect key="frame" x="0.0" y="0.0" width="375" height="103"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="This is Title This is Title This is Title This is Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Tzz-bH-0gG" userLabel="NewsListCellLblTitle">
-                                                    <rect key="frame" x="16" y="11" width="343" height="16.5"/>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="LlC-aj-VVT">
+                                                    <rect key="frame" x="12" y="-13" width="150" height="128"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="150" id="4c5-W0-1v6"/>
+                                                    </constraints>
+                                                </imageView>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="calendar.badge.clock" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="qU9-Jq-kgT">
+                                                    <rect key="frame" x="167" y="6.5" width="21.5" height="19"/>
+                                                    <color key="tintColor" systemColor="systemOrangeColor"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="20" id="PE2-Ot-vBO"/>
+                                                        <constraint firstAttribute="height" constant="20" id="h50-DM-Ldr"/>
+                                                    </constraints>
+                                                </imageView>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="This is Title This is Title This is Title This is Title" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Tzz-bH-0gG" userLabel="NewsListCellLblTitle">
+                                                    <rect key="frame" x="167" y="30" width="196" height="20"/>
                                                     <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="13"/>
                                                     <color key="textColor" red="0.086068578059999998" green="0.2112108171" blue="0.43152788279999998" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" text="This is Date" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KCt-W6-y8S" userLabel="NewsListCellLblDate">
-                                                    <rect key="frame" x="16" y="31.5" width="343" height="12"/>
+                                                    <rect key="frame" x="192" y="9" width="171" height="12"/>
+                                                    <color key="tintColor" systemColor="systemOrangeColor"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="12" id="gbb-B8-8nn"/>
+                                                    </constraints>
                                                     <fontDescription key="fontDescription" type="system" pointSize="10"/>
-                                                    <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                    <color key="textColor" systemColor="systemOrangeColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="TopLeft" horizontalHuggingPriority="251" verticalHuggingPriority="252" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FSy-hl-rzb" userLabel="NewsListCellLblPreContent">
-                                                    <rect key="frame" x="16" y="51.5" width="343" height="43"/>
+                                                    <rect key="frame" x="167" y="55" width="192" height="43"/>
                                                     <constraints>
-                                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="14.5" id="dyo-pq-vNt"/>
+                                                        <constraint firstAttribute="height" constant="43" id="2fq-SL-R9t"/>
                                                     </constraints>
                                                     <string key="text">This is Pre Content This is Pre Content This is Pre Content This is Pre Content This is Pre Content This is Pre Content This is Pre Content </string>
                                                     <fontDescription key="fontDescription" type="system" pointSize="12"/>
@@ -2887,28 +2935,34 @@
                                                 </label>
                                             </subviews>
                                             <constraints>
-                                                <constraint firstItem="KCt-W6-y8S" firstAttribute="top" secondItem="Tzz-bH-0gG" secondAttribute="bottom" constant="4" id="9DJ-zZ-Ytq"/>
-                                                <constraint firstItem="Tzz-bH-0gG" firstAttribute="top" secondItem="Fqh-uw-rgd" secondAttribute="topMargin" id="BSG-aq-XUv"/>
+                                                <constraint firstItem="Tzz-bH-0gG" firstAttribute="top" secondItem="qU9-Jq-kgT" secondAttribute="bottom" constant="5" id="6Ei-k5-S1e"/>
+                                                <constraint firstAttribute="bottom" secondItem="LlC-aj-VVT" secondAttribute="bottom" constant="-12" id="ACF-aQ-pwA"/>
+                                                <constraint firstItem="LlC-aj-VVT" firstAttribute="leading" secondItem="Fqh-uw-rgd" secondAttribute="leading" constant="12" id="BIY-I6-m2C"/>
+                                                <constraint firstItem="FSy-hl-rzb" firstAttribute="leading" secondItem="Tzz-bH-0gG" secondAttribute="leading" id="ES5-D6-5EC"/>
                                                 <constraint firstItem="FSy-hl-rzb" firstAttribute="trailing" secondItem="Fqh-uw-rgd" secondAttribute="trailingMargin" id="F1P-Oq-167"/>
-                                                <constraint firstItem="FSy-hl-rzb" firstAttribute="top" secondItem="KCt-W6-y8S" secondAttribute="bottom" constant="8" id="HwY-4z-gum"/>
-                                                <constraint firstItem="Tzz-bH-0gG" firstAttribute="trailing" secondItem="Fqh-uw-rgd" secondAttribute="trailingMargin" id="MRd-aK-PuB"/>
-                                                <constraint firstItem="Tzz-bH-0gG" firstAttribute="leading" secondItem="Fqh-uw-rgd" secondAttribute="leadingMargin" id="UEg-b9-FNC"/>
-                                                <constraint firstItem="FSy-hl-rzb" firstAttribute="leading" secondItem="Fqh-uw-rgd" secondAttribute="leadingMargin" id="jhc-T1-Eam"/>
-                                                <constraint firstItem="KCt-W6-y8S" firstAttribute="leading" secondItem="Fqh-uw-rgd" secondAttribute="leadingMargin" id="rO9-7a-spu"/>
-                                                <constraint firstItem="KCt-W6-y8S" firstAttribute="trailing" secondItem="Fqh-uw-rgd" secondAttribute="trailingMargin" id="sB6-Tj-OEc"/>
-                                                <constraint firstAttribute="bottom" secondItem="FSy-hl-rzb" secondAttribute="bottom" constant="8.5" id="uiD-Ue-VOA"/>
+                                                <constraint firstItem="qU9-Jq-kgT" firstAttribute="leading" secondItem="LlC-aj-VVT" secondAttribute="trailing" constant="5" id="Fbi-Yu-ZB4"/>
+                                                <constraint firstItem="Tzz-bH-0gG" firstAttribute="leading" secondItem="qU9-Jq-kgT" secondAttribute="leading" id="Spf-YR-EzQ"/>
+                                                <constraint firstItem="KCt-W6-y8S" firstAttribute="leading" secondItem="qU9-Jq-kgT" secondAttribute="trailing" constant="5" id="SyF-nc-kl6"/>
+                                                <constraint firstItem="FSy-hl-rzb" firstAttribute="top" secondItem="Tzz-bH-0gG" secondAttribute="bottom" constant="5" id="csj-Cx-srY"/>
+                                                <constraint firstItem="qU9-Jq-kgT" firstAttribute="top" secondItem="Fqh-uw-rgd" secondAttribute="top" constant="5" id="fTS-o3-hxd"/>
+                                                <constraint firstAttribute="trailing" secondItem="KCt-W6-y8S" secondAttribute="trailing" constant="12" id="h4W-4O-Wgh"/>
+                                                <constraint firstItem="LlC-aj-VVT" firstAttribute="top" secondItem="Fqh-uw-rgd" secondAttribute="top" constant="-13" id="p9D-wk-c01"/>
+                                                <constraint firstItem="Tzz-bH-0gG" firstAttribute="trailing" secondItem="KCt-W6-y8S" secondAttribute="trailing" id="pVh-82-x7q"/>
+                                                <constraint firstAttribute="bottom" secondItem="FSy-hl-rzb" secondAttribute="bottom" constant="5" id="uiD-Ue-VOA"/>
+                                                <constraint firstItem="KCt-W6-y8S" firstAttribute="centerY" secondItem="qU9-Jq-kgT" secondAttribute="centerY" id="x6s-E4-aC2"/>
                                             </constraints>
                                         </tableViewCellContentView>
                                         <connections>
                                             <outlet property="lblDate" destination="KCt-W6-y8S" id="tx6-8v-4vN"/>
                                             <outlet property="lblPreContent" destination="FSy-hl-rzb" id="UMg-N5-Uhv"/>
                                             <outlet property="lblTitle" destination="Tzz-bH-0gG" id="TLn-1Z-AWh"/>
+                                            <outlet property="thumbImageView" destination="LlC-aj-VVT" id="cYj-1Q-kPA"/>
                                         </connections>
                                     </tableViewCell>
                                 </prototypes>
                             </tableView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ditjen SDPPI Kominfo @ 2019" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gmo-8Y-Hc0" userLabel="NewsFooter">
-                                <rect key="frame" x="0.0" y="617" width="375" height="30"/>
+                                <rect key="frame" x="0.0" y="637" width="375" height="30"/>
                                 <color key="backgroundColor" red="0.1056468859" green="0.26498940589999997" blue="0.5374458432" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="30" id="H2d-Qs-MiW"/>
@@ -2918,10 +2972,10 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6Gp-Wl-WyO" userLabel="NewsLayoutNoData">
-                                <rect key="frame" x="0.0" y="156" width="375" height="461"/>
+                                <rect key="frame" x="0.0" y="156" width="375" height="481"/>
                                 <subviews>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fwI-I4-Dkz">
-                                        <rect key="frame" x="8" y="123.5" width="359" height="214"/>
+                                        <rect key="frame" x="8" y="133.5" width="359" height="214"/>
                                         <subviews>
                                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="data-not-avail.9" translatesAutoresizingMaskIntoConstraints="NO" id="CGG-w2-NMF">
                                                 <rect key="frame" x="89.5" y="0.0" width="180" height="180"/>
@@ -2956,10 +3010,10 @@
                                 </constraints>
                             </view>
                             <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Q1K-si-0PG" userLabel="NewsProgressLoading">
-                                <rect key="frame" x="0.0" y="156" width="375" height="461"/>
+                                <rect key="frame" x="0.0" y="156" width="375" height="481"/>
                                 <subviews>
                                     <activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" animating="YES" style="whiteLarge" translatesAutoresizingMaskIntoConstraints="NO" id="O21-Gr-gPx">
-                                        <rect key="frame" x="169" y="212" width="37" height="37"/>
+                                        <rect key="frame" x="169" y="222" width="37" height="37"/>
                                         <color key="color" red="0.1056468859" green="0.26498940589999997" blue="0.5374458432" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                     </activityIndicatorView>
                                 </subviews>
@@ -3008,7 +3062,7 @@
                 <placeholder placeholderIdentifier="IBFirstResponder" id="EK6-b6-ICE" userLabel="First Responder" sceneMemberID="firstResponder"/>
                 <exit id="3Xz-z9-1r8" userLabel="Exit" sceneMemberID="exit"/>
             </objects>
-            <point key="canvasLocation" x="-5646" y="1835"/>
+            <point key="canvasLocation" x="-5647.1999999999998" y="1834.6326836581711"/>
         </scene>
         <!--Tarif SertifikatVC-->
         <scene sceneID="YdQ-7o-RpS">
@@ -3619,6 +3673,7 @@
                             <constraint firstItem="kne-26-zVg" firstAttribute="top" secondItem="nIa-AU-7om" secondAttribute="bottom" id="taC-Ih-PaL"/>
                         </constraints>
                     </view>
+                    <navigationItem key="navigationItem" id="Qti-YZ-FfZ"/>
                     <connections>
                         <outlet property="btnJenisOptions" destination="zZ8-oD-Dza" id="Vcr-bV-5jY"/>
                         <outlet property="btnParameterOptions" destination="3QJ-FN-ClA" id="ua1-3p-dEt"/>
@@ -3728,14 +3783,6 @@
                                     <constraint firstAttribute="height" constant="56" id="vLh-dw-uxn"/>
                                 </constraints>
                             </view>
-                            <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3lz-IQ-PfK" userLabel="NewsDetailWv">
-                                <rect key="frame" x="0.0" y="156" width="375" height="461"/>
-                                <color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                <wkWebViewConfiguration key="configuration">
-                                    <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
-                                    <wkPreferences key="preferences"/>
-                                </wkWebViewConfiguration>
-                            </wkWebView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ditjen SDPPI Kominfo @ 2019" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8fx-Ix-HE3" userLabel="NewsDetailFooter">
                                 <rect key="frame" x="0.0" y="617" width="375" height="30"/>
                                 <color key="backgroundColor" red="0.1056468859" green="0.26498940589999997" blue="0.5374458432" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
@@ -3759,33 +3806,109 @@
                                     <constraint firstItem="E19-Oc-rYV" firstAttribute="centerY" secondItem="jDp-dY-spI" secondAttribute="centerY" id="Q1K-sk-417"/>
                                 </constraints>
                             </view>
+                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ubN-ri-WL7">
+                                <rect key="frame" x="0.0" y="156" width="375" height="461"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qok-W4-34l">
+                                        <rect key="frame" x="0.0" y="0.0" width="375" height="900"/>
+                                        <subviews>
+                                            <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3lz-IQ-PfK" userLabel="NewsDetailWv">
+                                                <rect key="frame" x="16" y="426" width="343" height="400"/>
+                                                <color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="400" id="fHh-dh-5Ah"/>
+                                                </constraints>
+                                                <wkWebViewConfiguration key="configuration">
+                                                    <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
+                                                    <wkPreferences key="preferences"/>
+                                                </wkWebViewConfiguration>
+                                            </wkWebView>
+                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="3VM-uR-PSF">
+                                                <rect key="frame" x="16" y="10" width="343" height="343"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" secondItem="3VM-uR-PSF" secondAttribute="height" multiplier="1:1" id="NEP-p7-b5G"/>
+                                                </constraints>
+                                            </imageView>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Judul" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EqA-S2-Clf">
+                                                <rect key="frame" x="16" y="393" width="343" height="18"/>
+                                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                <nil key="textColor"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="calendar.badge.clock" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="RkE-2f-vRY">
+                                                <rect key="frame" x="16" y="364.5" width="21.5" height="19"/>
+                                                <color key="tintColor" systemColor="systemOrangeColor"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="20" id="40S-V2-qp1"/>
+                                                    <constraint firstAttribute="width" constant="20" id="zQS-4X-saF"/>
+                                                </constraints>
+                                            </imageView>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Date" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="u3T-yS-h22">
+                                                <rect key="frame" x="41" y="366" width="318" height="14.5"/>
+                                                <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                                <color key="textColor" systemColor="systemOrangeColor"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                        </subviews>
+                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                        <constraints>
+                                            <constraint firstItem="3VM-uR-PSF" firstAttribute="leading" secondItem="Qok-W4-34l" secondAttribute="leading" constant="16" id="8SN-jR-bXh"/>
+                                            <constraint firstAttribute="trailing" secondItem="u3T-yS-h22" secondAttribute="trailing" constant="16" id="9SQ-id-apU"/>
+                                            <constraint firstItem="3lz-IQ-PfK" firstAttribute="top" secondItem="EqA-S2-Clf" secondAttribute="bottom" constant="15" id="BCJ-eP-Iuo"/>
+                                            <constraint firstItem="u3T-yS-h22" firstAttribute="leading" secondItem="RkE-2f-vRY" secondAttribute="trailing" constant="5" id="Cg0-qt-e4f"/>
+                                            <constraint firstAttribute="trailing" secondItem="3lz-IQ-PfK" secondAttribute="trailing" constant="16" id="GB1-23-FML"/>
+                                            <constraint firstAttribute="trailing" secondItem="EqA-S2-Clf" secondAttribute="trailing" constant="16" id="GOm-1J-tJh"/>
+                                            <constraint firstItem="EqA-S2-Clf" firstAttribute="leading" secondItem="Qok-W4-34l" secondAttribute="leading" constant="16" id="MqL-iP-sad"/>
+                                            <constraint firstItem="3VM-uR-PSF" firstAttribute="top" secondItem="Qok-W4-34l" secondAttribute="top" constant="10" id="Otl-h1-zG3"/>
+                                            <constraint firstItem="RkE-2f-vRY" firstAttribute="leading" secondItem="Qok-W4-34l" secondAttribute="leading" constant="16" id="QLN-Nb-bzc"/>
+                                            <constraint firstItem="3lz-IQ-PfK" firstAttribute="leading" secondItem="Qok-W4-34l" secondAttribute="leading" constant="16" id="W6A-9S-lbj"/>
+                                            <constraint firstAttribute="height" constant="900" id="aof-1q-t24"/>
+                                            <constraint firstAttribute="trailing" secondItem="3VM-uR-PSF" secondAttribute="trailing" constant="16" id="azi-fW-bBq"/>
+                                            <constraint firstItem="u3T-yS-h22" firstAttribute="centerY" secondItem="RkE-2f-vRY" secondAttribute="centerY" id="hVz-d7-7EO"/>
+                                            <constraint firstItem="RkE-2f-vRY" firstAttribute="top" secondItem="3VM-uR-PSF" secondAttribute="bottom" constant="10" id="wqM-R9-kXm"/>
+                                            <constraint firstItem="EqA-S2-Clf" firstAttribute="top" secondItem="RkE-2f-vRY" secondAttribute="bottom" constant="10" id="x2h-ED-yjG"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <constraints>
+                                    <constraint firstItem="Qok-W4-34l" firstAttribute="leading" secondItem="ubN-ri-WL7" secondAttribute="leading" id="0zH-JH-mrA"/>
+                                    <constraint firstItem="Qok-W4-34l" firstAttribute="top" secondItem="ubN-ri-WL7" secondAttribute="top" id="L6C-eA-4zm"/>
+                                    <constraint firstAttribute="trailing" secondItem="Qok-W4-34l" secondAttribute="trailing" id="Mxw-7M-A8L"/>
+                                    <constraint firstAttribute="bottom" secondItem="Qok-W4-34l" secondAttribute="bottom" id="e74-8e-KbN"/>
+                                </constraints>
+                            </scrollView>
                         </subviews>
                         <viewLayoutGuide key="safeArea" id="79A-8j-4nK"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                         <constraints>
                             <constraint firstItem="qsU-h9-uNB" firstAttribute="top" secondItem="UYh-iU-fwm" secondAttribute="bottom" id="17c-XR-p7N"/>
-                            <constraint firstItem="3lz-IQ-PfK" firstAttribute="leading" secondItem="79A-8j-4nK" secondAttribute="leading" id="1W0-Pg-Wfo"/>
                             <constraint firstItem="qsU-h9-uNB" firstAttribute="top" secondItem="UYh-iU-fwm" secondAttribute="bottom" id="5lb-qS-erq"/>
+                            <constraint firstItem="8fx-Ix-HE3" firstAttribute="top" secondItem="ubN-ri-WL7" secondAttribute="bottom" id="BVN-A9-d7Y"/>
                             <constraint firstItem="qsU-h9-uNB" firstAttribute="leading" secondItem="79A-8j-4nK" secondAttribute="leading" id="Bnn-H4-nMG"/>
-                            <constraint firstItem="3lz-IQ-PfK" firstAttribute="top" secondItem="qsU-h9-uNB" secondAttribute="bottom" id="Gga-E2-Dp5"/>
+                            <constraint firstItem="Qok-W4-34l" firstAttribute="width" secondItem="GTr-Ng-TKu" secondAttribute="width" id="Fsi-uz-NBV"/>
                             <constraint firstItem="qsU-h9-uNB" firstAttribute="top" secondItem="UYh-iU-fwm" secondAttribute="bottom" id="Hm6-5w-N0b"/>
                             <constraint firstItem="UYh-iU-fwm" firstAttribute="leading" secondItem="79A-8j-4nK" secondAttribute="leading" id="KIh-2Q-QLU"/>
-                            <constraint firstItem="3lz-IQ-PfK" firstAttribute="trailing" secondItem="79A-8j-4nK" secondAttribute="trailing" id="Oea-EI-HSe"/>
                             <constraint firstItem="UYh-iU-fwm" firstAttribute="top" secondItem="GTr-Ng-TKu" secondAttribute="top" id="Tet-P4-WiF"/>
                             <constraint firstItem="8fx-Ix-HE3" firstAttribute="leading" secondItem="79A-8j-4nK" secondAttribute="leading" id="UJD-sR-icV"/>
                             <constraint firstItem="8fx-Ix-HE3" firstAttribute="trailing" secondItem="79A-8j-4nK" secondAttribute="trailing" id="UeA-cY-mwh"/>
+                            <constraint firstItem="ubN-ri-WL7" firstAttribute="trailing" secondItem="79A-8j-4nK" secondAttribute="trailing" id="bw5-A6-4T4"/>
                             <constraint firstItem="8fx-Ix-HE3" firstAttribute="top" secondItem="jDp-dY-spI" secondAttribute="bottom" id="eGu-Kk-ApW"/>
                             <constraint firstItem="8fx-Ix-HE3" firstAttribute="bottom" secondItem="79A-8j-4nK" secondAttribute="bottom" id="eTY-ne-2Xi"/>
                             <constraint firstItem="jDp-dY-spI" firstAttribute="trailing" secondItem="79A-8j-4nK" secondAttribute="trailing" id="fza-hr-hE5"/>
                             <constraint firstItem="UYh-iU-fwm" firstAttribute="trailing" secondItem="79A-8j-4nK" secondAttribute="trailing" id="jNH-K9-g3c"/>
                             <constraint firstItem="jDp-dY-spI" firstAttribute="leading" secondItem="79A-8j-4nK" secondAttribute="leading" id="k9C-lZ-o0j"/>
-                            <constraint firstItem="8fx-Ix-HE3" firstAttribute="top" secondItem="3lz-IQ-PfK" secondAttribute="bottom" id="r99-AW-G6d"/>
+                            <constraint firstItem="ubN-ri-WL7" firstAttribute="leading" secondItem="79A-8j-4nK" secondAttribute="leading" id="nlh-Cu-xj6"/>
+                            <constraint firstItem="ubN-ri-WL7" firstAttribute="top" secondItem="qsU-h9-uNB" secondAttribute="bottom" id="okn-zk-1EQ"/>
                             <constraint firstItem="jDp-dY-spI" firstAttribute="top" secondItem="qsU-h9-uNB" secondAttribute="bottom" id="ry0-2D-Vmk"/>
                             <constraint firstItem="qsU-h9-uNB" firstAttribute="trailing" secondItem="79A-8j-4nK" secondAttribute="trailing" id="ue9-V4-YKP"/>
                         </constraints>
                     </view>
+                    <navigationItem key="navigationItem" id="H09-pJ-nL8"/>
                     <connections>
                         <outlet property="progressLoading" destination="jDp-dY-spI" id="Qub-EF-qMs"/>
+                        <outlet property="tanggalLabel" destination="u3T-yS-h22" id="UCo-kf-fxc"/>
+                        <outlet property="thumbImageView" destination="3VM-uR-PSF" id="mJi-pU-cDG"/>
+                        <outlet property="titleLabel" destination="EqA-S2-Clf" id="A6F-Im-3ha"/>
                         <outlet property="wvNews" destination="3lz-IQ-PfK" id="VAc-dB-TbJ"/>
                         <segue destination="r6e-BC-uga" kind="unwind" identifier="unwindNewsDetailToNewsListSegueId" unwindAction="unwindToNewsListWithSegue:" id="oSY-V3-uuz"/>
                         <segue destination="r6e-BC-uga" kind="unwind" identifier="unwindNewsDetailToHomeSegueId" unwindAction="unwindToHomeWithSegue:" id="lgm-2r-MQY"/>
@@ -23327,10 +23450,11 @@
         </designable>
     </designables>
     <inferredMetricsTieBreakers>
-        <segue reference="pgo-8x-SnY"/>
-        <segue reference="lWp-qC-755"/>
+        <segue reference="WXP-Mi-Hja"/>
+        <segue reference="BLS-DN-77B"/>
     </inferredMetricsTieBreakers>
     <resources>
+        <image name="calendar.badge.clock" catalog="system" width="128" height="108"/>
         <image name="data-not-avail.9" width="514" height="514"/>
         <image name="direction" width="50" height="50"/>
         <image name="download-sertifikat" width="24.5" height="24"/>
@@ -23362,5 +23486,8 @@
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>
+        <systemColor name="systemOrangeColor">
+            <color red="1" green="0.58431372549019611" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+        </systemColor>
     </resources>
 </document>

+ 24 - 1
Sirani/Model/News.swift

@@ -13,12 +13,14 @@ struct News {
     private(set) public var title_news: String
     private(set) public var pra_news: String
     private(set) public var create_date: String
+    private(set) public var thumb_filename: String
     
-    init (id: Int, title_news: String, pra_news: String, create_date: String) {
+    init (id: Int, title_news: String, pra_news: String, create_date: String, thumb_filename: String) {
         self.id = id
         self.title_news = title_news
         self.pra_news = pra_news
         self.create_date = create_date
+        self.thumb_filename = thumb_filename
     }
     
     func date() -> String {
@@ -41,4 +43,25 @@ struct News {
         
         return date
     }
+    
+    func dateNew() -> String {
+        var date = ""
+        
+        if (create_date == "null" || create_date.isEmpty) {
+            date = ""
+        } else {
+            let createdDate = create_date.prefix(10)
+            let inputFormatter = DateFormatter()
+            inputFormatter.dateFormat = "yyyy-MM-dd"
+            let dateString = String(createdDate)
+            
+            if let output = inputFormatter.date(from: dateString) {
+                let outputFormatter = DateFormatter()
+                outputFormatter.dateFormat = "dd MMM yyyy"
+                date = outputFormatter.string(from: output)
+            }
+        }
+        
+        return date
+    }
 }

+ 27 - 1
Sirani/View/Home/HomeNewsCell.swift

@@ -13,10 +13,36 @@ class HomeNewsCell: UITableViewCell {
     @IBOutlet weak var lblTitle: UILabel!
     @IBOutlet weak var lblDate: UILabel!
     @IBOutlet weak var lblPreContent: UILabel!
+    @IBOutlet weak var thumbImageView: UIImageView!
+    
+    override func layoutSubviews() {
+        super.layoutSubviews()
+
+        contentView.frame = contentView.frame.inset(by: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))
+    }
     
     func updateViews(news: News) {
+        let url = news.thumb_filename.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
+        thumbImageView.loadFrom(URLAddress: url)
         lblTitle.text = news.title_news
-        lblDate.text = news.date()
+        lblDate.text = news.dateNew()
         lblPreContent.text = news.pra_news
     }
 }
+
+extension UIImageView {
+    func loadFrom(URLAddress: String) {
+        guard let url = URL(string: URLAddress) else {
+            return
+        }
+        
+        DispatchQueue.main.async { [weak self] in
+            if let imageData = try? Data(contentsOf: url) {
+                if let loadedImage = UIImage(data: imageData) {
+                        self?.image = loadedImage
+                }
+            }
+        }
+    }
+}
+

+ 2 - 1
Sirani/View/Home/HomePresenter.swift

@@ -65,7 +65,8 @@ class HomePresenter {
                                     id: item["id"].intValue,
                                     title_news: item["title_news"].stringValue,
                                     pra_news: item["pra_news"].stringValue,
-                                    create_date: item["create_date"].stringValue
+                                    create_date: item["create_date"].stringValue,
+                                    thumb_filename: item["thumb_filename"].stringValue
                                 )
                                 listNews.append(news)
                             }

+ 14 - 1
Sirani/View/Home/HomeVC.swift

@@ -108,6 +108,9 @@ class HomeVC: UIViewController {
     private var moreMenuFrame: CGRect?
     private var loading = false
     private var selectedNewsId = 0
+    private var date = ""
+    private var judul = ""
+    private var urlThumb = ""
     private var moreMenuShown = false
     private var showMoreMenuDuration = 0.2
     private var userRoleId = ""
@@ -228,6 +231,9 @@ class HomeVC: UIViewController {
     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
         if let destVC = segue.destination as? NewsDetailVC {
             destVC.newsId = self.selectedNewsId
+            destVC.date = self.date
+            destVC.judul = self.judul
+            destVC.urlThumb = self.urlThumb.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
             destVC.segueId = destVC.SEGUE_HOME_ID
         }
     }
@@ -263,7 +269,7 @@ class HomeVC: UIViewController {
         footer.backgroundColor = #colorLiteral(red: 0.9814968705, green: 0.9760531783, blue: 1, alpha: 1)
         homeNewsTV.tableFooterView = footer
         
-        presenter.loadNews(cursor: 0, prev: 1, jenis: "", columns: "")
+        presenter.loadNews(cursor: 5, prev: 1, jenis: "", columns: "")
     }
     
     private func showMoreMenu() {
@@ -1019,6 +1025,13 @@ extension HomeVC: UITableViewDelegate, UITableViewDataSource {
     func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
         let selectedNews = self.listNews[indexPath.row]
         self.selectedNewsId = selectedNews.id
+        self.date = selectedNews.dateNew()
+        self.judul = selectedNews.title_news
+        self.urlThumb = selectedNews.thumb_filename
         performSegue(withIdentifier: "homeToNewsDetailSegueId", sender: self)
     }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        return 140
+    }
 }

+ 11 - 0
Sirani/View/News/Detail/NewsDetailVC.swift

@@ -14,6 +14,9 @@ class NewsDetailVC: UIViewController {
     // Outlets
     @IBOutlet weak var wvNews: WKWebView!
     @IBOutlet weak var progressLoading: UIView!
+    @IBOutlet weak var tanggalLabel: UILabel!
+    @IBOutlet weak var titleLabel: UILabel!
+    @IBOutlet weak var thumbImageView: UIImageView!
     
     // Initialize
     private var presenter: NewsDetailPresenter!
@@ -31,6 +34,9 @@ class NewsDetailVC: UIViewController {
     
     // Public Variable, Use by Segue
     var newsId: Int = 0
+    var date: String?
+    var judul: String?
+    var urlThumb: String?
     var segueId: Int = 0
     
     // Variables
@@ -49,6 +55,11 @@ class NewsDetailVC: UIViewController {
         super.viewDidLoad()
         
         presenter = NewsDetailPresenter(siraniApiServices: SiraniApiServices())
+        
+        tanggalLabel.text = self.date
+        titleLabel.text = self.judul
+        thumbImageView.loadFrom(URLAddress: self.urlThumb ?? "")
+        
     }
     
     override func viewDidAppear(_ animated: Bool) {

+ 10 - 2
Sirani/View/News/Index/NewsCell.swift

@@ -13,11 +13,19 @@ class NewsCell: UITableViewCell {
     @IBOutlet weak var lblTitle: UILabel!
     @IBOutlet weak var lblDate: UILabel!
     @IBOutlet weak var lblPreContent: UILabel!
+    @IBOutlet weak var thumbImageView: UIImageView!
+    
+    override func layoutSubviews() {
+        super.layoutSubviews()
+
+        contentView.frame = contentView.frame.inset(by: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))
+    }
     
     func updateViews(news: News) {
+        let url = news.thumb_filename.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
+        thumbImageView.loadFrom(URLAddress: url)
         lblTitle.text = news.title_news
-        lblDate.text = news.date()
+        lblDate.text = news.dateNew()
         lblPreContent.text = news.pra_news
     }
-   
 }

+ 2 - 1
Sirani/View/News/Index/NewsPresenter.swift

@@ -42,7 +42,8 @@ class NewsPresenter {
                                     id: item["id"].intValue,
                                     title_news: item["title_news"].stringValue,
                                     pra_news: item["pra_news"].stringValue,
-                                    create_date: item["create_date"].stringValue
+                                    create_date: item["create_date"].stringValue,
+                                    thumb_filename: item["thumb_filename"].stringValue
                                 )
                                 dataList.append(news)
                             }

+ 21 - 5
Sirani/View/News/Index/NewsVC.swift

@@ -36,13 +36,16 @@ class NewsVC: UIViewController {
     private var jenis: String = ""
     private var columns: String = ""
     private var keyword: String = ""
-    private var cursor: Int = 0
+    private var cursor: Int = 5
     private var prev: Int = 1
     
     // Others
     private var loading = false
     private var lastDataLoadedEmpty = false
     private var selectedNewsId = 0
+    private var date = ""
+    private var judul = ""
+    private var urlThumb = ""
     private var loadMore = false
     
     // View Lifecycles
@@ -75,6 +78,9 @@ class NewsVC: UIViewController {
     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
         if let detailsVC = segue.destination as? NewsDetailVC {
             detailsVC.newsId = selectedNewsId
+            detailsVC.date = date
+            detailsVC.judul = judul
+            detailsVC.urlThumb = urlThumb.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
             detailsVC.segueId = detailsVC.SEGUE_NEWS_LIST_ID
         }
         
@@ -157,10 +163,14 @@ extension NewsVC: NewsViewDelegate {
                 newsTV.endUpdates()
             }
             
-            let totalData = dataList.count
-            cursor += totalData
+//            let totalData = dataList.count
+            prev += 1
             loadMore = true
         } else {
+            if(self.dataList.count == 0)
+            {
+                layoutNoData.show()
+            }
             lastDataLoadedEmpty = true
             loadMore = false
         }
@@ -191,12 +201,18 @@ extension NewsVC: UITableViewDelegate, UITableViewDataSource, UIScrollViewDelega
     }
     
     func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
-        print("KUY")
         let selectedNews = dataList[indexPath.row]
         selectedNewsId = selectedNews.id
+        date = selectedNews.dateNew()
+        judul = selectedNews.title_news
+        urlThumb = selectedNews.thumb_filename
         performSegue(withIdentifier: detailSegueId, sender: self)
     }
     
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        return 140
+    }
+    
     func scrollViewDidScroll(_ scrollView: UIScrollView) {
         let threshold = -5
         let contentOffset = scrollView.contentOffset.y
@@ -217,7 +233,7 @@ extension NewsVC: SearchNewsDelegate {
         loading = false
         lastDataLoadedEmpty = false
         
-        self.cursor = 0
+        self.cursor = 5
         self.prev = 1
         self.keyword = search
         self.jenis = jenis