NCShare+NCCellDelegate.swift 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //
  2. // NCShare+NCCellDelegate.swift
  3. // Nextcloud
  4. //
  5. // Created by Henrik Storch on 03.01.22.
  6. // Copyright © 2022 Marino Faggiana. All rights reserved.
  7. //
  8. import UIKit
  9. // MARK: - NCCell Delegates
  10. extension NCShare: NCShareLinkCellDelegate, NCShareUserCellDelegate {
  11. func copyInternalLink(sender: Any) {
  12. guard let metadata = self.metadata, let appDelegate = appDelegate else { return }
  13. let serverUrlFileName = metadata.serverUrl + "/" + metadata.fileName
  14. NCNetworking.shared.readFile(serverUrlFileName: serverUrlFileName, account: metadata.account) { _, metadata, errorCode, errorDescription in
  15. if errorCode == 0, let metadata = metadata {
  16. let internalLink = appDelegate.urlBase + "/index.php/f/" + metadata.fileId
  17. NCShareCommon.shared.copyLink(link: internalLink, viewController: self, sender: sender)
  18. } else {
  19. NCContentPresenter.shared.messageNotification("_share_", description: errorDescription, delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.error, errorCode: errorCode)
  20. }
  21. }
  22. }
  23. func tapCopy(with tableShare: tableShare?, sender: Any) {
  24. guard let tableShare = tableShare else {
  25. return copyInternalLink(sender: sender)
  26. }
  27. NCShareCommon.shared.copyLink(link: tableShare.url, viewController: self, sender: sender)
  28. }
  29. func tapMenu(with tableShare: tableShare?, sender: Any) {
  30. if let tableShare = tableShare {
  31. self.toggleShareMenu(for: tableShare)
  32. } else {
  33. self.makeNewLinkShare()
  34. }
  35. }
  36. func showProfile(with tableShare: tableShare?, sender: Any) {
  37. guard let tableShare = tableShare else { return }
  38. showProfileMenu(userId: tableShare.shareWith)
  39. }
  40. func quickStatus(with tableShare: tableShare?, sender: Any) {
  41. guard let tableShare = tableShare,
  42. let metadata = metadata,
  43. tableShare.shareType != NCGlobal.shared.permissionDefaultFileRemoteShareNoSupportShareOption else { return }
  44. self.toggleMenu(isDirectory: metadata.directory, tableShare: tableShare)
  45. }
  46. }