Skip to content

Commit 27e7311

Browse files
committed
gdrive experiments
1 parent 7709c44 commit 27e7311

File tree

3 files changed

+53
-5
lines changed

3 files changed

+53
-5
lines changed

my-mind.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -3128,9 +3128,14 @@ MM.Backend.GDrive._pick = function() {
31283128
var promise = new Promise();
31293129

31303130
var token = gapi.auth.getToken();
3131+
var formats = MM.Format.getAll();
3132+
var mimeTypes = ["application/json; charset=UTF-8", "application/json"];
3133+
formats.forEach(function(format) {
3134+
if (format.mime) { mimeTypes.unshift(format.mime); }
3135+
});
31313136

31323137
var view = new google.picker.DocsView(google.picker.ViewId.DOCS)
3133-
// .setMimeTypes("application/json") FIXME
3138+
.setMimeTypes(mimeTypes.join(","))
31343139
.setMode(google.picker.DocsViewMode.LIST);
31353140

31363141
var picker = new google.picker.PickerBuilder()

src/backend.gdrive.js

+38-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ MM.Backend.GDrive.reset = function() {
1313
}
1414

1515
MM.Backend.GDrive.save = function(data, name, mime) {
16-
console.log(data, name, mime);
1716
return this._connect().then(
1817
function() {
1918
return this._send(data, name, mime);
@@ -22,6 +21,38 @@ MM.Backend.GDrive.save = function(data, name, mime) {
2221
}
2322

2423
MM.Backend.GDrive._send = function(data, name, mime) {
24+
/*
25+
var googleId = toGoogleFileId(mapId),
26+
deferred = jQuery.Deferred(),
27+
boundary = '-------314159265358979323846',
28+
delimiter = '\r\n--' + boundary + '\r\n',
29+
closeDelim = '\r\n--' + boundary + '--',
30+
contentType = paramContentType || defaultContentType,
31+
metadata = {
32+
'title': fileName,
33+
'mimeType': contentType
34+
},
35+
multipartRequestBody =
36+
delimiter +
37+
'Content-Type: application/json\r\n\r\n' +
38+
JSON.stringify(metadata) +
39+
delimiter +
40+
'Content-Type: ' + contentType + '\r\n' +
41+
'\r\n' +
42+
contentToSave +
43+
closeDelim,
44+
request = gapi.client.request({
45+
'path': '/upload/drive/v2/files' + (googleId ? '/' + googleId : ''),
46+
'method': (googleId ? 'PUT' : 'POST'),
47+
'params': {'uploadType': 'multipart', 'useContentAsIndexableText': (contentToSave.length < 131072)},
48+
'headers': {
49+
'Content-Type': 'multipart/mixed; boundary=\'' + boundary + '\''
50+
},
51+
'body': multipartRequestBody
52+
});
53+
54+
*/
55+
2556
var promise = new Promise();
2657
var path = "/upload/drive/v2/files";
2758
var method = "POST";
@@ -127,9 +158,14 @@ MM.Backend.GDrive._pick = function() {
127158
var promise = new Promise();
128159

129160
var token = gapi.auth.getToken();
161+
var formats = MM.Format.getAll();
162+
var mimeTypes = ["application/json; charset=UTF-8", "application/json"];
163+
formats.forEach(function(format) {
164+
if (format.mime) { mimeTypes.unshift(format.mime); }
165+
});
130166

131167
var view = new google.picker.DocsView(google.picker.ViewId.DOCS)
132-
// .setMimeTypes("application/json") FIXME
168+
.setMimeTypes(mimeTypes.join(","))
133169
.setMode(google.picker.DocsViewMode.LIST);
134170

135171
var picker = new google.picker.PickerBuilder()

src/ui.backend.gdrive.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,16 @@ MM.UI.Backend.GDrive.save = function() {
1919
var format = MM.Format.getById(this._format.value);
2020
var json = MM.App.map.toJSON();
2121
var data = format.to(json);
22-
var name = MM.App.map.getName() + "." + format.extension;
22+
var name = MM.App.map.getName();
23+
var mime = "text/plain";
2324

24-
this._backend.save(data, name, format.mime).then(
25+
if (format.mime) {
26+
mime = format.mime;
27+
} else {
28+
name += "." + format.extension;
29+
}
30+
31+
this._backend.save(data, name, mime).then(
2532
this._saveDone.bind(this),
2633
this._error.bind(this)
2734
);

0 commit comments

Comments
 (0)