ASNMTAP
view release on metacpan or search on metacpan
applications/htmlroot/cgi-bin/admin/crontabs.pl view on Meta::CPAN
#!/usr/bin/env perl
# ---------------------------------------------------------------------------------------------------------
# © Copyright 2003-2011 Alex Peeters [alex.peeters@citap.be]
# ---------------------------------------------------------------------------------------------------------
# 2011/mm/dd, v3.002.003, crontabs.pl for ASNMTAP::Asnmtap::Applications::CGI
# ---------------------------------------------------------------------------------------------------------
use strict;
use warnings; # Must be used in test mode only. This reduces a little process speed
#use diagnostics; # Must be used in test mode only. This reduces a lot of process speed
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BEGIN { if ( $ENV{ASNMTAP_PERL5LIB} ) { eval 'use lib ( "$ENV{ASNMTAP_PERL5LIB}" )'; } }
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
use DBI;
use CGI;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
use ASNMTAP::Asnmtap::Applications::CGI v3.002.003;
use ASNMTAP::Asnmtap::Applications::CGI qw(:APPLICATIONS :CGI :SADMIN :DBREADWRITE :DBTABLES);
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
use vars qw($PROGNAME);
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$PROGNAME = "crontabs.pl";
my $prgtext = "Crontabs";
my $version = do { my @r = (q$Revision: 3.002.003$ =~ /\d+/g); sprintf "%d."."%03d" x $#r, @r }; # must be all on one line or MakeMaker will get confused.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# URL Access Parameters
my $cgi = new CGI;
my $pagedir = (defined $cgi->param('pagedir')) ? $cgi->param('pagedir') : '<NIHIL>'; $pagedir =~ s/\+/ /g;
my $pageset = (defined $cgi->param('pageset')) ? $cgi->param('pageset') : 'admin'; $pageset =~ s/\+/ /g;
my $debug = (defined $cgi->param('debug')) ? $cgi->param('debug') : 'F';
my $pageNo = (defined $cgi->param('pageNo')) ? $cgi->param('pageNo') : 1;
my $pageOffset = (defined $cgi->param('pageOffset')) ? $cgi->param('pageOffset') : 0;
my $orderBy = (defined $cgi->param('orderBy')) ? $cgi->param('orderBy') : 'lineNumber asc, uKey asc, groupName asc, title asc';
my $action = (defined $cgi->param('action')) ? $cgi->param('action') : 'listView';
my $CcatalogID = (defined $cgi->param('catalogID')) ? $cgi->param('catalogID') : $CATALOGID;
my $CcatalogIDreload = (defined $cgi->param('catalogIDreload')) ? $cgi->param('catalogIDreload') : 0;
my $ClineNumber = (defined $cgi->param('lineNumber')) ? $cgi->param('lineNumber') : '00';
my $CuKey = (defined $cgi->param('uKey')) ? $cgi->param('uKey') : 'none';
my $CcollectorDaemon = (defined $cgi->param('collectorDaemon')) ? $cgi->param('collectorDaemon') : 'none';
my $Carguments = (defined $cgi->param('arguments')) ? $cgi->param('arguments') : '';
my $Cminute = (defined $cgi->param('minute')) ? $cgi->param('minute') : '*';
my $Chour = (defined $cgi->param('hour')) ? $cgi->param('hour') : '*';
my $CdayOfTheMonth = (defined $cgi->param('dayOfTheMonth')) ? $cgi->param('dayOfTheMonth') : '*';
my $CmonthOfTheYear = (defined $cgi->param('monthOfTheYear')) ? $cgi->param('monthOfTheYear') : '*';
my $CdayOfTheWeek = (defined $cgi->param('dayOfTheWeek')) ? $cgi->param('dayOfTheWeek') : '*';
my $CnoOffline = (defined $cgi->param('noOffline')) ? $cgi->param('noOffline') : '';
my $Cactivated = (defined $cgi->param('activated')) ? $cgi->param('activated') : 'off';
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
my $htmlTitle = $APPLICATION;
# Init parameters
my ($rv, $dbh, $sth, $sql, $numberRecordsIntoQuery, $nextAction, $formDisabledAll, $formDisabledPrimaryKey, $submitButton, $uKeySelect);
# User Session and Access Control
my ($sessionID, $iconAdd, $iconDelete, $iconDetails, $iconEdit, $iconQuery, $iconTable, $errorUserAccessControl, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, $subTitle) = user_session_and_access_control (1, 'admin', $c...
applications/htmlroot/cgi-bin/admin/crontabs.pl view on Meta::CPAN
$dbh->disconnect or $rv = error_trap_DBI(*STDOUT, "Sorry, the database was unable to add your entry.", $debug, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', $sessionID);
}
if ( $rv ) {
# HTML - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
if ($action eq 'duplicateView' or $action eq 'editView' or $action eq 'insertView' or $action eq 'crontabView') {
print_header (*STDOUT, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', 'F', '', $sessionID);
my $crontabFormatDigits = '(?:[0-9]{1,2})';
my $crontabValueDigitsMin = '(?:[0-9]|[1-5][0-9])';
my $crontabValueDigitsHour = '(?:[0-9]|1[0-9]|2[0-3])';
my $crontabValueDigitsDayOfMonth = '(?:[1-9]|[1-2][0-9]|3[0-1])';
my $crontabValueDigitsMonthOfYear = '(?:[1-9]|1[0-2])';
my $crontabValueDigitsDayOfWeek = '(?:[0-6])';
print <<HTML;
<script language="JavaScript1.2" type="text/javascript">
function validateForm() {
var objectRegularExpressionLineNumberFormat = /\^\\d\\d\$/;
// example: 1,2,5-9,12-16/n,19|*|*/n
var objectRegularExpressionCrontabFormat = /\^(?:(?:\\*\\/$crontabFormatDigits){1,1}|$crontabFormatDigits(?:[,-]$crontabFormatDigits(?:\\/$crontabFormatDigits)?)\*){1,1}\$/;
// min (0-59)
var objectRegularExpressionMinuteValue = /\^(?:(?:\\*\\/$crontabValueDigitsMin){1,1}|$crontabValueDigitsMin(?:[,-]$crontabValueDigitsMin(?:\\/$crontabValueDigitsMin)?)\*){1,1}\$/;
// hour (0-23)
var objectRegularExpressionHourValue = /\^(?:(?:\\*\\/$crontabValueDigitsHour){1,1}|$crontabValueDigitsHour(?:[,-]$crontabValueDigitsHour(?:\\/$crontabValueDigitsHour)?)\*){1,1}\$/;
// day of month (1-31)
var objectRegularExpressionDayOfTheMontValue = /\^(?:(?:\\*\\/$crontabFormatDigits){1,1}|$crontabFormatDigits(?:[,-]$crontabFormatDigits(?:\\/$crontabFormatDigits)?)\*){1,1}\$/;
// month of year (1-12)
var objectRegularExpressionMontOfTheYearValue = /\^(?:(?:\\*\\/$crontabValueDigitsMonthOfYear){1,1}|$crontabValueDigitsMonthOfYear(?:[,-]$crontabValueDigitsMonthOfYear(?:\\/$crontabValueDigitsMonthOfYear)?)\*){1,1}\$/;
// day of week (0-6)
var objectRegularExpressionDayOfTheWeekValue = /\^(?:(?:\\*\\/$crontabValueDigitsDayOfWeek){1,1}|$crontabValueDigitsDayOfWeek(?:[,-]$crontabValueDigitsDayOfWeek(?:\\/$crontabValueDigitsDayOfWeek)?)\*){1,1}\$/;
HTML
if ( $action ne 'crontabView' ) {
print <<HTML;
if ( document.crontabs.collectorDaemon.options[document.crontabs.collectorDaemon.selectedIndex].value == 'none' ) {
document.crontabs.collectorDaemon.focus();
alert('Please create/select a crontab collectorDaemon!');
return false;
}
HTML
}
if ($action eq 'duplicateView' or $action eq 'insertView') {
print <<HTML;
if ( document.crontabs.lineNumber.value == null || document.crontabs.lineNumber.value == '' ) {
document.crontabs.lineNumber.focus();
alert('Please enter a line number!');
return false;
} else {
if ( ! objectRegularExpressionLineNumberFormat.test(document.crontabs.lineNumber.value) ) {
document.crontabs.lineNumber.focus();
alert('Please re-enter line number: Bad line number format!');
return false;
}
}
if( document.crontabs.uKey.options[document.crontabs.uKey.selectedIndex].value == 'none' ) {
document.crontabs.uKey.focus();
alert('Please create/select one of the applications!');
return false;
}
HTML
}
if ( $action ne 'crontabView' ) {
print <<HTML;
if ( document.crontabs.minute.value == null || document.crontabs.minute.value == '' ) {
document.crontabs.minute.focus();
alert('Please enter minute!');
return false;
} else {
if ( document.crontabs.minute.value != '*' ) {
if ( ! objectRegularExpressionCrontabFormat.test(document.crontabs.minute.value) ) {
document.crontabs.minute.focus();
alert('Please re-enter minute: Bad minute format!');
return false;
}
if ( ! objectRegularExpressionMinuteValue.test(document.crontabs.minute.value) ) {
document.crontabs.minute.focus();
alert('Please re-enter minute: Bad minute value!');
return false;
}
}
}
if ( document.crontabs.hour.value == null || document.crontabs.hour.value == '' ) {
document.crontabs.hour.focus();
alert('Please enter hour!');
return false;
} else {
if ( document.crontabs.hour.value != '*' ) {
if ( ! objectRegularExpressionCrontabFormat.test(document.crontabs.hour.value) ) {
document.crontabs.hour.focus();
alert('Please re-enter hour: Bad hour format!');
return false;
}
if ( ! objectRegularExpressionHourValue.test(document.crontabs.hour.value) ) {
document.crontabs.hour.focus();
alert('Please re-enter hour: Bad hour value!');
return false;
}
}
}
if ( document.crontabs.dayOfTheMonth.value == null || document.crontabs.dayOfTheMonth.value == '' ) {
document.crontabs.dayOfTheMonth.focus();
alert('Please enter day of the month!');
return false;
} else {
if ( document.crontabs.dayOfTheMonth.value != '*' ) {
if ( ! objectRegularExpressionCrontabFormat.test(document.crontabs.dayOfTheMonth.value) ) {
document.crontabs.dayOfTheMonth.focus();
alert('Please re-enter day of the month: Bad day of the month format!');
return false;
}
if ( ! objectRegularExpressionDayOfTheMontValue.test(document.crontabs.dayOfTheMonth.value) ) {
document.crontabs.dayOfTheMonth.focus();
alert('Please re-enter day of the month: Bad day of the month value!');
return false;
}
}
}
if ( document.crontabs.monthOfTheYear.value == null || document.crontabs.monthOfTheYear.value == '' ) {
document.crontabs.monthOfTheYear.focus();
alert('Please enter month of the year!');
return false;
} else {
if ( document.crontabs.monthOfTheYear.value != '*' ) {
if ( ! objectRegularExpressionCrontabFormat.test(document.crontabs.monthOfTheYear.value) ) {
document.crontabs.monthOfTheYear.focus();
alert('Please re-enter month of the year: Bad month of the year format!');
return false;
}
if ( ! objectRegularExpressionMontOfTheYearValue.test(document.crontabs.monthOfTheYear.value) ) {
document.crontabs.monthOfTheYear.focus();
alert('Please re-enter month of the year: Bad month of the year value!');
return false;
}
}
}
if ( document.crontabs.dayOfTheWeek.value == null || document.crontabs.dayOfTheWeek.value == '' ) {
document.crontabs.dayOfTheWeek.focus();
alert('Please enter day of the week!');
return false;
} else {
if ( document.crontabs.dayOfTheWeek.value != '*' ) {
if ( ! objectRegularExpressionCrontabFormat.test(document.crontabs.dayOfTheWeek.value) ) {
document.crontabs.dayOfTheWeek.focus();
alert('Please re-enter day of the week: Bad day of the week format!');
return false;
}
if ( ! objectRegularExpressionDayOfTheWeekValue.test(document.crontabs.dayOfTheWeek.value) ) {
document.crontabs.dayOfTheWeek.focus();
alert('Please re-enter day of the week: Bad day of the week value!');
return false;
}
}
}
HTML
}
print <<HTML;
return true;
}
</script>
<form action="$ENV{SCRIPT_NAME}" method="post" name="crontabs" onSubmit="return validateForm();">
HTML
} elsif ($action eq 'listView') {
print_header (*STDOUT, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', 'F', '', $sessionID);
print <<HTML;
<script language="JavaScript1.2" type="text/javascript">
function submitForm() {
document.crontabs.catalogIDreload.value = 1;
document.crontabs.submit();
return true;
}
</script>
<form action="$ENV{SCRIPT_NAME}" method="post" name="crontabs">
HTML
} elsif ($action eq 'deleteView') {
print_header (*STDOUT, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', 'F', '', $sessionID);
print "<form action=\"" . $ENV{SCRIPT_NAME} . "\" method=\"post\" name=\"crontabs\">\n";
$pageNo = 1; $pageOffset = 0;
} else {
print_header (*STDOUT, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', 'F', '', $sessionID);
}
if ($action eq 'deleteView' or $action eq 'duplicateView' or $action eq 'editView' or $action eq 'insertView' or $action eq 'crontabView' or $action eq 'listView') {
print <<HTML;
<input type="hidden" name="pagedir" value="$pagedir">
<input type="hidden" name="pageset" value="$pageset">
<input type="hidden" name="debug" value="$debug">
<input type="hidden" name="CGISESSID" value="$sessionID">
<input type="hidden" name="pageNo" value="$pageNo">
<input type="hidden" name="pageOffset" value="$pageOffset">
<input type="hidden" name="action" value="$nextAction">
<input type="hidden" name="orderBy" value="$orderBy">
<input type="hidden" name="catalogIDreload" value="0">
HTML
} else {
print "<br>\n";
}
if ($formDisabledPrimaryKey ne '' and $action ne 'displayView') {
print " <input type=\"hidden\" name=\"catalogID\" value=\"$CcatalogID\">\n";
print " <input type=\"hidden\" name=\"uKey\" value=\"$CuKey\">\n";
print " <input type=\"hidden\" name=\"lineNumber\" value=\"$ClineNumber\">\n";
} elsif ($action eq 'crontabView') {
( run in 0.577 second using v1.01-cache-2.11-cpan-f52f0507bed )