blob: 1988f4e0fa3a584336dc86a4342ea2992efaadd7 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* 'License'); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an 'AS IS' BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var App = require('app');
App.SshKeyFileUploader = Em.View.extend({
//TODO: rewrite it using tagName and attribute binding
//TODO: rewrite it as independent component and place it somewhere in utils
// alternative is to move it to App.WizardStep2View
template: Em.Handlebars.compile('<input type="file" {{bindAttr disabled="view.disabled"}} />'),
classNames: ['ssh-key-input-indentation'],
change: function (e) {
var self = this;
if (e.target.files && e.target.files.length == 1) {
var file = e.target.files[0];
var reader = new FileReader();
reader.onload = (function () {
return function (e) {
$('#sshKey').html(e.target.result);
self.get("controller").setSshKey(e.target.result);
};
})(file);
reader.readAsText(file);
}
}
});
App.WizardStep2View = Em.View.extend({
templateName: require('templates/wizard/step2'),
didInsertElement: function () {
App.popover($("[rel=popover]"), {'placement': 'right', 'trigger': 'hover'});
App.tooltip($("[rel=tooltip]"), {'placement': 'top', 'trigger': 'hover'});
//todo: move them to conroller
this.set('controller.hostsError', null);
this.set('controller.sshKeyError', null);
},
/**
* Is manualInstall selected
* @type {bool}
*/
sshKeyState: Em.computed.alias('controller.content.installOptions.manualInstall'),
/**
* Is File API available
* @type {bool}
* TODO: incupsulate it inside of App.SshKeyFileUploader
*/
isFileApi: function () {
/* istanbul ignore next */
return window.File && window.FileReader && window.FileList;
}.property(),
/**
* Checkbox for activate SSH fields
* @type {Ember.Checkbox}
* TODO: replace next 2 properties with new one used in both places
*/
providingSSHKeyRadioButton: Em.Checkbox.extend({
tagName: 'input',
attributeBindings: ['type', 'checked'],
classNames: ['radio-btn-provide-ssh-key'],
checked: Em.computed.alias('controller.content.installOptions.useSsh'),
type: 'radio',
click: function () {
this.set('controller.content.installOptions.useSsh', true);
this.set('controller.content.installOptions.manualInstall', false);
}
}),
/**
* Checkbox for manual registration
* @type {Ember.Checkbox}
*/
manualRegistrationRadioButton: Em.Checkbox.extend({
tagName: 'input',
attributeBindings: ['type', 'checked'],
classNames: ['radio-btn-manual-reg'],
type: 'radio',
checked: Em.computed.alias('controller.content.installOptions.manualInstall'),
click: function () {
this.set('controller.content.installOptions.manualInstall', true);
this.set('controller.content.installOptions.useSsh', false);
}
}),
/**
* Textarea with ssh-key
* @type {Ember.TextField}
*/
textFieldView: Em.TextField.extend({
/**
* Is textfield disabled
* @type {bool}
*/
disabled: Em.computed.not('isEnabled')
})
});