浏览代码

improved login

marinofaggiana 3 年之前
父节点
当前提交
ccc64e7f76

+ 1 - 13
iOSClient/AppDelegate.swift

@@ -480,19 +480,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
         }
         
         // Nextcloud standard login
-        if selector == NCGlobal.shared.introSignup {
-            
-            if activeLoginWeb?.view.window == nil {
-                activeLoginWeb = UIStoryboard(name: "NCLogin", bundle: nil).instantiateViewController(withIdentifier: "NCLoginWeb") as? NCLoginWeb
-                if selector == NCGlobal.shared.introSignup {
-                    activeLoginWeb?.urlBase = NCBrandOptions.shared.linkloginPreferredProviders
-                } else {
-                    activeLoginWeb?.urlBase = self.urlBase
-                }
-                showLoginViewController(activeLoginWeb, contextViewController: viewController)
-            }
-            
-        } else if NCBrandOptions.shared.disable_intro && NCBrandOptions.shared.disable_request_login_url {
+        if NCBrandOptions.shared.disable_intro && NCBrandOptions.shared.disable_request_login_url {
             
             if activeLoginWeb?.view.window == nil {
                 activeLoginWeb = UIStoryboard(name: "NCLogin", bundle: nil).instantiateViewController(withIdentifier: "NCLoginWeb") as? NCLoginWeb

+ 13 - 23
iOSClient/Brand/Intro/NCIntro.storyboard

@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15702" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="QS9-pa-PcE">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="18122" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="QS9-pa-PcE">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15704"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="18093"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
@@ -30,13 +31,13 @@
                                 </collectionViewFlowLayout>
                             </collectionView>
                             <pageControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" numberOfPages="3" translatesAutoresizingMaskIntoConstraints="NO" id="Eu1-Gv-7Jx">
-                                <rect key="frame" x="187.5" y="510" width="39" height="10"/>
+                                <rect key="frame" x="146.5" y="510" width="121.5" height="10"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="10" id="6xY-X5-z4w"/>
                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="10" id="HuN-3g-bM7"/>
                                 </constraints>
                             </pageControl>
-                            <button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Yyc-bK-mqW">
+                            <button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Yyc-bK-mqW">
                                 <rect key="frame" x="72" y="584" width="270" height="40"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="40" id="h0h-Pp-A9q"/>
@@ -48,19 +49,7 @@
                                     <action selector="login:" destination="QS9-pa-PcE" eventType="touchUpInside" id="Lb4-EV-uT9"/>
                                 </connections>
                             </button>
-                            <button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="N4X-JQ-1c1">
-                                <rect key="frame" x="72" y="632" width="270" height="40"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="40" id="Z1i-8h-Kkj"/>
-                                    <constraint firstAttribute="width" constant="270" id="ski-k5-xeL"/>
-                                </constraints>
-                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                <state key="normal" title="Signup"/>
-                                <connections>
-                                    <action selector="signup:" destination="QS9-pa-PcE" eventType="touchUpInside" id="wKo-W5-MBd"/>
-                                </connections>
-                            </button>
-                            <button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Z5d-gx-rTR">
+                            <button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Z5d-gx-rTR">
                                 <rect key="frame" x="72" y="832" width="270" height="30"/>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="270" id="rtc-VW-fLA"/>
@@ -73,18 +62,16 @@
                                 </connections>
                             </button>
                         </subviews>
-                        <color key="backgroundColor" systemColor="opaqueSeparatorColor" red="0.77647058820000003" green="0.77647058820000003" blue="0.7843137255" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <viewLayoutGuide key="safeArea" id="Yku-CN-snD"/>
+                        <color key="backgroundColor" systemColor="opaqueSeparatorColor"/>
                         <constraints>
                             <constraint firstItem="Z5d-gx-rTR" firstAttribute="centerX" secondItem="Xnz-EW-9gg" secondAttribute="centerX" id="5JN-bZ-Cfc"/>
-                            <constraint firstItem="Z5d-gx-rTR" firstAttribute="top" relation="greaterThanOrEqual" secondItem="N4X-JQ-1c1" secondAttribute="bottom" constant="8" id="5bf-uK-zTE"/>
                             <constraint firstItem="o6I-qu-IDh" firstAttribute="leading" secondItem="Yku-CN-snD" secondAttribute="leading" constant="8" id="5fD-CQ-g64"/>
                             <constraint firstItem="Yyc-bK-mqW" firstAttribute="centerX" secondItem="Xnz-EW-9gg" secondAttribute="centerX" id="73g-Jz-FyB"/>
                             <constraint firstItem="Eu1-Gv-7Jx" firstAttribute="top" secondItem="o6I-qu-IDh" secondAttribute="bottom" constant="8" id="Eeu-jq-3mJ"/>
                             <constraint firstItem="Yku-CN-snD" firstAttribute="trailing" secondItem="o6I-qu-IDh" secondAttribute="trailing" constant="8" id="Hc4-PE-nDo"/>
                             <constraint firstItem="o6I-qu-IDh" firstAttribute="centerX" secondItem="Xnz-EW-9gg" secondAttribute="centerX" id="XgO-Ht-bat"/>
                             <constraint firstItem="Yyc-bK-mqW" firstAttribute="top" secondItem="Eu1-Gv-7Jx" secondAttribute="bottom" priority="250" constant="64" id="avi-Qq-NVJ"/>
-                            <constraint firstItem="N4X-JQ-1c1" firstAttribute="top" secondItem="Yyc-bK-mqW" secondAttribute="bottom" constant="8" id="g2S-FI-zsd"/>
-                            <constraint firstItem="N4X-JQ-1c1" firstAttribute="centerX" secondItem="Xnz-EW-9gg" secondAttribute="centerX" id="pyF-TA-FZv"/>
                             <constraint firstItem="Yyc-bK-mqW" firstAttribute="top" relation="greaterThanOrEqual" secondItem="Eu1-Gv-7Jx" secondAttribute="bottom" constant="8" id="qO4-JO-SuY"/>
                             <constraint firstItem="Yku-CN-snD" firstAttribute="bottom" secondItem="Z5d-gx-rTR" secondAttribute="bottom" id="qo7-hg-l1p"/>
                             <constraint firstItem="o6I-qu-IDh" firstAttribute="top" secondItem="Xnz-EW-9gg" secondAttribute="topMargin" constant="60" id="qoE-U2-Ogf">
@@ -93,12 +80,10 @@
                             <constraint firstItem="Eu1-Gv-7Jx" firstAttribute="centerX" secondItem="Xnz-EW-9gg" secondAttribute="centerX" id="rML-gL-iXA"/>
                             <constraint firstItem="o6I-qu-IDh" firstAttribute="width" secondItem="o6I-qu-IDh" secondAttribute="height" multiplier="1:1" priority="750" id="tPF-eA-Pcb"/>
                         </constraints>
-                        <viewLayoutGuide key="safeArea" id="Yku-CN-snD"/>
                     </view>
                     <connections>
                         <outlet property="buttonHost" destination="Z5d-gx-rTR" id="Ngu-DS-yLh"/>
                         <outlet property="buttonLogin" destination="Yyc-bK-mqW" id="LPF-TP-LmK"/>
-                        <outlet property="buttonSignUp" destination="N4X-JQ-1c1" id="jz0-6S-IxP"/>
                         <outlet property="introCollectionView" destination="o6I-qu-IDh" id="DVx-Rt-VE8"/>
                         <outlet property="pageControl" destination="Eu1-Gv-7Jx" id="brQ-v9-knr"/>
                     </connections>
@@ -108,4 +93,9 @@
             <point key="canvasLocation" x="-158" y="123"/>
         </scene>
     </scenes>
+    <resources>
+        <systemColor name="opaqueSeparatorColor">
+            <color red="0.77647058823529413" green="0.77647058823529413" blue="0.78431372549019607" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+        </systemColor>
+    </resources>
 </document>

+ 3 - 9
iOSClient/Brand/Intro/NCIntroViewController.swift

@@ -28,7 +28,6 @@ import UIKit
 class NCIntroViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
 
     @IBOutlet weak var buttonLogin: UIButton!
-    @IBOutlet weak var buttonSignUp: UIButton!
     @IBOutlet weak var buttonHost: UIButton!
     @IBOutlet weak var introCollectionView: UICollectionView!
     @IBOutlet weak var pageControl: UIPageControl!
@@ -84,11 +83,6 @@ class NCIntroViewController: UIViewController, UICollectionViewDataSource, UICol
         self.buttonLogin.backgroundColor = textColor
         self.buttonLogin.setTitle(NSLocalizedString("_log_in_", comment: ""), for: .normal)
 
-        self.buttonSignUp.layer.cornerRadius = 20
-        self.buttonSignUp.setTitleColor(.white, for: .normal)
-        self.buttonSignUp.backgroundColor = UIColor(red: 25.0 / 255.0, green: 89.0 / 255.0, blue: 141.0 / 255.0, alpha: 1)
-        self.buttonSignUp.setTitle(NSLocalizedString("_sign_up_", comment: ""), for: .normal)
-
         self.buttonHost.layer.cornerRadius = 20
         self.buttonHost.setTitle(NSLocalizedString("_host_your_own_server", comment: ""), for: .normal)
         self.buttonHost.setTitleColor(textColor.withAlphaComponent(0.5), for: .normal)
@@ -169,9 +163,9 @@ class NCIntroViewController: UIViewController, UICollectionViewDataSource, UICol
         appDelegate.openLogin(viewController: navigationController, selector: NCGlobal.shared.introLogin, openLoginWeb: false)
     }
 
-    @IBAction func signup(_ sender: Any) {
-        appDelegate.openLogin(viewController: navigationController, selector: NCGlobal.shared.introSignup, openLoginWeb: false)
-    }
+//    @IBAction func signup(_ sender: Any) {
+//        appDelegate.openLogin(viewController: navigationController, selector: NCGlobal.shared.introSignup, openLoginWeb: false)
+//    }
 
     @IBAction func host(_ sender: Any) {
         guard let url = URL(string: NCBrandOptions.shared.linkLoginHost) else { return }

+ 19 - 0
iOSClient/Login/NCLogin.storyboard

@@ -131,12 +131,28 @@
                                     <action selector="actionQRCode:" destination="yj9-jo-WIn" eventType="touchUpInside" id="qwL-rG-ead"/>
                                 </connections>
                             </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Mb1-fw-4Hf">
+                                <rect key="frame" x="50" y="363" width="314" height="40"/>
+                                <color key="backgroundColor" red="0.21960784310000001" green="0.50196078430000002" blue="0.76470588240000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="40" id="8C4-ay-ZVq"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <state key="normal" title="Sign up">
+                                    <color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                </state>
+                                <connections>
+                                    <action selector="actionButtonSignup:" destination="yj9-jo-WIn" eventType="touchUpInside" id="CSW-BM-PsZ"/>
+                                </connections>
+                            </button>
                         </subviews>
                         <viewLayoutGuide key="safeArea" id="8lf-3Y-f5R"/>
                         <color key="backgroundColor" white="0.9023259132753424" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                         <constraints>
                             <constraint firstItem="8lf-3Y-f5R" firstAttribute="trailing" secondItem="Kfq-Bg-a0E" secondAttribute="trailing" constant="13" id="3Rl-VS-3Op"/>
                             <constraint firstItem="1Gf-Bw-Nim" firstAttribute="leading" secondItem="4OF-5u-Hd1" secondAttribute="trailing" constant="10" id="4CC-7B-dkI"/>
+                            <constraint firstItem="8lf-3Y-f5R" firstAttribute="trailing" secondItem="Mb1-fw-4Hf" secondAttribute="trailing" constant="50" id="8tC-US-hKm"/>
                             <constraint firstItem="HQd-pF-3cE" firstAttribute="top" secondItem="8lf-3Y-f5R" secondAttribute="top" constant="264" id="9hf-b4-BDZ"/>
                             <constraint firstItem="6tp-bh-Z9k" firstAttribute="centerX" secondItem="8lf-3Y-f5R" secondAttribute="centerX" id="Apc-1U-CwU"/>
                             <constraint firstItem="BpI-xK-1SU" firstAttribute="top" secondItem="8lf-3Y-f5R" secondAttribute="top" id="Fep-pw-QEQ"/>
@@ -145,6 +161,7 @@
                             <constraint firstItem="Kfq-Bg-a0E" firstAttribute="centerY" secondItem="szn-G7-5sK" secondAttribute="centerY" id="Ldo-FD-LNp"/>
                             <constraint firstItem="6tp-bh-Z9k" firstAttribute="top" secondItem="HQd-pF-3cE" secondAttribute="bottom" constant="100" id="NCo-gF-R4d"/>
                             <constraint firstItem="jU7-Iw-XfU" firstAttribute="top" secondItem="1Gf-Bw-Nim" secondAttribute="bottom" id="QHr-T7-zbl"/>
+                            <constraint firstItem="6tp-bh-Z9k" firstAttribute="top" secondItem="Mb1-fw-4Hf" secondAttribute="bottom" constant="45" id="QOD-6T-3Sf"/>
                             <constraint firstItem="owR-PS-F32" firstAttribute="centerX" secondItem="8lf-3Y-f5R" secondAttribute="centerX" id="VSS-Pz-f7g"/>
                             <constraint firstItem="4OF-5u-Hd1" firstAttribute="centerY" secondItem="1Gf-Bw-Nim" secondAttribute="centerY" id="Wkl-Is-Ay0"/>
                             <constraint firstItem="jU7-Iw-XfU" firstAttribute="leading" secondItem="7q8-rl-x2M" secondAttribute="trailing" constant="10" id="a3y-yQ-wa8"/>
@@ -163,6 +180,7 @@
                             <constraint firstItem="8lf-3Y-f5R" firstAttribute="trailing" secondItem="fhk-o9-J0l" secondAttribute="trailing" constant="10" id="sSF-C0-MZp"/>
                             <constraint firstItem="szn-G7-5sK" firstAttribute="leading" secondItem="s9o-RX-XeS" secondAttribute="trailing" constant="10" id="wG2-dF-inH"/>
                             <constraint firstItem="1Gf-Bw-Nim" firstAttribute="top" secondItem="szn-G7-5sK" secondAttribute="bottom" id="wZI-EZ-zRI"/>
+                            <constraint firstItem="Mb1-fw-4Hf" firstAttribute="leading" secondItem="8lf-3Y-f5R" secondAttribute="leading" constant="50" id="xF9-aF-2dd"/>
                             <constraint firstItem="8lf-3Y-f5R" firstAttribute="trailing" secondItem="1Gf-Bw-Nim" secondAttribute="trailing" constant="50" id="yHe-0f-GD6"/>
                             <constraint firstItem="Kfq-Bg-a0E" firstAttribute="leading" secondItem="szn-G7-5sK" secondAttribute="trailing" constant="10" id="z3g-fw-GHs"/>
                         </constraints>
@@ -180,6 +198,7 @@
                         <outlet property="loginModeButton" destination="owR-PS-F32" id="iXW-wC-T2H"/>
                         <outlet property="password" destination="jU7-Iw-XfU" id="OWi-V0-Eij"/>
                         <outlet property="qrCode" destination="6tp-bh-Z9k" id="Tw3-op-BgR"/>
+                        <outlet property="signupButton" destination="Mb1-fw-4Hf" id="EsI-uj-IKj"/>
                         <outlet property="toggleVisiblePasswordButton" destination="fhk-o9-J0l" id="e0X-WA-5cz"/>
                         <outlet property="user" destination="1Gf-Bw-Nim" id="BUW-sz-I3f"/>
                     </connections>

+ 18 - 0
iOSClient/Login/NCLogin.swift

@@ -39,6 +39,8 @@ class NCLogin: UIViewController, UITextFieldDelegate, NCLoginQRCodeDelegate {
     @IBOutlet weak var activity: UIActivityIndicatorView!
 
     @IBOutlet weak var loginButton: UIButton!
+    @IBOutlet weak var signupButton: UIButton!
+
     @IBOutlet weak var toggleVisiblePasswordButton: UIButton!
     @IBOutlet weak var loginModeButton: UIButton!
     
@@ -107,6 +109,12 @@ class NCLogin: UIViewController, UITextFieldDelegate, NCLoginQRCodeDelegate {
         loginButton.layer.cornerRadius = 20
         loginButton.clipsToBounds = true
         
+        // signup
+        signupButton.layer.cornerRadius = 20
+        signupButton.setTitleColor(.white, for: .normal)
+        signupButton.backgroundColor = UIColor(red: 25.0 / 255.0, green: 89.0 / 255.0, blue: 141.0 / 255.0, alpha: 1)
+        signupButton.setTitle(NSLocalizedString("_sign_up_", comment: ""), for: .normal)
+        
         // type of login
         loginModeButton.setTitle(NSLocalizedString("_traditional_login_", comment: ""), for: .normal)
         loginModeButton.setTitleColor(textColor.withAlphaComponent(0.5), for: .normal)
@@ -116,6 +124,7 @@ class NCLogin: UIViewController, UITextFieldDelegate, NCLoginQRCodeDelegate {
             baseUrl.text = NCBrandOptions.shared.loginBaseUrl
             imageBaseUrl.isHidden = true
             baseUrl.isHidden = true
+            signupButton.isHidden = true
         }
         
         // qrcode
@@ -183,6 +192,15 @@ class NCLogin: UIViewController, UITextFieldDelegate, NCLoginQRCodeDelegate {
         dismiss(animated: true) { }
     }
 
+    @IBAction func actionButtonSignup(_ sender: Any) {
+
+        if let loginWeb = UIStoryboard(name: "NCLogin", bundle: nil).instantiateViewController(withIdentifier: "NCLoginWeb") as? NCLoginWeb {
+            
+            loginWeb.urlBase = NCBrandOptions.shared.linkloginPreferredProviders
+            self.navigationController?.pushViewController(loginWeb, animated: true)
+        }
+    }
+    
     @IBAction func actionButtonLogin(_ sender: Any) {
         
         guard var url = baseUrl.text?.trimmingCharacters(in: .whitespacesAndNewlines) else { return }