plugin install progress button

This commit is contained in:
antelle 2017-05-13 22:53:45 +02:00
parent f602f64c66
commit 14755294b2
2 changed files with 25 additions and 8 deletions

View File

@ -42,16 +42,20 @@ const SettingsPluginsView = Backbone.View.extend({
lastInstallError: lastInstall.error,
galleryLoading: PluginGallery.loading,
galleryLoadError: PluginGallery.loadError,
gallery: this.getGallery()
galleryPlugins: this.getGalleryPlugins()
});
return this;
},
getGallery() {
getGalleryPlugins() {
if (!PluginGallery.gallery) {
return null;
}
return PluginGallery.gallery;
const plugins = PluginManager.get('plugins');
return PluginGallery.gallery.plugins
.map(pl => pl)
.filter(pl => !plugins.get(pl.manifest.name))
.sort((x, y) => x.manifest.name.localeCompare(y.manifest.name));
},
installClick() {
@ -114,9 +118,15 @@ const SettingsPluginsView = Backbone.View.extend({
},
galleryInstallClick(e) {
const pluginId = $(e.target).data('plugin');
const installBtn = $(e.target);
const pluginId = installBtn.data('plugin');
const plugin = PluginGallery.gallery.plugins.find(pl => pl.manifest.name === pluginId);
PluginManager.install(plugin.url, plugin.manifest);
installBtn.text(Locale.setPlInstallBtnProgress + '...').prop('disabled', true);
PluginManager.install(plugin.url, plugin.manifest)
.catch(() => { })
.then(() => {
installBtn.prop('disabled', true);
});
}
});

View File

@ -49,9 +49,9 @@
<div class="settings__plugins-install">
<div>{{res 'setPlInstallDesc'}}</div>
{{#if galleryLoadError}}<div class="error-color">{{res 'setPlGalleryLoadError'}}</div>{{/if}}
{{#if gallery}}
{{#if galleryPlugins}}
<div class="settings__plugins-gallery">
{{#each gallery.plugins as |plugin|}}
{{#each galleryPlugins as |plugin|}}
<div class="settings__plugins-gallery-plugin">
<h3 class="settings__plugins-gallery-plugin-title">{{plugin.manifest.name}}</h3>
<div class="settings__plugins-gallery-plugin-desc">{{plugin.manifest.description}}</div>
@ -69,7 +69,14 @@
</div>
<button class="settings__plugins-gallery-plugin-install-btn"
data-plugin="{{plugin.manifest.name}}"
>{{res 'setPlInstallBtn'}}</button>
{{#ifeq ../lastInstallUrl plugin.url}}disabled{{/ifeq}}
>
{{#ifeq ../lastInstallUrl plugin.url}}
{{res 'setPlInstallBtnProgress'}}...
{{else}}
{{res 'setPlInstallBtn'}}
{{/ifeq}}
</button>
</div>
{{/each}}
</div>