Compare commits

..

3 Commits

Author SHA1 Message Date
jc21
b4f49969d6 Merge pull request #4261 from NginxProxyManager/develop
v2.12.2
2024-12-29 14:40:05 +10:00
jc21
5084cb7296 Merge pull request #4077 from NginxProxyManager/develop
v2.12.1
2024-10-17 09:49:07 +10:00
jc21
e677bfa2e8 Merge pull request #4073 from NginxProxyManager/develop
v2.12.0
2024-10-16 15:41:55 +10:00
14 changed files with 41 additions and 73 deletions

6
Jenkinsfile vendored
View File

@@ -128,7 +128,7 @@ pipeline {
sh 'docker-compose down --remove-orphans --volumes -t 30 || true' sh 'docker-compose down --remove-orphans --volumes -t 30 || true'
} }
unstable { unstable {
dir(path: 'test/results') { dir(path: 'testing/results') {
archiveArtifacts(allowEmptyArchive: true, artifacts: '**/*', excludes: '**/*.xml') archiveArtifacts(allowEmptyArchive: true, artifacts: '**/*', excludes: '**/*.xml')
} }
} }
@@ -161,7 +161,7 @@ pipeline {
sh 'docker-compose down --remove-orphans --volumes -t 30 || true' sh 'docker-compose down --remove-orphans --volumes -t 30 || true'
} }
unstable { unstable {
dir(path: 'test/results') { dir(path: 'testing/results') {
archiveArtifacts(allowEmptyArchive: true, artifacts: '**/*', excludes: '**/*.xml') archiveArtifacts(allowEmptyArchive: true, artifacts: '**/*', excludes: '**/*.xml')
} }
} }
@@ -199,7 +199,7 @@ pipeline {
sh 'docker-compose down --remove-orphans --volumes -t 30 || true' sh 'docker-compose down --remove-orphans --volumes -t 30 || true'
} }
unstable { unstable {
dir(path: 'test/results') { dir(path: 'testing/results') {
archiveArtifacts(allowEmptyArchive: true, artifacts: '**/*', excludes: '**/*.xml') archiveArtifacts(allowEmptyArchive: true, artifacts: '**/*', excludes: '**/*.xml')
} }
} }

View File

@@ -258,7 +258,6 @@ const internalAccessList = {
}) })
.where('access_list.is_deleted', 0) .where('access_list.is_deleted', 0)
.andWhere('access_list.id', data.id) .andWhere('access_list.id', data.id)
.groupBy('access_list.id')
.allowGraph('[owner,items,clients,proxy_hosts.[certificate,access_list.[clients,items]]]') .allowGraph('[owner,items,clients,proxy_hosts.[certificate,access_list.[clients,items]]]')
.first(); .first();

View File

@@ -40,7 +40,7 @@ services:
- ca.internal - ca.internal
pdns: pdns:
image: pschiffe/pdns-mysql:4.8 image: pschiffe/pdns-mysql
volumes: volumes:
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
environment: environment:

View File

@@ -132,7 +132,7 @@ services:
- 8128:3128 - 8128:3128
pdns: pdns:
image: pschiffe/pdns-mysql:4.8 image: pschiffe/pdns-mysql
container_name: npm2dev.pdns container_name: npm2dev.pdns
volumes: volumes:
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'

View File

@@ -6,10 +6,6 @@ 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 (links && links.length) { %> if (link) { %>
<% links.forEach(function(link, index) { %> <a class="btn btn-<%- btn_color %>" href="#"><%- link %></a>
<div style="margin-bottom: 10px;">
<a class="btn btn-<%- btn_color %>" href="#" data-index="<%- index %>"><%- link %></a>
</div>
<% }); %>
<% } %> <% } %>

View File

@@ -6,9 +6,7 @@ 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: {
@@ -18,8 +16,7 @@ module.exports = Mn.View.extend({
events: { events: {
'click @ui.action': function (e) { 'click @ui.action': function (e) {
e.preventDefault(); e.preventDefault();
const index = $(e.currentTarget).data('index'); this.getOption('action')();
this.getOption('actions')[index]();
} }
}, },
@@ -27,9 +24,8 @@ module.exports = Mn.View.extend({
return { return {
title: this.getOption('title'), title: this.getOption('title'),
subtitle: this.getOption('subtitle'), subtitle: this.getOption('subtitle'),
links: this.getOption('links'), // Changed to array link: this.getOption('link'),
actions: this.getOption('actions'), // Changed to array action: typeof this.getOption('action') === 'function',
hasActions: this.getOption('actions').length > 0,
btn_color: this.getOption('btn_color') btn_color: this.getOption('btn_color')
}; };
} }

View File

@@ -45,14 +45,12 @@ 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}),
links: manage ? [App.i18n('access-lists', 'add')] : [], link: manage ? App.i18n('access-lists', 'add') : null,
btn_color: 'teal', btn_color: 'teal',
permission: 'access_lists', permission: 'access_lists',
actions: [ action: function () {
function () {
App.Controller.showNginxAccessListForm(); App.Controller.showNginxAccessListForm();
} }
]
})); }));
}, },

View File

@@ -45,16 +45,12 @@ 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}),
links: manage ? [App.i18n('certificates', 'add-letsencrypt'), App.i18n('certificates', 'add-custom')] : [], link: manage ? App.i18n('certificates', 'add') : null,
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,14 +45,12 @@ 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}),
links: manage ? [App.i18n('dead-hosts', 'add')] : [], link: manage ? App.i18n('dead-hosts', 'add') : null,
btn_color: 'danger', btn_color: 'danger',
permission: 'dead_hosts', permission: 'dead_hosts',
actions: [ action: function () {
function () {
App.Controller.showNginxDeadForm(); App.Controller.showNginxDeadForm();
} }
]
})); }));
}, },

View File

@@ -41,17 +41,16 @@ 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}),
links: manage ? [App.i18n('proxy-hosts', 'add')] : [], link: manage ? App.i18n('proxy-hosts', 'add') : null,
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,14 +44,12 @@ 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}),
links: manage ? [App.i18n('redirection-hosts', 'add')] : [], link: manage ? App.i18n('redirection-hosts', 'add') : null,
btn_color: 'yellow', btn_color: 'yellow',
permission: 'redirection_hosts', permission: 'redirection_hosts',
actions: [ action: function () {
function () {
App.Controller.showNginxRedirectionForm(); App.Controller.showNginxRedirectionForm();
} }
]
})); }));
}, },

View File

@@ -45,14 +45,12 @@ 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}),
links: manage ? [App.i18n('streams', 'add')] : [], link: manage ? App.i18n('streams', 'add') : null,
btn_color: 'blue', btn_color: 'blue',
permission: 'streams', permission: 'streams',
actions: [ action: function () {
function () {
App.Controller.showNginxStreamForm(); App.Controller.showNginxStreamForm();
} }
]
})); }));
}, },

View File

@@ -185,8 +185,6 @@
"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.",

View File

@@ -215,14 +215,6 @@
"credentials": "# Gandi personal access token\ndns_gandi_token=PERSONAL_ACCESS_TOKEN", "credentials": "# Gandi personal access token\ndns_gandi_token=PERSONAL_ACCESS_TOKEN",
"full_plugin_name": "dns-gandi" "full_plugin_name": "dns-gandi"
}, },
"gcore": {
"name": "Gcore DNS",
"package_name": "certbot-dns-gcore",
"version": "~=0.1.8",
"dependencies": "",
"credentials": "dns_gcore_apitoken = 0123456789abcdef0123456789abcdef01234567",
"full_plugin_name": "dns-gcore"
},
"godaddy": { "godaddy": {
"name": "GoDaddy", "name": "GoDaddy",
"package_name": "certbot-dns-godaddy", "package_name": "certbot-dns-godaddy",