'use strict'; define([ 'app', 'marionette', 'Mixins/AsModelBoundView', 'bootstrap' ], function (App, Marionette, AsModelBoundView) { var view = Marionette.ItemView.extend({ template : 'Settings/DownloadClient/DownloadClientTemplate', className: 'form-horizontal', ui: { bsSwitch : '.switch', tooltip : '.help-inline i', pathInput : '.x-path', sabConfig : '.x-sab-config', blackholeConfig : '.x-blackhole-config', pneumaticConfig : '.x-pneumatic-config', nzbGetConfig : '.x-nzbget-config', downloadClientSelect: '.x-download-client' }, events: { 'change .x-download-client': 'downloadClientChanged' }, onRender: function () { this.ui.tooltip.tooltip({ placement: 'right', html: true }); this.ui.pathInput.autoComplete('/directories'); this.refreshUIVisibility(this.model.get('downloadClient')); }, downloadClientChanged: function () { var clientId = this.ui.downloadClientSelect.val(); this.refreshUIVisibility(clientId); }, refreshUIVisibility: function (clientId) { if (!clientId) { clientId = "sabnzbd"; } switch (clientId.toString()) { case "sabnzbd": this.ui.sabConfig.show(); this.ui.blackholeConfig.hide(); this.ui.pneumaticConfig.hide(); this.ui.nzbGetConfig.hide(); break; case "blackhole": this.ui.sabConfig.hide(); this.ui.blackholeConfig.show(); this.ui.pneumaticConfig.hide(); this.ui.nzbGetConfig.hide(); break; case "pneumatic": this.ui.sabConfig.hide(); this.ui.blackholeConfig.hide(); this.ui.pneumaticConfig.show(); this.ui.nzbGetConfig.hide(); break; case "nzbget": this.ui.sabConfig.hide(); this.ui.blackholeConfig.hide(); this.ui.pneumaticConfig.hide(); this.ui.nzbGetConfig.show(); break; default : throw "unknown download client id" + clientId; } } }); return AsModelBoundView.call(view); });