marinofaggiana 5 yıl önce
ebeveyn
işleme
aa439331f7

+ 1 - 1
iOSClient/Share/CCShareOC.h

@@ -29,7 +29,7 @@
 
 @class tableMetadata;
 
-@interface CCShareOC : XLFormViewController <CCShareUserOCDelegate, CCSharePermissionOCDelegate>
+@interface CCShareOC : XLFormViewController
 
 @property (nonatomic, weak) IBOutlet UIImageView *fileImageView;
 @property (nonatomic, weak) IBOutlet UILabel *labelTitle;

+ 77 - 37
iOSClient/Share/CCShareOC.m

@@ -160,6 +160,71 @@
     self.tableView.backgroundColor = [NCBrandColor sharedInstance].backgroundView;
 }
 
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ===== Networking =====
+#pragma --------------------------------------------------------------------------------------------
+
+- (void)share:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl password:(NSString *)password permission:(NSInteger)permission hideDownload:(BOOL)hideDownload
+{
+    NSString *fileName = [CCUtility returnFileNamePathFromFileName:metadata.fileName serverUrl:serverUrl activeUrl:appDelegate.activeUrl];
+    
+    [[OCNetworking sharedManager] shareWithAccount:appDelegate.activeAccount fileName:fileName password:password permission:permission hideDownload:hideDownload completion:^(NSString *account, NSString *message, NSInteger errorCode) {
+        
+        if (errorCode == 0 && [account isEqualToString:appDelegate.activeAccount]) {
+            
+            [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"SharesReloadDatasource" object:nil userInfo:nil];
+            
+        } else if (errorCode != 0) {
+            
+            [appDelegate messageNotification:@"_share_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+        }
+        
+        [self reloadData];
+    }];
+}
+
+- (void)unShare:(NSString *)share metadata:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl
+{
+    [[OCNetworking sharedManager] unshareAccount:appDelegate.activeAccount shareID:[share integerValue] completion:^(NSString *account, NSString *message, NSInteger errorCode) {
+        
+        if (errorCode == 0 && [account isEqualToString:appDelegate.activeAccount]) {
+            
+            // rimuoviamo la condivisione da db
+            NSArray *result = [[NCManageDatabase sharedInstance] unShare:share fileName:metadata.fileName serverUrl:metadata.serverUrl sharesLink:appDelegate.sharesLink sharesUserAndGroup:appDelegate.sharesUserAndGroup account:account];
+            
+            if (result) {
+                appDelegate.sharesLink = result[0];
+                appDelegate.sharesUserAndGroup = result[1];
+            }
+            
+            [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"SharesReloadDatasource" object:nil userInfo:nil];
+            
+        } else if (errorCode != 0) {
+            
+            [appDelegate messageNotification:@"_share_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+        }
+        
+        [self reloadData];
+    }];
+}
+
+- (void)updateShare:(NSString *)share metadata:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl password:(NSString *)password expirationTime:(NSString *)expirationTime permission:(NSInteger)permission hideDownload:(BOOL)hideDownload
+{
+    [[OCNetworking sharedManager] shareUpdateAccount:appDelegate.activeAccount shareID:[share integerValue] password:password permission:permission expirationTime:expirationTime hideDownload:hideDownload completion:^(NSString *account, NSString *message, NSInteger errorCode) {
+        
+        if (errorCode == 0 && [account isEqualToString:appDelegate.activeAccount]) {
+            
+            [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"SharesReloadDatasource" object:nil userInfo:nil];
+            
+        } else if (errorCode != 0) {
+            
+            [appDelegate messageNotification:@"_share_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+        }
+        
+        [self reloadData];
+    }];
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Reload Data =====
 #pragma --------------------------------------------------------------------------------------------
@@ -388,7 +453,8 @@
     [self deselectFormRow:rowDescriptor];
     
     self.shareUserOC = [[UIStoryboard storyboardWithName:@"CCShare" bundle:nil] instantiateViewControllerWithIdentifier:@"CCShareUserOC"];
-    self.shareUserOC.delegate = self;
+    self.shareUserOC.metadata = self.metadata;
+    self.shareUserOC.serverUrl = self.serverUrl;
     self.shareUserOC.itemsShareWith = self.itemsShareWith;
     self.shareUserOC.isDirectory = self.metadata.directory;
     
@@ -401,7 +467,6 @@
     [self deselectFormRow:rowDescriptor];
     
     self.sharePermissionOC = [[UIStoryboard storyboardWithName:@"CCShare" bundle:nil] instantiateViewControllerWithIdentifier:@"CCSharePermissionOC"];
-    self.sharePermissionOC.delegate = self;
     self.sharePermissionOC.idRemoteShared = rowDescriptor.tag;
     self.sharePermissionOC.metadata = self.metadata;
     self.sharePermissionOC.serverUrl = self.serverUrl;
@@ -434,7 +499,7 @@
                     NSString *password = alertController.textFields.firstObject.text;
                     XLFormRowDescriptor *rowPassword = [self.form formRowWithTag:@"password"];
                     rowPassword.value = password;
-                    [self.delegate share:self.metadata serverUrl:self.serverUrl password:password permission:1 hideDownload:false];
+                    [self share:self.metadata serverUrl:self.serverUrl password:password permission:1 hideDownload:false];
                     [self disableForm];
                 }];
                 
@@ -447,21 +512,21 @@
                 
             } else {
                 
-                [self.delegate share:self.metadata serverUrl:self.serverUrl password:@"" permission:1 hideDownload:false];
+                [self share:self.metadata serverUrl:self.serverUrl password:@"" permission:1 hideDownload:false];
                 [self disableForm];
             }
             
         } else {
             
             // unshare
-            [self.delegate unShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl];
+            [self unShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl];
             [self disableForm];
         }
     }
     
     if ([rowDescriptor.tag isEqualToString:@"shareLinkPermission"]) {
         
-        [self.delegate updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:nil permission:[self getShareLinkPermission:newValue] hideDownload:false];
+        [self updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:nil permission:[self getShareLinkPermission:newValue] hideDownload:false];
         [self disableForm];
     }
     
@@ -469,7 +534,7 @@
         
         BOOL hideDownload = [newValue boolValue];
         
-        [self.delegate updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:nil permission:0 hideDownload:hideDownload];
+        [self updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:nil permission:0 hideDownload:hideDownload];
         [self disableForm];
     }
     
@@ -478,7 +543,7 @@
         // remove expiration date
         if ([[rowDescriptor.value valueData] boolValue] == NO) {
             
-            [self.delegate updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:@"" permission:0 hideDownload:false];
+            [self updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:@"" permission:0 hideDownload:false];
             [self disableForm];
             
         } else {
@@ -487,7 +552,7 @@
             XLFormRowDescriptor *rowExpirationDate = [self.form formRowWithTag:@"expirationDate"];
             NSString *expirationDate = [self convertDateInServerFormat:rowExpirationDate.value];
             
-            [self.delegate updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:expirationDate permission:0 hideDownload:false];
+            [self updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:expirationDate permission:0 hideDownload:false];
             [self disableForm];
         }
     }
@@ -499,7 +564,7 @@
     
     if ([formRow.rowType isEqualToString:@"button"] && idRemoteShared > 0) {
         
-        [self.delegate unShare:formRow.tag metadata:self.metadata serverUrl:self.serverUrl];
+        [self unShare:formRow.tag metadata:self.metadata serverUrl:self.serverUrl];
         [self disableForm];
     }
 }
@@ -529,7 +594,7 @@
         
             NSString *expirationDate = [self convertDateInServerFormat:rowDescriptor.value];
         
-            [self.delegate updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:expirationDate permission:0 hideDownload:false];
+            [self updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:expirationDate permission:0 hideDownload:false];
             [self disableForm];
         }
         
@@ -561,7 +626,7 @@
                 
                 if (self.shareLink) {
                     
-                    [self.delegate updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:password expirationTime:nil permission:0 hideDownload:false];
+                    [self updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:password expirationTime:nil permission:0 hideDownload:false];
                     [self disableForm];
                 }
             }
@@ -583,31 +648,6 @@
     [self dismissViewControllerAnimated:YES completion:nil];
 }
 
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== User & Group =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)getUserAndGroup:(NSString *)find
-{
-    [self.delegate getUserAndGroup:find];
-}
-
-- (void)reloadUserAndGroup:(NSArray *)items
-{
-    if (self.shareUserOC)
-        [self.shareUserOC reloadUserAndGroup:items];
-}
-
-- (void)shareUserAndGroup:(NSString *)user shareeType:(NSInteger)shareeType permission:(NSInteger)permission
-{
-    [self.delegate shareUserAndGroup:user shareeType:shareeType permission:permission metadata:self.metadata serverUrl:self.serverUrl];
-}
-
-- (void)updateShare:(NSString *)share metadata:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl password:(NSString *)password expirationTime:(NSString *)expirationTime permission:(NSInteger)permission hideDownload:(BOOL)hideDownload
-{
-    [self.delegate updateShare:share metadata:metadata serverUrl:serverUrl password:password expirationTime:expirationTime permission:permission hideDownload:false];
-}
-
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Utility =====
 #pragma --------------------------------------------------------------------------------------------

+ 0 - 10
iOSClient/Share/CCSharePermissionOC.h

@@ -29,12 +29,8 @@
 
 @class tableMetadata;
 
-@protocol CCSharePermissionOCDelegate;
-
 @interface CCSharePermissionOC : XLFormViewController
 
-@property (nonatomic, weak) id <CCSharePermissionOCDelegate> delegate;
-
 @property (nonatomic, weak) IBOutlet UIButton *endButton;
 @property (nonatomic, strong) NSString *idRemoteShared;
 @property (nonatomic, strong) tableMetadata *metadata;
@@ -43,9 +39,3 @@
 - (IBAction)endButtonAction:(id)sender;
 
 @end
-
-@protocol CCSharePermissionOCDelegate
-
-- (void)updateShare:(NSString *)share metadata:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl password:(NSString *)password expirationTime:(NSString *)expirationTime permission:(NSInteger)permission hideDownload:(BOOL)hideDownload;
-
-@end

+ 22 - 3
iOSClient/Share/CCSharePermissionOC.m

@@ -160,6 +160,27 @@
     [self initializeForm];    
 }
 
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ===== Networking =====
+#pragma --------------------------------------------------------------------------------------------
+
+- (void)updateShare:(NSString *)share metadata:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl password:(NSString *)password expirationTime:(NSString *)expirationTime permission:(NSInteger)permission hideDownload:(BOOL)hideDownload
+{
+    [[OCNetworking sharedManager] shareUpdateAccount:appDelegate.activeAccount shareID:[share integerValue] password:password permission:permission expirationTime:expirationTime hideDownload:hideDownload completion:^(NSString *account, NSString *message, NSInteger errorCode) {
+        
+        if (errorCode == 0 && [account isEqualToString:appDelegate.activeAccount]) {
+            
+            [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"SharesReloadDatasource" object:nil userInfo:nil];
+            
+            [self dismissViewControllerAnimated:YES completion:nil];
+            
+        } else if (errorCode != 0) {
+            
+            [appDelegate messageNotification:@"_share_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+        }        
+    }];
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Button =====
 #pragma --------------------------------------------------------------------------------------------
@@ -180,9 +201,7 @@
         permission = [UtilsFramework getPermissionsValueByCanEdit:[rowEdit.value boolValue] andCanCreate:[rowCreate.value boolValue] andCanChange:[rowChange.value boolValue] andCanDelete:[rowDelete.value boolValue] andCanShare:[rowShare.value boolValue] andIsFolder:shareDto.isDirectory];
     
     if (permission != shareDto.permissions)
-        [self.delegate updateShare:self.idRemoteShared metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:nil permission:permission hideDownload:false];
-    
-    [self dismissViewControllerAnimated:YES completion:nil];
+        [self updateShare:self.idRemoteShared metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:nil permission:permission hideDownload:false];
 }
 
 @end

+ 4 - 10
iOSClient/Share/CCShareUserOC.h

@@ -27,18 +27,19 @@
 #import "OCShareUser.h"
 #import "OCConstants.h"
 
-@protocol CCShareUserOCDelegate;
+@class tableMetadata;
 
 @interface CCShareUserOC : XLFormViewController
 
-@property (nonatomic, weak) id <CCShareUserOCDelegate> delegate;
-
 @property (nonatomic, weak) IBOutlet UIButton *endButton;
 
 @property (nonatomic, strong) NSMutableArray *selectedItems;
 @property (nonatomic, strong) NSArray *itemsShareWith;
 @property (nonatomic, strong) NSMutableArray *users;
 @property (nonatomic, strong) NSString *directUser;
+@property (nonatomic, strong) tableMetadata *metadata;
+@property (nonatomic, strong) NSString *serverUrl;
+
 @property BOOL isDirectory;
 @property NSInteger shareType;
 
@@ -47,10 +48,3 @@
 - (void)reloadUserAndGroup:(NSArray *)items;
 
 @end
-
-@protocol CCShareUserOCDelegate
-
-- (void)getUserAndGroup:(NSString *)find;
-- (void)shareUserAndGroup:(NSString *)user shareeType:(NSInteger)shareeType permission:(NSInteger)permission;
-
-@end

+ 42 - 4
iOSClient/Share/CCShareUserOC.m

@@ -108,6 +108,45 @@
     self.tableView.backgroundColor = [NCBrandColor sharedInstance].backgroundView;
 }
 
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ===== Networking =====
+#pragma --------------------------------------------------------------------------------------------
+
+- (void)shareUserAndGroup:(NSString *)user shareeType:(NSInteger)shareeType permission:(NSInteger)permission metadata:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl
+{
+    NSString *fileName = [CCUtility returnFileNamePathFromFileName:metadata.fileName serverUrl:serverUrl activeUrl:appDelegate.activeUrl];
+    
+    [[OCNetworking sharedManager] shareUserGroupWithAccount:appDelegate.activeAccount userOrGroup:user fileName:fileName permission:permission shareeType:shareeType completion:^(NSString *account, NSString *message, NSInteger errorCode) {
+        
+        if (errorCode == 0 && [account isEqualToString:appDelegate.activeAccount]) {
+            
+            [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"SharesReloadDatasource" object:nil userInfo:nil];
+            
+            [self dismissViewControllerAnimated:YES completion:nil];
+
+        } else if (errorCode != 0) {
+            
+            [appDelegate messageNotification:@"_share_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+        }
+    }];
+}
+
+- (void)getUserAndGroup:(NSString *)find
+{
+    [[OCNetworking sharedManager] getUserGroupWithAccount:appDelegate.activeAccount searchString:find completion:^(NSString *account, NSArray *item, NSString *message, NSInteger errorCode) {
+        
+        if (errorCode == 0 && [account isEqualToString:appDelegate.activeAccount]) {
+            
+            [self reloadUserAndGroup:item];
+            
+        } else if (errorCode != 0) {
+            
+            [appDelegate messageNotification:@"_error_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+        }
+        
+    }];
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Button =====
 #pragma --------------------------------------------------------------------------------------------
@@ -126,7 +165,7 @@
         if (self.users.count > 0 && [num integerValue] < self.users.count) {
             
             OCShareUser *item = [self.users objectAtIndex:[num integerValue]];
-            [self.delegate shareUserAndGroup:item.name shareeType:item.shareeType permission:permission];
+            [self shareUserAndGroup:item.name shareeType:item.shareeType permission:permission metadata:self.metadata serverUrl:self.serverUrl];
         }
     }
     
@@ -136,11 +175,10 @@
         if ([self.directUser length] > 0 && [self.directUser isEqualToString:appDelegate.activeUser] == NO) {
         
             // User/Group/Federate
-            [self.delegate shareUserAndGroup:self.directUser shareeType:self.shareType permission:permission];
+            [self shareUserAndGroup:self.directUser shareeType:self.shareType permission:permission metadata:self.metadata serverUrl:self.serverUrl];
         }
     }
     
-    [self dismissViewControllerAnimated:YES completion:nil];
 }
 
 #pragma --------------------------------------------------------------------------------------------
@@ -184,7 +222,7 @@
         rowDescriptor.value = [rowDescriptor.value stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
         
         if ([rowDescriptor.value length] > 1)
-            [self.delegate getUserAndGroup:rowDescriptor.value];
+            [self getUserAndGroup:rowDescriptor.value];
     }
 }