Skip to content

Commit 6313e2f

Browse files
committed
show 'Open Original' for share links
1 parent b9811da commit 6313e2f

File tree

4 files changed

+26
-0
lines changed

4 files changed

+26
-0
lines changed

src/web/css/editor.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1925,3 +1925,6 @@ button.controller {
19251925
margin: auto;
19261926
display: block;
19271927
}
1928+
.hidden {
1929+
display: none
1930+
}

src/web/editor.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
<div id="filemenuContents" class="menuContents" style="display: none; z-index: 8990;">
6565
<div id="new" class="menuButton"><a href="javascript:void(0)">New</a></div>
6666
<div id="open" class="menuButton"><a href="javascript:void(0)">Open</a></div>
67+
<div id="open-original" class="menuButton disabled hidden"><a href="javascript:void(0)">Open Original</a></div>
6768
<div id="save" class="menuButton disabled"><a href="javascript:void(0)">Save</a></div>
6869
<div id="saveas" class="menuButton"><a href="javascript:void(0)">Save a copy</a></div>
6970
<div id="download" class="menuButton"><a href="javascript:void(0)">Download</a></div>

src/web/js/beforePyret.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,20 @@ $(function() {
290290
id: params["get"]["share"]
291291
});
292292
programLoad = api.getSharedFileById(params["get"]["share"]);
293+
programLoad.then(function(file) {
294+
// NOTE(joe): If the current user doesn't own or have access to this file
295+
// (or isn't logged in) this will simply fail with a 401, so we don't do
296+
// any further permission checking before showing the link.
297+
file.getOriginal().then(function(response) {
298+
console.log("Response for original: ", response);
299+
var original = $("#open-original").show().off("click");
300+
var id = response.result.value;
301+
original.removeClass("disabled");
302+
original.click(function() {
303+
window.open(window.APP_BASE_URL + "/editor#program=" + id, "_blank");
304+
});
305+
});
306+
});
293307
}
294308
if(programLoad) {
295309
programLoad.fail(function(err) {

src/web/js/google-apis/drive.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@ window.createProgramCollectionAPI = function createProgramCollectionAPI(collecti
1515
function makeSharedFile(googFileObject, fetchFromGoogle) {
1616
return {
1717
shared: true,
18+
getOriginal: function() {
19+
var request = gapi.client.drive.properties.get({
20+
'fileId': googFileObject.id,
21+
'propertyKey': BACKREF_KEY,
22+
'visibility': 'PRIVATE'
23+
});
24+
return request;
25+
},
1826
getContents: function() {
1927
if(fetchFromGoogle) {
2028
// NOTE(joe): See https://developers.google.com/drive/v2/web/manage-downloads

0 commit comments

Comments
 (0)