diff --git a/app/scripts/components/CollectiondialogComponent.js b/app/scripts/components/CollectiondialogComponent.js
index 68bb72cc307acba72a4cc8491faf663f0a283b49..a107aa9d20d1941cfd06afd13e7a9c77502500df 100644
--- a/app/scripts/components/CollectiondialogComponent.js
+++ b/app/scripts/components/CollectiondialogComponent.js
@@ -73,15 +73,18 @@ export default class CollectiondialogComponent extends BaseComponent {
     _handleCollectionsidebarSelect(event) {
         const switchviewComponent = this.contentRoot.querySelector('app-switchview');
         switch (event.detail.select) {
-            case 'installed':
+            case 'installed': {
                 switchviewComponent.switch('installed');
                 break;
-            case 'update':
+            }
+            case 'update': {
                 switchviewComponent.switch('update');
                 break;
-            case 'download':
+            }
+            case 'download': {
                 switchviewComponent.switch('download');
                 break;
+            }
         }
     }
 
diff --git a/app/scripts/components/CollectioninstalledComponent.js b/app/scripts/components/CollectioninstalledComponent.js
index 60de66cacb0361adb8b52332acdf9f135edf6dce..25d45b4efea5ebd9d442cff5f4ceb292a6617c28 100644
--- a/app/scripts/components/CollectioninstalledComponent.js
+++ b/app/scripts/components/CollectioninstalledComponent.js
@@ -89,7 +89,7 @@ export default class CollectioninstalledComponent extends BaseComponent {
                     const filePath = `${destination}/${file}`;
                     const fileUrl = `file://${filePath}`;
                     listItemSet += `
-                        <li>
+                        <li data-item-key="${key}">
                         <figure data-previewpic style="background-image: url('${previewpicUrl}');"></figure>
                         <div data-main>
                         <h4 data-name>${file}</h4>
@@ -124,21 +124,27 @@ export default class CollectioninstalledComponent extends BaseComponent {
         if (event.target.closest('app-button[data-action]')) {
             const target = event.target.closest('app-button[data-action]');
             switch (target.getAttribute('data-action')) {
-                case 'ocsManager_applyTheme':
+                case 'ocsManager_applyTheme': {
                     this._disposableIndicator(target);
                     this.dispatch('ocsManager_applyTheme', {
                         path: target.getAttribute('data-path'),
                         installType: target.getAttribute('data-install-type')
                     });
                     break;
-                case 'ocsManager_openUrl':
+                }
+                case 'ocsManager_openUrl': {
                     this._disposableIndicator(target);
                     this.dispatch('ocsManager_openUrl', {url: target.getAttribute('data-url')});
                     break;
-                case 'ocsManager_uninstall':
-                    this.dispatch('ocsManager_uninstall', {itemKey: target.getAttribute('data-item-key')});
-                    target.closest('li').remove();
+                }
+                case 'ocsManager_uninstall': {
+                    const itemKey = target.getAttribute('data-item-key');
+                    this.dispatch('ocsManager_uninstall', {itemKey: itemKey});
+                    for (const listItem of this.contentRoot.querySelectorAll(`li[data-item-key="${itemKey}"]`)) {
+                        listItem.remove();
+                    }
                     break;
+                }
             }
         }
     }
diff --git a/app/scripts/components/CollectionsidebarComponent.js b/app/scripts/components/CollectionsidebarComponent.js
index 7ad419911845761bac337743a273a19def7691da..2a694afc8a5b304f89812bfdac0d5ba8ae852c48 100644
--- a/app/scripts/components/CollectionsidebarComponent.js
+++ b/app/scripts/components/CollectionsidebarComponent.js
@@ -161,16 +161,19 @@ export default class CollectionsidebarComponent extends BaseComponent {
             target.setAttribute('data-selected', 'data-selected');
 
             switch (target.getAttribute('data-action')) {
-                case 'installed':
+                case 'installed': {
                     this.dispatch('ocsManager_installedItemsByType', {installType: target.getAttribute('data-install-type')});
                     this.dispatch('collectionsidebar_select', {select: 'installed'});
                     break;
-                case 'update':
+                }
+                case 'update': {
                     this.dispatch('collectionsidebar_select', {select: 'update'});
                     break;
-                case 'download':
+                }
+                case 'download': {
                     this.dispatch('collectionsidebar_select', {select: 'download'});
                     break;
+                }
             }
         }
     }
diff --git a/app/scripts/components/CollectionupdateComponent.js b/app/scripts/components/CollectionupdateComponent.js
index 80ba3f6b78157b4d21931565d4395c2bbcfdcf6d..dbd92be1d215dcf9db0b45900620d5c28e32e704 100644
--- a/app/scripts/components/CollectionupdateComponent.js
+++ b/app/scripts/components/CollectionupdateComponent.js
@@ -116,10 +116,11 @@ export default class CollectionupdateComponent extends BaseComponent {
         if (event.target.closest('app-button[data-action]')) {
             const target = event.target.closest('app-button[data-action]');
             switch (target.getAttribute('data-action')) {
-                case 'ocsManager_update':
+                case 'ocsManager_update': {
                     this.dispatch('ocsManager_update', {itemKey: target.getAttribute('data-item-key')});
                     target.setAttribute('data-state', 'inactive');
                     break;
+                }
             }
         }
     }
diff --git a/app/scripts/components/OmniboxComponent.js b/app/scripts/components/OmniboxComponent.js
index 94d8c4753f79183b73499c26f16c231a25985ba3..bf60be960c81a2396107501809e2029e7c9e327b 100644
--- a/app/scripts/components/OmniboxComponent.js
+++ b/app/scripts/components/OmniboxComponent.js
@@ -296,17 +296,20 @@ export default class OmniboxComponent extends BaseComponent {
         }
 
         switch (target.getAttribute('data-action')) {
-            case 'ocsManager_openUrl':
+            case 'ocsManager_openUrl': {
                 this.dispatch('ocsManager_openUrl', {url: target.getAttribute('data-url')});
                 break;
-            case 'webview_startPage':
+            }
+            case 'webview_startPage': {
                 this.dispatch('webview_startPage', {url: target.getAttribute('data-url')});
                 this.close();
                 break;
-            case 'ocsManager_collection':
+            }
+            case 'ocsManager_collection': {
                 this.dispatch('ocsManager_collection', {view: target.getAttribute('data-view')});
                 this.close();
                 break;
+            }
         }
     }
 
diff --git a/app/scripts/components/ToolbarComponent.js b/app/scripts/components/ToolbarComponent.js
index 5b99462777124f54e6ab379788b5d6c0c73011c1..73bc1fdb353da8c35aae318be1be0a1c3eaae2c3 100644
--- a/app/scripts/components/ToolbarComponent.js
+++ b/app/scripts/components/ToolbarComponent.js
@@ -150,35 +150,44 @@ export default class ToolbarComponent extends BaseComponent {
         }
 
         switch (target.getAttribute('data-action')) {
-            case 'webview_goBack':
+            case 'webview_goBack': {
                 this.dispatch('webview_goBack', {});
                 break;
-            case 'webview_goForward':
+            }
+            case 'webview_goForward': {
                 this.dispatch('webview_goForward', {});
                 break;
-            case 'webview_reload':
+            }
+            case 'webview_reload': {
                 this.dispatch('webview_reload', {});
                 break;
-            case 'webview_stop':
+            }
+            case 'webview_stop': {
                 this.dispatch('webview_stop', {});
                 break;
-            case 'webview_startPage':
+            }
+            case 'webview_startPage': {
                 this.dispatch('webview_startPage', {});
                 break;
-            case 'ocsManager_collection':
+            }
+            case 'ocsManager_collection': {
                 this.dispatch('ocsManager_collection', {});
                 break;
-            case 'menu_open':
+            }
+            case 'menu_open': {
                 this.contentRoot.querySelector('app-menu').open();
                 break;
-            case 'webview_appBugsPage':
+            }
+            case 'webview_appBugsPage': {
                 this.dispatch('webview_appBugsPage', {});
                 this.contentRoot.querySelector('app-menu').close();
                 break;
-            case 'general_about':
+            }
+            case 'general_about': {
                 this.dispatch('general_about', {});
                 this.contentRoot.querySelector('app-menu').close();
                 break;
+            }
         }
     }
 
diff --git a/package-lock.json b/package-lock.json
index e440f7dfc6ed93e24293f49ac4aebbd7a1d0d66e..c9808f02da56f6e4130ff5ea278a43eb8c4aed09 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,13 +1,13 @@
 {
   "name": "ocs-store",
-  "version": "4.0.1",
+  "version": "4.1.0",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
     "@types/node": {
-      "version": "10.14.1",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.1.tgz",
-      "integrity": "sha512-Rymt08vh1GaW4vYB6QP61/5m/CFLGnFZP++bJpWbiNxceNa6RBipDmb413jvtSf/R1gg5a/jQVl2jY4XVRscEA==",
+      "version": "10.14.4",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.4.tgz",
+      "integrity": "sha512-DT25xX/YgyPKiHFOpNuANIQIVvYEwCWXgK2jYYwqgaMrYE6+tq+DtmMwlD3drl6DJbUwtlIDnn0d7tIn/EbXBg==",
       "dev": true
     },
     "ajv": {
@@ -342,9 +342,9 @@
       }
     },
     "electron": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/electron/-/electron-4.1.0.tgz",
-      "integrity": "sha512-q/yTi9dT5UEFK/s+vOQaHNkTHWiRK9kEBYVJt34nmWc9piW42hXT+nhKUEHHhccMPr3q18gG0iPZqeR+LG76ow==",
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/electron/-/electron-4.1.2.tgz",
+      "integrity": "sha512-QWz298CaH2jLyFVje01sj4fSEdXJj+oKVw2jNUovrhZE5jmFE4cr/KqZ7iHX00DG6AwmDF4W1Xrv0V+aQOkieQ==",
       "dev": true,
       "requires": {
         "@types/node": "^10.12.18",
@@ -508,9 +508,9 @@
       }
     },
     "esm": {
-      "version": "3.2.18",
-      "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.18.tgz",
-      "integrity": "sha512-1UENjnnI37UDp7KuOqKYjfqdaMim06eBWnDv37smaxTIzDl0ZWnlgoXwsVwD9+Lidw+q/f1gUf2diVMDCycoVw=="
+      "version": "3.2.22",
+      "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.22.tgz",
+      "integrity": "sha512-z8YG7U44L82j1XrdEJcqZOLUnjxco8pO453gKOlaMD1/md1n/5QrscAmYG+oKUspsmDLuBFZrpbxI6aQ67yRxA=="
     },
     "extend": {
       "version": "3.0.2",
@@ -1442,9 +1442,9 @@
       }
     },
     "semver": {
-      "version": "5.6.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
-      "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+      "version": "5.7.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+      "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
       "dev": true
     },
     "signal-exit": {
diff --git a/package.json b/package.json
index 270066808331f50cf95a763c81826322db30d123..66e6af9705655c4e9e12233d4475551eb4385008 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
   "name": "ocs-store",
   "productName": "OCS-Store",
-  "version": "4.0.1",
+  "version": "4.1.0",
   "description": "Store Frontend and Management Application based on OpenCollaborationServices (OCS) of Opendesktop.org.",
   "author": "Opendesktop.org",
   "license": "GPL-3.0",
diff --git a/pkg/appimage/appimagebuild b/pkg/appimage/appimagebuild
index 233ff46779b150b9f830f4072838c34faf8311f3..f720b1e1464cb2c8a4961268739f30071790ff60 100755
--- a/pkg/appimage/appimagebuild
+++ b/pkg/appimage/appimagebuild
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 PKGNAME='ocs-store'
-PKGVER='4.0.1'
+PKGVER='4.1.0'
 PKGREL='1'
 
 UPDINFO='zsync|http://dl.opendesktop.org/api/files/download/id/1532435039/as/latest/ocs-store-x86_64.AppImage.zsync'
@@ -19,7 +19,7 @@ install -D -m 755 /usr/lib/x86_64-linux-gnu/libXss.so.1 ${APPDIR}/usr/lib/ocs-st
 install -D -m 755 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libcanberra-gtk-module.so ${APPDIR}/usr/lib/ocs-store-linux-x64/libcanberra-gtk-module.so
 install -D -m 755 /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0 ${APPDIR}/usr/lib/ocs-store-linux-x64/libgnome-keyring.so.0
 
-curl -fsSL -o ocs-manager https://git.opendesktop.org/akiraohgaki/ocs-manager/uploads/ebf99a67dcd30bc57cfa371cac1f959e/ocs-manager-0.7.2-1-x86_64.AppImage
+curl -fsSL -o ocs-manager https://git.opendesktop.org/akiraohgaki/ocs-manager/uploads/582f867384808030447c08ff6ed79e6d/ocs-manager-0.8.0-1-x86_64.AppImage
 install -D -m 755 ocs-manager ${APPDIR}/usr/bin/ocs-manager
 
 curl -fsSL -o appimagetool https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage