users with permission edit_help_texts are allowed to select edit help texts from menu and enter texts for all event fields. Other users will see help texts as tooltips. This allows to provide help to users depending on your workflow. help texts are saved by project and studio.
106 lines
2.9 KiB
Perl
106 lines
2.9 KiB
Perl
package help_texts;
|
|
|
|
use strict;
|
|
use warnings;
|
|
no warnings 'redefine';
|
|
|
|
use Data::Dumper;
|
|
|
|
# table: calcms_help_texts
|
|
# columns: id, studio_id, series_id,
|
|
# table, column, text
|
|
|
|
#use base 'Exporter';
|
|
our @EXPORT_OK = qw(get_columns get insert update delete);
|
|
|
|
sub get_columns($) {
|
|
my ($config) = @_;
|
|
my $dbh = db::connect($config);
|
|
return db::get_columns_hash( $dbh, 'calcms_help_texts' );
|
|
}
|
|
|
|
#map schedule id to id
|
|
sub get($$) {
|
|
my ($config, $condition) = @_;
|
|
|
|
my $dbh = db::connect($config);
|
|
|
|
my @conditions = ();
|
|
my @bind_values = ();
|
|
for my $col ('project_id', 'studio_id', 'lang', 'table', 'column', 'text') {
|
|
if ( ( defined $condition->{$col} ) && ( $condition->{$col} ne '' ) ) {
|
|
push @conditions, "`calcms_help_texts`.`$col`=?";
|
|
push @bind_values, $condition->{$col};
|
|
}
|
|
}
|
|
my $conditions = '';
|
|
$conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 );
|
|
my $query = qq{
|
|
select *
|
|
from calcms_help_texts
|
|
$conditions
|
|
};
|
|
my $entries = db::get( $dbh, $query, \@bind_values );
|
|
return $entries;
|
|
}
|
|
|
|
sub insert ($$) {
|
|
my ($config, $entry) = @_;
|
|
|
|
for my $col ('project_id', 'studio_id', 'lang', 'table', 'column', 'text') {
|
|
return undef unless defined $entry->{$col};
|
|
}
|
|
my $dbh = db::connect($config);
|
|
|
|
return db::insert( $dbh, 'calcms_help_texts', $entry );
|
|
}
|
|
|
|
sub update ($$) {
|
|
my ($config, $entry) = @_;
|
|
|
|
for my $col ('project_id', 'studio_id', 'lang', 'table', 'column', 'text') {
|
|
return undef unless defined $entry->{$col};
|
|
}
|
|
my $dbh = db::connect($config);
|
|
my @keys = sort keys %$entry;
|
|
my $values = join( ",", map { "`$_`" . '=?' } @keys);
|
|
my @bind_values = map { $entry->{$_} } @keys;
|
|
for my $col ('project_id', 'studio_id', 'lang', 'table', 'column') {
|
|
push @bind_values, $entry->{$col};
|
|
}
|
|
my $query = qq{
|
|
update calcms_help_texts
|
|
set $values
|
|
where
|
|
`calcms_help_texts`.`project_id`=?
|
|
and `calcms_help_texts`.`studio_id`=?
|
|
and `calcms_help_texts`.`lang`=?
|
|
and `calcms_help_texts`.`table`=?
|
|
and `calcms_help_texts`.`column`=?
|
|
};
|
|
return db::put( $dbh, $query, \@bind_values );
|
|
print "done\n";
|
|
}
|
|
|
|
sub delete($$) {
|
|
my ($config, $entry) = @_;
|
|
|
|
for my $col ('project_id', 'studio_id', 'lang', 'table', 'column', 'text') {
|
|
return undef unless defined $entry->{$col};
|
|
}
|
|
my $dbh = db::connect($config);
|
|
my $query = qq{
|
|
delete
|
|
from calcms_help_texts
|
|
where project_id=? and studio_id=? and lang=? and `calcms_help_texts`.`table`=? and `calcms_help_texts`.`column`=?
|
|
};
|
|
my $bind_values = [];
|
|
for my $col ('project_id', 'studio_id', 'lang', 'table', 'column') {
|
|
push @$bind_values, $entry->{$col};
|
|
}
|
|
return db::put( $dbh, $query, $bind_values );
|
|
}
|
|
|
|
#do not delete last line!
|
|
1;
|