Compare commits

...

4 Commits

Author SHA1 Message Date
Julian Gassner
a0cab8d39b Merge e6f61e297f into 498109addb 2025-01-29 16:46:04 +01:00
jc21
498109addb Merge pull request #4310 from NginxProxyManager/dependabot/npm_and_yarn/docs/vite-5.4.14
All checks were successful
Close stale issues and PRs / stale (push) Successful in 3s
Bump vite from 5.4.8 to 5.4.14 in /docs
2025-01-28 18:08:46 +10:00
Julian Gassner
e6f61e297f Add button to add custom certificate in certificate list 2025-01-22 15:33:02 +00:00
dependabot[bot]
bb4ecf812d Bump vite from 5.4.8 to 5.4.14 in /docs
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.8 to 5.4.14.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.14/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.14/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-22 07:09:04 +00:00
10 changed files with 61 additions and 38 deletions

View File

@@ -1065,9 +1065,9 @@ vfile@^6.0.0:
vfile-message "^4.0.0" vfile-message "^4.0.0"
vite@^5.4.8: vite@^5.4.8:
version "5.4.8" version "5.4.14"
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.8.tgz#af548ce1c211b2785478d3ba3e8da51e39a287e8" resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.14.tgz#ff8255edb02134df180dcfca1916c37a6abe8408"
integrity sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ== integrity sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==
dependencies: dependencies:
esbuild "^0.21.3" esbuild "^0.21.3"
postcss "^8.4.43" postcss "^8.4.43"

View File

@@ -6,6 +6,10 @@ if (subtitle) { %>
<p class="h4 text-muted font-weight-normal mb-7"><%- subtitle %></p> <p class="h4 text-muted font-weight-normal mb-7"><%- subtitle %></p>
<% } <% }
if (link) { %> if (links && links.length) { %>
<a class="btn btn-<%- btn_color %>" href="#"><%- link %></a> <% links.forEach(function(link, index) { %>
<div style="margin-bottom: 10px;">
<a class="btn btn-<%- btn_color %>" href="#" data-index="<%- index %>"><%- link %></a>
</div>
<% }); %>
<% } %> <% } %>

View File

@@ -6,7 +6,9 @@ module.exports = Mn.View.extend({
template: template, template: template,
options: { options: {
btn_color: 'teal' btn_color: 'teal',
links: [], // Added to accept multiple links
actions: [] // Added to accept multiple actions
}, },
ui: { ui: {
@@ -16,17 +18,19 @@ module.exports = Mn.View.extend({
events: { events: {
'click @ui.action': function (e) { 'click @ui.action': function (e) {
e.preventDefault(); e.preventDefault();
this.getOption('action')(); const index = $(e.currentTarget).data('index');
this.getOption('actions')[index]();
} }
}, },
templateContext: function () { templateContext: function () {
return { return {
title: this.getOption('title'), title: this.getOption('title'),
subtitle: this.getOption('subtitle'), subtitle: this.getOption('subtitle'),
link: this.getOption('link'), links: this.getOption('links'), // Changed to array
action: typeof this.getOption('action') === 'function', actions: this.getOption('actions'), // Changed to array
btn_color: this.getOption('btn_color') hasActions: this.getOption('actions').length > 0,
btn_color: this.getOption('btn_color')
}; };
} }

View File

@@ -45,12 +45,14 @@ module.exports = Mn.View.extend({
this.showChildView('list_region', new EmptyView({ this.showChildView('list_region', new EmptyView({
title: App.i18n('access-lists', 'empty'), title: App.i18n('access-lists', 'empty'),
subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}),
link: manage ? App.i18n('access-lists', 'add') : null, links: manage ? [App.i18n('access-lists', 'add')] : [],
btn_color: 'teal', btn_color: 'teal',
permission: 'access_lists', permission: 'access_lists',
action: function () { actions: [
App.Controller.showNginxAccessListForm(); function () {
} App.Controller.showNginxAccessListForm();
}
]
})); }));
}, },

View File

@@ -45,12 +45,16 @@ module.exports = Mn.View.extend({
this.showChildView('list_region', new EmptyView({ this.showChildView('list_region', new EmptyView({
title: App.i18n('certificates', 'empty'), title: App.i18n('certificates', 'empty'),
subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}),
link: manage ? App.i18n('certificates', 'add') : null, links: manage ? [App.i18n('certificates', 'add-letsencrypt'), App.i18n('certificates', 'add-custom')] : [],
actions: [
function () {
App.Controller.showNginxCertificateForm();
},
function () {
App.Controller.showNginxCertificateForm(new CertificateModel.Model({provider: 'custom'}));
}],
btn_color: 'pink', btn_color: 'pink',
permission: 'certificates', permission: 'certificates'
action: function () {
App.Controller.showNginxCertificateForm();
}
})); }));
}, },

View File

@@ -45,12 +45,14 @@ module.exports = Mn.View.extend({
this.showChildView('list_region', new EmptyView({ this.showChildView('list_region', new EmptyView({
title: App.i18n('dead-hosts', 'empty'), title: App.i18n('dead-hosts', 'empty'),
subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}),
link: manage ? App.i18n('dead-hosts', 'add') : null, links: manage ? [App.i18n('dead-hosts', 'add')] : [],
btn_color: 'danger', btn_color: 'danger',
permission: 'dead_hosts', permission: 'dead_hosts',
action: function () { actions: [
App.Controller.showNginxDeadForm(); function () {
} App.Controller.showNginxDeadForm();
}
]
})); }));
}, },

View File

@@ -41,16 +41,17 @@ module.exports = Mn.View.extend({
showEmpty: function() { showEmpty: function() {
let manage = App.Cache.User.canManage('proxy_hosts'); let manage = App.Cache.User.canManage('proxy_hosts');
this.showChildView('list_region', new EmptyView({ this.showChildView('list_region', new EmptyView({
title: App.i18n('proxy-hosts', 'empty'), title: App.i18n('proxy-hosts', 'empty'),
subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}),
link: manage ? App.i18n('proxy-hosts', 'add') : null, links: manage ? [App.i18n('proxy-hosts', 'add')] : [],
actions: [
function () {
App.Controller.showNginxProxyForm();
}
],
btn_color: 'success', btn_color: 'success',
permission: 'proxy_hosts', permission: 'proxy_hosts',
action: function () {
App.Controller.showNginxProxyForm();
}
})); }));
}, },

View File

@@ -44,12 +44,14 @@ module.exports = Mn.View.extend({
this.showChildView('list_region', new EmptyView({ this.showChildView('list_region', new EmptyView({
title: App.i18n('redirection-hosts', 'empty'), title: App.i18n('redirection-hosts', 'empty'),
subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}),
link: manage ? App.i18n('redirection-hosts', 'add') : null, links: manage ? [App.i18n('redirection-hosts', 'add')] : [],
btn_color: 'yellow', btn_color: 'yellow',
permission: 'redirection_hosts', permission: 'redirection_hosts',
action: function () { actions: [
App.Controller.showNginxRedirectionForm(); function () {
} App.Controller.showNginxRedirectionForm();
}
]
})); }));
}, },

View File

@@ -45,12 +45,14 @@ module.exports = Mn.View.extend({
this.showChildView('list_region', new EmptyView({ this.showChildView('list_region', new EmptyView({
title: App.i18n('streams', 'empty'), title: App.i18n('streams', 'empty'),
subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}), subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}),
link: manage ? App.i18n('streams', 'add') : null, links: manage ? [App.i18n('streams', 'add')] : [],
btn_color: 'blue', btn_color: 'blue',
permission: 'streams', permission: 'streams',
action: function () { actions: [
App.Controller.showNginxStreamForm(); function () {
} App.Controller.showNginxStreamForm();
}
]
})); }));
}, },

View File

@@ -185,6 +185,8 @@
"title": "SSL Certificates", "title": "SSL Certificates",
"empty": "There are no SSL Certificates", "empty": "There are no SSL Certificates",
"add": "Add SSL Certificate", "add": "Add SSL Certificate",
"add-letsencrypt": "Add SSL Certificate with Let's Encrypt",
"add-custom": "Add Custom SSL Certificate",
"form-title": "Add {provider, select, letsencrypt{Let's Encrypt} other{Custom}} Certificate", "form-title": "Add {provider, select, letsencrypt{Let's Encrypt} other{Custom}} Certificate",
"delete": "Delete SSL Certificate", "delete": "Delete SSL Certificate",
"delete-confirm": "Are you sure you want to delete this SSL Certificate? Any hosts using it will need to be updated later.", "delete-confirm": "Are you sure you want to delete this SSL Certificate? Any hosts using it will need to be updated later.",