瀏覽代碼

Menu : more

Marino Faggiana 8 年之前
父節點
當前提交
bf527e8515

二進制
iOSClient/Images.xcassets/moreExternalSite.imageset/moreExternalSite@2x.png


二進制
iOSClient/Images.xcassets/moreSettings.imageset/moreSettings@2x.png


+ 21 - 0
iOSClient/Images.xcassets/moreSettingsExternalSite.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "moreSettingsExternalSite@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
iOSClient/Images.xcassets/moreSettingsExternalSite.imageset/moreSettingsExternalSite@2x.png


+ 62 - 25
iOSClient/Main/CCMore.swift

@@ -31,6 +31,7 @@ class CCMore: UIViewController, UITableViewDelegate, UITableViewDataSource {
     @IBOutlet weak var labelUsername: UILabel!
     @IBOutlet weak var tableView: UITableView!
     @IBOutlet weak var labelQuota: UILabel!
+    @IBOutlet weak var labelQuotaExternalSite: UILabel!
     @IBOutlet weak var progressQuota: UIProgressView!
 
     var functionMenu = [OCExternalSites]()
@@ -46,18 +47,23 @@ class CCMore: UIViewController, UITableViewDelegate, UITableViewDataSource {
         
         super.viewDidLoad()
         
-        self.tableView.delegate = self
-        self.tableView.dataSource = self
+        tableView.delegate = self
+        tableView.dataSource = self
         
-        self.imageLogo.image = UIImage.init(named: image_brandLogoMenu)
+        imageLogo.image = UIImage.init(named: image_brandLogoMenu)
+        
+        let tap = UITapGestureRecognizer(target: self, action: #selector(tapLabelQuotaExternalSite))
+        labelQuotaExternalSite.isUserInteractionEnabled = true
+        labelQuotaExternalSite.addGestureRecognizer(tap)
     }
     
     override func viewWillAppear(_ animated: Bool) {
         
-        // Clear Menu
+        // Clear
         functionMenu.removeAll()
         settingsMenu.removeAll()
         quotaMenu.removeAll()
+        labelQuotaExternalSite.text = ""
         
         // Internal
         var item = OCExternalSites.init()
@@ -85,37 +91,48 @@ class CCMore: UIViewController, UITableViewDelegate, UITableViewDataSource {
         settingsMenu.append(item)
 
         // External 
-        self.menuExternalSite = CCCoreData.getAllTableExternalSites(with:  NSPredicate(format: "(account == '\(appDelegate.activeAccount!)')")) as? [TableExternalSites]
+        menuExternalSite = CCCoreData.getAllTableExternalSites(with:  NSPredicate(format: "(account == '\(appDelegate.activeAccount!)')")) as? [TableExternalSites]
         
-        for table in self.menuExternalSite! {
+        if (menuExternalSite != nil) {
+            for table in menuExternalSite! {
             
-            item = OCExternalSites.init()
+                item = OCExternalSites.init()
             
-            item.name = table.name
-            item.url = table.url
-            item.icon = table.icon
+                item.name = table.name
+                item.url = table.url
+                item.icon = table.icon
             
-            if (table.type == "link") {
-                functionMenu.append(item)
-            }
-            if (table.type == "settings") {
-                settingsMenu.append(item)
-            }
-            if (table.type == "quota") {
-                quotaMenu.append(item)
+                if (table.type == "link") {
+                    item.icon = "moreExternalSite"
+                    functionMenu.append(item)
+                }
+                if (table.type == "settings") {
+                    item.icon = "moreSettingsExternalSite"
+                    settingsMenu.append(item)
+                }
+                if (table.type == "quota") {
+                    quotaMenu.append(item)
+                }
             }
         }
         
-        self.tableAccont = CCCoreData.getActiveAccount()
-        if (self.tableAccont != nil) {
+        // Quota
+        tableAccont = CCCoreData.getActiveAccount()
+        if (tableAccont != nil) {
         
-            self.labelUsername.text = self.tableAccont?.user
-            self.progressQuota.progress = Float((self.tableAccont?.quotaRelative)!) / 100
+            labelUsername.text = self.tableAccont?.user
+            progressQuota.progress = Float((self.tableAccont?.quotaRelative)!) / 100
         
             let quota : String = CCUtility.transformedSize(Double((self.tableAccont?.quotaTotal)!))
             let quotaUsed : String = CCUtility.transformedSize(Double((self.tableAccont?.quotaUsed)!))
         
-            self.labelQuota.text = String.localizedStringWithFormat(NSLocalizedString("_quota_using_", comment: ""), quotaUsed, quota)
+            labelQuota.text = String.localizedStringWithFormat(NSLocalizedString("_quota_using_", comment: ""), quotaUsed, quota)
+        }
+        
+        if (quotaMenu.count > 0) {
+            
+            let item = quotaMenu[0]
+            labelQuotaExternalSite.text = item.name
         }
         
         // Avatar
@@ -123,11 +140,11 @@ class CCMore: UIViewController, UITableViewDelegate, UITableViewDataSource {
         
         if (avatar != nil) {
         
-            self.imageAvatar.image = avatar
+            imageAvatar.image = avatar
             
         } else {
             
-            self.imageAvatar.image = UIImage.init(named: "moreAvatar")
+            imageAvatar.image = UIImage.init(named: "moreAvatar")
         }
         
         // Aspect
@@ -237,6 +254,26 @@ class CCMore: UIViewController, UITableViewDelegate, UITableViewDataSource {
             }
         }
     }
+    
+    func tapLabelQuotaExternalSite() {
+        
+        if (quotaMenu.count > 0) {
+            
+            let item = quotaMenu[0]
+            
+            if (self.splitViewController?.isCollapsed)! {
+                
+                let webVC = SwiftWebVC(urlString: item.url)
+                self.navigationController?.pushViewController(webVC, animated: true)
+                self.navigationController?.navigationBar.isHidden = false
+                
+            } else {
+                
+                let webVC = SwiftModalWebVC(urlString: item.url)
+                self.present(webVC, animated: true, completion: nil)
+            }
+        }
+    }
 }
 
 class CCCellMore: UITableViewCell {

+ 21 - 11
iOSClient/Main/Main.storyboard

@@ -117,15 +117,6 @@
                                     <outlet property="delegate" destination="9DM-ts-oJu" id="ePC-4O-7ui"/>
                                 </connections>
                             </tableView>
-                            <progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" progress="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="HgC-Ub-Dtb">
-                                <rect key="frame" x="16" y="576" width="343" height="2"/>
-                            </progressView>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WdB-hd-mrv">
-                                <rect key="frame" x="16" y="586" width="343" height="17"/>
-                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
-                                <nil key="highlightedColor"/>
-                            </label>
                             <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar" translatesAutoresizingMaskIntoConstraints="NO" id="DWx-1W-vs0" customClass="SwiftyAvatar" customModule="Nextcloud" customModuleProvider="target">
                                 <rect key="frame" x="15" y="25" width="50" height="50"/>
                                 <constraints>
@@ -147,6 +138,21 @@
                                 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                 <nil key="highlightedColor"/>
                             </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WdB-hd-mrv">
+                                <rect key="frame" x="16" y="562" width="343" height="17"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="C75-NQ-7jy">
+                                <rect key="frame" x="16" y="593" width="343" height="17"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" progress="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="HgC-Ub-Dtb">
+                                <rect key="frame" x="16" y="584" width="343" height="2"/>
+                            </progressView>
                         </subviews>
                         <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
                         <constraints>
@@ -158,12 +164,15 @@
                             <constraint firstItem="Xym-IM-aqh" firstAttribute="leading" secondItem="cxb-Vw-8zb" secondAttribute="leading" id="DKF-Y7-cmv"/>
                             <constraint firstItem="WdB-hd-mrv" firstAttribute="trailing" secondItem="XtC-Je-LUc" secondAttribute="trailingMargin" id="FPW-TD-fS8"/>
                             <constraint firstAttribute="leadingMargin" secondItem="HgC-Ub-Dtb" secondAttribute="leading" id="HZo-wI-3Vc"/>
-                            <constraint firstItem="WdB-hd-mrv" firstAttribute="top" secondItem="HgC-Ub-Dtb" secondAttribute="bottom" constant="8" id="J6a-bU-rSQ"/>
+                            <constraint firstItem="WdB-hd-mrv" firstAttribute="top" secondItem="HgC-Ub-Dtb" secondAttribute="bottom" constant="-24" id="J6a-bU-rSQ"/>
+                            <constraint firstItem="C75-NQ-7jy" firstAttribute="top" secondItem="HgC-Ub-Dtb" secondAttribute="bottom" constant="7" id="Ppj-zL-e8g"/>
                             <constraint firstItem="Xym-IM-aqh" firstAttribute="trailing" secondItem="cxb-Vw-8zb" secondAttribute="trailing" id="SNN-Jv-Ezx"/>
                             <constraint firstAttribute="trailingMargin" secondItem="HgC-Ub-Dtb" secondAttribute="trailing" id="UCm-fo-XLY"/>
-                            <constraint firstItem="HgC-Ub-Dtb" firstAttribute="top" secondItem="Xym-IM-aqh" secondAttribute="bottom" constant="16" id="bcj-pp-ogX"/>
+                            <constraint firstItem="HgC-Ub-Dtb" firstAttribute="top" secondItem="Xym-IM-aqh" secondAttribute="bottom" constant="24" id="bcj-pp-ogX"/>
                             <constraint firstItem="Xym-IM-aqh" firstAttribute="top" secondItem="cxb-Vw-8zb" secondAttribute="bottom" id="gtG-qs-qFg"/>
                             <constraint firstAttribute="bottom" secondItem="Xym-IM-aqh" secondAttribute="bottom" constant="107" id="iky-9q-uu8"/>
+                            <constraint firstAttribute="trailingMargin" secondItem="C75-NQ-7jy" secondAttribute="trailing" id="jq5-ve-GiZ"/>
+                            <constraint firstAttribute="leadingMargin" secondItem="C75-NQ-7jy" secondAttribute="leading" id="kl7-4f-nKS"/>
                             <constraint firstItem="BiW-NW-hVZ" firstAttribute="trailing" secondItem="HgC-Ub-Dtb" secondAttribute="trailing" id="ptS-mx-Gnc"/>
                             <constraint firstItem="cxb-Vw-8zb" firstAttribute="leading" secondItem="XtC-Je-LUc" secondAttribute="leading" id="qyg-dI-shE"/>
                             <constraint firstItem="BiW-NW-hVZ" firstAttribute="leading" secondItem="DWx-1W-vs0" secondAttribute="trailing" constant="13" id="uDv-hU-dPQ"/>
@@ -175,6 +184,7 @@
                         <outlet property="imageAvatar" destination="DWx-1W-vs0" id="WMr-Kl-RUr"/>
                         <outlet property="imageLogo" destination="cxb-Vw-8zb" id="U9H-30-zBN"/>
                         <outlet property="labelQuota" destination="WdB-hd-mrv" id="Ozy-WV-w5O"/>
+                        <outlet property="labelQuotaExternalSite" destination="C75-NQ-7jy" id="lqR-zC-xRX"/>
                         <outlet property="labelUsername" destination="BiW-NW-hVZ" id="0nF-vI-MBZ"/>
                         <outlet property="progressQuota" destination="HgC-Ub-Dtb" id="mpA-O3-SpS"/>
                         <outlet property="tableView" destination="Xym-IM-aqh" id="Esm-wN-pr1"/>