Эх сурвалжийг харах

Subfolder Granularity Settings

Signed-off-by: Francesco Servida <git.fservida@gmail.com>
Francesco Servida 2 жил өмнө
parent
commit
e26641fb66

+ 27 - 0
iOSClient/Data/NCManageDatabase+Account.swift

@@ -33,6 +33,7 @@ class tableAccount: Object, NCUserBaseUrl {
     @objc dynamic var alias = ""
     @objc dynamic var autoUpload: Bool = false
     @objc dynamic var autoUploadCreateSubfolder: Bool = false
+    @objc dynamic var autoUploadSubfolderGranularity: Int64 = 1
     @objc dynamic var autoUploadDirectory = ""
     @objc dynamic var autoUploadFileName = ""
     @objc dynamic var autoUploadFull: Bool = false
@@ -259,6 +260,17 @@ extension NCManageDatabase {
         return folderPhotos
     }
 
+    @objc func getAccountAutoUploadSubfolderGranularity() -> Int64 {
+
+        let realm = try! Realm()
+
+        guard let result = realm.objects(tableAccount.self).filter("active == true").first else {
+            return 1
+        }
+
+        return result.autoUploadSubfolderGranularity
+    }
+    
     @discardableResult
     @objc func setAccountActive(_ account: String) -> tableAccount? {
 
@@ -319,6 +331,21 @@ extension NCManageDatabase {
         }
     }
 
+    @objc func setAccountAutoUploadGranularity(_ property: String, state: Int64) {
+
+        let realm = try! Realm()
+
+        do {
+            try realm.write {
+                if let result = realm.objects(tableAccount.self).filter("active == true").first {
+                    result.autoUploadSubfolderGranularity = state
+                }
+            }
+        } catch let error {
+            NKCommon.shared.writeLog("Could not write to database: \(error)")
+        }
+    }
+    
     @objc func setAccountAutoUploadFileName(_ fileName: String?) {
 
         let realm = try! Realm()

+ 25 - 0
iOSClient/Settings/CCManageAutoUpload.m

@@ -147,6 +147,20 @@
     [row.cellConfig setObject:UIColor.labelColor forKey:@"textLabel.textColor"];
     [section addFormRow:row];
     
+    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"autoUploadSubfolderGranularity" rowType:XLFormRowDescriptorTypeSelectorPush title:NSLocalizedString(@"_autoupload_subfolder_granularity_", nil)];
+    row.cellConfigAtConfigure[@"backgroundColor"] = UIColor.secondarySystemGroupedBackgroundColor;
+    row.hidden = [NSString stringWithFormat:@"$%@==0", @"autoUpload"];
+    row.selectorOptions = @[
+        [XLFormOptionsObject formOptionsObjectWithValue:@(0) displayText:NSLocalizedString(@"_yearly_", nil)],
+        [XLFormOptionsObject formOptionsObjectWithValue:@(1) displayText:NSLocalizedString(@"_monthly_", nil)],
+        [XLFormOptionsObject formOptionsObjectWithValue:@(2) displayText:NSLocalizedString(@"_daily_", nil)]
+        ];
+    row.value = row.selectorOptions[activeAccount.autoUploadSubfolderGranularity];
+    row.required = true;
+    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0] forKey:@"textLabel.font"];
+    [row.cellConfig setObject:UIColor.labelColor forKey:@"textLabel.textColor"];
+    [section addFormRow:row];
+    
     // Auto Upload file name
     
     section = [XLFormSectionDescriptor formSection];
@@ -286,6 +300,11 @@
         
         [[NCManageDatabase shared] setAccountAutoUploadProperty:@"autoUploadCreateSubfolder" state:[[rowDescriptor.value valueData] boolValue]];
     }
+    
+    if ([rowDescriptor.tag isEqualToString:@"autoUploadSubfolderGranularity"]) {
+
+        [[NCManageDatabase shared] setAccountAutoUploadGranularity:@"autoUploadSubfolderGranularity" state:[[rowDescriptor.value valueData] integerValue]];
+    }
 }
 
 - (void)done:(XLFormRowDescriptor *)sender
@@ -309,6 +328,8 @@
     
     XLFormRowDescriptor *rowAutoUploadCreateSubfolder = [self.form formRowWithTag:@"autoUploadCreateSubfolder"];
     
+    XLFormRowDescriptor *rowAutoUploadSubfolderGranularity = [self.form formRowWithTag:@"autoUploadSubfolderGranularity"];
+    
     XLFormRowDescriptor *rowAutoUploadFileName = [self.form formRowWithTag:@"autoUploadFileName"];
         
     // - STATUS ---------------------
@@ -335,6 +356,8 @@
     if (activeAccount.autoUploadCreateSubfolder)
         [rowAutoUploadCreateSubfolder setValue:@1]; else [rowAutoUploadCreateSubfolder setValue:@0];
 
+    [rowAutoUploadSubfolderGranularity setValue:rowAutoUploadSubfolderGranularity.selectorOptions[activeAccount.autoUploadSubfolderGranularity]];
+    
     // - HIDDEN --------------------------------------------------------------------------
     
     rowAutoUploadImage.hidden = [NSString stringWithFormat:@"$%@==0", @"autoUpload"];
@@ -347,6 +370,8 @@
     
     rowAutoUploadCreateSubfolder.hidden = [NSString stringWithFormat:@"$%@==0", @"autoUpload"];
     
+    rowAutoUploadSubfolderGranularity.hidden = [NSString stringWithFormat:@"$%@==0", @"autoUpload"];
+    
     rowAutoUploadFileName.hidden = [NSString stringWithFormat:@"$%@==0", @"autoUpload"];
         
     // -----------------------------------------------------------------------------------

+ 2 - 0
iOSClient/Supporting Files/en.lproj/Localizable.strings

@@ -390,6 +390,7 @@
 "_autoupload_fullphotos_footer_"    = "Adjust the options above before uploading";
 "_autoupload_create_subfolder_"     = "Use subfolders";
 "_autoupload_create_subfolder_footer_" = "Store in subfolders based on year and month";
+"_autoupload_subfolder_granularity_" = "Subfolder Granularity";
 "_autoupload_filenamemask_"         = "Change filename mask";
 "_autoupload_filenamemask_footer_"  = "Change the automatic filename mask";
 "_autoupload_current_folder_"       = "Currently selected folder";
@@ -863,6 +864,7 @@
 "_monthly_"                 = "Monthly";
 "_yearly_"                  = "Yearly";
 "_weekly_"                  = "Weekly";
+"_daily_"                   = "Daily";
 "_day_"                     = "Day";
 "_used_space_"              = "Used space";
 "_open_in_onlyoffice_"      = "Open in ONLYOFFICE";