--- loncom/interface/loncommon.pm 2009/05/21 15:43:52 1.692.4.3 +++ loncom/interface/loncommon.pm 2009/08/14 08:07:11 1.692.4.9 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.692.4.3 2009/05/21 15:43:52 raeburn Exp $ +# $Id: loncommon.pm,v 1.692.4.9 2009/08/14 08:07:11 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -407,6 +407,7 @@ sub studentbrowser_javascript { ) { return ''; } return (<<'ENDSTDBRW'); ENDSTDBRW } @@ -461,6 +463,7 @@ sub selectstudent_link { sub authorbrowser_javascript { return <<"ENDAUTHORBRW"; ENDAUTHORBRW } sub coursebrowser_javascript { my ($domainfilter,$sec_element,$formname)=@_; - my $crs_or_grp_alert = &mt('Please select the type of LON-CAPA entity - Course or Group - for which you wish to add/modify a user role'); - my $output = ' + my $crs_or_grp_alert = &mt('Please select the type of LON-CAPA entity - Course or Community - for which you wish to add/modify a user role'); + my $id_functions = &javascript_index_functions(); + my $output = ' '; + return $output; +} + +sub javascript_index_functions { + return <<"ENDJS"; + +function getFormIdByName(formname) { + for (var i=0;i -1) { + var domid = getIndexByName(formid,udom); + if (domid > -1) { + if (document.forms[formid].elements[domid].type == 'select-one') { + userdom=document.forms[formid].elements[domid].options[document.forms[formid].elements[domid].selectedIndex].value; + } + if (document.forms[formid].elements[domid].type == 'hidden') { + userdom=document.forms[formid].elements[domid].value; } } - return -1; } -ENDSTDBRW - if ($sec_element ne '') { - $output .= &setsec_javascript($sec_element,$formname); + return userdom; +} + +ENDJS + +} + +sub userbrowser_javascript { + my $id_functions = &javascript_index_functions(); + return <<"ENDUSERBRW"; + +function openuserbrowser(formname,uname,udom,ulast,ufirst,uemail,hideudom,crsdom) { + var url = '/adm/pickuser?'; + var userdom = getDomainFromSelectbox(formname,udom); + if (userdom != null) { + if (userdom != '') { + url += 'srchdom='+userdom+'&'; + } } - $output .= ' -'; - return $output; + url += 'form=' + formname + '&unameelement='+uname+ + '&udomelement='+udom+ + '&ulastelement='+ulast+ + '&ufirstelement='+ufirst+ + '&uemailelement='+uemail+ + '&hideudomelement='+hideudom+ + '&coursedom='+crsdom; + var title = 'User_Browser'; + var options = 'scrollbars=1,resizable=1,menubar=0'; + options += ',width=700,height=600'; + var stdeditbrowser = open(url,title,options,'1'); + stdeditbrowser.focus(); } +function fix_domain (formname,udom,origdom) { + var formid = getFormIdByName(formname); + if (formid > -1) { + var domid = getIndexByName(formid,udom); + var hidedomid = getIndexByName(formid,origdom); + if (hidedomid > -1) { + var fixeddom = document.forms[formid].elements[hidedomid].value; + if (domid > -1) { + var slct = document.forms[formid].elements[domid]; + if (slct.type == 'select-one') { + var i; + for (i=0;i' ."".&mt('Select Course').'' + ."'>".$linktext.'' .''; } @@ -625,6 +709,14 @@ sub selectauthor_link { &mt('Select Author').''; } +sub selectuser_link { + my ($form,$unameelem,$domelem,$lastelem,$firstelem,$emailelem,$hdomelem, + $coursedom,$linktext) = @_; + return ''.$linktext.''; +} + sub check_uncheck_jscript { my $jscript = <<"ENDSCRT"; function checkAll(field) { @@ -825,6 +917,7 @@ sub linked_select_forms { # output the javascript to do the changing my $result = ''; $result.=' END # output the initial values for the selection lists @@ -1023,7 +1117,9 @@ sub update_help_link { my $banner_link = "/adm/helpmenu?page=banner&topic=$topic&component_help=$component_help&faq=$faq&bug=$bug&origurl=$origurl&stamp=$timestamp&stayonpage=$stayOnPage"; my $output .= <<"ENDOUTPUT"; ENDOUTPUT return $output; @@ -1395,6 +1491,7 @@ sub resize_textarea_js { my $geometry = &viewport_geometry_js(); return <<"RESIZE"; RESIZE @@ -1776,7 +1874,7 @@ sub select_level_form { =pod -=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$autosubmit) +=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$onchange) Returns a string containing a ".&mt('Visible input').''; + $result.="'; return $result; } @@ -4537,9 +4634,9 @@ sub standard_css { my $sans = 'Verdana,Arial,Helvetica,sans-serif'; my $mono = 'monospace'; - my $data_table_head = $tabbg; - my $data_table_light = '#EEEEEE'; - my $data_table_dark = '#DDDDDD'; + my $data_table_head = $sidebg; + my $data_table_light = '#FAFAFA'; + my $data_table_dark = '#F0F0F0'; my $data_table_darker = '#CCCCCC'; my $data_table_highlight = '#FFFF00'; my $mail_new = '#FFBB77'; @@ -4562,6 +4659,15 @@ sub standard_css { return <'; } else { - $output=''; + $output=''. + ''; } return $output; } @@ -6156,7 +6263,7 @@ sub get_users_function { if ($env{'request.role'}=~/^(su|dc|ad|li)/) { $function='admin'; } - if (($env{'request.role'}=~/^(au|ca)/) || + if (($env{'request.role'}=~/^(au|ca|aa)/) || ($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) { $function='author'; } @@ -6936,6 +7043,7 @@ ENDSCRIPT my $output = <<"END_BLOCK"; $new_user_create - - - - - - - - - - -
$lt{'doma'}:$domform
$lt{'usr'}:$srchbysel - $srchtypesel - - $srchinsel -
-
END_BLOCK + $output .= &Apache::lonhtmlcommon::start_pick_box(). + &Apache::lonhtmlcommon::row_title($lt{'doma'}). + $domform. + &Apache::lonhtmlcommon::row_closure(). + &Apache::lonhtmlcommon::row_title($lt{'usr'}). + $srchbysel. + $srchtypesel. + ''. + $srchinsel. + &Apache::lonhtmlcommon::row_closure(1). + &Apache::lonhtmlcommon::end_pick_box(). + '
'; return $output; } @@ -7899,7 +8004,8 @@ sub csv_print_samples { $r->print(&mt('Samples').'
'.&start_data_table(). &start_data_table_header_row()); foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) { - $r->print(''.&mt('Column [_1]',($sample+1)).''); } + $r->print(''.&mt('Column [_1]',($sample+1)).''); + } $r->print(&end_data_table_header_row()); foreach my $hash (@$samples) { $r->print(&start_data_table_row()); @@ -7943,7 +8049,7 @@ sub csv_print_select_table { my ($value,$display,$defaultcol)=@{ $array_ref }; $r->print(&start_data_table_row().''.$display.''); - $r->print(''); $r->print(''); foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) { @@ -9547,8 +9653,8 @@ sub course_type { sub group_term { my $crstype = &course_type(); my %names = ( - 'Course' => 'group', - 'Group' => 'team', + 'Course' => 'group', + 'Community' => 'group', ); return $names{$crstype}; } @@ -9763,7 +9869,7 @@ sub init_user_environment { &Apache::lonnet::usertools_access($username,$domain,$tool,'reload'); } - foreach my $crstype ('official','unofficial') { + foreach my $crstype ('official','unofficial','community') { $userenv{'canrequest.'.$crstype} = &Apache::lonnet::usertools_access($username,$domain,$crstype, 'reload','requestcourses');