initial commit of file from CVS for smeserver-manager on Fri Mar 22 14:54:28 AEDT 2024

This commit is contained in:
Trevor Batley
2024-03-22 14:54:28 +11:00
parent eed507434f
commit db139626ba
242 changed files with 25308 additions and 2 deletions

View File

@@ -0,0 +1,83 @@
% layout 'default', title => "Sme server 2 - backup";
% content_for 'module' => begin
<div id='module' class='module back_tape_configure-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
<h2>
%=l 'bac_ENABLE_DISABLE_TAPE'
</h2><br>
%= $c->render_to_string(inline => (l 'bac_TAPE_CONFIG_DESC'))
%= form_for '/backupd' => (method => 'POST') => begin
<p>
<span class=label>
%=l 'bac_ENABLE_TAPE_BACKUP'
</span><span class=data>
% if ( $bac_datas->{status} eq 'checked' ) {
<input type='checkbox' name='Tapebackup' checked >
%} else {
%= check_box 'Tapebackup'
%}
</span>
</p>
<p>
<span class=label>
%=l 'bac_TAPE_BACKUP_TIME'
</span><span class=data>
% param 'BackupHour' => $bac_datas->{backupHour} unless param 'BackupHour';
%= text_field 'BackupHour', size => '2'
% param 'BackupMin' => $bac_datas->{backupMin} unless param 'BackupMin';
%= text_field 'BackupMin', size => '2'
</span>
<!--span class=label-->
%=l 'AM/PM:'
<!--/span--><span class=data>
% param 'BackupAMPM' => $bac_datas->{backupAMPM} unless param 'BackupAMPM';
%= select_field 'BackupAMPM' => ['AM', 'PM'], class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'bac_LOAD_TAPE_REMINDER_TIME'
</span><span class=data>
% param 'ReminderHour' => $bac_datas->{reminderHour} unless param 'ReminderHour';
%= text_field 'ReminderHour', size => '2'
% param 'ReminderMin' => $bac_datas->{reminderMin} unless param 'ReminderMin';
%= text_field 'ReminderMin', size => '2'
</span>
<!--span class=label-->
%=l 'AM/PM:'
<!--/span--><span class=data>
% param 'ReminderAMPM' => $bac_datas->{reminderAMPM} unless param 'ReminderAMPM';
%= select_field 'ReminderAMPM' => ['AM', 'PM'], class => 'input'
</span>
</p><br>
%= hidden_field 'Function' => $bac_datas->{'function'}
<div class='center'>
%= submit_button $c->l('bac_UPDATE_CONF'), class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,39 @@
% layout 'default', title => "Sme server 2 - backup";
% content_for 'module' => begin
<div id='module' class='module back_tape_restore-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
%= form_for '/backupd' => (method => 'POST') => begin
<h2>
%=l 'bac_RESTORE_CONF_FROM_TAPE'
</h2>
%= $c->render_to_string(inline => (l 'bac_RESTORE_CONF_FROM_TAPE_DESC'))
<br>
%= hidden_field 'Function' => $bac_datas->{'function'}
<div class='center'>
%= submit_button $c->l('bac_RESTORE_FROM_TAPE'), class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,55 @@
% layout 'default', title => "Sme server 2 - backup";
% content_for 'module' => begin
<div id='module' class='module back_workstn_configure-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
%= form_for '/backup' => (method => 'POST') => begin
<h2>
%=l 'bac_CONFIGURE_WORKSTN_BACKUP'
</h2>
%= $c->render_to_string(inline => (l 'bac_WORKSTN_BACKUP_DESC'))
%=l 'bac_WORKSTN_BACKUP_ENABLED'
<span class=data>
%= $bac_datas->{status}
</span><br>
%= $c->render_to_string(inline => $c->workstnBackupConfig())
<p><h3>
%= l 'bac_WORKSTATION_BACKUP_SETCONF'
</h3><br>
<span class=label>
%=l 'bac_SELECT_VFS_TYPE'
</span><span class=data>
% param 'VFSType' => $bac_datas->{vfstype} unless param 'VFSType';
%= select_field 'VFSType' => $c->get_VFSType_options(), class => 'input'
</span></p>
%= hidden_field 'Function' => $bac_datas->{'function'} . '1'
<div class='center'>
%= submit_button $c->l('NEXT'), class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,156 @@
% layout 'default', title => "Sme server 2 - backup - conf";
% content_for 'module' => begin
<div id='module' class='module back_workstn_configure1-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
<h2>
%=l 'bac_CONFIGURE_WORKSTN_BACKUP'
</h2>
%= $c->render_to_string(inline => (l 'bac_CONFIGURE_WORKSTN_BACKUP_DESC'))
%= form_for '/backupd' => (method => 'POST') => begin
<p>
<span class=label>
%=l 'bac_ENABLE_WORKSTN_BACKUP'
</span><span class=data>
% if ( $bac_datas->{status} eq 'checked' ) {
<input type='checkbox' name='Workstnbackup' checked >
%} else {
%= check_box 'Workstnbackup'
%}
</span>
</p>
<p><h3>
%= l 'bac_WORKSTATION_BACKUP_DEST'
</h3><br>
% if ( $bac_datas->{vfstype} =~ m/cifs|nfs/s ) {
<span class=label>
%=l 'bac_WORKSTN_NAME'
</span><span class=data>
% param 'BackupwkStation' => $bac_datas->{station} unless param 'BackupwkStation';
%= text_field 'BackupwkStation', size => 20, class => 'input'
</span><br>
%}
% if ( $bac_datas->{vfstype} eq 'usb' ) {
<span class=label>
%=l 'bac_local removable disk'
</span><span class=data>
% param 'BackupwkFolder' => $bac_datas->{mount} unless param 'BackupwkFolder';
%= select_field 'BackupwkFolder' => $c->get_BackupwkDest_options( $bac_datas->{vfstype}), class => 'input'
</span><br>
% } elsif ( $bac_datas->{vfstype} eq 'mnt') {
<span class=label>
%=l 'bac_Mounted disk'
</span><span class=data>
% param 'BackupwkFolder' => $bac_datas->{folder} unless param 'BackupwkFolder';
%= select_field 'BackupwkFolder' => $c->get_BackupwkDest_options( $bac_datas->{vfstype}), class => 'input'
</span><br>
% } else {
<span class=label>
%=l 'bac_SHARED_FOLDER_NAME'
</span><span class=data>
% param 'BackupwkFolder' => $bac_datas->{folder} unless param 'BackupwkFolder';
%= text_field 'BackupwkFolder', size => 20, class => 'input'
</span><br>
%}
% if ( $bac_datas->{vfstype} eq 'cifs' ) {
<span class=label>
%=l 'bac_WORKSTN_LOGIN'
</span><span class=data>
% param 'BackupwkLogin' => $bac_datas->{login} unless param 'BackupwkLogin';
%= text_field 'BackupwkLogin', size => 12, class => 'input'
</span><br><span class=label>
%=l 'bac_PASSWORD'
</span><span class=data>
% param 'BackupwkPassword' => $bac_datas->{password} unless param 'BackupwkPassword';
%= password_field 'BackupwkPassword', size => 12, class => 'input'
</span>
%}
</p><br><h3>
%= l 'bac_WORKSTN_BACKUP_SETTINGS'
</h3><br>
<p><span class=label>
%=l 'bac_NUMBER_OF_SETS'
</span><span class=data>
% param 'SetsNumber' => $bac_datas->{setsNumber} unless param 'SetsNumber';
%= text_field 'SetsNumber', size => '3'
</span>
%=l 'bac_NUMBER_OF_FILES_IN_SET'
<span class=data>
% param 'Filesinset' => $bac_datas->{filesinset} unless param 'Filesinset';
%= text_field 'Filesinset', size => '3'
</span></p>
<p>
<span class=label>
%=l 'bac_WORKSTN_BACKUP_TIME'
</span><span class=data>
% param 'BackupwkHour' => $bac_datas->{hour} unless param 'BackupwkHour';
%= text_field 'BackupwkHour', size => '2'
% param 'BackupwkMin' => $bac_datas->{min} unless param 'BackupwkMin';
%= text_field 'BackupwkMin', size => '2'
</span>
%=l 'AM/PM:'
<span class=data>
% param 'BackupwkAMPM' => $bac_datas->{ampm} unless param 'BackupwkAMPM';
%= select_field 'BackupwkAMPM' => ['AM', 'PM'], class => 'input'
</span>
</p>
<p><span class=label>
%=l 'bac_WORKSTN_TIMEOUT'
</span><span class=data>
% param 'BackupwkTimeout' => $bac_datas->{timeout} unless param 'BackupwkTimeout';
%= text_field 'BackupwkTimeout', size => '2'
</span>
%=l 'bac_INC_ONLY_TIMEOUT'
<span class=data>
% if ( $bac_datas->{incOnlyTimeout} eq 'checked' ) {
<input type='checkbox' name='IncOnlyTimeout' checked >
%} else {
%= check_box 'IncOnlyTimeout'
%}
</span></p>
<p>
<span class=label>
%=l 'bac_COMPRESSION_LEVEL'
</span><span class=data>
% param 'Compression' => $bac_datas->{compression} unless param 'Compression';
%= text_field 'Compression', size => '1'
</span>
%=l 'bac_FULL_ONLY_ON'
<span class=data>
% param 'Dof' => $bac_datas->{dof} unless param 'Dof';
%= select_field 'Dof' => $c->get_dow_list(), class => 'input'
</p><br>
%= hidden_field 'Function' => $bac_datas->{function}
%= hidden_field 'VFSType' => $bac_datas->{vfstype}
<div class='center'>
%= submit_button $c->l('bac_UPDATE_CONF'), class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,46 @@
% layout 'default', title => "Sme server 2 - restore";
% content_for 'module' => begin
<div id='module' class='module back_workstn_restore-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
%= form_for '/backupd' => (method => 'POST') => begin
<h2>
%=l 'bac_WORKSTN_RESTORE'
</h2>
<br><br>
% if ($bac_datas->{status} ne 'enabled') {
%= $c->render_to_string(inline => (l 'bac_CONFIGURATION_TO_BE_DONE'))
% } else {
%= $c->render_to_string(inline => (l 'bac_RESTORE_CONF_FROM_WORKSTN_DESC') . ' ' . $c->get_shared_folder_to_verify())
%}
<br><br><span class=label>
%=l 'bac_SELECT_BACKUP_FILE'
</span><span class=data>
%= select_field 'Backupset' => $c->get_Backupset_options(), class => 'input'
</span><br><br>
%= hidden_field 'Function' => $bac_datas->{'function'}
<div class='center'>
%= submit_button $c->l('bac_RESTORE_FROM_WORKSTN'), class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,38 @@
% layout 'default', title => "Sme server 2 - restore";
% content_for 'module' => begin
<div id='module' class='module back_workstn_restore1-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
%= form_for '/backupd' => (method => 'POST') => begin
<h2>
%=l 'bac_WORKSTN_RESTORE'
</h2>
<p>
%= $c->render_to_string(inline => $bac_datas->{restore_log})
</p><p>
%=l 'bac_YOU_MUST_REBOOT'
</p>
%= hidden_field 'Function' => $bac_datas->{'function'}
<div class='center'>
%= submit_button $c->l('bac_REBOOT'), class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,50 @@
% layout 'default', title => "Sme server 2 - backup";
% content_for 'module' => begin
<div id='module' class='module back_workstn_sel_restore-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
%= form_for '/backupd' => (method => 'POST') => begin
<h2><%=l 'bac_WORKSTN_SEL_RESTORE' %></h2>
%= $c->render_to_string(inline => (l 'bac_WORKSTN_SEL_REST_DESC') . ' ' . $c->get_shared_folder_to_verify())
<h3><%=l 'bac_BACKUP_CHOICE' %></h3>
<br><span class=label>
%=l 'bac_SELECT_BACKUP_FILE'
</span><span class=data>
%= select_field 'Backupset' => $c->get_Restoreset_options(), class => 'input'
</span><br>
<br><span class=label>
%=l 'bac_FILTER_EXPRESSION'
</span><span class=data>
%= text_field 'Filterexp', size => 32, class => 'input'
</span><br>
<br>
%= hidden_field 'Function' => $bac_datas->{'function'}
<div class='center'>
%= submit_button $c->l('PERFORM'), class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,51 @@
% layout 'default', title => "Sme server 2 - backup";
% content_for 'module' => begin
<div id='module' class='module back_workstn_sel_restore1-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
<h2><%=l 'bac_WORKSTN_SELECTIVE_RESTORE' %></h2><br>
%= $c->render_to_string(inline => (l 'bac_READ_COMPLETE'))
%= form_for '/backupd' => (method => 'POST') => begin
<br><span class=label>
%=l 'bac_SELECT_FILES_TO_RESTORE'
</span><span class=data>
%= select_field 'Restorefiles' => $c->get_Restorefiles_options($bac_datas->{'filterexp'},$bac_datas->{'backupset'}), class => 'input', multiple => 1, size => 15
</span><br>
<br><span class=label>
%=l 'bac_SELECT_DATE_BEFORE'
</span><span class=data>
%= text_field 'Seldatebefore', size => 32, class => 'input'
</span><br>
<br>
%= hidden_field 'Function' => $bac_datas->{'function'}
%= hidden_field 'Backupset' => $bac_datas->{'backupset'}
%= hidden_field 'Filterexp' => $bac_datas->{'filterexp'}
<div class='center'>
%= submit_button $c->l('PERFORM'), class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,34 @@
% layout 'default', title => "Sme server 2 - backup";
% content_for 'module' => begin
<div id='module' class='module back_workstn_sel_restore2-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
<h2><%=l 'bac_WORKSTN_SELECTIVE_RESTORE' %></h2>
<br>
%= $c->render_to_string(inline => $bac_datas->{restore_log})
<br>
%= form_for '/backupd' => (method => 'POST') => begin
%= hidden_field 'Function' => $bac_datas->{'function'}
<div class='center'>
%= submit_button $c->l('NEXT'), class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,53 @@
% layout 'default', title => "Sme server 2 - backup - verify";
% content_for 'module' => begin
<div id='module' class='module back_workstn_verify-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
<h2>
%=l 'bac_VERIFY_WORKSTN_BACKUP_FILE'
</h2>
%= form_for '/backup' => (method => 'POST') => begin
% if ($bac_datas->{status} ne 'enabled') {
%= $c->render_to_string(inline => (l 'bac_CONFIGURATION_TO_BE_DONE'))
% } else {
%= $c->render_to_string(inline => (l 'bac_VERIFY_WORKSTN_BACKUP_DESC') . ' ' . $c->get_shared_folder_to_verify())
%}
<br><br><span class=label>
%=l 'bac_SELECT_BACKUP_FILE'
</span><span class=data>
%= select_field 'Backupset' => $c->get_Backupset_options(), class => 'input'
</span><br>
<p><span class=label>
%=l 'bac_CHECK_TO_VERIFY_FULL_RESTORE'
</span><span class=data>
%= check_box 'Verifyall'
</span></p><br>
%=l 'bac_CHECK_INTEGRITY_WARNING'
<br><br>
%= hidden_field 'Function' => $bac_datas->{'function'} . '1'
<div class='center'>
%= submit_button $c->l('bac_VERIFY'), class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,37 @@
% layout 'default', title => "Sme server 2 - backup - verify";
% content_for 'module' => begin
<div id='module' class='module back_workstn_verify1-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas->{function}
<!-- dumper $bac_datas->{'files_list'} -->
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
<h2><%= l 'bac_VERIFY_WORKSTN_BACKUP_FILE' %></h2>
<br>
%= $c->render_to_string(inline => $c->workstnVerify())
<br>
%= form_for '/backupd' => (method => 'POST') => begin
%= hidden_field 'Function' => $bac_datas->{'function'}
<div class='center'>
%= submit_button $c->l('NEXT'), class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,56 @@
<%
my $backups = esmith::BackupHistoryDB->open;
my $now = time();
my $backup_rec = $backups->new_record($now, {
type => 'backup_record', BackupType => 'desktop',
StartEpochTime => $now,
});
# Dump the current mysql tables so that they are part of the image.
# The events handle cases where mysqld is not enabled, and/or is not running.
my $status = system("/sbin/e-smith/signal-event", "pre-backup", "desktop");
if ($status) {
desktopBackupRecordStatus($backup_rec, 'pre-backup', $status);
return ($c->l('bac_OPERATION_STATUS_REPORT').
$c->l('bac_ERR_PRE_BACKUP'));
}
my $clvl = $c->stash('compressionlevel');
my $cmd = "/bin/tar --directory / --create @{$c->stash('directories')} --file=-"
. "@{$c->stash('exclude')} | /usr/bin/gzip $clvl ";
my $success = open my $fh, '-|', $cmd;
unless ($success) { return "Error dowload command."; };
# Write chunk
$c->res->headers->content_type('application/x-tar');
$c->res->headers->content_disposition(qq/attachment; filename="smeserver.tgz"/);
my $cb;
$cb = sub {
my $c = shift;
my $size = 500 * 1024;
my $length = sysread($fh, my $buffer, $size);
unless ($length) {
close $fh;
undef $cb;
$c->finish;
return;
}
$c->write_chunk($buffer, $cb);
};
$c->$cb;
# Remove the dumped tables.
$status = system("/sbin/e-smith/signal-event", "post-backup", "desktop");
if ($status) {
desktopBackupRecordStatus($backup_rec, 'post-backup', $status);
die ($c->l('bac_ERR_POST_BACKUP'),"\n");
}
$now = time();
$backup_rec->set_prop('EndEpochTime', "$now");
$backup_rec->set_prop('Result', "0");
%>

View File

@@ -0,0 +1,81 @@
% layout 'default', title => "Sme server 2 - backup";
% content_for 'module' => begin
<div id='module' class='module backup-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash 'warning' ) {
<br><div class=sme-warning>
%= $c->render_to_string(inline => stash 'warning')
</div>
%}
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
<!--br>Still incomplete click here for previous version
<a href="/server-manager/cgi-bin/backup" target='_blank'><b>(Previous Backup version)</b></a>
<br-->
<%= $c->render_to_string(inline => (l 'bac_BACKUP_DESC_DAR', $bac_datas->{module},
$bac_datas->{dumpsize}, $bac_datas->{tarsize})) %>
%= form_for '/backup' => (method => 'POST') => begin
<h2>
%=l 'bac_BACKUP_CONFIG_STATUS'
</h2>
<p><span class=label>
%=l 'bac_TAPE_BACKUPS',
</span><span class=data2>
%= $c->l(uc($bac_datas->{'backupStatus'})).'.'
</span>
% if ( $bac_datas->{'backupStatus'} eq 'enabled' ) {
%= $c->l('bac_BACKUPS_RUN_AT')
<span class=data>
%= $bac_datas->{'backupTime'}
</span>
%= $c->l('bac_REMINDER_MESSAGE_AT')
<span class=data>
%= $bac_datas->{'reminderTime'}
</span>
%}
<p><span class=label>
%=l 'bac_WORKSTN_BACKUPS',
</span><span class=data2>
%= $c->l(uc($bac_datas->{'backupwkStatus'})).'.'
</span>
% if ( $bac_datas->{'backupwkStatus'} eq 'enabled' ) {
%= $c->l('bac_WKBACKUPS_RUN_AT')
<b>
%= $bac_datas->{'backupwkTime'}
</b>
%}
<p><span class=label>
%=l 'bac_SELECT_AN_ACTION'
</span><span class=data>
% param 'Function' => $bac_datas->{function} unless param 'Function';
%= select_field 'Function' => $c->get_function_options(), class => 'input'
</span></p>
<br>
<div class='center'>
%= submit_button $c->l('PERFORM'), class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,83 @@
% layout 'default', title => 'Sme server 2 - Bug report';
% content_for 'module' => begin
<div id='module' class='module bugreport-panel'>
% if ($config->{debug} == 1) {
<p>
(DBG)route: <%= $c->current_route %><br>
(DBG)trt: <%= $bugr_datas->{trt} %><br>
</p>
% }
<h1><%= $title %></h1>
<!--br><%= $modul %><br-->
<p>
<p><b>
%=l ('bugr_DO_NOT_PANIC')
</b></p>
<p>
%=l ('bugr_SME_EXPERIENCE')
</p><p>
%=l ('bugr_USE_TEMPLATE')
: <a href="https://wiki.koozali.org/Bugzilla_Help#Reporting_Bugs"
target="_blank">https://wiki.koozali.org/Bugzilla_Help#Reporting_Bugs</a>.
</p><p>
%=l ('bugr_PLEASE_REPORT_HERE')
: <a href="https://bugs.koozali.org" target="_blank">https://bugs.koozali.org</a>.
</p><p>
%=l ('bugr_FOLLOWING_REPORT_MIGHT_HELP')
</p><p>
%=l ('bugr_REPORT_CONTENT')
<br><ul><li>
%=l ('bugr_SME_VERSION')
</li><li>
%=l ('bugr_SERVER_MODE')
</li><li>
%=l ('bugr_PREVIOUS_SERVER_MODE')
</li><li>
%=l ('bugr_KERNEL_AND_ARCH')
</li><li>
%=l ('bugr_INSTALLED_RPMS')
</li><li>
%=l ('bugr_ALTERED_TEMPLATES')
</li><li>
%=l ('bugr_ALTERED_EVENTS')
</li><li>
%=l ('bugr_YUM_REPOS')
</li><br></ul>
%=l ('bugr_PRIVACY')
</p><p>
<% my $btn = l('bugr_CREATE_REPORT'); %>
%= form_for 'bugreport' => (method => 'POST') => begin
%= submit_button "$btn", class => 'action'
% end
</p><p><b>
%=l ('bugr_DONATING')
</b><br><br>
%=l ('bugr_AWARE_SME')
<br><br><b>
%=l ('bugr_YOUR_HELP')
</b><br><br>
%=l ('bugr_CONSIDER_DONATING')
<br><br>
%= link_to 'https://wiki.koozali.org/Donate' => begin
%= image '/images/btn_donateCC_LG.gif'
%= hidden_field 'trt' => $bugr_datas->{trt}
% end
<br>
%=l ('bugr_THANK_YOU')
</p>
</div>
%end

View File

@@ -0,0 +1,28 @@
% layout 'default', title => 'Sme server 2 - Bug report 2';
% content_for 'module' => begin
<div id='module' class='module bugreport2-panel'>
% if ($config->{debug} == 1) {
<p>
(DBG)route: <%= $c->current_route %><br>
(DBG)trt: <%= $bugr_datas->{trt} %><br>
</p>
% }
<h1><%= $title %></h1>
<br><%= $modul %><br>
<p>
<% my $btn = l('bugr_Download this report'); %>
%= form_for 'bugreportD' => (method => 'POST') => begin
%= submit_button "$btn", class => 'action'
%= hidden_field 'trt' => $bugr_datas->{trt}
% end
</div>
%end

View File

@@ -0,0 +1,45 @@
% layout 'default', title => "Sme server 2 - clamav";
% content_for 'module' => begin
<div id='module' class='module clamav-panel'>
%if ($config->{debug} == 1) {
<p>(DBG)route: <%= $c->current_route %><br>
(DBG)FsS stat: <%= $clm_datas->{FilesystemScan}%> <br>
(DBG)Quar stat: <%=$clm_datas->{Quarantine} %>
</p>
%}
<h1><%= $title %></h1>
<br>
<%= $modul %>
<% my $btn = l('SAVE'); %>
%= form_for 'clamav' => (method => 'POST') => begin
<p>
<span class=label>
%=l 'clm_LABEL_FILESYSTEM_SCAN_PERIOD'
</span><span class=data>
% param 'FilesystemScan' => $clm_datas->{FilesystemScan} unless param 'FilesystemScan';
%= select_field 'FilesystemScan' => [[ (l 'clm_DAILY') => 'daily'], [ (l 'clm_NEVER') => 'disabled'], [ (l 'clm_WEEKLY') => 'weekly']], class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'clm_LABEL_QUARANTINE'
</span><span class=data>
% param 'Quarantine' => $clm_datas->{Quarantine} unless param 'Quarantine';
%= select_field 'Quarantine' => [[ (l 'ENABLED') => 'enabled'], [ (l 'DISABLED') => 'disabled']], class => 'input'
<br>
</span>
</p>
<p>
<span class=label>
%=l 'clm_LABEL_CLAM_VERSIONS'
</span><span class=data>
%= $clm_datas->{clam_versions}
<br>
</span>
</p>
%= submit_button "$btn", class => 'action'
% end
</div>
%end

View File

@@ -0,0 +1 @@
<script src='js/jquery.min.js' type='text/javascript'></script>

View File

@@ -0,0 +1,10 @@
% layout 'default', title => "Sme server 2 - err 400";
% content_for 'module' => begin
<div id='module' class='module csrf_400-panel'>
<div class=sme-error>
%= l 'CSRF_VALIDATION_FAILURE'
</div>
</div>
% end

View File

@@ -0,0 +1,124 @@
% layout 'default', title => "Sme server 2 - datetime";
% content_for 'module' => begin
<div id='module' class='module datetime-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $dat_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title %></h1><br>
%= $modul
<% my $btn = l('SAVE'); %>
%= form_for '/datetime' => (method => 'POST') => begin
<p>
%= hidden_field 'Old_ntpstatus' => $dat_datas->{ntpstatus};
% param 'Ntpstatus' => $dat_datas->{ntpstatus} unless param 'Ntpstatus';
%= radio_button Ntpstatus => 'enabled'
<span class=label>
%=l 'dat_NTP_CONFIGURE_TITLE'
</span>
<br>
% if ($dat_datas->{ntpstatus} eq 'disabled') {
<div class='datetime-set-ntp'>
%=l 'dat_NTP_ENABLE_DESC'
<br>
</div>
% } else {
<div class='datetime-set-ntp'>
%=l 'dat_NTP_CONFIGURE_DESC'
<br><br>
<p>
%=l 'dat_CURRENT_SETTING'
<b>
%= $dat_datas->{now_string}
</b>
</p>
<br>
<span class=label>
%=l 'dat_NTP_SERVER'
</span><span class=data2>
%= text_field 'Ntpserver' => $dat_datas->{ntpserver}, class => 'input'
</span>
</p>
</div>
% }
%= radio_button Ntpstatus => 'disabled'
<span class=label datetime-set-ntp>
%=l 'dat_NTP_DISABLE_TITLE'
</span>
% if ($dat_datas->{ntpstatus} eq 'enabled') {
<br><BR>
<div class='datetime-set-ntp'>
%=l 'dat_NTP_DISABLE_DESC'
</div>
% } else {
<div class='datetime-set-ntp'>
<br>
</p>
<p>
%=l 'dat_CURRENT_SETTING'
<b>
%= $dat_datas->{now_string}
</b>
<br>
<span class=label>
%=l 'dat_NEW_M/D/Y'
</span><span class=data2>
% param 'Month' => $dat_datas->{month} unless param 'Month';
%= select_field 'Month' => $c->getMonth_list(), class => 'input'
</span><span class=data2>
% param 'Day' => $dat_datas->{day} unless param 'Day';
%= text_field 'Day', size => '2', class => 'input'
</span><span class=data2>
% param 'Year' => $dat_datas->{year} unless param 'Year';
%= text_field 'Year', size => '4', class => 'input'
</span>
<br>
<span class=label>
%=l 'dat_NEW_H/M/S'
</span><span class=data2>
% param 'Hour' => $dat_datas->{hour} unless param 'Hour';
%= text_field 'Hour', size => '2', class => 'input'
</span><span class=data2>
% param 'Minute' => $dat_datas->{minute} unless param 'Minute';
%= text_field 'Minute', size => '2', class => 'input'
</span><span class=data2>
% param 'Second' => $dat_datas->{second} unless param 'Second';
%= text_field 'Second', size => '2', class => 'input'
</span>
<br>
<span class=label>
%=l 'dat_AM/PM_AND_TZ'
</span><span class=data2>
% param 'Ampm' => $dat_datas->{ampm} unless param 'Ampm';
%= select_field 'Ampm' => ['AM', 'PM'], class => 'input'
</span><span class=data2>
% param 'Timezone' => $c->getTimezone() unless param 'Timezone';
%= select_field 'Timezone' => $c->getZone_list(), class => 'input'
</span>
</p>
</div>
% }
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
% end
</div>
%end

View File

@@ -0,0 +1,13 @@
% layout 'default', title => 'Sme server 2 - Support';
% content_for 'module' => begin
<div id='module' class='module default-panel'>
<p><%= $title %></p>
<%= $modul %>
<p>
%= link_to Initial => '/'
</p>
</div>
%end

View File

@@ -0,0 +1,88 @@
% layout 'default', title => "Sme server 2 - directory";
% content_for 'module' => begin
<div id='module' class='module directory-panel'>
%if ($config->{debug} == 1) {
<p>
(DBG)route: <%= $c->current_route %><br>
(DBG)dir. access: <%= $dir_datas->{access}%><br>
</p>
%}
<h1><%= $title %></h1>
<br>
<%= $modul %>
<% my $btn = l('SAVE');
%>
%= form_for 'directory' => (method => 'POST') => begin
<br>
<p>
<span class=label>
%= l('dir_LABEL_ROOT'), class => 'label'
</span> <span class=data>
%= $dir_datas->{root}, class => 'data'
</span>
</p>
<p>
%=l 'dir_DESC_DIRECTORY_ACCESS', class => 'desc'
<br>
<span class=label>
%=l 'dir_DIRECTORY_ACCESS', class => 'label'
</span><span class=data>
% param 'access' => $dir_datas->{access} unless param 'access';
%= select_field 'access' => [[ (l 'NETWORKS_ALLOW_LOCAL') => 'private'], [ (l 'NETWORKS_ALLOW_PUBLIC') => 'public']], class => 'input', id => 'access'
</span>
</p>
<p>
%=l 'dir_DESC_DEPARTMENT', class => 'desc'
<br><br>
<span class=label>
%=l 'dir_DEPARTMENT', class => 'label'
</span><span class=data>
%= text_field 'department' => $dir_datas->{department}, class => 'input'
</span>
</p>
<span class=label>
%=l 'dir_COMPANY', class => 'label'
</span><span class=data>
%= text_field 'company', $dir_datas->{company}, class => 'input'
</span>
</p>
<span class=label>
%=l 'dir_STREET', class => 'label'
</span><span class=data>
%= text_field 'street' => $dir_datas->{street}, class => 'input'
</span>
</p>
<span class=label>
%=l 'dir_CITY', class => 'label'
</span><span class=data>
%= text_field 'city', $dir_datas->{city}, class => 'input'
</span>
</p>
<span class=label>
%=l 'dir_PHONENUMBER', class => 'label'
</span><span class=data>
%= text_field 'phonenumber', $dir_datas->{phonenumber}, class => 'input'
</span>
</p>
<p>
%=l 'dir_DESC_EXISTING', class => 'desc'
<br><br>
<span class=label>
%=l 'dir_EXISTING', class => 'label'
</span><span class=data>
%= select_field 'existing'=> [[ (l 'dir_LEAVE') => 'leave'], [ (l 'dir_UPDATE') => 'update' ]], class => 'input'
</span>
</p>
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
% end
</div>
%end

View File

@@ -0,0 +1,32 @@
% layout 'default', title => "Sme server 2 - domains";
% content_for 'module' => begin
<div id='module' class='module domains-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $dom_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
% if ($dom_datas->{trt} eq 'ADD' or $dom_datas->{trt} eq 'UPD') {
%= include 'partials/_dom_upd'
%} elsif ($dom_datas->{trt} eq 'DEL') {
%= include 'partials/_dom_del'
%} elsif ($dom_datas->{trt} eq 'UP2') {
%= include 'partials/_dom_up2'
%} else {
%= include 'partials/_dom_list'
%}
</div>
%end

View File

@@ -0,0 +1,57 @@
% layout 'default', title => "Sme server 2 - emailaccess";
% content_for 'module' => begin
<div id='module' class='module emailaccess-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $mai_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
%= form_for '/emailsettingd' => (method => 'POST') => begin
%=l 'mai_DESC_POP_ACCESS_CONTROL'
<p><span class=label>
%=l 'mai_LABEL_POP_ACCESS_CONTROL'
</span><span class=input>
% param 'POPAccess' => $c->get_current_pop3_access() unless param 'POPAccess';
%= select_field 'POPAccess' => $c->get_pop_opt(), class => 'input'
</span></p>
%=l 'mai_DESC_IMAP_ACCESS_CONTROL'
<p><span class=label>
%=l 'mai_LABEL_IMAP_ACCESS_CONTROL'
</span><span class=input>
% param 'IMAPAccess' => $c->get_current_imap_access() unless param 'IMAPAccess';
%= select_field 'IMAPAccess' => $c->get_imap_opt(), class => 'input'
</span></p>
%=l 'mai_DESC_WEBMAIL'
<p><span class=label>
%=l 'mai_LABEL_WEBMAIL'
</span><span class=input>
% param 'WebMail' => $c->get_current_webmail_status() unless param 'WebMail';
%= select_field 'WebMail' => $c->get_webmail_opt(), class => 'input'
</span></p>
% my $btn = l('SAVE');
%= submit_button "$btn", class => 'action'
%= hidden_field 'trt' => 'ACC'
% end
</div>
%end

View File

@@ -0,0 +1,92 @@
% layout 'default', title => "Sme server 2 - emaildeliver";
% content_for 'module' => begin
<div id='module' class='module emaildeliver-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $mai_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
%= form_for '/emailsettingd' => (method => 'POST') => begin
<h2>
%=l 'mai_TITLE_UNKNOWN'
</h2>
%=l 'mai_DESC_UNKNOWN'
<p><span class=label>
%=l 'mai_LABEL_UNKNOWN'
</span><span class=input>
% param 'EmailUnknownUser' => $mai_datas->{emailunknownuser} unless param 'EmailUnknownUser';
%= select_field 'EmailUnknownUser' => $c->get_emailunknownuser_opt(), class => 'input'
</span></p>
<hr class='menubar' />
<h2>
%=l 'mai_TITLE_DELEGATE'
</h2>
%=l 'mai_DESC_DELEGATE'
<p><span class=label>
%=l 'mai_LABEL_DELEGATE'
</span><span class=input>
% param 'DelegateMailServer' => $mai_datas->{delegatemailserver} unless param 'DelegateMailServer';
%= text_field 'DelegateMailServer', class => 'input'
</span></p>
<hr class='sectionbar' />
<h2>
%=l 'mai_TITLE_SMARTHOST'
</h2>
%=l 'mai_DESC_SMARTHOST'
<p><span class=label>
%=l 'mai_LABEL_SMARTHOST'
</span><span class=input>
% param 'SMTPSmartHost' => $mai_datas->{smtpsmarthost} unless param 'SMTPSmartHost';
%= text_field 'SMTPSmartHost', class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SMARTHOST_SMTPAUTH_STATUS'
</span><span class=input>
% param 'SMTPAUTHPROXY_status' => $mai_datas->{smtpauthproxystatus} unless param 'SMTPAUTHPROXY_status';
%= select_field 'SMTPAUTHPROXY_status' => [[(l 'DISABLED') => 'disabled'], [(l 'ENABLED') => 'enabled']], class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SMARTHOST_SMTPAUTH_USERID'
</span><span class=input>
% param 'SMTPAUTHPROXY_Userid' => $mai_datas->{smtpauthproxyuserid} unless param 'SMTPAUTHPROXY_Userid';
%= text_field 'SMTPAUTHPROXY_Userid', class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD'
</span><span class=input>
% param 'SMTPAUTHPROXY_Passwd' => $mai_datas->{smtpauthproxypassword} unless param 'SMTPAUTHPROXY_Passwd';
%= password_field 'SMTPAUTHPROXY_Passwd', class => 'input'
</span></p>
% my $btn = l('SAVE');
%= submit_button "$btn", class => 'action'
%= hidden_field 'trt' => 'DEL'
% end
</div>
%end

View File

@@ -0,0 +1,101 @@
% layout 'default', title => "Sme server 2 - emailfilter";
% content_for 'module' => begin
<div id='module' class='module emailfilter-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $mai_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
%= form_for '/emailsettingd' => (method => 'POST') => begin
%=l 'mai_DESC_VIRUS_SCAN'
<p><span class=label>
%=l 'mai_LABEL_VIRUS_SCAN'
</span><span class=input>
% param 'VirusStatus' => $mai_datas->{virusstatus} unless param 'VirusStatus';
%= select_field 'VirusStatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
</span><br></p>
%=l 'mai_DESC_SPAM_SCAN'
<p><span class=label>
%=l 'mai_LABEL_SPAM_SCAN'
</span><span class=input>
% param 'SpamStatus' => $mai_datas->{spamstatus} unless param 'SpamStatus';
%= select_field 'SpamStatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SPAM_SENSITIVITY'
</span><span class=input>
% param 'SpamSensitivity' => $mai_datas->{spamsensitivity} unless param 'SpamSensitivity';
%= select_field 'SpamSensitivity' => $c->get_spam_sensitivity_opt(), class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SPAM_TAGLEVEL'
</span><span class=input>
% param 'SpamTagLevel' => $mai_datas->{spamtaglevel} unless param 'SpamTagLevel';
%= select_field 'SpamTagLevel' => $c->get_spam_level_options(), class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SPAM_REJECTLEVEL'
</span><span class=input>
% param 'SpamRejectLevel' => $mai_datas->{spamrejectlevel} unless param 'SpamRejectLevel';
%= select_field 'SpamRejectLevel' => $c->get_spam_level_options(), class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SORTSPAM'
</span><span class=input>
% param 'SpamSortSpam' => $mai_datas->{spamsortspam} unless param 'SpamSortSpam';
%= select_field 'SpamSortSpam' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
</span></p>
%=l 'mai_DESC_SPAM_SUBJECT'
<p><span class=label>
%=l 'mai_LABEL_SPAM_SUBJECTTAG'
</span><span class=input>
% param 'SpamSubjectTag' => $mai_datas->{spamsubjecttag} unless param 'SpamSubjectTag';
%= select_field 'SpamSubjectTag' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SPAM_SUBJECT'
</span><span class=input>
% param 'SpamSubject' => $mai_datas->{spamsubject} unless param 'SpamSubject';
%= text_field 'SpamSubject' => class => 'input'
</span></p>
%=l 'mai_DESC_BLOCK_EXECUTABLE_CONTENT'
<p><span class=label>
%=l 'mai_LABEL_CONTENT_TO_BLOCK'
</span><span class=input>
% param 'BlockExecutableContent' => $c->get_patterns_current_opt() unless param 'BlockExecutableContent';
%= select_field 'BlockExecutableContent' => $c->get_patterns_opt(), class => 'input', multiple => "1"
</span></p>
% my $btn = l('SAVE');
%= submit_button "$btn", class => 'action'
%= hidden_field 'trt' => 'FIL'
% end
</div>
%end

View File

@@ -0,0 +1,113 @@
% layout 'default', title => "Sme server 2 - emailreceive";
% content_for 'module' => begin
<div id='module' class='module emailreceive-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $mai_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
%= form_for '/emailsettingd' => (method => 'POST') => begin
%=l 'mai_DESC_MODE'
<p><span class=label>
%=l 'mai_LABEL_MODE'
</span><span class=input>
% param 'FetchmailMethod' => $mai_datas->{fetchmailmethod} unless param 'FetchmailMethod';
%= select_field 'FetchmailMethod' => $c->get_retrieval_opt(), class => 'input'
</span></p>
%=l 'mai_DESC_SMTP_AUTH_CONTROL'
<p><span class=label>
%=l 'mai_LABEL_SMTP_AUTH_CONTROL'
</span><span class=input>
% param 'SMTPAuth' => $c->get_current_smtp_auth() unless param 'SMTPAuth';
%= select_field 'SMTPAuth' => $c->get_smtp_auth_opt(), class => 'input'
</span></p>
<hr class="sectionbar" />
<h2>
%=l 'mai_TITLE_SECONDARY'
</h2>
%=l 'mai_DESC_SECONDARY'
<p><span class=label>
%=l 'mai_LABEL_SECONDARY'
</span><span class=input>
% param 'SecondaryMailServer' => $mai_datas->{secondarymailserver} unless param 'SecondaryMailServer';
%= text_field 'SecondaryMailServer', class => 'input'
</span></p>
%=l 'mai_DESC_FETCH_PERIOD'
<p><span class=label>
%=l 'mai_LABEL_FETCH_PERIOD'
</span><span class=input>
% param 'FreqOffice' => $mai_datas->{freqoffice} unless param 'FreqOffice';
%= select_field 'FreqOffice' => $c->fetchmail_freq(), class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_FETCH_PERIOD_NIGHTS'
</span><span class=input>
% param 'FreqOutside' => $mai_datas->{freqoutside} unless param 'FreqOutside';
%= select_field 'FreqOutside' => $c->fetchmail_freq(), class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_FETCH_PERIOD_WEEKENDS'
</span><span class=input>
% param 'FreqWeekend' => $mai_datas->{freqweekend} unless param 'FreqWeekend';
%= select_field 'FreqWeekend' => $c->fetchmail_freq(), class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_POP_ACCOUNT'
</span><span class=input>
% param 'SecondaryMailAccount' => $mai_datas->{secondarymailaccount} unless param 'SecondaryMailAccount';
%= text_field 'SecondaryMailAccount', class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_POP_PASS'
</span><span class=input>
% param 'SecondaryMailPassword' => $mai_datas->{secondarymailpassword} unless param 'SecondaryMailPassword';
%= password_field 'SecondaryMailPassword', class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SORT_METHOD'
</span><span class=input>
% param 'SpecifyHeader' => $mai_datas->{specifyheader} unless param 'SpecifyHeader';
%= select_field 'SpecifyHeader' => [[(l 'mai_DEFAULT') => 'off'], [(l 'mai_SPECIFY_BELOW') => 'on']], class => 'input'
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SORT_HEADER'
</span><span class=input>
% param 'SecondaryMailEnvelope' => $mai_datas->{secondarymailenvelope} unless param 'SecondaryMailEnvelope';
%= text_field 'SecondaryMailEnvelope', class => 'input'
</span></p>
% my $btn = l('SAVE');
%= submit_button "$btn", class => 'action'
%= hidden_field 'trt' => 'REC'
% end
</div>
%end

View File

@@ -0,0 +1,130 @@
% layout 'default', title => "Sme server 2 - emailsettings";
% content_for 'module' => begin
<div id='module' class='module emailsettings-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $mai_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
%= form_for 'emailsettings' => (method => 'POST') => begin
<p><span class=label>
%=l 'mai_LABEL_POP_ACCESS_CONTROL'
</span><span class=data2>
%= $c->get_current_pop3_access( 1 )
</span></p>
<p><span class=label>
%=l 'mai_LABEL_IMAP_ACCESS_CONTROL'
</span><span class=data2>
%= $c->get_current_imap_access( 1 )
</span></p>
<p><span class=label>
%=l 'mai_LABEL_WEBMAIL'
</span><span class=data2>
%= $c->get_current_webmail_status( 1 )
</span></p>
% my $btn = l('mai_DESC_STATE_ACCESS_BUTTON');
<div class='center'>
%= submit_button "$btn", class => 'action'
</div>
%= hidden_field 'trt' => 'ACC'
% end
<hr class="sectionbar" />
%= form_for 'emailsettings' => (method => 'POST') => begin
<p><span class=label>
%=l 'mai_LABEL_VIRUS_SCAN'
</span><span class=data2>
%= $c->get_virus_status(1)
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SPAM_SCAN'
</span><span class=data2>
%= $c->get_spam_status(1)
</span></p>
<p><span class=label>
%=l 'mai_LABEL_BLOCK_EXECUTABLE_CONTENT'
</span><span class=data2>
%= $c->get_patterns_status(1)
</span></p>
% my $btn = l('mai_DESC_STATE_FILTERING_BUTTON');
<div class='center'>
%= submit_button "$btn", class => 'action'
</div>
%= hidden_field 'trt' => 'FIL'
% end
<hr class="sectionbar" />
%= form_for 'emailsettings' => (method => 'POST') => begin
<p><span class=label>
%=l 'mai_LABEL_MODE'
</span><span class=data2>
%= $mai_datas->{fetchmailmethod}
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SMTP_AUTH_CONTROL'
</span><span class=data2>
%= $c->get_current_smtp_auth( 1 )
</span></p>
% my $btn = l('mai_DESC_STATE_RECEPTION_BUTTON');
<div class='center'>
%= submit_button "$btn", class => 'action'
</div>
%= hidden_field 'trt' => 'REC'
% end
<hr class="sectionbar" />
%= form_for 'emailsettings' => (method => 'POST') => begin
<p><span class=label>
%=l 'mai_LABEL_UNKNOWN'
</span><span class=data2>
%= $c->get_emailunknownuser_status( 1 )
</span></p>
<p><span class=label>
%=l 'mai_LABEL_DELEGATE'
</span><span class=data2>
%= $c->get_value('DelegateMailServer')
</span></p>
<p><span class=label>
%=l 'mai_LABEL_SMARTHOST'
</span><span class=data2>
%= $c->get_value('SMTPSmartHost')
</span></p>
% my $btn = l('mai_DESC_STATE_DELIVERY_BUTTON');
<div class='center'>
%= submit_button "$btn", class => 'action'
</div>
%= hidden_field 'trt' => 'DEL'
% end
</div>
%end

View File

@@ -0,0 +1,23 @@
% layout 'default', title => "Sme server 2 - embedded";
% content_for 'module' => begin
<div id='module' class='module module-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1> Embedded - <%=$title %></h1><br>
<p>If the legacy panel does not appear, then you may not be logged into the original Server manager.<br />You can log in by clicking <a href="/server-manager" target='_blank'>here</a>. Or by clicking on the "Legacy SM" button at the top of the window.</p>
% my $height = $c->stash('height') | '600px';
% if ($height !~ /px$/) { $height = $height.'px';}
<object id="legacy-embedded" class="legacy-embedded" data="<%=$c->stash('modul') %>" style="width:99%;height:<%= $height %>;" title="<%= $c->stash('title') %>" type="text/html" ><%= $c->stash('title') %> not found</object>
</div>
%end

View File

@@ -0,0 +1,17 @@
% layout 'default', title => 'Sme server 2 - Error D';
% content_for 'module' => begin
<div id="central" class="sme-error">
<p><br>dev<br> Oups !!!
The page you were requesting
"<%= $self->req->url->path || '/' %>"
caused en exception !!
<br>dev<br>
</p>
<p>
%= link_to Back => '/'
</p>
</div>
% end

View File

@@ -0,0 +1,33 @@
% layout 'default', title => "Sme server 2 - groups";
% content_for 'module' => begin
<div id='module' class='module groups-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $grp_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
% if ($grp_datas->{trt} eq 'ADD') {
%= include 'partials/_grp_add'
%} elsif ($grp_datas->{trt} eq 'DEL') {
%= include 'partials/_grp_del'
%} elsif ($grp_datas->{trt} eq 'UPD') {
%= include 'partials/_grp_upd'
%} else {
%= include 'partials/_grp_list'
%}
</div>
%end

View File

@@ -0,0 +1,35 @@
% layout 'default', title => "Sme server 2 - hostentries";
% content_for 'module' => begin
<div id='module' class='module hostentries-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $hos_datas
</p>
% }
<h1><%= $title%></h1>
% if ( $notif ) {
<br>
<span class=sme-error>
<%= $c->render_to_string(inline => $notif) %>
</span>
%}
% if ($hos_datas->{trt} eq 'ADD' or $hos_datas->{trt} eq 'UPD') {
%= include 'partials/_hos_upd'
%} elsif ($hos_datas->{trt} eq 'DEL') {
%= include 'partials/_hos_del'
%} elsif ( $hos_datas->{trt} eq 'ALC' or $hos_datas->{trt} eq 'ULC') {
%= include 'partials/_hos_ulc'
%} elsif ( $hos_datas->{trt} eq 'ARM' or $hos_datas->{trt} eq 'URM') {
%= include 'partials/_hos_urm'
%} else {
%= include 'partials/_hos_list'
%}
</div>
%end

View File

@@ -0,0 +1,39 @@
% layout 'default', title => "Sme server 2 - ibays";
% content_for 'module' => begin
<div id='module' class='module ibays-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $iba_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
% if ( stash 'modul' ) {
%= $c->render_to_string(inline => stash 'modul' );
% }
% if ($iba_datas->{trt} eq 'ADD') {
%= include 'partials/_iba_upd'
%} elsif ($iba_datas->{trt} eq 'DEL') {
%= include 'partials/_iba_del'
%} elsif ($iba_datas->{trt} eq 'UPD') {
%= include 'partials/_iba_upd'
%} elsif ($iba_datas->{trt} eq 'PWD') {
%= include 'partials/_iba_pwd'
%} else {
%= include 'partials/_iba_list'
%}
</div>
%end

View File

@@ -0,0 +1,28 @@
% layout 'default', title => 'Sme server 2 - Initial';
% content_for 'module' => begin
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
</p>
% }
<div id='central' class='central initial-panel'>
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h3>
%= $title
</h3>
<br>
<p>
%= $modul
</p>
</div>
% end

View File

@@ -0,0 +1,136 @@
<!DOCTYPE html
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- default +jquery -->
<head>
<title><%= $title %></title>
<link rev="made" href="mailto:bugs%40koozali.org">
<meta name="copyright" content="(head.tmpl)Copyright 2003-2004 Mitel Corporation">
%= stylesheet '/css/sme_core.css'
%= stylesheet '/css/sme_main.css'
%= stylesheet '/css/sme_menu.css'
%= stylesheet '/css/styles.css'
%= content_for 'head_contrib'
% if (config 'hasJquery') {
%= include 'partials/_js_imports'
%= include 'common_js'
% }
%= 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'
%= stylesheet '/js/dataTables.buttons.min.js'
%= stylesheet '/js/jszip.min.js'
%= stylesheet '/js/pdfmake.min.js'
%= stylesheet '/js/vfs_fonts.js'
%= stylesheet '/js/buttons.html5.min.js'
%= stylesheet '/js/buttons.print.min.js'
%= stylesheet '/css/sme-jquery-overrides.css'
</head>
<body>
% 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) {
%= include 'partials/_swt_theme'
% }
</div>
<div id="container">
% if (config 'hasJquery') {
%= content 'js_toggleMenu'
% }
<div id="navigation" class="col-md-3">
%= 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>
%= $c->render_to_string(inline => flash 'success')
</div>
% }
% if ( flash 'warning' ) {
<br><div class=sme-warning>
%= $c->render_to_string(inline => flash 'warning')
</div>
%}
% if ( flash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => flash 'error')
</div>
%}
%= content 'module'
%= include 'partials/_footer'
</div>
</div>
% if (config 'hasJquery') {
%= content 'js_swapClass'
%= content 'js_togglePassword'
% }
%= javascript '/js/sme-dataTable-setup.js'
%= javascript begin
//Set menu to initial condition based on localStorage
$(document).ready(function() {
let menunavflag = window.localStorage.getItem('menunav');
if (menunavflag != "false"){
$('#menunav').toggle(true);
} else {
$('#menunav').toggle(false);
}
let menuadmflag = window.localStorage.getItem('menuadm');
if (menuadmflag != "false"){
$('#menuadm').toggle(true);
} else {
$('#menuadm').toggle(false);
}
let menuuserflag = window.localStorage.getItem('menuuser');
if (menuuserflag != "false"){
$('#menuuser').toggle(true);
} else {
$('#menuuser').toggle(false);
}
var sections = document.getElementsByClassName("section-title");
for (var i = 0, len = sections.length; i < len; i++) {
var jqObj = $(sections[i]);
var $section = jqObj.parent().next('div');
if(!$section.length){
return false;
}
let localStorageTag = "admSection-"+sections[i].innerHTML;
if (window.localStorage.getItem(localStorageTag) != "false"){
$section.toggle(true);
} else {
$section.toggle(false);
}
}
})
%end
</body>
</html>

View File

@@ -0,0 +1,32 @@
% layout 'default', title => "Sme server 2 - localnetworks";
% content_for 'module' => begin
<div id='module' class='module localnetworks-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $c->stash("ret")
%= dumper $c->param("localnetwork");
%= dumper $c->stash("ln_datas");
%= dumper $c->param("deletehost");
</p>
% }
<h1><%= $title%></h1>
%= $modul
% if ($ln_datas->{trt} eq 'ADD') {
%= include 'partials/_ln_add'
%} elsif ($ln_datas->{trt} eq 'ADD1') {
%= include 'partials/_ln_add'
%} elsif ($ln_datas->{trt} eq 'DEL') {
%= include 'partials/_ln_del'
%} elsif ($ln_datas->{trt} eq 'DEL1'){
%= include 'partials/_ln_list'
%} else {
%= include 'partials/_ln_list'
%}
</div>
%end

View File

@@ -0,0 +1,69 @@
% layout 'default', title => "Sme server 2 - login";
% content_for 'module' => begin
<div id='module' class='module login-panel'>
%if ( config 'debug' ) {
<p>
%= dumper $c->current_route
%if ( stash 'trt' ) {
%= dumper stash 'trt'
%}
</p>
%}
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
% my $btn = l('use_SIGNIN');
% if ( $trt eq 'RESET' ) {
<br><div class=sme-error><h2>
%= $c->render_to_string(inline => l 'use_DESC_RESET')
</h2></div>
% $btn = l('use_RESET');
%}
<h1>
%=l 'use_TITLE'
</h1>
%= form_for '/login' => (method => 'POST') => begin
<p><span class=label>
%=l 'USER_NAME'
</span><span class=input>
%= text_field 'Username'
</span></p>
% if ( $trt ne 'RESET' ) {
<p><span class=label>
%=l 'PASSWORD'
</span><span class=input>
%= password_field 'Password', id => 'id_password', autocomplete => 'current-password'
% if (config 'hasJquery') {
<a href='#' id='togglePassword' class='toggle-password tg-icon'> <img src="images/visible.png" height="16" alt="Visible"></a>
% }
</span></p>
%}
%= hidden_field 'From' => $c->tx->req->url
%= hidden_field 'Trt' => $trt
<br>
<div class='center'>
%= submit_button "$btn", class => 'action'
</div>
%if ( config 'pwdreset' ) {
<div class='center'><a href='login2'>
%=l 'use_FORGOT'
</a></div>
%}
% end
</div>
%end

View File

@@ -0,0 +1,9 @@
% layout 'default', title => 'Sme server 2 - Manual';
% content_for 'module' => begin
<div id='module' class='module manual-panel'>
<p><h1><%= $title %></h1></p>
%= $c->render_to_string( inline => stash 'modul' )
</div>
% end

View File

@@ -0,0 +1,20 @@
% layout 'default', title => "Sme server 2 - module";
% content_for 'module' => begin
<div id='module' class='module module-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1> <%=$title %></h1><br>
%= $c->render_to_string( inline => stash 'modul' )
</div>
%end

View File

@@ -0,0 +1,15 @@
% layout 'defaultlight', title => 'Sme server 2 - Error D';
% content_for 'module' => begin
<div id="central" class="sme-error">
<p><br>dev<br> Oups !!!
The page you were requesting
"<%= $self->req->url->path || '/' %>"
could not be found.
<br>dev<br>
%= link_to Initial => '/Initial'
</p>
</div>
% end

View File

@@ -0,0 +1,10 @@
% layout 'defaultlight', title => 'Sme server 2 - Error P';
<div id='central' class='central not_found-panel'>
<p><br><br>
The page you were requesting
"<%= $self->req->url->path || '/' %>"
could not be found.
<br><br>
%= link_to Welcome => '/'
</p>
</div>

View File

@@ -0,0 +1,29 @@
<div id='dom_del'>
% my $btn = l('REMOVE');
%= form_for '/domains2' => (method => 'POST') => begin
<p>
<h2>
%=l 'dom_REMOVE_TITLE'
</h2>
</p>
<p>
%= $c->l('dom_REMOVE_DESCRIPTION', $dom_datas->{domain}, $dom_datas->{description});
</p>
<p><b>
%= l('dom_ABOUT_TO_REMOVE')
<b></p>
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $dom_datas->{trt}
%= hidden_field 'Domain' => $dom_datas->{domain}
% end
</div>

View File

@@ -0,0 +1,105 @@
<div id='dom_list'>
% my $btn = l('dom_ADD_DOMAIN');
%= form_for '/domains' => (method => 'POST') => begin
%= l('dom_FORM_DESCRIPTION');
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => 'ADD'
% end
<h2>
%=l 'dom_CURRENT_DOMAINS'
</h2>
<table class="sme-border TableSort"><thead>
<tr>
<th class='sme-border'>
%=l 'DOMAIN_NAME'
</th>
<th class='sme-border'>
%=l 'DESCRIPTION_BRIEF'
</th>
<th class='sme-border'>
%=l 'dom_CONTENT'
</th>
<th class='sme-border'>
%=l 'dom_LABEL_NAMESERVERS'
</th>
<th class='sme-border'>
%=l 'ACTION'
</th>
</tr>
</thead><tbody>
% foreach my $domain ( @$domains ) {
<tr>
%= t td => (class => 'sme-border') => $domain->{Domain}
%= t td => (class => 'sme-border') => $domain->{'Description'}
%= t td => (class => 'sme-border') => $domain->{'Content'}
%= t td => (class => 'sme-border') => l('dom_' . $domain->{'Nameservers'})
% my $actionModify = "<a href='domains2?CsrfDef=TOKEN&trt=UPD&Domain=" . $domain->{Domain} . "'>" . "<button class='sme-modify-button' title=".l('MODIFY').">".l('MODIFY')."</button>" . "</a>";
% my $removable = ($domain->{Removable} || 'yes');
% my $actionRemove = '&nbsp;';
% if ($removable eq 'yes') {
% $actionRemove = "<a href='domains2?CsrfDef=TOKEN&trt=DEL&Domain=" . $domain->{Domain} . "'>" . "<button class='sme-remove-button' title=".l('REMOVE').">".l('REMOVE')."</button>" . "</a>";
% }
<td class='sme-border' style="min-width:15em">
<%= $c->render_to_string(inline => $actionModify) %> <%= $c->render_to_string(inline => $actionRemove) %>
</td>
</tr>
% }
</tbody>
</table>
%= hidden_field 'trt' => 'ADD'
%= form_for '/domains' => (method => 'POST') => begin
<HR class="sectionbar">
% my $btn2 = l('dom_DOMAINS_PAGE_CORPORATE_DNS');
<h3>
%= l 'dom_DESC_CORPORATE_DNS_CURRENT'
</h3>
<p>
<span class=label>
%=l 'dom_LABEL_CORPORATE_DNS_PRIMARY'
</span><span class=data>
%= $dom_datas->{forwarder}
</span>
</p>
% if ($dom_datas->{forwarder2}) {
<p>
<span class=label>
%=l 'dom_LABEL_CORPORATE_DNS_SECONDARY'
</span><span class=data>
%= $dom_datas->{forwarder2}
</span>
</p>
% }
<p>
%= submit_button "$btn2", class => 'action'
</p>
%= hidden_field 'trt' => 'UP2'
% end
</div>

View File

@@ -0,0 +1,37 @@
<div id='dom_up2'>
% my $btn = l('SAVE');
%= form_for '/domains2' => (method => 'POST') => begin
<p><br>
%=l 'dom_DESC_CORPORATE_DNS'
</p>
<p>
<span class=label>
%=l 'dom_LABEL_CORPORATE_DNS_PRIMARY'
</span><span class=data>
% param 'Forwarder' => $dom_datas->{forwarder} unless param 'Forwarder';
%= text_field 'Forwarder', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'dom_LABEL_CORPORATE_DNS_SECONDARY', class => 'label'
</span><span class=data>
% param 'Forwarder2' => $dom_datas->{forwarder2} unless param 'Forwarder2';
%= text_field 'Forwarder2', class => 'input'
</span>
</p>
<p>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $dom_datas->{trt}
%end
</div>

View File

@@ -0,0 +1,70 @@
<div id='dom_upd'>
% my $btn = l('ADD');
%= form_for '/domains2' => (method => 'POST') => begin
<p>
<h2>
% if ( $dom_datas->{trt} eq "ADD" ) {
%=l 'dom_CREATE_TITLE'
% } else {
%=l 'dom_MODIFY_TITLE'
% $btn = l('MODIFY');
% }
</h2>
</p>
<p><br>
<span class=label>
%=l 'DOMAIN_NAME', class => 'label'
</span><span class=data>
% if ( $dom_datas->{trt} eq "ADD" ) {
% param 'Domain' => $dom_datas->{domain} unless param 'Domain';
%= text_field 'Domain', class => 'input'
% } else {
%= hidden_field 'Domain' => $dom_datas->{domain}
%= $dom_datas->{domain}, class => 'data'
% }
</span>
</p>
<p><br>
<span class=label>
%=l 'DESCRIPTION_BRIEF', class => 'label'
</span><span class=data>
% param 'Description' => $dom_datas->{description} unless param 'Description';
%= text_field 'Description', class => 'input'
</span>
</p>
<p><br>
%=l 'dom_CONTENT_FIELD_DESCRIPTION'
<br>
<span class=label>
%= $c->l('dom_CONTENT', '');
</span><span class=data>
% param 'Content' => $dom_datas->{content} unless param 'Content';
%= select_field 'Content', $c->content_options_list(), class => 'input'
</span>
</p>
<p><br>
%=l 'dom_DESC_NAMESERVERS'
<br>
<span class=label>
%=l 'dom_LABEL_NAMESERVERS', class => 'label'
</span><span class=data>
% param 'Nameservers' => $dom_datas->{nameservers} unless param 'Nameservers';
%= select_field 'Nameservers', $c->nameserver_options_list(), class => 'input'
</span>
</p>
<p><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $dom_datas->{trt}
%end
</div>

View File

@@ -0,0 +1,11 @@
<div id="footer">
<HR class="sme-copyrightbar">
<font class="sme-copyright">
% if ( $c->is_logged_in ) {
SME Server <%= session 'releaseVersion' %> - Manager <%= $c->app->VERSION %>
% }
<br>Copyright 1999-2006 Mitel Corporation<br>
%= session 'copyRight'
<br>Copyright (c) 2013-2024 Koozali Foundation Inc.<br>
</font>

View File

@@ -0,0 +1,59 @@
<div id='grp_add'>
% my $btn = l('ADD');
%= form_for '/groups2' => (method => 'POST') => begin
<p><h2>
%=l 'CREATE_GROUP'
</h2><br><br>
%=l 'grp_GROUP_NAMING'
</p>
<p>
<span class=label>
%=l 'GROUP_NAME', class => 'label'
</span><span class=data>
%= text_field 'groupName', class => 'input'
</span>
</p>
<p>
%=l 'grp_GROUP_DESC_EXPL'
<br><br>
<span class=label>
%=l 'grp_GROUP_DESC', class => 'label'
</span><span class=data>
%= text_field 'groupDesc', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'GROUP_MEMBERS', class => 'label'
</span>
<br>
<span class=data>
%= check_box 'groupMembers' => 'admin'
Administrator (admin)
<br>
% my $users = $c->gen_users_list();
% foreach my $key ( sort keys %$users )
% {
%= check_box 'groupMembers' => $key
%=$users->{$key}
%= "(" . $key . ")"
<br>
% }
</span>
</p>
<p>
<br><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $grp_datas->{trt}
% end
</div>

View File

@@ -0,0 +1,63 @@
<div id='grp_del'>
% my $btn = l('REMOVE');
%= form_for '/groups2' => (method => 'POST') => begin
<p><h2>
%=l 'REMOVE_USER_GROUP'
</h2>
<p>
%=l('grp_DELETE_DESCRIPTION', $grp_datas->{group})
</p>
<p>
% my $size = keys %$members;
% if ( ! $size ){
%=l 'ACCOUNT_GROUP_NONE'
% } else {
%=l 'grp_GROUP_HAS_MEMBERS'
<br>
<ul>
% foreach my $key ( keys %$members)
% {
<li>
%=$key
(
%=$members->{$key}
)
</li>
% }
</ul>
% }
</p>
<p>
% $size = keys %$ibays;
% if ( $size ) {
%=l 'grp_IBAYS_WILL_BE_CHANGED'
<br>
<ul>
% foreach my $key (sort ( keys %$ibays ))
% {
<li>
%=$key
(
%=$ibays->{$key}
)
</li>
% }
</ul>
% }
</p>
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $grp_datas->{trt}
%= hidden_field 'groupName' => $grp_datas->{group}
% end
</div>

View File

@@ -0,0 +1,53 @@
<div id='grp_list'>
% my $btn = l('GROUP_ADD');
%= form_for '/groups' => (method => 'POST') => begin
%= hidden_field 'trt' => 'ADD'
<p> <br>
%= submit_button "$btn", class => 'action'
</p>
% end
<p> <h2>
%=l 'grp_CURRENT_LIST'
</h2><br><br>
% my $numGroups = @$groups;
% if ($numGroups == 0){
%=l 'ACCOUNT_GROUP_NONE'
% } else {
<table class="sme-border TableSort"><thead>
<tr>
<th class='sme-border'>
%=l 'GROUP'
</th>
<th class='sme-border'>
%=l 'DESCRIPTION'
</th>
<th class='sme-border'>
%=l 'ACTION'
</th>
</tr>
</thead><tbody>
% foreach my $group ( @$groups )
% {
<tr>
%= t td => (class => 'sme-border') => $group->key
%= t td => (class => 'sme-border') => $group->prop('Description')
<td class='sme-border' style="min-width:15em">
<a href='groups2?CsrfDef=TOKEN&trt=UPD&group=<%= $group->key%>'><button class='sme-modify-button' title=<%=l('MODIFY')%>><%=l('MODIFY') %></button></a>
<a href='groups2?CsrfDef=TOKEN&trt=DEL&group=<%= $group->key%>'><button class='sme-remove-button' title=<%=l('REMOVE')%>><%=l('REMOVE') %></button></a>
</td>
</tr>
% }
</tbody>
</table>
<%} %>
</p>
</div>

View File

@@ -0,0 +1,69 @@
<div id='grp_upd'>
% my $btn = l('SAVE');
%= form_for '/groups2' => (method => 'POST') => begin
<p><h2>
%=l 'MODIFY_USER_GROUP'
</h2><br></p>
<p>
<span class=label>
%=l 'GROUP_NAME', class => 'label'
</span><span class=data>
%= $grp_datas->{group}, class => 'data'
</span>
</p>
<p>
%=l 'grp_GROUP_DESC_EXPL'
<br><br>
<span class=label>
%=l 'grp_GROUP_DESC', class => 'label'
</span><span class=data>
% param 'groupDesc' => $grp_datas->{description} unless param 'groupDesc';
%= text_field 'groupDesc', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'GROUP_MEMBERS', class => 'label'
</span>
<br>
<span class=data>
% if ( $members->{'admin'} ) {
%= check_box 'groupMembers', value => 'admin', checked => undef
%} else {
%= check_box 'groupMembers' => 'admin'
%}
Administrator (admin)
<br>
% my $users = $c->gen_users_list();
% foreach my $key ( sort keys %$users )
% {
% if ( $members->{ $key } ) {
<!-- % = check_box 'groupMembers', value => $key, checked => 'checked' -->
<input type='checkbox' name='groupMembers' checked value='<%= $key %>'>
%} else {
%= check_box 'groupMembers' => $key
%}
%=$users->{$key} . " (" . $key . ")"
<br>
% }
</span>
</p>
<p>
<br><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $grp_datas->{trt}
%= hidden_field 'groupName' => $grp_datas->{group}
% end
</div>

View File

@@ -0,0 +1,27 @@
<div id="header2" class="hd2">
<div id="h2l1">
<div id="h2e11">
<a target='_blank' href="http://www.koozali.org"><img src="images/smeserver_logo.jpg" height="40" alt="SME Server"></a>
</div>
<!-- <div id="h2e12"><h5><a href="initial">Server Manager</a>
<a href="/server-manager" target='_blank'>&nbsp &nbsp (Prev SM)</a></h5> -->
<div id="h2e12" style="float:right;"><br><a href="/server-manager" target='_blank'><button style="background-color:#98d36e;font-weight:bold;color:#063;">Legacy SM</button></a></div>
</div>
<div id="h2l2" class="infobar">
<div id="h2e21">
<b>
<%= session 'SystemName' %>@<%= session 'DomainName' %></b>
</div>
<div id="h2e22">
<a target="_parent" href="manual">&nbsp;&nbsp;<b> ? </b>&nbsp;&nbsp;</a>&nbsp;
</div>
<div id="h2e23">
% if ( not defined $c->session->{username} ) {
<a target="_parent" href="login"><b>Login</b></a>&nbsp;
% } else {
<a target="_parent" href="logout"><b><%= $c->session->{username} %> Logout</b></a>&nbsp;
% }
</div>
</div>
</div>

View File

@@ -0,0 +1,29 @@
<div id='hos_del'>
% my $btn = l('REMOVE');
%= form_for '/hostentriesd' => (method => 'POST') => begin
<p>
<h2>
%=l 'hos_REMOVE_TITLE'
</h2>
</p>
<p>
%= $c->l('hos_REMOVE_PAGE_DESCRIPTION', $hos_datas->{hostname});
</p>
<p><b>
%=l 'hos_ABOUT_TO_REMOVE'
</b></p>
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $hos_datas->{trt}
%= hidden_field 'Hostname' => $hos_datas->{hostname}
% end
</div>

View File

@@ -0,0 +1,73 @@
<div id='hos_list'>
% my $btn = l('hos_ADD_HOSTNAME');
%= form_for '/hostentries' => (method => 'POST') => begin
<p>
%= submit_button "$btn", class => 'action'
<br></p>
%= hidden_field 'trt' => $hos_datas->{trt}
% end
% my %dom_hos = %{$dom_hosts};
% foreach my $domain ( sort ( keys %dom_hos ) ) {
<p><br><b>
%= $c->l('hos_CURRENT_HOSTNAMES_FOR_LOCAL_DOMAIN', $domain);
</b><br></p>
<table class="sme-border TableSort"><thead>
<tr>
<th class='sme-border'>
%=l 'hos_HOSTNAME'
</th>
<th class='sme-border'>
%=l 'hos_HOSTTYPE'
</th>
<th class='sme-border'>
%=l 'IP_ADDRESS_OR_FQDN'
</th>
<th class='sme-border'>
%=l 'hos_ETHERNET_ADDRESS'
</th>
<th class='sme-border'>
%=l 'COMMENT'
</th>
<th class='sme-border'>
%=l 'ACTION'
</th>
</tr>
</thead><tbody>
% foreach (@{$dom_hos{$domain}{'HOSTS'}}) {
<tr>
%= t td => (class => 'sme-border') => $_->{'HostName'};
%= t td => (class => 'sme-border') => $_->{'HostType'};
%= t td => (class => 'sme-border') => $_->{'IP'};
%= t td => (class => 'sme-border') => $_->{'MACAddress'};
%= t td => (class => 'sme-border') => $_->{'Comment'};
% my ($actionModify, $actionRemove) = '&nbsp;';
% if ($_->{'static'} ne 'yes') {
% $actionModify = "<a href='hostentriesd?CsrfDef=TOKEN&trt=UPD&Hostname=" . $_->{'HostName'} . "'>" . "<button class='sme-modify-button' title=".l('MODIFY').">".l('MODIFY')."</button>" . "</a>";
% $actionRemove = "<a href='hostentriesd?CsrfDef=TOKEN&trt=DEL&Hostname=" . $_->{'HostName'} . "'>" . "<button class='sme-remove-button' title=".l('REMOVE').">".l('REMOVE')."</button>" . "</a>";
% }
<td class='sme-border' style="min-width:15em">
<%= $c->render_to_string(inline => $actionModify) %>
<%= $c->render_to_string(inline => $actionRemove) %>
</td>
</tr>
% }
</tbody>
</table>
</p>
% }
</div>

View File

@@ -0,0 +1,60 @@
<div id='hos_ulc'>
<!-- UPDATE HOST TYPE -->
% my $btn = l('NEXT');
%= form_for '/hostentriesd' => (method => 'POST') => begin
<p><h2>
% if ( $hos_datas->{trt} eq "ALC" ) {
%=l 'hos_CREATE_TYPE'
% } else {
%=l 'hos_MODIFY_TYPE'
% $btn = l('MODIFY');
% }
</h2></p>
<p>
%=l 'hos_LOCAL_PAGE_DESCRIPTION'
</p>
<p>
%=l 'hos_LOCAL_IP_DESCRIPTION'
</p>
<p>
<span class=label>
%=l 'hos_LOCAL_IP', class => 'label'
</span><span class=data>
% param 'Internalip' => $hos_datas->{internalip} unless param 'Internalip';
%= text_field 'Internalip', class => 'input'
</span>
</p>
<p>
%=l 'hos_ETHERNET_ADDRESS_DESCRIPTION'
</p>
<p>
<span class=label>
%=l 'hos_ETHERNET_ADDRESS', class => 'label'
</span><span class=data>
% param 'Macaddress' => $hos_datas->{macaddress} unless param 'Macaddress';
%= text_field 'Macaddress', class => 'input'
</span>
</p>
<p><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $hos_datas->{trt}
%= hidden_field 'Hostname' => $hos_datas->{hostname}
%= hidden_field 'Name' => $hos_datas->{name}
%= hidden_field 'Domain' => $hos_datas->{domain}
%= hidden_field 'Comment'=> $hos_datas->{comment}
%= hidden_field 'Hosttype'=> $hos_datas->{hosttype}
%= hidden_field 'Externalip' => $hos_datas->{externalip}
%end
</div>

View File

@@ -0,0 +1,77 @@
<div id='hos_upd'>
% my $btn = l('NEXT');
%= form_for '/hostentriesd' => (method => 'POST') => begin
<p><h2>
% if ( $hos_datas->{trt} eq "ADD" ) {
%=l 'hos_CREATE_TITLE'
% } else {
%=l 'hos_MODIFY_TITLE'
% $btn = l('MODIFY');
% }
</h2></p>
<p>
%=l 'hos_HOSTNAME_DESCRIPTION'
</p>
<p>
<span class=label>
%=l 'hos_HOSTNAME', class => 'label'
</span><span class=data>
% if ( $hos_datas->{trt} eq "ADD" ) {
% param 'Name' => $hos_datas->{name} unless param 'Name';
%= text_field 'Name', class => 'input'
% } else {
%= hidden_field 'Name' => $hos_datas->{name}
%= $hos_datas->{name}, class => 'data'
% }
</span>
</p>
<p>
<span class=label>
%=l 'DOMAIN', class => 'label'
</span><span class=data>
% if ( $hos_datas->{trt} eq "ADD" ) {
% param 'Domain' => $hos_datas->{domain} unless param 'Domain';
%= select_field 'Domain', $c->domains_list(), class => 'input'
% } else {
%= hidden_field 'Domain' => $hos_datas->{domain}
%= $hos_datas->{domain}, class => 'data'
% }
</span>
</p>
<p>
<span class=label>
%= $c->l('COMMENT', '');
</span><span class=data>
% param 'Comment' => $hos_datas->{comment} unless param 'Comment';
%= text_field 'Comment', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'LOCATION', class => 'label'
</span><span class=data>
% param 'Hosttype' => $hos_datas->{hosttype} unless param 'Hosttype';
%= select_field 'Hosttype', $c->hosttype_list(), class => 'input'
</span>
</p>
<p><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $hos_datas->{trt}
%= hidden_field 'Hostname' => $hos_datas->{hostname}
%= hidden_field 'Internalip' => $hos_datas->{internalip}
%= hidden_field 'Externalip' => $hos_datas->{externalip}
%= hidden_field 'Macaddress' => $hos_datas->{macaddress}
%end
</div>

View File

@@ -0,0 +1,37 @@
<div id='hos_urm'>
<!-- UPDATE HOST TYPE -->
% my $btn = l('MODIFY');
%= form_for '/hostentriesd' => (method => 'POST') => begin
<p>
%=l 'hos_REMOTE_PAGE_DESCRIPTION'
</p>
<p>
<span class=label>
%=l 'IP_ADDRESS_OR_FQDN', class => 'label'
</span><span class=data>
% param 'Externalip' => $hos_datas->{externalip} unless param 'Externalip';
%= text_field 'Externalip', class => 'input'
</span>
</p>
<p><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $hos_datas->{trt}
%= hidden_field 'Hostname' => $hos_datas->{hostname}
%= hidden_field 'Name' => $hos_datas->{name}
%= hidden_field 'Domain' => $hos_datas->{domain}
%= hidden_field 'Comment'=> $hos_datas->{comment}
%= hidden_field 'Hosttype'=> $hos_datas->{hosttype}
%= hidden_field 'Internalip' => $hos_datas->{internalip}
%= hidden_field 'Macaddress' => $hos_datas->{macaddress}
%end
</div>

View File

@@ -0,0 +1,22 @@
<div id='iba_del'>
% my $btn = l('REMOVE');
%= form_for '/ibaysd' => (method => 'POST') => begin
<p>
<h2>
%=l 'iba_REMOVE_TITLE'
</h2>
<br>
%= $c->render_to_string(inline => l('iba_REMOVE_DESC', $iba_datas->{ibay}, $iba_datas->{description}));
<br>
</p>
<p>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $iba_datas->{trt}
%= hidden_field 'ibay' => $iba_datas->{ibay}
% end
</div>

View File

@@ -0,0 +1,79 @@
<div id='iba_list'>
% my $btn = l('iba_ADD_IBAY');
%= form_for '/ibays' => (method => 'POST') => begin
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
% end
<p>
%=l 'iba_FIRSTPAGE_DESC'
<br><br>
</p>
% my $numIbays = @$ibays;
% if ($numIbays == 0){
%=l 'iba_NO_IBAYS'
% } else {
<table class="sme-border TableSort"><thead>
<tr>
<th class='sme-border'>
%=l 'NAME'
</th>
<th class='sme-border'>
%=l 'DESCRIPTION'
</th>
<th class='sme-border'>
%=l 'ACTION'
</th>
</tr>
</thead><tbody>
% foreach my $ibay (@$ibays)
% {
% my $modifiable = $ibay->prop('Modifiable') || 'yes';
% my $passwordable = $ibay->prop('Passwordable') || 'yes';
% my $removable = $ibay->prop('Removable') || 'yes';
% my $needPassword = grep { $_ eq $ibay->prop('PublicAccess') }
% qw(local-pw global-pw global-pw-remote);
<tr>
%= t td => (class => 'sme-border') => $ibay->key
%= t td => (class => 'sme-border') => $ibay->prop('Name')
% my ($actionModify, $actionResetPw, $actionRemove) = '&nbsp;';
% if ($modifiable eq 'yes') {
% $actionModify = "<a href='ibaysd?CsrfDef=TOKEN&trt=UPD&ibay=" . $ibay->key . "'>" . "<button class='sme-modify-button' title=".l('MODIFY').">".l('MODIFY')."</button>" . "</a>";
% }
% if ($passwordable eq 'yes') {
% if ($ibay->prop('PasswordSet') ne 'yes' && $needPassword) {
%# $actionResetPw .= "<a href='ibaysd?CsrfDef=TOKEN&trt=PWD&ibay=" . $ibay->key . "' class='error'>" . l('PASSWORD_RESET') . "</a>";
% $actionResetPw .= "<a href='ibaysd?CsrfDef=TOKEN&trt=PWD&ibay=" . $ibay->key. "'>" . "<button class='sme-password-button' style ='border-color:red;' title=".l("Reset-Password").">".l("Reset-Password")."</button></a>";
% } else {
% $actionResetPw .= "<a href='ibaysd?CsrfDef=TOKEN&trt=PWD&ibay=" . $ibay->key . "'>" . "<button class='sme-password-button' title=".l("Reset-Password").">".l("Reset-Password")."</button></a>";
%# $actionResetPw .= "<a href='ibaysd?CsrfDef=TOKEN&trt=PWD&ibay=" . $ibay->key . "'>" . l('PASSWORD_RESET') . "</a>";
% }
% $actionResetPw .= '&nbsp';
% }
% if ($removable eq 'yes') {
% $actionRemove = "<a href='ibaysd?CsrfDef=TOKEN&trt=DEL&ibay=" . $ibay->key . "'>" . "<button class='sme-remove-button' title=".l('REMOVE').">".l('REMOVE')."</button>" . "</a>";
% }
<td class='sme-border' style="min-width:20em">
<%= $c->render_to_string(inline => $actionModify) %>
<%= $c->render_to_string(inline => $actionResetPw)%>
<%= $c->render_to_string(inline => $actionRemove) %>
</td>
</tr>
% }
</tbody>
</table>
<%} %>
%= hidden_field 'trt' => $iba_datas->{trt}
</div>

View File

@@ -0,0 +1,42 @@
<div id='iba_net'>
% my $btn = l('SAVE');
%= form_for '/ibaysd' => (method => 'POST') => begin
<p>
<h2>
%=l 'PASSWORD_RESET'
</h2>
<br><br>
%=l 'iba_PASSWORD_DESC'
%= $iba_datas->{ibay}
</p>
<p>
<span class=label>
%=l 'PASSWORD_NEW', class => 'label'
</span><span class=data>
%= password_field 'newPass', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'PASSWORD_VERIFY_NEW', class => 'label'
</span><span class=data>
%= password_field 'newPassVerify', class => 'input'
</span>
</p>
<p>
<br><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $iba_datas->{trt}
%= hidden_field 'ibay' => $iba_datas->{ibay}
% end
</div>

View File

@@ -0,0 +1,101 @@
<div id='iba_upd'>
% my $btn = l('ADD');
%= form_for '/ibaysd' => (method => 'POST') => begin
<p>
<h2>
%=l 'iba_ADD_TITLE'
</h2>
<br>
%=l 'iba_NAME_FIELD_DESC'
</p>
<p>
<span class=label>
%=l 'iba_NAME_LABEL', class => 'label'
</span><span class=data>
% if ( $iba_datas->{trt} eq 'ADD' ) {
% param 'ibay' => $iba_datas->{ibay} unless param 'ibay';
%= text_field 'ibay', class => 'input'
% } else {
% $btn = l('SAVE');
%= $iba_datas->{ibay}, class => 'data'
% }
</span>
</p>
<p>
<span class=label>
%=l 'DESCRIPTION', class => 'label'
</span><span class=data>
% param 'ibayDesc' => $iba_datas->{description} unless param 'ibayDesc';
%= text_field 'ibayDesc', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'GROUP'
</span><span class=data>
% param 'group' => $iba_datas->{group} unless param 'group';
%= select_field 'group' => $c->group_list_m(), class => 'input'
<br>
</span>
</p>
<p>
<span class=label>
%=l 'iba_USER_ACCESS'
</span><span class=data>
% param 'userAccess' => $iba_datas->{userAccess} unless param 'userAccess';
%= select_field 'userAccess' => $c->userAccess_list_m(), class => 'input'
<br>
</span>
</p>
<p>
<span class=label>
%=l 'iba_PUBLIC_ACCESS'
</span><span class=data>
% param 'publicAccess' => $iba_datas->{publicAccess} unless param 'publicAccess';
%= select_field 'publicAccess' => $c->publicAccess_list_m(), class => 'input'
<br>
</span>
</p>
<p>
<span class=label>
%=l 'iba_ALLOW_DYNAMIC_CONTENT'
</span><span class=data>
% param 'CgiBin' => $iba_datas->{CgiBin} unless param 'CgiBin';
%= select_field 'CgiBin' => [[ (l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
<br>
</span>
</p>
<p>
<span class=label>
%=l 'iba_HTTPS_Only'
</span><span class=data>
% param 'SSL' => $iba_datas->{SSL} unless param 'SSL';
%= select_field 'SSL' => [[ (l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
<br>
</span>
</p>
<p>
<br><br>
%= submit_button $btn, class => 'action'
</p>
%= hidden_field 'trt' => $iba_datas->{trt}
% if ( $iba_datas->{trt} eq 'UPD' ) {
%= hidden_field 'ibay' => $iba_datas->{ibay}
% }
% end
</div>

View File

@@ -0,0 +1,16 @@
<div id="info">
<% if (! $c->session->{PwdSet} ) { %>
<div class="sme-error"><h5>
Warning: you have not yet changed the default system password.</h5></div>
<% } %>
<% if ( $c->is_unsafe ) { %>
<div class="sme-error"><h5>
Warning: a reconfigure and reboot is required before proceeding! Failure to do so now
may leave your system in an unknown state!</h5></div>
<% } %>
<% if ( $c->session->{Access} eq 'public' && (($config->{debug} ne '0') || ($config->{mode} ne 'production')) ) { %>
<div class="sme-error"><h5>
Warning: Development or debug mode enabled AND public access is offered !
</h5></div>
<% } %>
</div>

View File

@@ -0,0 +1,101 @@
<!--*** toggle hide/unhide password field in login panel ***-->
% content_for 'js_togglePassword' => begin
%= javascript begin
$(document).ready(function() {
const togglePassword = document.querySelector('#togglePassword');
const password = document.querySelector('#id_password');
if (( togglePassword ) && ( password )) {
togglePassword.addEventListener('click', function (e) {
// toggle the type attribute
const type = password.getAttribute('type') === 'password' ? 'text' : 'password';
password.setAttribute('type', type);
// toggle the eye slash icon
// this.classList.toggle('eye-slash');
})
}
});
% end
% end
<!--*** toggle hide/unhide menu contents navigation menu ***-->
% content_for 'js_toggleMenu' => begin
%= javascript begin
$(document).ready(function() {
$('#tognav').click(function() {
//alert('click1:'+window.localStorage.getItem('menunav'));
window.localStorage.setItem('menunav',!$('#menunav').is(':visible'));
//alert('click2:'+window.localStorage.getItem('menunav'));
$('#menunav').toggle({ duration: 300 });
});
$('#toguser').click(function() {
window.localStorage.setItem('menuuser',!$('#menuuser').is(':visible'));
$('#menuuser').toggle({ duration: 300 });
});
$('#togadm').click(function() {
window.localStorage.setItem('menuadm',!$('#menuadm').is(':visible'));
$('#menuadm').toggle({ duration: 300 });
});
$('.section-title').click(function() {
var $section = $(this).parent().next('div');
if(!$section.length){
return false;
}
let localStorageTag = "admSection-"+this.innerHTML;
var jqObj = $($section);
window.localStorage.setItem(localStorageTag,!jqObj.is(':visible'));
$section.toggle({ duration: 600 });
})
});
% end
% end
<!--*** swap class on menu element chosen ***-->
% content_for 'js_swapClass' => begin
%= javascript begin
(function($) {
$.fn.swapClass = function(class1, class2) {
this.each(function() {
var $elem = $(this);
if ($elem.hasClass(class1)) {
$elem.removeClass(class1).addClass(class2);
}
else if ($elem.hasClass(class2)) {
$elem.removeClass(class2).addClass(class1);
}
});
};
})(jQuery);
$(document).ready(function() {
$('a.item-current').swapClass('item-current','item');
var pathname = $(location).attr('pathname');
//alert('jQuery loaded. Path searched: ' + pathname);
var menus = $('a.item');
$.each(menus, function() {
if ( $(this).attr('href') == pathname ) {
$(this).swapClass('item', 'item-current');
// alert('menu found! ' + $(this).attr('href') + ' ' + $(this).attr('class'));
}
})
});
% end
% end

View File

@@ -0,0 +1,69 @@
<div id='ln_add'>
% my $retref= $c->stash("ret");
% my %ret;
% unless (length($retref)) {%ret = (ret=>"");}
% else {%ret = %$retref;}
% my @vars = split(",",$ret{vars});
% my $var1 = @vars[0];
% my $var2 = @vars[1];
% my $var3 = @vars[2];
% my $var4 = @vars[3];
% my $var5 = @vars[4];
% my $var6 = @vars[5];
%if ($ret{'ret'} eq "") {
%} elsif (index($ret{ret},"SUCCESS") != -1) {
<div class='success'>
<h2> Operation Status Report</h2>
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
</div>
%} else {
<div class='sme-error'>
<h2> Operation Status Report - Error</h2>
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
</div>
%}
<br />
% my $btn = l('ADD');
% my $network_db = esmith::NetworksDB->open();
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $c->stash("ret")
</p>
% }
%= form_for '/localnetworksb' => (method => 'POST') => begin
<h2>
%=l "ln_ADD_TITLE"
</h2>
<p>
%= $c->render_to_string(inline => l('ln_ADD_DESC'));
</p><br>
<span class=label>
%=l "NETWORK"
</span><span class=data>
%=text_field 'networkAddress'
</span><br><br>
<span class=label>
%=l "ln_SUBNET_MASK"
</span><span class=data>
%=text_field 'networkMask'
</span><br><br>
<span class=label>
%=l "ROUTER"
</span>
<span class=data>
%=text_field 'networkRouter'
</span><br><br>
<div class='center'>
%= submit_button "$btn", class => 'action'
</div>
%end
</div>

View File

@@ -0,0 +1,57 @@
<div id='ln_del'>
% my $btn = l('REMOVE');
% my $deletehosts = $ln_datas->{deletehosts};
% my $subnet = $ln_datas->{subnet};
% my $router = $ln_datas->{router};
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $c->stash("ret")
%= dumper %$ln_datas
%= dumper $deletehosts
</p>
% }
%= form_for '/localnetworkse' => (method => 'POST') => begin
<h2>
%=l "ln_REMOVE_TITLE"
</h2>
<p>
%=l "ln_REMOVE_DESC"
</p><br>
<span class=label>
%=l "NETWORK"
</span><span class=data>
%=$localnetwork
</span><br><br>
<span class=label>
%=l "ln_SUBNET_MASK"
</span><span class=data>
%= $subnet
</span><br><br>
<span class=label>
%=l "ROUTER"
</span>
<span class=data>
%= $router
</span><br><br>
% if($deletehosts) {
<br>
%=$c->l("ln_REMOVE_HOSTS_DESC")
<br>
<span class=label>
%= $c->l("ln_REMOVE_HOSTS_LABEL")
</span>
<span class= data>
%=check_box deletehost=>1, checked=>1
</span><br><br>
%}
%= hidden_field localnetwork=>$localnetwork
<div class='center'>
%= submit_button "$btn", class => 'action'
</div>
%end
</div>

View File

@@ -0,0 +1,99 @@
<div id='ln_list'>
% my $btn = l('ln_LOCALNETWORK_ADD');
%= form_for '/localnetworksa' => (method => 'POST') => begin
<p>
% my $retref= $c->stash("ret");
% my %ret;
% unless (length($retref)) {%ret = (ret=>"");}
% else {%ret = %$retref;}
% if ($config->{debug} == 1) {
<p>
%= dumper "Ret:".$ret{ret};
</p>
%}
% my @vars = split(",",$ret{vars});
% my $var1 = @vars[0];
% my $var2 = @vars[1];
% my $var3 = @vars[2];
% my $var4 = @vars[3];
% my $var5 = @vars[4];
% my $var6 = @vars[5];
% my $var7 = @vars[6];
%if ($ret{ret} eq "") {
%=l "ln_FIRSTPAGE_DESC"
%} elsif (index($ret{ret},"SUCCESS") != -1) {
<div class='success'>
<h2> Operation Status Report</h2>
%= $c->render_to_string(inline => l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6,$var7));
</div>
%} else {
<div class='sme-error'>
<h2> Operation Status Report - Error</h2>
%= $c->render_to_string(inline => l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6,$var7));
</div>
%}
<br><br>
<div class='center'>
%= submit_button "$btn", class => 'action'
</div>
% end
<br>
% my $numlocalnetworks = @$localnetworks;
% if ($numlocalnetworks == 0){
%=l 'ln_LOCAL_NETWORK_NONE'
% } else {
<br>
<table class="sme-border TableSort"><thead>
<tr>
<th class='sme-border'>
%=l 'NETWORK'
</th>
<th class='sme-border'>
%=l 'ln_SUBNET_MASK'
</th>
<th class='sme-border'>
%=l 'ln_NUMBER_OF_HOSTS'
</th>
<th class='sme-border'>
%=l 'ROUTER'
</th>
<th class='sme-border' '>
%=l 'ACTION'
</th>
</tr>
</thead><tbody>
% foreach my $localnetwork (@$localnetworks )
% {
% my ($num_hosts) = esmith::util::computeHostRange( $localnetwork->key, $localnetwork->prop('Mask') );
% my $removable = $localnetwork->prop('Removable') || "yes";
% my $system = $localnetwork->prop('SystemLocalNetwork') || "no";
% if ( $system eq "yes" ) { $removable = "no"; }
<tr>
%= t td => (class => 'sme-border') => $localnetwork->key
%= t td => (class => 'sme-border') => $localnetwork->prop('Mask')
%= t td => (class => 'sme-border') => $num_hosts
%= t td => (class => 'sme-border') => $localnetwork->prop('Router')
% if ($removable eq "yes") {
<td class='sme-border'>
<a href="localnetworksd?CsrfDef=TOKEN&trt=DEL&localnetwork=<%= $localnetwork->key%>"><button class='sme-remove-button' title="<%=l('REMOVE')%>"><%=l('REMOVE') %></button></a></td>
% } else {
<td class='sme-border'> </td>
%}
</tr>
% }
</tbody>
</table>
</p>
%= hidden_field 'trt' => $ln_datas->{trt}
%}
</div>

View File

@@ -0,0 +1,42 @@
% layout 'default', title => 'Sme server 2 - Support';
% content_for 'head' => begin
%= include 'partials/_head'
% end
% content_for 'header' => begin
%= include 'partials/_header'
% end
% content_for 'info' => begin
%= include 'partials/_info'
% end
% content_for 'navigation' => begin
< %= $navigation % >
%= include 'partials/_navig'
% end
% content_for 'footer' => begin
%= include 'partials/_footer'
% end
% content_for 'end' => begin
<div id="end" class="sme-copyrightbar">
content_end
</div>
% end
<div id="module">
<p> < %= $title % ></p><br>
<%= $modul %><br>
Et eu humo modo paratus quadrum turpis validus. Abico appellatio augue qui refero valetudo vereor. Augue diam eu genitus ille letalis nobis typicus veniam.
Dignissim dolus loquor lucidus probo proprius tation torqueo. Abluo luptatum quidem. Acsi aliquip eu ex iaceo natu populus quae scisco si.
Aliquam autem blandit decet in jus loquor quidne saluto te. Eu meus voco wisi. Abico defui euismod huic jumentum lobortis mos vulpes. Causa eros feugiat hendrerit illum luctus nimis quidem valetudo. Elit ex obruo tation usitas vero. Abigo dolus hendrerit huic iriure jumentum letalis lobortis melior nulla. Blandit causa immitto iriure metuo nutus pagus ut voco.
<br>
<p>
%= link_to Welcome => '/'
</p>
</div>

View File

@@ -0,0 +1,36 @@
% use SrvMngr qw( getNavigation );
% my %nav = %{SrvMngr->getNavigation( $c->languages(), 'N' )};
<div id='navmenu'>
<!-- <a href='#' id='tognav' class='menu-title'>NAVIGATION</a> -->
<div id='menunav'>
% my $cc = 1;
% foreach my $h (sort { ($nav{$a}{'WEIGHT'}/$nav{$a}{'COUNT'})
% <=> ($nav{$b}{'WEIGHT'}/$nav{$b}{'COUNT'}) } keys %nav) {
%
<!-- div class='section section-title'><%= $h %></div -->
<div><a href='#' class='section section-title'><%= $h %></a></div>
<div class='togms'>
% my ($classNew, $target, $href) = '';
% foreach (sort { $a->{'WEIGHT'} <=> $b->{'WEIGHT'} } @{$nav{$h}{'DESCRIPTIONS'}}) {
% next if ($_->{'MENUCAT'} ne 'N' ); # menu Navigation
% if ( $_->{'FILENAME'} =~ m/^2\// ) {
% $target = '_self';
% (my $file2 = $_->{'FILENAME'}) =~ s|^2/||;
% $href = '/smanager/' . $file2;
% } else {
% $target = 'main';
% $href = '/server-manager' . $_->{'FILENAME'};
% }
<div class='menu-cell'><a class='item<%= $classNew %>' target='<%= $target %>'
id='sme<%= $cc %>' href='<%= $href %>'><%= $_->{'DESCRIPTION'} %></a></div>
% $cc++;
% }
</div>
% }
</div>
</div>

View File

@@ -0,0 +1,38 @@
% use SrvMngr qw( getNavigation );
% my %nav = %{SrvMngr->getNavigation( $c->languages(), 'A' )};
<div id='navigat2'>
<!-- ><div><a href='#' id='togadm' class='menu-title'>ADMINISTRATION</a></div> -->
<div id='menuadm'>
% my $cc = 1;
% foreach my $h (sort { ($nav{$a}{'WEIGHT'}/$nav{$a}{'COUNT'})
% <=> ($nav{$b}{'WEIGHT'}/$nav{$b}{'COUNT'}) } keys %nav) {
<div><a href='#' class='section section-title'><%= $h %></a></div>
<div class='togms'>
% my ($classNew, $target, $href) = '';
% foreach (sort { $a->{'WEIGHT'} <=> $b->{'WEIGHT'} } @{$nav{$h}{'DESCRIPTIONS'}}) {
% next if ($_->{'MENUCAT'} ne 'A' ); # menu Admin
% if ( $_->{'FILENAME'} =~ m/^2\// ) {
% $target = '_self';
% (my $file2 = $_->{'FILENAME'}) =~ s|^2/||;
% $href = '/smanager/' . $file2;
% } else {
% $target = 'main';
%# $href = '/server-manager' . $_->{'FILENAME'};
%# $href = $c->getlegacyurl($c,'/server-manager' . $_->{'FILENAME'});
% my $host = $c->req->url->to_abs->host;
% $href = "/smanager/legacypanel?url=https://$host/server-manager" . $_->{'FILENAME'};
%
% }
<div class='menu-cell'><a class='item<%= $classNew %>' target='<%= $target %>'
id='sme<%= $cc %>' href='<%= $href %>'><%= $_->{'DESCRIPTION'} %></a></div>
% $cc++;
% }
</div>
% }
</div>
</div>

View File

@@ -0,0 +1,85 @@
<div id='pf_add'>
% my $retref= $c->stash("ret");
% my %ret;
% unless (length($retref)) {%ret = (ret=>"");}
% else {%ret = %$retref;}
% my @vars = split(",",$ret{vars});
% my $var1 = @vars[0];
% my $var2 = @vars[1];
% my $var3 = @vars[2];
% my $var4 = @vars[3];
% my $var5 = @vars[4];
% my $var6 = @vars[5];
%if ($ret{'ret'} eq "") {
%} elsif (index($ret{ret},"SUCCESS") != -1) {
<div class='success'>
<h2> Operation Status Report</h2>
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
</div>
%} else {
<div class='sme-error'>
<h2> Operation Status Report - Error</h2>
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
</div>
%}
<br />
% my $btn = l('ADD');
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $c->stash("ret")
</p>
% }
%= form_for '/portforwardingb' => (method => 'POST') => begin
<h2>
%=l "pf_CREATE_RULE"
</h2>
<p>
%=l "pf_SUMMARY_ADD_DESC"
</p><br>
<span class=label>
%=l "pf_LABEL_PROTOCOL"
</span><span class=data>
%=select_field 'proto'=>["TCP","UDP"]
</span><br><br>
<span class=label>
%=l "pf_LABEL_SOURCE_PORT"
</span><span class=data>
%=text_field 'sport'
</span><br><br>
<span class=label>
%=l "pf_LABEL_DESTINATION_PORT"
</span>
<span class=data>
%=text_field 'dport'
</span><br><br>
<span class=label>
%=l "pf_LABEL_DESTINATION_HOST"
</span>
<span class=data>
%=text_field 'dhost'
</span><br><br>
<span class=label>
%=l "pf_ALLOW_HOSTS"
</span>
<span class=data>
%=text_field 'allow'
</span><br><br>
<span class=label>
%=l "pf_RULE_COMMENT"
</span>
<span class=data>
%=text_field 'cmmnt'
</span><br><br>
<div class='center'>
%= submit_button "$btn", class => 'action'
</div>
%end
</div>

View File

@@ -0,0 +1,65 @@
<div id='ln_del'>
% my $btn = l('REMOVE');
% my $proto = $pf_datas->{proto};
% my $sport = $pf_datas->{sport};
% my $dport = $pf_datas->{dport};
% my $dhost = $pf_datas->{dhost};
% my $cmmnt = $pf_datas->{cmmnt};
% my $allow = $pf_datas->{allow};
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $c->stash("ret")
%= dumper %$pf_datas
</p>
% }
%= form_for '/portforwardinge' => (method => 'POST') => begin
<br>
%= l "pf_SUMMARY_REMOVE_DESC"
</p><br>
<span class=label>
%=l "pf_LABEL_PROTOCOL"
</span><span class=data>
%=$proto
</span><br><br>
<span class=label>
%=l "pf_LABEL_SOURCE_PORT"
</span><span class=data>
%=$sport
</span><br><br>
<span class=label>
%=l "pf_LABEL_DESTINATION_HOST"
</span>
<span class=data>
%=$dport
</span><br><br>
<span class=label>
%=l "pf_LABEL_DESTINATION_PORT"
</span>
<span class=data>
%=$dhost
</span><br><br>
<span class=label>
%=l "pf_RULE_COMMENT"
</span>
<span class=data>
%=$cmmnt
</span><br><br>
<span class=label>
%=l "pf_ALLOW_HOSTS"
</span>
<span class=data>
%=$allow
</span><br><br>
%#}
%= hidden_field sport=>$sport
%= hidden_field proto=>$proto
<div class='center'>
%= submit_button "$btn", class => 'action'
</div>
%end
</div>

View File

@@ -0,0 +1,109 @@
<div id='pf_list'>
% my $btn = l('pf_CREATE_RULE');
%= form_for '/portforwardinga' => (method => 'POST') => begin
% my $retref= $c->stash("ret");
% my %ret;
% unless (length($retref)) {%ret = (ret=>"");}
% else {%ret = %$retref;}
% my $numtcpforwards = @$tcpforwards;
% my $numudpforwards = @$udpforwards;
% my @vars = split(",",$ret{vars});
% my $var1 = @vars[0];
% my $var2 = @vars[1];
% my $var3 = @vars[2];
% my $var4 = @vars[3];
% my $var5 = @vars[4];
% my $var6 = @vars[5];
%if ($ret{ret} eq "") {
%= $c->render_to_string(inline => l('pf_FIRST_PAGE_DESCRIPTION'));
%} elsif (index($ret{ret},"SUCCESS") != -1) {
<div class='success'>
<h2> Operation Status Report</h2>
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
</div>
%} else {
<div class='sme-error'>
<h2> Operation Status Report - Error</h2>
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
</div>
%}
<br><br>
<div class='center'>
%= submit_button "$btn", class => 'action'
</div>
% end
<br>
% if ($empty){
<br>
%=l 'pf_NO_FORWARDS'
% } else {
<br>
%=l 'pf_SHOW_FORWARDS'
<br>
<table class="sme-border TableSort"><thead>
<tr>
<th class='sme-border'>
%=l 'pf_LABEL_PROTOCOL'
</th>
<th class='sme-border'>
%=l 'pf_LABEL_SOURCE_PORT'
</th>
<th class='sme-border'>
%=l 'pf_LABEL_DESTINATION_HOST'
</th>
<th class='sme-border'>
%=l 'pf_LABEL_DESTINATION_PORT'
</th>
<th class='sme-border'>
%=l 'pf_ALLOW_HOSTS'
</th>
<th class='sme-border'>
%=l 'pf_RULE_COMMENT'
</th>
<th class='sme-border' '>
%=l 'ACTION'
</th>
</tr>
</thead><tbody>
% my %forwards = ();
% $forwards{TCP} = $tcpforwards;
% $forwards{UDP} = $udpforwards;
% foreach my $proto (sort keys %forwards) {
% if (@{ $forwards{$proto} }) {
% foreach my $entry (@{ $forwards{$proto} }) {
<tr>
% my $sport = $entry->key;
% my $dhost = $entry->prop('DestHost');
% my $dport = $entry->prop('DestPort') || '';
% my $cmmnt = $entry->prop('Comment') || '';
% my $allow = $entry->prop('AllowHosts') || '';
%= t td => (class => 'sme-border') => $proto
%= t td => (class => 'sme-border') => $sport
%= t td => (class => 'sme-border') => $dhost
%= t td => (class => 'sme-border') => $dport
%= t td => (class => 'sme-border') => $allow
%= t td => (class => 'sme-border') => $cmmnt
<td class='sme-border'>
<a href="portforwardingd?CsrfDef=TOKEN&trt=DEL&sport=<%= $sport%>&proto=<%= $proto%>"><button class='sme-remove-button' title="<%=l('REMOVE')%>"><%=l('REMOVE') %></button></a>
</td>
</tr>
% }
% }
%}
%}
</tbody>
</table>
%= hidden_field 'trt' => $pf_datas->{trt}
</div>

View File

@@ -0,0 +1,46 @@
<div id='prt_add'>
% my $btn = l('ADD');
%= form_for '/printers2' => (method => 'POST') => begin
<p>
<h2>
%=l 'prt_CREATE_NEW_PRINTER'
</h2><br>
%=l 'prt_CREATE_NEW_DESC'
</p><br>
<p>
<span class=label>
%=l 'prt_PRINTER_NAME', class => 'label'
</span><span class=data>
%= text_field 'Name', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'DESCRIPTION_BRIEF', class => 'label'
</span><span class=data>
%= text_field 'Description', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'LOCATION', class => 'label'
</span><span class=data>
%= select_field 'Location' => $c->printerLocation_list(), class => 'input'
</span>
</p>
<p>
<br><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $prt_datas->{trt}
% end
</div>

View File

@@ -0,0 +1,32 @@
<div id='prt_del'>
% my $btn = l('REMOVE');
%= form_for '/printers2' => (method => 'POST') => begin
<p>
<h2>
%=l 'prt_REMOVE_PRINTER'
</h2>
<br><br>
<%=l 'prt_ABOUT_TO_REMOVE'%> <%=$prt_datas->{printer}%>
(<%=$prt_datas->{description}%>)
<br>
%=l 'prt_SPOOL_FILE_WARNING'
<br>
%=l 'prt_ARE_YOU_SURE'
</p>
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $prt_datas->{trt}
%= hidden_field 'printer' => $prt_datas->{printer}
% end
</div>

View File

@@ -0,0 +1,69 @@
<div id='prt_list'>
% my $btn = l('prt_INITIAL_BTN');
%= form_for '/printers' => (method => 'POST') => begin
%= hidden_field 'trt' => 'ADD'
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
% end
<p>
<h2>
%=l 'prt_CURRENT_LIST'
</h2>
<br><br>
% my $numPrinters = @$printerDrivers;
% if ($numPrinters == 0){
%=l 'prt_NO_PRINTERS'
% } else {
<table class="sme-border TableSort"><thead>
<tr>
<th class='sme-border'>
%=l 'NAME'
</th>
<th class='sme-border'>
%=l 'DESCRIPTION'
</th>
<th class='sme-border'>
%=l 'LOCATION'
</th>
<th class='sme-border'>
%=l 'prt_REMOTE_ADDRESS'
</th>
<th class='sme-border'>
%=l 'prt_REMOTE_NAME'
</th>
<th class='sme-border'>
%=l 'ACTION'
</th>
</tr>
</thead><tbody>
% foreach my $printer (@$printerDrivers)
% {
% my $address = ($printer->prop('Location') eq 'remote')
% ? $printer->prop('Address') : 'N/A';
% my $remoteName = ($printer->prop('Location') eq 'remote')
% ? $printer->prop('RemoteName') : 'N/A';
% $remoteName = 'raw' unless ($remoteName);
<tr>
%= t td => (class => 'sme-border') => $printer->key
%= t td => (class => 'sme-border') => $printer->prop('Description')
%= t td => (class => 'sme-border') => $printer->prop('Location')
%= t td => (class => 'sme-border') => $address
%= t td => (class => 'sme-border') => $remoteName
<td class='sme-border'><a href="printers2?CsrfDef=TOKEN&trt=DEL&printer=<%= $printer->key%>"><button class='sme-remove-button' title="<%=l('REMOVE')%>"><%=l('REMOVE') %></button></a></td>
</tr>
% }
</tbody>
</table>
<%} %>
</p>
</div>

View File

@@ -0,0 +1,43 @@
<div id='prt_net'>
% my $btn = l('ADD');
%= form_for '/printers2' => (method => 'POST') => begin
<p>
<h2>
%=l 'prt_CREATE_NETWORK_PRINTER'
</h2>
<br><br>
%=l 'prt_CREATE_NETWORK_DESC'
</p>
<p>
<span class=label>
%=l 'prt_HOSTNAME_OR_IP', class => 'label'
</span><span class=data>
%= text_field 'Address', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'prt_REMOTE_NAME_DESC', class => 'label'
</span><span class=data>
%= text_field 'RemoteName' => 'raw', class => 'input'
</span>
</p>
<p>
<br><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $prt_datas->{trt}
%= hidden_field 'Name' => $prt_datas->{name}
%= hidden_field 'Description' => $prt_datas->{description}
%= hidden_field 'Location' => $prt_datas->{location}
% end
</div>

View File

@@ -0,0 +1,39 @@
<div id='pse_add'>
% my $btn = l('ADD');
%= form_for '/pseudonyms2' => (method => 'POST') => begin
<p>
<h2>
%=l 'pse_TITLE_CREATE'
</h2>
<br>
%= $c->render_to_string(inline => l('pse_VALID_PSEUDONYM_NAMES'));
</p>
<p>
<span class=label>
%=l 'pse_PSEUDONYM_NAME', class => 'label'
</span><span class=data>
%= text_field 'Pseudonym', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'pse_SELECT_ACCOUNT', class => 'label'
</span><span class=data>
%= select_field 'Account' => $c->existing_accounts_list(), class => 'input'
</span>
</p>
<p>
<br><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $pse_datas->{trt}
% end
</div>

View File

@@ -0,0 +1,25 @@
<div id='pse_del'>
% my $btn = l('REMOVE');
%= form_for '/pseudonyms2' => (method => 'POST') => begin
<p>
<h2>
%=l 'pse_REMOVE_PSEUDONYM'
</h2>
<p>
%= $c->render_to_string(inline => l('pse_ABOUT_TO_REMOVE', $pse_datas->{pseudonym}));
</p>
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $pse_datas->{trt}
%= hidden_field 'Pseudonym' => $pse_datas->{pseudonym}
% end
</div>

View File

@@ -0,0 +1,79 @@
<div id='pse_list'>
% my $btn = l('pse_CLICK_TO_CREATE');
%= $c->render_to_string(inline => l('pse_DESCRIPTION'));
%= form_for '/pseudonyms' => (method => 'POST') => begin
%= hidden_field 'trt' => 'ADD'
<p><br>
%= submit_button "$btn", class => 'action'
</p>
% end
<p><h2>
%=l 'pse_CURRENT_PSEUDONYMS'
</h2><br>
% my $numPseudonyms = @$pseudonyms;
% if ($numPseudonyms == 0){
%=l 'pse_ACCOUNT_PSEUDONYM_NONE'
% } else {
<table class="sme-border TableSort"><thead>
<tr>
<th class='sme-border'>
%=l 'pse_PSEUDONYM'
</th>
<th class='sme-border'>
%=l 'pse_USER_OR_GROUP'
</th>
<th class='sme-border'>
%=l 'ACTION'
</th>
<!-- <th class='sme-border' style="display: normal;"></th> -->
</tr></thead>
<tbody>
% foreach my $pseudonym ( @$pseudonyms )
% {
% my $modifiable = $pseudonym->prop('Changeable') || 'yes';
% my $removable = $pseudonym->prop('Removable') || 'yes';
% my $account = $pseudonym->prop('Account');
% $account = "Administrator" if ($account eq "admin");
% $account = $c->l("pse_EVERYONE") if ($account eq "shared");
% my $visible = $pseudonym->prop('Visible');
% $account .= $c->l("pse_LOCAL_ONLY")
% if (defined $visible && $visible eq "internal");
<tr>
%= t td => (class => 'sme-border') => $pseudonym->key
%= t td => (class => 'sme-border') => $account
% my ($actionModify, $actionRemove) = '&nbsp;';
% if ($modifiable eq 'yes') {
% $actionModify = "<a href='pseudonyms2?CsrfDef=TOKEN&trt=UPD&pseudonym=" . $pseudonym->key . "'>" . "<button class='sme-modify-button' title=".l('MODIFY').">".l('MODIFY')."</button>" . "</a>";
% }
% if ($removable eq 'yes') {
% $actionRemove = "<a href='pseudonyms2?CsrfDef=TOKEN&trt=DEL&pseudonym=" . $pseudonym->key . "'>" . "<button class='sme-remove-button' title=".l('REMOVE').">".l('REMOVE')."</button>" . "</a>";
% }
<td class='sme-border' style="min-width:15em">
<%= $c->render_to_string(inline => $actionModify) %>&nbsp;<%= $c->render_to_string(inline => $actionRemove) %>
</td>
</tr>
% }
</tbody>
</table>
<%} %>
</p>
</div>

View File

@@ -0,0 +1,53 @@
<div id='pse_upd'>
% my $btn = l('SAVE');
%= form_for '/pseudonyms2' => (method => 'POST') => begin
<p>
<h2>
%=l 'pse_MODIFY_PSEUDONYM'
</h2>
<br>
%=l 'pse_DESC_PSEUDONYM_NAME'
</p>
<p>
<span class=label>
%=l 'pse_PSEUDONYM_NAME', class => 'label'
</span><span class=data>
%= $pse_datas->{pseudonym}, class => 'data'
</span>
</p>
<p>
<span class=label>
%=l 'pse_SELECT_ACCOUNT', class => 'label'
</span><span class=data>
% param 'Account' => $pse_datas->{account} unless param 'Account';
%= select_field 'Account' => $c->existing_accounts_list(), class => 'input'
</span>
</p>
%if ( $c->is_pseudonym_not_removable( $pse_datas->{pseudonym} ) ) {
<p>
<span class=label>
%=l 'pse_SELECT_INTERNAL', class => 'label'
</span><span class=data>
% param 'Internal' => $pse_datas->{internal} unless param 'Internal';
%= select_field 'Internal' => [ [(l 'YES') => 'YES'], [(l 'NO') => 'NO'] ], class => 'input'
</span>
</p>
%}
<p>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $pse_datas->{trt}
%= hidden_field 'Pseudonym' => $pse_datas->{pseudonym}
%end
</div>

View File

@@ -0,0 +1,70 @@
<div id='quo_list'>
<p>
% my $modul = $c->render_to_string(inline => $c->l('quo_QUOTA_DESC'));
%= $modul
<h3>
%=l 'quo_CURRENT_USAGE_AND_SETTINGS'
</h3>
<br>
% my $numUsers = @$userAccounts;
% if ($numUsers == 0){
%=l 'ACCOUNT_USER_NONE'
% } else {
% my $limit = l('quo_LIMIT_WITH_GRACE_MB'); $limit =~ s#(graceX)#<br>$1#;
% my $absolute = l('quo_ABS_LIMIT_MB'); $absolute =~ s#(limitX)#<br>$1#;
% my $current = l('quo_CURRENT_USAGE'); $current =~ s#(usageX)#<br>$1#;
<table class="sme-border TableSort"><thead>
<tr>
<th class='sme-border'>
%=l 'ACCOUNT'
</th>
<th class='sme-border'>
%=l 'USER_NAME'
</th>
<th class='sme-border'>
%= $limit
</th>
<th class='sme-border'>
%= $absolute
</th>
<th class='sme-border'>
%= $current
</th>
<th class='sme-border'>
%=l 'ACTION'
</th>
</tr>
</thead><tbody>
% foreach my $user (@$userAccounts)
% {
% my $uid = getpwnam($user->key);
% unless ($uid) {
% warn($self->localise('COULD_NOT_GET_UID'),$user->key);
% next;
% }
% my $name = $user->prop("FirstName")." ".$user->prop("LastName");
% my $dev = Quota::getqcarg('/home/e-smith/files');
% my ($bc, $bs, $bh, $bt, $ic, $is, $ih, $it) = Quota::query($dev, $uid);
<tr>
%= t td => (class => 'sme-border') => $user->key
%= t td => (class => 'sme-border') => $name
%= t td => (class => 'sme-border') => sprintf("%.2f", $bs / 1024 )
%= t td => (class => 'sme-border') => sprintf("%.2f", $bh / 1024 )
%= t td => (class => 'sme-border') => sprintf("%.2f", $bc / 1024 )
<td class='sme-border'><a href="quotad?CsrfDef=TOKEN&trt=UPD&user=<%= $user->key%>"><button class='sme-modify-button' title="<%=l('MODIFY')%>"><%=l('MODIFY') %></button></a></td>
</tr>
% }
</tbody>
</table>
<%} %>
</p>
%= hidden_field 'trt' => $quo_datas->{trt}
</div>

View File

@@ -0,0 +1,84 @@
<div id='quo_upd'>
% my $btn = l('SAVE');
%= form_for '/quota2' => (method => 'POST') => begin
<p>
<h2>
%=l 'quo_MODIFY_USER_TITLE'
</h2>
</p>
% my $userid = $quo_datas->{user};
% my $user = $quo_datas->{userRec};
<!--
for my $user @$userAccounts
{
unless ( $user->key eq $userid) {
warn(l('USER_DIFFERENT'),$user->key);
next;
}
}
-->
% my $uid = getpwnam($user->key);
% unless ($uid) {
% warn(l('COULD_NOT_GET_UID'),$user->key);
% next;
% }
% my $name = $user->prop("FirstName") . " " . $user->prop("LastName");
% my $dev = Quota::getqcarg('/home/e-smith/files');
% my ($bc, $bs, $bh, $bt, $ic, $is, $ih, $it) = Quota::query($dev, $uid);
<p>
%=l 'quo_USER'
%= "$name (\"$userid\")"
%=l 'quo_CURRENTLY_HAS'
%= $ic
%=l 'quo_FILES'
%=l 'quo_OCCUPYING'
%= $bc
%=l 'quo_MEGABYTES'
</p>
<p>
%=l 'quo_INSTRUCTIONS'
</p>
<p>
<span class=label>
%=l 'quo_USER', class => 'label'
</span><span class=data>
%= $name, class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'quo_LIMIT_WITH_GRACE', class => 'label'
</span><span class=data>
% param 'Soft' => $quo_datas->{softlim} unless param 'Soft';
%= text_field 'Soft', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'quo_ABS_LIMIT', class => 'label'
</span><span class=data>
% param 'Hard' => $quo_datas->{hardlim} unless param 'Hard';
%= text_field 'Hard', class => 'input'
</span>
</p>
<p>
<br><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $quo_datas->{trt}
%= hidden_field 'user' => $quo_datas->{user}
% end
</div>

View File

@@ -0,0 +1,14 @@
<p><h2>
%=l 'rma_TITLE_PPTP'
</h2><br>
%=l 'rma_DESC_PPTP'
<br>
<span class=label>
%=l 'rma_LABEL_PPTP'
</span><span class=data>
% param 'PptpSessions' => $c->get_pptp_sessions unless param 'PptpSessions';
%= text_field 'PptpSessions' => $c->get_pptp_sessions(), class => 'input'
</span>
</p>
<hr class='sectionbar' />

View File

@@ -0,0 +1,14 @@
<div id='swt_theme'>
<font class="sme-copyright">
% my $btn = l('swt_THEME');
%= form_for $c->url_for('swttheme') => (method => 'POST') => begin
% my $value = $c->session->{'CurrentTheme'};
% $value = session 'CurrentTheme';
% param 'Theme' => $value unless param 'Theme';
%= select_field 'Theme' => $c->theme_list(), class => 'input'
%= hidden_field 'From' => $c->tx->req->url
%= submit_button "$btn"
% end
</font>
</div>

View File

@@ -0,0 +1,32 @@
% use SrvMngr qw( getNavigation );
% my %nav = %{SrvMngr->getNavigation( $c->languages(), 'U' )};
<div id='usermenu'>
<a href='#' id='toguser' class='section section-title'>Current User (<%= session 'username' %>)</a>
<div id='menuuser'>
% my $cc = 1;
% foreach my $h (sort { ($nav{$a}{'WEIGHT'}/$nav{$a}{'COUNT'})
% <=> ($nav{$b}{'WEIGHT'}/$nav{$b}{'COUNT'}) } keys %nav) {
<!-- div class='section'><%= $h %></div -->
% my ($classNew, $target, $href) = '';
% foreach (sort { $a->{'WEIGHT'} <=> $b->{'WEIGHT'} } @{$nav{$h}{'DESCRIPTIONS'}}) {
% next if ($_->{'MENUCAT'} ne 'U' ); # menu User
% if ( $_->{'FILENAME'} =~ m/^2\// ) {
% $target = '_self';
% (my $file2 = $_->{'FILENAME'}) =~ s|^2/||;
% $href = '/smanager/' . $file2;
% } else {
% $target = 'main';
% $href = '/server-manager' . $_->{'FILENAME'};
% }
<div class='menu-cell'><a class='item<%= $classNew %>' target='<%= $target %>'
id='sme<%= $cc %>' href='<%= $href %>'><%= $_->{'DESCRIPTION'} %></a></div>
% $cc++;
% }
% }
</div>
</div>

View File

@@ -0,0 +1,28 @@
<div id='usr_del'>
% my $btn = l('REMOVE');
%= form_for '/useraccountsd' => (method => 'POST') => begin
<p>
<h2>
%=l 'usr_REMOVE_ACCOUNT_TITLE'
</h2>
<br>
%= $c->l('usr_REMOVE_DESC', $usr_datas->{user}, $usr_datas->{name} );
<br>
%= $c->render_to_string(inline => $c->l('usr_REMOVE_DESC2'))
</p>
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user}
%= hidden_field 'name' => $usr_datas->{name}
% end
</div>

View File

@@ -0,0 +1,94 @@
<div id='usr_list'>
% my $btn = l('usr_ADD_USER');
%= form_for '/useraccounts' => (method => 'POST') => begin
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
% end
<p>
%= $c->render_to_string(inline => $c->l('usr_FIRSTPAGE_DESC'))
<br>
</p>
% my $numUsers = @$users;
% if ($numUsers == 0){
%=l 'usr_NO_USER_ACCOUNTS'
% } else {
<table class="sme-border TableSort"><thead>
<tr>
<th class='sme-border'>
%=l 'ACCOUNT'
</th>
<th class='sme-border'>
%=l 'USER_NAME'
</th>
<th class='sme-border'>
%=l 'usr_VPN_CLIENT_ACCESS'
</th>
<th class='sme-border'>
%=l 'usr_FORWARDING_ADDRESS'
</th>
<th class='sme-border'>
%=l 'ACTION'
</th>
</tr>
</thead><tbody>
% foreach my $user (@$users) {
% my $username = $user->key();
% my $first = $user->prop('FirstName');
% my $last = $user->prop('LastName');
% my $lockable = $user->prop('Lockable') || 'yes';
% my $removable = $user->prop('Removable') || 'yes';
% my $fwd = (($user->prop('EmailForward') || 'local') =~ m/^forward|both$/) ?
% $user->prop('ForwardAddress') : '';
% my $vpnaccess = $user->prop('VPNClientAccess') || 'no';
% $vpnaccess = $vpnaccess eq 'yes' ? $c->l('YES') : $c->l('NO');
% my $password_set = $user->prop('PasswordSet');
<tr>
%= t td => (class => 'sme-border') => $username
%= t td => (class => 'sme-border') => "$first $last"
%= t td => (class => 'sme-border') => $vpnaccess
%= t td => (class => 'sme-border') => $fwd
% my ($actionModify, $actionLock, $actionResetPw, $actionRemove) = '&nbsp;';
% if ($username eq 'admin') {
% $actionModify = "<a href='useraccountsd?CsrfDef=TOKEN&trt=UPS&user=" . $username . "'>" . "<button class='sme-modify-button' title=".l("MODIFY").">".l("MODIFY")."</button></a>";
% $actionResetPw = "<a href='useraccountsd?CsrfDef=TOKEN&trt=PWS&user=" . $username . "'>" . "<button class='sme-password-button' title=".l("Reset-Password").">".l("Reset-Password")."</button></a>";
% } else {
% $actionModify = "<a href='useraccountsd?CsrfDef=TOKEN&trt=UPD&user=" . $username . "'>" . "<button class='sme-modify-button' title=".l("MODIFY").">".l("MODIFY")."</button></a>";
% if ($password_set ne 'yes') {
% $actionLock = l('ACCOUNT_LOCKED');
% $actionResetPw = "<a href='useraccountsd?CsrfDef=TOKEN&trt=PWD&user=" . $username . "'>" . "<button class='sme-password-button' style ='border-color:red;' title=".l("Reset-Password").">".l("Reset-Password")."</button></a>";
% } else {
% $actionLock = "<a href='useraccountsd?CsrfDef=TOKEN&trt=LCK&user=" . $username . "'>" . "<button class='sme-lock-button' title=".l('usr_LOCK_ACCOUNT').">".l("usr_LOCK_ACCOUNT")."</button></a>";
% $actionResetPw = "<a href='useraccountsd?CsrfDef=TOKEN&trt=PWD&user=" . $username . "'>" . "<button class='sme-password-button' title=".l("Reset-Password").">".l("Reset-Password")."</button></a>";
% }
% if ( $removable eq 'yes' ) {
% $actionRemove = "<a href='useraccountsd?CsrfDef=TOKEN&trt=DEL&user=" . $username . "'>" . "<button class='sme-remove-button' title=".l("REMOVE").">".l("REMOVE")."</button></a>";
% }
% }
<td class='sme-border' style="min-width:35em">
<%= $c->render_to_string(inline => $actionModify) %>
<%= $c->render_to_string(inline => $actionResetPw) %>
<%= $c->render_to_string(inline => $actionLock) %>
<%= $c->render_to_string(inline => $actionRemove) %>
</td>
</tr>
% }
</tbody>
</table>
<%} %>
%= hidden_field 'trt' => $usr_datas->{trt}
</div>

View File

@@ -0,0 +1,28 @@
<div id='usr_lock'>
% my $btn = l('usr_LOCK');
%= form_for '/useraccountsd' => (method => 'POST') => begin
<p>
<h2>
%=l 'usr_LOCK_ACCOUNT_TITLE'
</h2>
<br>
%= $c->l('usr_LOCK_DESC', $usr_datas->{user}, $usr_datas->{name} );
<br>
%= $c->render_to_string(inline => $c->l('usr_LOCK_DESC2'))
</p>
<p>
<br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user}
%= hidden_field 'name' => $usr_datas->{name}
% end
</div>

View File

@@ -0,0 +1,44 @@
<div id='usr_pwd'>
% my $btn = l('SAVE');
%= form_for '/useraccountsd' => (method => 'POST') => begin
<p>
<h2>
%=l 'RESET_PASSWORD_TITLE'
</h2>
<br>
%= $c->l('usr_RESET_DESC', $usr_datas->{user}, $usr_datas->{name} );
<br>
%= l 'usr_RESET_DESC2'
</p>
<p>
<span class=label>
%=l 'PASSWORD_NEW', class => 'label'
</span><span class=data>
%= password_field 'newPass', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'PASSWORD_VERIFY_NEW', class => 'label'
</span><span class=data>
%= password_field 'newPassVerify', class => 'input'
</span>
</p>
<p>
<br><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user}
%= hidden_field 'name' => $usr_datas->{name}
% end
</div>

View File

@@ -0,0 +1,45 @@
<div id='usr_pwds'>
% my $btn = l('SAVE');
%= form_for '/useraccountsd' => (method => 'POST') => begin
<p>
%= l 'usr_SYSTEM_PASSWORD_DESCRIPTION'
</p>
<p>
<span class=label>
%=l 'usr_CURRENT_SYSTEM_PASSWORD', class => 'label'
</span><span class=data>
%= password_field 'CurPass', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_NEW_SYSTEM_PASSWORD', class => 'label'
</span><span class=data>
%= password_field 'Pass', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_NEW_SYSTEM_PASSWORD_VERIFY', class => 'label'
</span><span class=data>
%= password_field 'PassVerify', class => 'input'
</span>
</p>
<p>
<br><br>
%= submit_button "$btn", class => 'action'
</p>
%= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user}
%= hidden_field 'name' => $usr_datas->{name}
% end
</div>

View File

@@ -0,0 +1,185 @@
<div id='usr_upd'>
% my $btn = l('ADD');
%= form_for '/useraccountsd' => (method => 'POST') => begin
<p>
<h2>
%=l 'usr_P2_TITLE'
</h2>
<br>
%= $c->render_to_string(inline => l ('usr_CREATE_MODIFY_DESC'))
</p>
<p>
<span class=label>
%=l 'usr_ACCOUNT_NAME'
</span><span class=data>
% if ( $usr_datas->{trt} eq 'ADD' ) {
% param 'user' => $usr_datas->{user} unless param 'user';
%= text_field 'user', class => 'input'
% } else {
% $btn = l('SAVE');
%= $usr_datas->{user}, class => 'data'
% }
</span>
</p>
<p>
<span class=label>
%=l 'usr_FIRSTNAME'
</span><span class=data>
% param 'FirstName' => $usr_datas->{firstname} unless param 'FirstName';
%= text_field 'FirstName', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_LASTNAME'
</span><span class=data>
% param 'LastName' => $usr_datas->{lastname} unless param 'LastName';
%= text_field 'LastName', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_DEPARTMENT'
</span><span class=data>
% param 'Dept' => $usr_datas->{dept} unless param 'Dept';
%= text_field 'Dept', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_COMPANY'
</span><span class=data>
% param 'Company' => $usr_datas->{company} unless param 'Company';
%= text_field 'Company', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_STREET_ADDRESS'
</span><span class=data>
% param 'Street' => $usr_datas->{street} unless param 'Street';
%= text_field 'Street', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_CITY'
</span><span class=data>
% param 'City' => $usr_datas->{city} unless param 'City';
%= text_field 'City', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_PHONE_NUMBER'
</span><span class=data>
% param 'Phone' => $usr_datas->{phone} unless param 'Phone';
%= text_field 'Phone', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_EMAIL_DELIVERY'
</span><span class=data>
% param 'EmailForward' => $usr_datas->{emailforward} unless param 'EmailForward';
%= select_field 'EmailForward' => $c->emailForward_list(), class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_FORWARDING_ADDRESS'
</span><span class=data>
% param 'ForwardAddress' => $usr_datas->{forwardaddress} unless param 'ForwardAddress';
%= text_field 'ForwardAddress', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_VPN_CLIENT_ACCESS'
</span><span class=data>
% param 'VPNClientAccess' => $usr_datas->{vpnclientaccess} unless param 'VPNClientAccess';
%= select_field 'VPNClientAccess' => [[ (l 'NO') => 'no'], [ (l 'YES') => 'yes']], class => 'input'
</span>
</p>
% if ( $usr_datas->{trt} eq 'UPD' and $c->ipsec_for_acct eq 'OK' ) {
% my $btn2 = $c->l('DOWNLOAD');
%= form_for '/useraccountso' => (method => 'POST') => begin
<p>
<span class=label>
%=l 'usr_LABEL_IPSECRW_DOWNLOAD'
</span><span class=data>
%= submit_button $btn2, class => 'action'
</span>
</p>
%= hidden_field 'trt' => 'CRT'
%= hidden_field 'user' => $usr_datas->{user}
%end
% }
% my @groups = @{$c->get_groups()};
% if ( @groups ) {
<p>
<span class=label>
%=l 'usr_GROUP_MEMBERSHIPS'
</span>
<span class=data>
<table class="sme-border "><thead>
<tr><th class='sme-border'>
%=l 'usr_MEMBER'
</th><th class='sme-border'>
%=l 'GROUP'
</th><th class='sme-border'>
%=l 'DESCRIPTION'
</th></tr>
</thead><tbody>
% foreach my $g ( @groups) {
% my $user = $usr_datas->{user};
% my $groupname = $g->key();
% my $description = $g->prop('Description');
% my $checked = '';
% if ( $user and $c->is_user_in_group($user, $groupname) ) {
% $checked = 'checked';
% }
<tr>
<td>
% if ( $checked eq 'checked' ) {
<!-- % = check_box 'groupMemberships', value => $groupname, checked => $checked -->
<input type='checkbox' name='groupMemberships' checked value='<%= $groupname %>'>
%} else {
%= check_box 'groupMemberships' => $groupname
%}
</td>
<!-- t td => (class => 'sme-border') => (check_box ' groupMemberships' => $groupname $checked) -->
%= t td => (class => 'sme-border') => $groupname
%= t td => (class => 'sme-border') => "$description"
</tr>
% }
</tbody>
</table>
</span>
</p>
% }
<p>
<br><br>
%= submit_button $btn, class => 'action'
</p>
%= hidden_field 'trt' => $usr_datas->{trt}
% if ( $usr_datas->{trt} eq 'UPD' ) {
%= hidden_field 'user' => $usr_datas->{user}
% }
% end
</div>

View File

@@ -0,0 +1,89 @@
<div id='usr_upds'>
% my $btn = l('SAVE');
%= form_for '/useraccountsd' => (method => 'POST') => begin
<p>
<h2>
%=l 'usr_MODIFY_ADMIN_TITLE'
</h2><br>
</p>
<p>
<span class=label>
%=l 'usr_ACCOUNT_NAME'
</span><span class=data>
% $btn = l('SAVE');
%= $usr_datas->{user}, class => 'data'
</span>
</p>
<p>
<span class=label>
%=l 'usr_FIRSTNAME'
</span><span class=data>
% param 'FirstName' => $usr_datas->{firstname} unless param 'FirstName';
%= text_field 'FirstName', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_LASTNAME'
</span><span class=data>
% param 'LastName' => $usr_datas->{lastname} unless param 'LastName';
%= text_field 'LastName', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_EMAIL_DELIVERY'
</span><span class=data>
% param 'EmailForward' => $usr_datas->{emailforward} unless param 'EmailForward';
%= select_field 'EmailForward' => $c->emailForward_list(), class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_FORWARDING_ADDRESS'
</span><span class=data>
% param 'ForwardAddress' => $usr_datas->{forwardaddress} unless param 'ForwardAddress';
%= text_field 'ForwardAddress', class => 'input'
</span>
</p>
<p>
<span class=label>
%=l 'usr_VPN_CLIENT_ACCESS'
</span><span class=data>
% param 'VPNClientAccess' => $usr_datas->{vpnclientaccess} unless param 'VPNClientAccess';
%= select_field 'VPNClientAccess' => [[ (l 'NO') => 'no'], [ (l 'YES') => 'yes']], class => 'input'
</span>
</p>
% if ( $c->ipsec_for_acct eq 'OK' ) {
% my $btn2 = $c->l('DOWNLOAD');
%= form_for '/useraccountso' => (method => 'POST') => begin
<p>
<span class=label>
%=l 'usr_LABEL_IPSECRW_DOWNLOAD'
</span><span class=data>
%= submit_button $btn2, class => 'action'
</span>
</p>
%= hidden_field 'trt' => 'CRT'
%= hidden_field 'user' => $usr_datas->{user}
%end
% }
<p>
<br>
%= submit_button $btn, class => 'action'
</p>
%= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user}
% end
</div>

View File

@@ -0,0 +1,32 @@
% layout 'default', title => "Sme server 2 - Port Forwards";
% content_for 'module' => begin
<div id='module' class='module portforwarding-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper "<pf>".$c->current_route
%= dumper $c->stash("ret")
%= dumper $c->stash("portforwarding")
% my $ref = $pf_datas->{portforwarding};
%= dumper $ref->{TCP}->[0]."</pf>"
</p>
% }
<h1><%= $title%></h1>
%= $modul
% if ($pf_datas->{trt} eq 'ADD') {
%= include 'partials/_pf_add'
%} elsif ($pf_datas->{trt} eq 'ADD1') {
%= include 'partials/_pf_add'
%} elsif ($pf_datas->{trt} eq 'DEL') {
%= include 'partials/_pf_del'
%} elsif ($pf_datas->{trt} eq 'DEL1'){
%= include 'partials/_pf_list'
%} else {
%= include 'partials/_pf_list'
%}
</div>
%end

View File

@@ -0,0 +1,33 @@
% layout 'default', title => "Sme server 2 - printers";
% content_for 'module' => begin
<div id='module' class='module printers-panel'>
%if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $prt_datas
</p>
%}
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
% if ($prt_datas->{trt} eq 'ADD') {
%= include 'partials/_prt_add'
%} elsif ($prt_datas->{trt} eq 'DEL') {
%= include 'partials/_prt_del'
%} elsif ($prt_datas->{trt} eq 'NET') {
%= include 'partials/_prt_net'
%} else {
%= include 'partials/_prt_list'
%}
</div>
%end

View File

@@ -0,0 +1,43 @@
% layout 'default', title => "Sme server 2 - proxy";
% content_for 'module' => begin
<div id='module' class='module proxy-panel'>
%if ($config->{debug} == 1) {
<p>(DBG)route: <%= $c->current_route %><br>
(DBG)ht stat: <%= $prx_datas->{http_proxy_status}%> <br>
(DBG)sm stat: <%=$prx_datas->{smtp_proxy_status} %>
</p>
%}
<h1><%= $title %></h1>
<br>
<%= $modul %>
<% my $btn = l('SAVE'); %>
%= form_for 'proxy' => (method => 'POST') => begin
<p>
%=l 'prx_HTTP_PROXY_STATUS_DESCRIPTION'
<br><br>
<span class=label>
%=l 'prx_HTTP_PROXY_STATUS_LABEL'
</span><span class=data>
% param 'http_proxy_status' => $prx_datas->{http_proxy_status} unless param 'http_proxy_status';
%= select_field 'http_proxy_status' => [[ (l 'ENABLED') => 'enabled'], [ (l 'DISABLED') => 'disabled']], class => 'input', id => 'htproxstat'
</span>
</p>
%if ( $prx_datas->{smtp_proxy_status} ) {
<p>
%=l 'prx_SMTP_PROXY_STATUS_DESCRIPTION'
<br><br>
<span class=label>
%=l 'prx_SMTP_PROXY_STATUS_LABEL'
</span><span class=data>
% param 'smtp_proxy_status' => $prx_datas->{smtp_proxy_status} unless param 'smtp_proxy_status';
%= select_field 'smtp_proxy_status' => [[ (l 'ENABLED') => 'transparent'], [ (l 'DISABLED') => 'disabled'], [ (l 'prx_BLOCKED') => 'blocked']], class => 'input', id => 'smproxstat', default => $prx_datas->{smtp_proxy_status}
<br><br>
</span>
</p>
%}
%= submit_button "$btn", class => 'action'
% end
</div>
%end

View File

@@ -0,0 +1,32 @@
% layout 'default', title => "Sme server 2 - pseudonyms";
% content_for 'module' => begin
<div id='module' class='module pseudonyms-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $pse_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
% if ($pse_datas->{trt} eq 'ADD') {
%= include 'partials/_pse_add'
%} elsif ($pse_datas->{trt} eq 'DEL') {
%= include 'partials/_pse_del'
%} elsif ($pse_datas->{trt} eq 'UPD') {
%= include 'partials/_pse_upd'
%} else {
%= include 'partials/_pse_list'
%}
</div>
%end

View File

@@ -0,0 +1,27 @@
% layout 'default', title => "Sme server 2 - qmailanalog";
% content_for 'module' => begin
<div id='module' class='module qmailanalog-panel'>
%if ($config->{debug} == 1) {
<p>
(DBG)route: <%= $c->current_route %><br>
</p>
%}
<h1><%= $title %></h1>
<br>
<%= $modul %>
<% my $btn = l('qma_GENERATE_REPORT'); %>
%= form_for 'qmailanalog' => (method => 'POST') => begin
<p>
<span class=label>
%=l 'qma_REPORT_TYPE'
</span><span class=data>
<!-- (to be sorted) -->
%= select_field 'report_type' => $c->reportType_list()
</span>
</p>
%= submit_button "$btn", class => 'action'
% end
</div>
%end

View File

@@ -0,0 +1,29 @@
% layout 'default', title => "Sme server 2 - quota";
% content_for 'module' => begin
<div id='module' class='module quota-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $quo_datas
</p>
% }
% if ( stash 'error' ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<h1><%= $title%></h1>
% if ($quo_datas->{trt} eq 'UPD') {
%= include 'partials/_quo_upd'
%} else {
%= include 'partials/_quo_list'
%}
</div>
%end

View File

@@ -0,0 +1,41 @@
% layout 'default', title => "Sme server 2 - reboot";
% content_for 'module' => begin
<div id='module' class='module reboot-panel'>
%if ($config->{debug} == 1) {
<p>
(DBG)route: <%= $c->current_route %><br>
</p>
%}
<h1><%= $title %></h1>
<br>
%= $modul
<% my $btn = l('PERFORM'); %>
%= form_for 'reboot' => (method => 'POST') => begin
<p>
%= $c->render_to_string(inline => $c->l('rbo_DESCRIPTION'))
<br>
<span class=label>
%=l 'rbo_LABEL_REBOOT'
</span>
<span class=data>
%= select_field 'function' => $c->rebootFunction_list()
</span>
</p>
%= submit_button "$btn", class => 'action'
% end
%= hidden_field 'debug' => '1'
</div>
%end

View File

@@ -0,0 +1,225 @@
% layout 'default', title => "Sme server 2 - remoteaccess";
% content_for 'module' => begin
<div id='module' class='module remoteaccess-panel'>
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $rma_datas
</p>
% }
<h1><%= $title%></h1>
% if ( $notif ) {
<br>
<span class=sme-error>
<%= $c->render_to_string(inline => $notif) %>
</span>
%}
<hr class='sectionbar' />
<% my $btn = l('SAVE'); %>
%= form_for 'remoteaccess' => (method => 'POST') => begin
% my $ipsec = $c->get_ipsecrw_status();
% if ( $ipsec ) {
<p>
<h2>
%=l 'rma_TITLE_IPSECRW'
</h2><br>
%=l 'rma_DESC_IPSECRW'
<br>
<span class=label>
%=l 'rma_LABEL_IPSECRW_SESS'
</span><span class=data>
% param 'IpsecrwSess' => $c->get_ipsecrw_sessions unless param 'IpsecrwSess';
%= text_field 'IpsecrwSess', class => 'input'
</span>
<br>
%= $c->render_to_string(inline => $c->l('rma_DESC_IPSECRW_RESET'));
<br>
<span class=label>
%=l 'rma_LABEL_IPSECRW_RESET'
</span><span class=data>
%= check_box 'IpsecrwReset',class => 'input'
</span>
<br><br>
<hr class='sectionbar' />
</p>
%}
<!-- percequ include 'partials/_rma_pptp' -->
<p><h2>
%= $c->l('rma_VALIDFROM_TITLE', $c->l('rma_REMOTE_MANAGEMENT'));
</h2><br>
%=l 'rma_VALIDFROM_DESC'
<br><br>
% my @vals = $self->_get_valid_from();
% if (@vals) {
<table class="sme-border TableSort"><thead>
<tr><th class='sme-border'>
%=l 'NETWORK'
</th><th class='sme-border'>
%=l 'SUBNET_MASK'
</th><th class='sme-border'>
%=l 'NUM_OF_HOSTS'
</th><th class='sme-border'>
%=l 'REMOVE'
</th></tr>
</thead></tbody>
% foreach my $val ( @vals )
% {
% my ($net, $mask) = split '/', $val;
% $mask = '255.255.255.255' unless ($mask);
% my ($numhosts,$a,$b) = esmith::util::computeHostRange($net,$mask);
<tr>
%= t td => (class => 'sme-border') => $net
%= t td => (class => 'sme-border') => $mask
%= t td => (class => 'sme-border') => $numhosts
<td class='sme-border'><input type='checkbox' name='Remove_nets' value='<%= $net.'/'.$mask %>'> </td>
</tr>
% }
</tbody>
</table>
<!-- my @cbGroup = $q->checkbox_group(-name => 'validFromRemove',
-values => [@vals], -labels => { map {$_ => ''} @vals });
foreach my $val (@vals)
{ esmith::cgi::genSmallCell($q, shift(@cbGroup), } -->
% } else {
<br><b>
%= l('rma_NO_ENTRIES_YET');
</b>
%}
</p>
<p>
%=l 'rma_DESC_VALID_FROM_ENTRIES'
<br><br>
<span class=label>
%=l 'NETWORK'
</span><span class=data>
%= text_field 'ValidFromNetwork', class => 'input'
</span>
<br>
<span class=label>
%=l 'rma_SUBNET_MASK'
</span><span class=data>
%= text_field 'ValidFromMask', class => 'input'
</span>
</p>
<hr class='sectionbar' />
<p><h2>
%=l 'rma_TITLE_SSH'
</h2><br>
%=l 'rma_DESC_SSH'
<br><br>
<span class=label>
%=l 'rma_LABEL_SSH'
</span><span class=data>
% param 'SshAccess' => $c->get_ssh_access() unless param 'SshAccess';
%= select_field 'SshAccess' => $c->networkAccess_list(), class => 'input'
</span>
<br>
<span class=label>
%=l 'rma_LABEL_SSH_ADMIN'
</span><span class=data>
% param 'SshPermitRootLogin' => $rma_datas->{sshPermitRootLogin} unless param 'SshPermitRootLogin';
%= select_field 'SshPermitRootLogin' => [[(l 'NO'), 'no'], [(l 'YES'), 'yes']], class => 'input'
</span>
<br>
<span class=label>
%=l 'rma_LABEL_SSH_PASSWORD_ACCESS'
</span><span class=data>
% param 'SshPasswordAuthentication' => $c->get_ssh_password_auth() unless param 'SshPasswordAuthentication';
%= select_field 'SshPasswordAuthentication' => [[(l 'NO'), 'no'], [(l 'YES'), 'yes']], class => 'input'
</span>
<br>
<span class=label>
%=l 'rma_LABEL_SSH_PORT'
</span><span class=data>
% param 'SshTCPPort' => $c->get_ssh_port() unless param 'SshTCPPort';
%= text_field 'SshTCPPort', class => 'input'
</span>
<br>
</p>
<hr class='sectionbar' />
<p><h2>
%=l 'rma_TITLE_FTP_ACCESS'
</h2><br>
%= $c->render_to_string(inline => $c->l('rma_DESC_FTP_ACCESS'));
<br>
<span class=label>
%=l 'rma_LABEL_FTP_ACCESS'
</span><span class=data>
% param 'FtpAccess' => $c->get_ftp_access() unless param 'FtpAccess';
%= select_field 'FtpAccess' => $c->networkAccess_list(), class => 'input'
</span>
<br>
<br>
%= $c->render_to_string(inline => $c->l('rma_DESC_FTP_LOGIN'));
<br>
<span class=label>
%=l 'rma_LABEL_FTP_LOGIN'
</span><span class=data>
% param 'FtpPasswordAccess' => $c->get_ftp_password_login_access() unless param 'FtpPasswordAccess';
%= select_field 'FtpPasswordAccess' => $c->passwordLogin_list(), class => 'input'
</span>
<br>
</p>
% my $mode = $c->get_telnet_mode();
% if ( $mode ne 'off') {
<p>
<hr class='sectionbar' />
<h2>
%=l 'rma_TITLE_TELNET_ACCESS'
</h2><br>
<span class=sme-error>
%=l 'rma_DESC_TELNET_ACCESS'
</span>
<br><br>
<span class=label>
%=l 'rma_LABEL_TELNET_ACCESS'
</span><span class=data>
% param 'TelnetAccess' => $mode unless param 'TelnetAccess';
%= select_field 'TelnetAccess' => $c->networkAccess_list(), class => 'input'
</span>
<br>
</p>
%}
<div class='center'>
%= submit_button "$btn", class => 'action'
</div>
% end
</div>
% end

View File

@@ -0,0 +1,137 @@
% layout 'default', title => 'Sme server 2 - Review';
% content_for 'module' => begin
<div id='central' class='central review-panel'>
<h1> <%= $title %> </h1>
<%= $modul %><br><br>
%= form_for 'review' => begin
<b>
%=l 'rvw_NETWORKING_PARAMS'
</b><br>
<p><span class=label>
%=l 'rvw_SERVER_MODE'
</span>
%= $rvw_datas->{servermode}
</p>
<p><span class=label>
%=l 'rvw_LOCAL_IP_ADDRESS_SUBNET_MASK'
</span>
%= $rvw_datas->{localip}
</p>
% if ( $rvw_datas->{publicip} ) {
<p><span class=label>
%=l 'rvw_INTERNET_VISIBLE_ADDRESS'
</span>
%= $rvw_datas->{publicip}
</p>
% }
<p><span class=label>
%=l 'rvw_GATEWAY'
</span>
%= $rvw_datas->{gateway}
%= $rvw_datas->{serveronly}
</p>
<p><table width='100%'><tr><td class=label><!--span class=label-->
%=l 'rvw_ADDITIONAL_LOCAL_NETWORKS'
<!--/span--></td><td>
%= $c->render_to_string( inline => $rvw_datas->{addlocalnetworks} );
</td></tr></table>
</p>
<p><table width='100%'><tr><td class=label>
<!--<p><span class=label>-->
%=l 'rvw_DHCP_SERVER'
<!--</span>-->
</td><td>
%= $rvw_datas->{dhcpserver}
<!--</p>-->
</td></tr></table></p>
<br><br><b>
%=l 'rvw_SERVER_NAMES'
</b><br>
<p><span class=label>
%=l 'rvw_DNS_SERVER'
</span>
%= $rvw_datas->{dnsserver}
</p>
<p><span class=label>
%=l 'rvw_WEB_SERVER'
</span>
%= $rvw_datas->{webserver}
</p>
<p><span class=label>
%=l 'rvw_PROXY_SERVER'
</span>
%= $rvw_datas->{proxyserver}
</p>
<p><span class=label>
%=l 'rvw_FTP_SERVER'
</span>
%= $rvw_datas->{ftpserver}
</p>
<p><span class=label>
%=l 'rvw_SMTP_POP_AND_IMAP_MAIL_SERVERS'
</span>
%= $rvw_datas->{smtpserver}
</p>
<br><br><b>
%=l 'rvw_DOMAIN_INFORMATION'
</b><br>
<p><span class=label>
%=l 'rvw_PRIMARY_DOMAIN'
</span>
%= $rvw_datas->{domainname}
</p>
<!---<p><span class=label>-->
<p><table width='100%'><tr><td class=label>
%=l 'rvw_VIRTUAL_DOMAINS'
</td><td>
<!--</span>-->
%= $rvw_datas->{virtualdomains}
</td></tr></table></p>
<!--</p>-->
<p><span class=label>
%=l 'rvw_PRIMARY_WEB_SITE'
</span>
%= $rvw_datas->{primarywebsite}
</p>
<p><span class=label>
%=l 'rvw_SERVER_MANAGER'
</span>
%= $rvw_datas->{servermanager}
</p>
<p><span class=label>
%=l 'rvw_USER_PASSWORD_PANEL'
</span>
%= $rvw_datas->{usermanager}
</p>
<p><table width='100%'><tr><td class=label>
%=l 'rvw_EMAIL_ADDRESSES'
</td><td>
%= $rvw_datas->{emailaddresses}
</td></tr></table></p>
% end
</div>
% end

View File

@@ -0,0 +1,10 @@
% layout 'default', title => 'Sme server 2 - Support';
% content_for 'module' => begin
<div id='module' class='module support-panel'>
<p> < %= $title % ></p>
<br>
<%= $modul %>
<br>
</div>
%end

Some files were not shown because too many files have changed in this diff Show More