为动态创建的Google表单设置云端硬盘文件夹位置

时间:2016-10-12 03:01:31

标签: javascript google-apps-script

我有一个我一直在构建的应用程序,它会根据其他Google表单的响应以及日历上的活动发送Google表单。

我遇到的问题是如此简单和令人沮丧:创建的表单会直接放入我的主“我的驱动器”中。

我真的需要将所有这些表格存放在除主驱动器之外的其他地方,而我在任何地方都找不到任何东西。

再次: 我遇到了一些复制和删除文件(你实际上无法移动)进入不同文件夹的例子。一直无法使其工作,也怀疑这是否有效,因为它与响应表单相关联。

没有代码示例,因为我没有发现任何接近的内容。请帮忙!

1 个答案:

答案 0 :(得分:2)

答案:将文件对象添加到目标文件夹,然后删除原始作品。它允许附加到表单的目标电子表格仍然接收回复。

以下是我用来完成此操作的代码:

class ViewController: UIViewController {

var filterBarHeightLC : NSLayoutConstraint?

lazy var tableView : UITableView = {
    let tv = UITableView()
    tv.register(UITableViewCell.self, forCellReuseIdentifier: "cellId")
    tv.layoutMargins = UIEdgeInsets.zero
    tv.separatorInset = UIEdgeInsets.zero
    tv.backgroundColor = .red
    tv.translatesAutoresizingMaskIntoConstraints = false
    return tv
}()

lazy var filterBar : UIView = {
    let bar = UIView()
    bar.backgroundColor = .blue
    bar.translatesAutoresizingMaskIntoConstraints = false
    return bar
}()

fileprivate lazy var filterButton : UIButton = {
    let button = UIButton()
    button.setTitleColor(UIColor.white, for: UIControlState())
    button.setTitle("Filter", for: UIControlState())
    button.contentHorizontalAlignment = UIControlContentHorizontalAlignment.left
    button.translatesAutoresizingMaskIntoConstraints = false
    return button
}()

fileprivate lazy var searchController: UISearchController = {
    let sc = UISearchController(searchResultsController:  nil)
    sc.dimsBackgroundDuringPresentation = false
    sc.hidesNavigationBarDuringPresentation = false
    sc.searchResultsUpdater = self
    sc.delegate = self
    sc.view.tintColor = UIColor.white
    sc.searchBar.tintColor = UIColor.white
    sc.searchBar.delegate = self
    return sc
}()

func setupNavBarButtons() {
    let searchBarButtonItem = UIBarButtonItem(title: "Search", style: .plain, target: self, action: #selector(handleSearch))
    navigationItem.rightBarButtonItem = searchBarButtonItem
    setupFilterButton()
}

func setupFilterButton() {
    let containerView = UIView()
    containerView.frame = CGRect(x: 0, y: 0, width: 100, height: 40)
    containerView.addSubview(filterButton)
    filterButton.leftAnchor.constraint(equalTo: containerView.leftAnchor).isActive = true
    filterButton.centerYAnchor.constraint(equalTo: containerView.centerYAnchor).isActive = true
    let filterBarButtonItem = UIBarButtonItem(customView: containerView)
    navigationItem.leftBarButtonItem = filterBarButtonItem
}

override func viewDidLoad() {
    super.viewDidLoad()
    setupViews()
    setupNavBarButtons()
    view.backgroundColor = .white
}

func handleSearch() {
    searchController.searchBar.isHidden = false
    navigationItem.titleView = searchController.searchBar
    searchController.searchBar.becomeFirstResponder()
    navigationItem.rightBarButtonItems = nil
    navigationItem.leftBarButtonItems = nil

    // changed!
    filterBarHeightLC?.constant = 0
}

func setupViews() {
    view.addSubview(filterBar)
    view.addSubview(tableView)

    tableView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    tableView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
    tableView.topAnchor.constraint(equalTo: filterBar.bottomAnchor).isActive = true
    tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true

    filterBar.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    filterBar.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
    filterBar.topAnchor.constraint(equalTo: view.topAnchor, constant: 64).isActive = true

    // changed!
    filterBarHeightLC = filterBar.heightAnchor.constraint(equalToConstant: 40)
    filterBarHeightLC?.isActive = true
}

extension ViewController: UISearchControllerDelegate, UISearchResultsUpdating, UISearchBarDelegate {

func filteredContentForSearchText(_ searchText: String, scope: String = "All") {
    tableView.reloadData()
}

func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
    setupNavBarButtons()
    searchController.searchBar.isHidden = true

    // changed!
    filterBarHeightLC?.constant = 40
}

func updateSearchResults(for searchController: UISearchController) {
    filteredContentForSearchText(searchController.searchBar.text!)
}