Просмотр исходного кода

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

Hendi 3 лет назад
Родитель
Сommit
7ac68f811d

BIN
Sirani.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate


+ 9 - 3
Sirani/ApiServices/SiraniApiServices.swift

@@ -42,11 +42,17 @@ class SiraniApiServices {
     
     
     // News -> Home, NewsVC
     // News -> Home, NewsVC
     func postToGetNews(cursor: Int, prev: Int, jenis: String, columns: String, keyword: String) -> DataRequest {
     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 headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
         let body: Parameters = [
         let body: Parameters = [
-            "cursor" : String(cursor),
-            "prev" : String(prev),
+            "limit" : String(cursor),
+            "page" : String(prev),
             "jenis" : jenis,
             "jenis" : jenis,
             "columns" : columns,
             "columns" : columns,
             "keyword" : keyword
             "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"/>
                                 <rect key="frame" x="0.0" y="100" width="375" height="518"/>
                                 <subviews>
                                 <subviews>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Rq9-u2-Y5G" userLabel="HomeContainerView">
                                     <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>
                                         <subviews>
                                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TDy-Tj-zZA" userLabel="Slideshow" customClass="ImageSlideshow" customModule="ImageSlideshow">
                                             <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"/>
                                                 <rect key="frame" x="0.0" y="0.0" width="375" height="160"/>
@@ -1129,58 +1129,87 @@
                                                 <nil key="highlightedColor"/>
                                                 <nil key="highlightedColor"/>
                                             </label>
                                             </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">
                                             <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"/>
                                                 <color key="backgroundColor" red="0.98059982059999995" green="0.97617191079999999" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                 <constraints>
                                                 <constraints>
-                                                    <constraint firstAttribute="height" constant="360" id="xtY-ki-2Mp"/>
+                                                    <constraint firstAttribute="height" constant="700" id="xtY-ki-2Mp"/>
                                                 </constraints>
                                                 </constraints>
                                                 <color key="sectionIndexBackgroundColor" red="0.98059982061386108" green="0.97617191076278687" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                 <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"/>
                                                 <color key="sectionIndexTrackingBackgroundColor" red="0.98059982059999995" green="0.97617191079999999" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                 <prototypes>
                                                 <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"/>
                                                         <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">
                                                         <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"/>
                                                             <autoresizingMask key="autoresizingMask"/>
                                                             <subviews>
                                                             <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>
                                                                     <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>
                                                                     </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>
                                                             </subviews>
                                                             <color key="backgroundColor" red="0.98059982059999995" green="0.97617191079999999" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                             <color key="backgroundColor" red="0.98059982059999995" green="0.97617191079999999" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                             <constraints>
                                                             <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>
                                                             </constraints>
                                                         </tableViewCellContentView>
                                                         </tableViewCellContentView>
                                                         <color key="backgroundColor" red="0.98059982059999995" green="0.97617191079999999" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                         <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="lblDate" destination="KSL-Vz-Jw8" id="rFv-IR-vOn"/>
                                                             <outlet property="lblPreContent" destination="Y3A-5A-0yE" id="rcj-wN-Ucj"/>
                                                             <outlet property="lblPreContent" destination="Y3A-5A-0yE" id="rcj-wN-Ucj"/>
                                                             <outlet property="lblTitle" destination="Ape-Zz-E3Z" id="hrZ-lm-lvc"/>
                                                             <outlet property="lblTitle" destination="Ape-Zz-E3Z" id="hrZ-lm-lvc"/>
+                                                            <outlet property="thumbImageView" destination="039-XZ-asY" id="HSI-W9-mr0"/>
                                                         </connections>
                                                         </connections>
                                                     </tableViewCell>
                                                     </tableViewCell>
                                                 </prototypes>
                                                 </prototypes>
                                             </tableView>
                                             </tableView>
                                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yUc-rI-FWe" userLabel="HomeBtnMoreNews">
                                             <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"/>
                                                 <color key="backgroundColor" red="0.1056468859" green="0.26498940589999997" blue="0.5374458432" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                 <constraints>
                                                 <constraints>
                                                     <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="80" id="33B-Hj-rlE"/>
                                                     <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="80" id="33B-Hj-rlE"/>
@@ -1208,13 +1238,13 @@
                                                 </connections>
                                                 </connections>
                                             </button>
                                             </button>
                                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gjj-XD-QRq" userLabel="ViewHelperBtnMoreNews">
                                             <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>
                                                 <constraints>
                                                     <constraint firstAttribute="height" constant="30" id="6fP-aw-Llv"/>
                                                     <constraint firstAttribute="height" constant="30" id="6fP-aw-Llv"/>
                                                 </constraints>
                                                 </constraints>
                                             </view>
                                             </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">
                                             <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"/>
                                                 <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                                 <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                                 <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                                 <nil key="highlightedColor"/>
                                                 <nil key="highlightedColor"/>
@@ -1957,7 +1987,7 @@
                         <segue destination="Fp4-5m-b0B" kind="show" identifier="TarifSertifikatSegueId" id="o4o-Lc-HmC"/>
                         <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="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="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="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="ePj-tb-upo" kind="show" identifier="aplikasiEntrySegueId" id="tgF-DP-vKI"/>
                         <segue destination="jjs-Pn-zJC" kind="show" identifier="sp2OtorisasiSegueId" id="HYr-K7-ynh"/>
                         <segue destination="jjs-Pn-zJC" kind="show" identifier="sp2OtorisasiSegueId" id="HYr-K7-ynh"/>
@@ -2748,7 +2778,7 @@
             <objects>
             <objects>
                 <viewController id="Liq-DJ-uSy" customClass="NewsVC" customModule="Sirani" customModuleProvider="target" sceneMemberID="viewController">
                 <viewController id="Liq-DJ-uSy" customClass="NewsVC" customModule="Sirani" customModuleProvider="target" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="MIT-1o-mPQ">
                     <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"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                         <subviews>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Z9r-CY-laV" userLabel="NewsHeader">
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Z9r-CY-laV" userLabel="NewsHeader">
@@ -2852,7 +2882,7 @@
                                 </constraints>
                                 </constraints>
                             </view>
                             </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">
                             <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="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"/>
                                 <color key="sectionIndexBackgroundColor" red="0.98059982059999995" green="0.97617191079999999" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                 <prototypes>
                                 <prototypes>
@@ -2863,22 +2893,40 @@
                                             <rect key="frame" x="0.0" y="0.0" width="375" height="103"/>
                                             <rect key="frame" x="0.0" y="0.0" width="375" height="103"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                             <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"/>
                                                     <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"/>
                                                     <color key="textColor" red="0.086068578059999998" green="0.2112108171" blue="0.43152788279999998" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                                     <nil key="highlightedColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 </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">
                                                 <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"/>
                                                     <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"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 </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">
                                                 <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>
                                                     <constraints>
-                                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="14.5" id="dyo-pq-vNt"/>
+                                                        <constraint firstAttribute="height" constant="43" id="2fq-SL-R9t"/>
                                                     </constraints>
                                                     </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>
                                                     <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"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="12"/>
@@ -2887,28 +2935,34 @@
                                                 </label>
                                                 </label>
                                             </subviews>
                                             </subviews>
                                             <constraints>
                                             <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="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>
                                             </constraints>
                                         </tableViewCellContentView>
                                         </tableViewCellContentView>
                                         <connections>
                                         <connections>
                                             <outlet property="lblDate" destination="KCt-W6-y8S" id="tx6-8v-4vN"/>
                                             <outlet property="lblDate" destination="KCt-W6-y8S" id="tx6-8v-4vN"/>
                                             <outlet property="lblPreContent" destination="FSy-hl-rzb" id="UMg-N5-Uhv"/>
                                             <outlet property="lblPreContent" destination="FSy-hl-rzb" id="UMg-N5-Uhv"/>
                                             <outlet property="lblTitle" destination="Tzz-bH-0gG" id="TLn-1Z-AWh"/>
                                             <outlet property="lblTitle" destination="Tzz-bH-0gG" id="TLn-1Z-AWh"/>
+                                            <outlet property="thumbImageView" destination="LlC-aj-VVT" id="cYj-1Q-kPA"/>
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                 </prototypes>
                                 </prototypes>
                             </tableView>
                             </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">
                             <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"/>
                                 <color key="backgroundColor" red="0.1056468859" green="0.26498940589999997" blue="0.5374458432" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                 <constraints>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="30" id="H2d-Qs-MiW"/>
                                     <constraint firstAttribute="height" constant="30" id="H2d-Qs-MiW"/>
@@ -2918,10 +2972,10 @@
                                 <nil key="highlightedColor"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             </label>
                             <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6Gp-Wl-WyO" userLabel="NewsLayoutNoData">
                             <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>
                                 <subviews>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fwI-I4-Dkz">
                                     <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>
                                         <subviews>
                                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="data-not-avail.9" translatesAutoresizingMaskIntoConstraints="NO" id="CGG-w2-NMF">
                                             <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"/>
                                                 <rect key="frame" x="89.5" y="0.0" width="180" height="180"/>
@@ -2956,10 +3010,10 @@
                                 </constraints>
                                 </constraints>
                             </view>
                             </view>
                             <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Q1K-si-0PG" userLabel="NewsProgressLoading">
                             <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>
                                 <subviews>
                                     <activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" animating="YES" style="whiteLarge" translatesAutoresizingMaskIntoConstraints="NO" id="O21-Gr-gPx">
                                     <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"/>
                                         <color key="color" red="0.1056468859" green="0.26498940589999997" blue="0.5374458432" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
                                     </activityIndicatorView>
                                     </activityIndicatorView>
                                 </subviews>
                                 </subviews>
@@ -3008,7 +3062,7 @@
                 <placeholder placeholderIdentifier="IBFirstResponder" id="EK6-b6-ICE" userLabel="First Responder" sceneMemberID="firstResponder"/>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="EK6-b6-ICE" userLabel="First Responder" sceneMemberID="firstResponder"/>
                 <exit id="3Xz-z9-1r8" userLabel="Exit" sceneMemberID="exit"/>
                 <exit id="3Xz-z9-1r8" userLabel="Exit" sceneMemberID="exit"/>
             </objects>
             </objects>
-            <point key="canvasLocation" x="-5646" y="1835"/>
+            <point key="canvasLocation" x="-5647.1999999999998" y="1834.6326836581711"/>
         </scene>
         </scene>
         <!--Tarif SertifikatVC-->
         <!--Tarif SertifikatVC-->
         <scene sceneID="YdQ-7o-RpS">
         <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"/>
                             <constraint firstItem="kne-26-zVg" firstAttribute="top" secondItem="nIa-AU-7om" secondAttribute="bottom" id="taC-Ih-PaL"/>
                         </constraints>
                         </constraints>
                     </view>
                     </view>
+                    <navigationItem key="navigationItem" id="Qti-YZ-FfZ"/>
                     <connections>
                     <connections>
                         <outlet property="btnJenisOptions" destination="zZ8-oD-Dza" id="Vcr-bV-5jY"/>
                         <outlet property="btnJenisOptions" destination="zZ8-oD-Dza" id="Vcr-bV-5jY"/>
                         <outlet property="btnParameterOptions" destination="3QJ-FN-ClA" id="ua1-3p-dEt"/>
                         <outlet property="btnParameterOptions" destination="3QJ-FN-ClA" id="ua1-3p-dEt"/>
@@ -3728,14 +3783,6 @@
                                     <constraint firstAttribute="height" constant="56" id="vLh-dw-uxn"/>
                                     <constraint firstAttribute="height" constant="56" id="vLh-dw-uxn"/>
                                 </constraints>
                                 </constraints>
                             </view>
                             </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">
                             <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"/>
                                 <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"/>
                                 <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"/>
                                     <constraint firstItem="E19-Oc-rYV" firstAttribute="centerY" secondItem="jDp-dY-spI" secondAttribute="centerY" id="Q1K-sk-417"/>
                                 </constraints>
                                 </constraints>
                             </view>
                             </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>
                         </subviews>
                         <viewLayoutGuide key="safeArea" id="79A-8j-4nK"/>
                         <viewLayoutGuide key="safeArea" id="79A-8j-4nK"/>
                         <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="qsU-h9-uNB" firstAttribute="top" secondItem="UYh-iU-fwm" secondAttribute="bottom" id="17c-XR-p7N"/>
                             <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="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="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="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="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="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="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="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="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="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="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="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="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="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"/>
                             <constraint firstItem="qsU-h9-uNB" firstAttribute="trailing" secondItem="79A-8j-4nK" secondAttribute="trailing" id="ue9-V4-YKP"/>
                         </constraints>
                         </constraints>
                     </view>
                     </view>
+                    <navigationItem key="navigationItem" id="H09-pJ-nL8"/>
                     <connections>
                     <connections>
                         <outlet property="progressLoading" destination="jDp-dY-spI" id="Qub-EF-qMs"/>
                         <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"/>
                         <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="unwindNewsDetailToNewsListSegueId" unwindAction="unwindToNewsListWithSegue:" id="oSY-V3-uuz"/>
                         <segue destination="r6e-BC-uga" kind="unwind" identifier="unwindNewsDetailToHomeSegueId" unwindAction="unwindToHomeWithSegue:" id="lgm-2r-MQY"/>
                         <segue destination="r6e-BC-uga" kind="unwind" identifier="unwindNewsDetailToHomeSegueId" unwindAction="unwindToHomeWithSegue:" id="lgm-2r-MQY"/>
@@ -23327,10 +23450,11 @@
         </designable>
         </designable>
     </designables>
     </designables>
     <inferredMetricsTieBreakers>
     <inferredMetricsTieBreakers>
-        <segue reference="pgo-8x-SnY"/>
-        <segue reference="lWp-qC-755"/>
+        <segue reference="WXP-Mi-Hja"/>
+        <segue reference="BLS-DN-77B"/>
     </inferredMetricsTieBreakers>
     </inferredMetricsTieBreakers>
     <resources>
     <resources>
+        <image name="calendar.badge.clock" catalog="system" width="128" height="108"/>
         <image name="data-not-avail.9" width="514" height="514"/>
         <image name="data-not-avail.9" width="514" height="514"/>
         <image name="direction" width="50" height="50"/>
         <image name="direction" width="50" height="50"/>
         <image name="download-sertifikat" width="24.5" height="24"/>
         <image name="download-sertifikat" width="24.5" height="24"/>
@@ -23362,5 +23486,8 @@
         <systemColor name="systemBackgroundColor">
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>
         </systemColor>
+        <systemColor name="systemOrangeColor">
+            <color red="1" green="0.58431372549019611" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+        </systemColor>
     </resources>
     </resources>
 </document>
 </document>

+ 24 - 1
Sirani/Model/News.swift

@@ -13,12 +13,14 @@ struct News {
     private(set) public var title_news: String
     private(set) public var title_news: String
     private(set) public var pra_news: String
     private(set) public var pra_news: String
     private(set) public var create_date: 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.id = id
         self.title_news = title_news
         self.title_news = title_news
         self.pra_news = pra_news
         self.pra_news = pra_news
         self.create_date = create_date
         self.create_date = create_date
+        self.thumb_filename = thumb_filename
     }
     }
     
     
     func date() -> String {
     func date() -> String {
@@ -41,4 +43,25 @@ struct News {
         
         
         return date
         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 lblTitle: UILabel!
     @IBOutlet weak var lblDate: UILabel!
     @IBOutlet weak var lblDate: UILabel!
     @IBOutlet weak var lblPreContent: 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) {
     func updateViews(news: News) {
+        let url = news.thumb_filename.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
+        thumbImageView.loadFrom(URLAddress: url)
         lblTitle.text = news.title_news
         lblTitle.text = news.title_news
-        lblDate.text = news.date()
+        lblDate.text = news.dateNew()
         lblPreContent.text = news.pra_news
         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,
                                     id: item["id"].intValue,
                                     title_news: item["title_news"].stringValue,
                                     title_news: item["title_news"].stringValue,
                                     pra_news: item["pra_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)
                                 listNews.append(news)
                             }
                             }

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

@@ -108,6 +108,9 @@ class HomeVC: UIViewController {
     private var moreMenuFrame: CGRect?
     private var moreMenuFrame: CGRect?
     private var loading = false
     private var loading = false
     private var selectedNewsId = 0
     private var selectedNewsId = 0
+    private var date = ""
+    private var judul = ""
+    private var urlThumb = ""
     private var moreMenuShown = false
     private var moreMenuShown = false
     private var showMoreMenuDuration = 0.2
     private var showMoreMenuDuration = 0.2
     private var userRoleId = ""
     private var userRoleId = ""
@@ -228,6 +231,9 @@ class HomeVC: UIViewController {
     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
         if let destVC = segue.destination as? NewsDetailVC {
         if let destVC = segue.destination as? NewsDetailVC {
             destVC.newsId = self.selectedNewsId
             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
             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)
         footer.backgroundColor = #colorLiteral(red: 0.9814968705, green: 0.9760531783, blue: 1, alpha: 1)
         homeNewsTV.tableFooterView = footer
         homeNewsTV.tableFooterView = footer
         
         
-        presenter.loadNews(cursor: 0, prev: 1, jenis: "", columns: "")
+        presenter.loadNews(cursor: 5, prev: 1, jenis: "", columns: "")
     }
     }
     
     
     private func showMoreMenu() {
     private func showMoreMenu() {
@@ -1019,6 +1025,13 @@ extension HomeVC: UITableViewDelegate, UITableViewDataSource {
     func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
     func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
         let selectedNews = self.listNews[indexPath.row]
         let selectedNews = self.listNews[indexPath.row]
         self.selectedNewsId = selectedNews.id
         self.selectedNewsId = selectedNews.id
+        self.date = selectedNews.dateNew()
+        self.judul = selectedNews.title_news
+        self.urlThumb = selectedNews.thumb_filename
         performSegue(withIdentifier: "homeToNewsDetailSegueId", sender: self)
         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
     // Outlets
     @IBOutlet weak var wvNews: WKWebView!
     @IBOutlet weak var wvNews: WKWebView!
     @IBOutlet weak var progressLoading: UIView!
     @IBOutlet weak var progressLoading: UIView!
+    @IBOutlet weak var tanggalLabel: UILabel!
+    @IBOutlet weak var titleLabel: UILabel!
+    @IBOutlet weak var thumbImageView: UIImageView!
     
     
     // Initialize
     // Initialize
     private var presenter: NewsDetailPresenter!
     private var presenter: NewsDetailPresenter!
@@ -31,6 +34,9 @@ class NewsDetailVC: UIViewController {
     
     
     // Public Variable, Use by Segue
     // Public Variable, Use by Segue
     var newsId: Int = 0
     var newsId: Int = 0
+    var date: String?
+    var judul: String?
+    var urlThumb: String?
     var segueId: Int = 0
     var segueId: Int = 0
     
     
     // Variables
     // Variables
@@ -49,6 +55,11 @@ class NewsDetailVC: UIViewController {
         super.viewDidLoad()
         super.viewDidLoad()
         
         
         presenter = NewsDetailPresenter(siraniApiServices: SiraniApiServices())
         presenter = NewsDetailPresenter(siraniApiServices: SiraniApiServices())
+        
+        tanggalLabel.text = self.date
+        titleLabel.text = self.judul
+        thumbImageView.loadFrom(URLAddress: self.urlThumb ?? "")
+        
     }
     }
     
     
     override func viewDidAppear(_ animated: Bool) {
     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 lblTitle: UILabel!
     @IBOutlet weak var lblDate: UILabel!
     @IBOutlet weak var lblDate: UILabel!
     @IBOutlet weak var lblPreContent: 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) {
     func updateViews(news: News) {
+        let url = news.thumb_filename.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
+        thumbImageView.loadFrom(URLAddress: url)
         lblTitle.text = news.title_news
         lblTitle.text = news.title_news
-        lblDate.text = news.date()
+        lblDate.text = news.dateNew()
         lblPreContent.text = news.pra_news
         lblPreContent.text = news.pra_news
     }
     }
-   
 }
 }

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

@@ -42,7 +42,8 @@ class NewsPresenter {
                                     id: item["id"].intValue,
                                     id: item["id"].intValue,
                                     title_news: item["title_news"].stringValue,
                                     title_news: item["title_news"].stringValue,
                                     pra_news: item["pra_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)
                                 dataList.append(news)
                             }
                             }

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

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