NCRenameFile.swift 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. //
  2. // NCRenameFile.swift
  3. // Nextcloud
  4. //
  5. // Created by Marino Faggiana on 26/02/21.
  6. // Copyright © 2021 Marino Faggiana. All rights reserved.
  7. //
  8. import Foundation
  9. import NCCommunication
  10. class NCRenameFile: UIViewController {
  11. @IBOutlet weak var previewFile: UIImageView!
  12. @IBOutlet weak var fileNameWithoutExt: UITextField!
  13. @IBOutlet weak var point: UILabel!
  14. @IBOutlet weak var ext: UITextField!
  15. @IBOutlet weak var fileNameWithoutExtTrailingContraint: NSLayoutConstraint!
  16. var metadata: tableMetadata?
  17. // MARK: - Life Cycle
  18. override func viewDidLoad() {
  19. super.viewDidLoad()
  20. if let metadata = self.metadata {
  21. fileNameWithoutExt.text = metadata.fileNameWithoutExt
  22. ext.text = metadata.ext
  23. if metadata.directory {
  24. previewFile.image = NCCollectionCommon.images.cellFolderImage
  25. ext.isHidden = true
  26. point.isHidden = true
  27. fileNameWithoutExtTrailingContraint.constant = 20
  28. } else {
  29. if FileManager().fileExists(atPath: CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, etag: metadata.etag)) {
  30. previewFile.image = UIImage(contentsOfFile: CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, etag: metadata.etag))
  31. } else {
  32. if metadata.iconName.count > 0 {
  33. previewFile.image = UIImage.init(named: metadata.iconName)
  34. } else {
  35. previewFile.image = NCCollectionCommon.images.cellFileImage
  36. }
  37. }
  38. fileNameWithoutExtTrailingContraint.constant = 90
  39. }
  40. }
  41. title = NSLocalizedString("_rename_file_", comment: "")
  42. navigationItem.leftBarButtonItem = UIBarButtonItem(title: NSLocalizedString("_cancel_", comment: ""), style: UIBarButtonItem.Style.plain, target: self, action: #selector(cancel))
  43. navigationItem.rightBarButtonItem = UIBarButtonItem(title: NSLocalizedString("_rename_", comment: ""), style: UIBarButtonItem.Style.plain, target: self, action: #selector(rename))
  44. }
  45. override func viewDidAppear(_ animated: Bool) {
  46. super.viewDidAppear(animated)
  47. if metadata == nil {
  48. dismiss(animated: true)
  49. }
  50. }
  51. // MARK: - Action
  52. @objc func cancel() {
  53. dismiss(animated: true)
  54. }
  55. @objc func rename() {
  56. guard let metadata = metadata else { return }
  57. var newFileNameWithoutExt = ""
  58. var newExt = ""
  59. var fileNameNew = ""
  60. if fileNameWithoutExt.text == nil || fileNameWithoutExt.text?.count == 0 {
  61. self.fileNameWithoutExt.text = metadata.fileNameWithoutExt
  62. return
  63. } else {
  64. newFileNameWithoutExt = fileNameWithoutExt.text!
  65. }
  66. if metadata.directory {
  67. fileNameNew = newFileNameWithoutExt
  68. renameMetadata(metadata, fileNameNew: fileNameNew)
  69. } else {
  70. if ext.text == nil || ext.text?.count == 0 {
  71. self.ext.text = metadata.ext
  72. return
  73. } else {
  74. newExt = ext.text!
  75. }
  76. if newExt != metadata.ext {
  77. } else {
  78. fileNameNew = newFileNameWithoutExt + "." + newExt
  79. renameMetadata(metadata, fileNameNew: fileNameNew)
  80. }
  81. }
  82. }
  83. // MARK: - Networking
  84. func renameMetadata(_ metadata: tableMetadata, fileNameNew: String) {
  85. NCNetworking.shared.renameMetadata(metadata, fileNameNew: fileNameNew, urlBase: metadata.urlBase, viewController: self) { (errorCode, errorDescription) in
  86. if errorCode == 0 {
  87. self.dismiss(animated: true)
  88. } else {
  89. NCContentPresenter.shared.messageNotification("_error_", description: errorDescription, delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.error, errorCode: errorCode)
  90. }
  91. }
  92. }
  93. }