%#============================================================================ %# ePortal - WEB Based daily organizer %# Author - S.Rusakov %# %# Copyright (c) 2001 Sergey Rusakov. All rights reserved. %# This program is free software; you can redistribute it %# and/or modify it under the same terms as Perl itself. %# %# $Revision: 3.1 $ %# $Date: 2003/04/24 05:36:51 $ %# $Header: /home/cvsroot/ePortal/comp_root/admin/groups_edit.htm,v 3.1 2003/04/24 05:36:51 ras Exp $ %# %#---------------------------------------------------------------------------- %# %# Users group editor %# %#----------------------------------------------------------------------------   <% $dlg->dialog_start( title => pick_lang(rus => "Группа пользователей", eng => "Users group"), width => "400") %> <% $dlg->field('groupname', $obj->check_id? (RO=>1): () ) %> <% $dlg->field('groupdesc') %> <% $dlg->buttons %> <% $dlg->dialog_end %>   <& SELF:add_user &> <& SELF:show_users &> %#=== @metags once ========================================================= <%once> my ($dlg, $obj); %#=== @METAGS cleanup ========================================================= <%cleanup> ($dlg, $obj) = (); %#=== @METAGS attr ========================================================= <%attr> Title => {rus => "Группа пользователей", eng => "Users group"} %#=== @METAGS onStartRequest ==================================================== <%method onStartRequest><%perl> # # Обработка основного диалога # $obj = new ePortal::epGroup; $dlg = new ePortal::HTML::Dialog( obj => $obj); my $location = $dlg->handle_request; return $location; %#=== @METAGS show_users ==================================================== <%method show_users><%perl> return if ! $obj->check_id; my %args = $m->request_args; $args{back_url} = $dlg->{back_url}; # # Обработка удаления пользователя из группы # if ( $args{remove_user} ) { my $u = new ePortal::epUser; if ($u->restore($args{remove_user})) { $u->remove_groups($obj->groupname); } } # Clear TODO parameters delete $args{add_user}; delete $args{remove_user}; # # Выборка списка членов группы # my $users = new ePortal::epUser( SQL => "SELECT epUser.*, epUsrGrp.groupname FROM epUser LEFT JOIN epUsrGrp on epUsrGrp.username = epUser.username ", GroupBy => "epUser.username, epUser.id", Where => "epUsrGrp.groupname=?", Bind => [$obj->groupname], ); # # Prepare list object # my $list = new ePortal::HTML::List(obj => $users, class => "smallfont", state => { objid => $obj->id, back_url => $dlg->{back_url} }, width => '70%'); $list->add_column_image(); $list->add_column( id => "username", sorting => 1); $list->add_column( id => "fullname", sorting => 1); $list->add_column( id => "remove_from_group", content => sub { my $obj = shift; return plink({rus => "Удалить из группы", eng => "Remove from group"}, href => href($ENV{SCRIPT_NAME}, %args, remove_user => $obj->username) ); }); $list->handle_request; $users->restore_where($list->restore_parameters); # # Display the list # <& /item_caption.mc, title => pick_lang(rus => "Члены группы", eng => "Group members") &> <% $list->draw_list %> %#=== @metags add_user ==================================================== <%method add_user><%perl> return if ! $obj->check_id; my %args = $m->request_args; # # Construct Dialog # my $NUDLG = new ePortal::HTML::Dialog( title => pick_lang(rus => "Добавление пользователя в группу", eng => "Add user to the group"), align => "center", width => "300", formname => undef); # # Process Add new to the group # if ( $args{add_user} ) { my $u = new ePortal::epUser; if ($u->find_user($args{add_user})) { $u->add_groups($obj->groupname); } else { $m->comp('/message.mc', ErrorMessage => pick_lang( rus => "Пользователь с таким именем не найден", eng => "No such user")); } } <& /item_caption.mc, title => pick_lang(rus => "Добавление пользователей в группу", eng => "Add users to the group") &>   <% $NUDLG->dialog_start %>
<% CGI::hidden(-name => 'objid', -value => $args{objid}) %> <% CGI::hidden(-name => 'back_url', -value => $dlg->{back_url}) %> <% pick_lang(rus => "Добавить пользователя:", eng => "Add user:") %> <% CGI::textfield(-name => 'add_user', -class=>'dlgfield') %>
<% CGI::submit(-name => 'add_user_ok', -value => pick_lang(rus => "Добавить", eng => "Add"), -class=>'button') %>
<% $NUDLG->dialog_end %>