123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- //
- // NCShare+Helper.swift
- // Nextcloud
- //
- // Created by Henrik Storch on 19.03.22.
- // Copyright © 2022 Marino Faggiana. All rights reserved.
- //
- import UIKit
- import NCCommunication
- extension tableShare: TableShareable { }
- protocol TableShareable: AnyObject {
- var shareType: Int { get set }
- var permissions: Int { get set }
- var account: String { get }
- var idShare: Int { get set }
- var shareWith: String { get set }
- // var publicUpload: Bool? = false
- var hideDownload: Bool { get set }
- var password: String { get set }
- var label: String { get set }
- var note: String { get set }
- var expirationDate: NSDate? { get set }
- var shareWithDisplayname: String { get set }
- }
- extension TableShareable {
- var expDateString: String? {
- guard let date = expirationDate else { return nil }
- let dateFormatter = DateFormatter()
- dateFormatter.dateFormat = "YYYY-MM-dd HH:mm:ss"
- return dateFormatter.string(from: date as Date)
- }
- }
- class TableShareOptions: TableShareable {
- var shareType: Int
- var permissions: Int
- let account: String
- var idShare: Int = 0
- var shareWith: String = ""
- // var publicUpload: Bool? = false
- var hideDownload: Bool = false
- var password: String = ""
- var label: String = ""
- var note: String = ""
- var expirationDate: NSDate?
- var shareWithDisplayname: String = ""
- private init(shareType: Int, metadata: tableMetadata, password: String? = nil) {
- self.permissions = NCManageDatabase.shared.getCapabilitiesServerInt(account: metadata.account, elements: ["ocs", "data", "capabilities", "files_sharing", "default_permissions"]) & metadata.sharePermissionsCollaborationServices
- self.shareType = shareType
- self.account = metadata.account
- if let password = password {
- self.password = password
- }
- }
- convenience init(sharee: NCCommunicationSharee, metadata: tableMetadata) {
- self.init(shareType: sharee.shareType, metadata: metadata)
- self.shareWith = sharee.shareWith
- }
- static func shareLink(metadata: tableMetadata, password: String?) -> TableShareOptions {
- return TableShareOptions(shareType: NCShareCommon.shared.SHARE_TYPE_LINK, metadata: metadata, password: password)
- }
- }
- protocol NCShareDetail {
- var share: TableShareable! { get }
- }
- extension NCShareDetail where Self: UIViewController {
- func setNavigationTitle() {
- title = NSLocalizedString("_share_", comment: "") + " – "
- if share.shareType == NCShareCommon.shared.SHARE_TYPE_LINK {
- title! += share.label.isEmpty ? NSLocalizedString("_share_link_", comment: "") : share.label
- } else {
- title! += share.shareWithDisplayname.isEmpty ? share.shareWith : share.shareWithDisplayname
- }
- }
- }
|