Skip to content

Commit

Permalink
adding logic for deleting memories in database when user comes back o…
Browse files Browse the repository at this point in the history
…nline

relates to #138
  • Loading branch information
pbywater committed Jul 20, 2017
1 parent 93e6ddf commit cf68bad
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 10 deletions.
13 changes: 3 additions & 10 deletions src/client/d3/d3.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { initTagMenu, showDeleteButton, hoveringOnDelete, hideDeleteButton, initSubmitMemory, tagSorting, constructTagList, showHeading } = require('../helpers/helpers.js');
const { initTagMenu, showDeleteButton, hoveringOnDelete, hideDeleteButton, initSubmitMemory, tagSorting, constructTagList, showHeading, saveMemoryIdToStorage, removeMemoryFromStoredData } = require('../helpers/helpers.js');
const { width, height, jsonUrl, svg, fdGrp, nodeGrp, linkGrp } = require('./setup.js');
const { sortWithMax, binByTag, centralMaxNodesByTag, memoryNodesAndLinks } = require('../node_transformations');
const { appendPopUp, randomPopUp } = require('./modals.js');
Expand Down Expand Up @@ -221,15 +221,8 @@ function render(updatedData) {
render(formatData(data));
sim.restart();
} else {
const saveDeletedMemory = JSON.stringify({ toDelete: id });
localStorage.toDelete = saveDeletedMemory;
const offlineData = JSON.parse(localStorage.getItem('data'));
offlineData.forEach((memory, index) => {
if (memory.id == id) {
offlineData.splice(index, 1);
}
return offlineData;
});
saveMemoryIdToStorage(id);
const offlineData = removeMemoryFromStoredData(id);
render(formatData(offlineData));
sim.restart();
}
Expand Down
38 changes: 38 additions & 0 deletions src/client/helpers/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,42 @@ function constructTagList(data) {
</li>`);
}

function saveMemoryIdToStorage(id) {
if (localStorage.toDelete) {
const memoriesWaitingToBeRemoved = JSON.parse(localStorage.getItem("toDelete"));
memoriesWaitingToBeRemoved.toDelete.push(id);
const saveMemoriesToDelete = JSON.stringify(memoriesWaitingToBeRemoved);
localStorage.toDelete = saveMemoriesToDelete;
}
else {
const saveDeletedMemory = JSON.stringify({toDelete: [id]});
localStorage.toDelete = saveDeletedMemory;
}
}

function removeMemoryFromStoredData(id) {
const offlineData = JSON.parse(localStorage.getItem('data'));
offlineData.forEach((memory, index) => {
if (memory.id == id) {
offlineData.splice(index, 1);
}
});
return offlineData;
}

function removeMemoriesDeletedOffline() {
const deletedMemories = JSON.parse(localStorage.getItem('toDelete'));
deletedMemories.toDelete.forEach((memory) => {
console.log('memory id is ', memory.id);
$.ajax({
method: 'DELETE',
url: 'memories',
data: { memory.id },
success: () => update(url),
});
})
}

module.exports = {
getRandomInt,
initTagMenu,
Expand All @@ -228,4 +264,6 @@ module.exports = {
hideDeleteButton,
showHeading,
constructTagList,
saveMemoryIdToStorage,
removeMemoryFromStoredData,
};

0 comments on commit cf68bad

Please sign in to comment.