From 96e034aa757d3a13dcec45a8081e3334d1e416fc Mon Sep 17 00:00:00 2001 From: Ivan Kristianto Date: Sun, 30 Jan 2022 22:47:42 +0700 Subject: [PATCH 01/12] Add search function for redirection --- frontend/js/app/nginx/redirection/main.ejs | 8 ++++ frontend/js/app/nginx/redirection/main.js | 50 ++++++++++++++++------ 2 files changed, 44 insertions(+), 14 deletions(-) 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'); From 30a9d3ae8db27c8e699ff224eb8d35b93ed3e9f4 Mon Sep 17 00:00:00 2001 From: Ivan Kristianto Date: Sat, 12 Feb 2022 10:38:15 +0700 Subject: [PATCH 02/12] Add search feature to proxy host --- frontend/js/app/nginx/proxy/main.ejs | 8 +++ frontend/js/app/nginx/proxy/main.js | 79 +++++++++++++++++++--------- 2 files changed, 61 insertions(+), 26 deletions(-) diff --git a/frontend/js/app/nginx/proxy/main.ejs b/frontend/js/app/nginx/proxy/main.ejs index a5114de6..42f43752 100644 --- a/frontend/js/app/nginx/proxy/main.ejs +++ b/frontend/js/app/nginx/proxy/main.ejs @@ -3,6 +3,14 @@

<%- i18n('proxy-hosts', 'title') %>

+ <% if (showAddButton) { %> <%- i18n('proxy-hosts', 'add') %> diff --git a/frontend/js/app/nginx/proxy/main.js b/frontend/js/app/nginx/proxy/main.js index 83cedfba..66f2ba6a 100644 --- a/frontend/js/app/nginx/proxy/main.js +++ b/frontend/js/app/nginx/proxy/main.js @@ -14,7 +14,44 @@ 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.ProxyHosts.getAll, + + showData: function(response) { + this.showChildView('list_region', new ListView({ + collection: new ProxyHostModel.Collection(response) + })); + }, + + showError: function(err) { + this.showChildView('list_region', new ErrorView({ + code: err.code, + message: err.message, + retry: function () { + App.Controller.showNginxProxy(); + } + })); + + console.error(err); + }, + + showEmpty: function() { + let manage = App.Cache.User.canManage('proxy_hosts'); + + this.showChildView('list_region', new EmptyView({ + title: App.i18n('proxy-hosts', 'empty'), + subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), + link: manage ? App.i18n('proxy-hosts', 'add') : null, + btn_color: 'success', + permission: 'proxy_hosts', + action: function () { + App.Controller.showNginxProxyForm(); + } + })); }, regions: { @@ -30,6 +67,17 @@ module.exports = Mn.View.extend({ 'click @ui.help': function (e) { e.preventDefault(); App.Controller.showHelp(App.i18n('proxy-hosts', 'help-title'), App.i18n('proxy-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,39 +88,18 @@ module.exports = Mn.View.extend({ onRender: function () { let view = this; - App.Api.Nginx.ProxyHosts.getAll(['owner', 'access_list', 'certificate']) + view.fetch(['owner', 'access_list', 'certificate']) .then(response => { if (!view.isDestroyed()) { if (response && response.length) { - view.showChildView('list_region', new ListView({ - collection: new ProxyHostModel.Collection(response) - })); + view.showData(response); } else { - let manage = App.Cache.User.canManage('proxy_hosts'); - - view.showChildView('list_region', new EmptyView({ - title: App.i18n('proxy-hosts', 'empty'), - subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), - link: manage ? App.i18n('proxy-hosts', 'add') : null, - btn_color: 'success', - permission: 'proxy_hosts', - action: function () { - App.Controller.showNginxProxyForm(); - } - })); + view.showEmpty(); } } }) .catch(err => { - view.showChildView('list_region', new ErrorView({ - code: err.code, - message: err.message, - retry: function () { - App.Controller.showNginxProxy(); - } - })); - - console.error(err); + view.showError(err); }) .then(() => { view.ui.dimmer.removeClass('active'); From 181f163cb559e4dd7420f95ed612f81253d08714 Mon Sep 17 00:00:00 2001 From: Ivan Kristianto Date: Sat, 12 Feb 2022 10:40:37 +0700 Subject: [PATCH 03/12] Move render showEmpty into function --- frontend/js/app/nginx/redirection/main.js | 28 +++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/frontend/js/app/nginx/redirection/main.js b/frontend/js/app/nginx/redirection/main.js index 8d1a5da9..1f5351a7 100644 --- a/frontend/js/app/nginx/redirection/main.js +++ b/frontend/js/app/nginx/redirection/main.js @@ -38,6 +38,21 @@ module.exports = Mn.View.extend({ console.error(err); }, + showEmpty: function() { + let manage = App.Cache.User.canManage('redirection_hosts'); + + this.showChildView('list_region', new EmptyView({ + title: App.i18n('redirection-hosts', 'empty'), + subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), + link: manage ? App.i18n('redirection-hosts', 'add') : null, + btn_color: 'yellow', + permission: 'redirection_hosts', + action: function () { + App.Controller.showNginxRedirectionForm(); + } + })); + }, + regions: { list_region: '@ui.list_region' }, @@ -78,18 +93,7 @@ module.exports = Mn.View.extend({ if (response && response.length) { view.showData(response); } else { - let manage = App.Cache.User.canManage('redirection_hosts'); - - view.showChildView('list_region', new EmptyView({ - title: App.i18n('redirection-hosts', 'empty'), - subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), - link: manage ? App.i18n('redirection-hosts', 'add') : null, - btn_color: 'yellow', - permission: 'redirection_hosts', - action: function () { - App.Controller.showNginxRedirectionForm(); - } - })); + view.showEmpty(); } } }) From e141b5ff20a8270c26a316e1bc6aa4da2d6c69c0 Mon Sep 17 00:00:00 2001 From: Ivan Kristianto Date: Sat, 12 Feb 2022 11:36:59 +0700 Subject: [PATCH 04/12] Add search feature to stream --- frontend/js/app/nginx/stream/main.ejs | 8 +++ frontend/js/app/nginx/stream/main.js | 79 ++++++++++++++++++--------- 2 files changed, 61 insertions(+), 26 deletions(-) diff --git a/frontend/js/app/nginx/stream/main.ejs b/frontend/js/app/nginx/stream/main.ejs index c01414ce..d08ed56a 100644 --- a/frontend/js/app/nginx/stream/main.ejs +++ b/frontend/js/app/nginx/stream/main.ejs @@ -3,6 +3,14 @@

<%- i18n('streams', 'title') %>

+ <% if (showAddButton) { %> <%- i18n('streams', 'add') %> diff --git a/frontend/js/app/nginx/stream/main.js b/frontend/js/app/nginx/stream/main.js index a8eda92c..8a86e583 100644 --- a/frontend/js/app/nginx/stream/main.js +++ b/frontend/js/app/nginx/stream/main.js @@ -14,7 +14,44 @@ 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.Streams.getAll, + + showData: function(response) { + this.showChildView('list_region', new ListView({ + collection: new StreamModel.Collection(response) + })); + }, + + showError: function(err) { + this.showChildView('list_region', new ErrorView({ + code: err.code, + message: err.message, + retry: function () { + App.Controller.showNginxStream(); + } + })); + + console.error(err); + }, + + showEmpty: function() { + let manage = App.Cache.User.canManage('streams'); + + this.showChildView('list_region', new EmptyView({ + title: App.i18n('streams', 'empty'), + subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), + link: manage ? App.i18n('streams', 'add') : null, + btn_color: 'blue', + permission: 'streams', + action: function () { + App.Controller.showNginxStreamForm(); + } + })); }, regions: { @@ -30,6 +67,17 @@ module.exports = Mn.View.extend({ 'click @ui.help': function (e) { e.preventDefault(); App.Controller.showHelp(App.i18n('streams', 'help-title'), App.i18n('streams', 'help-content')); + }, + + 'submit @ui.search': function (e) { + e.preventDefault(); + let query = this.ui.query.val(); + + this.fetch(['owner'], query) + .then(response => this.showData(response)) + .catch(err => { + this.showError(err); + }); } }, @@ -40,39 +88,18 @@ module.exports = Mn.View.extend({ onRender: function () { let view = this; - App.Api.Nginx.Streams.getAll(['owner']) + view.fetch(['owner']) .then(response => { if (!view.isDestroyed()) { if (response && response.length) { - view.showChildView('list_region', new ListView({ - collection: new StreamModel.Collection(response) - })); + view.showData(response); } else { - let manage = App.Cache.User.canManage('streams'); - - view.showChildView('list_region', new EmptyView({ - title: App.i18n('streams', 'empty'), - subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), - link: manage ? App.i18n('streams', 'add') : null, - btn_color: 'blue', - permission: 'streams', - action: function () { - App.Controller.showNginxStreamForm(); - } - })); + view.showEmpty(); } } }) .catch(err => { - view.showChildView('list_region', new ErrorView({ - code: err.code, - message: err.message, - retry: function () { - App.Controller.showNginxStream(); - } - })); - - console.error(err); + view.showError(err); }) .then(() => { view.ui.dimmer.removeClass('active'); From 49f350fb00be2bfb05e6f52a062a71694710e2de Mon Sep 17 00:00:00 2001 From: Ivan Kristianto Date: Sat, 12 Feb 2022 11:48:47 +0700 Subject: [PATCH 05/12] Add search feature to 404 hosts --- frontend/js/app/nginx/dead/main.ejs | 8 +++ frontend/js/app/nginx/dead/main.js | 79 +++++++++++++++++++---------- 2 files changed, 61 insertions(+), 26 deletions(-) diff --git a/frontend/js/app/nginx/dead/main.ejs b/frontend/js/app/nginx/dead/main.ejs index 508280ae..324c48f2 100644 --- a/frontend/js/app/nginx/dead/main.ejs +++ b/frontend/js/app/nginx/dead/main.ejs @@ -3,6 +3,14 @@

<%- i18n('dead-hosts', 'title') %>

+ <% if (showAddButton) { %> <%- i18n('dead-hosts', 'add') %> diff --git a/frontend/js/app/nginx/dead/main.js b/frontend/js/app/nginx/dead/main.js index ac3cb7f1..e4d0c010 100644 --- a/frontend/js/app/nginx/dead/main.js +++ b/frontend/js/app/nginx/dead/main.js @@ -14,7 +14,44 @@ 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.DeadHosts.getAll, + + showData: function(response) { + this.showChildView('list_region', new ListView({ + collection: new DeadHostModel.Collection(response) + })); + }, + + showError: function(err) { + this.showChildView('list_region', new ErrorView({ + code: err.code, + message: err.message, + retry: function () { + App.Controller.showNginxDead(); + } + })); + + console.error(err); + }, + + showEmpty: function() { + let manage = App.Cache.User.canManage('dead_hosts'); + + this.showChildView('list_region', new EmptyView({ + title: App.i18n('dead-hosts', 'empty'), + subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), + link: manage ? App.i18n('dead-hosts', 'add') : null, + btn_color: 'danger', + permission: 'dead_hosts', + action: function () { + App.Controller.showNginxDeadForm(); + } + })); }, regions: { @@ -30,6 +67,17 @@ module.exports = Mn.View.extend({ 'click @ui.help': function (e) { e.preventDefault(); App.Controller.showHelp(App.i18n('dead-hosts', 'help-title'), App.i18n('dead-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,39 +88,18 @@ module.exports = Mn.View.extend({ onRender: function () { let view = this; - App.Api.Nginx.DeadHosts.getAll(['owner', 'certificate']) + view.fetch(['owner', 'certificate']) .then(response => { if (!view.isDestroyed()) { if (response && response.length) { - view.showChildView('list_region', new ListView({ - collection: new DeadHostModel.Collection(response) - })); + view.showData(response); } else { - let manage = App.Cache.User.canManage('dead_hosts'); - - view.showChildView('list_region', new EmptyView({ - title: App.i18n('dead-hosts', 'empty'), - subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), - link: manage ? App.i18n('dead-hosts', 'add') : null, - btn_color: 'danger', - permission: 'dead_hosts', - action: function () { - App.Controller.showNginxDeadForm(); - } - })); + view.showEmpty(); } } }) .catch(err => { - view.showChildView('list_region', new ErrorView({ - code: err.code, - message: err.message, - retry: function () { - App.Controller.showNginxDead(); - } - })); - - console.error(err); + view.showError(err); }) .then(() => { view.ui.dimmer.removeClass('active'); From 078114ee6768ca1b579861b2fce239b8aeb84883 Mon Sep 17 00:00:00 2001 From: Ivan Kristianto Date: Sat, 12 Feb 2022 11:52:47 +0700 Subject: [PATCH 06/12] Fix search query for proxy --- frontend/js/app/nginx/proxy/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/js/app/nginx/proxy/main.js b/frontend/js/app/nginx/proxy/main.js index 66f2ba6a..baf67101 100644 --- a/frontend/js/app/nginx/proxy/main.js +++ b/frontend/js/app/nginx/proxy/main.js @@ -73,7 +73,7 @@ module.exports = Mn.View.extend({ e.preventDefault(); let query = this.ui.query.val(); - this.fetch(['owner', 'certificate'], query) + this.fetch(['owner', 'access_list', 'certificate'], query) .then(response => this.showData(response)) .catch(err => { this.showError(err); From de84d5d46383aa7e5089e91787004299ecf04ca1 Mon Sep 17 00:00:00 2001 From: Ivan Kristianto Date: Sat, 12 Feb 2022 12:17:45 +0700 Subject: [PATCH 07/12] Add search feature to Access Lists --- frontend/js/app/nginx/access/main.ejs | 8 +++ frontend/js/app/nginx/access/main.js | 79 ++++++++++++++++++--------- 2 files changed, 61 insertions(+), 26 deletions(-) diff --git a/frontend/js/app/nginx/access/main.ejs b/frontend/js/app/nginx/access/main.ejs index c245ff4a..665d867b 100644 --- a/frontend/js/app/nginx/access/main.ejs +++ b/frontend/js/app/nginx/access/main.ejs @@ -3,6 +3,14 @@

<%- i18n('access-lists', 'title') %>

+ <% if (showAddButton) { %> <%- i18n('access-lists', 'add') %> diff --git a/frontend/js/app/nginx/access/main.js b/frontend/js/app/nginx/access/main.js index d14a9eb4..513f5865 100644 --- a/frontend/js/app/nginx/access/main.js +++ b/frontend/js/app/nginx/access/main.js @@ -14,7 +14,44 @@ 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.AccessLists.getAll, + + showData: function(response) { + this.showChildView('list_region', new ListView({ + collection: new AccessListModel.Collection(response) + })); + }, + + showError: function(err) { + this.showChildView('list_region', new ErrorView({ + code: err.code, + message: err.message, + retry: function () { + App.Controller.showNginxAccess(); + } + })); + + console.error(err); + }, + + showEmpty: function() { + let manage = App.Cache.User.canManage('access_lists'); + + this.showChildView('list_region', new EmptyView({ + title: App.i18n('access-lists', 'empty'), + subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), + link: manage ? App.i18n('access-lists', 'add') : null, + btn_color: 'teal', + permission: 'access_lists', + action: function () { + App.Controller.showNginxAccessListForm(); + } + })); }, regions: { @@ -30,6 +67,17 @@ module.exports = Mn.View.extend({ 'click @ui.help': function (e) { e.preventDefault(); App.Controller.showHelp(App.i18n('access-lists', 'help-title'), App.i18n('access-lists', 'help-content')); + }, + + 'submit @ui.search': function (e) { + e.preventDefault(); + let query = this.ui.query.val(); + + this.fetch(['owner', 'items', 'clients'], query) + .then(response => this.showData(response)) + .catch(err => { + this.showError(err); + }); } }, @@ -40,39 +88,18 @@ module.exports = Mn.View.extend({ onRender: function () { let view = this; - App.Api.Nginx.AccessLists.getAll(['owner', 'items', 'clients']) + view.fetch(['owner', 'items', 'clients']) .then(response => { if (!view.isDestroyed()) { if (response && response.length) { - view.showChildView('list_region', new ListView({ - collection: new AccessListModel.Collection(response) - })); + view.showData(response); } else { - let manage = App.Cache.User.canManage('access_lists'); - - view.showChildView('list_region', new EmptyView({ - title: App.i18n('access-lists', 'empty'), - subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), - link: manage ? App.i18n('access-lists', 'add') : null, - btn_color: 'teal', - permission: 'access_lists', - action: function () { - App.Controller.showNginxAccessListForm(); - } - })); + view.showEmpty(); } } }) .catch(err => { - view.showChildView('list_region', new ErrorView({ - code: err.code, - message: err.message, - retry: function () { - App.Controller.showNginxAccess(); - } - })); - - console.error(err); + view.showError(err); }) .then(() => { view.ui.dimmer.removeClass('active'); From 29c0fcbad6e2d52a9fb0dab8bc67309c17551938 Mon Sep 17 00:00:00 2001 From: Ivan Kristianto Date: Sat, 12 Feb 2022 12:45:29 +0700 Subject: [PATCH 08/12] Add search feature to SSL Certificates --- frontend/js/app/nginx/certificates/main.ejs | 8 +++ frontend/js/app/nginx/certificates/main.js | 79 ++++++++++++++------- 2 files changed, 61 insertions(+), 26 deletions(-) diff --git a/frontend/js/app/nginx/certificates/main.ejs b/frontend/js/app/nginx/certificates/main.ejs index cc3624d5..bbc50842 100644 --- a/frontend/js/app/nginx/certificates/main.ejs +++ b/frontend/js/app/nginx/certificates/main.ejs @@ -3,6 +3,14 @@

<%- i18n('certificates', 'title') %>

+ <% if (showAddButton) { %> diff --git a/frontend/js/app/nginx/certificates/main.ejs b/frontend/js/app/nginx/certificates/main.ejs index bbc50842..dbd6fa85 100644 --- a/frontend/js/app/nginx/certificates/main.ejs +++ b/frontend/js/app/nginx/certificates/main.ejs @@ -8,7 +8,7 @@ - +
diff --git a/frontend/js/app/nginx/dead/main.ejs b/frontend/js/app/nginx/dead/main.ejs index 324c48f2..4c5d1ad1 100644 --- a/frontend/js/app/nginx/dead/main.ejs +++ b/frontend/js/app/nginx/dead/main.ejs @@ -8,7 +8,7 @@ - +
diff --git a/frontend/js/app/nginx/proxy/main.ejs b/frontend/js/app/nginx/proxy/main.ejs index 42f43752..4ecb9036 100644 --- a/frontend/js/app/nginx/proxy/main.ejs +++ b/frontend/js/app/nginx/proxy/main.ejs @@ -8,7 +8,7 @@ - +
diff --git a/frontend/js/app/nginx/redirection/main.ejs b/frontend/js/app/nginx/redirection/main.ejs index 90f92ebe..87e28229 100644 --- a/frontend/js/app/nginx/redirection/main.ejs +++ b/frontend/js/app/nginx/redirection/main.ejs @@ -1,19 +1,19 @@
-

Redirection Hosts

+

<%- i18n('redirection-hosts', 'title') %>

<% if (showAddButton) { %> - Add Redirection Host + <%- i18n('redirection-hosts', 'add') %> <% } %>
diff --git a/frontend/js/app/nginx/stream/main.ejs b/frontend/js/app/nginx/stream/main.ejs index d08ed56a..7dc0dbe8 100644 --- a/frontend/js/app/nginx/stream/main.ejs +++ b/frontend/js/app/nginx/stream/main.ejs @@ -8,7 +8,7 @@ - +
diff --git a/frontend/js/app/users/main.ejs b/frontend/js/app/users/main.ejs index 2a75ecea..892cb83f 100644 --- a/frontend/js/app/users/main.ejs +++ b/frontend/js/app/users/main.ejs @@ -8,7 +8,7 @@ - +
<%- i18n('users', 'add') %> diff --git a/frontend/js/i18n/messages.json b/frontend/js/i18n/messages.json index c18e9be2..e0a6b730 100644 --- a/frontend/js/i18n/messages.json +++ b/frontend/js/i18n/messages.json @@ -132,7 +132,8 @@ "access-list": "Access List", "allow-websocket-upgrade": "Websockets Support", "ignore-invalid-upstream-ssl": "Ignore Invalid SSL", - "custom-forward-host-help": "Add a path for sub-folder forwarding.\nExample: 203.0.113.25/path" + "custom-forward-host-help": "Add a path for sub-folder forwarding.\nExample: 203.0.113.25/path", + "search": "Search Host…" }, "redirection-hosts": { "title": "Redirection Hosts", @@ -146,7 +147,8 @@ "delete": "Delete Redirection Host", "delete-confirm": "Are you sure you want to delete the Redirection host for: {domains}?", "help-title": "What is a Redirection Host?", - "help-content": "A Redirection Host will redirect requests from the incoming domain and push the viewer to another domain.\nThe most common reason to use this type of host is when your website changes domains but you still have search engine or referrer links pointing to the old domain." + "help-content": "A Redirection Host will redirect requests from the incoming domain and push the viewer to another domain.\nThe most common reason to use this type of host is when your website changes domains but you still have search engine or referrer links pointing to the old domain.", + "search": "Search Host…" }, "dead-hosts": { "title": "404 Hosts", @@ -156,7 +158,8 @@ "delete": "Delete 404 Host", "delete-confirm": "Are you sure you want to delete this 404 Host?", "help-title": "What is a 404 Host?", - "help-content": "A 404 Host is simply a host setup that shows a 404 page.\nThis can be useful when your domain is listed in search engines and you want to provide a nicer error page or specifically to tell the search indexers that the domain pages no longer exist.\nAnother benefit of having this host is to track the logs for hits to it and view the referrers." + "help-content": "A 404 Host is simply a host setup that shows a 404 page.\nThis can be useful when your domain is listed in search engines and you want to provide a nicer error page or specifically to tell the search indexers that the domain pages no longer exist.\nAnother benefit of having this host is to track the logs for hits to it and view the referrers.", + "search": "Search Host…" }, "streams": { "title": "Streams", @@ -175,7 +178,8 @@ "delete": "Delete Stream", "delete-confirm": "Are you sure you want to delete this Stream?", "help-title": "What is a Stream?", - "help-content": "A relatively new feature for Nginx, a Stream will serve to forward TCP/UDP traffic directly to another computer on the network.\nIf you're running game servers, FTP or SSH servers this can come in handy." + "help-content": "A relatively new feature for Nginx, a Stream will serve to forward TCP/UDP traffic directly to another computer on the network.\nIf you're running game servers, FTP or SSH servers this can come in handy.", + "search": "Search Incoming Port…" }, "certificates": { "title": "SSL Certificates", @@ -201,7 +205,8 @@ "reachability-wrong-data": "There is a server found at this domain but it returned an unexpected data. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running.", "reachability-other": "There is a server found at this domain but it returned an unexpected status code {code}. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running.", "download": "Download", - "renew-title": "Renew Let'sEncrypt Certificate" + "renew-title": "Renew Let'sEncrypt Certificate", + "search": "Search Certificate…" }, "access-lists": { "title": "Access Lists", @@ -225,7 +230,8 @@ "satisfy-any": "Satisfy Any", "pass-auth": "Pass Auth to Host", "access-add": "Add", - "auth-add": "Add" + "auth-add": "Add", + "search": "Search Access…" }, "users": { "title": "Users", @@ -251,7 +257,8 @@ "perms-visibility-all": "All Items", "perm-manage": "Manage", "perm-view": "View Only", - "perm-hidden": "Hidden" + "perm-hidden": "Hidden", + "search": "Search User…" }, "audit-log": { "title": "Audit Log", @@ -272,7 +279,8 @@ "renewed": "Renewed {name}", "meta-title": "Details for Event", "view-meta": "View Details", - "date": "Date" + "date": "Date", + "search": "Search Log…" }, "settings": { "title": "Settings",