first open-appsec support

This commit is contained in:
roybarda
2023-12-06 11:59:21 +02:00
parent 81a38957bf
commit f9ae99ea49
22 changed files with 440 additions and 8 deletions

View File

@@ -3,12 +3,55 @@
<div class="card-header">
<h3 class="card-title"><%- i18n('settings', 'title') %></h3>
</div>
<div class="card-body no-padding min-100">
<div class="card-body no-padding min-100 has-tabs">
<div class="px-4">
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="nav-item"><a href="#details" aria-controls="tab1" role="tab" data-toggle="tab" class="nav-link active">Nginx Proxy Manager</a></li>
<li role="presentation" class="nav-item"><a href="#open-appsec" aria-controls="tab4" role="tab" data-toggle="tab" class="nav-link">open-appsec Advanced</a></li>
</ul>
</div>
<div class="tab-content">
<!-- npm -->
<div role="tabpanel" class="tab-pane active" id="details">
<div class="row">
<div class="col-sm-12 col-md-12">
<div class="dimmer active">
<div class="loader"></div>
<div class="dimmer-content list-region">
<!-- List Region -->
</div>
</div>
</div>
</div>
</div>
<!-- open-appsec -->
<div role="tabpanel" class="tab-pane" id="open-appsec">
<div class="p-4">
<div class="row">
<div class="col-md-12">
<form>
<div class="form-group">
<label class="form-label">open-appsec Configuration File</label>
<textarea id="local_policy" name="local_policy" rows="15" class="form-control text-monospace" placeholder="# <%- i18n('settings', 'local-policy-warning') %>"></textarea>
</div>
<div id="lp_success_info" class="alert alert-success success" role="alert">Local Policy Updated</div>
<div id="lp_error_info" class="alert alert-danger" role="alert">error</div>
<button type="button" class="btn btn-teal save"><%- i18n('str', 'save-settings') %></button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -5,11 +5,18 @@ const ListView = require('./list/main');
const ErrorView = require('../error/main');
const template = require('./main.ejs');
require('jquery-serializejson');
module.exports = Mn.View.extend({
id: 'settings',
template: template,
ui: {
local_policy_field: '#open-appsec form #local_policy',
lp_success_info: '#open-appsec form #lp_success_info',
lp_error_info: '#open-appsec form #lp_error_info',
form: '#open-appsec form',
save: 'button.save',
list_region: '.list-region',
add: '.add-item',
dimmer: '.dimmer'
@@ -19,9 +26,57 @@ module.exports = Mn.View.extend({
list_region: '@ui.list_region'
},
events: {
'click @ui.save': function (e) {
e.preventDefault();
this.ui.lp_success_info.hide();
this.ui.lp_error_info.hide();
let data = this.ui.form.serializeJSON();
console.log(data);
App.Api.OpenAppsecSettings.save(data)
.then(response => {
this.showSuccess();
})
.catch(err => {
console.error(err);
this.showError(err);
});
}
},
showSuccess: function () {
this.ui.lp_success_info.show();
setTimeout(() => {
this.ui.lp_success_info.fadeOut();
}, 1000);
},
showError: function (err) {
this.ui.lp_error_info.show();
this.ui.lp_error_info.html(err.message);
setTimeout(() => {
this.ui.lp_error_info.fadeOut();
}, 3000);
},
onRender: function () {
let view = this;
this.ui.lp_success_info.hide();
this.ui.lp_error_info.hide();
App.Api.OpenAppsecSettings.get()
.then(response => {
if (!view.isDestroyed() && response) {
view.ui.local_policy_field.val(response);
}
})
.catch(err => {
console.error(err);
});
App.Api.Settings.getAll()
.then(response => {
if (!view.isDestroyed() && response && response.length) {