· 7 years ago · Aug 11, 2018, 11:32 AM
1/*
2 Fetch the oAuthToken
3 */
4
5 function getOAuthToken() {
6
7DriveApp.getRootFolder()
8Logger.log(ScriptApp.getOAuthToken())
9return ScriptApp.getOAuthToken();
10
11}
12
13
14function doGet(){
15return HtmlService.createTemplateFromFile('drivePicker')
16 .evaluate()
17 .setTitle('Upload Files')
18 .setSandboxMode(HtmlService.SandboxMode.IFRAME);
19}
20
21function createFolder(form) {
22
23
24 var nameBox = form.subfolder;
25 var d = new Date();
26 var time = d.toLocaleTimeString()
27 var curr_date = d.getDate();
28 var curr_month = d.getMonth() + 1 ;
29 var curr_year = d.getFullYear();
30 var tDate = curr_year + "/" + curr_month + "/" + curr_date + " - " + time;
31
32 var dest = DriveApp.getFolderById("main Folder ID").createFolder(nameBox+" "+tDate);
33 var destID = dest.getId();
34
35
36 var ss = SpreadsheetApp.openById('SS ID');
37 var sheet = ss.getSheetByName("Name");
38 sheet.getRange(1,1).setValue(destID);
39
40}
41
42<!DOCTYPE html>
43 <html>
44 <head>
45 <meta charset="utf-8">
46 <link rel="stylesheet"
47 href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
48 <script
49 src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
50 </script>
51 <style>
52 #attachmentTable{
53 background: white;
54 }
55 tr th,tr td{
56 text-align:center;
57 }
58 </style>
59 </head>
60 <body
61 style='font-family: cursive;'>
62 <div align="center">
63 <h1>Please upload the files</h1>
64 <p><img src="http://www.free-icons-download.net/images/upload-logo-icon-
65 68584.png" style="width:500px;height:500px;transform:rotate(0deg);margin-
66 top:50px"></p>
67 <BR>
68
69 <form>
70 <input type="text" name="subfolder" id="subfolder" placeholder="Your name..">
71 </form>
72 <center><button onclick='formSubmit();getOAuthToken()' style="margin-
73 top:150px;outline:0;" class="btn btn-success">Upload File(s)</button>
74 </center>
75 <div class='table-responsive' style="display:none;" id="attachmentTableDiv">
76 <table id="attachmentTable" class="table table-bordered"
77 style="width:900px;margin:20px auto;float:none;">
78 <thead>
79 <tr style="background:#f1f1f1;">
80 <th>Title</th>
81 <th>ID</th>
82 <th>URL</th>
83 <th>Date Created</th>
84 </tr>
85 </thead>
86 <tbody>
87
88 </tbody>
89 </table>
90 </div>
91 </div>
92 <script type="text/javascript">
93 function formSubmit() {
94 google.script.run.withSuccessHandler().createFolder(document.forms[0]);
95 }
96 </script>
97 <script>
98 var DEVELOPER_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxx';
99 var pickerApiLoaded = false;
100
101 /**
102 * Loads the Google Picker API.
103 */
104 function onApiLoad() {
105 gapi.load('picker', {'callback': function() {
106 pickerApiLoaded = true;
107 }});
108 }
109
110
111 function getOAuthToken() {
112
113 google.script.run.withSuccessHandler(createPicker).getOAuthToken();
114 }
115
116 function createPicker(token) {
117 if (pickerApiLoaded && token) {
118
119 var uploadview = new google.picker.DocsUploadView().setParent('NEW FOLDER ID'); //How to set the ID from the SS cell A1 ?????
120 var picker = new google.picker.PickerBuilder()
121 .addView(uploadview)
122 //.addView(all)
123 .hideTitleBar()
124 //.setLocale('nl') //--Regional language settings
125 //.enableFeature(google.picker.Feature.NAV_HIDDEN)
126 .setOAuthToken(token)
127 .setSize(536, 350)
128 .setDeveloperKey(DEVELOPER_KEY)
129 .setCallback(pickerCallback)
130 .setOrigin(google.script.host.origin)
131 .enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
132 .build();
133 picker.setVisible(true);
134 } else {
135 showError('Unable to load the file picker.');
136 }
137 }
138
139 /**
140 * A callback function that extracts the chosen document's metadata from the response object.
141 */
142 function pickerCallback(data) {
143 var action = data[google.picker.Response.ACTION];
144 if (action == google.picker.Action.PICKED) {
145 for(var i in data[google.picker.Response.DOCUMENTS]){
146 var doc = data[google.picker.Response.DOCUMENTS][i];
147 var id = doc[google.picker.Document.ID];
148 var url = doc[google.picker.Document.URL];
149 var title = doc[google.picker.Document.NAME];
150 var dateCreated = doc[google.picker.Document.LAST_EDITED_UTC];
151 var date = new Date(dateCreated);
152 date=date.toLocaleString();
153 $('#attachmentTable tbody').append("<tr><td>"+title+"</td><td>"+id+"</td><td><a href='"+url+"' target='_blank'>Link</a></td><td>"+date+"</td></tr>");
154 $('#attachmentTableDiv').show();
155 }
156 }
157}
158 </script>
159 <script type="text/javascript" src="https://www.google.com/jsapi"></script>
160 <script>google.load("picker", "1",{callback:function(){pickerApiLoaded
161 =!0}});</script>
162 </body>
163 </html>