Parcourir la source

dev tabledirectory

Marino Faggiana il y a 7 ans
Parent
commit
7dd355d681

+ 6 - 6
iOSClient/Actions/CCActions.swift

@@ -85,11 +85,11 @@ class CCActions: NSObject {
 
     func deleteFileOrFolder(_ metadata: tableMetadata, delegate: AnyObject) {
         
-        let serverUrl = CCCoreData.getServerUrl(fromDirectoryID: metadata.directoryID, activeAccount: appDelegate.activeAccount)
+        let serverUrl = NCManageDatabase.sharedInstance.getServerUrl(metadata.directoryID)
         let metadataNet: CCMetadataNet = CCMetadataNet.init(account: appDelegate.activeAccount)
 
         // fix CCActions.swift line 88 2.17.2 (00005)
-        if (serverUrl == nil) {
+        if (serverUrl == "") {
             
             print("[LOG] Server URL not found \(metadata.directoryID)")
             
@@ -168,7 +168,7 @@ class CCActions: NSObject {
         
         let fileName = CCUtility.removeForbiddenCharactersServer(fileName)!
         
-        let serverUrl = CCCoreData.getServerUrl(fromDirectoryID: metadata.directoryID, activeAccount: appDelegate.activeAccount)!
+        let serverUrl = NCManageDatabase.sharedInstance.getServerUrl(metadata.directoryID)
         
         if fileName.characters.count == 0 {
             return
@@ -291,7 +291,7 @@ class CCActions: NSObject {
             let directory = CCUtility.stringAppendServerUrl(metadataNet.serverUrl, addFileName: metadataNet.fileName)
             let directoryTo = CCUtility.stringAppendServerUrl(metadataNet.serverUrl, addFileName: metadataNet.fileNameTo)
 
-            CCCoreData.renameDirectory(directory, serverUrlTo: directoryTo, activeAccount: appDelegate.activeAccount)
+            NCManageDatabase.sharedInstance.renameDirectory(directory!, serverUrlTo: directoryTo!)
             
         } else {
             
@@ -370,7 +370,7 @@ class CCActions: NSObject {
     func downloadTumbnail(_ metadata: tableMetadata, delegate: AnyObject) {
         
         let metadataNet: CCMetadataNet = CCMetadataNet.init(account: appDelegate.activeAccount)
-        let serverUrl = CCCoreData.getServerUrl(fromDirectoryID: metadata.directoryID, activeAccount: appDelegate.activeAccount)
+        let serverUrl = NCManageDatabase.sharedInstance.getServerUrl(metadata.directoryID)
         
         metadataNet.action = actionDownloadThumbnail
         metadataNet.delegate = delegate
@@ -403,7 +403,7 @@ class CCActions: NSObject {
     func settingFavorite(_ metadata: tableMetadata, favorite: Bool, delegate: AnyObject) {
         
         let metadataNet: CCMetadataNet = CCMetadataNet.init(account: appDelegate.activeAccount)
-        let serverUrl = CCCoreData.getServerUrl(fromDirectoryID: metadata.directoryID, activeAccount: appDelegate.activeAccount)
+        let serverUrl = NCManageDatabase.sharedInstance.getServerUrl(metadata.directoryID)
         
         metadataNet.action = actionSettingFavorite
         metadataNet.delegate = delegate

+ 1 - 0
iOSClient/Favorites/CCSynchronize.m

@@ -246,6 +246,7 @@
     
     // Folder not present, remove it
     if (errorCode == 404 && [recordAccount.account isEqualToString:metadataNet.account]) {
+        
         [CCCoreData deleteDirectoryAndSubDirectory:metadataNet.serverUrl activeAccount:app.activeAccount];
         [app.activeMain reloadDatasource:metadataNet.serverUrl fileID:nil selector:nil];
     }

+ 0 - 1
iOSClient/FileSystem/CCCoreData.h

@@ -123,7 +123,6 @@
 + (NSArray *)getTableLocalFileWithPredicate:(NSPredicate *)predicate;
 
 // ===== Offline LocalFile =====
-
 + (void)setOfflineLocalEtag:(NSString *)fileID offline:(BOOL)offline activeAccount:(NSString *)activeAccount;
 + (BOOL)isOfflineLocalEtag:(NSString *)fileID activeAccount:(NSString *)activeAccount;
 + (NSArray *)getOfflineLocalFileActiveAccount:(NSString *)activeAccount directoryUser:(NSString *)directoryUser;

+ 2 - 1
iOSClient/FileSystem/CCCoreData.m

@@ -1301,7 +1301,8 @@
     if (metadata.directory && serverUrl) {
         
         NSString *dirForDelete = [CCUtility stringAppendServerUrl:serverUrl addFileName:metadata.fileNameData];
-        [self deleteDirectoryAndSubDirectory:dirForDelete activeAccount:activeAccount];
+        
+        [[NCManageDatabase sharedInstance] deleteDirectoryAndSubDirectory:dirForDelete];        
     }
     
     [self deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", metadata.fileID, activeAccount]];

+ 57 - 0
iOSClient/FileSystem/NCManageDatabase.swift

@@ -1563,6 +1563,63 @@ class NCManageDatabase: NSObject {
         }
     }
     
+    func deleteDirectoryAndSubDirectory(_ serverUrl: String) {
+        
+        let tableAccount = self.getAccountActive()
+        if tableAccount == nil {
+            return
+        }
+        
+        let realm = try! Realm()
+        
+        let results = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl BEGINSWITH %@", tableAccount!.account, serverUrl)
+        
+        try! realm.write {
+            
+            for result in results {
+                
+                // delete metadata
+                self.deleteMetadata(NSPredicate(format: "directoryID = %@", result.directoryID))
+                
+                /*
+                // remove if in session
+                if ([recordMetadata.session length] >0) {
+                 if (recordMetadata.sessionTaskIdentifier >= 0)
+                  [[CCNetworking sharedNetworking] settingSession:recordMetadata.session sessionTaskIdentifier:[recordMetadata.sessionTaskIdentifier integerValue] taskStatus: k_taskStatusCancel];
+ 
+                 if (recordMetadata.sessionTaskIdentifierPlist >= 0)
+                  [[CCNetworking sharedNetworking] settingSession:recordMetadata.session sessionTaskIdentifier:[recordMetadata.sessionTaskIdentifierPlist integerValue] taskStatus: k_taskStatusCancel];
+ 
+                 }
+                 */
+ 
+                // delete local
+                //[self deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", activeAccount, recordMetadata.fileID]];
+
+            }
+ 
+            realm.delete(results)
+        }
+    }
+
+    func renameDirectory(_ serverUrl: String, serverUrlTo: String) {
+    
+        let tableAccount = self.getAccountActive()
+        if tableAccount == nil {
+            return
+        }
+        
+        let realm = try! Realm()
+        
+        try! realm.write {
+            let results = realm.objects(tableDirectory.self).filter("serverUrl = %@", serverUrl)
+            
+            if results.count > 0 {
+                results[0].serverUrl = serverUrlTo
+            }
+        }
+    }
+    
     func clearDateRead(_ serverUrl: String?, directoryID: String?) {
         
         let tableAccount = self.getAccountActive()

+ 2 - 2
iOSClient/Main/CCMain.m

@@ -846,7 +846,7 @@
         fileName = _metadata.fileName;
         uuid = _metadata.uuid;
         fileID = _metadata.fileID;
-        NSString *serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:_metadata.directoryID];
+        serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:_metadata.directoryID];
     }
     
     if ([tipo isEqualToString:@"cartadicredito"])
@@ -1842,7 +1842,7 @@
         
         recordsInSessions = [[NCManageDatabase sharedInstance] getMetadatasWithPreficate:[NSPredicate predicateWithFormat:@"account = %@ AND directoryID = %@ AND session != ''", metadataNet.account, metadataNet.directoryID] sorted:nil ascending:NO];
 
-        [CCCoreData setDateReadDirectoryID:metadataNet.directoryID activeAccount:app.activeAccount];
+        [[NCManageDatabase sharedInstance] setDateReadDirectory:metadataNet.directoryID];
     }
     
     for (tableMetadata *metadata in metadatas) {