Browse Source

coding

Signed-off-by: marinofaggiana <ios@nextcloud.com>
marinofaggiana 2 years ago
parent
commit
15db97b848

+ 9 - 1
Share/NCShareExtension+Files.swift

@@ -27,8 +27,15 @@ extension NCShareExtension {
 
 
     @objc func reloadDatasource(withLoadFolder: Bool) {
     @objc func reloadDatasource(withLoadFolder: Bool) {
 
 
+        var groupByField = "name"
+
         layoutForView = NCUtility.shared.getLayoutForView(key: keyLayout, serverUrl: serverUrl)
         layoutForView = NCUtility.shared.getLayoutForView(key: keyLayout, serverUrl: serverUrl)
 
 
+        // set GroupField for Grid
+        if layoutForView?.layout == NCGlobal.shared.layoutGrid {
+            groupByField = "classFile"
+        }
+
         let metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND directory == true", activeAccount.account, serverUrl))
         let metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND directory == true", activeAccount.account, serverUrl))
         self.dataSource = NCDataSource(
         self.dataSource = NCDataSource(
             metadatasSource: metadatasSource,
             metadatasSource: metadatasSource,
@@ -37,7 +44,8 @@ extension NCShareExtension {
             ascending: layoutForView?.ascending,
             ascending: layoutForView?.ascending,
             directoryOnTop: layoutForView?.directoryOnTop,
             directoryOnTop: layoutForView?.directoryOnTop,
             favoriteOnTop: true,
             favoriteOnTop: true,
-            filterLivePhoto: true)
+            filterLivePhoto: true,
+            groupByField: groupByField)
 
 
         if withLoadFolder {
         if withLoadFolder {
             loadFolder()
             loadFolder()

+ 2 - 0
iOSClient/Data/NCDataSource.swift

@@ -300,6 +300,8 @@ class NCDataSource: NSObject {
         switch self.groupByField {
         switch self.groupByField {
         case "name":
         case "name":
             return metadata.name
             return metadata.name
+        case "classFile":
+            return metadata.classFile
         default:
         default:
             return metadata.name
             return metadata.name
         }
         }

+ 2 - 1
iOSClient/Favorites/NCFavorite.swift

@@ -61,7 +61,8 @@ class NCFavorite: NCCollectionViewCommon {
                                        ascending: self.layoutForView?.ascending,
                                        ascending: self.layoutForView?.ascending,
                                        directoryOnTop: self.layoutForView?.directoryOnTop,
                                        directoryOnTop: self.layoutForView?.directoryOnTop,
                                        favoriteOnTop: true,
                                        favoriteOnTop: true,
-                                       filterLivePhoto: true)
+                                       filterLivePhoto: true,
+                                       groupByField: self.groupByField)
 
 
         DispatchQueue.main.async {
         DispatchQueue.main.async {
             self.refreshControl.endRefreshing()
             self.refreshControl.endRefreshing()

+ 2 - 1
iOSClient/FileViewInFolder/NCFileViewInFolder.swift

@@ -97,7 +97,8 @@ class NCFileViewInFolder: NCCollectionViewCommon {
                                            ascending: self.layoutForView?.ascending,
                                            ascending: self.layoutForView?.ascending,
                                            directoryOnTop: self.layoutForView?.directoryOnTop,
                                            directoryOnTop: self.layoutForView?.directoryOnTop,
                                            favoriteOnTop: true,
                                            favoriteOnTop: true,
-                                           filterLivePhoto: true)
+                                           filterLivePhoto: true,
+                                           groupByField: self.groupByField)
 
 
             DispatchQueue.main.async {
             DispatchQueue.main.async {
 
 

+ 2 - 1
iOSClient/Files/NCFiles.swift

@@ -87,7 +87,8 @@ class NCFiles: NCCollectionViewCommon {
             ascending: self.layoutForView?.ascending,
             ascending: self.layoutForView?.ascending,
             directoryOnTop: self.layoutForView?.directoryOnTop,
             directoryOnTop: self.layoutForView?.directoryOnTop,
             favoriteOnTop: true,
             favoriteOnTop: true,
-            filterLivePhoto: true)
+            filterLivePhoto: true,
+            groupByField: self.groupByField)
 
 
         DispatchQueue.main.async {
         DispatchQueue.main.async {
             self.refreshControl.endRefreshing()
             self.refreshControl.endRefreshing()

+ 9 - 0
iOSClient/Main/Collection Common/NCCollectionViewCommon.swift

@@ -51,6 +51,8 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
     private var autoUploadFileName = ""
     private var autoUploadFileName = ""
     private var autoUploadDirectory = ""
     private var autoUploadDirectory = ""
 
 
+    internal var groupByField = "name"
+
     internal var listLayout: NCListLayout!
     internal var listLayout: NCListLayout!
     internal var gridLayout: NCGridLayout!
     internal var gridLayout: NCGridLayout!
 
 
@@ -995,6 +997,13 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
 
 
         // get layout for view
         // get layout for view
         layoutForView = NCUtility.shared.getLayoutForView(key: layoutKey, serverUrl: serverUrl)
         layoutForView = NCUtility.shared.getLayoutForView(key: layoutKey, serverUrl: serverUrl)
+
+        // set GroupField for Grid
+        if !self.isSearching && layoutForView?.layout == NCGlobal.shared.layoutGrid {
+            groupByField = "classFile"
+        } else {
+            groupByField = "name"
+        }
     }
     }
 
 
     @objc func reloadDataSourceNetwork(forced: Bool = false) { }
     @objc func reloadDataSourceNetwork(forced: Bool = false) { }

+ 2 - 1
iOSClient/Offline/NCOffline.swift

@@ -75,7 +75,8 @@ class NCOffline: NCCollectionViewCommon {
             ascending: self.layoutForView?.ascending,
             ascending: self.layoutForView?.ascending,
             directoryOnTop: self.layoutForView?.directoryOnTop,
             directoryOnTop: self.layoutForView?.directoryOnTop,
             favoriteOnTop: true,
             favoriteOnTop: true,
-            filterLivePhoto: true)
+            filterLivePhoto: true,
+            groupByField: self.groupByField)
 
 
         DispatchQueue.main.async {
         DispatchQueue.main.async {
             self.refreshControl.endRefreshing()
             self.refreshControl.endRefreshing()

+ 2 - 1
iOSClient/Recent/NCRecent.swift

@@ -53,7 +53,8 @@ class NCRecent: NCCollectionViewCommon {
             self.dataSource = NCDataSource(metadatasSource: self.metadatasSource,
             self.dataSource = NCDataSource(metadatasSource: self.metadatasSource,
                                            account: self.appDelegate.account,
                                            account: self.appDelegate.account,
                                            directoryOnTop: false,
                                            directoryOnTop: false,
-                                           favoriteOnTop: false)
+                                           favoriteOnTop: false,
+                                           groupByField: self.groupByField)
 
 
             DispatchQueue.main.async {
             DispatchQueue.main.async {
                 self.refreshControl.endRefreshing()
                 self.refreshControl.endRefreshing()

+ 10 - 2
iOSClient/Select/NCSelect.swift

@@ -709,9 +709,15 @@ extension NCSelect {
     @objc func loadDatasource(withLoadFolder: Bool) {
     @objc func loadDatasource(withLoadFolder: Bool) {
 
 
         var predicate: NSPredicate?
         var predicate: NSPredicate?
-
+        var groupByField = "name"
+        
         layoutForView = NCUtility.shared.getLayoutForView(key: keyLayout, serverUrl: serverUrl)
         layoutForView = NCUtility.shared.getLayoutForView(key: keyLayout, serverUrl: serverUrl)
 
 
+        // set GroupField for Grid
+        if layoutForView?.layout == NCGlobal.shared.layoutGrid {
+            groupByField = "classFile"
+        }
+
         if includeDirectoryE2EEncryption {
         if includeDirectoryE2EEncryption {
 
 
             if includeImages {
             if includeImages {
@@ -729,6 +735,7 @@ extension NCSelect {
             }
             }
         }
         }
 
 
+
         let metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: predicate!)
         let metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: predicate!)
         self.dataSource = NCDataSource(metadatasSource: metadatasSource,
         self.dataSource = NCDataSource(metadatasSource: metadatasSource,
                                        account: activeAccount.account,
                                        account: activeAccount.account,
@@ -736,7 +743,8 @@ extension NCSelect {
                                        ascending: layoutForView?.ascending,
                                        ascending: layoutForView?.ascending,
                                        directoryOnTop: layoutForView?.directoryOnTop,
                                        directoryOnTop: layoutForView?.directoryOnTop,
                                        favoriteOnTop: true,
                                        favoriteOnTop: true,
-                                       filterLivePhoto: true)
+                                       filterLivePhoto: true,
+                                       groupByField: groupByField)
 
 
         if withLoadFolder {
         if withLoadFolder {
             loadFolder()
             loadFolder()

+ 2 - 1
iOSClient/Shares/NCShares.swift

@@ -64,7 +64,8 @@ class NCShares: NCCollectionViewCommon {
                                            ascending: self.layoutForView?.ascending,
                                            ascending: self.layoutForView?.ascending,
                                            directoryOnTop: self.layoutForView?.directoryOnTop,
                                            directoryOnTop: self.layoutForView?.directoryOnTop,
                                            favoriteOnTop: true,
                                            favoriteOnTop: true,
-                                           filterLivePhoto: true)
+                                           filterLivePhoto: true,
+                                           groupByField: self.groupByField)
 
 
             DispatchQueue.main.async {
             DispatchQueue.main.async {
                 self.refreshControl.endRefreshing()
                 self.refreshControl.endRefreshing()