You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
3.5 KiB
137 lines
3.5 KiB
var vent = require('../../vent');
|
|
var Marionette = require('marionette');
|
|
var CommandController = require('../../Commands/CommandController');
|
|
var AsModelBoundView = require('../../Mixins/AsModelBoundView');
|
|
var AsValidatedView = require('../../Mixins/AsValidatedView');
|
|
|
|
require('../../Mixins/CopyToClipboard');
|
|
|
|
var view = Marionette.ItemView.extend({
|
|
template : 'Settings/General/GeneralViewTemplate',
|
|
|
|
events : {
|
|
'change .x-auth' : '_setAuthOptionsVisibility',
|
|
'change .x-proxy' : '_setProxyOptionsVisibility',
|
|
'change .x-ssl' : '_setSslOptionsVisibility',
|
|
'click .x-reset-api-key' : '_resetApiKey',
|
|
'change .x-update-mechanism' : '_setScriptGroupVisibility'
|
|
},
|
|
|
|
ui : {
|
|
authToggle : '.x-auth',
|
|
authOptions : '.x-auth-options',
|
|
sslToggle : '.x-ssl',
|
|
sslOptions : '.x-ssl-options',
|
|
resetApiKey : '.x-reset-api-key',
|
|
copyApiKey : '.x-copy-api-key',
|
|
apiKeyInput : '.x-api-key',
|
|
updateMechanism : '.x-update-mechanism',
|
|
scriptGroup : '.x-script-group',
|
|
proxyToggle : '.x-proxy',
|
|
proxyOptions : '.x-proxy-settings'
|
|
},
|
|
|
|
initialize : function() {
|
|
this.listenTo(vent, vent.Events.CommandComplete, this._commandComplete);
|
|
},
|
|
|
|
onRender : function() {
|
|
if (this.ui.authToggle.val() === 'none') {
|
|
this.ui.authOptions.hide();
|
|
}
|
|
|
|
if (!this.ui.proxyToggle.prop('checked')) {
|
|
this.ui.proxyOptions.hide();
|
|
}
|
|
|
|
if (!this.ui.sslToggle.prop('checked')) {
|
|
this.ui.sslOptions.hide();
|
|
}
|
|
|
|
if (!this._showScriptGroup()) {
|
|
this.ui.scriptGroup.hide();
|
|
}
|
|
|
|
CommandController.bindToCommand({
|
|
element : this.ui.resetApiKey,
|
|
command : {
|
|
name : 'resetApiKey'
|
|
}
|
|
});
|
|
},
|
|
|
|
onShow : function() {
|
|
this.ui.copyApiKey.copyToClipboard(this.ui.apiKeyInput);
|
|
},
|
|
|
|
_setAuthOptionsVisibility : function() {
|
|
|
|
var showAuthOptions = this.ui.authToggle.val() !== 'none';
|
|
|
|
if (showAuthOptions) {
|
|
this.ui.authOptions.slideDown();
|
|
}
|
|
|
|
else {
|
|
this.ui.authOptions.slideUp();
|
|
}
|
|
},
|
|
|
|
_setProxyOptionsVisibility : function() {
|
|
if (this.ui.proxyToggle.prop('checked')) {
|
|
this.ui.proxyOptions.slideDown();
|
|
}
|
|
else {
|
|
this.ui.proxyOptions.slideUp();
|
|
}
|
|
},
|
|
|
|
_setSslOptionsVisibility : function() {
|
|
|
|
var showSslOptions = this.ui.sslToggle.prop('checked');
|
|
|
|
if (showSslOptions) {
|
|
this.ui.sslOptions.slideDown();
|
|
}
|
|
|
|
else {
|
|
this.ui.sslOptions.slideUp();
|
|
}
|
|
},
|
|
|
|
_resetApiKey : function() {
|
|
if (window.confirm('Reset API Key?')) {
|
|
CommandController.Execute('resetApiKey', {
|
|
name : 'resetApiKey'
|
|
});
|
|
}
|
|
},
|
|
|
|
_commandComplete : function(options) {
|
|
if (options.command.get('name') === 'resetapikey') {
|
|
this.model.fetch();
|
|
}
|
|
},
|
|
|
|
_setScriptGroupVisibility : function() {
|
|
|
|
if (this._showScriptGroup()) {
|
|
this.ui.scriptGroup.slideDown();
|
|
}
|
|
|
|
else {
|
|
this.ui.scriptGroup.slideUp();
|
|
}
|
|
},
|
|
|
|
_showScriptGroup : function() {
|
|
return this.ui.updateMechanism.val() === 'script';
|
|
}
|
|
});
|
|
|
|
AsModelBoundView.call(view);
|
|
AsValidatedView.call(view);
|
|
|
|
module.exports = view;
|
|
|