'use strict'; const Mn = require('backbone.marionette'); const template = require('./row.ejs'); const Controller = require('../controller'); const AccessListModel = require('../../models/access'); module.exports = Mn.View.extend({ template: template, tagName: 'tr', ui: { edit: 'button.edit', delete: 'button.delete', access_list: 'a.access_list', reconfigure: 'button.reconfigure', advanced: 'button.advanced' }, events: { 'click @ui.edit': function (e) { e.preventDefault(); switch (this.model.get('type')) { case 'proxy': Controller.showProxyHostForm(this.model); break; case 'redirection': Controller.showRedirectionHostForm(this.model); break; case '404': Controller.show404HostForm(this.model); break; case 'stream': Controller.showStreamHostForm(this.model); break; } }, 'click @ui.delete': function (e) { e.preventDefault(); Controller.showDeleteHost(this.model); }, 'click @ui.access_list': function (e) { e.preventDefault(); Controller.showAccessListForm(new AccessListModel.Model(this.model.get('access_list'))); }, 'click @ui.reconfigure': function (e) { e.preventDefault(); Controller.showReconfigureHost(this.model); }, 'click @ui.advanced': function (e) { e.preventDefault(); Controller.showAdvancedHost(this.model); } }, initialize: function () { this.listenTo(this.model, 'change', this.render); } });