Audio-DB
view release on metacpan or search on metacpan
DB/Util/SystemConfig.pm view on Meta::CPAN
$self->print_navigation($self->build_nav_link(-class=>'admin',-action=>'display_playlist_options',
-text=>'Global Playlist Options'));
}
print start_div({-class=>'configoptions'});
print h4($self->build_nav_link(-class=>'admin',-action=>'delete_all_playlists',
-text=>'Delete All Playlists'));
}
sub add_user {
my $self = shift;
if (param('submit')) {
$self->print_navigation($self->build_nav_link(-class=>'admin',-action=>'display_user_options',
-text=>'User Configuration'),
'Add A New User (Results)');
$self->add_entry(-table => 'users',
-success_msg => span({-class=>'name'},param('first_name')
. ' ' . param('last_name')) .
' has been succesfully added to the system with the following parameters:',
-detailed => 'true');
} else {
$self->print_navigation($self->build_nav_link(-class=>'admin',-action=>'display_user_options',
-text=>'User Configuration'),
$self->build_nav_link(-class=>'admin',-action=>'add_user',
-text=>'Add A New User'));
$self->print_add_form();
}
}
sub edit_users {
my $self = shift;
if (param('submit')) {
$self->print_navigation($self->build_nav_link(-class=>'admin',-action=>'display_user_options',
-text=>'User Configuration'),
'Edit Users (Results)');
$self->process_edit_form();
} else {
$self->print_navigation($self->build_nav_link(-class=>'admin',-action=>'display_user_options',
-text=>'User Configuration'),
$self->build_nav_link(-class=>'admin',-action=>'edit_users',
-text=>'Edit Users'));
$self->print_edit_form();
}
}
sub print_add_form {
my $self = shift;
# Print out the form
print div({-class=>'actionbyline'},"Use this form to add new users to the Music Repository");
print start_div({-class=>'actioncontent'});
print startform(),
start_table(),
TR(td('first name'),td(textfield({-name=>'first_name'}))),
TR(td('last name'),td(textfield({-name=>'last_name'}))),
TR(td('email'),td(textfield({-name=>'email'}))),
TR(td('username'),td(textfield({-name=>'username'}))),
TR(td('password'),td(textfield({-name=>'password'}))),
TR(td('priviledges'),
td(popup_menu({-name=>'privs',-values=>[qw/user admin overlord/]}))),
TR(td({-colspan=>2,-align=>'right'},
submit(-name=>'submit',-label=>'Add New User'))),
end_form,
end_table;
print end_div;
}
sub print_edit_form {
my $self = shift;
my @cols = qw/First Last Email Username Password Priviledges/;
my $dbh = $self->{dbh};
my $sth = $dbh->prepare(qq{select * from users});
print div({-class=>'actionbyline'},
"Use this form to edit the information of all users simultaneously.");
print start_div({-class=>'actioncontent'});
print startform(),
start_table();
print TR(td(\@cols));
$sth->execute();
while (my $h = $sth->fetchrow_hashref) {
print
hidden(-name=>'user_id',-value=>$h->{user_id});
print
TR(td(textfield({-name=>'first_name',-value=>$h->{first_name},-size=>15})),
td(textfield({-name=>'last_name',-value=>$h->{last_name},-size=>15})),
td(textfield({-name=>'email',-value=>$h->{email},-size=>20})),
td(textfield({-name=>'username',-value=>$h->{username},-size=>10})),
td(textfield({-name=>'password',-value=>$h->{password},-size=>10})),
td(popup_menu({-name=>'privs',-values=>[qw/user admin overlord/],
-default=>$h->{privs}})));
}
print end_table;
print submit(-name=>'submit',-label=>'Update Users');
print end_div;
}
sub process_edit_form {
my $self = shift;
my $dbh = $self->{dbh};
# iterate over each param...
my @fields = qw/first_name last_name email username password privs/;
my @params = param();
my $params = { id => [ param('user_id') ],
first_name => [ param('first_name') ],
last_name => [ param('last_name') ],
email => [ param('email') ],
username => [ param('username') ],
password => [ param('password') ],
privs => [ param('privs') ] };
# Yuck, there has to be a better way
my $count = 0;
my $result;
foreach my $id (@{$params->{id}}) {
my @vals;
foreach (@fields) {
push (@vals,$_ . "=" . $dbh->quote($params->{$_}[$count]));
}
$result = $dbh->do("update users set "
. join(",",@vals)
. " where user_id=$id");
$count++;
}
# This is kind of bogus - only looks at the last record updated.
if ($result) {
print div({-class=>'success'},"The users have been succesfully updated.");
} else {
$self->print_sql_error($dbh->errstr);
}
}
sub user_summary {
my $self = shift;
$self->print_navigation($self->build_nav_link(-class=>'admin',-action=>'display_user_options',
-text=>'User Configuration'),
$self->build_nav_link(-class=>'admin',-action=>'user_summary',
-text=>'View All Users'));
my $dbh = $self->{dbh};
my $sth = $dbh->prepare(qq{select * from users ORDER BY last_name});
$sth->execute();
my @cols = ('First','Last','Email','Username','Status','Joined','Last Login','Songs Played');
my @keys = ('first_name','last_name','email','username','privs','joined','last_access','songs_played');
my $rows = [];
while (my $h = $sth->fetchrow_hashref) {
( run in 0.893 second using v1.01-cache-2.11-cpan-364913b4093 )