'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;