marinofaggiana 4 năm trước cách đây
mục cha
commit
7443a65e22

+ 1 - 1
iOSClient/Main/Create cloud/NCCreateFormUploadAssets.swift

@@ -300,7 +300,7 @@ class NCCreateFormUploadAssets: XLFormViewController, NCSelectDelegate {
     
     
     // MARK: - Action
     // MARK: - Action
     
     
-    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, buttonType: String, overwrite: Bool) {
+    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, array: [Any], buttonType: String, overwrite: Bool) {
         
         
         if serverUrl != nil {
         if serverUrl != nil {
             
             

+ 1 - 1
iOSClient/Main/Create cloud/NCCreateFormUploadDocuments.swift

@@ -211,7 +211,7 @@ import NCCommunication
     
     
     // MARK: - Action
     // MARK: - Action
     
     
-    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, buttonType: String, overwrite: Bool) {
+    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, array: [Any], buttonType: String, overwrite: Bool) {
         
         
         guard let serverUrl = serverUrl else {
         guard let serverUrl = serverUrl else {
             return
             return

+ 1 - 1
iOSClient/Main/Create cloud/NCCreateFormUploadScanDocument.swift

@@ -371,7 +371,7 @@ class NCCreateFormUploadScanDocument: XLFormViewController, NCSelectDelegate, NC
     
     
     // MARK: - Action
     // MARK: - Action
     
     
-    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, buttonType: String, overwrite: Bool) {
+    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, array: [Any], buttonType: String, overwrite: Bool) {
         
         
         if serverUrl != nil {
         if serverUrl != nil {
             
             

+ 1 - 1
iOSClient/Main/Create cloud/NCCreateFormUploadVoiceNote.swift

@@ -195,7 +195,7 @@ class NCCreateFormUploadVoiceNote: XLFormViewController, NCSelectDelegate, AVAud
     
     
     // MARK: - Action
     // MARK: - Action
     
     
-    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, buttonType: String, overwrite: Bool) {
+    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, array: [Any], buttonType: String, overwrite: Bool) {
         
         
         if serverUrl != nil {
         if serverUrl != nil {
             
             

+ 17 - 4
iOSClient/Main/Menu/NCFavorite+Menu.swift

@@ -32,7 +32,7 @@ extension NCFavorite {
         if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocId)) {
         if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocId)) {
             
             
             let mainMenuViewController = UIStoryboard.init(name: "NCMenu", bundle: nil).instantiateViewController(withIdentifier: "NCMainMenuTableViewController") as! NCMainMenuTableViewController
             let mainMenuViewController = UIStoryboard.init(name: "NCMenu", bundle: nil).instantiateViewController(withIdentifier: "NCMainMenuTableViewController") as! NCMainMenuTableViewController
-            mainMenuViewController.actions = self.initMoreMenu(metadata: metadata)
+            mainMenuViewController.actions = self.initMoreMenu(metadata: metadata, viewController: viewController)
 
 
             let menuPanelController = NCMenuPanelController()
             let menuPanelController = NCMenuPanelController()
             menuPanelController.parentPresenter = viewController
             menuPanelController.parentPresenter = viewController
@@ -44,10 +44,11 @@ extension NCFavorite {
         }
         }
     }
     }
     
     
-    private func initMoreMenu(metadata: tableMetadata) -> [NCMenuAction] {
+    private func initMoreMenu(metadata: tableMetadata, viewController: UIViewController) -> [NCMenuAction] {
         var actions = [NCMenuAction]()
         var actions = [NCMenuAction]()
         let appDelegate = UIApplication.shared.delegate as! AppDelegate
         let appDelegate = UIApplication.shared.delegate as! AppDelegate
-
+        let isFolderEncrypted = CCUtility.isFolderEncrypted(metadata.serverUrl+"/"+metadata.fileName, e2eEncrypted: metadata.e2eEncrypted, account: metadata.account, urlBase: metadata.urlBase)
+        
         var iconHeader: UIImage!
         var iconHeader: UIImage!
         if let icon = UIImage(contentsOfFile: CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, etag: metadata.etag)) {
         if let icon = UIImage(contentsOfFile: CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, etag: metadata.etag)) {
             iconHeader = icon
             iconHeader = icon
@@ -67,7 +68,7 @@ extension NCFavorite {
             )
             )
         )
         )
 
 
-        if self.serverUrl == "" {
+        if serverUrl == "" {
             actions.append(
             actions.append(
                 NCMenuAction(
                 NCMenuAction(
                     title: NSLocalizedString("_remove_favorites_", comment: ""),
                     title: NSLocalizedString("_remove_favorites_", comment: ""),
@@ -101,6 +102,18 @@ extension NCFavorite {
             )
             )
         }
         }
 
 
+        if !isFolderEncrypted && serverUrl != "" {
+            actions.append(
+                NCMenuAction(
+                    title: NSLocalizedString("_move_or_copy_", comment: ""),
+                    icon: CCGraphics.changeThemingColorImage(UIImage(named: "move"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon),
+                    action: { menuAction in
+                        NCCollectionCommon.shared.openSelectView(viewController: viewController, array: [metadata])
+                    }
+                )
+            )
+        }
+        
         actions.append(
         actions.append(
             NCMenuAction(
             NCMenuAction(
                 title: NSLocalizedString("_delete_", comment: ""),
                 title: NSLocalizedString("_delete_", comment: ""),

+ 64 - 0
iOSClient/Main/NCCollectionCommon.swift

@@ -27,6 +27,7 @@ import ZIPFoundation
 import NCCommunication
 import NCCommunication
 
 
 class NCCollectionCommon: NSObject {
 class NCCollectionCommon: NSObject {
+    
     @objc static let shared: NCCollectionCommon = {
     @objc static let shared: NCCollectionCommon = {
         let instance = NCCollectionCommon()
         let instance = NCCollectionCommon()
         instance.createImagesThemingColor()
         instance.createImagesThemingColor()
@@ -480,3 +481,66 @@ class NCGridLayout: UICollectionViewFlowLayout {
         return proposedContentOffset
         return proposedContentOffset
     }
     }
 }
 }
+
+// MARK: - NCSelect
+
+extension NCCollectionCommon: NCSelectDelegate {
+    
+    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, array: [Any], buttonType: String, overwrite: Bool) {
+        if (serverUrl != nil && array.count > 0) {
+            var move = true
+            if buttonType == "done1" { move = false }
+            
+            /*
+            if (move) {
+                [[NCNetworking shared] moveMetadata:arrayMetadata.firstObject serverUrlTo:arrayServerUrlTo.firstObject overwrite:overwrite completion:^(NSInteger errorCode, NSString * errorDesctiption) { }];
+            } else {
+                [[NCNetworking shared] copyMetadata:arrayMetadata.firstObject serverUrlTo:arrayServerUrlTo.firstObject overwrite:overwrite completion:^(NSInteger errorCode, NSString * errorDesctiption) { }];
+            }
+            */
+            
+        }
+        /*
+         if (serverUrl != nil) {
+             // E2EE DENIED
+             if ([CCUtility isFolderEncrypted:serverUrl e2eEncrypted:metadata.e2eEncrypted account:appDelegate.account urlBase:appDelegate.urlBase]) {
+                 
+                 [[NCContentPresenter shared] messageNotification:@"_move_" description:@"_e2e_error_not_move_" delay:k_dismissAfterSecond type:messageTypeInfo errorCode:k_CCErrorE2EENotMove forced:true];
+                 return;
+             }
+             
+             BOOL move = true;
+             if ([buttonType isEqualToString:@"done1"]) { move = false; }
+             
+             if ([_selectedocIdsMetadatas count] > 0) {
+                 NSArray *metadatas = [_selectedocIdsMetadatas allValues];
+                 [self moveCopyFileOrFolderMetadata:[metadatas objectAtIndex:0] serverUrlTo:serverUrl move:move overwrite:overwrite];
+             } else {
+                 [self moveCopyFileOrFolderMetadata:self.metadata serverUrlTo:serverUrl move:move overwrite:overwrite];
+             }
+         }
+         */
+    }
+
+    func openSelectView(viewController: UIViewController, array: [Any]) {
+        
+        let navigationController = UIStoryboard.init(name: "NCSelect", bundle: nil).instantiateInitialViewController() as! UINavigationController
+        let vc = navigationController.topViewController as! NCSelect
+        
+        vc.delegate = self
+        vc.hideButtonCreateFolder = false
+        vc.selectFile = false
+        vc.includeDirectoryE2EEncryption = false
+        vc.includeImages = false
+        vc.type = ""
+        vc.titleButtonDone = NSLocalizedString("_move_", comment: "")
+        vc.titleButtonDone1 = NSLocalizedString("_copy_",comment: "")
+        vc.isButtonDone1Hide = false
+        vc.isOverwriteHide = false
+        vc.keyLayout = k_layout_view_move
+        vc.array = array
+        
+        navigationController.modalPresentationStyle = .fullScreen
+        viewController.present(navigationController, animated: true, completion: nil)
+    }
+}

+ 1 - 1
iOSClient/Main/NCDetailViewController.swift

@@ -846,7 +846,7 @@ extension NCDetailViewController: NCViewerImageViewControllerDelegate, NCViewerI
 
 
 extension NCDetailViewController: NCSelectDelegate {
 extension NCDetailViewController: NCSelectDelegate {
     
     
-    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, buttonType: String, overwrite: Bool) {
+    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, array: [Any], buttonType: String, overwrite: Bool) {
         if let metadata = self.metadata, let serverUrl = serverUrl {
         if let metadata = self.metadata, let serverUrl = serverUrl {
             if buttonType == "done" {
             if buttonType == "done" {
                 NCNetworking.shared.moveMetadata(metadata, serverUrlTo: serverUrl, overwrite: overwrite) { (errorCode, errorDescription) in }
                 NCNetworking.shared.moveMetadata(metadata, serverUrlTo: serverUrl, overwrite: overwrite) { (errorCode, errorDescription) in }

+ 1 - 1
iOSClient/Media/NCMedia.swift

@@ -345,7 +345,7 @@ class NCMedia: UIViewController, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate,
     
     
     // MARK: Select Path
     // MARK: Select Path
     
     
-    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, buttonType: String, overwrite: Bool) {
+    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, array: [Any], buttonType: String, overwrite: Bool) {
         if serverUrl != nil {
         if serverUrl != nil {
             let path = CCUtility.returnPathfromServerUrl(serverUrl, urlBase: appDelegate.urlBase, account: appDelegate.account) ?? ""
             let path = CCUtility.returnPathfromServerUrl(serverUrl, urlBase: appDelegate.urlBase, account: appDelegate.account) ?? ""
             NCManageDatabase.sharedInstance.setAccountMediaPath(path, account: appDelegate.account)
             NCManageDatabase.sharedInstance.setAccountMediaPath(path, account: appDelegate.account)

+ 6 - 5
iOSClient/Select/NCSelect.swift

@@ -25,7 +25,7 @@ import Foundation
 import NCCommunication
 import NCCommunication
 
 
 @objc protocol NCSelectDelegate {
 @objc protocol NCSelectDelegate {
-    @objc func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, buttonType: String, overwrite: Bool)
+    @objc func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, array: [Any], buttonType: String, overwrite: Bool)
 }
 }
 
 
 class NCSelect: UIViewController, UIGestureRecognizerDelegate, NCListCellDelegate, NCGridCellDelegate, NCSectionHeaderMenuDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
 class NCSelect: UIViewController, UIGestureRecognizerDelegate, NCListCellDelegate, NCGridCellDelegate, NCSectionHeaderMenuDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
@@ -58,6 +58,7 @@ class NCSelect: UIViewController, UIGestureRecognizerDelegate, NCListCellDelegat
     @objc var isOverwriteHide = true
     @objc var isOverwriteHide = true
     @objc var keyLayout = k_layout_view_move
     @objc var keyLayout = k_layout_view_move
     @objc var heightToolBarTop: CGFloat = 100
     @objc var heightToolBarTop: CGFloat = 100
+    @objc var array: [Any] = []
     
     
     var titleCurrentFolder = NCBrandOptions.sharedInstance.brand
     var titleCurrentFolder = NCBrandOptions.sharedInstance.brand
     var serverUrl = ""
     var serverUrl = ""
@@ -241,17 +242,17 @@ class NCSelect: UIViewController, UIGestureRecognizerDelegate, NCListCellDelegat
     // MARK: ACTION
     // MARK: ACTION
     
     
     @IBAction func actionCancel(_ sender: Any) {
     @IBAction func actionCancel(_ sender: Any) {
-        delegate?.dismissSelect(serverUrl: nil, metadata: nil, type: type, buttonType: "cancel", overwrite: overwrite)
+        delegate?.dismissSelect(serverUrl: nil, metadata: nil, type: type, array: array, buttonType: "cancel", overwrite: overwrite)
         self.dismiss(animated: true, completion: nil)
         self.dismiss(animated: true, completion: nil)
     }
     }
     
     
     @IBAction func actionDone(_ sender: Any) {
     @IBAction func actionDone(_ sender: Any) {
-        delegate?.dismissSelect(serverUrl: serverUrl, metadata: metadataFolder, type: type, buttonType: "done", overwrite: overwrite)
+        delegate?.dismissSelect(serverUrl: serverUrl, metadata: metadataFolder, type: type, array: array, buttonType: "done", overwrite: overwrite)
         self.dismiss(animated: true, completion: nil)
         self.dismiss(animated: true, completion: nil)
     }
     }
     
     
     @IBAction func actionDone1(_ sender: Any) {
     @IBAction func actionDone1(_ sender: Any) {
-        delegate?.dismissSelect(serverUrl: serverUrl, metadata: metadataFolder, type: type, buttonType: "done1", overwrite: overwrite)
+        delegate?.dismissSelect(serverUrl: serverUrl, metadata: metadataFolder, type: type, array: array, buttonType: "done1", overwrite: overwrite)
         self.dismiss(animated: true, completion: nil)
         self.dismiss(animated: true, completion: nil)
     }
     }
     
     
@@ -384,7 +385,7 @@ extension NCSelect: UICollectionViewDelegate {
             
             
         } else {
         } else {
             
             
-            delegate?.dismissSelect(serverUrl: serverUrl, metadata: metadata, type: type, buttonType: "select", overwrite: overwrite)
+            delegate?.dismissSelect(serverUrl: serverUrl, metadata: metadata, type: type, array: array, buttonType: "select", overwrite: overwrite)
             self.dismiss(animated: true, completion: nil)
             self.dismiss(animated: true, completion: nil)
         }
         }
     }
     }

+ 1 - 1
iOSClient/Viewer/NCViewerRichdocument.swift

@@ -205,7 +205,7 @@ class NCViewerRichdocument: WKWebView, WKNavigationDelegate, WKScriptMessageHand
     
     
     //MARK: -
     //MARK: -
     
     
-    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, buttonType: String, overwrite: Bool) {
+    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, array: [Any], buttonType: String, overwrite: Bool) {
         
         
         if serverUrl != nil && metadata != nil {
         if serverUrl != nil && metadata != nil {