'use strict'; const {dialog} = require('electron').remote; const {ipcRenderer} = require('electron'); const BaseComponent = require(__dirname + '/../../components/base.js'); const DomainUtil = require(__dirname + '/../../utils/domain-util.js'); class ServerInfoForm extends BaseComponent { constructor(props) { super(); this.props = props; } template() { return `
${this.props.server.alias} open_in_new
indeterminate_check_box Delete
`; } init() { this.initForm(); this.initActions(); } initForm() { this.$serverInfoForm = this.generateNodeFromTemplate(this.template()); this.$serverInfoAlias = this.$serverInfoForm.getElementsByClassName('server-info-alias')[0]; this.$deleteServerButton = this.$serverInfoForm.getElementsByClassName('server-delete-action')[0]; this.$openServerButton = this.$serverInfoForm.getElementsByClassName('open-tab-button')[0]; this.props.$root.appendChild(this.$serverInfoForm); } initActions() { this.$deleteServerButton.addEventListener('click', () => { dialog.showMessageBox({ type: 'warning', buttons: ['YES', 'NO'], defaultId: 0, message: 'Are you sure you want to delete this server?' }, response => { if (response === 0) { DomainUtil.removeDomain(this.props.index); this.props.onChange(this.props.index); } }); }); this.$openServerButton.addEventListener('click', () => { ipcRenderer.send('forward-message', 'switch-server-tab', this.props.index); }); this.$serverInfoAlias.addEventListener('click', () => { ipcRenderer.send('forward-message', 'switch-server-tab', this.props.index); }); } } module.exports = ServerInfoForm;