Browse Source

clear code

marinofaggiana 5 năm trước cách đây
mục cha
commit
66a66de65a

+ 16 - 10
iOSClient/Main/Create cloud/NCCreateFormUploadDocuments.swift

@@ -37,9 +37,7 @@ class NCCreateFormUploadDocuments: XLFormViewController, NCSelectDelegate, UICol
     var listOfTemplate = [NCEditorTemplates]()
     var selectTemplate: NCEditorTemplates?
     
-    
     @IBOutlet weak var indicator: UIActivityIndicatorView!
-
     @IBOutlet weak var collectionView: UICollectionView!
     @IBOutlet weak var collectionViewHeigth: NSLayoutConstraint!
     
@@ -252,24 +250,20 @@ class NCCreateFormUploadDocuments: XLFormViewController, NCSelectDelegate, UICol
     
     @objc func save() {
         
-        guard let selectTemplate = self.selectTemplate else {
-            return
-        }
         let rowFileName : XLFormRowDescriptor  = self.form.formRow(withTag: "fileName")!
         guard let fileNameForm = rowFileName.value else {
             return
         }
         if fileNameForm as! String == "" {
             return
-        } else {
+        }
             
+        if self.typeTemplate == k_nextcloudtext_document {
+                        
             fileName = (fileNameForm as! NSString).deletingPathExtension + "." + fileNameExtension
             fileName = CCUtility.returnFileNamePath(fromFileName: fileName, serverUrl: serverUrl, activeUrl: appDelegate.activeUrl)
-        }
-        
-        if self.typeTemplate == k_nextcloudtext_document {
             
-            NCCommunication.sharedInstance.NCTextCreateFile(urlString: appDelegate.activeUrl, fileNamePath: fileName, editor: "text", templateId: nil, account: self.appDelegate.activeAccount) { (account, url, errorCode, errorMessage) in
+            NCCommunication.sharedInstance.NCTextCreateFile(urlString: appDelegate.activeUrl, fileNamePath: fileName, editor: "text", templateId: selectTemplate?.identifier, account: self.appDelegate.activeAccount) { (account, url, errorCode, errorMessage) in
                 
                 if errorCode == 0 && account == self.appDelegate.activeAccount {
                     
@@ -291,6 +285,13 @@ class NCCreateFormUploadDocuments: XLFormViewController, NCSelectDelegate, UICol
             
         } else {
             
+            guard let selectTemplate = self.selectTemplate else {
+                return
+            }
+            
+            fileName = (fileNameForm as! NSString).deletingPathExtension + "." + fileNameExtension
+            fileName = CCUtility.returnFileNamePath(fromFileName: fileName, serverUrl: serverUrl, activeUrl: appDelegate.activeUrl)
+            
             OCNetworking.sharedManager().createNewRichdocuments(withAccount: appDelegate.activeAccount, fileName: fileName, serverUrl: serverUrl, templateID: selectTemplate.identifier, completion: { (account, url, message, errorCode) in
                        
                 if errorCode == 0 && account == self.appDelegate.activeAccount {
@@ -327,6 +328,9 @@ class NCCreateFormUploadDocuments: XLFormViewController, NCSelectDelegate, UICol
         
         if self.typeTemplate == k_nextcloudtext_document {
             
+            // default
+            fileNameExtension = "md"
+            
             NCCommunication.sharedInstance.NCTextGetListOfTemplates(urlString: appDelegate.activeUrl, account: appDelegate.activeAccount) { (account, templates, errorCode, errorMessage) in
                 
                 self.indicator.stopAnimating()
@@ -361,6 +365,8 @@ class NCCreateFormUploadDocuments: XLFormViewController, NCSelectDelegate, UICol
             
         } else {
             
+            // default
+            
             OCNetworking.sharedManager().getTemplatesRichdocuments(withAccount: appDelegate.activeAccount, typeTemplate: typeTemplate, completion: { (account, templates, message, errorCode) in
                 
                 self.indicator.stopAnimating()

+ 0 - 144
iOSClient/Main/Create cloud/NCCreateFormUploadRichdocuments.storyboard

@@ -1,144 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14868" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="hTm-e0-ORl">
-    <device id="retina4_7" orientation="portrait" appearance="light"/>
-    <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14824"/>
-        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <scenes>
-        <!--Create Form Upload Richdocuments-->
-        <scene sceneID="UDa-5t-Os6">
-            <objects>
-                <viewController storyboardIdentifier="NCCreateFormUploadRichdocuments.storyboard" id="uQo-FX-ejX" customClass="NCCreateFormUploadRichdocuments" customModule="Nextcloud" customModuleProvider="target" sceneMemberID="viewController">
-                    <view key="view" contentMode="scaleToFill" id="PyZ-sH-zNM">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="kdt-bX-icm">
-                                <rect key="frame" x="0.0" y="44" width="375" height="250"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="250" id="XAH-EC-bwE"/>
-                                </constraints>
-                                <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="pay-52-Gt0">
-                                    <size key="itemSize" width="150" height="170"/>
-                                    <size key="headerReferenceSize" width="0.0" height="0.0"/>
-                                    <size key="footerReferenceSize" width="0.0" height="0.0"/>
-                                    <inset key="sectionInset" minX="10" minY="10" maxX="9" maxY="0.0"/>
-                                </collectionViewFlowLayout>
-                                <cells>
-                                    <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="cell" id="3Zg-hF-dVr">
-                                        <rect key="frame" x="10" y="10" width="150" height="170"/>
-                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
-                                            <rect key="frame" x="0.0" y="0.0" width="150" height="170"/>
-                                            <autoresizingMask key="autoresizingMask"/>
-                                            <subviews>
-                                                <imageView opaque="NO" userInteractionEnabled="NO" tag="100" contentMode="scaleAspectFit" translatesAutoresizingMaskIntoConstraints="NO" id="X31-eH-dH5" userLabel="ImagePreview">
-                                                    <rect key="frame" x="1" y="1" width="148" height="148"/>
-                                                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                                </imageView>
-                                                <label opaque="NO" userInteractionEnabled="NO" tag="200" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BeG-go-HP6">
-                                                    <rect key="frame" x="0.0" y="150" width="150" height="20"/>
-                                                    <constraints>
-                                                        <constraint firstAttribute="height" constant="20" id="SB5-4E-7OZ"/>
-                                                    </constraints>
-                                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                                                    <nil key="textColor"/>
-                                                    <nil key="highlightedColor"/>
-                                                </label>
-                                                <imageView userInteractionEnabled="NO" tag="300" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="plus100" translatesAutoresizingMaskIntoConstraints="NO" id="Byg-Ok-yCr" userLabel="imageSelect">
-                                                    <rect key="frame" x="50" y="50" width="50" height="50"/>
-                                                    <constraints>
-                                                        <constraint firstAttribute="width" constant="50" id="2ZV-XV-9Tj" userLabel="width = 50"/>
-                                                        <constraint firstAttribute="height" constant="50" id="DVP-w6-ED7" userLabel="height = 50"/>
-                                                    </constraints>
-                                                </imageView>
-                                            </subviews>
-                                        </view>
-                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                        <constraints>
-                                            <constraint firstItem="BeG-go-HP6" firstAttribute="top" secondItem="X31-eH-dH5" secondAttribute="bottom" constant="1" id="67E-L2-y86"/>
-                                            <constraint firstItem="BeG-go-HP6" firstAttribute="leading" secondItem="3Zg-hF-dVr" secondAttribute="leading" id="9aq-dC-p0W"/>
-                                            <constraint firstItem="Byg-Ok-yCr" firstAttribute="centerX" secondItem="X31-eH-dH5" secondAttribute="centerX" id="CEc-hq-24i"/>
-                                            <constraint firstItem="X31-eH-dH5" firstAttribute="leading" secondItem="3Zg-hF-dVr" secondAttribute="leading" constant="1" id="HCI-EG-bNi"/>
-                                            <constraint firstAttribute="trailing" secondItem="BeG-go-HP6" secondAttribute="trailing" id="Ir1-IG-qyG"/>
-                                            <constraint firstAttribute="trailing" secondItem="X31-eH-dH5" secondAttribute="trailing" constant="1" id="OsG-61-SBl"/>
-                                            <constraint firstItem="X31-eH-dH5" firstAttribute="top" secondItem="3Zg-hF-dVr" secondAttribute="top" constant="1" id="jik-qq-poj"/>
-                                            <constraint firstItem="Byg-Ok-yCr" firstAttribute="centerY" secondItem="X31-eH-dH5" secondAttribute="centerY" id="kKZ-cS-fa6"/>
-                                            <constraint firstAttribute="bottom" secondItem="BeG-go-HP6" secondAttribute="bottom" id="qCU-fe-CS8"/>
-                                        </constraints>
-                                    </collectionViewCell>
-                                </cells>
-                                <connections>
-                                    <outlet property="dataSource" destination="uQo-FX-ejX" id="d36-00-RQh"/>
-                                    <outlet property="delegate" destination="uQo-FX-ejX" id="9zi-Ui-T0z"/>
-                                </connections>
-                            </collectionView>
-                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="eeP-9N-ZRP">
-                                <rect key="frame" x="0.0" y="304" width="375" height="200"/>
-                                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="200" id="kKy-VZ-d0g"/>
-                                </constraints>
-                                <connections>
-                                    <outlet property="dataSource" destination="uQo-FX-ejX" id="Y7U-AM-3WZ"/>
-                                    <outlet property="delegate" destination="uQo-FX-ejX" id="gsE-cc-f9G"/>
-                                </connections>
-                            </tableView>
-                            <activityIndicatorView hidden="YES" opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" hidesWhenStopped="YES" style="gray" translatesAutoresizingMaskIntoConstraints="NO" id="MR6-tv-tqK">
-                                <rect key="frame" x="172.5" y="154" width="30" height="30"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" constant="30" id="0S5-5q-xmr"/>
-                                    <constraint firstAttribute="height" constant="30" id="pBW-Yp-CNJ"/>
-                                </constraints>
-                            </activityIndicatorView>
-                        </subviews>
-                        <constraints>
-                            <constraint firstItem="MR6-tv-tqK" firstAttribute="centerX" secondItem="ILQ-5j-b92" secondAttribute="centerX" id="71o-CE-nGW"/>
-                            <constraint firstItem="eeP-9N-ZRP" firstAttribute="top" secondItem="kdt-bX-icm" secondAttribute="bottom" constant="10" id="Fhq-zQ-1Cx"/>
-                            <constraint firstItem="kdt-bX-icm" firstAttribute="leading" secondItem="eeP-9N-ZRP" secondAttribute="leading" id="M0y-VC-ex7"/>
-                            <constraint firstItem="MR6-tv-tqK" firstAttribute="centerY" secondItem="kdt-bX-icm" secondAttribute="centerY" id="eM4-te-y7u"/>
-                            <constraint firstItem="kdt-bX-icm" firstAttribute="trailing" secondItem="eeP-9N-ZRP" secondAttribute="trailing" id="iNB-l9-u3p"/>
-                            <constraint firstItem="kdt-bX-icm" firstAttribute="top" secondItem="ILQ-5j-b92" secondAttribute="top" id="nnJ-OQ-Uly"/>
-                            <constraint firstItem="eeP-9N-ZRP" firstAttribute="leading" secondItem="ILQ-5j-b92" secondAttribute="leading" id="pNx-zH-54E"/>
-                            <constraint firstItem="ILQ-5j-b92" firstAttribute="trailing" secondItem="eeP-9N-ZRP" secondAttribute="trailing" id="yxz-bK-MTp"/>
-                        </constraints>
-                        <viewLayoutGuide key="safeArea" id="ILQ-5j-b92"/>
-                    </view>
-                    <navigationItem key="navigationItem" id="YB9-Lg-X9d"/>
-                    <connections>
-                        <outlet property="collectionView" destination="kdt-bX-icm" id="KHF-Np-nhf"/>
-                        <outlet property="collectionViewHeigth" destination="XAH-EC-bwE" id="I4u-n9-7pm"/>
-                        <outlet property="indicator" destination="MR6-tv-tqK" id="zvu-t9-npc"/>
-                        <outlet property="tableView" destination="eeP-9N-ZRP" id="dzG-bV-m9u"/>
-                    </connections>
-                </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="tPT-Fr-1CS" userLabel="First Responder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="1196" y="228.93553223388307"/>
-        </scene>
-        <!--Navigation Controller-->
-        <scene sceneID="3OT-UN-0Dc">
-            <objects>
-                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="hTm-e0-ORl" sceneMemberID="viewController">
-                    <toolbarItems/>
-                    <navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="erz-WY-qOP">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
-                        <autoresizingMask key="autoresizingMask"/>
-                    </navigationBar>
-                    <nil name="viewControllers"/>
-                    <connections>
-                        <segue destination="uQo-FX-ejX" kind="relationship" relationship="rootViewController" id="6dF-7E-8yd"/>
-                    </connections>
-                </navigationController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="GZJ-Ut-ON6" userLabel="First Responder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="256.80000000000001" y="228.93553223388307"/>
-        </scene>
-    </scenes>
-    <resources>
-        <image name="plus100" width="100" height="100"/>
-    </resources>
-</document>

+ 0 - 342
iOSClient/Main/Create cloud/NCCreateFormUploadRichdocuments.swift

@@ -1,342 +0,0 @@
-//
-//  NCCreateFormUploadRichdocuments.swift
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 14/11/18.
-//  Copyright © 2017 Marino Faggiana. All rights reserved.
-//
-//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
-//
-//  This program is free software: you can redistribute it and/or modify
-//  it under the terms of the GNU General Public License as published by
-//  the Free Software Foundation, either version 3 of the License, or
-//  (at your option) any later version.
-//
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-//
-//  You should have received a copy of the GNU General Public License
-//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-//
-
-import Foundation
-
-// MARK: -
-
-class NCCreateFormUploadRichdocuments: XLFormViewController, NCSelectDelegate, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
-    
-    var typeTemplate = ""
-    var serverUrl = ""
-    var fileNameFolder = ""
-    var fileName = ""
-    var fileNameExtension = ""
-    var titleForm = ""
-    var listOfTemplate = [NCRichDocumentTemplate]()
-    var selectTemplate: NCRichDocumentTemplate?
-    
-    @IBOutlet weak var indicator: UIActivityIndicatorView!
-
-    @IBOutlet weak var collectionView: UICollectionView!
-    @IBOutlet weak var collectionViewHeigth: NSLayoutConstraint!
-    
-    // Layout
-    let numItems = 2
-    let sectionInsets: CGFloat = 10
-    let highLabelName: CGFloat = 20
-    
-    let appDelegate = UIApplication.shared.delegate as! AppDelegate
-
-    // MARK: - View Life Cycle
-    
-    override func viewDidLoad() {
-        super.viewDidLoad()
-        
-        if serverUrl == CCUtility.getHomeServerUrlActiveUrl(appDelegate.activeUrl) {
-            fileNameFolder = "/"
-        } else {
-            fileNameFolder = (serverUrl as NSString).lastPathComponent
-        }
-        
-        self.tableView.separatorStyle = UITableViewCell.SeparatorStyle.none
-                
-        let cancelButton : UIBarButtonItem = UIBarButtonItem(title: NSLocalizedString("_cancel_", comment: ""), style: UIBarButtonItem.Style.plain, target: self, action: #selector(cancel))
-        let saveButton : UIBarButtonItem = UIBarButtonItem(title: NSLocalizedString("_save_", comment: ""), style: UIBarButtonItem.Style.plain, target: self, action: #selector(save))
-        
-        self.navigationItem.leftBarButtonItem = cancelButton
-        self.navigationItem.rightBarButtonItem = saveButton
-        self.navigationItem.rightBarButtonItem?.isEnabled = false
-        
-        // title 
-        self.title = titleForm
-      
-        // Theming view
-        NotificationCenter.default.addObserver(self, selector: #selector(self.changeTheming), name: NSNotification.Name(rawValue: "changeTheming"), object: nil)
-        changeTheming()
-        
-        // load the templates available
-        getTemplate()
-    }
-    
-    @objc func changeTheming() {
-        appDelegate.changeTheming(self, tableView: tableView, collectionView: collectionView, form: false)
-        initializeForm()
-    }
-    
-    // MARK: - Tableview (XLForm)
-
-    func initializeForm() {
-        
-        let form : XLFormDescriptor = XLFormDescriptor(title: NSLocalizedString("_upload_photos_videos_", comment: "")) as XLFormDescriptor
-        form.rowNavigationOptions = XLFormRowNavigationOptions.stopDisableRow
-        
-        var section : XLFormSectionDescriptor
-        var row : XLFormRowDescriptor
-        
-        // Section: Destination Folder
-        
-        section = XLFormSectionDescriptor.formSection(withTitle: NSLocalizedString("_save_path_", comment: "").uppercased())
-        form.addFormSection(section)
-        
-        row = XLFormRowDescriptor(tag: "ButtonDestinationFolder", rowType: XLFormRowDescriptorTypeButton, title: fileNameFolder)
-        row.action.formSelector = #selector(changeDestinationFolder(_:))
-        row.value = fileNameFolder
-        row.cellConfig["backgroundColor"] = NCBrandColor.sharedInstance.backgroundForm
-
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage(named: "folder")!, width: 50, height: 50, color: NCBrandColor.sharedInstance.brandElement) as UIImage
-        
-        row.cellConfig["textLabel.textAlignment"] = NSTextAlignment.right.rawValue
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textLabel.textColor"] = NCBrandColor.sharedInstance.textView
-
-        section.addFormRow(row)
-        
-        // Section: File Name
-        
-        section = XLFormSectionDescriptor.formSection(withTitle: NSLocalizedString("_filename_", comment: "").uppercased())
-        form.addFormSection(section)
-        
-        row = XLFormRowDescriptor(tag: "fileName", rowType: XLFormRowDescriptorTypeAccount, title: NSLocalizedString("_filename_", comment: ""))
-        row.value = fileName
-        row.cellConfig["backgroundColor"] = NCBrandColor.sharedInstance.backgroundForm
-        
-        row.cellConfig["textField.textAlignment"] = NSTextAlignment.right.rawValue
-        row.cellConfig["textField.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.textColor"] = NCBrandColor.sharedInstance.textView
-        
-        row.cellConfig["textLabel.textAlignment"] = NSTextAlignment.right.rawValue
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textLabel.textColor"] = NCBrandColor.sharedInstance.textView
-        
-        section.addFormRow(row)
-        
-        self.form = form
-    }
-
-    override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
-        let header: UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView
-        header.textLabel?.font = UIFont.systemFont(ofSize: 13.0)
-        header.textLabel?.textColor = .gray
-        header.tintColor = NCBrandColor.sharedInstance.backgroundForm
-    }
-
-    // MARK: - CollectionView
-    
-    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
-        return listOfTemplate.count
-    }
-    
-    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
-
-        let itemWidth: CGFloat = (collectionView.frame.width - (sectionInsets * 4) - CGFloat(numItems)) / CGFloat(numItems)
-        let itemHeight: CGFloat = itemWidth + highLabelName
-        
-        collectionViewHeigth.constant = itemHeight + sectionInsets
-        
-        return CGSize(width: itemWidth, height: itemHeight)
-    }
-    
-    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
-        
-        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)
-        
-        let template = listOfTemplate[indexPath.row]
-        
-        // image
-        let imagePreview = cell.viewWithTag(100) as! UIImageView
-        if template.preview != "" {
-            let fileNameLocalPath = CCUtility.getDirectoryUserData() + "/" + template.name + ".png"
-            if FileManager.default.fileExists(atPath: fileNameLocalPath) {
-                let imageURL = URL(fileURLWithPath: fileNameLocalPath)
-                if let image = UIImage(contentsOfFile: imageURL.path) {
-                    imagePreview.image = image
-                }
-            } else {
-                getImage(template: template, indexPath: indexPath)
-            }
-        }
-        
-        // name
-        let name = cell.viewWithTag(200) as! UILabel
-        name.text = template.name
-        name.textColor = NCBrandColor.sharedInstance.backgroundView
-        
-        // select
-        let imageSelect = cell.viewWithTag(300) as! UIImageView
-        if selectTemplate != nil && selectTemplate?.name == template.name {
-            cell.backgroundColor = NCBrandColor.sharedInstance.textView
-            imageSelect.image = UIImage(named: "plus100")
-            imageSelect.isHidden = false
-        } else {
-            cell.backgroundColor = NCBrandColor.sharedInstance.backgroundView
-            imageSelect.isHidden = true
-        }
-        
-        return cell
-    }
-    
-    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
-        
-        let template = listOfTemplate[indexPath.row]
-        
-        selectTemplate = template
-        fileNameExtension = template.extension
-        
-        collectionView.reloadData()
-    }
-    
-    // MARK: - Action
-    
-    func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String) {
-        
-        guard let serverUrl = serverUrl else {
-            return
-        }
-        
-        self.serverUrl = serverUrl
-        if serverUrl == CCUtility.getHomeServerUrlActiveUrl(appDelegate.activeUrl) {
-            fileNameFolder = "/"
-        } else {
-            fileNameFolder = (serverUrl as NSString).lastPathComponent
-        }
-        
-        let buttonDestinationFolder : XLFormRowDescriptor  = self.form.formRow(withTag: "ButtonDestinationFolder")!
-        buttonDestinationFolder.title = fileNameFolder
-        
-        self.tableView.reloadData()
-    }
-    
-    @objc func changeDestinationFolder(_ sender: XLFormRowDescriptor) {
-        
-        self.deselectFormRow(sender)
-        
-        let storyboard = UIStoryboard(name: "NCSelect", bundle: nil)
-        let navigationController = storyboard.instantiateInitialViewController() as! UINavigationController
-        let viewController = navigationController.topViewController as! NCSelect
-        
-        viewController.delegate = self
-        viewController.hideButtonCreateFolder = false
-        viewController.includeDirectoryE2EEncryption = false
-        viewController.includeImages = false
-        viewController.layoutViewSelect = k_layout_view_move
-        viewController.selectFile = false
-        viewController.titleButtonDone = NSLocalizedString("_select_", comment: "")
-        viewController.type = ""
-
-        navigationController.modalPresentationStyle = UIModalPresentationStyle.fullScreen
-        self.present(navigationController, animated: true, completion: nil)
-    }
-    
-    @objc func save() {
-        
-        guard let selectTemplate = self.selectTemplate else {
-            return
-        }
-        let rowFileName : XLFormRowDescriptor  = self.form.formRow(withTag: "fileName")!
-        guard let fileNameForm = rowFileName.value else {
-            return
-        }
-        if fileNameForm as! String == "" {
-            return
-        } else {
-            
-            fileName = (fileNameForm as! NSString).deletingPathExtension + "." + fileNameExtension
-            fileName = CCUtility.returnFileNamePath(fromFileName: fileName, serverUrl: serverUrl, activeUrl: appDelegate.activeUrl)
-        }
-        
-        OCNetworking.sharedManager().createNewRichdocuments(withAccount: appDelegate.activeAccount, fileName: fileName, serverUrl: serverUrl, templateID: "\(selectTemplate.templateID)", completion: { (account, url, message, errorCode) in
-            
-            if errorCode == 0 && account == self.appDelegate.activeAccount {
-                
-                if url != nil && url!.count > 0 {
-                    
-                    self.dismiss(animated: true, completion: {
-                        let metadata = CCUtility.createMetadata(withAccount: self.appDelegate.activeAccount, date: Date(), directory: false, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, fileName: (fileNameForm as! NSString).deletingPathExtension + "." + self.fileNameExtension, etag: "", size: 0, status: Double(k_metadataStatusNormal), url:url)
-                        
-                        self.appDelegate.activeMain.shouldPerformSegue(metadata, selector: "")
-                    })
-                }
-            } else if errorCode != 0 {
-                self.appDelegate.messageNotification("_error_", description: message, visible: true, delay: TimeInterval(k_dismissAfterSecond), type: TWMessageBarMessageType.error, errorCode: errorCode)
-            } else {
-                print("[LOG] It has been changed user during networking process, error.")
-            }
-        })
-    }
-    
-    @objc func cancel() {
-        
-        self.dismiss(animated: true, completion: nil)
-    }
-    
-    // MARK: NC API
-    
-    func getTemplate() {
-     
-        indicator.color = NCBrandColor.sharedInstance.brand
-        indicator.startAnimating()
-        
-         OCNetworking.sharedManager().getTemplatesRichdocuments(withAccount: appDelegate.activeAccount, typeTemplate: typeTemplate, completion: { (account, listOfTemplate, message, errorCode) in
-            
-            self.indicator.stopAnimating()
-
-            if errorCode == 0 && account == self.appDelegate.activeAccount {
-                
-                self.listOfTemplate = listOfTemplate as! [NCRichDocumentTemplate]
-                
-                // default: template empty
-                for template: NCRichDocumentTemplate in self.listOfTemplate {
-                    if template.preview == "" {
-                        self.selectTemplate = template
-                        self.fileNameExtension = template.extension
-                        self.navigationItem.rightBarButtonItem?.isEnabled = true
-                    }
-                }
-                
-                self.collectionView.reloadData()
-                
-            } else if errorCode != 0 {
-                self.appDelegate.messageNotification("_error_", description: message, visible: true, delay: TimeInterval(k_dismissAfterSecond), type: TWMessageBarMessageType.error, errorCode: errorCode)
-            } else {
-                print("[LOG] It has been changed user during networking process, error.")
-            }
-        })
-    }
-    
-    func getImage(template: NCRichDocumentTemplate, indexPath: IndexPath) {
-        
-        let fileNameLocalPath = CCUtility.getDirectoryUserData() + "/" + template.name + ".png"
-
-        OCNetworking.sharedManager().download(withAccount: appDelegate.activeAccount, url: template.preview, fileNameLocalPath: fileNameLocalPath, encode:true, completion: { (account, message, errorCode) in
-            
-            if errorCode == 0 && account == self.appDelegate.activeAccount {
-                self.collectionView.reloadItems(at: [indexPath])
-            } else if errorCode != 0 {
-                print("\(errorCode)")
-            } else {
-                print("[LOG] It has been changed user during networking process, error.")
-            }
-        })
-    }
-}