Browse Source

Development

master
Dwayne Harris 6 years ago
parent
commit
70afe84126
  1. 4
      elpha-ios.xcodeproj/project.pbxproj
  2. 2
      elpha-ios/Assets.xcassets/Globe.imageset/Contents.json
  3. BIN
      elpha-ios/Assets.xcassets/Globe.imageset/globe-white.pdf
  4. 173
      elpha-ios/Base.lproj/Main.storyboard
  5. 21
      elpha-ios/InstanceViewController.swift

4
elpha-ios.xcodeproj/project.pbxproj

@ -87,6 +87,8 @@
15960E59213145E100C38CE9 /* elpha-ios */ = {
isa = PBXGroup;
children = (
15960E7121322B9F00C38CE9 /* Keychain Helper */,
15960E782132383600C38CE9 /* View Controllers */,
15960E68213145E200C38CE9 /* Info.plist */,
15960E5A213145E100C38CE9 /* AppDelegate.swift */,
15960E7B213272CD00C38CE9 /* AuthenticationManager.swift */,
@ -95,10 +97,8 @@
157405B32151A93E00EEAAEB /* InstancesDataManager.swift */,
15960E63213145E200C38CE9 /* Assets.xcassets */,
15960E6E21321FA500C38CE9 /* Elpha.xcdatamodeld */,
15960E7121322B9F00C38CE9 /* Keychain Helper */,
15960E65213145E200C38CE9 /* LaunchScreen.storyboard */,
15960E60213145E100C38CE9 /* Main.storyboard */,
15960E782132383600C38CE9 /* View Controllers */,
);
path = "elpha-ios";
sourceTree = "<group>";

2
elpha-ios/Assets.xcassets/Globe.imageset/Contents.json

@ -2,7 +2,7 @@
"images" : [
{
"idiom" : "universal",
"filename" : "globe.pdf"
"filename" : "globe-white.pdf"
}
],
"info" : {

BIN
elpha-ios/Assets.xcassets/Globe.imageset/globe.pdf → elpha-ios/Assets.xcassets/Globe.imageset/globe-white.pdf

173
elpha-ios/Base.lproj/Main.storyboard

@ -274,7 +274,7 @@
<rect key="frame" x="0.0" y="140" width="414" height="722"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uMx-PR-Og0">
<rect key="frame" x="0.0" y="0.0" width="414" height="400"/>
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="snd-Ts-rva">
<rect key="frame" x="0.0" y="0.0" width="414" height="200"/>
@ -282,46 +282,173 @@
<constraint firstAttribute="height" constant="200" id="VeP-LC-gew"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tS4-1x-aPh">
<rect key="frame" x="8" y="208" width="358" height="31.5"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="26"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ztD-p8-9YN">
<rect key="frame" x="8" y="249.5" width="398" height="18"/>
<rect key="frame" x="8" y="210" width="398" height="18"/>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<color key="textColor" red="0.66422420739999999" green="0.66424006219999998" blue="0.66423153879999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Eld-tn-44S">
<rect key="frame" x="376" y="210" width="30" height="30"/>
<rect key="frame" x="8" y="328" width="30" height="30"/>
<color key="backgroundColor" red="0.54117647059999996" green="0.4823529412" blue="0.68235294120000001" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="dh6-hk-ygd"/>
<constraint firstAttribute="width" constant="30" id="kh5-h8-uWv"/>
<constraint firstAttribute="width" constant="30" id="iS4-uz-eGP"/>
<constraint firstAttribute="height" constant="30" id="rvx-ov-hWj"/>
</constraints>
<inset key="imageEdgeInsets" minX="4" minY="4" maxX="4" maxY="4"/>
<state key="normal" title="Button" image="Globe"/>
<color key="tintColor" red="0.99999600649999998" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<inset key="imageEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
<state key="normal" title="Website" image="Globe"/>
<connections>
<action selector="webViewButtonPressed:" destination="mhy-lU-rss" eventType="touchUpInside" id="VYF-om-q5R"/>
</connections>
</button>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4Fj-SG-ZQ4">
<rect key="frame" x="8" y="248" width="80" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Users" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JQa-WU-P2e">
<rect key="frame" x="0.0" y="8" width="80" height="16"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="BOa-EW-chw"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.66422420739999999" green="0.66424006219999998" blue="0.66423153879999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ad5-DU-QLI">
<rect key="frame" x="0.0" y="29" width="80" height="31"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="JQa-WU-P2e" secondAttribute="trailing" id="3ke-n0-6kh"/>
<constraint firstAttribute="height" constant="60" id="GjH-Oh-Hzs"/>
<constraint firstAttribute="width" constant="80" id="Hpo-q4-P5W"/>
<constraint firstItem="JQa-WU-P2e" firstAttribute="top" secondItem="4Fj-SG-ZQ4" secondAttribute="top" constant="8" id="RSq-Hb-bfY"/>
<constraint firstItem="JQa-WU-P2e" firstAttribute="leading" secondItem="4Fj-SG-ZQ4" secondAttribute="leading" id="WO4-me-Mga"/>
<constraint firstAttribute="bottom" secondItem="ad5-DU-QLI" secondAttribute="bottom" id="kbg-xs-TYP"/>
<constraint firstAttribute="trailing" secondItem="ad5-DU-QLI" secondAttribute="trailing" id="mNC-Hv-t51"/>
<constraint firstItem="ad5-DU-QLI" firstAttribute="leading" secondItem="4Fj-SG-ZQ4" secondAttribute="leading" id="nVT-Us-FUG"/>
<constraint firstItem="ad5-DU-QLI" firstAttribute="top" secondItem="JQa-WU-P2e" secondAttribute="bottom" constant="5" id="vtk-FL-PUV"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JCd-m7-eQ2">
<rect key="frame" x="96" y="248" width="80" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Statuses" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lSO-RD-1Ti">
<rect key="frame" x="0.0" y="8" width="80" height="16"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="ttv-xx-js7"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.66422420739999999" green="0.66424006219999998" blue="0.66423153879999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="npd-Y6-d6W">
<rect key="frame" x="0.0" y="29" width="80" height="31"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="lSO-RD-1Ti" firstAttribute="top" secondItem="JCd-m7-eQ2" secondAttribute="top" constant="8" id="3Ft-BH-MYo"/>
<constraint firstAttribute="trailing" secondItem="npd-Y6-d6W" secondAttribute="trailing" id="4t2-YR-SLk"/>
<constraint firstAttribute="width" constant="80" id="846-rF-kGA"/>
<constraint firstItem="npd-Y6-d6W" firstAttribute="top" secondItem="lSO-RD-1Ti" secondAttribute="bottom" constant="5" id="DoM-kc-QyH"/>
<constraint firstAttribute="bottom" secondItem="npd-Y6-d6W" secondAttribute="bottom" id="EeA-HQ-Jcr"/>
<constraint firstAttribute="trailing" secondItem="lSO-RD-1Ti" secondAttribute="trailing" id="Z4I-Lb-FC0"/>
<constraint firstAttribute="height" constant="60" id="tfS-qU-PoV"/>
<constraint firstItem="lSO-RD-1Ti" firstAttribute="leading" secondItem="JCd-m7-eQ2" secondAttribute="leading" id="u1K-zz-7F7"/>
<constraint firstItem="npd-Y6-d6W" firstAttribute="leading" secondItem="JCd-m7-eQ2" secondAttribute="leading" id="xzl-PU-5Z8"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KyY-Ua-R0P">
<rect key="frame" x="184" y="248" width="80" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Connections" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UFv-3r-dMO">
<rect key="frame" x="0.0" y="8" width="80" height="16"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="HIC-Cl-aHL"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.66422420739999999" green="0.66424006219999998" blue="0.66423153879999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Rfc-EP-QB2">
<rect key="frame" x="0.0" y="29" width="80" height="31"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="UFv-3r-dMO" firstAttribute="leading" secondItem="KyY-Ua-R0P" secondAttribute="leading" id="5jf-pD-j4d"/>
<constraint firstItem="Rfc-EP-QB2" firstAttribute="leading" secondItem="KyY-Ua-R0P" secondAttribute="leading" id="6rh-Qk-pIS"/>
<constraint firstItem="Rfc-EP-QB2" firstAttribute="top" secondItem="UFv-3r-dMO" secondAttribute="bottom" constant="5" id="G8b-dQ-AEc"/>
<constraint firstAttribute="trailing" secondItem="Rfc-EP-QB2" secondAttribute="trailing" id="IFI-NL-rsu"/>
<constraint firstAttribute="height" constant="60" id="Rtx-Zt-RNA"/>
<constraint firstItem="UFv-3r-dMO" firstAttribute="top" secondItem="KyY-Ua-R0P" secondAttribute="top" constant="8" id="a4z-19-utn"/>
<constraint firstAttribute="bottom" secondItem="Rfc-EP-QB2" secondAttribute="bottom" id="acp-JA-98y"/>
<constraint firstAttribute="trailing" secondItem="UFv-3r-dMO" secondAttribute="trailing" id="hCF-1t-k1d"/>
<constraint firstAttribute="width" constant="80" id="nV8-Dm-qx7"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VCU-ri-lAU">
<rect key="frame" x="272" y="248" width="134" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Uptime" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="U9l-Vd-tpX">
<rect key="frame" x="0.0" y="8" width="134" height="16"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="pdS-qH-b3B"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.66422420739999999" green="0.66424006219999998" blue="0.66423153879999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SL3-SA-8IS">
<rect key="frame" x="0.0" y="29" width="134" height="31"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="SL3-SA-8IS" firstAttribute="top" secondItem="U9l-Vd-tpX" secondAttribute="bottom" constant="5" id="3am-f2-YB7"/>
<constraint firstAttribute="trailing" secondItem="SL3-SA-8IS" secondAttribute="trailing" id="ORH-sP-ac8"/>
<constraint firstItem="SL3-SA-8IS" firstAttribute="leading" secondItem="VCU-ri-lAU" secondAttribute="leading" id="Ski-iy-1LC"/>
<constraint firstAttribute="height" constant="60" id="dlc-X3-VFi"/>
<constraint firstItem="U9l-Vd-tpX" firstAttribute="leading" secondItem="VCU-ri-lAU" secondAttribute="leading" id="qDM-TU-1Oa"/>
<constraint firstAttribute="trailing" secondItem="U9l-Vd-tpX" secondAttribute="trailing" id="qK3-l5-QOP"/>
<constraint firstAttribute="bottom" secondItem="SL3-SA-8IS" secondAttribute="bottom" id="r07-Wu-89R"/>
<constraint firstItem="U9l-Vd-tpX" firstAttribute="top" secondItem="VCU-ri-lAU" secondAttribute="top" constant="8" id="y2n-CR-mki"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="ztD-p8-9YN" firstAttribute="top" secondItem="snd-Ts-rva" secondAttribute="bottom" constant="10" id="3iI-8z-9Hk"/>
<constraint firstItem="JCd-m7-eQ2" firstAttribute="leading" secondItem="4Fj-SG-ZQ4" secondAttribute="trailing" constant="8" id="4Bu-rB-zIK"/>
<constraint firstItem="snd-Ts-rva" firstAttribute="leading" secondItem="uMx-PR-Og0" secondAttribute="leading" id="5PY-wc-Ih8"/>
<constraint firstItem="tS4-1x-aPh" firstAttribute="top" secondItem="snd-Ts-rva" secondAttribute="bottom" constant="8" id="5T8-Pf-0e3"/>
<constraint firstAttribute="trailing" secondItem="ztD-p8-9YN" secondAttribute="trailing" constant="8" id="6Sv-Ae-81L"/>
<constraint firstItem="Eld-tn-44S" firstAttribute="leading" secondItem="tS4-1x-aPh" secondAttribute="trailing" constant="10" id="6Xs-Ic-fjH"/>
<constraint firstAttribute="height" constant="400" id="AAM-kQ-MTD"/>
<constraint firstAttribute="trailing" secondItem="Eld-tn-44S" secondAttribute="trailing" constant="8" id="Erx-WB-FHY"/>
<constraint firstAttribute="trailing" secondItem="snd-Ts-rva" secondAttribute="trailing" id="G6a-Hu-AbR"/>
<constraint firstItem="tS4-1x-aPh" firstAttribute="leading" secondItem="uMx-PR-Og0" secondAttribute="leading" constant="8" id="JF4-Mq-Nx1"/>
<constraint firstItem="JCd-m7-eQ2" firstAttribute="top" secondItem="ztD-p8-9YN" secondAttribute="bottom" constant="20" id="K9v-vZ-15B"/>
<constraint firstItem="KyY-Ua-R0P" firstAttribute="leading" secondItem="JCd-m7-eQ2" secondAttribute="trailing" constant="8" id="LGH-vX-uSq"/>
<constraint firstItem="4Fj-SG-ZQ4" firstAttribute="top" secondItem="ztD-p8-9YN" secondAttribute="bottom" constant="20" id="N33-A8-ehT"/>
<constraint firstItem="VCU-ri-lAU" firstAttribute="top" secondItem="ztD-p8-9YN" secondAttribute="bottom" constant="20" id="XYa-B7-c3G"/>
<constraint firstItem="4Fj-SG-ZQ4" firstAttribute="leading" secondItem="uMx-PR-Og0" secondAttribute="leading" constant="8" id="ZYJ-Oe-uVj"/>
<constraint firstAttribute="trailing" secondItem="VCU-ri-lAU" secondAttribute="trailing" constant="8" id="dAQ-2f-OjY"/>
<constraint firstItem="KyY-Ua-R0P" firstAttribute="top" secondItem="ztD-p8-9YN" secondAttribute="bottom" constant="20" id="dtA-4h-zlu"/>
<constraint firstItem="ztD-p8-9YN" firstAttribute="leading" secondItem="uMx-PR-Og0" secondAttribute="leading" constant="8" id="fJy-Ss-RM1"/>
<constraint firstItem="Eld-tn-44S" firstAttribute="top" secondItem="snd-Ts-rva" secondAttribute="bottom" constant="10" id="oog-lj-YRD"/>
<constraint firstItem="ztD-p8-9YN" firstAttribute="top" secondItem="tS4-1x-aPh" secondAttribute="bottom" constant="10" id="w2N-n3-Q3z"/>
<constraint firstItem="VCU-ri-lAU" firstAttribute="leading" secondItem="KyY-Ua-R0P" secondAttribute="trailing" constant="8" id="ntQ-Ju-cFA"/>
<constraint firstItem="Eld-tn-44S" firstAttribute="leading" secondItem="uMx-PR-Og0" secondAttribute="leading" constant="8" id="pJe-xG-wel"/>
<constraint firstItem="snd-Ts-rva" firstAttribute="top" secondItem="uMx-PR-Og0" secondAttribute="top" id="wiP-BX-cCT"/>
<constraint firstItem="Eld-tn-44S" firstAttribute="top" secondItem="4Fj-SG-ZQ4" secondAttribute="bottom" constant="20" id="zDj-fy-Hen"/>
</constraints>
</view>
</subviews>
@ -339,14 +466,18 @@
<constraint firstItem="UZR-kd-UxJ" firstAttribute="top" secondItem="sJg-YO-5B3" secondAttribute="top" id="Ix9-KQ-JY8"/>
<constraint firstItem="UZR-kd-UxJ" firstAttribute="trailing" secondItem="sJg-YO-5B3" secondAttribute="trailing" id="Y0u-h9-SvC"/>
<constraint firstItem="UZR-kd-UxJ" firstAttribute="bottom" secondItem="sJg-YO-5B3" secondAttribute="bottom" id="cOT-UE-dX7"/>
<constraint firstItem="uMx-PR-Og0" firstAttribute="height" secondItem="PuO-1l-eXq" secondAttribute="height" priority="250" id="dF5-p7-4bz"/>
<constraint firstItem="UZR-kd-UxJ" firstAttribute="leading" secondItem="sJg-YO-5B3" secondAttribute="leading" id="enl-L4-jV8"/>
</constraints>
<viewLayoutGuide key="safeArea" id="sJg-YO-5B3"/>
</view>
<connections>
<outlet property="connectionsLabel" destination="Rfc-EP-QB2" id="tna-B5-DRp"/>
<outlet property="instanceDescriptionLabel" destination="ztD-p8-9YN" id="pzv-iD-AIj"/>
<outlet property="instanceNameLabel" destination="tS4-1x-aPh" id="Bb8-r9-Tdi"/>
<outlet property="statusesLabel" destination="npd-Y6-d6W" id="EvU-ff-ZnE"/>
<outlet property="thumbnailImageView" destination="snd-Ts-rva" id="WM4-wU-Bn5"/>
<outlet property="uptimeLabel" destination="SL3-SA-8IS" id="iPh-eS-Tow"/>
<outlet property="usersLabel" destination="ad5-DU-QLI" id="AEQ-N5-m2m"/>
<outlet property="webViewButton" destination="Eld-tn-44S" id="QRD-Z0-bZx"/>
</connections>
</viewController>

21
elpha-ios/InstanceViewController.swift

@ -12,24 +12,30 @@ import SafariServices
class InstanceViewController: UIViewController, SFSafariViewControllerDelegate {
@IBOutlet var thumbnailImageView: UIImageView!
@IBOutlet var instanceNameLabel: UILabel!
@IBOutlet var instanceDescriptionLabel: UILabel!
@IBOutlet var webViewButton: UIButton!
@IBOutlet var usersLabel: UILabel!
@IBOutlet var statusesLabel: UILabel!
@IBOutlet var connectionsLabel: UILabel!
@IBOutlet var uptimeLabel: UILabel!
var instance: ISInstanceMO? = nil
@IBAction func webViewButtonPressed(_ sender: Any) {
guard let instance = instance, let name = instance.name else {
presentSafariViewController()
}
@objc func presentSafariViewController() {
guard let instance = instance, let url = instance.url else {
return
}
let safariViewController = SFSafariViewController(url: URL(string: "https://\(name)")!)
let safariViewController = SFSafariViewController(url: url)
safariViewController.delegate = self
present(safariViewController, animated: true)
}
override func viewDidLoad() {
super.viewDidLoad()
@ -46,14 +52,17 @@ class InstanceViewController: UIViewController, SFSafariViewControllerDelegate {
fatalError("No instance")
}
instanceNameLabel.text = instance.name
if (instance.fullDescription ?? "").isEmpty {
instanceDescriptionLabel.text = "(No description)"
} else {
instanceDescriptionLabel.text = instance.fullDescription
}
usersLabel.text = NumberFormatter.localizedString(from: NSNumber(value: instance.users), number: .decimal)
statusesLabel.text = NumberFormatter.localizedString(from: NSNumber(value: instance.statuses), number: .decimal)
connectionsLabel.text = NumberFormatter.localizedString(from: NSNumber(value: instance.connections), number: .decimal)
uptimeLabel.text = String(instance.uptime)
if let thumbnail = instance.thumbnail {
ImageCache.shared.getImage(forURL: thumbnail) { image, error in
guard error == nil else {

Loading…
Cancel
Save