|
@@ -32,17 +32,13 @@ extension UIAlertController {
|
|
|
/// - urlBase: UrlBase object
|
|
|
/// - completion: If not` nil` it overrides the default behavior which shows an error using `NCContentPresenter`
|
|
|
/// - Returns: The presentable alert controller
|
|
|
- static func createFolder(serverUrl: String, account: String, markE2ee: Bool = false, sceneIdentifier: String? = nil, completion: ((_ error: NKError) -> Void)? = nil) -> UIAlertController {
|
|
|
+ static func createFolder(serverUrl: String, session: NCSession.Session, markE2ee: Bool = false, sceneIdentifier: String? = nil, completion: ((_ error: NKError) -> Void)? = nil) -> UIAlertController {
|
|
|
let alertController = UIAlertController(title: NSLocalizedString("_create_folder_", comment: ""), message: nil, preferredStyle: .alert)
|
|
|
- let session = NCSession.shared.getSession(account: account)
|
|
|
let isDirectoryEncrypted = NCUtilityFileSystem().isDirectoryE2EE(session: session, serverUrl: serverUrl)
|
|
|
|
|
|
let okAction = UIAlertAction(title: NSLocalizedString("_save_", comment: ""), style: .default, handler: { _ in
|
|
|
guard let fileNameFolder = alertController.textFields?.first?.text else { return }
|
|
|
if markE2ee {
|
|
|
- if NCNetworking.shared.isOffline {
|
|
|
- return NCContentPresenter().showInfo(error: NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_offline_not_allowed_"))
|
|
|
- }
|
|
|
Task {
|
|
|
let createFolderResults = await NCNetworking.shared.createFolder(serverUrlFileName: serverUrl + "/" + fileNameFolder, account: session.account)
|
|
|
if createFolderResults.error == .success {
|
|
@@ -55,28 +51,17 @@ extension UIAlertController {
|
|
|
}
|
|
|
}
|
|
|
} else if isDirectoryEncrypted {
|
|
|
- if NCNetworking.shared.isOffline {
|
|
|
- return NCContentPresenter().showInfo(error: NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_offline_not_allowed_"))
|
|
|
- }
|
|
|
- #if !EXTENSION
|
|
|
Task {
|
|
|
await NCNetworkingE2EECreateFolder().createFolder(fileName: fileNameFolder, serverUrl: serverUrl, withPush: true, sceneIdentifier: sceneIdentifier, session: session)
|
|
|
}
|
|
|
- #endif
|
|
|
} else {
|
|
|
- let metadataForCreateFolder = NCManageDatabase.shared.createMetadata(fileName: fileNameFolder,
|
|
|
- fileNameView: fileNameFolder,
|
|
|
- ocId: NSUUID().uuidString,
|
|
|
- serverUrl: serverUrl,
|
|
|
- url: "",
|
|
|
- contentType: "httpd/unix-directory",
|
|
|
- directory: true,
|
|
|
- session: session,
|
|
|
- sceneIdentifier: sceneIdentifier)
|
|
|
- metadataForCreateFolder.status = NCGlobal.shared.metadataStatusWaitCreateFolder
|
|
|
- metadataForCreateFolder.sessionDate = Date()
|
|
|
- NCManageDatabase.shared.addMetadata(metadataForCreateFolder)
|
|
|
- NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterCreateFolder, userInfo: ["ocId": metadataForCreateFolder.ocId, "serverUrl": metadataForCreateFolder.serverUrl, "account": metadataForCreateFolder.account, "withPush": true, "sceneIdentifier": sceneIdentifier as Any])
|
|
|
+ NCNetworking.shared.createFolder(fileName: fileNameFolder, serverUrl: serverUrl, overwrite: false, withPush: true, sceneIdentifier: sceneIdentifier, session: session) { error in
|
|
|
+ if let completion = completion {
|
|
|
+ DispatchQueue.main.async { completion(error) }
|
|
|
+ } else if error != .success {
|
|
|
+ NCContentPresenter().showError(error: error)
|
|
|
+ } // else: successful, no action
|
|
|
+ }
|
|
|
}
|
|
|
})
|
|
|
|
|
@@ -96,7 +81,7 @@ extension UIAlertController {
|
|
|
guard let text = alertController.textFields?.first?.text else { return }
|
|
|
let folderName = text.trimmingCharacters(in: .whitespaces)
|
|
|
|
|
|
- let textCheck = FileNameValidator.shared.checkFileName(folderName, account: account)
|
|
|
+ let textCheck = FileNameValidator.shared.checkFileName(folderName, account: session.account)
|
|
|
okAction.isEnabled = textCheck?.error == nil && !folderName.isEmpty
|
|
|
alertController.message = textCheck?.error.localizedDescription
|
|
|
}
|