78 lines
2.5 KiB
JavaScript
78 lines
2.5 KiB
JavaScript
'use strict';
|
||
|
||
define(
|
||
[
|
||
'marionette',
|
||
'Settings/DownloadClient/SabView',
|
||
'Settings/DownloadClient/BlackholeView',
|
||
'Settings/DownloadClient/PneumaticView',
|
||
'Settings/DownloadClient/NzbgetView',
|
||
'Mixins/AsModelBoundView',
|
||
'Mixins/AutoComplete',
|
||
'bootstrap'
|
||
], function (Marionette, SabView, BlackholeView, PneumaticView, NzbgetView, AsModelBoundView) {
|
||
|
||
var view = Marionette.Layout.extend({
|
||
template : 'Settings/DownloadClient/LayoutTemplate',
|
||
|
||
regions: {
|
||
downloadClient: '#download-client-settings-region'
|
||
},
|
||
|
||
ui: {
|
||
downloadClientSelect: '.x-download-client',
|
||
downloadedEpisodesFolder: '.x-path'
|
||
},
|
||
|
||
events: {
|
||
'change .x-download-client': 'downloadClientChanged'
|
||
},
|
||
|
||
onShow: function () {
|
||
this.sabView = new SabView({ model: this.model});
|
||
this.blackholeView = new BlackholeView({ model: this.model});
|
||
this.pneumaticView = new PneumaticView({ model: this.model});
|
||
this.nzbgetView = new NzbgetView({ model: this.model});
|
||
|
||
this.ui.downloadedEpisodesFolder.autoComplete('/directories');
|
||
|
||
var client = this.model.get('downloadClient');
|
||
this.refreshUIVisibility(client);
|
||
},
|
||
|
||
downloadClientChanged: function () {
|
||
var clientId = this.ui.downloadClientSelect.val();
|
||
this.refreshUIVisibility(clientId);
|
||
},
|
||
|
||
refreshUIVisibility: function (clientId) {
|
||
|
||
if (!clientId) {
|
||
clientId = 'sabnzbd';
|
||
}
|
||
|
||
switch (clientId.toString()) {
|
||
case 'sabnzbd':
|
||
this.downloadClient.show(this.sabView);
|
||
break;
|
||
|
||
case 'blackhole':
|
||
this.downloadClient.show(this.blackholeView);
|
||
break;
|
||
|
||
case 'pneumatic':
|
||
this.downloadClient.show(this.pneumaticView);
|
||
break;
|
||
|
||
case 'nzbget':
|
||
this.downloadClient.show(this.nzbgetView);
|
||
break;
|
||
|
||
default :
|
||
throw 'unknown download client id' + clientId;
|
||
}
|
||
}
|
||
});
|
||
|
||
return AsModelBoundView.call(view);
|
||
}); |