Merge pull request #10472 from zfox23/snapshot_fixSnapshotDeletion

Snapshots: Fix case when user story would be incorrectly deleted
This commit is contained in:
Zach Fox 2017-05-16 12:54:10 -07:00 committed by GitHub
commit e0dd047263
2 changed files with 29 additions and 10 deletions

View file

@ -359,7 +359,7 @@ function showUploadingMessage(selectedID, destination) {
shareBarHelp.classList.add("uploading");
shareBarHelp.setAttribute("data-destination", destination);
}
function hideUploadingMessageAndShare(selectedID, storyID) {
function hideUploadingMessageAndMaybeShare(selectedID, storyID) {
if (selectedID.id) {
selectedID = selectedID.id; // sometimes (?), `containerID` is passed as an HTML object to these functions; we just want the ID
}
@ -382,21 +382,28 @@ function hideUploadingMessageAndShare(selectedID, storyID) {
var facebookButton = document.getElementById(selectedID + "facebookButton");
window.open(facebookButton.getAttribute("href"), "_blank");
shareBarHelp.innerHTML = facebookShareText;
// This emitWebEvent() call isn't necessary in the "hifi" and "blast" cases
// because the "removeFromStoryIDsToMaybeDelete()" call happens
// in snapshot.js when sharing with that method.
EventBridge.emitWebEvent(JSON.stringify({
type: "snapshot",
action: "removeFromStoryIDsToMaybeDelete",
story_id: storyID
}));
break;
case 'twitter':
var twitterButton = document.getElementById(selectedID + "twitterButton");
window.open(twitterButton.getAttribute("href"), "_blank");
shareBarHelp.innerHTML = twitterShareText;
EventBridge.emitWebEvent(JSON.stringify({
type: "snapshot",
action: "removeFromStoryIDsToMaybeDelete",
story_id: storyID
}));
break;
}
shareBarHelp.setAttribute("data-destination", "");
EventBridge.emitWebEvent(JSON.stringify({
type: "snapshot",
action: "removeFromStoryIDsToMaybeDelete",
story_id: storyID
}));
}
}
function updateShareInfo(containerID, storyID) {
@ -417,7 +424,7 @@ function updateShareInfo(containerID, storyID) {
twitterButton.setAttribute("target", "_blank");
twitterButton.setAttribute("href", 'https://twitter.com/intent/tweet?text=I%20just%20took%20a%20snapshot!&url=' + shareURL + '&via=highfidelityinc&hashtags=VR,HiFi');
hideUploadingMessageAndShare(containerID, storyID);
hideUploadingMessageAndMaybeShare(containerID, storyID);
}
function blastToConnections(selectedID, isGif) {
if (selectedID.id) {
@ -552,6 +559,12 @@ function shareButtonClicked(destination, selectedID) {
if (!storyID) {
showUploadingMessage(selectedID, destination);
} else {
EventBridge.emitWebEvent(JSON.stringify({
type: "snapshot",
action: "removeFromStoryIDsToMaybeDelete",
story_id: storyID
}));
}
}

View file

@ -51,6 +51,11 @@ function openLoginWindow() {
}
}
function removeFromStoryIDsToMaybeDelete(story_id) {
storyIDsToMaybeDelete.splice(storyIDsToMaybeDelete.indexOf(story_id), 1);
print('storyIDsToMaybeDelete[] now:', JSON.stringify(storyIDsToMaybeDelete));
}
function onMessage(message) {
// Receives message from the html dialog via the qwebchannel EventBridge. This is complicated by the following:
// 1. Although we can send POJOs, we cannot receive a toplevel object. (Arrays of POJOs are fine, though.)
@ -191,6 +196,7 @@ function onMessage(message) {
return;
} else {
print("SUCCESS uploading announcement story! Story ID:", response.user_story.id);
removeFromStoryIDsToMaybeDelete(message.story_id); // Don't delete original "for_url" story
}
});
}
@ -230,13 +236,13 @@ function onMessage(message) {
return;
} else {
print("SUCCESS changing audience" + (message.isAnnouncement ? " and posting announcement!" : "!"));
removeFromStoryIDsToMaybeDelete(message.story_id);
}
});
}
break;
case 'removeFromStoryIDsToMaybeDelete':
storyIDsToMaybeDelete.splice(storyIDsToMaybeDelete.indexOf(message.story_id), 1);
print('storyIDsToMaybeDelete[] now:', JSON.stringify(storyIDsToMaybeDelete));
removeFromStoryIDsToMaybeDelete(message.story_id);
break;
default:
print('Unknown message action received by snapshot.js!');