Compare commits

..

3 Commits

Author SHA1 Message Date
bec39af49c * Wed Jul 02 2025 Brian Read <brianr@koozali.org> 11.0.0-101.sme
- Fix busy cursor, csp intervened. [SME: 13064]
2025-07-02 14:10:06 +01:00
ff9c2fee8c * Tue Jul 01 2025 Brian Read <brianr@koozali.org> 11.0.0-100.sme
- Add code in top template default.html.ep to incorporate any panel specific js and css [SME: 13062]
2025-07-01 11:28:58 +01:00
21255abf46 * Mon Jun 30 2025 Brian Read <brianr@koozali.org> 11.0.0-99.sme
- Directory panel  - Add in open for config db as required by cacheing  [SME: 13059]
2025-06-30 20:00:21 +01:00
8 changed files with 94 additions and 90 deletions

View File

@@ -39,6 +39,7 @@ sub main {
sub do_update {
my $c = shift;
$c->app->log->info($c->log_req);
$db = esmith::ConfigDB::UTF8->open() || die "Couldn't open config db";
my $access = $c->param('access');
my $department = $c->param('department');
my $company = $c->param('company');
@@ -84,7 +85,7 @@ sub get_ldap_base {
sub get_value {
my $fm = shift;
my $item = shift;
$db = esmith::ConfigDB::UTF8->open() || die "Couldn't open config db";
my $record = $db->get($item);
if ($record) {
return $record->value();
@@ -93,4 +94,4 @@ sub get_value {
return '';
}
}
1;
1;

View File

@@ -280,4 +280,14 @@ background-color: #e8f3e1;
/* Or specify the desired color */
text-decoration: none;
/* Or any other style you want to reset */
}
#busy-indicator {
display: none;
margin-top: 10px;
font-weight: bold;
color: red;
}
.busy {
cursor: wait; /* Change the cursor to a 'wait' cursor */
}

View File

@@ -28,4 +28,16 @@ $(document).ready(function() {
var iconSrc = inputType === 'password' ? 'images/visible.png' : 'images/visible-slash.png';
$(this).attr('src', iconSrc);
});
});
// and busy cursor
$(document).ready(function() {
// Handle form submission for any form
$('form').on('submit', function(event) {
// Disable all submit buttons and update their labels
$(this).find('button[type="submit"]').prop('disabled', true).text('Please wait...');
$(this).find('input[type="submit"]').prop('disabled', true).val('Please wait...');
// Add busy cursor
$('body').addClass('busy');
});
});

View File

@@ -1,7 +1,5 @@
% layout 'default', title => 'Sme server 2 - datetime';
% content_for 'module' => begin
%= javascript 'js/datetime.js'
%= stylesheet 'css/datetime.css'
<div id='module' class='module datetime-panel'>
% if (config->{debug} == 1) {
<p>

View File

@@ -4,8 +4,6 @@
% layout 'default', title => "Sme server 2 - E-Mail", share_dir => './';
%# css specific to this panel:
% content_for 'module' => begin
%= stylesheet '/css/emailsettings.css'
%= javascript '/js/emailsettings.js'
% use constant FALSE => 0;
% use constant TRUE => 1;

View File

@@ -2,7 +2,6 @@
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- default +jquery -->
<head>
<title><%= $title %></title>
<link rel="made" href="mailto:bugs%40koozali.org">
@@ -11,27 +10,16 @@
%= stylesheet '/css/new_sme.css'
%= stylesheet '/css/new-sme-main.css'
%# Replaced by consolidated (and rationlised) CSS files as above March 2025
%#= stylesheet '/css/sme_core.css'
%#= stylesheet '/css/sme_main.css'
%#= stylesheet '/css/sme_menu.css'
%#= stylesheet '/css/styles.css'
%#= stylesheet '/css/sme-password.css'
%= content_for 'head_contrib'
% if (config 'hasJquery') {
%= include 'partials/_js_imports'
%= include 'common_js'
% if (config 'hasJquery') {
%= include 'partials/_js_imports'
%= include 'common_js'
% }
%= content_for 'refresh'
%= content_for 'refresh'
%= stylesheet '/js/datatables.min.css'
%= javascript '/js/datatables.min.js'
%= stylesheet '/js/jquery-ui.min.css'
%= javascript '/js/jquery-ui.min.js'
%= javascript '/js/dataTables.buttons.min.js'
%= javascript '/js/jszip.min.js'
@@ -44,26 +32,23 @@
<link rel="stylesheet" href="/smanager/css/flag-icon.min.css">
%= stylesheet '/css/sme-jquery-overrides.css'
<style>
#busy-indicator {
display: none;
margin-top: 10px;
font-weight: bold;
color: red;
}
.busy {
cursor: wait; /* Change the cursor to a 'wait' cursor */
}
</style>
%# panel specific css file
% my $controller = stash('controller');
% if ($controller) {
% my $css_path = "css/$controller.css";
%# Use the url_for helper to generate the correct static file URL
% if (app->static->file($css_path)) {
<link rel="stylesheet" href="<%= url_for("/$css_path") %>">
% }
% }
</head>
<body>
% if ( not defined $c->session->{lang} ) {
% SrvMngr::init_session ( $c );
% }
% if ( not defined $c->session->{lang} ) {
% SrvMngr::init_session ( $c );
% }
<div id="header">
%= include 'partials/_header'
% if ($c->is_logged_in && scalar @{SrvMngr::theme_list( $c )} > 1) {
@@ -72,42 +57,40 @@
</div>
<div id="container">
% if (config 'hasJquery') {
%= content 'js_toggleMenu'
% }
% if (config 'hasJquery') {
%= content 'js_toggleMenu'
% }
<div id="navigation" class="col-md-3 module">
%= include 'partials/_nav_menu'
% if ( $c->is_logged_in ) {
%= include 'partials/_user_menu'
% }
% if ( $c->is_admin ) {
%= include 'partials/_navig2'
% }
</div>
<div id="main" class="col-md-9">
%= include 'partials/_info'
% if (flash 'success') {
<br><div class="success module">
%= $c->render_to_string(inline => flash 'success')
<div id="navigation" class="col-md-3 module">
%= include 'partials/_nav_menu'
% if ( $c->is_logged_in ) {
%= include 'partials/_user_menu'
% }
% if ( $c->is_admin ) {
%= include 'partials/_navig2'
% }
</div>
% }
% if ( flash 'warning' ) {
<br><div class="sme-warning module">
%= $c->render_to_string(inline => flash 'warning')
<div id="main" class="col-md-9">
%= include 'partials/_info'
% if (flash 'success') {
<br><div class="success module">
%= $c->render_to_string(inline => flash 'success')
</div>
% }
% if ( flash 'warning' ) {
<br><div class="sme-warning module">
%= $c->render_to_string(inline => flash 'warning')
</div>
%}
% if ( flash 'error' ) {
<br><div class="sme-error module">
%= $c->render_to_string(inline => flash 'error')
</div>
%}
%= content 'module'
%= include 'partials/_footer'
</div>
%}
% if ( flash 'error' ) {
<br><div class="sme-error module">
%= $c->render_to_string(inline => flash 'error')
</div>
%}
%= content 'module'
%= include 'partials/_footer'
</div>
</div>
% if (config 'hasJquery') {
@@ -115,23 +98,17 @@
%= content 'js_togglePassword'
% }
%= javascript '/js/sme-dataTable-setup.js'
<script>
$(document).ready(function() {
// Handle form submission for any form
$('form').on('submit', function(event) {
// Disable the submit button
$(this).find('button[type="submit"], input[type="submit"]').prop('disabled', true);
// Show the busy indicator
// $('#busy-indicator').show();
// Change the cursor to "wait"
$('body').addClass('busy');
});
});
</script>
%= javascript '/js/sme-dataTable-setup.js'
%# Specific panel js code
% $controller = stash('controller');
% if ($controller) {
% my $js_path = "js/$controller.js";
%# Use the url_for helper to generate the correct static file URL
% if (app->static->file($js_path)) {
<script src="<%= url_for("/$js_path") %>"></script>
% }
% }
</body>
</html>

View File

@@ -1,6 +1,5 @@
% layout 'default', title => "Sme server 2 - qmailanalog";
% content_for 'module' => begin
%= javascript '/js/qmailanalog.js'
<div id='module' class='module qmailanalog-panel'>
%if (config->{debug} == 1) {
<p>

View File

@@ -2,7 +2,7 @@ Summary: Sme server navigation module : manager 2
%define name smeserver-manager
Name: %{name}
%define version 11.0.0
%define release 98
%define release 101
Version: %{version}
Release: %{release}%{?dist}
License: GPL
@@ -146,6 +146,15 @@ true
%defattr(-,root,root)
%changelog
* Wed Jul 02 2025 Brian Read <brianr@koozali.org> 11.0.0-101.sme
- Fix busy cursor, csp intervened. [SME: 13064]
* Tue Jul 01 2025 Brian Read <brianr@koozali.org> 11.0.0-100.sme
- Add code in top template default.html.ep to incorporate any panel specific js and css [SME: 13062]
* Mon Jun 30 2025 Brian Read <brianr@koozali.org> 11.0.0-99.sme
- Directory panel - Add in open for config db as required by cacheing [SME: 13059]
* Sun Jun 29 2025 Brian Read <brianr@koozali.org> 11.0.0-98.sme
- Re-factor email settings panel as error handling not working as expected. [SME: 12973]