|
@@ -242,9 +242,6 @@
|
|
|
{
|
|
|
[super viewDidAppear:animated];
|
|
|
|
|
|
- // Active Main
|
|
|
- app.activeMain = self;
|
|
|
-
|
|
|
// Test viewDidLoad
|
|
|
if (_isViewDidLoad) {
|
|
|
|
|
@@ -252,7 +249,7 @@
|
|
|
|
|
|
} else {
|
|
|
|
|
|
- if (app.activeAccount.length > 0) {
|
|
|
+ if (app.activeAccount.length > 0 && app.activeMain != self) {
|
|
|
|
|
|
// Load Datasource
|
|
|
[self reloadDatasource:_serverUrl];
|
|
@@ -261,6 +258,9 @@
|
|
|
[self readFileReloadFolder];
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // Active Main
|
|
|
+ app.activeMain = self;
|
|
|
|
|
|
// Title
|
|
|
[self setTitle];
|
|
@@ -2223,28 +2223,31 @@
|
|
|
[_hud visibleHudTitle:[NSString stringWithFormat:NSLocalizedString(@"_delete_file_n_", nil), ofFile - numFile + 1, ofFile] mode:MBProgressHUDModeIndeterminate color:nil];
|
|
|
}
|
|
|
|
|
|
-- (void)deleteSelectionFile
|
|
|
+- (void)deleteFile
|
|
|
{
|
|
|
[_queueSelector removeAllObjects];
|
|
|
|
|
|
- _numSelectedFileIDsMetadatas = [_selectedFileIDsMetadatas count];
|
|
|
-
|
|
|
- if ([_selectedFileIDsMetadatas count] > 0) {
|
|
|
+ if (self.tableView.editing) {
|
|
|
+
|
|
|
+ // ON : Editing Mode
|
|
|
+
|
|
|
+ if ([_selectedFileIDsMetadatas count] > 0) {
|
|
|
+
|
|
|
+ _numSelectedFileIDsMetadatas = [_selectedFileIDsMetadatas count];
|
|
|
+ NSArray *metadatas = [_selectedFileIDsMetadatas allValues];
|
|
|
+ [self deleteFileOrFolder:[metadatas objectAtIndex:0] numFile:[_selectedFileIDsMetadatas count] ofFile:_numSelectedFileIDsMetadatas];
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
|
|
|
- NSArray *metadatas = [_selectedFileIDsMetadatas allValues];
|
|
|
- [self deleteFileOrFolder:[metadatas objectAtIndex:0] numFile:[_selectedFileIDsMetadatas count] ofFile:_numSelectedFileIDsMetadatas];
|
|
|
+ // OFF : Editing Mode
|
|
|
+
|
|
|
+ [_selectedFileIDsMetadatas removeAllObjects];
|
|
|
+ _numSelectedFileIDsMetadatas = 1;
|
|
|
+ [self deleteFileOrFolder:_metadata numFile:1 ofFile:_numSelectedFileIDsMetadatas];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-- (void)deleteFile
|
|
|
-{
|
|
|
- [_queueSelector removeAllObjects];
|
|
|
- [_selectedFileIDsMetadatas removeAllObjects];
|
|
|
- _numSelectedFileIDsMetadatas = 1;
|
|
|
-
|
|
|
- [self deleteFileOrFolder:_metadata numFile:1 ofFile:_numSelectedFileIDsMetadatas];
|
|
|
-}
|
|
|
-
|
|
|
#pragma --------------------------------------------------------------------------------------------
|
|
|
#pragma mark ===== Rename / Move =====
|
|
|
#pragma --------------------------------------------------------------------------------------------
|
|
@@ -2298,7 +2301,16 @@
|
|
|
[app messageNotification:@"_move_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
|
|
|
|
|
|
[_selectedMetadatas removeAllObjects];
|
|
|
- [_queueSelector removeAllObjects];
|
|
|
+
|
|
|
+ // End Select Table View
|
|
|
+ [self tableViewSelect:NO];
|
|
|
+
|
|
|
+ // reload Datasource
|
|
|
+ if ([metadataNet.selectorPost isEqualToString:selectorReadFolderForced] || _isSearchMode)
|
|
|
+ [self readFolder:metadataNet.serverUrl];
|
|
|
+ else
|
|
|
+ [self reloadDatasource];
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2339,111 +2351,141 @@
|
|
|
(void)[[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:newDirectory permissions:@""];
|
|
|
}
|
|
|
|
|
|
- // reload Datasource
|
|
|
- if ([metadataNet.selectorPost isEqualToString:selectorReadFolderForced] || _isSearchMode)
|
|
|
- [self readFolder:metadataNet.serverUrl];
|
|
|
- else
|
|
|
- [self reloadDatasource];
|
|
|
-
|
|
|
- // Next file
|
|
|
- [_selectedMetadatas removeObjectAtIndex:0];
|
|
|
- [self performSelectorOnMainThread:@selector(moveFileOrFolder:) withObject:metadataNet.serverUrlTo waitUntilDone:NO];
|
|
|
+ // next
|
|
|
+ [_selectedFileIDsMetadatas removeObjectForKey:metadataNet.fileID];
|
|
|
+
|
|
|
+ if ([_selectedFileIDsMetadatas count] > 0) {
|
|
|
+
|
|
|
+ NSArray *metadatas = [_selectedFileIDsMetadatas allValues];
|
|
|
+
|
|
|
+ [self performSelectorOnMainThread:@selector(moveFileOrFolderMetadata:) withObject:@[[metadatas objectAtIndex:0], serverUrlTo, [NSNumber numberWithInteger:[_selectedFileIDsMetadatas count]], [NSNumber numberWithInteger:_numSelectedFileIDsMetadatas]] waitUntilDone:NO];
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ // End Select Table View
|
|
|
+ [self tableViewSelect:NO];
|
|
|
+
|
|
|
+ // reload Datasource
|
|
|
+ if ([metadataNet.selectorPost isEqualToString:selectorReadFolderForced] || _isSearchMode)
|
|
|
+ [self readFolder:metadataNet.serverUrl];
|
|
|
+ else
|
|
|
+ [self reloadDatasource];
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-- (void)moveFileOrFolder:(NSString *)serverUrlTo
|
|
|
+- (void)moveFileOrFolderMetadata:(NSArray *)arguments
|
|
|
{
|
|
|
- if ([_selectedMetadatas count] > 0) {
|
|
|
-
|
|
|
- tableMetadata *metadata = [_selectedMetadatas objectAtIndex:0];
|
|
|
-
|
|
|
- // Plain
|
|
|
- if (metadata.cryptated == NO) {
|
|
|
+ tableMetadata *metadata = [arguments objectAtIndex:0];
|
|
|
+ NSString *serverUrlTo = [arguments objectAtIndex:1];
|
|
|
+ NSInteger numFile = [[arguments objectAtIndex:2] integerValue];
|
|
|
+ NSInteger ofFile = [[arguments objectAtIndex:3] integerValue];
|
|
|
+
|
|
|
+ // Plain
|
|
|
+ if (metadata.cryptated == NO) {
|
|
|
|
|
|
- OCnetworking *ocNetworking = [[OCnetworking alloc] initWithDelegate:nil metadataNet:nil withUser:app.activeUser withPassword:app.activePassword withUrl:app.activeUrl isCryptoCloudMode:NO];
|
|
|
+ OCnetworking *ocNetworking = [[OCnetworking alloc] initWithDelegate:nil metadataNet:nil withUser:app.activeUser withPassword:app.activePassword withUrl:app.activeUrl isCryptoCloudMode:NO];
|
|
|
|
|
|
- NSError *error = [ocNetworking readFileSync:[NSString stringWithFormat:@"%@/%@", serverUrlTo, metadata.fileName]];
|
|
|
+ NSError *error = [ocNetworking readFileSync:[NSString stringWithFormat:@"%@/%@", serverUrlTo, metadata.fileName]];
|
|
|
|
|
|
- if(!error) {
|
|
|
+ if(!error) {
|
|
|
|
|
|
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
|
|
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
|
|
|
|
|
- UIAlertController * alert= [UIAlertController alertControllerWithTitle:NSLocalizedString(@"_error_", nil) message:NSLocalizedString(@"_file_already_exists_", nil) preferredStyle:UIAlertControllerStyleAlert];
|
|
|
- UIAlertAction* ok = [UIAlertAction actionWithTitle:NSLocalizedString(@"_ok_", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
|
|
|
- }];
|
|
|
- [alert addAction:ok];
|
|
|
- [self presentViewController:alert animated:YES completion:nil];
|
|
|
- });
|
|
|
-
|
|
|
- return;
|
|
|
- }
|
|
|
+ UIAlertController * alert= [UIAlertController alertControllerWithTitle:NSLocalizedString(@"_error_", nil) message:NSLocalizedString(@"_file_already_exists_", nil) preferredStyle:UIAlertControllerStyleAlert];
|
|
|
+ UIAlertAction* ok = [UIAlertAction actionWithTitle:NSLocalizedString(@"_ok_", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
|
|
|
+ }];
|
|
|
+ [alert addAction:ok];
|
|
|
+ [self presentViewController:alert animated:YES completion:nil];
|
|
|
+ });
|
|
|
|
|
|
- CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
|
|
|
+ // End Select Table View
|
|
|
+ [self tableViewSelect:NO];
|
|
|
|
|
|
- metadataNet.action = actionMoveFileOrFolder;
|
|
|
- metadataNet.directory = metadata.directory;
|
|
|
- metadataNet.fileID = metadata.fileID;
|
|
|
- metadataNet.directoryID = metadata.directoryID;
|
|
|
- metadataNet.directoryIDTo = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlTo];
|
|
|
- metadataNet.fileName = metadata.fileName;
|
|
|
- metadataNet.fileNamePrint = metadataNet.fileNamePrint;
|
|
|
- metadataNet.fileNameTo = metadata.fileName;
|
|
|
- metadataNet.etag = metadata.etag;
|
|
|
- metadataNet.selector = selectorMove;
|
|
|
- metadataNet.serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
|
|
|
- metadataNet.serverUrlTo = serverUrlTo;
|
|
|
-
|
|
|
- [_queueSelector addObject:metadataNet.selector];
|
|
|
+ // reload Datasource
|
|
|
+ [self readFileReloadFolder];
|
|
|
|
|
|
- [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
|
|
|
+ return;
|
|
|
}
|
|
|
+
|
|
|
+ CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
|
|
|
|
|
|
- // cyptated
|
|
|
- if (metadata.cryptated == YES) {
|
|
|
+ metadataNet.action = actionMoveFileOrFolder;
|
|
|
+ metadataNet.directory = metadata.directory;
|
|
|
+ metadataNet.fileID = metadata.fileID;
|
|
|
+ metadataNet.directoryID = metadata.directoryID;
|
|
|
+ metadataNet.directoryIDTo = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlTo];
|
|
|
+ metadataNet.fileName = metadata.fileName;
|
|
|
+ metadataNet.fileNamePrint = metadataNet.fileNamePrint;
|
|
|
+ metadataNet.fileNameTo = metadata.fileName;
|
|
|
+ metadataNet.etag = metadata.etag;
|
|
|
+ metadataNet.selector = selectorMove;
|
|
|
+ metadataNet.serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
|
|
|
+ metadataNet.serverUrlTo = serverUrlTo;
|
|
|
|
|
|
- CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
|
|
|
+ [_queueSelector addObject:metadataNet.selector];
|
|
|
|
|
|
- metadataNet.action = actionMoveFileOrFolder;
|
|
|
- metadataNet.directory = metadata.directory;
|
|
|
- metadataNet.fileID = metadata.fileID;
|
|
|
- metadataNet.directoryID = metadata.directoryID;
|
|
|
- metadataNet.directoryIDTo = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlTo];
|
|
|
- metadataNet.fileNamePrint = metadata.fileNamePrint;
|
|
|
- metadataNet.etag = metadata.etag;
|
|
|
- metadataNet.serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
|
|
|
- metadataNet.serverUrlTo = serverUrlTo;
|
|
|
-
|
|
|
- // data
|
|
|
- metadataNet.fileName = metadata.fileNameData;
|
|
|
- metadataNet.fileNameTo = metadata.fileNameData;
|
|
|
- metadataNet.selector = selectorMoveCrypto;
|
|
|
-
|
|
|
- [_queueSelector addObject:metadataNet.selector];
|
|
|
- [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
|
|
|
+ [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
|
|
|
+ }
|
|
|
+
|
|
|
+ // cyptated
|
|
|
+ if (metadata.cryptated == YES) {
|
|
|
|
|
|
- // plist
|
|
|
- metadataNet.fileName = metadata.fileName;
|
|
|
- metadataNet.fileNameTo = metadata.fileName;
|
|
|
- metadataNet.selector = selectorMovePlist;
|
|
|
+ CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
|
|
|
|
|
|
- [_queueSelector addObject:metadataNet.selector];
|
|
|
- [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
|
|
|
- }
|
|
|
-
|
|
|
- [_hud visibleHudTitle:[NSString stringWithFormat:NSLocalizedString(@"_move_file_n_", nil), _numSelectedMetadatas - [_selectedMetadatas count] + 1, _numSelectedMetadatas] mode:MBProgressHUDModeIndeterminate color:nil];
|
|
|
+ metadataNet.action = actionMoveFileOrFolder;
|
|
|
+ metadataNet.directory = metadata.directory;
|
|
|
+ metadataNet.fileID = metadata.fileID;
|
|
|
+ metadataNet.directoryID = metadata.directoryID;
|
|
|
+ metadataNet.directoryIDTo = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlTo];
|
|
|
+ metadataNet.fileNamePrint = metadata.fileNamePrint;
|
|
|
+ metadataNet.etag = metadata.etag;
|
|
|
+ metadataNet.serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
|
|
|
+ metadataNet.serverUrlTo = serverUrlTo;
|
|
|
+
|
|
|
+ // data
|
|
|
+ metadataNet.fileName = metadata.fileNameData;
|
|
|
+ metadataNet.fileNameTo = metadata.fileNameData;
|
|
|
+ metadataNet.selector = selectorMoveCrypto;
|
|
|
+
|
|
|
+ [_queueSelector addObject:metadataNet.selector];
|
|
|
+ [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
|
|
|
+
|
|
|
+ // plist
|
|
|
+ metadataNet.fileName = metadata.fileName;
|
|
|
+ metadataNet.fileNameTo = metadata.fileName;
|
|
|
+ metadataNet.selector = selectorMovePlist;
|
|
|
+
|
|
|
+ [_queueSelector addObject:metadataNet.selector];
|
|
|
+ [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
|
|
|
}
|
|
|
+
|
|
|
+ [_hud visibleHudTitle:[NSString stringWithFormat:NSLocalizedString(@"_move_file_n_", nil), ofFile - numFile + 1, ofFile] mode:MBProgressHUDModeIndeterminate color:nil];
|
|
|
}
|
|
|
|
|
|
-- (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title selectedMetadatas:(NSArray *)selectedMetadatas
|
|
|
+- (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title
|
|
|
{
|
|
|
- [_selectedMetadatas removeAllObjects];
|
|
|
[_queueSelector removeAllObjects];
|
|
|
|
|
|
- _selectedMetadatas = [[NSMutableArray alloc] initWithArray:selectedMetadatas];
|
|
|
- _numSelectedMetadatas = [_selectedMetadatas count];
|
|
|
-
|
|
|
- [self performSelectorOnMainThread:@selector(moveFileOrFolder:) withObject:serverUrlTo waitUntilDone:NO];
|
|
|
- [self tableViewSelect:NO];
|
|
|
+ if (self.tableView.editing) {
|
|
|
+
|
|
|
+ // ON : Editing Mode
|
|
|
+ if ([_selectedFileIDsMetadatas count] > 0) {
|
|
|
+
|
|
|
+ _numSelectedFileIDsMetadatas = [_selectedFileIDsMetadatas count];
|
|
|
+ NSArray *metadatas = [_selectedFileIDsMetadatas allValues];
|
|
|
+
|
|
|
+ [self performSelectorOnMainThread:@selector(moveFileOrFolderMetadata:) withObject:@[[metadatas objectAtIndex:0], serverUrlTo, [NSNumber numberWithInteger:[_selectedFileIDsMetadatas count]], [NSNumber numberWithInteger:_numSelectedFileIDsMetadatas]] waitUntilDone:NO];
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ // OFF : Editing Mode
|
|
|
+ [_selectedFileIDsMetadatas removeAllObjects];
|
|
|
+ _numSelectedFileIDsMetadatas = 1;
|
|
|
+
|
|
|
+ [self performSelectorOnMainThread:@selector(moveFileOrFolderMetadata:) withObject:@[_metadata, serverUrlTo, [NSNumber numberWithInteger:1], [NSNumber numberWithInteger:_numSelectedFileIDsMetadatas]] waitUntilDone:NO];
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- (void)moveOpenWindow:(NSArray *)indexPaths
|
|
@@ -2454,7 +2496,6 @@
|
|
|
|
|
|
viewController.delegate = self;
|
|
|
viewController.move.title = NSLocalizedString(@"_move_", nil);
|
|
|
- viewController.selectedMetadatas = [self getMetadatasFromSelectedRows:indexPaths];
|
|
|
viewController.tintColor = [NCBrandColor sharedInstance].navigationBarText;
|
|
|
viewController.barTintColor = [NCBrandColor sharedInstance].brand;
|
|
|
viewController.tintColorTitle = [NCBrandColor sharedInstance].navigationBarText;
|
|
@@ -3638,7 +3679,7 @@
|
|
|
// ITEM DELETE ------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
app.deleteItem = [[REMenuItem alloc] initWithTitle:NSLocalizedString(@"_delete_selected_files_", nil) subtitle:@"" image:[CCGraphics changeThemingColorImage:[UIImage imageNamed:@"deleteSelectedFiles"] color:[NCBrandColor sharedInstance].brand] highlightedImage:nil action:^(REMenuItem *item) {
|
|
|
- [self deleteSelectionFile];
|
|
|
+ [self deleteFile];
|
|
|
}];
|
|
|
|
|
|
// ITEM MOVE ------------------------------------------------------------------------------------------------------
|