Conflict resolution window

This commit is contained in:
Mo Bitar
2018-09-06 21:47:48 -05:00
parent fbf4458699
commit 97ef57ea27
5 changed files with 153 additions and 2 deletions

View File

@@ -319,6 +319,7 @@ class ComponentManager {
install-local-component
toggle-activate-component
request-permissions
present-conflict-resolution
*/
if(message.action === "stream-items") {
@@ -340,6 +341,8 @@ class ComponentManager {
this.handleRequestPermissionsMessage(component, message);
} else if(message.action === "install-local-component") {
this.handleInstallLocalComponentMessage(component, message);
} else if(message.action === "present-conflict-resolution") {
this.handlePresentConflictResolutionMessage(component, message);
}
// Notify observers
@@ -352,6 +355,7 @@ class ComponentManager {
}
}
removePrivatePropertiesFromResponseItems(responseItems, component, options = {}) {
if(component) {
// System extensions can bypass this step
@@ -365,7 +369,6 @@ class ComponentManager {
if(options.includeUrls) { privateProperties = privateProperties.concat(["url", "hosted_url", "local_url"])}
}
for(var responseItem of responseItems) {
// Do not pass in actual items here, otherwise that would be destructive.
// Instead, generic JS/JSON objects should be passed.
console.assert(typeof responseItem.setDirty !== 'function');
@@ -376,6 +379,15 @@ class ComponentManager {
}
}
handlePresentConflictResolutionMessage(component, message) {
console.log("handlePresentConflictResolutionMessage", message);
var ids = message.data.item_ids;
var items = this.modelManager.findItems(ids);
this.syncManager.presentConflictResolutionModal(items, () => {
this.replyToMessage(component, message, {});
});
}
handleStreamItemsMessage(component, message) {
var requiredPermissions = [
{