Compare commits
	
		
			3 Commits
		
	
	
		
			11_0_0-98_
			...
			11_0_0-101
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| bec39af49c | |||
| ff9c2fee8c | |||
| 21255abf46 | 
| @@ -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; | ||||
| @@ -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 */ | ||||
| } | ||||
| @@ -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'); | ||||
| 	}); | ||||
| }); | ||||
| @@ -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> | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -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> | ||||
| @@ -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> | ||||
|   | ||||
| @@ -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] | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user