Просмотр исходного кода

Create text file - 403 Error shown when double tapping Save button

Signed-off-by: marinofaggiana <ios@nextcloud.com>
marinofaggiana 3 лет назад
Родитель
Сommit
6db64caf3f
1 измененных файлов с 28 добавлено и 36 удалено
  1. 28 36
      iOSClient/Main/Create cloud/NCCreateFormUploadDocuments.swift

+ 28 - 36
iOSClient/Main/Create cloud/NCCreateFormUploadDocuments.swift

@@ -322,6 +322,8 @@ import XLForm
 
     func createDocument(fileNamePath: String, fileName: String) {
 
+        self.navigationItem.rightBarButtonItem?.isEnabled = false
+
         if self.editorId == NCGlobal.shared.editorText || self.editorId == NCGlobal.shared.editorOnlyoffice {
 
             var customUserAgent: String?
@@ -333,53 +335,43 @@ import XLForm
             } // else: use default
 
             NCCommunication.shared.NCTextCreateFile(fileNamePath: fileNamePath, editorId: editorId, creatorId: creatorId, templateId: templateIdentifier, customUserAgent: customUserAgent) { account, url, errorCode, errorMessage in
+                guard errorCode == 0, account == self.appDelegate.account, let url = url else {
+                    self.navigationItem.rightBarButtonItem?.isEnabled = true
+                    NCContentPresenter.shared.messageNotification("_error_", description: errorMessage, delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.error, errorCode: errorCode)
+                    return
+                }
 
-                if errorCode == 0 && account == self.appDelegate.account {
-
-                    if url != nil && url!.count > 0 {
-                        var results = NCCommunicationCommon.shared.getInternalType(fileName: fileName, mimeType: "", directory: false)
-                        //FIXME: iOS 12.0,* don't detect UTI text/markdown, text/x-markdown
-                        if results.mimeType.isEmpty {
-                            results.mimeType = "text/x-markdown"
-                        }
-                        self.dismiss(animated: true, completion: {
-                            let metadata = NCManageDatabase.shared.createMetadata(account: self.appDelegate.account, user: self.appDelegate.user, userId: self.appDelegate.userId, fileName: fileName, fileNameView: fileName, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, urlBase: self.appDelegate.urlBase, url: url ?? "", contentType: results.mimeType)
+                var results = NCCommunicationCommon.shared.getInternalType(fileName: fileName, mimeType: "", directory: false)
+                //FIXME: iOS 12.0,* don't detect UTI text/markdown, text/x-markdown
+                if results.mimeType.isEmpty {
+                    results.mimeType = "text/x-markdown"
+                }
 
-                            if let viewController = self.appDelegate.activeViewController {
-                                NCViewer.shared.view(viewController: viewController, metadata: metadata, metadatas: [metadata], imageIcon: nil)
-                            }
-                        })
+                self.dismiss(animated: true, completion: {
+                    let metadata = NCManageDatabase.shared.createMetadata(account: self.appDelegate.account, user: self.appDelegate.user, userId: self.appDelegate.userId, fileName: fileName, fileNameView: fileName, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, urlBase: self.appDelegate.urlBase, url: url, contentType: results.mimeType)
+                    if let viewController = self.appDelegate.activeViewController {
+                        NCViewer.shared.view(viewController: viewController, metadata: metadata, metadatas: [metadata], imageIcon: nil)
                     }
-
-                } else if errorCode != 0 {
-                    NCContentPresenter.shared.messageNotification("_error_", description: errorMessage, delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.error, errorCode: errorCode)
-                } else {
-                   print("[LOG] It has been changed user during networking process, error.")
-                }
+                })
             }
         }
 
         if self.editorId == NCGlobal.shared.editorCollabora {
 
             NCCommunication.shared.createRichdocuments(path: fileNamePath, templateId: templateIdentifier) { account, url, errorCode, errorDescription in
-
-                if errorCode == 0 && account == self.appDelegate.account && url != nil {
-
-                    self.dismiss(animated: true, completion: {
-
-                        let createFileName = (fileName as NSString).deletingPathExtension + "." + self.fileNameExtension
-                        let metadata = NCManageDatabase.shared.createMetadata(account: self.appDelegate.account, user: self.appDelegate.user, userId: self.appDelegate.userId, fileName: createFileName, fileNameView: createFileName, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, urlBase: self.appDelegate.urlBase, url: url!, contentType: "")
-
-                        if let viewController = self.appDelegate.activeViewController {
-                            NCViewer.shared.view(viewController: viewController, metadata: metadata, metadatas: [metadata], imageIcon: nil)
-                        }
-                   })
-
-                } else if errorCode != 0 {
+                guard errorCode == 0, account == self.appDelegate.account, let url = url else {
+                    self.navigationItem.rightBarButtonItem?.isEnabled = true
                     NCContentPresenter.shared.messageNotification("_error_", description: errorDescription, delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.error, errorCode: errorCode)
-                } else {
-                    print("[LOG] It has been changed user during networking process, error.")
+                    return
                 }
+
+                self.dismiss(animated: true, completion: {
+                    let createFileName = (fileName as NSString).deletingPathExtension + "." + self.fileNameExtension
+                    let metadata = NCManageDatabase.shared.createMetadata(account: self.appDelegate.account, user: self.appDelegate.user, userId: self.appDelegate.userId, fileName: createFileName, fileNameView: createFileName, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, urlBase: self.appDelegate.urlBase, url: url, contentType: "")
+                    if let viewController = self.appDelegate.activeViewController {
+                        NCViewer.shared.view(viewController: viewController, metadata: metadata, metadatas: [metadata], imageIcon: nil)
+                    }
+               })
             }
         }
     }