diff --git a/frontend/js/app/nginx/redirection/main.ejs b/frontend/js/app/nginx/redirection/main.ejs index 4345a7e8..90f92ebe 100644 --- a/frontend/js/app/nginx/redirection/main.ejs +++ b/frontend/js/app/nginx/redirection/main.ejs @@ -3,6 +3,14 @@

Redirection Hosts

+ <% if (showAddButton) { %> Add Redirection Host diff --git a/frontend/js/app/nginx/redirection/main.js b/frontend/js/app/nginx/redirection/main.js index f45f9a07..8d1a5da9 100644 --- a/frontend/js/app/nginx/redirection/main.js +++ b/frontend/js/app/nginx/redirection/main.js @@ -14,7 +14,28 @@ module.exports = Mn.View.extend({ list_region: '.list-region', add: '.add-item', help: '.help', - dimmer: '.dimmer' + dimmer: '.dimmer', + search: '.search-form', + query: 'input[name="source-query"]' + }, + + fetch: App.Api.Nginx.RedirectionHosts.getAll, + + showData: function(response) { + this.showChildView('list_region', new ListView({ + collection: new RedirectionHostModel.Collection(response) + })); + }, + + showError: function(err) { + this.showChildView('list_region', new ErrorView({ + code: err.code, + message: err.message, + retry: function () { + App.Controller.showNginxRedirection(); + } + })); + console.error(err); }, regions: { @@ -30,6 +51,17 @@ module.exports = Mn.View.extend({ 'click @ui.help': function (e) { e.preventDefault(); App.Controller.showHelp(App.i18n('redirection-hosts', 'help-title'), App.i18n('redirection-hosts', 'help-content')); + }, + + 'submit @ui.search': function (e) { + e.preventDefault(); + let query = this.ui.query.val(); + + this.fetch(['owner', 'certificate'], query) + .then(response => this.showData(response)) + .catch(err => { + this.showError(err); + }); } }, @@ -40,13 +72,11 @@ module.exports = Mn.View.extend({ onRender: function () { let view = this; - App.Api.Nginx.RedirectionHosts.getAll(['owner', 'certificate']) + view.fetch(['owner', 'certificate']) .then(response => { if (!view.isDestroyed()) { if (response && response.length) { - view.showChildView('list_region', new ListView({ - collection: new RedirectionHostModel.Collection(response) - })); + view.showData(response); } else { let manage = App.Cache.User.canManage('redirection_hosts'); @@ -64,15 +94,7 @@ module.exports = Mn.View.extend({ } }) .catch(err => { - view.showChildView('list_region', new ErrorView({ - code: err.code, - message: err.message, - retry: function () { - App.Controller.showNginxRedirection(); - } - })); - - console.error(err); + view.showError(err); }) .then(() => { view.ui.dimmer.removeClass('active');