'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
${this.props.server.url}
Disconnect
`; } init() { this.initForm(); this.initActions(); } initForm() { this.$serverInfoForm = this.generateNodeFromTemplate(this.template()); this.$serverInfoAlias = this.$serverInfoForm.getElementsByClassName('server-info-alias')[0]; this.$serverIcon = this.$serverInfoForm.getElementsByClassName('server-info-icon')[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 disconnect this organization?' }, 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); }); this.$serverIcon.addEventListener('click', () => { ipcRenderer.send('forward-message', 'switch-server-tab', this.props.index); }); } } module.exports = ServerInfoForm;