refactoring

update package definition
fix dependencies
remove global variables
This commit is contained in:
Milan
2018-09-02 09:39:24 +02:00
parent 3e338758e9
commit a6b656779b
71 changed files with 2135 additions and 2297 deletions

View File

@@ -1,292 +1,288 @@
package aggregator;
use warnings "all";
use strict;
use events();
use comments();
use calendar();
use project();
use cache();
package aggregator;
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get_cache configure_cache put_cache get_list check_params);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
#my $cgi=undef;
sub get_list {
my $config = shift;
my $request = shift;
my $config = shift;
my $request = shift;
my $params = $request->{params}->{checked};
my $debug = $config->{system}->{debug};
my $params = $request->{params}->{checked};
my $debug = $config->{system}->{debug};
#customize prefiltered request parameters
$request->{params}->{original}->{date} = $request->{params}->{checked}->{date};
if ( $params->{event_id} ne '' ) {
$request->{params}->{original}->{template} = 'event_details.html';
} else {
$request->{params}->{original}->{template} = 'event_list.html';
}
$request->{params}->{checked} = events::check_params( $config, $request->{params}->{original} );
#customize prefiltered request parameters
$request->{params}->{original}->{date} = $request->{params}->{checked}->{date};
if ( $params->{event_id} ne '' ) {
$request->{params}->{original}->{template} = 'event_details.html';
} else {
$request->{params}->{original}->{template} = 'event_list.html';
}
$request->{params}->{checked} = events::check_params( $config, $request->{params}->{original} );
my $content = '';
my $results = events::get( $config, $request );
events::render( $content, $config, $request, $results );
my $content = '';
my $results = events::get( $config, $request );
events::render( $content, $config, $request, $results );
# calendar::get_cached_or_render($content,$request);
#set url to embed as last loaded url in javascript
my $date = $params->{date} || '';
$date = 'heute' if ( $params->{date} eq 'today' );
$date = $results->[0]->{day} if ( $params->{event_id} ne '' );
my $url = '';
#set url to embed as last loaded url in javascript
my $date = $params->{date} || '';
$date = 'heute' if ( $params->{date} eq 'today' );
$date = $results->[0]->{day} if ( $params->{event_id} ne '' );
my $url = '';
#$config->{controllers}->{events}.'/'.$date.'/';
if ( $params->{from_date} ne '' && $params->{till_date} ne '' ) {
$url = $config->{controllers}->{events} . '/' . $params->{from_date} . '/' . $params->{till_date};
} else {
$url = $config->{controllers}->{events} . '/' . $params->{from_date} . '/' . $params->{till_date};
}
#$config->{controllers}->{events}.'/'.$date.'/';
if ( $params->{from_date} ne '' && $params->{till_date} ne '' ) {
$url = $config->{controllers}->{events} . '/' . $params->{from_date} . '/' . $params->{till_date};
} else {
$url = $config->{controllers}->{events} . '/' . $params->{from_date} . '/' . $params->{till_date};
}
#count most projects
my $used_projects = {};
for my $result (@$results) {
my $project = $result->{project_title} || '';
$used_projects->{$project}++;
}
my @used_projects = reverse sort { $used_projects->{$a} <=> $used_projects->{$b} } ( keys %$used_projects );
my $most_used_project = $used_projects[0];
#count most projects
my $used_projects = {};
for my $result (@$results) {
my $project = $result->{project_title} || '';
$used_projects->{$project}++;
}
my @used_projects = reverse sort { $used_projects->{$a} <=> $used_projects->{$b} } ( keys %$used_projects );
my $most_used_project = $used_projects[0];
#use Data::Dumper;print STDERR Dumper(\@used_projects);
#use Data::Dumper;print STDERR Dumper(\@used_projects);
return {
day => $results->[0]->{day},
start_datetime => $results->[0]->{start_datetime},
event_id => $results->[0]->{event_id},
program => $results->[0]->{program},
project_title => $most_used_project,
series_name => $results->[0]->{series_name},
title => $results->[0]->{title},
content => $content,
results => $results,
url => $url,
};
return {
day => $results->[0]->{day},
start_datetime => $results->[0]->{start_datetime},
event_id => $results->[0]->{event_id},
program => $results->[0]->{program},
project_title => $most_used_project,
series_name => $results->[0]->{series_name},
title => $results->[0]->{title},
content => $content,
results => $results,
url => $url,
};
}
sub get_menu {
my $config = shift;
my $request = shift;
my $date = shift;
my $results = shift;
my $config = shift;
my $request = shift;
my $date = shift;
my $results = shift;
my $params = $request->{params}->{checked};
my $params = $request->{params}->{checked};
#load details only on demand
if ( $params->{event_id} ne '' ) {
$request->{params}->{original}->{template} = 'event_menu.html';
$request->{params}->{original}->{event_id} = undef;
$request->{params}->{original}->{date} = $date;
$request->{params}->{checked} = events::check_params( $config, $request->{params}->{original} );
$results = events::get( $config, $request );
} else {
$request->{params}->{checked}->{template} = template::check('event_menu.html');
}
#load details only on demand
if ( $params->{event_id} ne '' ) {
$request->{params}->{original}->{template} = 'event_menu.html';
$request->{params}->{original}->{event_id} = undef;
$request->{params}->{original}->{date} = $date;
$request->{params}->{checked} = events::check_params( $config, $request->{params}->{original} );
$results = events::get( $config, $request );
} else {
$request->{params}->{checked}->{template} = template::check($config, 'event_menu.html');
}
#events menu
my $output = '';
events::render( $output, $config, $request, $results );
#events menu
my $output = '';
events::render( $output, $config, $request, $results );
return { content => $output };
return { content => $output };
}
sub get_calendar {
my $config = shift;
my $request = shift;
my $date = shift;
my $config = shift;
my $request = shift;
my $date = shift;
my $params = $request->{params}->{checked};
my $debug = $config->{system}->{debug};
my $params = $request->{params}->{checked};
my $debug = $config->{system}->{debug};
$request->{params}->{original}->{template} = 'calendar.html';
$request->{params}->{original}->{date} = $date if ( defined $date );
$request->{params}->{checked} = calendar::check_params( $config, $request->{params}->{original} );
$params = $request->{params}->{checked};
$request->{params}->{original}->{template} = 'calendar.html';
$request->{params}->{original}->{date} = $date if ( defined $date );
$request->{params}->{checked} = calendar::check_params( $config, $request->{params}->{original} );
$params = $request->{params}->{checked};
#set query string for caching
my $options = [];
#set query string for caching
my $options = [];
push @$options, 'date=' . $params->{date} if $params->{date} ne '';
push @$options, 'from_date=' . $params->{from_date} if $params->{from_date} ne '';
push @$options, 'till_date=' . $params->{till_date} if $params->{till_date} ne '';
$ENV{QUERY_STRING} = '' . join( "&", @$options );
$ENV{QUERY_STRING} = '' . join( "&", @$options );
my $content = '';
calendar::get_cached_or_render( $content, $config, $request );
my $content = '';
calendar::get_cached_or_render( $content, $config, $request );
return { content => $content };
return { content => $content };
}
sub get_newest_comments {
my $config = shift;
my $request = shift;
my $config = shift;
my $request = shift;
my $params = {
template => 'comments_newest.html',
limit => 10,
type => 'list',
show_max => 3
};
$request = {
url => $ENV{QUERY_STRING},
params => {
original => $params,
checked => comments::check_params( $config, $params ),
},
config => $config,
connection => $request->{connection}
};
my $content = '';
comments::get_cached_or_render( $content, $config, $request );
return { content => $content };
my $params = {
template => 'comments_newest.html',
limit => 10,
type => 'list',
show_max => 3
};
$request = {
url => $ENV{QUERY_STRING},
params => {
original => $params,
checked => comments::check_params( $config, $params ),
},
config => $config,
connection => $request->{connection}
};
my $content = '';
comments::get_cached_or_render( $content, $config, $request );
return { content => $content };
}
sub get_cache {
my $config = shift;
my $request = shift;
my $config = shift;
my $request = shift;
my $params = $request->{params}->{checked};
my $debug = $config->{system}->{debug};
my $params = $request->{params}->{checked};
my $debug = $config->{system}->{debug};
if ( $config->{cache}->{use_cache} == 1 ) {
configure_cache($config);
my $cache = cache::load( $config, $params );
return $cache;
}
return {};
if ( $config->{cache}->{use_cache} == 1 ) {
configure_cache($config);
my $cache = cache::load( $config, $params );
return $cache;
}
return {};
}
sub configure_cache {
my $config = shift;
my $config = shift;
cache::init();
my $controllers = $config->{controllers};
cache::init();
my $controllers = $config->{controllers};
my $date_pattern = $cache::date_pattern;
my $date_pattern = cache::get_date_pattern();
# cache::add_map('' ,'programm/index.html');
cache::add_map( 'date=today', 'programm/' . $controllers->{events} . '/today.html' );
cache::add_map( 'date=' . $date_pattern, 'programm/' . $controllers->{events} . '/$1-$2-$3.html' );
cache::add_map( 'from_date=' . $date_pattern . '&till_date=' . $date_pattern,
'programm/' . $controllers->{events} . '/$1-$2-$3_$4-$5-$6.html' );
cache::add_map( 'event_id=(\d+)', 'programm/' . $controllers->{event} . '/$1.html' );
# cache::add_map('' ,'programm/index.html');
cache::add_map( 'date=today', 'programm/' . $controllers->{events} . '/today.html' );
cache::add_map( 'date=' . $date_pattern, 'programm/' . $controllers->{events} . '/$1-$2-$3.html' );
cache::add_map( 'from_date=' . $date_pattern . '&till_date=' . $date_pattern,
'programm/' . $controllers->{events} . '/$1-$2-$3_$4-$5-$6.html' );
cache::add_map( 'event_id=(\d+)', 'programm/' . $controllers->{event} . '/$1.html' );
}
sub put_cache {
my $config = shift;
my $request = shift;
my $cache = shift;
my $config = shift;
my $request = shift;
my $cache = shift;
#write to cache
if ( $config->{cache}->{use_cache} == 1 ) {
cache::save($cache);
}
#write to cache
if ( $config->{cache}->{use_cache} == 1 ) {
cache::save($cache);
}
}
sub check_params {
my $config = shift;
my $params = shift;
my $config = shift;
my $params = shift;
#get start and stop from projects
my $range = project::get_date_range($config);
my $start_date = $range->{start_date};
my $end_date = $range->{end_date};
#get start and stop from projects
my $range = project::get_date_range($config);
my $start_date = $range->{start_date};
my $end_date = $range->{end_date};
#filter for date
my $date = time::check_date( $params->{date} );
#filter for date
my $date = time::check_date( $params->{date} );
#print STDERR $date."\n";
if ( $date eq '' ) {
$date = time::time_to_date( time() );
}
#
if ( $date eq 'today' ) {
$date = time::get_event_date($config);
}
#print STDERR $date."\n";
if ( $date eq '' ) {
$date = time::time_to_date( time() );
}
#
if ( $date eq 'today' ) {
$date = time::get_event_date($config);
}
# $date =$config->{date}->{start_date} if ($date lt $config->{date}->{start_date});
# $date =$config->{date}->{end_date} if ($date gt $config->{date}->{end_date});
$date = $start_date if $date lt $start_date;
$date = $end_date if $date gt $end_date;
# $date =$config->{date}->{start_date} if ($date lt $config->{date}->{start_date});
# $date =$config->{date}->{end_date} if ($date gt $config->{date}->{end_date});
$date = $start_date if $date lt $start_date;
$date = $end_date if $date gt $end_date;
#filter for date
# my $date=time::check_date($params->{date});
my $time = time::check_time( $params->{time} );
if ( ( defined $params->{today} ) && ( $params->{today} eq '1' ) ) {
$date = time::time_to_date( time() );
$params->{date} = $date;
}
#filter for date
# my $date=time::check_date($params->{date});
my $time = time::check_time( $params->{time} );
if ( ( defined $params->{today} ) && ( $params->{today} eq '1' ) ) {
$date = time::time_to_date( time() );
$params->{date} = $date;
}
my $from_date = time::check_date( $params->{from_date} );
my $till_date = time::check_date( $params->{till_date} );
my $from_date = time::check_date( $params->{from_date} );
my $till_date = time::check_date( $params->{till_date} );
my $previous_series = $params->{previous_series} || '';
if ( ($previous_series) && ( $previous_series =~ /(\d+)/ ) ) {
$params->{event_id} = events::get_previous_event_of_series(
undef, $config,
{
event_id => $1,
exclude_projects => 1,
exclude_locations => 1,
}
);
}
my $previous_series = $params->{previous_series} || '';
if ( ($previous_series) && ( $previous_series =~ /(\d+)/ ) ) {
$params->{event_id} = events::get_previous_event_of_series(
undef, $config,
{
event_id => $1,
exclude_projects => 1,
exclude_locations => 1,
}
);
}
my $next_series = $params->{next_series} || '';
if ( ($next_series) && ( $next_series =~ /(\d+)/ ) ) {
$params->{event_id} = events::get_next_event_of_series(
undef, $config,
{
event_id => $1,
exclude_projects => 1,
exclude_locations => 1,
}
);
}
my $next_series = $params->{next_series} || '';
if ( ($next_series) && ( $next_series =~ /(\d+)/ ) ) {
$params->{event_id} = events::get_next_event_of_series(
undef, $config,
{
event_id => $1,
exclude_projects => 1,
exclude_locations => 1,
}
);
}
my $event_id = $params->{event_id} || '';
unless ( $event_id eq '' ) {
if ( $event_id =~ /(\d+)/ ) {
$event_id = $1;
} else {
log::error( $config, "invalid event_id" );
}
}
my $event_id = $params->{event_id} || '';
unless ( $event_id eq '' ) {
if ( $event_id =~ /(\d+)/ ) {
$event_id = $1;
} else {
log::error( $config, "invalid event_id" );
}
}
my $debug = $params->{debug} || '';
if ( $debug =~ /([a-z\_\,]+)/ ) {
$debug = $1;
}
my $debug = $params->{debug} || '';
if ( $debug =~ /([a-z\_\,]+)/ ) {
$debug = $1;
}
#set query string for caching
if ( ( !exists $ENV{QUERY_STRING} ) || ( $ENV{QUERY_STRING} eq '' ) ) {
my $options = [];
#set query string for caching
if ( ( !exists $ENV{QUERY_STRING} ) || ( $ENV{QUERY_STRING} eq '' ) ) {
my $options = [];
push @$options, 'date=' . $date if $date ne '';
push @$options, 'from_date=' . $from_date if $from_date ne '';
push @$options, 'till_date=' . $till_date if $till_date ne '';
push @$options, 'event_id=' . $event_id if $event_id ne '';
$ENV{QUERY_STRING} = '' . join( "&", @$options );
}
$ENV{QUERY_STRING} = '' . join( "&", @$options );
}
return {
date => $date,
time => $time,
from_date => $from_date,
till_date => $till_date,
event_id => $event_id,
return {
date => $date,
time => $time,
from_date => $from_date,
till_date => $till_date,
event_id => $event_id,
# project => $project,
debug => $debug,
};
# project => $project,
debug => $debug,
};
}
#do not delete last line!

View File

@@ -1,5 +1,3 @@
#!/bin/perl
package audio_recordings;
use warnings "all";
@@ -8,11 +6,8 @@ use strict;
use Data::Dumper;
use db();
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get_columns get);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
# columns:
# id, project_id, studio_id, event_id
@@ -23,67 +18,67 @@ our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;
sub get_columns {
my $config = shift;
my $config = shift;
my $dbh = db::connect($config);
my $cols = db::get_columns( $dbh, 'calcms_audio_recordings' );
my $columns = {};
for my $col (@$cols) {
$columns->{$col} = 1;
}
return $columns;
my $dbh = db::connect($config);
my $cols = db::get_columns( $dbh, 'calcms_audio_recordings' );
my $columns = {};
for my $col (@$cols) {
$columns->{$col} = 1;
}
return $columns;
}
# get playout entries
sub get {
my $config = shift;
my $condition = shift;
my $config = shift;
my $condition = shift;
return undef unless defined $condition->{project_id};
return undef unless defined $condition->{studio_id};
return undef unless defined $condition->{project_id};
return undef unless defined $condition->{studio_id};
my $date_range_include = 0;
$date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 );
my $date_range_include = 0;
$date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 );
my $dbh = db::connect($config);
my $dbh = db::connect($config);
my $conditions = [];
my $bind_values = [];
my $conditions = [];
my $bind_values = [];
if ( ( defined $condition->{id} ) && ( $condition->{id} ne '' ) ) {
push @$conditions, 'id=?';
push @$bind_values, $condition->{id};
}
if ( ( defined $condition->{id} ) && ( $condition->{id} ne '' ) ) {
push @$conditions, 'id=?';
push @$bind_values, $condition->{id};
}
if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) {
push @$conditions, 'project_id=?';
push @$bind_values, $condition->{project_id};
}
if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) {
push @$conditions, 'project_id=?';
push @$bind_values, $condition->{project_id};
}
if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) {
push @$conditions, 'studio_id=?';
push @$bind_values, $condition->{studio_id};
}
if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) {
push @$conditions, 'studio_id=?';
push @$bind_values, $condition->{studio_id};
}
if ( ( defined $condition->{event_id} ) && ( $condition->{event_id} ne '' ) ) {
push @$conditions, 'event_id=?';
push @$bind_values, $condition->{event_id};
}
if ( ( defined $condition->{event_id} ) && ( $condition->{event_id} ne '' ) ) {
push @$conditions, 'event_id=?';
push @$bind_values, $condition->{event_id};
}
if ( ( defined $condition->{path} ) && ( $condition->{path} ne '' ) ) {
push @$conditions, 'path=?';
push @$bind_values, $condition->{path};
}
if ( ( defined $condition->{path} ) && ( $condition->{path} ne '' ) ) {
push @$conditions, 'path=?';
push @$bind_values, $condition->{path};
}
my $limit = '';
if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) {
$limit = 'limit ' . $condition->{limit};
}
my $limit = '';
if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) {
$limit = 'limit ' . $condition->{limit};
}
my $whereClause = '';
$whereClause = " where " . join( " and ", @$conditions ) if ( scalar @$conditions > 0 );
my $whereClause = '';
$whereClause = " where " . join( " and ", @$conditions ) if ( scalar @$conditions > 0 );
my $query = qq{
my $query = qq{
select id
,project_id
,studio_id
@@ -104,32 +99,32 @@ sub get {
order by created_at desc
};
#print STDERR Dumper($query).Dumper($bind_values);
my $entries = db::get( $dbh, $query, $bind_values );
return $entries;
#print STDERR Dumper($query).Dumper($bind_values);
my $entries = db::get( $dbh, $query, $bind_values );
return $entries;
}
# update playout entry if differs to old values
sub update {
my $config = shift;
my $dbh = shift;
my $entry = shift;
my $config = shift;
my $dbh = shift;
my $entry = shift;
#print STDERR "update:".Dumper($entry);
#print STDERR "update:".Dumper($entry);
my $day_start = $config->{date}->{day_starting_hour};
my $day_start = $config->{date}->{day_starting_hour};
my $bind_values = [
$entry->{path}, $entry->{size},
$entry->{created_by}, $entry->{created_at},
$entry->{modified_at} || time::time_to_datetime( time() ), $entry->{processed},
$entry->{mastered}, $entry->{eventDuration},
$entry->{audioDuration}, $entry->{rmsLeft},
$entry->{rmsRight}, $entry->{project_id},
$entry->{studio_id}, $entry->{event_id}
];
my $bind_values = [
$entry->{path}, $entry->{size},
$entry->{created_by}, $entry->{created_at},
$entry->{modified_at} || time::time_to_datetime( time() ), $entry->{processed},
$entry->{mastered}, $entry->{eventDuration},
$entry->{audioDuration}, $entry->{rmsLeft},
$entry->{rmsRight}, $entry->{project_id},
$entry->{studio_id}, $entry->{event_id}
];
my $query = qq{
my $query = qq{
update calcms_audio_recordings
set path=?, size=?,
created_by=?, created_at=?,
@@ -139,71 +134,71 @@ sub update {
rmsLeft=?, rmsRight=?
where project_id=? and studio_id=? and event_id=?
};
if ( defined $entry->{id} ) {
$query .= ' and id=?';
push @$bind_values, $entry->{id};
}
if ( defined $entry->{id} ) {
$query .= ' and id=?';
push @$bind_values, $entry->{id};
}
#print STDERR Dumper($query).Dumper($bind_values);
return db::put( $dbh, $query, $bind_values );
#print STDERR Dumper($query).Dumper($bind_values);
return db::put( $dbh, $query, $bind_values );
}
# insert playout entry
sub insert {
my $config = shift;
my $dbh = shift;
my $entry = shift;
my $config = shift;
my $dbh = shift;
my $entry = shift;
return undef unless defined $entry->{project_id};
return undef unless defined $entry->{studio_id};
return undef unless defined $entry->{event_id};
return undef unless defined $entry->{path};
return undef unless defined $entry->{project_id};
return undef unless defined $entry->{studio_id};
return undef unless defined $entry->{event_id};
return undef unless defined $entry->{path};
#print STDERR "insert into audio_recordings:".Dumper($entry);
return db::insert(
$dbh,
'calcms_audio_recordings',
{
project_id => $entry->{project_id},
studio_id => $entry->{studio_id},
event_id => $entry->{event_id},
path => $entry->{path},
size => $entry->{size},
created_by => $entry->{created_by},
eventDuration => $entry->{eventDuration},
audioDuration => $entry->{audioDuration},
rmsLeft => $entry->{rmsLeft},
rmsRight => $entry->{rmsRight},
processed => $entry->{processed},
mastered => $entry->{mastered} || '0',
}
);
#print STDERR "insert into audio_recordings:".Dumper($entry);
return db::insert(
$dbh,
'calcms_audio_recordings',
{
project_id => $entry->{project_id},
studio_id => $entry->{studio_id},
event_id => $entry->{event_id},
path => $entry->{path},
size => $entry->{size},
created_by => $entry->{created_by},
eventDuration => $entry->{eventDuration},
audioDuration => $entry->{audioDuration},
rmsLeft => $entry->{rmsLeft},
rmsRight => $entry->{rmsRight},
processed => $entry->{processed},
mastered => $entry->{mastered} || '0',
}
);
}
# delete playout entry
sub delete {
my $config = shift;
my $dbh = shift;
my $entry = shift;
my $config = shift;
my $dbh = shift;
my $entry = shift;
return undef unless defined $entry->{project_id};
return undef unless defined $entry->{studio_id};
return undef unless defined $entry->{event_id};
return undef unless defined $entry->{path};
return undef unless defined $entry->{project_id};
return undef unless defined $entry->{studio_id};
return undef unless defined $entry->{event_id};
return undef unless defined $entry->{path};
my $query = qq{
my $query = qq{
delete
from calcms_audio_recordings
where project_id=? and studio_id=? and event_id=? and path=?
};
my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{event_id}, $entry->{path} ];
return db::put( $dbh, $query, $bind_values );
my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{event_id}, $entry->{path} ];
return db::put( $dbh, $query, $bind_values );
}
sub error {
my $msg = shift;
print "ERROR: $msg<br/>\n";
my $msg = shift;
print "ERROR: $msg<br/>\n";
}
#do not delete last line!

View File

@@ -1,25 +1,20 @@
#!/bin/perl
package auth;
use warnings "all";
use strict;
use CGI;
use CGI::Session qw(-ip-match);
use CGI::Cookie();
#$CGI::Session::IP_MATCH=1;
package auth;
use warnings "all";
use strict;
use Data::Dumper;
use Authen::Passphrase::BlowfishCrypt();
use time();
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(get_user login logout crypt_password);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
use base 'Exporter';
our @EXPORT_OK = qw(get_user login logout crypt_password);
my $defaultExpiration = 60;
my $tmp_dir = '/var/tmp/';
my $debug = 0;
@@ -27,259 +22,258 @@ my $debug = 0;
sub debug;
sub get_user {
my $cgi = shift;
my $config = shift;
my $cgi = shift;
my $config = shift;
my %parms = $cgi->Vars();
my $parms = \%parms;
my %parms = $cgi->Vars();
my $parms = \%parms;
debug("get_user") if ($debug);
debug("get_user") if ($debug);
# login or logout on action
if ( defined $parms->{action} ) {
if ( $parms->{action} eq 'login' ) {
my $user = login( $cgi, $config, $parms->{user}, $parms->{password} );
$cgi->delete( 'user', 'password', 'uri', 'action' );
return $user;
} elsif ( $parms->{action} eq 'logout' ) {
logout($cgi);
$cgi->delete( 'user', 'password', 'uri', 'action' );
return undef;
}
}
# login or logout on action
if ( defined $parms->{action} ) {
if ( $parms->{action} eq 'login' ) {
my $user = login( $cgi, $config, $parms->{user}, $parms->{password} );
$cgi->delete( 'user', 'password', 'uri', 'action' );
return $user;
} elsif ( $parms->{action} eq 'logout' ) {
logout($cgi);
$cgi->delete( 'user', 'password', 'uri', 'action' );
return undef;
}
}
# read session id from cookie
my $session_id = read_cookie($cgi);
# read session id from cookie
my $session_id = read_cookie($cgi);
# login if no cookie found
return show_login_form( $parms->{user}, 'Please login' ) unless defined $session_id;
# login if no cookie found
return show_login_form( $parms->{user}, 'Please login' ) unless defined $session_id;
# read session
my $session = read_session($session_id);
# read session
my $session = read_session($session_id);
# login if user not found
return show_login_form( $parms->{user}, 'unknown User' ) unless defined $session;
# login if user not found
return show_login_form( $parms->{user}, 'unknown User' ) unless defined $session;
$parms->{user} = $session->{user};
$parms->{expires} = $session->{expires};
debug( $parms->{expires} );
return $session->{user}, $session->{expires};
$parms->{user} = $session->{user};
$parms->{expires} = $session->{expires};
debug( $parms->{expires} );
return $session->{user}, $session->{expires};
}
sub crypt_password {
my $password = shift;
my $password = shift;
my $ppr = Authen::Passphrase::BlowfishCrypt->new(
cost => 8,
salt_random => 1,
passphrase => $password
);
return {
salt => $ppr->salt_base64,
crypt => $ppr->as_crypt
};
my $ppr = Authen::Passphrase::BlowfishCrypt->new(
cost => 8,
salt_random => 1,
passphrase => $password
);
return {
salt => $ppr->salt_base64,
crypt => $ppr->as_crypt
};
}
sub login {
my $cgi = shift;
my $config = shift;
my $user = shift;
my $password = shift;
debug("login") if ($debug);
my $cgi = shift;
my $config = shift;
my $user = shift;
my $password = shift;
debug("login") if ($debug);
#print STDERR "login $user $password\n";
my $result = authenticate( $config, $user, $password );
#print STDERR "login $user $password\n";
my $result = authenticate( $config, $user, $password );
#print STDERR Dumper($result);
#print STDERR Dumper($result);
return show_login_form( $user, 'Could not authenticate you' ) unless defined $result;
return unless defined $result->{login} eq '1';
return show_login_form( $user, 'Could not authenticate you' ) unless defined $result;
return unless defined $result->{login} eq '1';
my $timeout = $result->{timeout} || $defaultExpiration;
$timeout = '+' . $timeout . 'm';
my $timeout = $result->{timeout} || $defaultExpiration;
$timeout = '+' . $timeout . 'm';
my $session_id = create_session( $user, $password, $timeout );
return $user if ( create_cookie( $cgi, $session_id, $timeout ) );
return undef;
my $session_id = create_session( $user, $password, $timeout );
return $user if ( create_cookie( $cgi, $session_id, $timeout ) );
return undef;
}
sub logout {
my $cgi = shift;
my $session_id = read_cookie($cgi);
debug("logout") if ($debug);
unless ( delete_session($session_id) ) {
return show_login_form( 'Cant delete session', 'logged out' );
}
unless ( delete_cookie($cgi) ) {
return show_login_form( 'Cant remove cookie', 'logged out' );
}
my $uri = $ENV{HTTP_REFERER} || '';
$uri =~ s/action=logout//g;
print $cgi->redirect($uri);
# return show_login_form('', 'logged out');
my $cgi = shift;
my $session_id = read_cookie($cgi);
debug("logout") if ($debug);
unless ( delete_session($session_id) ) {
return show_login_form( 'Cant delete session', 'logged out' );
}
unless ( delete_cookie($cgi) ) {
return show_login_form( 'Cant remove cookie', 'logged out' );
}
my $uri = $ENV{HTTP_REFERER} || '';
$uri =~ s/action=logout//g;
print $cgi->redirect($uri);
return;
}
#read and write data from browser, http://perldoc.perl.org/CGI/Cookie.html
sub create_cookie {
my $cgi = shift;
my $session_id = shift;
my $timeout = shift;
my $cgi = shift;
my $session_id = shift;
my $timeout = shift;
#debug("create_cookie")if ($debug);
#debug("create_cookie")if ($debug);
my $cookie = CGI::Cookie->new(
-name => 'sessionID',
-value => $session_id,
-expires => $timeout,
my $cookie = CGI::Cookie->new(
-name => 'sessionID',
-value => $session_id,
-expires => $timeout,
# -domain => '.capricorn.com',
# -path => '/agenda/admin/',
-secure => 1
);
print "Set-Cookie: ", $cookie->as_string, "\n";
print STDERR "#Set-Cookie: ", $cookie->as_string, "\n";
# -domain => '.capricorn.com',
# -path => '/agenda/admin/',
-secure => 1
);
print "Set-Cookie: ", $cookie->as_string, "\n";
print STDERR "#Set-Cookie: ", $cookie->as_string, "\n";
# print $cgi->header( -cookie => $cookie );
return 1;
# print $cgi->header( -cookie => $cookie );
return 1;
}
sub read_cookie {
my $cgi = shift;
my $cgi = shift;
debug("read_cookie") if ($debug);
my %cookie = CGI::Cookie->fetch;
debug( "cookies: " . Dumper( \%cookie ) ) if ($debug);
my $cookie = $cookie{'sessionID'};
debug( "cookie: " . $cookie ) if ($debug);
return undef unless ( defined $cookie );
my $session_id = $cookie->value || undef;
debug( "sid: " . $session_id ) if ($debug);
return $session_id;
debug("read_cookie") if ($debug);
my %cookie = CGI::Cookie->fetch;
debug( "cookies: " . Dumper( \%cookie ) ) if ($debug);
my $cookie = $cookie{'sessionID'};
debug( "cookie: " . $cookie ) if ($debug);
return undef unless defined $cookie ;
my $session_id = $cookie->value || undef;
debug( "sid: " . $session_id ) if ($debug);
return $session_id;
#return $cgi->cookie('sessionID') || undef;
#return $cgi->cookie('sessionID') || undef;
}
sub delete_cookie {
my $cgi = shift;
my $cgi = shift;
debug("delete_cookie") if ($debug);
my $cookie = $cgi->cookie(
-name => 'sessionID',
-value => '',
-expires => '+1s'
);
print $cgi->header( -cookie => $cookie );
return 1;
debug("delete_cookie") if ($debug);
my $cookie = $cgi->cookie(
-name => 'sessionID',
-value => '',
-expires => '+1s'
);
print $cgi->header( -cookie => $cookie );
return 1;
}
#read and write server-side session data
sub create_session {
my $user = shift;
my $password = shift;
my $expiration = shift;
my $user = shift;
my $password = shift;
my $expiration = shift;
debug("create_session") if ($debug);
my $session = new CGI::Session( undef, undef, { Directory => $tmp_dir } );
$session->expire($expiration);
$session->param( "user", $user );
$session->param( "pid", $$ );
debug("create_session") if ($debug);
my $session = CGI::Session->new( undef, undef, { Directory => $tmp_dir } );
$session->expire($expiration);
$session->param( "user", $user );
$session->param( "pid", $$ );
# $session->param("password", $password);
return $session->id();
# $session->param("password", $password);
return $session->id();
}
sub read_session {
my $session_id = shift;
my $session_id = shift;
debug("read_session") if $debug;
return undef unless ( defined $session_id );
debug("read_session") if $debug;
return undef unless ( defined $session_id );
debug("read_session2") if $debug;
my $session = new CGI::Session( undef, $session_id, { Directory => $tmp_dir } );
return undef unless defined $session;
debug("read_session2") if $debug;
my $session = CGI::Session->new( undef, $session_id, { Directory => $tmp_dir } );
return undef unless defined $session;
debug("read_session3") if $debug;
my $user = $session->param("user") || undef;
return undef unless defined $user;
my $expires = time::time_to_datetime( $session->param("_SESSION_ATIME") + $session->param("_SESSION_ETIME") );
return {
user => $user,
expires => $expires
};
debug("read_session3") if $debug;
my $user = $session->param("user") || undef;
return undef unless defined $user;
my $expires = time::time_to_datetime( $session->param("_SESSION_ATIME") + $session->param("_SESSION_ETIME") );
return {
user => $user,
expires => $expires
};
}
sub delete_session {
my $session_id = shift;
my $session_id = shift;
debug("delete_session") if ($debug);
return undef unless ( defined $session_id );
my $session = new CGI::Session( undef, $session_id, { Directory => $tmp_dir } );
$session->delete();
return 1;
debug("delete_session") if ($debug);
return undef unless ( defined $session_id );
my $session = CGI::Session->new( undef, $session_id, { Directory => $tmp_dir } );
$session->delete();
return 1;
}
#check user authentication
sub authenticate {
my $config = shift;
my $user = shift;
my $password = shift;
my $config = shift;
my $user = shift;
my $password = shift;
$config->{access}->{write} = 0;
my $dbh = db::connect($config);
my $query = qq{
$config->{access}->{write} = 0;
my $dbh = db::connect($config);
my $query = qq{
select *
from calcms_users
where name=?
};
my $bind_values = [$user];
my $bind_values = [$user];
#print STDERR "query:".Dumper($query).Dumper($bind_values);
#print STDERR "query:".Dumper($query).Dumper($bind_values);
my $users = db::get( $dbh, $query, $bind_values );
my $users = db::get( $dbh, $query, $bind_values );
#print STDERR "result:".Dumper($users);
#print STDERR "result:".Dumper($users);
if ( scalar(@$users) != 1 ) {
print STDERR "auth: did not find user '$user'\n";
return undef;
}
if ( scalar(@$users) != 1 ) {
print STDERR "auth: did not find user '$user'\n";
return undef;
}
#print STDERR Dumper($users);
#print STDERR Dumper($users);
my $salt = $users->[0]->{salt};
my $ppr = Authen::Passphrase::BlowfishCrypt->from_crypt( $users->[0]->{pass}, $users->[0]->{salt} );
my $salt = $users->[0]->{salt};
my $ppr = Authen::Passphrase::BlowfishCrypt->from_crypt( $users->[0]->{pass}, $users->[0]->{salt} );
return undef unless $ppr->match($password);
if ( $users->[0]->{disabled} == 1 ) {
print STDERR "user '$user' is disabled\n";
return undef;
}
return undef unless $ppr->match($password);
if ( $users->[0]->{disabled} == 1 ) {
print STDERR "user '$user' is disabled\n";
return undef;
}
my $timeout = $users->[0]->{session_timeout} || 120;
$timeout = 10 if $timeout < 10;
$timeout = 12 * 60 if $timeout > 12 * 60;
my $timeout = $users->[0]->{session_timeout} || 120;
$timeout = 10 if $timeout < 10;
$timeout = 12 * 60 if $timeout > 12 * 60;
return {
timeout => $timeout,
login => 1
};
return {
timeout => $timeout,
login => 1
};
}
sub show_login_form {
my $user = shift || '';
my $uri = $ENV{HTTP_REFERER} || '';
my $message = shift || '';
my $requestReset = '';
my $user = shift || '';
my $uri = $ENV{HTTP_REFERER} || '';
my $message = shift || '';
my $requestReset = '';
if ( ( $user ne '' ) && ( $message ne '' ) ) {
$requestReset = qq{
if ( ( $user ne '' ) && ( $message ne '' ) ) {
$requestReset = qq{
<a href="requestPassword.cgi?user=$user">forgotten</a>
};
}
}
debug("show_login_form") if ($debug);
print qq{Content-type:text/html
debug("show_login_form") if ($debug);
print qq{Content-type:text/html
<!DOCTYPE HTML>
<html>
@@ -377,12 +371,13 @@ sub show_login_form {
</body>
</html>
};
return undef;
return undef;
}
sub debug {
my $message = shift;
print STDERR "$message\n" if $debug > 0;
my $message = shift;
print STDERR "$message\n" if $debug > 0;
return;
}
#do not delete last line!

View File

@@ -1,3 +1,5 @@
package cache;
use warnings "all";
use strict;
@@ -6,171 +8,175 @@ use time();
use log();
use markup();
package cache;
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(init add_map get_map get_map_keys load save get_filename escape_regexp escape_regexp_line);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
my $cache_map = {};
my $cache_map_keys = [];
my $header_printed = 0;
our $date_pattern = '(\d{4})\-(\d{2})\-(\d{2})';
our $datetime_pattern = '(\d{4})\-(\d{2})\-(\d{2})[T\+](\d{2})\:(\d{2})(\:\d{2})?';
my $date_pattern = '(\d{4})\-(\d{2})\-(\d{2})';
my $datetime_pattern = '(\d{4})\-(\d{2})\-(\d{2})[T\+](\d{2})\:(\d{2})(\:\d{2})?';
sub init {
$cache_map = {};
$cache_map_keys = [];
$header_printed = 0;
$cache_map = {};
$cache_map_keys = [];
$header_printed = 0;
}
sub get_date_pattern(){
return $date_pattern;
}
sub get_datetime_pattern(){
return $datetime_pattern;
}
sub add_map {
my $key = $_[0];
my $value = $_[1];
my $key = $_[0];
my $value = $_[1];
$key = '^' . $key . '$';
push @$cache_map_keys, $key;
$cache_map->{$key} = $value;
$key = '^' . $key . '$';
push @$cache_map_keys, $key;
$cache_map->{$key} = $value;
}
sub get_map {
return $cache_map;
return $cache_map;
}
sub get_map_keys {
return $cache_map_keys;
return $cache_map_keys;
}
#get cache from params
sub load {
my $params = shift;
my $params = shift;
my $filename = get_filename($params);
my $filename = get_filename($params);
my $result = { filename => $filename };
my $result = { filename => $filename };
if ( defined $filename ) {
my @file_info = stat($filename);
my $modified = $file_info[9] || '';
if ( $modified ne '' ) {
if ( defined $filename ) {
my @file_info = stat($filename);
my $modified = $file_info[9] || '';
if ( $modified ne '' ) {
#file exists
my @now = localtime( time() );
my @modified = localtime($modified);
if ( $now[2] == $modified[2] ) {
#file exists
my @now = localtime( time() );
my @modified = localtime($modified);
if ( $now[2] == $modified[2] ) {
#file is elder than a hour
my $content = log::load_file($filename);
if ( defined $content ) {
$result->{content} = $content;
$result->{action} = 'read';
return $result;
}
}
}
}
#file is elder than a hour
my $content = log::load_file($filename);
if ( defined $content ) {
$result->{content} = $content;
$result->{action} = 'read';
return $result;
}
}
}
}
$result->{action} = 'save';
return $result;
$result->{action} = 'save';
return $result;
}
#get filename from params
sub get_filename {
my $config = shift;
my $params = shift;
my $config = shift;
my $params = shift;
# my $url=$ENV{REQUEST_URI};
my $url = $ENV{QUERY_STRING} || '';
if ( $url ne '' ) {
$url =~ s/(^|\&)update\=\d//gi;
$url =~ s/(^|\&)debug\=.*//gi;
$url =~ s/\?\&/\?/g;
$url =~ s/\&{2,99}/\&/g;
$url =~ s/\&$//g;
$url =~ s/^\/\//\//g;
}
foreach my $pattern (@$cache_map_keys) {
# my $url=$ENV{REQUEST_URI};
my $url = $ENV{QUERY_STRING} || '';
if ( $url ne '' ) {
$url =~ s/(^|\&)update\=\d//gi;
$url =~ s/(^|\&)debug\=.*//gi;
$url =~ s/\?\&/\?/g;
$url =~ s/\&{2,99}/\&/g;
$url =~ s/\&$//g;
$url =~ s/^\/\//\//g;
}
foreach my $pattern (@$cache_map_keys) {
my $filename = $url;
if ( $filename =~ /$pattern/ ) {
my $m1 = $1;
my $m2 = $2;
my $m3 = $3;
my $m4 = $4;
my $m5 = $5;
my $m6 = $6;
my $m7 = $7;
my $m8 = $8;
my $filename = $url;
if ( $filename =~ /$pattern/ ) {
my $m1 = $1;
my $m2 = $2;
my $m3 = $3;
my $m4 = $4;
my $m5 = $5;
my $m6 = $6;
my $m7 = $7;
my $m8 = $8;
# my $m9=$9;
# my $m9=$9;
my $result = $cache_map->{$pattern};
my $result = $cache_map->{$pattern};
$filename =~ s/$pattern/$result/;
$filename =~ s/\$1/$m1/ if ( defined $m1 );
$filename =~ s/\$2/$m2/ if ( defined $m2 );
$filename =~ s/\$3/$m3/ if ( defined $m3 );
$filename =~ s/\$4/$m4/ if ( defined $m4 );
$filename =~ s/\$5/$m5/ if ( defined $m5 );
$filename =~ s/\$6/$m6/ if ( defined $m6 );
$filename =~ s/\$7/$m7/ if ( defined $m7 );
$filename =~ s/\$8/$m8/ if ( defined $m8 );
$filename =~ s/$pattern/$result/;
$filename =~ s/\$1/$m1/ if ( defined $m1 );
$filename =~ s/\$2/$m2/ if ( defined $m2 );
$filename =~ s/\$3/$m3/ if ( defined $m3 );
$filename =~ s/\$4/$m4/ if ( defined $m4 );
$filename =~ s/\$5/$m5/ if ( defined $m5 );
$filename =~ s/\$6/$m6/ if ( defined $m6 );
$filename =~ s/\$7/$m7/ if ( defined $m7 );
$filename =~ s/\$8/$m8/ if ( defined $m8 );
# $filename=~s/\$9/$m9/ if (defined $m9);
$filename = $config->{cache}->{cache_dir} . $filename;
return $filename;
}
}
return undef;
# $filename=~s/\$9/$m9/ if (defined $m9);
$filename = $config->{cache}->{cache_dir} . $filename;
return $filename;
}
}
return undef;
}
#deprecated: set file from params
sub set {
my $params = shift;
my $content = shift;
my $params = shift;
my $content = shift;
my $filename = get_filename($params);
my $cache = {
filename => $filename,
content => $content
};
my $filename = get_filename($params);
my $cache = {
filename => $filename,
content => $content
};
# print $filename.":file\n";
# print $filename.":file\n";
if ( defined $filename ) {
cache::save($cache);
}
if ( defined $filename ) {
cache::save($cache);
}
}
sub save {
my $cache = shift;
my $cache = shift;
return if $cache->{action} ne 'save';
return if ( !defined $cache->{filename} ) || ( $cache->{filename} eq '' );
log::save_file( $cache->{filename}, $cache->{content} );
chmod 0664, $cache->{filename};
log::save_file( $cache->{filename}, $cache->{content} );
chmod 0664, $cache->{filename};
}
sub escape_regexp {
my $reg_exp = shift;
$reg_exp =~ s/([\^\$\\(\)\[\]\{\}\|\/\*\+\.\-\&\:])/\\$1/gi;
return $reg_exp;
my $reg_exp = shift;
$reg_exp =~ s/([\^\$\\(\)\[\]\{\}\|\/\*\+\.\-\&\:])/\\$1/gi;
return $reg_exp;
}
sub escape_regexp_line {
my $reg_exp = shift;
$reg_exp =~ s/([\^\$\\(\)\[\]\{\}\|\/\*\+\.\-\&\:])/\\$1/gi;
return '^' . $reg_exp . '$';
my $reg_exp = shift;
$reg_exp =~ s/([\^\$\\(\)\[\]\{\}\|\/\*\+\.\-\&\:])/\\$1/gi;
return '^' . $reg_exp . '$';
}
sub configure {
my $file_name = shift;
my $file_name = shift;
cache::init();
cache::add_map( '', $file_name );
cache::init();
cache::add_map( '', $file_name );
}
#do not delete last line!

View File

@@ -1,524 +1,514 @@
#use config();
use template();
#use markup();
use cache();
#use log();
#use time();
#use project();
#use events();
package calendar;
use warnings "all";
use strict;
use Data::Dumper;
use Date::Calc();
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(init get_cached_or_render get render get_calendar_weeks configure_cache);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
use template();
use cache();
#my $debug='';
use base 'Exporter';
our @EXPORT_OK = qw(init get_cached_or_render get render get_calendar_weeks configure_cache);
sub init {
}
sub get_cached_or_render {
# my $output = $_[0]
my $config = $_[1];
my $request = $_[2];
# my $output = $_[0]
my $config = $_[1];
my $request = $_[2];
my $parms = $request->{params}->{checked};
my $debug = $config->{system}->{debug};
my $parms = $request->{params}->{checked};
my $debug = $config->{system}->{debug};
my $cache = {};
if ( $config->{cache}->{use_cache} == 1 ) {
calendar::configure_cache($config);
$cache = cache::load( $config, $parms );
if ( defined $cache->{content} ) {
$_[0] = $cache->{content};
return;
}
}
my $cache = {};
if ( $config->{cache}->{use_cache} == 1 ) {
calendar::configure_cache($config);
$cache = cache::load( $config, $parms );
if ( defined $cache->{content} ) {
$_[0] = $cache->{content};
return;
}
}
my $calendar = calendar::get( $config, $request );
my $calendar = calendar::get( $config, $request );
calendar::render( $_[0], $config, $request, $calendar );
calendar::render( $_[0], $config, $request, $calendar );
#write to cache
if ( $config->{cache}->{use_cache} == 1 ) {
#write to cache
if ( $config->{cache}->{use_cache} == 1 ) {
#todo:put out reference only
$cache->{content} = $_[0];
cache::save($cache);
}
#todo:put out reference only
$cache->{content} = $_[0];
cache::save($cache);
}
}
sub get {
my $config = shift;
my $request = shift;
my $config = shift;
my $request = shift;
my $params = $request->{params}->{checked};
my $debug = $config->{system}->{debug};
my $params = $request->{params}->{checked};
my $debug = $config->{system}->{debug};
my $language = $config->{date}->{language} || 'en';
my $language = $config->{date}->{language} || 'en';
my $date = $params->{date} || '';
my $template = $params->{template} || '';
my $from_time = $params->{from_time} || '';
my $till_time = $params->{till_time} || '';
my $date = $params->{date} || '';
my $template = $params->{template} || '';
my $from_time = $params->{from_time} || '';
my $till_time = $params->{till_time} || '';
my @today = localtime( time() );
my $today = sprintf( '%04d-%02d-%02d', 1900 + $today[5], $today[4] + 1, $today[3] );
my @today = localtime( time() );
my $today = sprintf( '%04d-%02d-%02d', 1900 + $today[5], $today[4] + 1, $today[3] );
my $weekday_names = $time::names->{$language}->{weekdays};
my $weekday_short_names = $time::names->{$language}->{weekdays_abbr};
my $week_label = {};
my $c = 0;
for my $weekday (@$weekday_short_names) {
$week_label->{$weekday} = $weekday_names->[$c] || '';
$c++;
}
my $weekday_names = time::getWeekdayNames($language);
my $weekday_short_names = time::getWeekdayNamesShort($language);
my $week_label = {};
my $c = 0;
for my $weekday (@$weekday_short_names) {
$week_label->{$weekday} = $weekday_names->[$c] || '';
$c++;
}
$template =~ s/\'//gi;
$from_time =~ s/\'//gi;
$till_time =~ s/\'//gi;
$template =~ s/\'//gi;
$from_time =~ s/\'//gi;
$till_time =~ s/\'//gi;
#put "clear all" filter into final results
my $day_result = {};
my $clear_filter = $day_result;
#put "clear all" filter into final results
my $day_result = {};
my $clear_filter = $day_result;
#put "week day" filter into final results
my $days = [];
$c = 0;
for my $weekday (@$weekday_short_names) {
my $day_result = {
label => $week_label->{$weekday},
weekday => $c + 1,
weekday_parameter => 'weekday=' . $c,
weekday_short_name => $weekday_short_names->[$c] || '',
weekday_name => $weekday_names->[$c] || '',
description => qq{alle $week_label->{$weekday}-Termine anzeigen},
};
push @$days, $day_result;
$c++;
}
#put "week day" filter into final results
my $days = [];
$c = 0;
for my $weekday (@$weekday_short_names) {
my $day_result = {
label => $week_label->{$weekday},
weekday => $c + 1,
weekday_parameter => 'weekday=' . $c,
weekday_short_name => $weekday_short_names->[$c] || '',
weekday_name => $weekday_names->[$c] || '',
description => qq{alle $week_label->{$weekday}-Termine anzeigen},
};
push @$days, $day_result;
$c++;
}
#weeks and days array
my $weekAndDayResults = [];
#weeks and days array
my $weekAndDayResults = [];
#weekday array
my $weekdayResults = $days;
#weekday array
my $weekdayResults = $days;
#week array
my $weekResults = [];
#week array
my $weekResults = [];
#info hash by timedate
my $dateInfo = {};
#info hash by timedate
my $dateInfo = {};
#generate content for each day in a week in a month in a year
#get today
my $start_date = '';
my $end_date = '';
if ( $date =~ /(\d{4})\-(\d{2})/ ) {
my $year = $1;
my $month = $2;
$start_date = "$year-$month-01";
$end_date = "$year-$month-" . Date::Calc::Days_in_Month( $year, $month );
} else {
$start_date = $params->{start_date};
$end_date = $params->{end_date};
}
#generate content for each day in a week in a month in a year
#get today
my $start_date = '';
my $end_date = '';
if ( $date =~ /(\d{4})\-(\d{2})/ ) {
my $year = $1;
my $month = $2;
$start_date = "$year-$month-01";
$end_date = "$year-$month-" . Date::Calc::Days_in_Month( $year, $month );
} else {
$start_date = $params->{start_date};
$end_date = $params->{end_date};
}
my $previous_month = $start_date;
if ( $previous_month =~ /(\d{4})\-(\d{2})/ ) {
my $year = $1;
my $month = $2 - 1;
$month = '0' . $month if ( length($month) < 2 );
if ( $month lt '01' ) {
$year -= 1;
$month = '12';
}
$previous_month = "$year-$month-01";
$previous_month = $params->{start_date} if ( $previous_month lt $params->{start_date} );
}
my $previous_month = $start_date;
if ( $previous_month =~ /(\d{4})\-(\d{2})/ ) {
my $year = $1;
my $month = $2 - 1;
$month = '0' . $month if ( length($month) < 2 );
if ( $month lt '01' ) {
$year -= 1;
$month = '12';
}
$previous_month = "$year-$month-01";
$previous_month = $params->{start_date} if ( $previous_month lt $params->{start_date} );
}
my $next_month = $end_date;
if ( $next_month =~ /(\d{4})\-(\d{2})/ ) {
my $year = $1;
my $month = $2 + 1;
$month = '0' . $month if ( length($month) < 2 );
if ( $month gt '12' ) {
$year += 1;
$month = '01';
}
$next_month = "$year-$month-01";
$next_month = $params->{end_date} if ( $next_month gt $params->{end_date} );
}
my $next_month = $end_date;
if ( $next_month =~ /(\d{4})\-(\d{2})/ ) {
my $year = $1;
my $month = $2 + 1;
$month = '0' . $month if ( length($month) < 2 );
if ( $month gt '12' ) {
$year += 1;
$month = '01';
}
$next_month = "$year-$month-01";
$next_month = $params->{end_date} if ( $next_month gt $params->{end_date} );
}
my $start_year = undef;
my $start_month = undef;
if ( $start_date =~ /(\d{4})\-(\d{2})/ ) {
$start_year = $1;
$start_month = $2;
}
my $start_month_name = $time::names->{$language}->{months_abbr}->[ $start_month - 1 ];
my $start_year = undef;
my $start_month = undef;
if ( $start_date =~ /(\d{4})\-(\d{2})/ ) {
$start_year = $1;
$start_month = $2;
}
my $monthNames=time::getMonthNamesShort($language);
my $start_month_name = $monthNames->[ $start_month - 1 ];
if ( $params->{month_only} eq '1' ) {
return {
next_month => $next_month,
previous_month => $previous_month,
start_year => $start_year,
start_month => $start_month,
start_month_name => $start_month_name
};
}
if ( $params->{month_only} eq '1' ) {
return {
next_month => $next_month,
previous_month => $previous_month,
start_year => $start_year,
start_month => $start_month,
start_month_name => $start_month_name
};
}
my $years = calendar::get_calendar_weeks( $config, $start_date, $end_date );
my $years = calendar::get_calendar_weeks( $config, $start_date, $end_date );
my $dbh = db::connect( $config, $request );
my $dbh = db::connect( $config, $request );
my $used_days = events::get_by_date_range(
$dbh, $config,
$start_date,
$end_date,
{
exclude_projects => 1,
exclude_locations => 1,
}
);
my $used_day = {};
for my $day (@$used_days) {
$used_day->{ $day->{start_date} } = 1;
}
my $used_days = events::get_by_date_range(
$dbh, $config,
$start_date,
$end_date,
{
exclude_projects => 1,
exclude_locations => 1,
}
);
my $used_day = {};
for my $day (@$used_days) {
$used_day->{ $day->{start_date} } = 1;
}
for my $year ( sort { $a <=> $b } keys %$years ) {
my $months = $years->{$year};
for my $year ( sort { $a <=> $b } keys %$years ) {
my $months = $years->{$year};
for my $month ( sort { $a <=> $b } keys %$months ) {
my $weeks = $months->{$month};
for my $month ( sort { $a <=> $b } keys %$months ) {
my $weeks = $months->{$month};
my $weekCounter = 1;
for my $week (@$weeks) {
my $dayResults = [];
my $weekCounter = 1;
for my $week (@$weeks) {
my $dayResults = [];
my $week_end = undef;
my $week_start = undef;
my $week_end = undef;
my $week_start = undef;
my $week_of_year = undef;
my $woy_year = undef;
my $week_of_year = undef;
my $woy_year = undef;
for my $date (@$week) {
my ( $year, $month, $day ) = split( /\-/, $date );
my $weekday = 0;
my $day_result = undef;
for my $date (@$week) {
my ( $year, $month, $day ) = split( /\-/, $date );
my $weekday = 0;
my $day_result = undef;
( $week_of_year, $woy_year ) = Date::Calc::Week_of_Year( $year, $month, $day ) unless defined $week_of_year;
( $week_of_year, $woy_year ) = Date::Calc::Week_of_Year( $year, $month, $day ) unless defined $week_of_year;
$day_result = {
date => $date,
date_parameter => 'date=' . $date,
day => $day,
year => $year,
month => $month,
};
$day_result->{time} = $from_time if defined $from_time;
$day_result = {
date => $date,
date_parameter => 'date=' . $date,
day => $day,
year => $year,
month => $month,
};
$day_result->{time} = $from_time if defined $from_time;
$day_result->{class} .= ' calcms_today' if $date eq $today;
$day_result->{class} .= ' selected' if defined $used_day->{$date};
$day_result->{class} .= " week_$weekCounter";
$day_result->{class} .= " other_month" if ( $weekCounter < 2 ) && ( $day gt "15" );
$day_result->{class} .= " other_month" if ( $weekCounter > 3 ) && ( $day lt "15" );
$day_result->{class} =~ s/^\s+//g;
$day_result->{class} .= ' calcms_today' if $date eq $today;
$day_result->{class} .= ' selected' if defined $used_day->{$date};
$day_result->{class} .= " week_$weekCounter";
$day_result->{class} .= " other_month" if ( $weekCounter < 2 ) && ( $day gt "15" );
$day_result->{class} .= " other_month" if ( $weekCounter > 3 ) && ( $day lt "15" );
$day_result->{class} =~ s/^\s+//g;
$week_start = $day unless defined $week_start;
$week_end = $day;
$week_start = $day unless defined $week_start;
$week_end = $day;
$day_result->{weekday_name} = $weekday_names->[$weekday];
$day_result->{weekday_short_name} = $weekday_short_names->[$weekday];
$day_result->{weekday} = $weekday + 1;
$day_result->{weekday_name} = $weekday_names->[$weekday];
$day_result->{weekday_short_name} = $weekday_short_names->[$weekday];
$day_result->{weekday} = $weekday + 1;
$dateInfo->{ $day_result->{date} } = $day_result->{weekday} if defined $day_result->{date};
$dateInfo->{ $day_result->{date} } = $day_result->{weekday} if defined $day_result->{date};
push @$dayResults, $day_result;
$weekday++;
push @$dayResults, $day_result;
$weekday++;
} #end for days
} #end for days
#week filter
my $start_date = $week->[0];
my $end_date = $week->[-1];
#week filter
my $start_date = $week->[0];
my $end_date = $week->[-1];
my $week_result = {
from_date => $start_date,
till_date => $end_date,
week_start => $week_start,
week_end => $week_end,
week_month => sprintf( "%2d", $month ),
week_year => $year,
week_of_year => $week_of_year,
};
my $week_result = {
from_date => $start_date,
till_date => $end_date,
week_start => $week_start,
week_end => $week_end,
week_month => sprintf( "%2d", $month ),
week_year => $year,
week_of_year => $week_of_year,
};
$week_result->{class} .= ' selected'
$week_result->{class} .= ' selected'
if ( ( defined $params->{from_date} ) && ( $start_date eq $params->{from_date} ) )
|| ( ( defined $params->{till_date} ) && ( $end_date eq $params->{till_date} ) );
$week_result->{class} .= " week_$weekCounter";
$week_result->{class} =~ s/^\s+//g;
$week_result->{class} .= " week_$weekCounter";
$week_result->{class} =~ s/^\s+//g;
push @$weekResults, $week_result;
push @$weekResults, $week_result;
push @$weekAndDayResults,
{
days => $dayResults,
week => [$week_result]
};
$weekCounter++;
push @$weekAndDayResults,
{
days => $dayResults,
week => [$week_result]
};
$weekCounter++;
} #end week
} #end week
} #end month
} #end month
} #end year
} #end year
for my $weekday (@$weekdayResults) {
$weekday->{start_date} = $start_date;
$weekday->{end_date} = $end_date;
}
for my $weekday (@$weekdayResults) {
$weekday->{start_date} = $start_date;
$weekday->{end_date} = $end_date;
}
return {
week_and_days => $weekAndDayResults,
weekdays => $weekdayResults,
weeks => $weekResults,
days => $dateInfo,
next_month => $next_month,
previous_month => $previous_month,
start_date => $start_date,
end_date => $end_date,
start_month_name => $start_month_name,
start_month => $start_month,
start_year => $start_year,
base_url => $config->{locations}->{base_url},
cache_base_url => $config->{cache}->{base_url},
controllers => $config->{controllers},
};
return {
week_and_days => $weekAndDayResults,
weekdays => $weekdayResults,
weeks => $weekResults,
days => $dateInfo,
next_month => $next_month,
previous_month => $previous_month,
start_date => $start_date,
end_date => $end_date,
start_month_name => $start_month_name,
start_month => $start_month,
start_year => $start_year,
base_url => $config->{locations}->{base_url},
cache_base_url => $config->{cache}->{base_url},
controllers => $config->{controllers},
};
}
sub render {
# my $out = $_[0];
my $config = $_[1];
my $request = $_[2];
my $calendar = $_[3];
# my $out = $_[0];
my $config = $_[1];
my $request = $_[2];
my $calendar = $_[3];
my $parms = $request->{params}->{checked};
my $debug = $config->{system}->{debug};
my $parms = $request->{params}->{checked};
my $debug = $config->{system}->{debug};
my $template_parameters = $calendar;
$template_parameters->{debug} = $config->{system}->{debug};
$template_parameters->{base_url} = $config->{locations}->{base_url};
$template_parameters->{cache_base_url} = $config->{cache}->{base_url};
$template_parameters->{server_cache} = $config->{cache}->{server_cache} if ( $config->{cache}->{server_cache} );
$template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if ( $config->{cache}->{use_client_cache} );
my $template_parameters = $calendar;
$template_parameters->{debug} = $config->{system}->{debug};
$template_parameters->{base_url} = $config->{locations}->{base_url};
$template_parameters->{cache_base_url} = $config->{cache}->{base_url};
$template_parameters->{server_cache} = $config->{cache}->{server_cache} if ( $config->{cache}->{server_cache} );
$template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if ( $config->{cache}->{use_client_cache} );
template::process( $_[0], $parms->{template}, $template_parameters );
template::process( $config, $_[0], $parms->{template}, $template_parameters );
}
sub get_calendar_weeks {
my $config = shift;
my $start = shift;
my $end = shift;
my $config = shift;
my $start = shift;
my $end = shift;
my $debug = $config->{system}->{debug};
my $debug = $config->{system}->{debug};
$start = time::date_to_array($start);
$end = time::date_to_array($end);
$start = time::date_to_array($start);
$end = time::date_to_array($end);
my $start_year = int( $start->[0] );
my $end_year = int( $end->[0] );
my $start_year = int( $start->[0] );
my $end_year = int( $end->[0] );
my $start_month = int( $start->[1] );
my $end_month = int( $end->[1] );
my $start_month = int( $start->[1] );
my $end_month = int( $end->[1] );
my $years = {};
for my $year ( $start_year .. $end_year ) {
my $months = {};
for my $month ( $start_month .. $end_month ) {
my $years = {};
for my $year ( $start_year .. $end_year ) {
my $months = {};
for my $month ( $start_month .. $end_month ) {
#get week arrays of days of the month
my $weeks = getWeeksOfMonth( $year, $month );
$months->{$month} = $weeks;
}
$years->{$year} = $months;
}
return $years;
#get week arrays of days of the month
my $weeks = getWeeksOfMonth( $year, $month );
$months->{$month} = $weeks;
}
$years->{$year} = $months;
}
return $years;
}
sub getWeeksOfMonth {
my $thisYear = shift;
my $thisMonth = shift;
my $thisDay = 1;
my $thisYear = shift;
my $thisMonth = shift;
my $thisDay = 1;
# get weekday of 1st of month
my $thisMonthWeekday = Date::Calc::Day_of_Week( $thisYear, $thisMonth, 1 );
# get weekday of 1st of month
my $thisMonthWeekday = Date::Calc::Day_of_Week( $thisYear, $thisMonth, 1 );
# get next month date
my ( $nextYear, $nextMonth, $nextDay ) = Date::Calc::Add_Delta_YM( $thisYear, $thisMonth, $thisDay, 0, 1 );
# get next month date
my ( $nextYear, $nextMonth, $nextDay ) = Date::Calc::Add_Delta_YM( $thisYear, $thisMonth, $thisDay, 0, 1 );
# get weekday of 1st of next month
my $nextMonthWeekday = Date::Calc::Day_of_Week( $nextYear, $nextMonth, $nextDay );
my ( $lastYear, $lastMonth, $lastDayOfMonth ) = Date::Calc::Add_Delta_Days( $nextYear, $nextMonth, $nextDay, -1 );
# get weekday of 1st of next month
my $nextMonthWeekday = Date::Calc::Day_of_Week( $nextYear, $nextMonth, $nextDay );
my ( $lastYear, $lastMonth, $lastDayOfMonth ) = Date::Calc::Add_Delta_Days( $nextYear, $nextMonth, $nextDay, -1 );
# get date of 1st of row
my ( $week, $year ) = Date::Calc::Week_of_Year( $thisYear, $thisMonth, $thisDay );
( $year, my $month, my $day ) = Date::Calc::Monday_of_Week( $week, $year );
# get date of 1st of row
my ( $week, $year ) = Date::Calc::Week_of_Year( $thisYear, $thisMonth, $thisDay );
( $year, my $month, my $day ) = Date::Calc::Monday_of_Week( $week, $year );
my @weeks = ();
my $weekday = 1;
my @weeks = ();
my $weekday = 1;
{
# first week
my @days = ();
for $weekday ( 0 .. $thisMonthWeekday - 2 ) {
push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day );
$day++;
}
{
# first week
my @days = ();
for $weekday ( 0 .. $thisMonthWeekday - 2 ) {
push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day );
$day++;
}
# set current month
$month = $thisMonth;
$year = $thisYear;
$day = 1;
for $weekday ( $thisMonthWeekday .. 7 ) {
push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day );
$day++;
}
# set current month
$month = $thisMonth;
$year = $thisYear;
$day = 1;
for $weekday ( $thisMonthWeekday .. 7 ) {
push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day );
$day++;
}
# next week
push @weeks, \@days;
}
# next week
push @weeks, \@days;
}
# weeks until end of month
while ( scalar(@weeks) < 6 ) {
my @days = ();
$weekday = 1;
while ( $weekday <= 7 ) {
push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day );
$day++;
$weekday++;
last if $day > $lastDayOfMonth;
}
# weeks until end of month
while ( scalar(@weeks) < 6 ) {
my @days = ();
$weekday = 1;
while ( $weekday <= 7 ) {
push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day );
$day++;
$weekday++;
last if $day > $lastDayOfMonth;
}
if ( $day > $lastDayOfMonth ) {
if ( $day > $lastDayOfMonth ) {
# set next month
$month = $nextMonth;
$year = $nextYear;
$day = 1;
# set next month
$month = $nextMonth;
$year = $nextYear;
$day = 1;
if ( $nextMonthWeekday != 1 ) {
if ( $nextMonthWeekday != 1 ) {
# finish end week
if ( $weekday <= 7 ) {
while ( $weekday <= 7 ) {
push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day );
$day++;
$weekday++;
}
}
}
push @weeks, \@days;
last;
}
push @weeks, \@days if $weeks[-1]->[-1] ne $days[-1];
}
# finish end week
if ( $weekday <= 7 ) {
while ( $weekday <= 7 ) {
push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day );
$day++;
$weekday++;
}
}
}
push @weeks, \@days;
last;
}
push @weeks, \@days if $weeks[-1]->[-1] ne $days[-1];
}
#coming weeks
while ( scalar(@weeks) < 6 ) {
my @days = ();
for $weekday ( 1 .. 7 ) {
push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day );
$day++;
}
push @weeks, \@days;
}
return \@weeks;
#coming weeks
while ( scalar(@weeks) < 6 ) {
my @days = ();
for $weekday ( 1 .. 7 ) {
push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day );
$day++;
}
push @weeks, \@days;
}
return \@weeks;
}
sub configure_cache {
my $config = shift;
my $debug = $config->{system}->{debug};
my $config = shift;
my $debug = $config->{system}->{debug};
cache::init();
cache::init();
my $date_pattern = $cache::date_pattern;
my $controllers = $config->{controllers};
my $date_pattern = cache::get_date_pattern();
my $controllers = $config->{controllers};
cache::add_map( '', $controllers->{calendar} . '/cal.html' );
cache::add_map( 'date=' . $date_pattern, $controllers->{calendar} . '/$1-$2.html' );
cache::add_map( 'from_date=' . $date_pattern . '&till_date=' . $date_pattern, $controllers->{calendar} . '/$1-$2_$5-$6.html' );
cache::add_map( '', $controllers->{calendar} . '/cal.html' );
cache::add_map( 'date=' . $date_pattern, $controllers->{calendar} . '/$1-$2.html' );
cache::add_map( 'from_date=' . $date_pattern . '&till_date=' . $date_pattern, $controllers->{calendar} . '/$1-$2_$5-$6.html' );
}
sub check_params {
my $config = shift;
my $params = shift;
my $config = shift;
my $params = shift;
#get start and stop from projects
my $range = project::get_date_range($config);
my $start_date = $range->{start_date};
my $end_date = $range->{end_date};
#get start and stop from projects
my $range = project::get_date_range($config);
my $start_date = $range->{start_date};
my $end_date = $range->{end_date};
#switch off limiting end date by project
my $open_end = 0;
if ( ( defined $params->{'open_end'} ) && ( $params->{'open_end'} =~ /(\d+)/ ) ) {
$open_end = $1;
$end_date = time::add_days_to_datetime( time::time_to_datetime(), 365 );
}
#switch off limiting end date by project
my $open_end = 0;
if ( ( defined $params->{'open_end'} ) && ( $params->{'open_end'} =~ /(\d+)/ ) ) {
$open_end = $1;
$end_date = time::add_days_to_datetime( time::time_to_datetime(), 365 );
}
my $month_only = $params->{month_only} || '';
my $month_only = $params->{month_only} || '';
#filter for date
my $date = time::check_date( $params->{date} );
#filter for date
my $date = time::check_date( $params->{date} );
$date = $start_date if ( $date lt $start_date );
$date = $end_date if ( $date gt $end_date );
log::error( $config, "no valid year-month format given!" ) if ( $date eq "-1" );
$date = $start_date if ( $date lt $start_date );
$date = $end_date if ( $date gt $end_date );
log::error( $config, "no valid year-month format given!" ) if ( $date eq "-1" );
my $time = time::check_time( $params->{time} );
log::error( $config, "no valid time format given!" ) if ( $time eq "-1" );
my $time = time::check_time( $params->{time} );
log::error( $config, "no valid time format given!" ) if ( $time eq "-1" );
my $from_date = time::check_date( $params->{from_date} ) || '';
log::error( $config, "no valid date format given!" ) if ( defined $from_date && $from_date eq "-1" );
$from_date = $start_date if ( $from_date lt $start_date );
$from_date = $end_date if ( $from_date gt $end_date );
my $from_date = time::check_date( $params->{from_date} ) || '';
log::error( $config, "no valid date format given!" ) if ( defined $from_date && $from_date eq "-1" );
$from_date = $start_date if ( $from_date lt $start_date );
$from_date = $end_date if ( $from_date gt $end_date );
my $till_date = time::check_date( $params->{till_date} || '' );
log::error( $config, "no valid date format given!" ) if ( defined $till_date && $till_date eq "-1" );
$till_date = $start_date if ( $till_date lt $start_date );
$till_date = $end_date if ( $till_date gt $end_date );
my $till_date = time::check_date( $params->{till_date} || '' );
log::error( $config, "no valid date format given!" ) if ( defined $till_date && $till_date eq "-1" );
$till_date = $start_date if ( $till_date lt $start_date );
$till_date = $end_date if ( $till_date gt $end_date );
my $template = template::check( $params->{template}, 'calendar.html' );
my $template = template::check( $config, $params->{template}, 'calendar.html' );
my $debug = $params->{debug};
if ( ( defined $debug ) && ( $debug =~ /([a-z\_\,]+)/ ) ) {
$debug = $1;
}
my $debug = $params->{debug};
if ( ( defined $debug ) && ( $debug =~ /([a-z\_\,]+)/ ) ) {
$debug = $1;
}
return {
template => $template,
date => $date,
from_date => $from_date,
till_date => $till_date,
debug => $debug,
month_only => $month_only,
open_end => $open_end,
start_date => $start_date,
end_date => $end_date
};
return {
template => $template,
date => $date,
from_date => $from_date,
till_date => $till_date,
debug => $debug,
month_only => $month_only,
open_end => $open_end,
start_date => $start_date,
end_date => $end_date
};
}
#do not delete last line!

View File

@@ -1,22 +1,19 @@
package comments;
use warnings "all";
use strict;
use Data::Dumper;
use db();
use config();
use markup();
use template();
use time();
package comments;
use warnings "all";
use strict;
use Data::Dumper;
require Exporter;
our @ISA = qw(Exporter);
#our @EXPORT = qw(all);
use base 'Exporter';
our @EXPORT_OK =
qw(init get_cached_or_render get modify_results render configure_cache get_query get_by_event get_level get_events check insert set_lock_status set_news_status lock update_comment_count sort);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
qw(init get_cached_or_render get modify_results render configure_cache get_query get_by_event get_level get_events check insert set_lock_status set_news_status lock update_comment_count sort)
;
sub init {
}
@@ -188,7 +185,7 @@ sub modify_results {
for my $result (@$results) {
$result->{allow}->{new_comments} = 1 if ( $params->{allow}->{new_comments} );
$result->{start_date_name} = time::date_format( $result->{created_at}, $language );
$result->{start_date_name} = time::date_format( $config, $result->{created_at}, $language );
$result->{start_time_name} = time::time_format( $result->{created_at} );
my $comment_limit = 100;
if ( length( $result->{content} ) > $comment_limit ) {
@@ -250,7 +247,7 @@ sub render {
$template_parameters->{server_cache} = $config->{cache}->{server_cache} if ( $config->{cache}->{server_cache} );
$template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if ( $config->{cache}->{use_client_cache} );
$template_parameters->{controllers} = $config->{controllers};
template::process( $_[0], $params->{template}, $template_parameters );
template::process( $config, $_[0], $params->{template}, $template_parameters );
}
#check if comment exists already
@@ -614,14 +611,11 @@ sub configure_cache {
my $config = shift;
cache::init();
my $date_pattern = $cache::date_pattern;
my $datetime_pattern = $cache::datetime_pattern;
my $controllers = $config->{controllers};
my $controllers = $config->{controllers};
cache::add_map( 'template=comments_newest&limit=3&type=list', $controllers->{comments} . '/neueste.html' );
cache::add_map( 'template=comments_atom.xml&limit=20', $controllers->{comments} . '/feed.xml' );
cache::add_map( 'template=comments.html&event_id=(\d+)&event_start=' . $datetime_pattern,
cache::add_map( 'template=comments.html&event_id=(\d+)&event_start=' . cache::get_datetime_pattern(),
$controllers->{comments} . '/$1_$2-$3-$4_$5-$6.html' );
}
@@ -689,7 +683,7 @@ sub check_params {
$comment->{allow}->{new_comments} = 1;
}
$comment->{template} = template::check( $params->{template}, 'comments.html' );
$comment->{template} = template::check( $config, $params->{template}, 'comments.html' );
return $comment;
}

View File

@@ -1,26 +1,32 @@
package config;
require Exporter;
my @ISA = qw(Exporter);
my @EXPORT_OK = qw(get $config);
my %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
use warnings;
use strict;
use Config::General();
our $modified_at = -999;
our $config = undef;
use base 'Exporter';
our @EXPORT_OK = qw(get set);
my $config = undef;
sub set {
my $value = shift;
$config = $value;
return;
}
sub get {
my $filename = shift;
my $filename = shift;
my $configuration = new Config::General(
-ConfigFile => $filename,
-UTF8 => 1
);
$config::config = $configuration->{DefaultConfig}->{config};
$config::modified_at = $age;
return $config if defined $config;;
return $config::config;
my $configuration = Config::General->new(
-ConfigFile => $filename,
-UTF8 => 1
);
config::set( $configuration->{DefaultConfig}->{config} );
return $config;
}
#do not delete last line

View File

@@ -1,14 +1,13 @@
package creole_wiki;
use warnings;
use strict;
use Data::Dumper;
use markup();
package creole_wiki;
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(extractEventFromWikiText removeMeta eventToWikiText extractMeta removeMeta metaToWiki);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
#convert creole wiki text to event
sub extractEventFromWikiText {

View File

@@ -1,13 +1,12 @@
use warnings "all";
package db;
use warnings 'all';
use strict;
use DBD::mysql();
package db;
use Data::Dumper;
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(
connect disconnect
get insert put
@@ -17,7 +16,6 @@ our @EXPORT_OK = qw(
$write
$read
);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
#debug settings
our $debug_read = 0;
@@ -29,251 +27,222 @@ our $write = 1;
# connect to database
sub connect {
my $options = shift;
my $request = shift;
my $options = shift;
my $request = shift;
return $request->{connection} if ( defined $request ) && ( defined $request->{connection} );
my $access_options = $options->{access};
my $access_options = $options->{access};
my $hostname = $access_options->{hostname};
my $port = $access_options->{port};
my $database = $access_options->{database};
my $username = $access_options->{username};
my $password = $access_options->{password};
my $hostname = $access_options->{hostname};
my $port = $access_options->{port};
my $database = $access_options->{database};
my $username = $access_options->{username};
my $password = $access_options->{password};
if ( ( defined $access_options->{write} ) && ( $access_options->{write} eq '1' ) ) {
$username = $access_options->{username_write};
$password = $access_options->{password_write};
}
if ( ( defined $access_options->{write} ) && ( $access_options->{write} eq '1' ) ) {
$username = $access_options->{username_write};
$password = $access_options->{password_write};
}
my $dbh = undef;
my $dsn = "DBI:mysql:database=$database;host=$hostname;port=$port";
my $dbh = undef;
my $dsn = "DBI:mysql:database=$database;host=$hostname;port=$port";
# if ($db::utf8dbi eq '1'){
# use UTF8DBI;
# $dbh = UTF8DBI->connect( $dsn,$username,$password) || die "Database connection not made: $DBI::errstr"; # \nfor $dsn, $username
# }else{
# use DBI;
$dbh = DBI->connect( $dsn, $username, $password, { mysql_enable_utf8 => 1 } )
|| die "could not connect to database: $DBI::errstr"; # \nfor $dsn, $username
$dbh = DBI->connect( $dsn, $username, $password, { mysql_enable_utf8 => 1 } )
|| die "could not connect to database: $DBI::errstr";
# }
#print STDERR "db connect $username\n" if ($debug_read==1);
#print STDERR "db connect $username\n";
$dbh->{RaiseError} = 1;
$dbh->{RaiseError} = 1;
$dbh->{'mysql_enable_utf8'} = 1;
put( $dbh, "set character set utf8" );
put( $dbh, "set names utf8" );
put( $dbh, "set time_zone='" . $options->{date}->{time_zone} . "'" );
$dbh->{'mysql_enable_utf8'} = 1;
put( $dbh, "set character set utf8" );
put( $dbh, "set names utf8" );
put( $dbh, "set time_zone='" . $options->{date}->{time_zone} . "'" );
$request->{connection} = $dbh;
return $dbh;
$request->{connection} = $dbh;
return $dbh;
}
sub disconnect {
my $request = shift;
my $dbh = $request->{connection};
$dbh->disconnect;
delete $request->{connection};
my $request = shift;
my $dbh = $request->{connection};
$dbh->disconnect;
delete $request->{connection};
return;
}
# get all database entries of an sql query (as list of hashs)
sub get {
my $dbh = shift;
my $sql = shift;
my $bind_values = shift;
my $dbh = shift;
my $sql = shift;
my $bind_values = shift;
if ( $debug_read == 1 ) {
print STDERR $sql . "\n";
print STDERR Dumper($bind_values) . "\n" if defined $bind_values;
}
if ( $debug_read == 1 ) {
print STDERR $sql . "\n";
print STDERR Dumper($bind_values) . "\n" if defined $bind_values;
}
my $sth = $dbh->prepare($sql);
if ( ( defined $bind_values ) && ( ref($bind_values) eq 'ARRAY' ) ) {
my $sth = $dbh->prepare($sql);
if ( ( defined $bind_values ) && ( ref($bind_values) eq 'ARRAY' ) ) {
# print STDERR Dumper($bind_values)."\n";
my $result = $sth->execute(@$bind_values);
unless ($result) {
print STDERR $sql . "\n";
die "db: $DBI::errstr $sql" if ( $read == 1 );
}
} else {
$sth->execute() || die "db: $DBI::errstr $sql" if ( $read == 1 );
}
# print STDERR Dumper($bind_values)."\n";
my $result = $sth->execute(@$bind_values);
unless ($result) {
print STDERR $sql . "\n";
die "db: $DBI::errstr $sql" if ( $read == 1 );
}
} else {
$sth->execute() || die "db: $DBI::errstr $sql" if ( $read == 1 );
}
my @results = ();
while ( my $row = $sth->fetchrow_hashref ) {
my $result = {};
foreach my $key ( keys %$row ) {
$result->{$key} = $row->{$key};
}
push @results, $result;
}
my @results = ();
while ( my $row = $sth->fetchrow_hashref ) {
my $result = {};
foreach my $key ( keys %$row ) {
$result->{$key} = $row->{$key};
}
push @results, $result;
}
if ( $debug_read == 1 ) {
print STDERR Dumper( $results[0] ) . "\n" if ( @results == 1 );
print STDERR @results . "\n" if ( @results != 1 );
}
if ( $debug_read == 1 ) {
print STDERR Dumper( $results[0] ) . "\n" if ( @results == 1 );
print STDERR @results . "\n" if ( @results != 1 );
}
$sth->finish;
return \@results;
$sth->finish;
return \@results;
}
# get list of table columns
sub get_columns {
my $dbh = shift;
my $table = shift;
my $dbh = shift;
my $table = shift;
my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] );
my @result = map { $_->{column_name} } (@$columns);
return \@result;
my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] );
my @result = map { $_->{column_name} } (@$columns);
return \@result;
}
# get hash with table columns as keys
sub get_columns_hash {
my $dbh = shift;
my $table = shift;
my $columns = db::get_columns( $dbh, $table );
my $result = {};
for my $column (@$columns) {
$result->{$column} = 1;
}
return $result;
}
# insert an entry into database (select from where)
sub insert_old {
my $dbh = shift;
my $tablename = shift;
my $entry = shift;
my $do_not_quote = shift;
my $keys = join( ",", map { $_ } ( keys %$entry ) );
my $values = undef;
if ( defined $do_not_quote && $do_not_quote ne '' ) {
$values = join( "\n,", map { $entry->{$_} } ( keys %$entry ) );
} else {
$values = join( "\n,", map { $dbh->quote( $entry->{$_} ) } ( keys %$entry ) );
}
my $sql = "insert into $tablename \n ($keys) \n values ($values);\n";
print STDERR $sql . "\n" if ( $debug_write == 1 );
put( $dbh, $sql );
my $dbh = shift;
my $table = shift;
my $columns = db::get_columns( $dbh, $table );
my $result = {};
for my $column (@$columns) {
$result->{$column} = 1;
}
return $result;
}
#returns last inserted id
sub insert {
my $dbh = shift;
my $tablename = shift;
my $entry = shift;
my $dbh = shift;
my $tablename = shift;
my $entry = shift;
# my $do_not_quote=shift;
my $keys = join( ",", map { $_ } ( keys %$entry ) );
my $values = join( ",", map { '?' } ( keys %$entry ) );
my @bind_values = map { $entry->{$_} } ( keys %$entry );
my $keys = join( ",", map { $_ } ( keys %$entry ) );
my $values = join( ",", map { '?' } ( keys %$entry ) );
my @bind_values = map { $entry->{$_} } ( keys %$entry );
my $sql = "insert into $tablename \n ($keys) \n values ($values);\n";
my $sql = "insert into $tablename \n ($keys) \n values ($values);\n";
if ( $debug_write == 1 ) {
print STDERR $sql . "\n";
print STDERR Dumper( \@bind_values ) . "\n" if (@bind_values);
}
if ( $debug_write == 1 ) {
print STDERR $sql . "\n";
print STDERR Dumper( \@bind_values ) . "\n" if (@bind_values);
}
put( $dbh, $sql, \@bind_values );
my $result = get( $dbh, 'SELECT LAST_INSERT_ID() id;' );
return $result->[0]->{id} if $result->[0]->{id} > 0;
return undef;
put( $dbh, $sql, \@bind_values );
my $result = get( $dbh, 'SELECT LAST_INSERT_ID() id;' );
return $result->[0]->{id} if $result->[0]->{id} > 0;
return undef;
}
# execute a modifying database command (update,insert,...)
sub put {
my $dbh = shift;
my $sql = shift;
my $bind_values = shift;
my $dbh = shift;
my $sql = shift;
my $bind_values = shift;
if ( $debug_write == 1 ) {
print STDERR $sql . "\n";
print STDERR Dumper($bind_values) . "\n" if defined $bind_values;
}
if ( $debug_write == 1 ) {
print STDERR $sql . "\n";
print STDERR Dumper($bind_values) . "\n" if defined $bind_values;
}
my $sth = $dbh->prepare($sql);
if ( $write == 1 ) {
if ( ( defined $bind_values ) && ( ref($bind_values) eq 'ARRAY' ) ) {
$sth->execute(@$bind_values);
} else {
$sth->execute();
}
}
$sth->finish;
print STDERR "1\n" if ( $debug_write == 1 );
my $sth = $dbh->prepare($sql);
if ( $write == 1 ) {
if ( ( defined $bind_values ) && ( ref($bind_values) eq 'ARRAY' ) ) {
$sth->execute(@$bind_values);
} else {
$sth->execute();
}
}
$sth->finish;
print STDERR "1\n" if ( $debug_write == 1 );
my $result = get( $dbh, 'SELECT ROW_COUNT() changes;' );
return $result->[0]->{changes} if $result->[0]->{changes} > 0;
return undef;
my $result = get( $dbh, 'SELECT ROW_COUNT() changes;' );
return $result->[0]->{changes} if $result->[0]->{changes} > 0;
return undef;
}
sub quote {
my $dbh = shift;
my $sql = shift;
my $dbh = shift;
my $sql = shift;
$sql =~ s/\_/\\\_/g;
return $dbh->quote($sql);
$sql =~ s/\_/\\\_/g;
return $dbh->quote($sql);
}
#subtract hours, deprecated(!)
sub shift_date_by_hours {
my $dbh = shift;
my $date = shift;
my $offset = shift;
my $dbh = shift;
my $date = shift;
my $offset = shift;
my $query = 'select date(? - INTERVAL ? HOUR) date';
my $bind_values = [ $date, $offset ];
my $results = db::get( $dbh, $query, $bind_values );
return $results->[0]->{date};
my $query = 'select date(? - INTERVAL ? HOUR) date';
my $bind_values = [ $date, $offset ];
my $results = db::get( $dbh, $query, $bind_values );
return $results->[0]->{date};
}
#add minutes, deprecated(!)
sub shift_datetime_by_minutes {
my $dbh = shift;
my $datetime = shift;
my $offset = shift;
my $dbh = shift;
my $datetime = shift;
my $offset = shift;
my $query = "select ? + INTERVAL ? MINUTE date";
my $bind_values = [ $datetime, $offset ];
my $results = db::get( $dbh, $query, $bind_values );
return $results->[0]->{date};
my $query = "select ? + INTERVAL ? MINUTE date";
my $bind_values = [ $datetime, $offset ];
my $results = db::get( $dbh, $query, $bind_values );
return $results->[0]->{date};
}
# get next free id of a database table
sub next_id {
my $dbh = shift;
my $table = shift;
my $dbh = shift;
my $table = shift;
my $query = qq{
my $query = qq{
select max(id) id
from $table
where 1
};
my $results = get( $dbh, $query );
return $results->[0]->{id} + 1;
my $results = get( $dbh, $query );
return $results->[0]->{id} + 1;
}
# get max id from table
sub get_max_id {
my $dbh = shift;
my $table = shift;
my $dbh = shift;
my $table = shift;
my $query = qq{
my $query = qq{
select max(id) id
from $table
where 1
};
my $results = get( $dbh, $query );
return $results->[0]->{id};
my $results = get( $dbh, $query );
return $results->[0]->{id};
}
#do not delete last line!

View File

@@ -11,8 +11,7 @@ use studios();
use series_events();
use user_stats();
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(
setAttributesFromSeriesTemplate
setAttributesFromSchedule
@@ -20,7 +19,6 @@ our @EXPORT_OK = qw(
setAttributesForCurrentTime
getRecurrenceBaseId
);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
# functions: to be separated
sub setAttributesFromSeriesTemplate {

View File

@@ -1,14 +1,12 @@
#!/bin/perl
package event_history;
use warnings "all";
use strict;
use Data::Dumper;
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get_columns get get_by_id insert insert_by_event_id delete);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;

View File

@@ -1,6 +1,9 @@
package events;
use warnings "all";
use strict;
use Data::Dumper;
use DBI();
use template();
@@ -10,14 +13,10 @@ use db();
use cache();
use markup();
use log();
use project();
use studios();
package events;
use Data::Dumper;
use project;
use studios;
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(
init
get_cached_or_render
@@ -34,7 +33,6 @@ our @EXPORT_OK = qw(
get_keys
add_recordings
);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub init {
}
@@ -535,9 +533,9 @@ sub calc_dates {
}
$result->{start_date_name} =
time::date_format( $result->{start_date}, $language );
time::date_format( $config, $result->{start_date}, $language );
$result->{end_date_name} =
time::date_format( $result->{end_date}, $language );
time::date_format( $config, $result->{end_date}, $language );
if ( $result->{start} =~ /(\d\d\:\d\d)\:\d\d/ ) {
$result->{start_time_name} = $1;
@@ -550,14 +548,12 @@ sub calc_dates {
}
if ( defined $result->{weekday} ) {
my $language = $config::config->{date}->{language} || 'en';
my $language = $config->{date}->{language} || 'en';
#my $weekdays=time::get_weekdays();
my $weekday_index = $time::weekday_index->{ $result->{weekday} . '' } || 0;
$result->{weekday_name} =
$time::names->{$language}->{weekdays}->[$weekday_index];
$result->{weekday_short_name} =
$time::names->{$language}->{weekdays_abbr}->[$weekday_index];
my $weekdayIndex = time::getWeekdayIndex($result->{weekday}) || 0;
$result->{weekday_name} = time::getWeekdayNames($language)->[$weekdayIndex];
$result->{weekday_short_name} = time::getWeekdayNamesShort($language)->[$weekdayIndex];
}
return $result;
}
@@ -1227,7 +1223,7 @@ sub render {
if ( defined $config->{permissions}->{hide_event_images} ) && ( $config->{permissions}->{hide_event_images} == 1 );
# use Data::Dumper;print STDERR Dumper($template_parameters)."\n";
template::process( $_[0], $params->{template}, $template_parameters );
template::process( $config, $_[0], $params->{template}, $template_parameters );
return $_[0];
}
@@ -1464,6 +1460,7 @@ sub get_by_image {
return $events->[0];
}
# deleting an event is currently disabled
sub delete {
return;
my $request = shift;
@@ -1494,7 +1491,7 @@ sub configure_cache {
my $config = shift;
my $debug = $config->{system}->{debug};
my $date_pattern = $cache::date_pattern;
my $date_pattern = cache::get_date_pattern();
my $controllers = $config->{controllers};
cache::init();
@@ -1728,7 +1725,7 @@ sub check_params {
if ( ( defined $params->{template} ) && ( $params->{template} eq 'no' ) ) {
$template = 'no';
} else {
$template = template::check( $params->{template}, 'event_list.html' );
$template = template::check( $config, $params->{template}, 'event_list.html' );
}
my $limit_config = $config->{permissions}->{result_limit} || 100;

View File

@@ -1,19 +1,14 @@
package images;
use warnings "all";
use strict;
use config();
use template();
package images;
use warnings "all";
use strict;
use Data::Dumper;
require Exporter;
our @ISA = qw(Exporter);
#our @EXPORT = qw(all);
use base 'Exporter';
our @EXPORT_OK = qw(get insert update insert_or_update delete delete_files);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
#column 'created_at' will be set at insert
#column 'modified_at' will be set by default (do not update)

View File

@@ -2,14 +2,13 @@ package localization;
use warnings "all";
use strict;
use Data::Dumper;
use uac();
use user_settings();
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get getJavascript);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;
@@ -81,6 +80,7 @@ sub read_po_file {
my $key = '';
open my $file, '<:encoding(UTF-8)', $po_file;
return $loc unless defined $file;
while (<$file>) {
my $line = $_;
@@ -97,6 +97,7 @@ sub read_po_file {
$loc->{$key} = $val;
}
}
close $file;
return $loc;
}

View File

@@ -1,92 +1,89 @@
use warnings "all";
use strict;
use template();
use config();
package log;
use warnings "all";
use strict;
use base 'Exporter';
our @EXPORT_OK = qw(error load_file save_file append_file);
use config();
#TODO: check if config is given
sub error {
my $config = $_[0];
my $message = "Error: $_[1]\n";
my $config = $_[0];
my $message = "Error: $_[1]\n";
print STDERR $message;
unless ( defined $config ) {
print STDERR "missing config at log::error\n";
die();
}
print STDERR $message;
unless ( defined $config ) {
print STDERR "missing config at log::error\n";
die();
}
#do not call template::check to avoid deep recursion!
if ( $config::config->{system}->{debug} ) {
#do not call template::check to avoid deep recursion!
if ( $config->{system}->{debug} ) {
template::process(
'print',
'templates/default.html',
{
static_files_url => $config::config->{locations}->{static_files_url},
error => $message
}
);
}
template::process($config,
'print',
'templates/default.html',
{
static_files_url => $config->{locations}->{static_files_url},
error => $message
}
);
}
die();
die();
}
#do not delete last line!
1;
sub load_file {
my $filename = $_[0];
my $filename = shift;
# my $content=$_[1];
# binmode STDOUT, ":utf8";
my $content = '';
if ( -e $filename ) {
my $FILE = undef;
open $FILE, "<:utf8", $filename || warn "cant read file '$filename'";
$content = join "", (<$FILE>);
close $FILE;
return $content;
}
my $content = '';
if ( -e $filename ) {
my $FILE = undef;
open ($FILE, "<:utf8", $filename) || warn "cant read file '$filename'";
$content = join "", (<$FILE>);
close $FILE;
return $content;
}
}
sub save_file {
my $filename = $_[0];
my $content = $_[1];
my $filename = shift;
my $content = shift;
#check if directory is writeable
if ( $filename =~ /^(.+?)\/[^\/]+$/ ) {
my $dir = $1;
unless ( -w $dir ) {
print STDERR `pwd;id -a;`;
print STDERR "log::save_file : cannot write to directory ($dir)\n";
return;
}
}
#check if directory is writeable
if ( $filename =~ /^(.+?)\/[^\/]+$/ ) {
my $dir = $1;
unless ( -w $dir ) {
print STDERR "log::save_file : cannot write to directory ($dir)\n";
return;
}
}
open my $FILE, ">:utf8", $filename || warn("cant write file '$filename'");
if ( defined $FILE ) {
print $FILE $content . "\n";
close $FILE;
}
open my $FILE, ">:utf8", $filename || warn("cant write file '$filename'");
if ( defined $FILE ) {
print $FILE $content . "\n";
close $FILE;
}
}
sub append_file {
my $filename = $_[0];
my $content = $_[1];
my $filename = shift;
my $content = shift;
unless ( ( defined $filename ) && ( $filename ne '' ) && ( -e $filename ) ) {
print STDERR "cannot append, file '$filename' does not exist\n";
return;
}
unless ( ( defined $filename ) && ( $filename ne '' ) && ( -e $filename ) ) {
print STDERR "cannot append, file '$filename' does not exist\n";
return;
}
if ( defined $content ) {
open my $FILE, ">>:utf8", $filename or warn("cant write file '$filename'");
print $FILE $content . "\n";
close $FILE;
}
return unless defined $content;
open my $FILE, ">>:utf8", $filename or warn("cant write file '$filename'");
print $FILE $content . "\n";
close $FILE;
}
#do not delete last line!
return 1;
1;

View File

@@ -1,4 +1,6 @@
package mail;
use warnings;
use strict;
use MIME::Lite();

View File

@@ -1,24 +1,18 @@
package markup;
use warnings "all";
use strict;
use Data::Dumper;
use Text::WikiCreole();
use HTML::Parse();
use HTML::FormatText();
use Encode();
use log;
use log();
package markup;
use Encode;
require Exporter;
our @ISA = qw(Exporter);
#our @EXPORT = qw(all);
use base 'Exporter';
our @EXPORT_OK =
qw(fix_line_ends html_to_creole creole_to_html creole_to_plain plain_to_ical ical_to_plain ical_to_xml html_to_plain fix_utf8 uri_encode compress base26);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub fix_line_ends {
my $s = shift;

View File

@@ -1,14 +1,14 @@
package params;
use warnings "all";
use strict;
use Data::Dumper;
use CGI();
use Apache2::Request();
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get isJson);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;
my $isJson = 0;

View File

@@ -7,10 +7,8 @@ use Data::Dumper;
use Session::Token();
# table: calcms_password_requests
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get insert delete get_columns);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
use mail;
use uac;

View File

@@ -1,18 +1,16 @@
#!/bin/perl
package playout;
use warnings "all";
use strict;
use Data::Dumper;
use Date::Calc();
use db();
use time();
use series_events();
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get_columns get sync);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;

View File

@@ -1,5 +1,3 @@
#!/bin/perl
package project;
use warnings "all";
@@ -13,8 +11,7 @@ use log();
use template();
use images();
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(
check get_columns get insert delete get_date_range
get_studios assign_studio unassign_studio is_studio_assigned get_studio_assignments
@@ -24,8 +21,6 @@ our @EXPORT_OK = qw(
#TODO: globally replace get_studios by get_studio_assignments
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;
# get project columns
@@ -409,7 +404,7 @@ sub get_with_dates {
foreach my $project ( reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects) ) {
$project->{months} = get_months( $config, $project, $language );
$project->{user} = $ENV{REMOTE_USER};
$project->{current} = 1 if ( $project->{name} eq $config::config->{project} );
$project->{current} = 1 if ( $project->{name} eq $config->{project} );
}
return $projects;
@@ -451,7 +446,8 @@ sub get_months {
$end_day = 1 if ( $end_day < 1 );
$end_day = $last_day if ( $end_day gt $last_day );
my @months = ();
my $monthNamesShort = time::getMonthNamesShort($language);
my @months = ();
for my $year ( $start_year .. $end_year ) {
my $m1 = 1;
my $m2 = 12;
@@ -469,7 +465,7 @@ sub get_months {
end => time::array_to_date( $year, $month, $d2 ),
year => $year,
month => $month,
month_name => $time::names->{$language}->{months_abbr}->[ $month - 1 ],
month_name => $monthNamesShort->[ $month - 1 ],
title => $project->{title},
user => $ENV{REMOTE_USER}
};

View File

@@ -1,146 +1,155 @@
package roles;
use Apache2::Reload();
require Exporter;
my @ISA = qw(Exporter);
my @EXPORT_OK = qw($roles get_user get_user_permissions get_template_parameters);
my %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
use warnings;
use strict;
our $roles = {
'admin' => {
access_events => 1,
access_images => 1,
access_comments => 1,
access_sync => 1,
access_system => 1,
read_event_all => 1,
create_event => 1,
delete_event => 1,
update_comment => 1,
create_image => 1,
read_image_own => 1,
read_image_all => 1,
update_image_own => 1,
update_image_all => 1,
delete_image_own => 1,
delete_image_all => 1,
sync_own => 1,
sync_all => 1,
sync_select_range => 1,
upload_playlist => 1,
},
'dev' => {
access_events => 1,
access_images => 1,
access_comments => 1,
access_sync => 1,
access_system => 0,
read_event_all => 1,
create_event => 1,
delete_event => 1,
update_comment => 1,
create_image => 1,
read_image_own => 1,
read_image_all => 1,
update_image_own => 1,
update_image_all => 1,
delete_image_own => 1,
delete_image_all => 1,
sync_own => 0,
sync_all => 1,
sync_select_range => 1,
upload_playlist => 1,
},
'editor' => {
access_events => 1,
access_images => 1,
access_comments => 1,
access_sync => 1,
access_system => 0,
read_event_all => 0,
create_event => 1,
delete_event => 0,
update_comment => 0,
create_image => 1,
read_image_own => 1,
read_image_all => 1,
update_image_own => 1,
update_image_all => 0,
delete_image_own => 1,
delete_image_all => 0,
sync_own => 1,
sync_all => 0,
sync_select_range => 0,
upload_playlist => 1,
},
'nobody' => {
access_events => 0,
access_images => 0,
access_comments => 0,
access_sync => 0,
access_system => 0,
read_event_all => 0,
create_event => 0,
delete_event => 0,
update_comment => 0,
create_image => 0,
read_image_own => 0,
read_image_all => 0,
update_image_own => 0,
update_image_all => 0,
delete_image_own => 0,
delete_image_all => 0,
sync_own => 0,
sync_all => 0,
sync_select_range => 0,
upload_playlist => 0,
}
use Apache2::Reload();
use config();
use base 'Exporter';
my @EXPORT_OK = qw(get_user get_user_permissions get_template_parameters get_jobs);
my $ROLES = {
'admin' => {
access_events => 1,
access_images => 1,
access_comments => 1,
access_sync => 1,
access_system => 1,
read_event_all => 1,
create_event => 1,
delete_event => 1,
update_comment => 1,
create_image => 1,
read_image_own => 1,
read_image_all => 1,
update_image_own => 1,
update_image_all => 1,
delete_image_own => 1,
delete_image_all => 1,
sync_own => 1,
sync_all => 1,
sync_select_range => 1,
upload_playlist => 1,
},
'dev' => {
access_events => 1,
access_images => 1,
access_comments => 1,
access_sync => 1,
access_system => 0,
read_event_all => 1,
create_event => 1,
delete_event => 1,
update_comment => 1,
create_image => 1,
read_image_own => 1,
read_image_all => 1,
update_image_own => 1,
update_image_all => 1,
delete_image_own => 1,
delete_image_all => 1,
sync_own => 0,
sync_all => 1,
sync_select_range => 1,
upload_playlist => 1,
},
'editor' => {
access_events => 1,
access_images => 1,
access_comments => 1,
access_sync => 1,
access_system => 0,
read_event_all => 0,
create_event => 1,
delete_event => 0,
update_comment => 0,
create_image => 1,
read_image_own => 1,
read_image_all => 1,
update_image_own => 1,
update_image_all => 0,
delete_image_own => 1,
delete_image_all => 0,
sync_own => 1,
sync_all => 0,
sync_select_range => 0,
upload_playlist => 1,
},
'nobody' => {
access_events => 0,
access_images => 0,
access_comments => 0,
access_sync => 0,
access_system => 0,
read_event_all => 0,
create_event => 0,
delete_event => 0,
update_comment => 0,
create_image => 0,
read_image_own => 0,
read_image_all => 0,
update_image_own => 0,
update_image_all => 0,
delete_image_own => 0,
delete_image_all => 0,
sync_own => 0,
sync_all => 0,
sync_select_range => 0,
upload_playlist => 0,
}
};
sub get_user {
my $user = $ENV{REMOTE_USER};
my $users = $config::config->{users};
return $user if ( defined $users->{$user} );
return 'nobody';
sub get_user($) {
my $config = shift;
my $user = $ENV{REMOTE_USER};
my $users = $config->{users};
return $user if ( defined $users->{$user} );
return 'nobody';
}
sub get_user_permissions {
my $user = $ENV{REMOTE_USER} || '';
return $roles::roles->{nobody} unless ( $user =~ /\S/ );
my $users = $config::config->{users};
if ( defined $users->{$user} ) {
my $role = $users->{$user};
if ( defined $roles::roles->{$role} ) {
return $roles::roles->{$role};
}
}
return $roles::roles->{nobody};
sub get_user_permissions($) {
my $config = shift;
my $user = $ENV{REMOTE_USER} || '';
my $roles = $roles::ROLES;
return $roles->{nobody} unless $user =~ /\S/;
my $users = $config->{users};
if ( defined $users->{$user} ) {
my $role = $users->{$user};
return $roles->{$role} if defined $roles->{$role};
}
return $roles->{nobody};
}
sub get_user_jobs {
my $user = $ENV{REMOTE_USER} || '';
return [] unless ( $user =~ /\S/ );
my $result = [];
my $jobs = $config::config->{jobs}->{job};
my $config = shift;
my $user = $ENV{REMOTE_USER} || '';
return [] unless ( $user =~ /\S/ );
my $result = [];
my $jobs = $config->{jobs}->{job};
for my $job (@$jobs) {
for my $job_user ( split /\,/, $job->{users} ) {
push @$result, $job if ( $user eq $job_user );
}
}
return $result;
for my $job (@$jobs) {
for my $job_user ( split /\,/, $job->{users} ) {
push @$result, $job if ( $user eq $job_user );
}
}
return $result;
}
sub get_jobs {
return $config::config->{jobs}->{job};
sub get_jobs($) {
my $config = shift;
return $config->{jobs}->{job};
}
sub get_template_parameters {
my $user_permissions = shift;
$user_permissions = roles::get_user_permissions() unless ( defined $user_permissions );
my @user_permissions = ();
for my $usecase ( keys %$user_permissions ) {
push @user_permissions, $usecase if ( $user_permissions->{$usecase} eq '1' );
}
return \@user_permissions;
sub get_template_parameters($$) {
my $config = shift;
my $user_permissions = shift;
$user_permissions = roles::get_user_permissions($config) unless defined $user_permissions;
my @user_permissions = ();
for my $usecase ( keys %$user_permissions ) {
push @user_permissions, $usecase if $user_permissions->{$usecase} eq '1';
}
return \@user_permissions;
}
return 1;

View File

@@ -8,8 +8,7 @@ use Data::Dumper;
use events();
use images();
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(
get_columns get insert update delete
get_users add_user remove_user
@@ -22,7 +21,6 @@ our @EXPORT_OK = qw(
is_series_assigned_to_user is_event_assigned_to_user
update_recurring_events update_recurring_event
);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
#TODO: remove studio_id
#TODO: get project_id, studio_id by join with project_series

View File

@@ -2,6 +2,7 @@ package series_dates;
use warnings "all";
use strict;
use Data::Dumper;
use Date::Calc();
use time();
@@ -14,10 +15,8 @@ use series_schedule();
# table: calcms_series_dates
# columns: id, studio_id, series_id, start(datetime), end(datetime)
# TODO: delete column schedule_id
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get_columns get insert update delete get_dates get_series);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;

View File

@@ -21,8 +21,7 @@ use images();
# check permissions, insert and update events related to series
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(
check_permission
save_content
@@ -31,7 +30,6 @@ our @EXPORT_OK = qw(
delete_event
set_playout_status
);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;

View File

@@ -1,4 +1,5 @@
package series_schedule;
use warnings "all";
use strict;
use Data::Dumper;
@@ -15,10 +16,8 @@ use series_dates();
# month
# nextDay (add 24 hours to start)
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get_columns get insert update delete);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;

View File

@@ -2,7 +2,6 @@ use lib qw(/home/radio/calcms/calcms/);
use Data::Dumper;
use Apache::DBI();
#$Apache::DBI::DEBUG = 2;
use Time::Local();

View File

@@ -1,6 +1,8 @@
package studio_timeslot_dates;
use warnings "all";
use strict;
use Data::Dumper;
use Date::Calc();
use time();
@@ -9,90 +11,88 @@ use time();
# table: calcms_studio_timeslot_dates
# columns: id, studio_id, start(datetime), end(datetime)
# TODO: delete column schedule_id
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get_columns get insert update delete get_dates);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;
sub get_columns {
my $config = shift;
my $config = shift;
my $dbh = db::connect($config);
my $cols = db::get_columns( $dbh, 'calcms_studio_timeslot_dates' );
my $columns = {};
for my $col (@$cols) {
$columns->{$col} = 1;
}
return $columns;
my $dbh = db::connect($config);
my $cols = db::get_columns( $dbh, 'calcms_studio_timeslot_dates' );
my $columns = {};
for my $col (@$cols) {
$columns->{$col} = 1;
}
return $columns;
}
# get all studio_timeslot_dates for studio_id within given time range
# calculate start_date, end_date, weeday, day from start and end(datetime)
sub get {
my $config = shift;
my $condition = shift;
my $config = shift;
my $condition = shift;
my $date_range_include = 0;
$date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 );
my $date_range_include = 0;
$date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 );
my $dbh = db::connect($config);
my $dbh = db::connect($config);
my @conditions = ();
my @bind_values = ();
my @conditions = ();
my @bind_values = ();
if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) {
push @conditions, 'project_id=?';
push @bind_values, $condition->{project_id};
}
if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) {
push @conditions, 'project_id=?';
push @bind_values, $condition->{project_id};
}
if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) {
push @conditions, 'studio_id=?';
push @bind_values, $condition->{studio_id};
}
if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) {
push @conditions, 'studio_id=?';
push @bind_values, $condition->{studio_id};
}
if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) {
push @conditions, 'schedule_id=?';
push @bind_values, $condition->{schedule_id};
}
if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) {
push @conditions, 'schedule_id=?';
push @bind_values, $condition->{schedule_id};
}
# from and till range from an event should beween start and end of the studio's permission
if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) {
push @conditions, 'start<=?';
push @bind_values, $condition->{start};
}
# from and till range from an event should beween start and end of the studio's permission
if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) {
push @conditions, 'start<=?';
push @bind_values, $condition->{start};
}
if ( ( defined $condition->{end} ) && ( $condition->{end} ne '' ) ) {
push @conditions, 'end>=?';
push @bind_values, $condition->{end};
}
if ( ( defined $condition->{end} ) && ( $condition->{end} ne '' ) ) {
push @conditions, 'end>=?';
push @bind_values, $condition->{end};
}
# check only a given date date range (without time)
if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) {
if ( $date_range_include == 1 ) {
push @conditions, 'end_date>=?';
push @bind_values, $condition->{from};
} else {
push @conditions, 'start_date>=?';
push @bind_values, $condition->{from};
}
}
# check only a given date date range (without time)
if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) {
if ( $date_range_include == 1 ) {
push @conditions, 'end_date>=?';
push @bind_values, $condition->{from};
} else {
push @conditions, 'start_date>=?';
push @bind_values, $condition->{from};
}
}
if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) {
if ( $date_range_include == 1 ) {
push @conditions, 'start_date<=?';
push @bind_values, $condition->{till};
} else {
push @conditions, 'end_date<=?';
push @bind_values, $condition->{till};
}
}
if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) {
if ( $date_range_include == 1 ) {
push @conditions, 'start_date<=?';
push @bind_values, $condition->{till};
} else {
push @conditions, 'end_date<=?';
push @bind_values, $condition->{till};
}
}
my $conditions = '';
$conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 );
my $conditions = '';
$conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 );
my $query = qq{
my $query = qq{
select date(start) start_date
,date(end) end_date
,dayname(start) start_weekday
@@ -108,351 +108,351 @@ sub get {
order by start
};
#print STDERR $query."\n";
#print STDERR Dumper(\@bind_values);
#print STDERR $query."\n";
#print STDERR Dumper(\@bind_values);
my $entries = db::get( $dbh, $query, \@bind_values );
for my $entry (@$entries) {
$entry->{start_weekday} = substr( $entry->{start_weekday}, 0, 2 );
$entry->{end_weekday} = substr( $entry->{end_weekday}, 0, 2 );
}
my $entries = db::get( $dbh, $query, \@bind_values );
for my $entry (@$entries) {
$entry->{start_weekday} = substr( $entry->{start_weekday}, 0, 2 );
$entry->{end_weekday} = substr( $entry->{end_weekday}, 0, 2 );
}
#print STDERR Dumper($entries);
return $entries;
#print STDERR Dumper($entries);
return $entries;
}
#get all studio_timeslot_schedules for studio_id and update studio_timeslot_dates
sub update {
my $config = shift;
my $entry = shift;
my $config = shift;
my $entry = shift;
return undef unless ( defined $entry->{schedule_id} );
return undef unless ( defined $entry->{schedule_id} );
my $dbh = db::connect($config);
my $dbh = db::connect($config);
#delete all dates for schedule id
studio_timeslot_dates::delete( $config, $entry );
#delete all dates for schedule id
studio_timeslot_dates::delete( $config, $entry );
my $day_start = $config->{date}->{day_starting_hour};
my $day_start = $config->{date}->{day_starting_hour};
#get the schedule with schedule id ordered by date
my $schedules = studio_timeslot_schedule::get(
$config,
{
schedule_id => $entry->{schedule_id}
}
);
#get the schedule with schedule id ordered by date
my $schedules = studio_timeslot_schedule::get(
$config,
{
schedule_id => $entry->{schedule_id}
}
);
#add scheduled dates
my $i = 0;
my $dates = {};
for my $schedule (@$schedules) {
#add scheduled dates
my $i = 0;
my $dates = {};
for my $schedule (@$schedules) {
#calculate dates from start to end_date
my $dateList = get_dates( $schedule->{start}, $schedule->{end}, $schedule->{end_date}, $schedule->{frequency} );
#calculate dates from start to end_date
my $dateList = get_dates( $schedule->{start}, $schedule->{end}, $schedule->{end_date}, $schedule->{frequency} );
#print STDERR Dumper($dateList);
for my $date (@$dateList) {
#print STDERR Dumper($dateList);
for my $date (@$dateList) {
#set studio i from
$date->{project_id} = $schedule->{project_id};
$date->{studio_id} = $schedule->{studio_id};
$date->{schedule_id} = $schedule->{schedule_id};
$dates->{ $date->{start} . $date->{studio_id} } = $date;
}
}
#set studio i from
$date->{project_id} = $schedule->{project_id};
$date->{studio_id} = $schedule->{studio_id};
$date->{schedule_id} = $schedule->{schedule_id};
$dates->{ $date->{start} . $date->{studio_id} } = $date;
}
}
for my $date ( keys %$dates ) {
my $timeslot_date = $dates->{$date};
for my $date ( keys %$dates ) {
my $timeslot_date = $dates->{$date};
#insert date
my $entry = {
project_id => $timeslot_date->{project_id},
studio_id => $timeslot_date->{studio_id},
schedule_id => $timeslot_date->{schedule_id},
start => $timeslot_date->{start},
end => $timeslot_date->{end},
};
$entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start );
$entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start );
db::insert( $dbh, 'calcms_studio_timeslot_dates', $entry );
#insert date
my $entry = {
project_id => $timeslot_date->{project_id},
studio_id => $timeslot_date->{studio_id},
schedule_id => $timeslot_date->{schedule_id},
start => $timeslot_date->{start},
end => $timeslot_date->{end},
};
$entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start );
$entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start );
db::insert( $dbh, 'calcms_studio_timeslot_dates', $entry );
#print STDERR "$entry->{start_date}\n";
$i++;
}
#print STDERR "$entry->{start_date}\n";
$i++;
}
#print STDERR "$i studio_timeslot_dates updates\n";
return $i;
#print STDERR "$i studio_timeslot_dates updates\n";
return $i;
}
# calculate all start/end datetimes between start_date and stop_date with a frequency(days)
# returns list of hashs with start and end
sub get_dates {
my $start_datetime = shift; # start
my $end_datetime = shift; # start
my $stop_date = shift; # limit recurring events
my $frequency = shift; # in days
my $start_datetime = shift; # start
my $end_datetime = shift; # start
my $stop_date = shift; # limit recurring events
my $frequency = shift; # in days
my @start = @{ time::datetime_to_array($start_datetime) };
return unless @start >= 6;
my @start_date = ( $start[0], $start[1], $start[2] );
my $start_date = sprintf( "%04d-%02d-%02d", @start_date );
my $start_time = sprintf( '%02d:%02d:%02d', $start[3], $start[4], $start[5] );
my @start = @{ time::datetime_to_array($start_datetime) };
return unless @start >= 6;
my @start_date = ( $start[0], $start[1], $start[2] );
my $start_date = sprintf( "%04d-%02d-%02d", @start_date );
my $start_time = sprintf( '%02d:%02d:%02d', $start[3], $start[4], $start[5] );
my @end = @{ time::datetime_to_array($end_datetime) };
return unless @end >= 6;
my @end_date = ( $end[0], $end[1], $end[2] );
my $end_date = sprintf( "%04d-%02d-%02d", @end_date );
my $end_time = sprintf( '%02d:%02d:%02d', $end[3], $end[4], $end[5] );
my @end = @{ time::datetime_to_array($end_datetime) };
return unless @end >= 6;
my @end_date = ( $end[0], $end[1], $end[2] );
my $end_date = sprintf( "%04d-%02d-%02d", @end_date );
my $end_time = sprintf( '%02d:%02d:%02d', $end[3], $end[4], $end[5] );
my @stop = @{ time::date_to_array($stop_date) };
return unless @end >= 3;
my @stop_date = ( $stop[0], $stop[1], $stop[2] );
$stop_date = sprintf( "%04d-%02d-%02d", @stop_date );
my @stop = @{ time::date_to_array($stop_date) };
return unless @end >= 3;
my @stop_date = ( $stop[0], $stop[1], $stop[2] );
$stop_date = sprintf( "%04d-%02d-%02d", @stop_date );
my $date = {};
$date->{start} = $start_date . ' ' . $start_time;
$date->{end} = $end_date . ' ' . $end_time;
my $date = {};
$date->{start} = $start_date . ' ' . $start_time;
$date->{end} = $end_date . ' ' . $end_time;
my $dates = [];
return $dates if ( $date->{end} le $date->{start} );
my $dates = [];
return $dates if ( $date->{end} le $date->{start} );
return $dates if ( $stop_date lt $end_date );
return $dates if ( $stop_date lt $end_date );
my $j = Date::Calc::Delta_Days( @start_date, @stop_date );
return $dates if $j < 0;
my $j = Date::Calc::Delta_Days( @start_date, @stop_date );
return $dates if $j < 0;
# split full time events into single days
if ( $frequency < 1 ) {
# split full time events into single days
if ( $frequency < 1 ) {
#start day
my @next_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], 1 );
my $next_date = sprintf( "%04d-%02d-%02d", @next_date );
push @$dates,
{
start => $start_date . ' ' . $start_time,
end => $next_date . ' 00:00:00',
};
my $c = 0;
for ( my $i = 1 ; $i < $j ; $i++ ) {
my @start_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i );
my $start_date = sprintf( "%04d-%02d-%02d", @start_date );
my @next_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i + 1 );
my $next_date = sprintf( "%04d-%02d-%02d", @next_date );
push @$dates,
{
start => $start_date . ' 00:00:00',
end => $next_date . ' 00:00:00',
};
last if ( $c > 1000 );
$c++;
}
#start day
my @next_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], 1 );
my $next_date = sprintf( "%04d-%02d-%02d", @next_date );
push @$dates,
{
start => $start_date . ' ' . $start_time,
end => $next_date . ' 00:00:00',
};
my $c = 0;
for ( my $i = 1 ; $i < $j ; $i++ ) {
my @start_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i );
my $start_date = sprintf( "%04d-%02d-%02d", @start_date );
my @next_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i + 1 );
my $next_date = sprintf( "%04d-%02d-%02d", @next_date );
push @$dates,
{
start => $start_date . ' 00:00:00',
end => $next_date . ' 00:00:00',
};
last if ( $c > 1000 );
$c++;
}
#end day
push @$dates,
{
start => $end_date . ' 00:00:00',
end => $end_date . ' ' . $end_time,
} if ( $end_time ne '00:00:00' );
return $dates;
}
#end day
push @$dates,
{
start => $end_date . ' 00:00:00',
end => $end_date . ' ' . $end_time,
} if ( $end_time ne '00:00:00' );
return $dates;
}
# multiple time events
my $c = 0;
for ( my $i = 0 ; $i <= $j ; $i += $frequency ) {
# multiple time events
my $c = 0;
for ( my $i = 0 ; $i <= $j ; $i += $frequency ) {
#add frequency to start and end date
my @start_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i );
my @end_date = Date::Calc::Add_Delta_Days( $end[0], $end[1], $end[2], $i );
#add frequency to start and end date
my @start_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i );
my @end_date = Date::Calc::Add_Delta_Days( $end[0], $end[1], $end[2], $i );
#print STDERR Dumper(\@start_date);
#print STDERR Dumper(\@end_date);
my $start_date = sprintf( "%04d-%02d-%02d", @start_date );
my $end_date = sprintf( "%04d-%02d-%02d", @end_date );
push @$dates,
{
start => $start_date . ' ' . $start_time,
end => $end_date . ' ' . $end_time,
};
last if ( $c > 1000 );
$c++;
}
return $dates;
#print STDERR Dumper(\@start_date);
#print STDERR Dumper(\@end_date);
my $start_date = sprintf( "%04d-%02d-%02d", @start_date );
my $end_date = sprintf( "%04d-%02d-%02d", @end_date );
push @$dates,
{
start => $start_date . ' ' . $start_time,
end => $end_date . ' ' . $end_time,
};
last if ( $c > 1000 );
$c++;
}
return $dates;
}
#remove all studio_timeslot_dates for studio_id and schedule_id
sub delete {
my $config = shift;
my $entry = shift;
my $config = shift;
my $entry = shift;
#print STDERR "delete:".Dumper($entry);
return unless ( defined $entry->{project_id} );
return unless ( defined $entry->{studio_id} );
return unless ( defined $entry->{schedule_id} );
#print STDERR "delete:".Dumper($entry);
return unless ( defined $entry->{project_id} );
return unless ( defined $entry->{studio_id} );
return unless ( defined $entry->{schedule_id} );
my $dbh = db::connect($config);
my $dbh = db::connect($config);
my $query = qq{
my $query = qq{
delete
from calcms_studio_timeslot_dates
where schedule_id=?
};
my $bind_values = [ $entry->{schedule_id} ];
my $bind_values = [ $entry->{schedule_id} ];
#print '<pre>$query'.$query.Dumper($bind_values).'</pre>';
db::put( $dbh, $query, $bind_values );
#print '<pre>$query'.$query.Dumper($bind_values).'</pre>';
db::put( $dbh, $query, $bind_values );
}
# time based filter to check if studio is assigned to an studio at a given time range
# return 1 if there is a schedule date starting before start and ending after end
sub can_studio_edit_events {
my $config = shift;
my $condition = shift;
my $config = shift;
my $condition = shift;
my @conditions = ();
my @bind_values = ();
my @conditions = ();
my @bind_values = ();
#print Dumper($condition);
#print Dumper($condition);
#return 0 unless defined $condition->{project_id};
return 0 unless defined $condition->{studio_id};
return 0 unless defined $condition->{start};
return 0 unless defined $condition->{end};
#return 0 unless defined $condition->{project_id};
return 0 unless defined $condition->{studio_id};
return 0 unless defined $condition->{start};
return 0 unless defined $condition->{end};
if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) {
push @conditions, 'project_id=?';
push @bind_values, $condition->{project_id};
}
if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) {
push @conditions, 'project_id=?';
push @bind_values, $condition->{project_id};
}
if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) {
push @conditions, 'studio_id=?';
push @bind_values, $condition->{studio_id};
}
if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) {
push @conditions, 'studio_id=?';
push @bind_values, $condition->{studio_id};
}
if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) {
push @conditions, 'start<=?';
push @bind_values, $condition->{start};
}
if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) {
push @conditions, 'start<=?';
push @bind_values, $condition->{start};
}
if ( ( defined $condition->{end} ) && ( $condition->{end} ne '' ) ) {
push @conditions, 'end>=?';
push @bind_values, $condition->{end};
}
if ( ( defined $condition->{end} ) && ( $condition->{end} ne '' ) ) {
push @conditions, 'end>=?';
push @bind_values, $condition->{end};
}
my $conditions = '';
$conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 );
my $conditions = '';
$conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 );
my $dbh = db::connect($config);
my $query = qq{
my $dbh = db::connect($config);
my $query = qq{
select count(*) permission
from calcms_studio_timeslot_dates
$conditions
};
#print STDERR Dumper($query).Dumper(\@bind_values);
#print STDERR Dumper($query).Dumper(\@bind_values);
my $entries = db::get( $dbh, $query, \@bind_values );
my $entries = db::get( $dbh, $query, \@bind_values );
#print STDERR Dumper($entries);
return 0 if scalar(@$entries) == 0;
return 1 if $entries->[0]->{permission} > 0;
#print STDERR Dumper($entries);
return 0 if scalar(@$entries) == 0;
return 1 if $entries->[0]->{permission} > 0;
if ( $entries->[0]->{permission} == 0 ) {
my $timeslot = getMergedDays( $config, $condition );
return 0 unless defined $timeslot;
if ( ( $condition->{start} ge $timeslot->{start} )
&& ( $condition->{end} le $timeslot->{end} ) )
{
#print STDERR "($condition->{start} ge $timeslot->{start}) ".($condition->{start} ge $timeslot->{start});
#print STDERR "($condition->{end} le $timeslot->{end}) ".($condition->{end} le $timeslot->{end});
return 1;
}
}
return 0;
if ( $entries->[0]->{permission} == 0 ) {
my $timeslot = getMergedDays( $config, $condition );
return 0 unless defined $timeslot;
if ( ( $condition->{start} ge $timeslot->{start} )
&& ( $condition->{end} le $timeslot->{end} ) )
{
#print STDERR "($condition->{start} ge $timeslot->{start}) ".($condition->{start} ge $timeslot->{start});
#print STDERR "($condition->{end} le $timeslot->{end}) ".($condition->{end} le $timeslot->{end});
return 1;
}
}
return 0;
}
# merge two subsequent days if first day ends at same time as next day starts
# returns hashref with start and end of merged slot
# returns undef if not slot could be found
sub getMergedDays {
my $config = shift;
my $condition = shift;
my $config = shift;
my $condition = shift;
my @conditions = ();
my @bind_values = ();
my @conditions = ();
my @bind_values = ();
#print Dumper($condition);
#print Dumper($condition);
#return 0 unless defined $condition->{project_id};
return 0 unless defined $condition->{studio_id};
return 0 unless defined $condition->{start};
return 0 unless defined $condition->{end};
#return 0 unless defined $condition->{project_id};
return 0 unless defined $condition->{studio_id};
return 0 unless defined $condition->{start};
return 0 unless defined $condition->{end};
if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) {
push @conditions, 'project_id=?';
push @bind_values, $condition->{project_id};
}
if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) {
push @conditions, 'project_id=?';
push @bind_values, $condition->{project_id};
}
if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) {
push @conditions, 'studio_id=?';
push @bind_values, $condition->{studio_id};
}
if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) {
push @conditions, 'studio_id=?';
push @bind_values, $condition->{studio_id};
}
# set start to next day at 00:00
my $start = undef;
if ( $condition->{start} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) {
$start = $1 . ' 00:00';
$start = time::add_days_to_datetime( $start, 1 );
push @bind_values, $start;
}
# set start to next day at 00:00
my $start = undef;
if ( $condition->{start} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) {
$start = $1 . ' 00:00';
$start = time::add_days_to_datetime( $start, 1 );
push @bind_values, $start;
}
# set end to end days at 00:00
my $end = undef;
if ( $condition->{end} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) {
$end = $1 . ' 00:00';
push @bind_values, $end;
}
return undef unless defined $start;
return undef unless defined $end;
# set end to end days at 00:00
my $end = undef;
if ( $condition->{end} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) {
$end = $1 . ' 00:00';
push @bind_values, $end;
}
return undef unless defined $start;
return undef unless defined $end;
push @conditions, '(start=? or end=?)';
push @conditions, '(start=? or end=?)';
my $conditions = '';
$conditions = 'where ' . join( " and ", @conditions ) if ( @conditions > 0 );
my $conditions = '';
$conditions = 'where ' . join( " and ", @conditions ) if ( @conditions > 0 );
# get all days starting on first day or ending at next day
my $dbh = db::connect($config);
my $query = qq{
# get all days starting on first day or ending at next day
my $dbh = db::connect($config);
my $query = qq{
select start, end
from calcms_studio_timeslot_dates
$conditions
order by start
};
# print STDERR Dumper($query).Dumper(\@bind_values);
# print STDERR Dumper($query).Dumper(\@bind_values);
my $entries = db::get( $dbh, $query, \@bind_values );
my $entries = db::get( $dbh, $query, \@bind_values );
# print STDERR Dumper($entries);
# print STDERR Dumper($entries);
if ( scalar(@$entries) == 2 ) {
if ( $entries->[0]->{end} eq $entries->[1]->{start} ) {
$entries = {
start => $entries->[0]->{start},
end => $entries->[1]->{end}
};
if ( scalar(@$entries) == 2 ) {
if ( $entries->[0]->{end} eq $entries->[1]->{start} ) {
$entries = {
start => $entries->[0]->{start},
end => $entries->[1]->{end}
};
# print STDERR "found".Dumper($entries)."\n";
return $entries;
}
}
# print STDERR "found".Dumper($entries)."\n";
return $entries;
}
}
return undef;
return undef;
}
sub error {
my $msg = shift;
print "ERROR: $msg<br/>\n";
my $msg = shift;
print "ERROR: $msg<br/>\n";
}
#do not delete last line!

View File

@@ -1,16 +1,16 @@
package studio_timeslot_schedule;
use warnings "all";
use strict;
use Data::Dumper;
use studio_timeslot_dates();
# table: calcms_studio_timeslot_schedule
# columns: id, project_id, studio_id, start(datetime), end(datetime), end_date(date),
# frequency(days), duration(minutes), create_events(days), publish_events(days)
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get_columns get insert update delete);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;

View File

@@ -1,17 +1,13 @@
#!/bin/perl
package studios;
use warnings "all";
use strict;
use Data::Dumper;
use images();
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(get_columns get get_by_id insert update delete check check_studio);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
use base 'Exporter';
our @EXPORT_OK = qw(get_columns get get_by_id insert update delete check check_studio);
sub debug;
@@ -69,7 +65,8 @@ sub get {
push @conditions, 'ps.project_id=?';
push @bind_values, $condition->{project_id};
my $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 );
my $conditions = '';
$condition .= " where " . join( " and ", @conditions ) if ( scalar @conditions > 0 );
$query = qq{
select *
from calcms_studios s, calcms_project_studios ps

View File

@@ -1,23 +1,21 @@
package tags;
use warnings "all";
use strict;
use Data::Dumper;
package tags;
use base 'Exporter';
our @EXPORT_OK = qw(get_tags);
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(get_tags);
our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] );
sub get_tags{
my $dbh=shift;
my $query=qq{
sub get_tags {
my $dbh = shift;
my $query = qq{
select name, count(name) sum from calcms_tags
group by name
order by sum desc
};
my $tags=db::get($dbh,$query);
return $tags;
my $tags = db::get( $dbh, $query );
return $tags;
}
#do not delete last line!

View File

@@ -1,7 +1,8 @@
package template;
use warnings "all";
use strict;
package template;
use Data::Dumper;
use HTML::Template::Compiled();
use HTML::Template::Compiled::Plugin::XMLEscape();
@@ -14,22 +15,20 @@ use project();
use log();
use roles();
require Exporter;
our @ISA = qw(Exporter);
#our @EXPORT = qw(all);
use base 'Exporter';
our @EXPORT_OK = qw(check process exit_on_missing_permission clear_cache);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
# TODO:config
sub process {
my $config = $_[0];
# my $output=$_[0];
my $filename = $_[1];
my $params = $_[2];
# my $output=$_[1];
my $filename = $_[2];
my $params = $_[3];
my $config = $config::config;
for my $key ( keys %{ $config::config->{locations} } ) {
$params->{$key} = $config::config->{locations}->{$key} if ( $key =~ /\_url$/ );
#TODO: get config
for my $key ( keys %{ $config->{locations} } ) {
$params->{$key} = $config->{locations}->{$key} if ( $key =~ /\_url$/ );
}
# add current project
@@ -45,22 +44,22 @@ sub process {
$params->{user} = $ENV{REMOTE_USER} unless defined $params->{user};
my $user_permissions = roles::get_user_permissions();
my $user_permissions = roles::get_user_permissions($config);
for my $permission ( keys %$user_permissions ) {
$params->{$permission} = $user_permissions->{$permission} if ( $user_permissions->{$permission} eq '1' );
}
$params->{jobs} = roles::get_user_jobs();
$params->{jobs} = roles::get_user_jobs($config);
if ( ( $filename =~ /json\-p/ ) || (params::isJson) ) {
my $header = "Content-type:application/json; charset=utf-8\n\n";
my $json = JSON::to_json( $params, { pretty => 1 } );
# $json=$header.$params->{json_callback}.'['.$json.']';
$json = $header . $params->{json_callback} . $json;
if ( ( defined $_[0] ) && ( $_[0] eq 'print' ) ) {
if ( ( defined $_[1] ) && ( $_[1] eq 'print' ) ) {
print $json. "\n";
} else {
$_[0] = $json . "\n";
$_[1] = $json . "\n";
}
return;
}
@@ -107,10 +106,10 @@ sub process {
# HTML::Template::Compiled->preload($cache_dir);
$html_template->param($params);
if ( ( defined $_[0] ) && ( $_[0] eq 'print' ) ) {
if ( ( defined $_[1] ) && ( $_[1] eq 'print' ) ) {
print $html_template->output;
} else {
$_[0] = $html_template->output;
$_[1] = $html_template->output;
}
}
@@ -162,9 +161,11 @@ sub setRelativeUrls {
}
#requires read config
#TODO:add config
sub check {
my $config = shift;
my $template = shift || '';
my $default = shift;
my $default = shift;
if ( $template =~ /json\-p/ ) {
$template =~ s/[^a-zA-Z0-9\-\_\.]//g;
@@ -172,7 +173,6 @@ sub check {
return $template;
}
my $config = $config::config;
if ( $template eq '' ) {
$template = $default;
} else {
@@ -185,12 +185,12 @@ sub check {
log::error( $config, 'invalid template!' ) if ( $template =~ /\.\./ );
}
#print STDERR $config::config->{cache}->{compress}."<.compres default:$template\n";
#print STDERR $config->{cache}->{compress}."<.compres default:$template\n";
$template = ( split( /\//, $template ) )[-1];
my $cwd = Cwd::getcwd();
$template .= '.html' unless ( $template =~ /\./ );
if ( ( $config::config->{cache}->{compress} eq '1' ) && ( -e $cwd . '/templates/compressed/' . $template ) ) {
if ( ( $config->{cache}->{compress} eq '1' ) && ( -e $cwd . '/templates/compressed/' . $template ) ) {
$template = $cwd . '/templates/compressed/' . $template;
} elsif ( -e $cwd . '/templates/' . $template ) {
$template = $cwd . '/templates/' . $template;
@@ -205,14 +205,13 @@ sub check {
#deprecated (for old admin only)
sub exit_on_missing_permission {
my $config = shift;
my $permission = shift;
my $user_permissions = roles::get_user_permissions();
my $user_permissions = roles::get_user_permissions($config);
if ( $user_permissions->{$permission} ne '1' ) {
print STDERR "missing permission to $permission\n";
template::process( 'print', template::check('default.html'), { error => 'sorry, missing permission!' } );
template::process( $config, 'print', template::check( $config, 'default.html' ), { error => 'sorry, missing permission!' } );
die();
#exit;
}
}

View File

@@ -1,19 +1,19 @@
package time;
use warnings "all";
use strict;
use utf8;
use Time::Local();
use DateTime();
use Date::Calc();
use Date::Manip();
use POSIX qw(strftime);
use Data::Dumper;
use config();
package time;
use Data::Dumper;
use utf8;
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(
format_datetime format_time
date_format time_format
@@ -25,13 +25,10 @@ our @EXPORT_OK = qw(
date_cond time_cond check_date check_time check_datetime check_year_month
datetime_to_rfc822 get_datetime datetime_to_utc datetime_to_utc_datetime
get_duration get_duration_seconds
get_durations get_names get_all_names weekday_index
$names
getDurations getWeekdayIndex getWeekdayNames getWeekdayNamesShort getMonthNames getMonthNamesShort
);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
our $names = {
my $NAMES = {
'de' => {
months =>
[ 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember' ],
@@ -48,26 +45,9 @@ our $names = {
},
};
our $durations = [
0, 5, 10, 15, 20, 30, 40, 45, 50, 60, 70, 75, 80, 90, 100, 105, 110, 115,
120, 135, 150, 165, 180, 195, 210, 225, 240, 300, 360, 420, 480, 540, 600, 660, 720, 1440
];
sub get_names {
my $language = shift || 'en';
return $time::names->{$language};
}
sub get_all_names {
return $time::names;
}
sub get_durations {
return $time::durations;
}
#TODO: build from datenames
our $weekday_index = {
# map starting with monday=0
my $WEEKDAY_INDEX = {
'0' => 0,
'1' => 1,
'2' => 2,
@@ -88,7 +68,43 @@ our $weekday_index = {
'So' => 6
};
sub get_weekdays {
my $DURATIONS = [
0, 5, 10, 15, 20, 30, 40, 45, 50, 60, 70, 75, 80, 90, 100, 105, 110, 115,
120, 135, 150, 165, 180, 195, 210, 225, 240, 300, 360, 420, 480, 540, 600, 660, 720, 1440
];
sub getDurations {
return $DURATIONS;
}
sub getWeekdayNames {
my $language = shift || 'en';
return $NAMES->{$language}->{weekdays};
}
sub getWeekdayNamesShort {
my $language = shift || 'en';
return $NAMES->{$language}->{weekdays_abbr};
}
sub getMonthNames {
my $language = shift || 'en';
return $NAMES->{$language}->{months};
}
sub getMonthNamesShort {
my $language = shift || 'en';
return $NAMES->{$language}->{months_abbr};
}
sub getWeekdayIndex($) {
my $weekday = shift || '';
return $WEEKDAY_INDEX->{$weekday};
}
# map starting with monday=1
sub getWeekdays {
return {
1 => 1,
2 => 2,
@@ -150,10 +166,11 @@ sub datetime_to_time {
my $hour = $4;
my $minute = $5;
my $second = $8 || 0;
return Time::Local::timelocal( $second, $minute, $hour, $day, $month, $year );
return Time::Local::timelocal( $second, $minute, $hour, $day, $month, $year ) || print STDERR "datetime_to_time: no valid date time found! ($datetime)\n";
;
} else {
print STDERR "datetime_to_time: no valid date time found! ($datetime )\n";
print STDERR "datetime_to_time: no valid date time found! ($datetime)\n";
return -1;
}
}
@@ -475,15 +492,16 @@ sub check_year_month {
#TODO: remove config dependency
sub date_time_format {
my $config = shift;
my $datetime = shift;
my $language = shift || $config::config->{date}->{language} || 'en';
my $language = shift || $config->{date}->{language} || 'en';
if ( defined $datetime && $datetime =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)[\sT](\d\d?\:\d\d?)/ ) {
my $time = $4;
my $day = $3;
my $month = $2;
my $year = $1;
$month = $time::names->{$language}->{months_abbr}->[ $month - 1 ] || '';
$month = time::getMonthNamesShort($language)->[ $month - 1 ] || '';
return "$day. $month $year $time";
}
return $datetime;
@@ -492,14 +510,15 @@ sub date_time_format {
#format datetime to date string
#TODO: remove config dependency
sub date_format {
my $config = shift;
my $datetime = shift;
my $language = shift || $config::config->{date}->{language} || 'en';
my $language = shift || $config->{date}->{language} || 'en';
if ( defined $datetime && $datetime =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)/ ) {
my $day = $3;
my $month = $2;
my $year = $1;
$month = $time::names->{$language}->{months_abbr}->[ $month - 1 ] || '';
$month = time::getMonthNamesShort($language)->[ $month - 1 ] || '';
return "$day. $month $year";
}
return $datetime;
@@ -518,9 +537,9 @@ sub time_format {
sub utc_offset {
my $time_zone = shift;
$a = DateTime->now();
$a->set_time_zone($time_zone);
return $a->strftime("%z");
my $datetime = DateTime->now();
$datetime->set_time_zone($time_zone);
return $datetime->strftime("%z");
}
#get weekday from (yyyy,mm,dd)
@@ -534,7 +553,6 @@ sub weekday {
#TODO: remove config dependency
sub get_event_date {
my $config = shift;
$config = $config::config unless defined $config;
my $datetime = time::time_to_datetime( time() );
my $hour = ( time::datetime_to_array($datetime) )->[3];
@@ -592,7 +610,7 @@ sub get_nth_weekday_in_month {
return [] unless defined $nth;
return [] unless defined $weekday;
my $weekdays = time::get_weekdays();
my $weekdays = time::getWeekdays();
return [] unless defined $weekdays->{$weekday};
$weekday = $weekdays->{$weekday};

View File

@@ -1,10 +1,10 @@
use CGI();
use CGI::Session qw(-ip-match);
use CGI::Cookie();
package uac;
use warnings "all";
use strict;
use CGI();
use CGI::Session qw(-ip-match);
use CGI::Cookie();
use Data::Dumper;
use auth();
use db();
@@ -12,8 +12,7 @@ use template();
use project();
use studios();
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(
get_user get_users update_user insert_user delete_user
get_roles insert_role update_role get_role_columns
@@ -25,7 +24,6 @@ our @EXPORT_OK = qw(
prepare_request set_template_permissions
permission_denied
);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;

View File

@@ -1,15 +1,15 @@
package user_settings;
use warnings "all";
use strict;
use Data::Dumper;
use series_dates();
# table: calcms_user_settings
# columns: user, colors
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(getColors getColorCss get insert update delete get_columns defaultColors);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;

View File

@@ -1,14 +1,11 @@
#!/bin/perl
package user_stats;
use warnings "all";
use strict;
use Data::Dumper;
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get_columns get update insert get_stats increase);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;

View File

@@ -2,6 +2,7 @@ package work_dates;
use warnings "all";
use strict;
use Data::Dumper;
use Date::Calc();
use time();
@@ -14,10 +15,8 @@ use work_schedule();
# table: calcms_work_dates
# columns: id, studio_id, schedule_id, start(datetime), end(datetime)
# TODO: delete column schedule_id
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get_columns get insert update delete get_dates);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;

View File

@@ -1,6 +1,8 @@
package work_schedule;
use warnings "all";
use strict;
use Data::Dumper;
use series_dates();
@@ -14,144 +16,142 @@ use series_dates();
# week_of_month (1..5)
# month
require Exporter;
our @ISA = qw(Exporter);
use base 'Exporter';
our @EXPORT_OK = qw(get_columns get insert update delete);
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
sub debug;
sub get_columns {
my $config = shift;
my $config = shift;
my $dbh = db::connect($config);
my $cols = db::get_columns( $dbh, 'calcms_work_schedule' );
my $columns = {};
for my $col (@$cols) {
$columns->{$col} = 1;
}
return $columns;
my $dbh = db::connect($config);
my $cols = db::get_columns( $dbh, 'calcms_work_schedule' );
my $columns = {};
for my $col (@$cols) {
$columns->{$col} = 1;
}
return $columns;
}
#map schedule id to id
sub get {
my $config = shift;
my $condition = shift;
my $config = shift;
my $condition = shift;
my $dbh = db::connect($config);
my $dbh = db::connect($config);
my @conditions = ();
my @bind_values = ();
my @conditions = ();
my @bind_values = ();
if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) {
push @conditions, 'project_id=?';
push @bind_values, $condition->{project_id};
}
if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) {
push @conditions, 'project_id=?';
push @bind_values, $condition->{project_id};
}
if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) {
push @conditions, 'studio_id=?';
push @bind_values, $condition->{studio_id};
}
if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) {
push @conditions, 'studio_id=?';
push @bind_values, $condition->{studio_id};
}
if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) {
push @conditions, 'schedule_id=?';
push @bind_values, $condition->{schedule_id};
}
if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) {
push @conditions, 'schedule_id=?';
push @bind_values, $condition->{schedule_id};
}
if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) {
push @conditions, 'start=?';
push @bind_values, $condition->{start};
}
if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) {
push @conditions, 'start=?';
push @bind_values, $condition->{start};
}
if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) {
push @conditions, 'exclude=?';
push @bind_values, $condition->{exclude};
}
if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) {
push @conditions, 'exclude=?';
push @bind_values, $condition->{exclude};
}
if ( ( defined $condition->{period_type} ) && ( $condition->{period_type} ne '' ) ) {
push @conditions, 'period_type=?';
push @bind_values, $condition->{period_type};
}
if ( ( defined $condition->{period_type} ) && ( $condition->{period_type} ne '' ) ) {
push @conditions, 'period_type=?';
push @bind_values, $condition->{period_type};
}
my $conditions = '';
$conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 );
my $conditions = '';
$conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 );
my $query = qq{
my $query = qq{
select *
from calcms_work_schedule
$conditions
order by exclude, start
};
#print STDERR $query."\n".Dumper(\@bind_values);
#print STDERR $query."\n".Dumper(\@bind_values);
my $entries = db::get( $dbh, $query, \@bind_values );
return $entries;
my $entries = db::get( $dbh, $query, \@bind_values );
return $entries;
}
sub insert {
my $config = shift;
my $entry = shift;
my $config = shift;
my $entry = shift;
return undef unless defined $entry->{project_id};
return undef unless defined $entry->{studio_id};
return undef unless defined $entry->{start};
my $dbh = db::connect($config);
return db::insert( $dbh, 'calcms_work_schedule', $entry );
return undef unless defined $entry->{project_id};
return undef unless defined $entry->{studio_id};
return undef unless defined $entry->{start};
my $dbh = db::connect($config);
return db::insert( $dbh, 'calcms_work_schedule', $entry );
}
#schedule id to id
sub update {
my $config = shift;
my $entry = shift;
my $config = shift;
my $entry = shift;
return undef unless defined $entry->{project_id};
return undef unless defined $entry->{studio_id};
return undef unless defined $entry->{schedule_id};
return undef unless defined $entry->{start};
return undef unless defined $entry->{project_id};
return undef unless defined $entry->{studio_id};
return undef unless defined $entry->{schedule_id};
return undef unless defined $entry->{start};
my $dbh = db::connect($config);
my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) );
my @bind_values = map { $entry->{$_} } ( keys %$entry );
my $dbh = db::connect($config);
my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) );
my @bind_values = map { $entry->{$_} } ( keys %$entry );
push @bind_values, $entry->{project_id};
push @bind_values, $entry->{studio_id};
push @bind_values, $entry->{schedule_id};
push @bind_values, $entry->{project_id};
push @bind_values, $entry->{studio_id};
push @bind_values, $entry->{schedule_id};
my $query = qq{
my $query = qq{
update calcms_work_schedule
set $values
where project_id=? and studio_id=? and schedule_id=?
};
return db::put( $dbh, $query, \@bind_values );
print "done\n";
return db::put( $dbh, $query, \@bind_values );
print "done\n";
}
#map schedule id to id
sub delete {
my $config = shift;
my $entry = shift;
my $config = shift;
my $entry = shift;
return undef unless defined $entry->{project_id};
return undef unless defined $entry->{studio_id};
return undef unless defined $entry->{schedule_id};
return undef unless defined $entry->{project_id};
return undef unless defined $entry->{studio_id};
return undef unless defined $entry->{schedule_id};
my $dbh = db::connect($config);
my $dbh = db::connect($config);
my $query = qq{
my $query = qq{
delete
from calcms_work_schedule
where project_id=? and studio_id=? and schedule_id=?
};
my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{schedule_id} ];
my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{schedule_id} ];
#print '<pre>$query'.$query.Dumper($bind_values).'</pre>';
return db::put( $dbh, $query, $bind_values );
#print '<pre>$query'.$query.Dumper($bind_values).'</pre>';
return db::put( $dbh, $query, $bind_values );
}
sub error {
my $msg = shift;
print "ERROR: $msg<br/>\n";
my $msg = shift;
print "ERROR: $msg<br/>\n";
}
#do not delete last line!

View File

@@ -26,8 +26,6 @@ my $r=shift;
my $config = config::get('./config/config.cgi');
my $debug = $config->{system}->{debug};
$cache::debug=$debug;
my $request={
url => $ENV{QUERY_STRING},
params => {
@@ -174,7 +172,7 @@ sub check_params{
my $config=shift;
my $params=shift;
my $template=template::check($params->{'template'}, 'comments.html');
my $template = template::check($config, $params->{'template'}, 'comments.html' );
my $comment={};

View File

@@ -3,15 +3,8 @@
use warnings "all";
use strict;
#use Data::Dumper;
#use DBI;
use CGI qw(header param Vars);
#use Time::Local qw(timelocal);
#use Benchmark;
#use Devel::Profiler;
use db();
use events();
use time();
@@ -20,9 +13,6 @@ use markup();
use log();
use config();
#use params;
#my $r=shift;
if ( $0 =~ /aggregate.*?\.cgi$/ ) {
binmode STDOUT, ":encoding(UTF-8)";

View File

@@ -56,7 +56,7 @@ $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache}
my $template = $params->{template};
my $out = '';
template::process( $out, $params->{template}, $template_parameters );
template::process($config, $out, $params->{template}, $template_parameters );
print $out;
#write to cache
@@ -127,7 +127,7 @@ sub check_params {
my $config = $_[0];
my $params = $_[1];
my $template = template::check( $params->{template}, 'categories.html' );
my $template = template::check($config, $params->{template}, 'categories.html' );
my $debug = $params->{debug} || '';
if ( $debug =~ /([a-z\_\,]+)/ ) {

View File

@@ -23,7 +23,6 @@ binmode STDOUT, ":encoding(UTF-8)";
my $r = shift;
( my $cgi, my $params, my $error ) = params::get($r);
if ( $0 =~ /events.*?\.cgi$/ ) {
#my $cgi=new CGI();

View File

@@ -63,7 +63,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process( $config, 'print', template::check($config, 'default.html'), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
print q{
@@ -142,7 +142,7 @@ sub show_events {
$params->{project_name} = $project_name;
$params->{studio_name} = $studio_name;
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
}
sub assign_series {
@@ -201,6 +201,7 @@ sub assign_series {
$config->{access}->{write} = 0;
uac::print_info("event successfully assigned to series");
return;
}
sub check_params {
@@ -236,7 +237,7 @@ sub check_params {
$checked->{studio_id} = -1;
}
$checked->{template} = template::check( $params->{template}, 'assign_series' );
$checked->{template} = template::check($config, $params->{template}, 'assign_series' );
return $checked;
}

View File

@@ -64,7 +64,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
print q{
@@ -167,6 +167,7 @@ sub show_events {
$results = db::get( $dbh, $query, $bind_values );
# detect title and episode
my $weekdayNamesShort = time::getWeekdayNamesShort('de');
for my $result (@$results) {
$result->{rerun} .= '';
if ( $result->{title} =~ /\#(\d+)([a-z])?\s*$/ ) {
@@ -179,7 +180,7 @@ sub show_events {
#print STDERR "($a->[0],$a->[1],$a->[2])\n";
$result->{weekday} = time::weekday( $a->[0], $a->[1], $a->[2] );
$result->{weekday} = $time::names->{de}->{weekdays_abbr}->[ $result->{weekday} - 1 ];
$result->{weekday} = $weekdayNamesShort->[ $result->{weekday} - 1 ];
}
#fill template
@@ -188,7 +189,7 @@ sub show_events {
$params->{project_name} = $project_name;
$params->{studio_name} = $studio_name;
template::process( 'print', $params->{template}, $params );
template::process( $config, 'print', $params->{template}, $params );
}
sub assign_events {
@@ -385,7 +386,7 @@ sub check_params {
$checked->{studio_id} = -1;
}
$checked->{template} = template::check( $params->{template}, 'assignments' );
$checked->{template} = template::check( $config, $params->{template}, 'assignments' );
if ( ( defined $checked->{action} ) && ( $checked->{action} eq 'save_schedule' ) ) {

View File

@@ -87,7 +87,7 @@ $params = $request->{params}->{checked};
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process( $config, 'print', template::check($config, 'default.html'), $headerParams );
exit unless defined uac::check( $config, $params, $user_presets );
@@ -112,7 +112,7 @@ showAudioRecordings( $config, $request );
print STDERR "$0 ERROR: " . $params->{error} . "\n" if $params->{error} ne '';
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } );
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
exit;
@@ -544,7 +544,7 @@ sub check_params {
my $checked = {};
$checked->{error} = '';
$checked->{template} = template::check( $params->{template}, 'upload_audio_recordings' );
$checked->{template} = template::check($config, $params->{template}, 'upload_audio_recordings' );
#print Dumper($params);
#numeric values

8
website/agenda/planung/calendar.cgi Normal file → Executable file
View File

@@ -98,7 +98,7 @@ if (
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process( $config, 'print', template::check($config, 'default.html'), $headerParams );
print q{
<link href="css/jquery-ui-timepicker.css" type="text/css" rel="stylesheet" />
<link rel="stylesheet" href="css/calendar.css" type="text/css" />
@@ -1682,14 +1682,14 @@ sub getCalendar {
$next = time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( days => $range )->date();
}
my ( $year, $month, $day ) = split( /\-/, $from_date );
$month = $time::names->{$language}->{months_abbr}->[ $month - 1 ] || '';
my $monthName = time::getMonthNamesShort($language)->[ $month - 1 ] || '';
return {
from_date => $from_date,
till_date => $till_date,
next_date => $next,
previous_date => $previous,
month => $month,
month => $monthName,
year => $year
};
@@ -1807,7 +1807,7 @@ sub check_params {
my $checked = {};
my $template = '';
$checked->{template} = template::check( $params->{template}, 'series' );
$checked->{template} = template::check($config, $params->{template}, 'series' );
my $debug = $params->{debug} || '';
if ( $debug =~ /([a-z\_\,]+)/ ) {

View File

@@ -32,7 +32,7 @@ my $r = shift;
my $config = config::get('../config/config.cgi');
my $debug = $config->{system}->{debug};
my ( $user, $expires ) = auth::get_user( $cgi, $config );
return if ( ( !defined $user ) || ( $user eq '' ) );
return if ( !defined $user ) || ( $user eq '' ) ;
my $user_presets = uac::get_user_presets(
$config,
@@ -68,7 +68,7 @@ if ( ( params::isJson() ) || ( defined $params->{action} ) ) {
} else {
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
print q{
<script src="js/datetime.js" type="text/javascript"></script>
} unless (params::isJson);
@@ -132,16 +132,16 @@ sub showComments {
my $events = [];
my $comment_count = 0;
if ( scalar(@$results) > 0 ) {
my $comments = modify_comments( $request, $results );
my $comments = modify_comments( $config, $request, $results );
$comments = comments::sort( $config, $comments );
$events = comments::get_events( $dbh, $config, $request, $comments );
my $language = $config::config->{date}->{language} || 'en';
my $language = $config->{date}->{language} || 'en';
for my $event (@$events) {
$event->{start} = time::date_time_format( $event->{start}, $language );
$event->{start} = time::date_time_format($config, $event->{start}, $language );
$comment_count += $event->{comment_count} if ( defined $event->{comment_count} );
$event->{cache_base_url} = $config::config->{cache}->{base_url};
$event->{cache_base_url} = $config->{cache}->{base_url};
}
}
for my $param (%$comment) {
@@ -160,16 +160,17 @@ sub showComments {
$template_parameters->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'comment' } );
#fill and output template
template::process( 'print', $params->{template}, $template_parameters );
template::process($config, 'print', $params->{template}, $template_parameters );
}
sub modify_comments {
my $config = shift;
my $request = shift;
my $results = shift;
my $language = $config::config->{date}->{language} || 'en';
my $language = $config->{date}->{language} || 'en';
for my $result (@$results) {
$result->{start_date_name} = time::date_format( $result->{created_at}, $language );
$result->{start_date_name} = time::date_format($config, $result->{created_at}, $language );
$result->{start_time_name} = time::time_format( $result->{created_at} );
$result->{ $result->{lock_status} } = 1;
$result->{ $result->{news_status} } = 1;
@@ -252,9 +253,9 @@ sub check_params {
#template
my $template = '';
if ( defined $checked->{action} ) {
$template = template::check( $params->{template}, 'edit_comment' ) if $checked->{action} eq 'showComment';
$template = template::check($config, $params->{template}, 'edit_comment' ) if $checked->{action} eq 'showComment';
} else {
$template = template::check( $params->{template}, 'comments' );
$template = template::check($config, $params->{template}, 'comments' );
}
$checked->{template} = $template;

View File

@@ -58,7 +58,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
print q{
@@ -90,7 +90,7 @@ sub show_events {
uac::permissions_denied('assign_series_events');
return;
}
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
}
@@ -147,7 +147,7 @@ sub create_events {
}
$params->{created_events} = $events;
$params->{created_total} = scalar(@$events);
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
}
sub createEvent {
@@ -210,7 +210,7 @@ sub check_params {
$checked->{studio_id} = -1;
}
$checked->{template} = template::check( $params->{template}, 'create_events' );
$checked->{template} = template::check($config, $params->{template}, 'create_events' );
return $checked;
}

View File

@@ -1,84 +0,0 @@
#! /usr/bin/perl -I../lib
use warnings "all";
use strict;
use Data::Dumper;
use HTML::Template();
use config();
use log();
use template();
use params();
use config();
use auth();
use localization();
use studios();
binmode STDOUT, ":utf8";
my $r = shift;
( my $cgi, my $params, my $error ) = params::get($r);
my $config = config::get('../config/config.cgi');
my $debug = $config->{system}->{debug};
my ( $user, $expires ) = auth::get_user( $cgi, $config );
return if ( !defined $user ) || ( $user eq '' );
my $user_presets = uac::get_user_presets( $config, { user => $user, studio_id => $params->{studio_id} } );
my $request = {
url => $ENV{QUERY_STRING} || '',
params => {
original => $params,
checked => $params
# checked => check_params($params),
},
};
$request = uac::prepare_request( $request, $user_presets );
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
#filter
my $lines = $cgi->param('lines');
$lines = 100 if $lines eq '';
my $filter = '';
$filter = ' |grep -v "Use of uninitialized value in | grep -v redefined " ' if ( $cgi->param('warn') eq '1' );
#get file
my $file = $config->{system}->{log_file};
if ( $cgi->param('log') eq 'app' ) {
$file = $config->{system}->{log_debug_file};
}
if ( $cgi->param('log') eq 'mem' ) {
$file = $config->{system}->{log_debug_memory_file};
}
if ( $cgi->param('log') eq 'job' ) {
$file = $config->{system}->{job_log};
}
#output header
my $out = '';
template::process( 'print', 'templates/error_log.html', $params );
#get log
my $cmd = "tail -$lines " . $file . $filter;
print '<pre>' . $cmd . '</pre>';
my $log = `$cmd`;
$log = join( "\n", reverse( split( "\n", $log ) ) );
#replace
if ( $cgi->param('log') eq 'app' ) {
$log =~ s/\\n/<br>/gi;
} else {
$log =~ s/</\&lt;/gi;
$log =~
s/\\n/<\/pre><pre>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/gi;
}
#output content
print $log;

View File

@@ -75,7 +75,7 @@ $params = $request->{params}->{checked};
unless ( params::isJson() ) {
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
}
return unless defined uac::check( $config, $params, $user_presets );
@@ -148,7 +148,7 @@ sub show_event {
#TODO: move to JS
my @durations = ();
for my $duration ( @{ time::get_durations() } ) {
for my $duration ( @{ time::getDurations() } ) {
my $entry = {
name => sprintf( "%02d:%02d", $duration / 60, $duration % 60 ),
value => $duration
@@ -311,7 +311,7 @@ sub show_event {
#print STDERR Dumper($params);
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event' } );
template::process( 'print', template::check('edit_event'), $params );
template::process($config, 'print', template::check($config, 'edit_event'), $params );
}
sub getJson {
@@ -394,7 +394,7 @@ sub getJson {
}
#print to_json($event);
template::process( 'print', 'json-p', $event );
template::process($config, 'print', 'json-p', $event );
}
#show new event from schedule
@@ -432,7 +432,7 @@ sub show_new_event {
#add duration selectbox
#TODO: move to javascript
my @durations = ();
for my $duration ( @{ time::get_durations() } ) {
for my $duration ( @{ time::getDurations() } ) {
my $entry = {
name => sprintf( "%02d:%02d", $duration / 60, $duration % 60 ),
value => $duration
@@ -455,7 +455,7 @@ sub show_new_event {
}
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } );
template::process( 'print', template::check('edit_event'), $params );
template::process( $config, 'print', template::check($config, 'edit_event'), $params );
#print '<pre>'.Dumper($params).'</pre>';
}
@@ -773,7 +773,7 @@ sub check_params {
my $checked = {};
my $template = '';
$checked->{template} = template::check( $params->{template}, 'series' );
$checked->{template} = template::check($config, $params->{template}, 'series' );
my $debug = $params->{debug} || '';
if ( $debug =~ /([a-z\_\,]+)/ ) {

View File

@@ -57,7 +57,7 @@ $params = $request->{params}->{checked};
#show header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process( $config, 'print', template::check($config, 'default.html'), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
print q{
@@ -113,7 +113,7 @@ sub show_history {
#print STDERR Dumper($params);
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event_history' } );
template::process( 'print', template::check('event_history'), $params );
template::process($config, 'print', template::check($config, 'event_history'), $params );
}
#show existing event history
@@ -200,7 +200,7 @@ sub check_params {
my $checked = {};
my $template = '';
$checked->{template} = template::check( $params->{template}, 'event_history' );
$checked->{template} = template::check($config, $params->{template}, 'event_history' );
my $debug = $params->{debug} || '';
if ( $debug =~ /([a-z\_\,]+)/ ) {

View File

@@ -56,7 +56,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
my $toc = $headerParams->{loc}->{toc};

View File

@@ -65,7 +65,7 @@ $params = $request->{params}->{checked};
#show header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('ajax_header.html'), $headerParams );
template::process($config, 'print', template::check($config, 'ajax_header.html'), $headerParams );
return unless defined uac::check( $config, $params, $user_presets );
my $local_media_dir = $config->{locations}->{local_media_dir};
@@ -231,7 +231,7 @@ sub show_image {
$template_params->{allow}->{update_image_own} || $template_params->{allow}->{seriesupdate_image_others};
$template_params->{allow}->{delete_image} =
$template_params->{allow}->{delete_image_own} || $template_params->{allow}->{delete_image_others};
template::process( 'print', $params->{template}, $template_params );
template::process($config, 'print', $params->{template}, $template_params );
}
sub print_js_error {
@@ -408,7 +408,7 @@ sub modify_results {
sub check_params {
my $params = shift;
my $checked = { template => template::check( $params->{template}, 'image.html' ) };
my $checked = { template => template::check($config, $params->{template}, 'image.html' ) };
#numeric values
$checked->{limit} = 100;

View File

@@ -142,7 +142,7 @@ if ( $error ne '' ) {
}
print STDERR $params->{error} . "\n" if defined $params->{error};
my $out = '';
template::process( 'print', $params->{template}, $params );
template::process( $config, 'print', $params->{template}, $params );
print $cgi->cgi_error() if defined $cgi;
@@ -388,7 +388,7 @@ sub check_params {
my $params = shift;
my $checked = {};
$checked->{template} = template::check( $params->{template}, 'imageUpload' );
$checked->{template} = template::check($config, $params->{template}, 'imageUpload' );
#numeric values
for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) {

View File

@@ -63,7 +63,7 @@ $params = $request->{params}->{checked};
unless ( params::isJson() || ( $params->{template} =~ /\.txt/ ) ) {
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process( $config, 'print', template::check($config, 'default.html'), $headerParams );
}
return unless uac::check( $config, $params, $user_presets ) == 1;
@@ -122,7 +122,7 @@ sub show_events {
}
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'notify_events' } );
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
}
@@ -241,7 +241,7 @@ sub check_params {
my $checked = {};
my $template = '';
$checked->{template} = template::check( $params->{template}, 'notify_events' );
$checked->{template} = template::check($config, $params->{template}, 'notify_events' );
my $debug = $params->{debug} || '';
if ( $debug =~ /([a-z\_\,]+)/ ) {

4
website/agenda/planung/playout.cgi Normal file → Executable file
View File

@@ -70,7 +70,7 @@ $params = $request->{params}->{checked};
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
#template::process('print', template::check('default.html'), $headerParams);
#template::process($config, 'print', template::check($config, 'default.html'), $headerParams);
return unless uac::check( $config, $params, $user_presets ) == 1;
if ( defined $params->{action} ) {
@@ -154,7 +154,7 @@ sub check_params {
$checked->{studio_id} = -1;
}
#$checked->{template}=template::check($params->{template},'playout');
#$checked->{template}=template::check($config, $params->{template},'playout');
return $checked;
}

View File

@@ -24,7 +24,7 @@ my $debug = $config->{system}->{debug};
my ( $user, $expires ) = auth::get_user( $cgi, $config );
return if ( $user eq '' );
my $permissions = roles::get_user_permissions();
my $permissions = roles::get_user_permissions($config);
my $user_presets = uac::get_user_presets(
$config,
{
@@ -53,7 +53,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
print q{
@@ -262,7 +262,7 @@ sub show_projects {
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'projects' } );
uac::set_template_permissions( $permissions, $params );
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
}
sub check_params {
@@ -272,7 +272,7 @@ sub check_params {
#template
my $template = '';
$template = template::check( $params->{template}, 'projects' );
$template = template::check($config, $params->{template}, 'projects' );
$checked->{template} = $template;
#actions

2
website/agenda/planung/requestPassword.cgi Normal file → Executable file
View File

@@ -141,7 +141,7 @@ sub check_params {
my $checked = {};
#my $template = '';
#$checked->{template} = template::check( $params->{template}, 'requestPassword' );
#$checked->{template} = template::check($config, $params->{template}, 'requestPassword' );
my $debug = $params->{debug} || '';
if ( $debug =~ /([a-z\_\,]+)/ ) {

View File

@@ -62,7 +62,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('roles.html'), $headerParams );
template::process($config, 'print', template::check($config, 'roles.html'), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
if ( defined $params->{action} ) {
@@ -431,7 +431,7 @@ sub check_params {
#template
my $template = '';
$template = template::check( $params->{template}, 'roles.html' );
$template = template::check($config, $params->{template}, 'roles.html' );
$checked->{template} = $template;
#actions

View File

@@ -117,7 +117,7 @@ sub show_events {
$params->{years} = $years;
#print STDERR Dumper($params);
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
return;
}
@@ -171,7 +171,7 @@ sub check_params {
$checked->{studio_id} = -1;
}
$checked->{template} = template::check( $params->{template}, 'selectEvent' );
$checked->{template} = template::check($config, $params->{template}, 'selectEvent' );
return $checked;
}

View File

@@ -104,7 +104,7 @@ sub show_series {
$params->{studios} = $user_studios;
$params->{series} = $series;
template::process( 'print', $params->{template}, $params );
template::process( $config, 'print', $params->{template}, $params );
return;
}
@@ -148,7 +148,7 @@ sub check_params {
$checked->{studio_id} = -1;
}
$checked->{template} = template::check( $params->{template}, 'selectSeries' );
$checked->{template} = template::check($config, $params->{template}, 'selectSeries' );
return $checked;
}

View File

@@ -66,7 +66,7 @@ $params = $request->{params}->{checked};
unless ( params::isJson() ) {
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
}
return unless uac::check( $config, $params, $user_presets ) == 1;
@@ -989,7 +989,7 @@ sub list_series {
#print STDERR Dumper $params->{image};
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,series' } );
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
}
sub show_series {
@@ -1207,7 +1207,7 @@ sub show_series {
#print STDERR '<pre>'.Dumper($params).'</pre>';
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,series' } );
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
}
sub check_params {
@@ -1252,9 +1252,9 @@ sub check_params {
}
if ( defined $checked->{series_id} ) {
$checked->{template} = template::check( $params->{template}, 'edit_series' );
$checked->{template} = template::check($config, $params->{template}, 'edit_series' );
} else {
$checked->{template} = template::check( $params->{template}, 'series' );
$checked->{template} = template::check($config, $params->{template}, 'series' );
}
if ( ( defined $checked->{action} ) && ( $checked->{action} eq 'save_schedule' ) ) {

View File

@@ -30,12 +30,12 @@ return if ( ( !defined $user ) || ( $user eq '' ) );
#print STDERR $params->{project_id}."\n";
my $user_presets = uac::get_user_presets(
$config,
{
project_id => $params->{project_id},
studio_id => $params->{studio_id},
user => $user
}
$config,
{
project_id => $params->{project_id},
studio_id => $params->{studio_id},
user => $user
}
);
$params->{default_studio_id} = $user_presets->{studio_id};
$params->{studio_id} = $params->{default_studio_id}
@@ -45,20 +45,20 @@ $params->{project_id} = $user_presets->{project_id}
#print STDERR $params->{project_id}."\n";
my $request = {
url => $ENV{QUERY_STRING} || '',
params => {
original => $params,
checked => check_params($params),
},
url => $ENV{QUERY_STRING} || '',
params => {
original => $params,
checked => check_params($params),
},
};
$request = uac::prepare_request( $request, $user_presets );
$params = $request->{params}->{checked};
#process header
unless ( params::isJson() ) {
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
}
return unless uac::check( $config, $params, $user_presets ) == 1;
@@ -75,127 +75,127 @@ showPlayout( $config, $request );
print STDERR "$0 ERROR: " . $params->{error} . "\n" if $params->{error} ne '';
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } );
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
exit;
sub showPlayout {
my $config = shift;
my $request = shift;
my $config = shift;
my $request = shift;
my $params = $request->{params}->{checked};
my $permissions = $request->{permissions};
my $params = $request->{params}->{checked};
my $permissions = $request->{permissions};
for my $attr ( 'project_id', 'studio_id' ) {
unless ( defined $params->{$attr} ) {
uac::print_error( "missing " . $attr . " to show playout" );
return;
}
}
for my $attr ( 'project_id', 'studio_id' ) {
unless ( defined $params->{$attr} ) {
uac::print_error( "missing " . $attr . " to show playout" );
return;
}
}
my $events = playout::get(
$config,
{
project_id => $params->{project_id},
studio_id => $params->{studio_id},
order => 'modified_at desc, start desc',
limit => 500
}
);
my $events = playout::get(
$config,
{
project_id => $params->{project_id},
studio_id => $params->{studio_id},
order => 'modified_at desc, start desc',
limit => 500
}
);
# print '<pre>'.Dumper($events).'</pre>';
unless ( defined $events ) {
uac::print_error("not found");
return;
}
# print '<pre>'.Dumper($events).'</pre>';
unless ( defined $events ) {
uac::print_error("not found");
return;
}
for my $event (@$events) {
$event->{stream_size} =~ s/(\d)(\d\d\d)$/$1\.$2/g;
$event->{stream_size} =~ s/(\d)(\d\d\d\.\d\d\d)$/$1\.$2/g;
$event->{duration} =~ s/(\d\.\d)(\d+)$/$1/g;
$event->{duration} =~ s/(\d)\.0/$1/g;
$event->{rms_left} = formatLoudness( $event->{rms_left} );
$event->{rms_right} = formatLoudness( $event->{rms_right} );
$event->{bitrate} = formatBitrate($event);
$event->{duration} = formatDuration($event);
}
for my $event (@$events) {
$event->{stream_size} =~ s/(\d)(\d\d\d)$/$1\.$2/g;
$event->{stream_size} =~ s/(\d)(\d\d\d\.\d\d\d)$/$1\.$2/g;
$event->{duration} =~ s/(\d\.\d)(\d+)$/$1/g;
$event->{duration} =~ s/(\d)\.0/$1/g;
$event->{rms_left} = formatLoudness( $event->{rms_left} );
$event->{rms_right} = formatLoudness( $event->{rms_right} );
$event->{bitrate} = formatBitrate($event);
$event->{duration} = formatDuration($event);
}
$params->{events} = $events;
$params->{events} = $events;
#print Dumper($events);
#print Dumper($events);
}
sub formatDuration {
my $event = $_[0];
my $duration = $event->{duration};
return '' unless defined $duration;
return '' if $duration eq '';
my $result = int( ( $duration + 3600 ) * 10 ) % 600;
my $class = "ok";
$class = "warn" if $result > 1;
$class = "error" if $result > 10;
return sprintf( qq{<div class="%s">%.01f</div>}, $class, $duration );
my $event = $_[0];
my $duration = $event->{duration};
return '' unless defined $duration;
return '' if $duration eq '';
my $result = int( ( $duration + 3600 ) * 10 ) % 600;
my $class = "ok";
$class = "warn" if $result > 1;
$class = "error" if $result > 10;
return sprintf( qq{<div class="%s">%.01f</div>}, $class, $duration );
}
sub formatBitrate {
my $event = $_[0];
my $bitrate = $event->{bitrate};
my $mode = $event->{bitrate_mode};
if ( $bitrate ne '' ) {
if ( $bitrate >= 200 ) {
$bitrate = '<div class="warn">' . $bitrate . ' ' . $mode . '</div>';
} elsif ( $bitrate < 190 ) {
$bitrate = '<div class="error">' . $bitrate . ' ' . $mode . '</div>';
} else {
$bitrate .= ' ' . $mode;
}
}
return $bitrate;
my $event = $_[0];
my $bitrate = $event->{bitrate};
my $mode = $event->{bitrate_mode};
if ( $bitrate ne '' ) {
if ( $bitrate >= 200 ) {
$bitrate = '<div class="warn">' . $bitrate . ' ' . $mode . '</div>';
} elsif ( $bitrate < 190 ) {
$bitrate = '<div class="error">' . $bitrate . ' ' . $mode . '</div>';
} else {
$bitrate .= ' ' . $mode;
}
}
return $bitrate;
}
sub formatLoudness {
my $value = shift;
return '' unless defined $value;
return '' if $value == 0;
return '' if $value eq '';
my $value = shift;
return '' unless defined $value;
return '' if $value == 0;
return '' if $value eq '';
$value = sprintf( "%.1f", $value );
my $class = 'ok';
$class = 'warn' if $value > -18.5;
$class = 'error' if $value > -16.0;
$class = 'warn' if $value < -24.0;
$class = 'error' if $value < -27.0;
$value = sprintf( "%.1f", $value );
my $class = 'ok';
$class = 'warn' if $value > -18.5;
$class = 'error' if $value > -16.0;
$class = 'warn' if $value < -24.0;
$class = 'error' if $value < -27.0;
return qq{<div class="$class">$value dB</div>};
return qq{<div class="$class">$value dB</div>};
}
sub check_params {
my $params = shift;
my $params = shift;
my $checked = {};
$checked->{error} = '';
$checked->{template} = template::check( $params->{template}, 'show_playout' );
my $checked = {};
$checked->{error} = '';
$checked->{template} = template::check($config, $params->{template}, 'show_playout' );
#numeric values
for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) {
if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
$checked->{$param} = $params->{$param};
}
}
#numeric values
for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) {
if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
$checked->{$param} = $params->{$param};
}
}
if ( defined $checked->{studio_id} ) {
$checked->{default_studio_id} = $checked->{studio_id};
} else {
$checked->{studio_id} = -1;
}
if ( defined $checked->{studio_id} ) {
$checked->{default_studio_id} = $checked->{studio_id};
} else {
$checked->{studio_id} = -1;
}
#word
for my $param ('debug') {
if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\s*(.+?)\s*$/ ) ) {
$checked->{$param} = $1;
}
}
#word
for my $param ('debug') {
if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\s*(.+?)\s*$/ ) ) {
$checked->{$param} = $1;
}
}
return $checked;
return $checked;
}

View File

@@ -64,7 +64,7 @@ if ( $action eq 'show_dates' ) {
#print "Content-type:text/html\n\n";
} else {
template::process( 'print', template::check('default.html'), $headerParams );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
}
return unless uac::check( $config, $params, $user_presets ) == 1;
@@ -259,7 +259,7 @@ sub showTimeslotSchedule {
}
#print '<pre>'.Dumper($params).'</pre>';
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
}
sub showDates {
@@ -350,8 +350,8 @@ sub showDates {
$params->{$key} = $result->{$key};
}
my $template = template::check('studio_timeslot_dates');
template::process( 'print', $template, $params );
my $template = template::check($config, 'studio_timeslot_dates');
template::process($config, 'print', $template, $params );
}
sub check_params {
@@ -393,7 +393,7 @@ sub check_params {
$checked->{studio_id} = -1;
}
$checked->{template} = template::check( $params->{template}, 'studio_timeslots' );
$checked->{template} = template::check($config, $params->{template}, 'studio_timeslots' );
for my $param ('frequency') {
if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) {

View File

@@ -24,7 +24,7 @@ my $debug = $config->{system}->{debug};
my ( $user, $expires ) = auth::get_user( $cgi, $config );
return if ( $user eq '' );
my $permissions = roles::get_user_permissions();
my $permissions = roles::get_user_permissions($config);
my $user_presets = uac::get_user_presets(
$config,
{
@@ -52,7 +52,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
print q{
@@ -199,7 +199,7 @@ sub show_studios {
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'studios' } );
uac::set_template_permissions( $permissions, $params );
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
}
sub check_params {
@@ -209,7 +209,7 @@ sub check_params {
#template
my $template = '';
$template = template::check( $params->{template}, 'studios' );
$template = template::check($config, $params->{template}, 'studios' );
$checked->{template} = $template;
#actions

View File

@@ -51,7 +51,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
our $errors = [];
@@ -113,7 +113,7 @@ sub show_settings {
uac::set_template_permissions( $permissions, $params );
#print Dumper($permissions);
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
#print '<pre>'.Dumper($user_settings);
}
@@ -165,7 +165,7 @@ sub check_params {
#template
my $template = '';
$template = template::check( $params->{template}, 'user_settings' );
$template = template::check($config, $params->{template}, 'user_settings' );
$checked->{template} = $template;
#numeric values

View File

@@ -52,7 +52,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
our $errors = [];
@@ -76,7 +76,7 @@ sub show_stats {
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'user_stats' } );
uac::set_template_permissions( $permissions, $params );
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
}
sub check_params {
@@ -86,7 +86,7 @@ sub check_params {
#template
my $template = '';
$template = template::check( $params->{template}, 'user_stats' );
$template = template::check($config, $params->{template}, 'user_stats' );
$checked->{template} = $template;
#numeric values

View File

@@ -48,7 +48,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
our $errors = [];
@@ -168,9 +168,9 @@ sub show_users {
uac::set_template_permissions( $permissions, $params );
#print Dumper($permissions);
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
# template::process('print', template::check('users'), $params);
# template::process($config, 'print', template::check($config, 'users'), $params);
}
@@ -251,7 +251,7 @@ sub change_password {
uac::set_template_permissions( $permissions, $params );
#print Dumper($permissions);
template::process( 'print', template::check('change_password'), $params );
template::process( $config, 'print', template::check($config, 'change_password'), $params );
}
sub delete_user {
@@ -405,7 +405,7 @@ sub check_params {
#template
my $template = '';
$template = template::check( $params->{template}, 'users' );
$template = template::check($config, $params->{template}, 'users' );
$checked->{template} = $template;
#numeric values

View File

@@ -59,7 +59,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( 'print', template::check('default.html'), $headerParams );
template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
if ( defined $params->{action} ) {
@@ -261,7 +261,7 @@ sub show_work_schedule {
#print STDERR '<pre>'.Dumper($params).'</pre>';
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'work_time' } );
template::process( 'print', $params->{template}, $params );
template::process($config, 'print', $params->{template}, $params );
}
sub check_params {
@@ -300,7 +300,7 @@ sub check_params {
$checked->{studio_id} = -1;
}
$checked->{template} = template::check( $params->{template}, 'edit_work_time' );
$checked->{template} = template::check($config, $params->{template}, 'edit_work_time' );
if ( ( defined $checked->{action} ) && ( $checked->{action} eq 'save_schedule' ) ) {

View File

@@ -68,7 +68,7 @@ sub list_series {
$params->{info}.="no results found" if scalar(@$series)==0;
$params->{info}='';
template::process( 'print', 'templates/series.html', $params );
template::process($config, 'print', 'templates/series.html', $params );
}
sub check_params {

View File

@@ -62,7 +62,7 @@ $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache}
#output template
my $template = $params->{template};
my $out = '';
template::process( $out, $params->{template}, $template_parameters );
template::process($config, $out, $params->{template}, $template_parameters );
print $out;
#write to cache
@@ -184,7 +184,7 @@ sub check_params {
my $config = shift;
my $params = shift;
my $template = template::check( $params->{template}, 'series_names.html' );
my $template = template::check($config, $params->{template}, 'series_names.html' );
my $debug = $params->{debug} || '';
if ( $debug =~ /([a-z\_\,]+)/ ) {