mirror of
https://github.com/chinchang/web-maker.git
synced 2025-05-08 19:45:17 +02:00
port merge items code to new db
This commit is contained in:
parent
97097f16c3
commit
71141ec934
@ -1431,10 +1431,56 @@ globalConsoleContainerEl, externalLibrarySearchInput, keyboardShortcutsModal
|
||||
e.preventDefault();
|
||||
};
|
||||
|
||||
/**
|
||||
* Saves the passed items in the database.
|
||||
* @param {Array} items to be saved in DB
|
||||
*/
|
||||
function saveItemsToBeMerged(items) {
|
||||
var d = deferred();
|
||||
if (window.IS_EXTENSION) {
|
||||
// save new items
|
||||
db.local.set(items, d.resolve);
|
||||
// Push in new item IDs
|
||||
db.local.get(
|
||||
{
|
||||
items: {}
|
||||
},
|
||||
function(result) {
|
||||
/* eslint-disable guard-for-in */
|
||||
for (var id in items) {
|
||||
result.items[id] = true;
|
||||
}
|
||||
db.local.set({
|
||||
items: result.items
|
||||
});
|
||||
/* eslint-enable guard-for-in */
|
||||
}
|
||||
);
|
||||
} else {
|
||||
window.db.getDb().then(remoteDb => {
|
||||
const batch = remoteDb.batch();
|
||||
/* eslint-disable guard-for-in */
|
||||
for (var id in items) {
|
||||
batch.set(remoteDb.doc(`items/${id}`), items[id]);
|
||||
batch.update(remoteDb.doc(`users/${window.user.uid}`), {
|
||||
[`items.${id}`]: true
|
||||
});
|
||||
// Set these items on out cached user object too
|
||||
window.user.items[id] = true;
|
||||
}
|
||||
batch.commit().then(d.resolve);
|
||||
/* eslint-enable guard-for-in */
|
||||
});
|
||||
}
|
||||
return d.promise;
|
||||
}
|
||||
function mergeImportedItems(items) {
|
||||
var existingItemIds = [];
|
||||
var toMergeItems = {};
|
||||
items.forEach(item => {
|
||||
// We can access `savedItems` here because this gets set when user
|
||||
// opens the saved creations panel. And import option is available
|
||||
// inside the saved items panel.
|
||||
if (savedItems[item.id]) {
|
||||
// Item already exists
|
||||
existingItemIds.push(item.id);
|
||||
@ -1458,31 +1504,12 @@ globalConsoleContainerEl, externalLibrarySearchInput, keyboardShortcutsModal
|
||||
}
|
||||
}
|
||||
if (mergedItemCount) {
|
||||
// save new items
|
||||
db.local.set(toMergeItems, function() {
|
||||
saveItemsToBeMerged(toMergeItems).then(() => {
|
||||
alertsService.add(
|
||||
mergedItemCount + ' creations imported successfully.'
|
||||
);
|
||||
trackEvent('fn', 'itemsImported', mergedItemCount);
|
||||
});
|
||||
// Push in new item IDs
|
||||
db.local.get(
|
||||
{
|
||||
items: {}
|
||||
},
|
||||
function(result) {
|
||||
/* eslint-disable guard-for-in */
|
||||
for (var id in toMergeItems) {
|
||||
result.items[id] = true;
|
||||
}
|
||||
db.local.set({
|
||||
items: result.items
|
||||
});
|
||||
trackEvent('fn', 'itemsImported', mergedItemCount);
|
||||
|
||||
/* eslint-enable guard-for-in */
|
||||
}
|
||||
);
|
||||
alertsService.add(mergedItemCount + ' creations imported successfully.');
|
||||
}
|
||||
// FIXME: Move from here
|
||||
toggleSavedItemsPane(false);
|
||||
@ -1501,7 +1528,8 @@ globalConsoleContainerEl, externalLibrarySearchInput, keyboardShortcutsModal
|
||||
items = JSON.parse(progressEvent.target.result);
|
||||
utils.log(items);
|
||||
mergeImportedItems(items);
|
||||
} catch (ex) {
|
||||
} catch (exception) {
|
||||
utils.log(exception);
|
||||
alert(
|
||||
'Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.'
|
||||
);
|
||||
@ -2439,22 +2467,8 @@ globalConsoleContainerEl, externalLibrarySearchInput, keyboardShortcutsModal
|
||||
function() {}
|
||||
);
|
||||
// set some initial preferences on closing the onboard modal
|
||||
utils.once(document, 'overlaysClosed', function() {
|
||||
db.sync.set(
|
||||
{
|
||||
replaceNewTab: onboardShowInTabOptionBtn.classList.contains(
|
||||
'selected'
|
||||
)
|
||||
},
|
||||
function() {
|
||||
trackEvent(
|
||||
'fn',
|
||||
'setReplaceNewTabFromOnboard',
|
||||
onboardShowInTabOptionBtn.classList.contains('selected')
|
||||
);
|
||||
}
|
||||
);
|
||||
});
|
||||
// Old onboarding.
|
||||
// utils.once(document, 'overlaysClosed', function() {});
|
||||
}
|
||||
if (
|
||||
!result.lastSeenVersion ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user