2017-09-29 110 views
1

我有一個可視化表,它在select上有一個事件監聽器。傳遞多個值

需要:我希望用戶能夠在谷歌驅動器上刪除文檔,而不必離開網頁

的設置:我添加了一個按鈕,這樣可以在點擊的時候,我得到一個包含該值的確認警報框。一旦我點擊OK,它就會通過事件處理程序從客戶端運行腳本。這完美的作品!

問題:我可以一次移動一個文件,但如果我需要移動20+文件它變得非常繁瑣的點擊行一個接一個。是否有可能將多個值傳遞給成功處理程序?

google.visualization.events.addListener(archiveChart.getChart(), 'select', function() {   

     $("#docArchive").on("click", function() { 

      var selection = archiveChart.getChart().getSelection(); 
      var dt = archiveChart.getDataTable();     
      if (selection.length > 0) { 
       var item = selection[0]; 
       var docurl = dt.getValue(item.row, 2); 
       var docname = dt.getValue(item.row, 1); 
       var folder = dt.getValue(item.row, 4); 

      if(confirm("Are you sure you want to archive " + docname + "?") == true) { 
        archiveChart.getChart().setSelection([]); 
       return google.script.run.withSuccessHandler(onSuccessArchive).withFailureHandler(function(err) { 
        alert(err); 
        }).archiveDoc(docurl,folder); 
       } else { 
        archiveChart.getChart().setSelection([]); 
       } 
      }}); 
     }) 

我覺得我可能需要補充一點:

for (var i = 0; i < selection.length; i++) { 
       var item = selection[i]; 

我掙扎有點與理解什麼我可能需要更改(仍在學習)。任何幫助或指導表示讚賞!

+0

表圖表也支持多種選擇,應該沒事添加for循環按照你的建議。 .. – WhiteHat

+0

所以當我添加循環時,仍然只有一個文檔名稱在警告框中。如果我點擊取消,警告框會要求我提供每個選擇,但如果單擊確定,它只執行一個文檔的腳本。 – Niya

回答

0

建議確認一次,所有文件

然後循環選擇歸檔的每個文件

google.visualization.events.addListener(archiveChart.getChart(), 'select', function() { 
    $("#docArchive").on("click", function() { 
    var selection = archiveChart.getChart().getSelection(); 
    var dt = archiveChart.getDataTable(); 
    var docNames = selection.map(function (item) { 
     return dt.getValue(item.row, 1); 
    }).join('\n'); 
    if (selection.length > 0) { 
     if(confirm("Are you sure you want to archive the following document(s)?\n" + docNames) == true) { 
     for (var i = 0; i < selection.length; i++) { 
      var item = selection[i]; 
      var docurl = dt.getValue(item.row, 2); 
      var docname = dt.getValue(item.row, 1); 
      var folder = dt.getValue(item.row, 4); 

      return google.script.run.withSuccessHandler(onSuccessArchive).withFailureHandler(function(err) { 
      alert(err); 
      }).archiveDoc(docurl, folder); 
     } 
     } 
     archiveChart.getChart().setSelection([]); 
    } 
    }); 
}); 
+0

這樣做!我現在可以看到警告框中的所有選擇。我現在只需要調整移動文件的腳本,以便移動所有文件而不是第一個選擇。非常感謝! – Niya