version 1.692.4.8, 2009/08/14 07:52:03
|
version 1.702, 2008/12/03 00:09:56
|
Line 406 sub studentbrowser_javascript {
|
Line 406 sub studentbrowser_javascript {
|
|| ($env{'request.role'}=~/^(au|dc|su)/) |
|| ($env{'request.role'}=~/^(au|dc|su)/) |
) { return ''; } |
) { return ''; } |
return (<<'ENDSTDBRW'); |
return (<<'ENDSTDBRW'); |
<script type="text/javascript" language="Javascript"> |
<script type="text/javascript" language="Javascript" > |
// <![CDATA[ |
|
var stdeditbrowser; |
var stdeditbrowser; |
function openstdbrowser(formname,uname,udom,roleflag,ignorefilter,courseadvonly) { |
function openstdbrowser(formname,uname,udom,roleflag,ignorefilter) { |
var url = '/adm/pickstudent?'; |
var url = '/adm/pickstudent?'; |
var filter; |
var filter; |
if (!ignorefilter) { |
if (!ignorefilter) { |
Line 423 sub studentbrowser_javascript {
|
Line 422 sub studentbrowser_javascript {
|
url += 'form=' + formname + '&unameelement='+uname+ |
url += 'form=' + formname + '&unameelement='+uname+ |
'&udomelement='+udom; |
'&udomelement='+udom; |
if (roleflag) { url+="&roles=1"; } |
if (roleflag) { url+="&roles=1"; } |
if (courseadvonly) { url+="&courseadvonly=1"; } |
|
var title = 'Student_Browser'; |
var title = 'Student_Browser'; |
var options = 'scrollbars=1,resizable=1,menubar=0'; |
var options = 'scrollbars=1,resizable=1,menubar=0'; |
options += ',width=700,height=600'; |
options += ',width=700,height=600'; |
stdeditbrowser = open(url,title,options,'1'); |
stdeditbrowser = open(url,title,options,'1'); |
stdeditbrowser.focus(); |
stdeditbrowser.focus(); |
} |
} |
// ]]> |
|
</script> |
</script> |
ENDSTDBRW |
ENDSTDBRW |
} |
} |
|
|
sub selectstudent_link { |
sub selectstudent_link { |
my ($form,$unameele,$udomele,$courseadvonly)=@_; |
my ($form,$unameele,$udomele)=@_; |
my $callargs = "'".$form."','".$unameele."','".$udomele."'"; |
|
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
if (!&Apache::lonnet::allowed('srm',$env{'request.course.id'}) |
if (!&Apache::lonnet::allowed('srm',$env{'request.course.id'}) |
&& !&Apache::lonnet::allowed('srm',$env{'request.course.id'}. |
&& !&Apache::lonnet::allowed('srm',$env{'request.course.id'}. |
'/'.$env{'request.course.sec'})) { |
'/'.$env{'request.course.sec'})) { |
return ''; |
return ''; |
} |
} |
if ($courseadvonly) { |
return "<a href='".'javascript:openstdbrowser("'.$form.'","'.$unameele. |
$callargs .= ",'',1,1"; |
'","'.$udomele.'");'."'>".&mt('Select User')."</a>"; |
} |
|
return '<span class="LC_nobreak">'. |
|
'<a href="javascript:openstdbrowser('.$callargs.');">'. |
|
&mt('Select User').'</a></span>'; |
|
} |
} |
if ($env{'request.role'}=~/^(au|dc|su)/) { |
if ($env{'request.role'}=~/^(au|dc|su)/) { |
$callargs .= ",1"; |
return "<a href='".'javascript:openstdbrowser("'.$form.'","'.$unameele. |
return '<span class="LC_nobreak">'. |
'","'.$udomele.'",1);'."'>".&mt('Select User')."</a>"; |
'<a href="javascript:openstdbrowser('.$callargs.');">'. |
|
&mt('Select User').'</a></span>'; |
|
} |
} |
return ''; |
return ''; |
} |
} |
Line 463 sub selectstudent_link {
|
Line 453 sub selectstudent_link {
|
sub authorbrowser_javascript { |
sub authorbrowser_javascript { |
return <<"ENDAUTHORBRW"; |
return <<"ENDAUTHORBRW"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
|
var stdeditbrowser; |
var stdeditbrowser; |
|
|
function openauthorbrowser(formname,udom) { |
function openauthorbrowser(formname,udom) { |
Line 475 function openauthorbrowser(formname,udom
|
Line 464 function openauthorbrowser(formname,udom
|
stdeditbrowser = open(url,title,options,'1'); |
stdeditbrowser = open(url,title,options,'1'); |
stdeditbrowser.focus(); |
stdeditbrowser.focus(); |
} |
} |
// ]]> |
|
</script> |
</script> |
ENDAUTHORBRW |
ENDAUTHORBRW |
} |
} |
|
|
sub coursebrowser_javascript { |
sub coursebrowser_javascript { |
my ($domainfilter,$sec_element,$formname)=@_; |
my ($domainfilter,$sec_element,$formname)=@_; |
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 $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 $output = ' |
<script type="text/javascript" language="JavaScript"> |
<script type="text/javascript"> |
// <![CDATA[ |
|
var stdeditbrowser;'."\n"; |
var stdeditbrowser;'."\n"; |
$output .= <<"ENDSTDBRW"; |
$output .= <<"ENDSTDBRW"; |
function opencrsbrowser(formname,uname,udom,desc,extra_element,multflag,crstype) { |
function opencrsbrowser(formname,uname,udom,desc,extra_element,multflag,crstype) { |
Line 524 sub coursebrowser_javascript {
|
Line 512 sub coursebrowser_javascript {
|
} |
} |
} |
} |
} |
} |
if (formname == 'ccrs') { |
|
var ownername = document.forms[formid].ccuname.value; |
|
var ownerdom = document.forms[formid].ccdomain.options[document.forms[formid].ccdomain.selectedIndex].value; |
|
url += '&cloner='+ownername+':'+ownerdom; |
|
} |
|
if (multflag !=null && multflag != '') { |
if (multflag !=null && multflag != '') { |
url += '&multiple='+multflag; |
url += '&multiple='+multflag; |
} |
} |
if (crstype == 'Course/Community') { |
if (crstype == 'Course/Group') { |
if (formname == 'cu') { |
if (formname == 'cu') { |
crstype = document.cu.crstype.options[document.cu.crstype.selectedIndex].value; |
crstype = document.cu.crstype.options[document.cu.crstype.selectedIndex].value; |
if (crstype == "") { |
if (crstype == "") { |
Line 573 ENDSTDBRW
|
Line 556 ENDSTDBRW
|
$output .= &setsec_javascript($sec_element,$formname); |
$output .= &setsec_javascript($sec_element,$formname); |
} |
} |
$output .= ' |
$output .= ' |
// ]]> |
|
</script>'; |
</script>'; |
return $output; |
return $output; |
} |
} |
Line 620 function setSect(sectionlist) {
|
Line 602 function setSect(sectionlist) {
|
|
|
sub selectcourse_link { |
sub selectcourse_link { |
my ($form,$unameele,$udomele,$desc,$extra_element,$multflag,$selecttype)=@_; |
my ($form,$unameele,$udomele,$desc,$extra_element,$multflag,$selecttype)=@_; |
my $linktext = &mt('Select Course'); |
return "<a href='".'javascript:opencrsbrowser("'.$form.'","'.$unameele. |
if ($selecttype eq 'Community') { |
'","'.$udomele.'","'.$desc.'","'.$extra_element.'","'.$multflag.'","'.$selecttype.'");'."'>".&mt('Select Course')."</a>"; |
$linktext = &mt('Select Community'); |
|
} |
|
return '<span class="LC_nobreak">' |
|
."<a href='" |
|
.'javascript:opencrsbrowser("'.$form.'","'.$unameele |
|
.'","'.$udomele.'","'.$desc.'","'.$extra_element |
|
.'","'.$multflag.'","'.$selecttype.'");' |
|
."'>".$linktext.'</a>' |
|
.'</span>'; |
|
} |
} |
|
|
sub selectauthor_link { |
sub selectauthor_link { |
Line 737 sub select_datelocale {
|
Line 710 sub select_datelocale {
|
return $output; |
return $output; |
} |
} |
|
|
sub select_language { |
|
my ($name,$selected,$includeempty) = @_; |
|
my %langchoices; |
|
if ($includeempty) { |
|
%langchoices = ('' => 'No language preference'); |
|
} |
|
foreach my $id (&languageids()) { |
|
my $code = &supportedlanguagecode($id); |
|
if ($code) { |
|
$langchoices{$code} = &plainlanguagedescription($id); |
|
} |
|
} |
|
return &select_form($selected,$name,%langchoices); |
|
} |
|
|
|
=pod |
=pod |
|
|
=item * &linked_select_forms(...) |
=item * &linked_select_forms(...) |
Line 838 sub linked_select_forms {
|
Line 796 sub linked_select_forms {
|
my $first = "document.$formname.$firstselectname"; |
my $first = "document.$formname.$firstselectname"; |
# output the javascript to do the changing |
# output the javascript to do the changing |
my $result = ''; |
my $result = ''; |
$result.='<script type="text/javascript" language="JavaScript">'."\n"; |
$result.="<script type=\"text/javascript\">\n"; |
$result.="// <![CDATA[\n"; |
|
$result.="var select2data = new Object();\n"; |
$result.="var select2data = new Object();\n"; |
$" = '","'; |
$" = '","'; |
my $debug = ''; |
my $debug = ''; |
Line 885 function select1_changed() {
|
Line 842 function select1_changed() {
|
} |
} |
} |
} |
} |
} |
// ]]> |
|
</script> |
</script> |
END |
END |
# output the initial values for the selection lists |
# output the initial values for the selection lists |
Line 976 sub help_open_topic {
|
Line 932 sub help_open_topic {
|
# Add the graphic |
# Add the graphic |
my $title = &mt('Online Help'); |
my $title = &mt('Online Help'); |
my $helpicon=&lonhttpdurl("/adm/help/help.png"); |
my $helpicon=&lonhttpdurl("/adm/help/help.png"); |
$template .= '<a target="_top" href="'.$link.'" title="'.$title.'">'. |
$template .= <<"ENDTEMPLATE"; |
'<img src="'.$helpicon.'" border="0" alt="'.&mt('Help: [_1]',$topic). |
<a target="_top" href="$link" title="$title"><img src="$helpicon" border="0" alt="(Help: $topic)" /></a> |
'" title="'.$title.'" /></a>'; |
ENDTEMPLATE |
if ($text ne '') { |
if ($text ne '') { $template.='</span></td></tr></table>' }; |
$template.='</span></td></tr></table>'; |
|
} |
|
return $template; |
return $template; |
|
|
} |
} |
Line 989 sub help_open_topic {
|
Line 943 sub help_open_topic {
|
# This is a quicky function for Latex cheatsheet editing, since it |
# This is a quicky function for Latex cheatsheet editing, since it |
# appears in at least four places |
# appears in at least four places |
sub helpLatexCheatsheet { |
sub helpLatexCheatsheet { |
my ($topic,$text,$not_author) = @_; |
my $other = shift; |
my $out; |
|
my $addOther = ''; |
my $addOther = ''; |
if ($topic) { |
if ($other) { |
$addOther = &Apache::loncommon::help_open_topic($topic,$text, |
$addOther = Apache::loncommon::help_open_topic($other, shift, |
undef, undef, 600) . |
undef, undef, 600) . |
'</td><td>'; |
'</td><td>'; |
} |
} |
$out = '<table><tr><td>'. |
return '<table><tr><td>'. |
$addOther . |
$addOther . |
&Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'), |
&Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'), |
undef,undef,600). |
undef,undef,600) |
'</td><td>'. |
.'</td><td>'. |
&Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'), |
&Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'), |
undef,undef,600). |
undef,undef,600) |
'</td>'; |
.'</td><td>'. |
unless ($not_author) { |
&Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'), |
$out .= '<td>'. |
undef,undef,600) |
&Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'), |
.'</td></tr></table>'; |
undef,undef,600). |
|
'</td>'; |
|
} |
|
$out .= '</tr></table>'; |
|
return $out; |
|
} |
} |
|
|
sub general_help { |
sub general_help { |
Line 1039 sub update_help_link {
|
Line 987 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 $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"; |
my $output .= <<"ENDOUTPUT"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
|
banner_link = '$banner_link'; |
banner_link = '$banner_link'; |
// ]]> |
|
</script> |
</script> |
ENDOUTPUT |
ENDOUTPUT |
return $output; |
return $output; |
Line 1413 sub resize_textarea_js {
|
Line 1359 sub resize_textarea_js {
|
my $geometry = &viewport_geometry_js(); |
my $geometry = &viewport_geometry_js(); |
return <<"RESIZE"; |
return <<"RESIZE"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
|
$geometry |
$geometry |
|
|
function getX(element) { |
function getX(element) { |
Line 1452 function resize_textarea(textarea_id,bot
|
Line 1397 function resize_textarea(textarea_id,bot
|
} |
} |
textarea.style.height=new_height+'px'; |
textarea.style.height=new_height+'px'; |
} |
} |
// ]]> |
|
</script> |
</script> |
RESIZE |
RESIZE |
|
|
Line 1685 sub multiple_select_form {
|
Line 1629 sub multiple_select_form {
|
$size = scalar(keys(%$hash)); |
$size = scalar(keys(%$hash)); |
} |
} |
} |
} |
$output.="\n".'<select name="'.$name.'" size="'.$size.'" multiple="multiple">'; |
$output.="\n<select name='$name' size='$size' multiple='1'>"; |
my @order; |
my @order; |
if (ref($order) eq 'ARRAY') { |
if (ref($order) eq 'ARRAY') { |
@order = @{$order}; |
@order = @{$order}; |
Line 1742 sub select_form {
|
Line 1686 sub select_form {
|
sub display_filter { |
sub display_filter { |
if (!$env{'form.show'}) { $env{'form.show'}=10; } |
if (!$env{'form.show'}) { $env{'form.show'}=10; } |
if (!$env{'form.displayfilter'}) { $env{'form.displayfilter'}='currentfolder'; } |
if (!$env{'form.displayfilter'}) { $env{'form.displayfilter'}='currentfolder'; } |
return '<span class="LC_nobreak"><label>'.&mt('Records [_1]', |
return '<nobr><label>'.&mt('Records [_1]', |
&Apache::lonmeta::selectbox('show',$env{'form.show'},undef, |
&Apache::lonmeta::selectbox('show',$env{'form.show'},undef, |
(&mt('all'),10,20,50,100,1000,10000))). |
(&mt('all'),10,20,50,100,1000,10000))). |
'</label></span> <span class="LC_nobreak">'. |
'</label></nobr> <nobr>'. |
&mt('Filter [_1]', |
&mt('Filter [_1]', |
&select_form($env{'form.displayfilter'}, |
&select_form($env{'form.displayfilter'}, |
'displayfilter', |
'displayfilter', |
('currentfolder' => 'Current folder/page', |
('currentfolder' => 'Current folder/page', |
'containing' => 'Containing phrase', |
'containing' => 'Containing phrase', |
'none' => 'None'))). |
'none' => 'None'))). |
'<input type="text" name="containingphrase" size="30" value="'.&HTML::Entities::encode($env{'form.containingphrase'}).'" /></span>'; |
'<input type="text" name="containingphrase" size="30" value="'.&HTML::Entities::encode($env{'form.containingphrase'}).'" /></nobr>'; |
} |
} |
|
|
sub gradeleveldescription { |
sub gradeleveldescription { |
Line 1796 sub select_level_form {
|
Line 1740 sub select_level_form {
|
|
|
=pod |
=pod |
|
|
=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$onchange) |
=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc) |
|
|
Returns a string containing a <select name='$name' size='1'> form to |
Returns a string containing a <select name='$name' size='1'> form to |
allow a user to select the domain to preform an operation in. |
allow a user to select the domain to preform an operation in. |
Line 1805 See loncreateuser.pm for an example invo
|
Line 1749 See loncreateuser.pm for an example invo
|
If the $includeempty flag is set, it also includes an empty choice ("no domain |
If the $includeempty flag is set, it also includes an empty choice ("no domain |
selected"); |
selected"); |
|
|
If the $showdomdesc flag is set, the domain name is followed by the domain description. |
If the $showdomdesc flag is set, the domain name is followed by the domain description. |
|
|
The optional $onchange argument specifies what should occur if the domain selector is changed, e.g., 'this.form.submit()' if the form is to be automatically submitted. |
|
|
|
=cut |
=cut |
|
|
#------------------------------------------- |
#------------------------------------------- |
sub select_dom_form { |
sub select_dom_form { |
my ($defdom,$name,$includeempty,$showdomdesc,$onchange) = @_; |
my ($defdom,$name,$includeempty,$showdomdesc) = @_; |
if ($onchange) { |
|
$onchange = ' onchange="'.$onchange.'"'; |
|
} |
|
my @domains = sort {lc($a) cmp lc($b)} (&Apache::lonnet::all_domains()); |
my @domains = sort {lc($a) cmp lc($b)} (&Apache::lonnet::all_domains()); |
if ($includeempty) { @domains=('',@domains); } |
if ($includeempty) { @domains=('',@domains); } |
my $selectdomain = "<select name=\"$name\" size=\"1\"$onchange>\n"; |
my $selectdomain = "<select name=\"$name\" size=\"1\">\n"; |
foreach my $dom (@domains) { |
foreach my $dom (@domains) { |
$selectdomain.="<option value=\"$dom\" ". |
$selectdomain.="<option value=\"$dom\" ". |
($dom eq $defdom ? 'selected="selected" ' : '').'>'.$dom; |
($dom eq $defdom ? 'selected="selected" ' : '').'>'.$dom; |
Line 1875 sub home_server_form_item {
|
Line 1814 sub home_server_form_item {
|
if ($numlib > 1) { |
if ($numlib > 1) { |
$result .= '<select name="'.$name.'" />'."\n"; |
$result .= '<select name="'.$name.'" />'."\n"; |
if ($default) { |
if ($default) { |
$result .= '<option value="default" selected="selected">'.&mt('default'). |
$result .= '<option value="default" selected>'.&mt('default'). |
'</option>'."\n"; |
'</option>'."\n"; |
} |
} |
foreach my $hostid (sort(keys(%servers))) { |
foreach my $hostid (sort(keys(%servers))) { |
Line 2170 sub authform_kerberos {
|
Line 2109 sub authform_kerberos {
|
$autharg,$jscall); |
$autharg,$jscall); |
my ($authnum,%can_assign) = &get_assignable_auth($in{'domain'}); |
my ($authnum,%can_assign) = &get_assignable_auth($in{'domain'}); |
if ($in{'kerb_def_auth'} eq 'krb5') { |
if ($in{'kerb_def_auth'} eq 'krb5') { |
$check5 = ' checked="checked"'; |
$check5 = ' checked="on"'; |
} else { |
} else { |
$check4 = ' checked="checked"'; |
$check4 = ' checked="on"'; |
} |
} |
$krbarg = $in{'kerb_def_dom'}; |
$krbarg = $in{'kerb_def_dom'}; |
if (defined($in{'curr_authtype'})) { |
if (defined($in{'curr_authtype'})) { |
if ($in{'curr_authtype'} eq 'krb') { |
if ($in{'curr_authtype'} eq 'krb') { |
$krbcheck = ' checked="checked"'; |
$krbcheck = ' checked="on"'; |
if (defined($in{'mode'})) { |
if (defined($in{'mode'})) { |
if ($in{'mode'} eq 'modifyuser') { |
if ($in{'mode'} eq 'modifyuser') { |
$krbcheck = ''; |
$krbcheck = ''; |
Line 2185 sub authform_kerberos {
|
Line 2124 sub authform_kerberos {
|
} |
} |
if (defined($in{'curr_kerb_ver'})) { |
if (defined($in{'curr_kerb_ver'})) { |
if ($in{'curr_krb_ver'} eq '5') { |
if ($in{'curr_krb_ver'} eq '5') { |
$check5 = ' checked="checked"'; |
$check5 = ' checked="on"'; |
$check4 = ''; |
$check4 = ''; |
} else { |
} else { |
$check4 = ' checked="checked"'; |
$check4 = ' checked="on"'; |
$check5 = ''; |
$check5 = ''; |
} |
} |
} |
} |
Line 2209 sub authform_kerberos {
|
Line 2148 sub authform_kerberos {
|
} |
} |
} else { |
} else { |
if ($authnum == 1) { |
if ($authnum == 1) { |
$authtype = '<input type="hidden" name="login" value="krb" />'; |
$authtype = '<input type="hidden" name="login" value="krb">'; |
} |
} |
} |
} |
if (!$can_assign{'krb4'} && !$can_assign{'krb5'}) { |
if (!$can_assign{'krb4'} && !$can_assign{'krb5'}) { |
Line 2218 sub authform_kerberos {
|
Line 2157 sub authform_kerberos {
|
if (defined($in{'mode'})) { |
if (defined($in{'mode'})) { |
if ($in{'mode'} eq 'modifycourse') { |
if ($in{'mode'} eq 'modifycourse') { |
if ($authnum == 1) { |
if ($authnum == 1) { |
$authtype = '<input type="hidden" name="login" value="krb" />'; |
$authtype = '<input type="hidden" name="login" value="krb">'; |
} |
} |
} |
} |
} |
} |
Line 2279 sub authform_internal{
|
Line 2218 sub authform_internal{
|
if (defined($in{'curr_authtype'})) { |
if (defined($in{'curr_authtype'})) { |
if ($in{'curr_authtype'} eq 'int') { |
if ($in{'curr_authtype'} eq 'int') { |
if ($can_assign{'int'}) { |
if ($can_assign{'int'}) { |
$intcheck = 'checked="checked" '; |
$intcheck = 'checked="on" '; |
if (defined($in{'mode'})) { |
if (defined($in{'mode'})) { |
if ($in{'mode'} eq 'modifyuser') { |
if ($in{'mode'} eq 'modifyuser') { |
$intcheck = ''; |
$intcheck = ''; |
Line 2295 sub authform_internal{
|
Line 2234 sub authform_internal{
|
} |
} |
} else { |
} else { |
if ($authnum == 1) { |
if ($authnum == 1) { |
$authtype = '<input type="hidden" name="login" value="int" />'; |
$authtype = '<input type="hidden" name="login" value="int">'; |
} |
} |
} |
} |
if (!$can_assign{'int'}) { |
if (!$can_assign{'int'}) { |
Line 2304 sub authform_internal{
|
Line 2243 sub authform_internal{
|
if (defined($in{'mode'})) { |
if (defined($in{'mode'})) { |
if ($in{'mode'} eq 'modifycourse') { |
if ($in{'mode'} eq 'modifycourse') { |
if ($authnum == 1) { |
if ($authnum == 1) { |
$authtype = '<input type="hidden" name="login" value="int" />'; |
$authtype = '<input type="hidden" name="login" value="int">'; |
} |
} |
} |
} |
} |
} |
Line 2319 sub authform_internal{
|
Line 2258 sub authform_internal{
|
$result = &mt |
$result = &mt |
('[_1] Internally authenticated (with initial password [_2])', |
('[_1] Internally authenticated (with initial password [_2])', |
'<label>'.$authtype,'</label>'.$autharg); |
'<label>'.$authtype,'</label>'.$autharg); |
$result.="<label><input type=\"checkbox\" name=\"visible\" onclick='if (this.checked) { this.form.intarg.type=\"text\" } else { this.form.intarg.type=\"password\" }' />".&mt('Visible input').'</label>'; |
$result.="<label><input type=\"checkbox\" name=\"visible\" onClick='if (this.checked) { this.form.intarg.type=\"text\" } else { this.form.intarg.type=\"password\" }' />".&mt('Visible input').'</label>'; |
return $result; |
return $result; |
} |
} |
|
|
Line 2334 sub authform_local{
|
Line 2273 sub authform_local{
|
if (defined($in{'curr_authtype'})) { |
if (defined($in{'curr_authtype'})) { |
if ($in{'curr_authtype'} eq 'loc') { |
if ($in{'curr_authtype'} eq 'loc') { |
if ($can_assign{'loc'}) { |
if ($can_assign{'loc'}) { |
$loccheck = 'checked="checked" '; |
$loccheck = 'checked="on" '; |
if (defined($in{'mode'})) { |
if (defined($in{'mode'})) { |
if ($in{'mode'} eq 'modifyuser') { |
if ($in{'mode'} eq 'modifyuser') { |
$loccheck = ''; |
$loccheck = ''; |
Line 2350 sub authform_local{
|
Line 2289 sub authform_local{
|
} |
} |
} else { |
} else { |
if ($authnum == 1) { |
if ($authnum == 1) { |
$authtype = '<input type="hidden" name="login" value="loc" />'; |
$authtype = '<input type="hidden" name="login" value="loc">'; |
} |
} |
} |
} |
if (!$can_assign{'loc'}) { |
if (!$can_assign{'loc'}) { |
Line 2359 sub authform_local{
|
Line 2298 sub authform_local{
|
if (defined($in{'mode'})) { |
if (defined($in{'mode'})) { |
if ($in{'mode'} eq 'modifycourse') { |
if ($in{'mode'} eq 'modifycourse') { |
if ($authnum == 1) { |
if ($authnum == 1) { |
$authtype = '<input type="hidden" name="login" value="loc" />'; |
$authtype = '<input type="hidden" name="login" value="loc">'; |
} |
} |
} |
} |
} |
} |
Line 2388 sub authform_filesystem{
|
Line 2327 sub authform_filesystem{
|
if (defined($in{'curr_authtype'})) { |
if (defined($in{'curr_authtype'})) { |
if ($in{'curr_authtype'} eq 'fsys') { |
if ($in{'curr_authtype'} eq 'fsys') { |
if ($can_assign{'fsys'}) { |
if ($can_assign{'fsys'}) { |
$fsyscheck = 'checked="checked" '; |
$fsyscheck = 'checked="on" '; |
if (defined($in{'mode'})) { |
if (defined($in{'mode'})) { |
if ($in{'mode'} eq 'modifyuser') { |
if ($in{'mode'} eq 'modifyuser') { |
$fsyscheck = ''; |
$fsyscheck = ''; |
Line 2401 sub authform_filesystem{
|
Line 2340 sub authform_filesystem{
|
} |
} |
} else { |
} else { |
if ($authnum == 1) { |
if ($authnum == 1) { |
$authtype = '<input type="hidden" name="login" value="fsys" />'; |
$authtype = '<input type="hidden" name="login" value="fsys">'; |
} |
} |
} |
} |
if (!$can_assign{'fsys'}) { |
if (!$can_assign{'fsys'}) { |
Line 2410 sub authform_filesystem{
|
Line 2349 sub authform_filesystem{
|
if (defined($in{'mode'})) { |
if (defined($in{'mode'})) { |
if ($in{'mode'} eq 'modifycourse') { |
if ($in{'mode'} eq 'modifycourse') { |
if ($authnum == 1) { |
if ($authnum == 1) { |
$authtype = '<input type="hidden" name="login" value="fsys" />'; |
$authtype = '<input type="hidden" name="login" value="fsys">'; |
} |
} |
} |
} |
} |
} |
Line 2778 sub flush_email_cache {
|
Line 2717 sub flush_email_cache {
|
&Apache::lonnet::devalidate_cache_new('emailscache',$id); |
&Apache::lonnet::devalidate_cache_new('emailscache',$id); |
} |
} |
|
|
# -------------------------------------------------------------------- getlangs |
|
|
|
=pod |
|
|
|
=item * &getlangs($uname,$udom) |
|
|
|
Gets a user's language preference and returns it as a hash with key: |
|
language. |
|
|
|
=cut |
|
|
|
|
|
sub getlangs { |
|
my ($uname,$udom) = @_; |
|
if (!$udom) { $udom =$env{'user.domain'}; } |
|
if (!$uname) { $uname=$env{'user.name'}; } |
|
my $id=$uname.':'.$udom; |
|
my ($langs,$cached)=&Apache::lonnet::is_cached_new('userlangs',$id); |
|
if ($cached) { |
|
return %{$langs}; |
|
} else { |
|
my %loadlangs=&Apache::lonnet::get('environment',['languages'], |
|
$udom,$uname); |
|
&Apache::lonnet::do_cache_new('userlangs',$id,\%loadlangs); |
|
return %loadlangs; |
|
} |
|
} |
|
|
|
sub flush_langs_cache { |
|
my ($uname,$udom)=@_; |
|
if (!$udom) { $udom =$env{'user.domain'}; } |
|
if (!$uname) { $uname=$env{'user.name'}; } |
|
return if ($udom eq 'public' && $uname eq 'public'); |
|
my $id=$uname.':'.$udom; |
|
&Apache::lonnet::devalidate_cache_new('userlangs',$id); |
|
} |
|
|
|
# ------------------------------------------------------------------ Screenname |
# ------------------------------------------------------------------ Screenname |
|
|
=pod |
=pod |
Line 2833 sub screenname {
|
Line 2735 sub screenname {
|
return $names{'screenname'}; |
return $names{'screenname'}; |
} |
} |
|
|
# ------------------------------------------------------------- Confirm Wrapper |
|
=pod |
|
|
|
=item confirmwrapper |
|
|
|
Wrap messages about completion of operation in box |
|
|
|
=cut |
|
|
|
sub confirmwrapper { |
|
my ($message)=@_; |
|
if ($message) { |
|
return "\n".'<div class="LC_confirm_box">'."\n" |
|
.$message."\n" |
|
.'</div>'."\n"; |
|
} else { |
|
return $message; |
|
} |
|
} |
|
|
|
# ------------------------------------------------------------- Message Wrapper |
# ------------------------------------------------------------- Message Wrapper |
|
|
Line 2878 sub aboutmewrapper {
|
Line 2761 sub aboutmewrapper {
|
return; |
return; |
} |
} |
return '<a href="/adm/'.$domain.'/'.$username.'/aboutme"'. |
return '<a href="/adm/'.$domain.'/'.$username.'/aboutme"'. |
($target?' target="$target"':'').' title="'.&mt("View this user's personal information page").'">'.$link.'</a>'; |
($target?' target="$target"':'').' title="'.&mt("View this user's personal page").'">'.$link.'</a>'; |
} |
} |
|
|
# ------------------------------------------------------------ Syllabus Wrapper |
# ------------------------------------------------------------ Syllabus Wrapper |
Line 2913 sub track_student_link {
|
Line 2796 sub track_student_link {
|
&help_open_topic('View_recent_activity'); |
&help_open_topic('View_recent_activity'); |
} |
} |
|
|
sub slot_reservations_link { |
|
my ($linktext,$sname,$sdom,$target) = @_; |
|
my $link ="/adm/slotrequest?command=showresv&origin=aboutme"; |
|
my $title = 'View slot reservation history'; |
|
if (defined($sname) && $sname !~ /^\s*$/ && |
|
defined($sdom) && $sdom !~ /^\s*$/) { |
|
$link .= "&uname=$sname&udom=$sdom"; |
|
$title .= ' of this student'; |
|
} |
|
if (defined($target) && $target !~ /^\s*$/) { |
|
$target = qq{target="$target"}; |
|
} else { |
|
$target = ''; |
|
} |
|
$title = &mt($title); |
|
$linktext = &mt($linktext); |
|
return qq{<a href="$link" title="$title" $target>$linktext</a>}; |
|
# FIXME uncomment when help item created: &help_open_topic('Slot_Reservation_History'); |
|
|
|
} |
|
|
|
# ===================================================== Display a student photo |
# ===================================================== Display a student photo |
|
|
|
|
Line 3171 sub languages {
|
Line 3033 sub languages {
|
return $preferred_possibilities[0]; |
return $preferred_possibilities[0]; |
} |
} |
|
|
sub user_lang { |
|
my ($touname,$toudom,$fromcid) = @_; |
|
my @userlangs; |
|
if (($fromcid ne '') && ($env{'course.'.$fromcid.'.languages'} ne '')) { |
|
@userlangs=(@userlangs,split(/\s*(\,|\;|\:)\s*/, |
|
$env{'course.'.$fromcid.'.languages'})); |
|
} else { |
|
my %langhash = &getlangs($touname,$toudom); |
|
if ($langhash{'languages'} ne '') { |
|
@userlangs = split(/\s*(\,|\;|\:)\s*/,$langhash{'languages'}); |
|
} else { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($toudom); |
|
if ($domdefs{'lang_def'} ne '') { |
|
@userlangs = ($domdefs{'lang_def'}); |
|
} |
|
} |
|
} |
|
my @languages=&Apache::lonlocal::get_genlanguages(@userlangs); |
|
my $user_lh = Apache::localize->get_handle(@languages); |
|
return $user_lh; |
|
} |
|
|
|
############################################################### |
############################################################### |
## Student Answer Attempts ## |
## Student Answer Attempts ## |
############################################################### |
############################################################### |
Line 3331 sub relative_to_absolute {
|
Line 3171 sub relative_to_absolute {
|
} |
} |
$thisdir=~s-/[^/]*$--; |
$thisdir=~s-/[^/]*$--; |
foreach my $link (@rlinks) { |
foreach my $link (@rlinks) { |
unless (($link=~/^https?\:\/\//i) || |
unless (($link=~/^http:\/\//i) || |
($link=~/^\//) || |
($link=~/^\//) || |
($link=~/^javascript:/i) || |
($link=~/^javascript:/i) || |
($link=~/^mailto:/i) || |
($link=~/^mailto:/i) || |
Line 3908 sub blocking_status {
|
Line 3748 sub blocking_status {
|
&Apache::lonnet::coursedescription($course); |
&Apache::lonnet::coursedescription($course); |
$coursedesc = $courseinfo{'description'}; |
$coursedesc = $courseinfo{'description'}; |
} |
} |
$category = "Group portfolio files in the course '$coursedesc'"; |
$category = "Group files in the course '$coursedesc'"; |
} else { |
} else { |
$category = 'Portfolio files belonging to '; |
$category = 'Portfolio files belonging to '; |
if ($env{'user.name'} eq 'public' && |
if ($env{'user.name'} eq 'public' && |
Line 4042 sub get_domainconf {
|
Line 3882 sub get_domainconf {
|
foreach my $key (keys(%{$domconfig{'login'}})) { |
foreach my $key (keys(%{$domconfig{'login'}})) { |
if (ref($domconfig{'login'}{$key}) eq 'HASH') { |
if (ref($domconfig{'login'}{$key}) eq 'HASH') { |
foreach my $img (keys(%{$domconfig{'login'}{$key}})) { |
foreach my $img (keys(%{$domconfig{'login'}{$key}})) { |
$designhash{$udom.'.login.'.$key.'_'.$img} = |
$designhash{$udom.'.login.'.$key.'_'.$img} = |
$domconfig{'login'}{$key}{$img}; |
$domconfig{'login'}{$key}{$img}; |
} |
} |
} else { |
} else { |
Line 4269 sub bodytag {
|
Line 4109 sub bodytag {
|
my $font = &designparm($function.'.font',$domain); |
my $font = &designparm($function.'.font',$domain); |
my $pgbg = $bgcolor || &designparm($function.'.pgbg',$domain); |
my $pgbg = $bgcolor || &designparm($function.'.pgbg',$domain); |
|
|
my %design = ( 'style' => 'margin-top: 0', |
my %design = ( 'style' => 'margin-top: 0px', |
'bgcolor' => $pgbg, |
'bgcolor' => $pgbg, |
'text' => $font, |
'text' => $font, |
'alink' => &designparm($function.'.alink',$domain), |
'alink' => &designparm($function.'.alink',$domain), |
Line 4556 sub standard_css {
|
Line 4396 sub standard_css {
|
|
|
my $sans = 'Verdana,Arial,Helvetica,sans-serif'; |
my $sans = 'Verdana,Arial,Helvetica,sans-serif'; |
my $mono = 'monospace'; |
my $mono = 'monospace'; |
my $data_table_head = $sidebg; |
my $data_table_head = $tabbg; |
my $data_table_light = '#FAFAFA'; |
my $data_table_light = '#EEEEEE'; |
my $data_table_dark = '#F0F0F0'; |
my $data_table_dark = '#DDDDDD'; |
my $data_table_darker = '#CCCCCC'; |
my $data_table_darker = '#CCCCCC'; |
my $data_table_highlight = '#FFFF00'; |
my $data_table_highlight = '#FFFF00'; |
my $mail_new = '#FFBB77'; |
my $mail_new = '#FFBB77'; |
Line 4571 sub standard_css {
|
Line 4411 sub standard_css {
|
my $mail_other_hover = '#669999'; |
my $mail_other_hover = '#669999'; |
my $table_header = '#DDDDDD'; |
my $table_header = '#DDDDDD'; |
my $feedback_link_bg = '#BBBBBB'; |
my $feedback_link_bg = '#BBBBBB'; |
my $lg_border_color = '#C8C8C8'; |
my $lg_border_color = '#C8C8C8'; |
|
|
my $border = ($env{'browser.type'} eq 'explorer' || |
my $border = ($env{'browser.type'} eq 'explorer' || |
$env{'browser.type'} eq 'safari' ) ? '0 2px 0 2px' |
$env{'browser.type'} eq 'safari' ) ? '0px 2px 0px 2px' |
: '0 3px 0 4px'; |
: '0px 3px 0px 4px'; |
|
|
|
|
return <<END; |
return <<END; |
h1, h2, h3, th { font-family: $sans } |
body{ |
a:focus { color: red; background: yellow } |
font-family: $sans; |
|
line-height:130%; |
hr { |
font-size:0.83em; |
clear: both; |
color:$font; |
color: $tabbg; |
} |
background-color: $tabbg; |
a:link, a:visited { font-size:100%; } |
height: 3px; |
|
border: none; |
|
} |
|
|
|
|
a:focus { color: red; background: yellow } |
table.thinborder, |
table.thinborder, |
|
|
table.thinborder tr th { |
table.thinborder tr th { |
border-style: solid; |
border-style: solid; |
border-width: 1px; |
border-width: 1px; |
|
border-color: $lg_border_color; |
background: $tabbg; |
background: $tabbg; |
} |
} |
table.thinborder tr td { |
table.thinborder tr td { |
border-style: solid; |
border-style: solid; |
border-width: 1px |
border-width: 1px; |
|
border-color: $lg_border_color; |
} |
} |
|
|
form, .inline { display: inline; } |
form, .inline { display: inline; } |
.center { text-align: center; } |
.center { text-align: center; } |
|
.left { text-align:left; } |
|
.right {text-align:right;} |
|
.middle {vertical-align:middle;} |
|
.top {vertical-align:top;} |
|
.bottom {vertical-align:bottom;} |
.LC_filename {font-family: $mono; white-space:pre;} |
.LC_filename {font-family: $mono; white-space:pre;} |
.LC_error { |
.LC_error { |
color: red; |
color: red; |
Line 4619 form, .inline { display: inline; }
|
Line 4463 form, .inline { display: inline; }
|
.LC_diff_added { |
.LC_diff_added { |
color: green; |
color: green; |
} |
} |
|
.LC_unknown { |
div.LC_confirm_box { |
color: yellow; |
background-color: #FAFAFA; |
|
border: 1px solid $lg_border_color; |
|
margin-right: 0; |
|
padding: 5px; |
|
} |
|
|
|
div.LC_confirm_box .LC_error img, |
|
div.LC_confirm_box .LC_success img { |
|
vertical-align: middle; |
|
} |
} |
|
|
.LC_icon { |
.LC_icon { |
border: none; |
border: 0px; |
} |
} |
.LC_indexer_icon { |
.LC_indexer_icon { |
border: 0; |
border: 0px; |
height: 22px; |
height: 22px; |
} |
} |
.LC_docs_spacer { |
.LC_docs_spacer { |
width: 25px; |
width: 25px; |
height: 1px; |
height: 1px; |
border: none; |
border: 0px; |
} |
} |
|
|
.LC_internal_info { |
.LC_internal_info { |
color: #999999; |
color: #999; |
} |
} |
|
|
table.LC_pastsubmission { |
table.LC_pastsubmission { |
Line 4659 table#LC_top_nav, table#LC_menubuttons,t
|
Line 4494 table#LC_top_nav, table#LC_menubuttons,t
|
background: $pgbg; |
background: $pgbg; |
border: 2px; |
border: 2px; |
border-collapse: separate; |
border-collapse: separate; |
padding: 0; |
padding: 0px; |
} |
} |
|
|
table#LC_title_bar, table.LC_breadcrumbs, |
table#LC_title_bar, table.LC_breadcrumbs, |
Line 4672 table#LC_title_bar.LC_with_remote {
|
Line 4507 table#LC_title_bar.LC_with_remote {
|
background: $pgbg; |
background: $pgbg; |
font-family: $sans; |
font-family: $sans; |
border-collapse: collapse; |
border-collapse: collapse; |
padding: 0; |
padding: 0px; |
} |
} |
|
|
table.LC_docs_path { |
table.LC_docs_path { |
width: 100%; |
width: 100%; |
border: 0; |
border: 0; |
background: $pgbg; |
background: $pgbg; |
font-family: $sans; |
font-family: $sans; |
border-collapse: collapse; |
border-collapse: collapse; |
padding: 0; |
padding: 0px; |
} |
} |
|
|
table#LC_title_bar td { |
table#LC_title_bar td { |
Line 4702 span.LC_title_bar_title {
|
Line 4536 span.LC_title_bar_title {
|
table#LC_title_bar td.LC_title_bar_domain_logo { |
table#LC_title_bar td.LC_title_bar_domain_logo { |
background: $sidebg; |
background: $sidebg; |
text-align: right; |
text-align: right; |
padding: 0; |
padding: 0px; |
} |
} |
table#LC_title_bar td.LC_title_bar_role_logo { |
table#LC_title_bar td.LC_title_bar_role_logo { |
background: $sidebg; |
background: $sidebg; |
padding: 0; |
padding: 0px; |
} |
} |
|
|
table#LC_menubuttons_mainmenu { |
table#LC_menubuttons_mainmenu { |
width: 100%; |
width: 100%; |
border: 0; |
border: 0px; |
border-spacing: 1px; |
border-spacing: 1px; |
padding: 0 1px; |
padding: 0px 1px; |
margin: 0; |
margin: 0px; |
border-collapse: separate; |
border-collapse: separate; |
} |
} |
table#LC_menubuttons img, table#LC_menubuttons_mainmenu img { |
table#LC_menubuttons img, table#LC_menubuttons_mainmenu img { |
border: none; |
border: 0px; |
} |
} |
table#LC_top_nav td { |
table#LC_top_nav td { |
background: $tabbg; |
background: $tabbg; |
border: none; |
border: 0px; |
font-size: small; |
font-size: small; |
} |
} |
table#LC_top_nav td a, div#LC_top_nav a { |
table#LC_top_nav td a, div#LC_top_nav a { |
Line 4736 table#LC_top_nav td.LC_top_nav_logo {
|
Line 4570 table#LC_top_nav td.LC_top_nav_logo {
|
width: 31px; |
width: 31px; |
} |
} |
table#LC_top_nav td.LC_top_nav_logo img { |
table#LC_top_nav td.LC_top_nav_logo img { |
border: none; |
border: 0px; |
vertical-align: bottom; |
vertical-align: bottom; |
} |
} |
table#LC_top_nav td.LC_top_nav_exit, |
table#LC_top_nav td.LC_top_nav_exit, |
Line 4771 table#LC_mainmenu td.LC_mainmenu_column
|
Line 4605 table#LC_mainmenu td.LC_mainmenu_column
|
.LC_menubuttons_inline_text { |
.LC_menubuttons_inline_text { |
color: $font; |
color: $font; |
font-family: $sans; |
font-family: $sans; |
font-size: smaller; |
font-size: 90%; |
|
padding-left:3px; |
} |
} |
|
|
.LC_menubuttons_link { |
.LC_menubuttons_link { |
Line 4787 table#LC_mainmenu td.LC_mainmenu_column
|
Line 4622 table#LC_mainmenu td.LC_mainmenu_column
|
} |
} |
|
|
td.LC_menubuttons_text { |
td.LC_menubuttons_text { |
width: 90%; |
color: $font; |
color: $font; |
|
font-family: $sans; |
|
} |
} |
|
|
td.LC_menubuttons_img { |
td.LC_menubuttons_img { |
} |
} |
|
|
Line 4805 td.LC_menubuttons_img {
|
Line 4637 td.LC_menubuttons_img {
|
font-weight: bold; |
font-weight: bold; |
} |
} |
|
|
|
.LC_rolesmenu_is { |
|
font-family: $sans; |
|
} |
|
|
|
.LC_rolesmenu_selected { |
|
font-family: $sans; |
|
} |
|
|
|
.LC_rolesmenu_future { |
|
font-family: $sans; |
|
} |
|
|
|
|
|
.LC_rolesmenu_will { |
|
font-family: $sans; |
|
} |
|
|
|
.LC_rolesmenu_will_not { |
|
font-family: $sans; |
|
} |
|
|
|
.LC_rolesmenu_expired { |
|
font-family: $sans; |
|
} |
|
|
|
.LC_rolesinfo { |
|
font-family: $sans; |
|
} |
|
|
.LC_dropadd_labeltext { |
.LC_dropadd_labeltext { |
font-family: $sans; |
font-family: $sans; |
text-align: right; |
text-align: right; |
Line 4816 td.LC_menubuttons_img {
|
Line 4677 td.LC_menubuttons_img {
|
} |
} |
|
|
.LC_roleslog_note { |
.LC_roleslog_note { |
font-size: smaller; |
font-size: small; |
} |
|
|
|
.LC_mail_functions { |
|
font-weight: bold; |
|
} |
} |
|
|
table.LC_aboutme_port { |
table.LC_aboutme_port { |
border: none; |
border: 0px; |
border-collapse: collapse; |
border-collapse: collapse; |
border-spacing: 0; |
border-spacing: 0px; |
} |
} |
table.LC_data_table, table.LC_mail_list { |
table.LC_data_table, table.LC_mail_list { |
border: 1px solid #000000; |
border: 1px solid #000000; |
Line 4840 table.LC_data_table, table.LC_mail_list
|
Line 4697 table.LC_data_table, table.LC_mail_list
|
table.LC_nested_outer { |
table.LC_nested_outer { |
border: 1px solid #000000; |
border: 1px solid #000000; |
border-collapse: collapse; |
border-collapse: collapse; |
border-spacing: 0; |
border-spacing: 0px; |
width: 100%; |
width: 100%; |
} |
} |
table.LC_nested { |
table.LC_nested { |
border: none; |
border: 0px; |
border-collapse: collapse; |
border-collapse: collapse; |
border-spacing: 0; |
border-spacing: 0px; |
width: 100%; |
width: 100%; |
} |
} |
table.LC_data_table tr th, table.LC_calendar tr th, table.LC_mail_list tr th, |
table.LC_data_table tr th, table.LC_calendar tr th, table.LC_mail_list tr th, |
table.LC_prior_tries tr th { |
table.LC_prior_tries tr th { |
font-weight: bold; |
font-weight: bold; |
background-color: $data_table_head; |
background-color: $data_table_head; |
font-size: smaller; |
font-size:90%; |
} |
|
table.LC_data_table tr.LC_info_row > td { |
|
background-color: #CCCCCC; |
|
font-weight: bold; |
|
text-align: left; |
|
} |
} |
table.LC_data_table tr.LC_odd_row > td, |
table.LC_data_table tr.LC_odd_row > td, |
table.LC_pick_box tr > td.LC_odd_row, |
|
table.LC_aboutme_port tr td { |
table.LC_aboutme_port tr td { |
background-color: $data_table_light; |
background-color: $data_table_light; |
padding: 2px; |
padding: 2px; |
} |
} |
table.LC_data_table tr.LC_even_row > td, |
table.LC_data_table tr.LC_even_row > td, |
table.LC_pick_box tr > td.LC_even_row, |
|
table.LC_aboutme_port tr.LC_even_row td { |
table.LC_aboutme_port tr.LC_even_row td { |
background-color: $data_table_dark; |
background-color: $data_table_dark; |
padding: 2px; |
|
} |
} |
table.LC_data_table tr.LC_data_table_highlight td { |
table.LC_data_table tr.LC_data_table_highlight td { |
background-color: $data_table_darker; |
background-color: $data_table_darker; |
Line 4893 table.LC_nested tr.LC_empty_row td {
|
Line 4742 table.LC_nested tr.LC_empty_row td {
|
table.LC_nested_outer tr th { |
table.LC_nested_outer tr th { |
font-weight: bold; |
font-weight: bold; |
background-color: $data_table_head; |
background-color: $data_table_head; |
font-size: smaller; |
font-size: small; |
border-bottom: 1px solid #000000; |
border-bottom: 1px solid #000000; |
} |
} |
table.LC_nested_outer tr td.LC_subheader { |
table.LC_nested_outer tr td.LC_subheader { |
Line 4904 table.LC_nested_outer tr td.LC_subheader
|
Line 4753 table.LC_nested_outer tr td.LC_subheader
|
text-align: right; |
text-align: right; |
} |
} |
table.LC_nested tr.LC_info_row td { |
table.LC_nested tr.LC_info_row td { |
background-color: #CCCCCC; |
background-color: #CCC; |
font-weight: bold; |
font-weight: bold; |
font-size: small; |
font-size: small; |
text-align: center; |
text-align: center; |
Line 4914 table.LC_nested_outer tr th.LC_left_item
|
Line 4763 table.LC_nested_outer tr th.LC_left_item
|
text-align: left; |
text-align: left; |
} |
} |
table.LC_nested td { |
table.LC_nested td { |
background-color: #FFFFFF; |
background-color: #FFF; |
font-size: small; |
font-size: small; |
} |
} |
table.LC_nested_outer tr th.LC_right_item, |
table.LC_nested_outer tr th.LC_right_item, |
Line 4925 table.LC_nested tr td.LC_right_item {
|
Line 4774 table.LC_nested tr td.LC_right_item {
|
} |
} |
|
|
table.LC_nested tr.LC_odd_row td { |
table.LC_nested tr.LC_odd_row td { |
background-color: #EEEEEE; |
background-color: #EEE; |
} |
} |
|
|
table.LC_createuser { |
table.LC_createuser { |
} |
} |
|
|
table.LC_createuser tr.LC_section_row td { |
table.LC_createuser tr.LC_section_row td { |
font-size: smaller; |
font-size: small; |
} |
} |
|
|
table.LC_createuser tr.LC_info_row td { |
table.LC_createuser tr.LC_info_row td { |
background-color: #CCCCCC; |
background-color: #CCC; |
font-weight: bold; |
font-weight: bold; |
text-align: center; |
text-align: center; |
} |
} |
Line 4988 table.LC_mail_list tr.LC_mail_even {
|
Line 4837 table.LC_mail_list tr.LC_mail_even {
|
table.LC_mail_list tr.LC_mail_odd { |
table.LC_mail_list tr.LC_mail_odd { |
} |
} |
|
|
|
|
table#LC_portfolio_actions { |
|
width: auto; |
|
background: $pgbg; |
|
border: none; |
|
border-spacing: 2px 2px; |
|
padding: 0; |
|
margin: 0; |
|
border-collapse: separate; |
|
} |
|
table#LC_portfolio_actions td.LC_label { |
|
background: $tabbg; |
|
text-align: right; |
|
} |
|
table#LC_portfolio_actions td.LC_value { |
|
background: $tabbg; |
|
} |
|
|
|
table#LC_cstr_controls { |
table#LC_cstr_controls { |
width: 100%; |
width: 100%; |
border-collapse: collapse; |
border-collapse: collapse; |
Line 5024 table#LC_cstr_controls tr th {
|
Line 4855 table#LC_cstr_controls tr th {
|
font-size: smaller; |
font-size: smaller; |
} |
} |
|
|
table#LC_browser { |
table.LC_data_table tr > td.LC_browser_file, |
|
table.LC_data_table tr > td.LC_browser_file_published { |
} |
|
table#LC_browser tr th { |
|
background: $table_header; |
|
} |
|
table#LC_browser tr td { |
|
padding: 2px; |
|
} |
|
table#LC_browser tr.LC_browser_file, |
|
table#LC_browser tr.LC_browser_file_published { |
|
background: #CCFF88; |
background: #CCFF88; |
} |
} |
table#LC_browser tr.LC_browser_file_locked, |
table.LC_data_table tr > td.LC_browser_file_locked, |
table#LC_browser tr.LC_browser_file_unpublished { |
table.LC_data_table tr > td.LC_browser_file_unpublished { |
background: #FFAA99; |
background: #FFAA99; |
} |
} |
table#LC_browser tr.LC_browser_file_obsolete { |
table.LC_data_table tr > td.LC_browser_file_obsolete { |
background: #AAAAAA; |
background: #AAAAAA; |
} |
} |
table#LC_browser tr.LC_browser_file_modified, |
table.LC_data_table tr > td.LC_browser_file_modified, |
table#LC_browser tr.LC_browser_file_metamodified { |
table.LC_data_table tr > td.LC_browser_file_metamodified { |
background: #FFFF77; |
background: #FFFF77; |
} |
} |
table#LC_browser tr.LC_browser_folder { |
table.LC_data_table tr.LC_browser_folder > td { |
background: #CCCCFF; |
background: #CCCCFF; |
} |
} |
|
|
table.LC_data_table tr > td.LC_roles_is { |
|
/* background: #77FF77; */ |
|
} |
|
table.LC_data_table tr > td.LC_roles_future { |
|
background: #FFFF77; |
|
} |
|
table.LC_data_table tr > td.LC_roles_will { |
|
background: #FFAA77; |
|
} |
|
table.LC_data_table tr > td.LC_roles_expired { |
|
background: #FF7777; |
|
} |
|
table.LC_data_table tr > td.LC_roles_will_not { |
|
background: #AAFF77; |
|
} |
|
table.LC_data_table tr > td.LC_roles_selected { |
|
background: #11CC55; |
|
} |
|
|
|
span.LC_current_location { |
span.LC_current_location { |
font-size: x-large; |
font-size:larger; |
background: $pgbg; |
background: $pgbg; |
} |
} |
|
|
Line 5116 table.LC_parm_overview_restrictions th {
|
Line 4919 table.LC_parm_overview_restrictions th {
|
border-color: $pgbg; |
border-color: $pgbg; |
} |
} |
table#LC_helpmenu { |
table#LC_helpmenu { |
border: none; |
border: 0px; |
height: 55px; |
height: 55px; |
border-spacing: 0; |
border-spacing: 0px; |
} |
} |
|
|
table#LC_helpmenu fieldset legend { |
table#LC_helpmenu fieldset legend { |
Line 5129 table#LC_helpmenu_links {
|
Line 4932 table#LC_helpmenu_links {
|
width: 100%; |
width: 100%; |
border: 1px solid black; |
border: 1px solid black; |
background: $pgbg; |
background: $pgbg; |
padding: 0; |
padding: 0px; |
border-spacing: 1px; |
border-spacing: 1px; |
} |
} |
table#LC_helpmenu_links tr td { |
table#LC_helpmenu_links tr td { |
Line 5168 table.LC_pick_box {
|
Line 4971 table.LC_pick_box {
|
border-spacing: 1px; |
border-spacing: 1px; |
} |
} |
table.LC_pick_box td.LC_pick_box_title { |
table.LC_pick_box td.LC_pick_box_title { |
background: $sidebg; |
background: $tabbg; |
font-weight: bold; |
font-weight: bold; |
text-align: right; |
text-align: right; |
vertical-align: top; |
|
width: 184px; |
width: 184px; |
padding: 8px; |
padding: 8px; |
} |
} |
table.LC_pick_box td.LC_selfenroll_pick_box_title { |
table.LC_pick_box td.LC_selfenroll_pick_box_title { |
background: $sidebg; |
background: $tabbg; |
font-weight: bold; |
font-weight: bold; |
text-align: right; |
text-align: right; |
width: 350px; |
width: 350px; |
Line 5192 table.LC_pick_box td.LC_pick_box_select
|
Line 4994 table.LC_pick_box td.LC_pick_box_select
|
padding: 8px; |
padding: 8px; |
} |
} |
table.LC_pick_box td.LC_pick_box_separator { |
table.LC_pick_box td.LC_pick_box_separator { |
padding: 0; |
padding: 0px; |
height: 1px; |
height: 1px; |
background: black; |
background: black; |
} |
} |
Line 5234 table.LC_helpform_receipt td.LC_oddrow_v
|
Line 5036 table.LC_helpform_receipt td.LC_oddrow_v
|
background-color: $data_table_light; |
background-color: $data_table_light; |
} |
} |
table.LC_helpform_receipt td.LC_pick_box_separator { |
table.LC_helpform_receipt td.LC_pick_box_separator { |
padding: 0; |
padding: 0px; |
height: 1px; |
height: 1px; |
background: black; |
background: black; |
} |
} |
Line 5267 table.LC_group_priv_box td.LC_groups_fun
|
Line 5069 table.LC_group_priv_box td.LC_groups_fun
|
} |
} |
table.LC_group_priv td { |
table.LC_group_priv td { |
text-align: left; |
text-align: left; |
padding: 0; |
padding: 0px; |
} |
} |
|
|
table.LC_notify_front_page { |
table.LC_notify_front_page { |
Line 5288 table.LC_notify_front_page td {
|
Line 5090 table.LC_notify_front_page td {
|
background: $tabbg; |
background: $tabbg; |
vertical-align: middle; |
vertical-align: middle; |
margin: 2ex 0ex 2ex 0ex; |
margin: 2ex 0ex 2ex 0ex; |
padding: 3px; |
|
} |
} |
.LC_topic_bar span { |
.LC_topic_bar span { |
vertical-align: middle; |
vertical-align: middle; |
Line 5405 span.LC_cusr_subheading {
|
Line 5206 span.LC_cusr_subheading {
|
|
|
table.LC_docs_documents { |
table.LC_docs_documents { |
background: #BBBBBB; |
background: #BBBBBB; |
border-width: 0; |
border-width: 0px; |
border-collapse: collapse; |
border-collapse: collapse; |
} |
} |
|
|
Line 5422 table.LC_docs_documents td.LC_docs_docum
|
Line 5223 table.LC_docs_documents td.LC_docs_docum
|
} |
} |
|
|
.LC_docs_entry_move { |
.LC_docs_entry_move { |
border: none; |
border: 0px; |
border-collapse: collapse; |
border-collapse: collapse; |
} |
} |
|
|
Line 5478 table.LC_sty_end {
|
Line 5279 table.LC_sty_end {
|
} |
} |
|
|
table.LC_double_column { |
table.LC_double_column { |
border-width: 0; |
border-width: 0px; |
border-collapse: collapse; |
border-collapse: collapse; |
width: 100%; |
width: 100%; |
padding: 2px; |
padding: 2px; |
Line 5582 table.LC_scantron_action {
|
Line 5383 table.LC_scantron_action {
|
width: 100%; |
width: 100%; |
} |
} |
table.LC_scantron_action tr th { |
table.LC_scantron_action tr th { |
font: normal bold $sans; |
font-weight:bold; |
|
font-style:normal; |
} |
} |
|
.LC_edit_problem_header, |
div.LC_edit_problem_header, |
|
div.LC_edit_problem_footer { |
div.LC_edit_problem_footer { |
font: normal medium $sans; |
font: normal medium $sans; |
margin: 2px; |
margin: 2px; |
Line 5617 table.LC_edit_problem_header_title {
|
Line 5418 table.LC_edit_problem_header_title {
|
|
|
background: $tabbg; |
background: $tabbg; |
border-collapse: collapse; |
border-collapse: collapse; |
padding: 0; |
padding: 0px |
} |
} |
|
|
div.LC_edit_problem_discards { |
div.LC_edit_problem_discards { |
Line 5633 hr.LC_edit_problem_divide {
|
Line 5434 hr.LC_edit_problem_divide {
|
color: $tabbg; |
color: $tabbg; |
background-color: $tabbg; |
background-color: $tabbg; |
height: 3px; |
height: 3px; |
border: none; |
border: 0px; |
} |
} |
img.stift{ |
img.stift{ |
border-width:0; |
border-width:0; |
Line 5658 table#LC_mainmenu td.LC_mainmenu_col_fie
|
Line 5459 table#LC_mainmenu td.LC_mainmenu_col_fie
|
font-weight: bold; |
font-weight: bold; |
} |
} |
fieldset#LC_mainmenu_fieldset { |
fieldset#LC_mainmenu_fieldset { |
margin:0 10px 10px 0; |
margin:0px 10px 10px 0px; |
|
|
|
} |
|
/* ---- Remove when done ---- |
|
# The following styles is part of the redesign of LON-CAPA and are |
|
# subject to change during this project. |
|
# Don't rely on their current functionality as they might be |
|
# changed or removed. |
|
# --------------------------*/ |
|
|
|
a:hover, |
|
ol.smallMenu a:hover, |
|
ol#MenuBreadcrumbs a:hover, |
|
ul#TabMainMenuContent a:hover, |
|
.FormSectionClearButton input:hover{ |
|
color:#BF2317; |
|
text-decoration:none; |
|
} |
|
|
|
h1 { |
|
padding:5px 10px 5px 0px; |
|
line-height:130%; |
|
} |
|
|
|
h2,h3,h4,h5,h6 |
|
{ |
|
margin:5px 0px 5px 0px; |
|
line-height:130%; |
|
} |
|
.hcell{ |
|
padding:3px 15px 3px 15px; |
|
margin:0px; |
|
background-color:$pgbg; |
|
background-color:$ border-bottom:solid 1px $lg_border_color; |
|
} |
|
.noBorder { |
|
border:0px; |
|
} |
|
/* |
|
.bgLightGrey { background:URL(images/TabMenuBG.png) repeat-x left top; } |
|
.bgLightGreyYellow {background-color:#EFECE0;} |
|
*/ |
|
|
|
|
|
/* Main Header with discription of Person, Course, etc. */ |
|
.HeadRight { |
|
text-align: right; |
|
float: right; |
|
margin: 0px; |
|
padding: 0px; |
|
right:0; |
|
position:absolute; |
|
overflow:hidden; |
|
} |
|
|
|
p { |
|
padding: 10px; |
|
|
|
} |
|
.FormSectionClearButton input { |
|
background-color:transparent; |
|
border:0px; |
|
cursor:pointer; |
|
text-decoration:underline; |
|
} |
|
|
|
|
|
dl,ul,div,fieldset { |
|
margin: 10px 10px 10px 0px; |
|
overflow:hidden; |
|
} |
|
ol.smallMenu { |
|
margin: 0px; |
|
} |
|
|
|
ol.smallMenu li { |
|
display: inline; |
|
padding: 5px 5px 0px 10px; |
|
vertical-align: top; |
|
} |
|
|
|
ol.smallMenu li img { |
|
vertical-align: bottom; |
|
} |
|
|
|
ol.smallMenu a { |
|
font-size: 90%; |
|
color: RGB(80, 80, 80); |
|
text-decoration: none; |
|
} |
|
|
|
ol#TabMainMenuContent { |
|
|
|
margin: 0px 0px 10px 0px; |
|
padding: 0px; |
|
} |
|
|
|
ol#TabMainMenuContent li { |
|
display: inline; |
|
vertical-align: bottom; |
|
border-bottom: solid 1px RGB(175, 175, 175); |
|
border-right: solid 1px RGB(175, 175, 175); |
|
padding: 5px 15px 5px 15px; |
|
margin-right:4px; |
|
line-height: 140%; |
|
font-weight: bold; |
|
overflow:hidden; |
|
/* background: RGB(211, 206, 205) URL(images/TabMenuBG.png) repeat-x left top;*/ |
|
} |
|
|
|
ol#TabMainMenuContent li a{ |
|
color: RGB(47, 47, 47); |
|
text-decoration: none; |
|
} |
|
|
|
ol#TabMainMenuContent div.columnSection { |
|
margin-bottom: 0px; |
|
} |
|
|
|
ol#MenuBreadcrumbs, ol#PathBreadcrumbs { |
|
border-top: solid 1px RGB(255, 255, 255); |
|
height: 20px; |
|
line-height: 20px; |
|
vertical-align: bottom; |
|
margin: 0px 0px 30px 0px; |
|
padding-left: 10px; |
|
list-style-position: inside; |
|
/* background: RGB(211, 206, 205) URL(images/TabMenuBG.png) repeat-x left |
|
top;*/ |
|
} |
|
|
|
ol#MenuBreadcrumbs li, ol#PathBreadcrumbs li { |
|
/* background: url(images/pfeil_white.png) no-repeat left center;*/ |
|
display: inline; |
|
padding: 0px 0px 0px 10px; |
|
vertical-align: bottom; |
|
overflow:hidden; |
|
} |
|
|
|
ol#MenuBreadcrumbs li a { |
|
text-decoration: none; |
|
font-size:90%; |
|
} |
|
ol#PathBreadcrumbs li a{ |
|
text-decoration:none; |
|
font-size:100%; |
|
font-weight:bold; |
|
} |
|
|
|
.ContentBoxSpecial |
|
{ |
|
border: solid 1px $lg_border_color; |
|
} |
|
.ContentBox { |
|
padding:10px; |
|
} |
|
.PopUp |
|
{ |
|
padding:10px; |
|
border-left:solid 1px $lg_border_color; |
|
border-top:solid 1px $lg_border_color; |
|
border-bottom:outset 1px $lg_border_color; |
|
border-right:outset 1px $lg_border_color; |
|
display:none; |
|
position:absolute; |
|
right:0; |
|
background-color:white; |
|
z-index:5; |
|
} |
|
|
|
dl.ListStyleClean dt { |
|
padding-right: 5px; |
|
display: table-header-group; |
|
} |
|
|
|
dl.ListStyleClean dd { |
|
display: table-row; |
|
} |
|
|
|
.ListStyleClean, |
|
.ListStyleSimple, |
|
.ListStyleNormal, |
|
.ListStyleNormal_Border, |
|
.ListStyleSpecial |
|
{ |
|
/*display:block; */ |
|
list-style-position: inside; |
|
list-style-type: none; |
|
overflow: hidden; |
|
padding: 0px; |
|
} |
|
|
|
.ListStyleSimple li, |
|
.ListStyleSimple dd, |
|
.ListStyleNormal li, |
|
.ListStyleNormal dd, |
|
.ListStyleSpecial li, |
|
.ListStyleSpecial dd |
|
{ |
|
margin: 0px; |
|
padding: 5px 5px 5px 10px; |
|
clear: both; |
|
} |
|
|
|
.ListStyleClean li, |
|
.ListStyleClean dd { |
|
padding-top: 0px; |
|
padding-bottom: 0px; |
|
} |
|
|
|
.ListStyleSimple dd, |
|
.ListStyleSimple li{ |
|
border-bottom: solid 1px $lg_border_color; |
|
} |
|
|
|
.ListStyleSpecial li, |
|
.ListStyleSpecial dd { |
|
list-style-type: none; |
|
background-color: RGB(220, 220, 220); |
|
margin-bottom: 4px; |
|
} |
|
|
|
table.SimpleTable { |
|
margin:5px; |
|
border:solid 1px $lg_border_color; |
|
} |
|
|
|
table.SimpleTable tr { |
|
padding:0px; |
|
border:solid 1px $lg_border_color; |
|
} |
|
table.SimpleTable thead{ |
|
background:rgb(220,220,220); |
|
} |
|
|
|
div.columnSection { |
|
display: block; |
|
clear: both; |
|
overflow: hidden; |
|
margin:0px; |
|
} |
|
|
|
div.columnSection>* { |
|
float: left; |
|
margin: 10px 20px 10px 0px; |
|
overflow:hidden; |
|
} |
|
div.columnSection > .ContentBox, |
|
div.columnSection > .ContentBoxSpecial |
|
{ |
|
width: 400px; |
|
|
|
} |
|
|
|
.LC_loginpage_container { |
|
text-align:left; |
|
margin : 0 auto; |
|
width:65%; |
|
padding: 10px; |
|
height: auto; |
|
background-color:#FFFFFF; |
|
border:1px solid #CCCCCC; |
|
} |
|
|
|
|
|
.LC_loginpage_loginContainer { |
|
float:left; |
|
width:60%; |
} |
} |
|
|
div.LC_createcourse { |
.LC_loginpage_loginInfo { |
margin: 10px 10px 10px 10px; |
margin-top:20px; |
|
margin-left:20px; |
|
float:left; |
|
width:30%; |
|
border:1px solid #CCCCCC; |
|
padding:10px; |
} |
} |
|
|
|
.LC_loginpage_space { |
|
clear:both; |
|
margin-bottom:20px; |
|
border-bottom: 1px solid #CCCCCC; |
|
} |
|
|
|
.LC_loginpage_fieldset{ |
|
border: 1px solid #CCCCCC; |
|
margin: 0 auto; |
|
} |
|
|
|
.LC_loginpage_legend{ |
|
padding: 2px; |
|
margin: 0px; |
|
font-size:14px; |
|
font-weight:bold; |
|
} |
|
|
|
|
|
|
END |
END |
} |
} |
|
|
Line 5793 sub xml_begin {
|
Line 5885 sub xml_begin {
|
.'<html xmlns:math="http://www.w3.org/1998/Math/MathML" ' |
.'<html xmlns:math="http://www.w3.org/1998/Math/MathML" ' |
.'xmlns="http://www.w3.org/1999/xhtml">'; |
.'xmlns="http://www.w3.org/1999/xhtml">'; |
} else { |
} else { |
$output='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'. |
$output='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>'; |
'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">'; |
|
} |
} |
return $output; |
return $output; |
} |
} |
Line 5935 sub start_page {
|
Line 6026 sub start_page {
|
if ($args->{'html_encode'}) { |
if ($args->{'html_encode'}) { |
$result = &html_encode($result); |
$result = &html_encode($result); |
} |
} |
#Breadcrumbs |
|
if (exists($args->{'bread_crumbs'}) or exists($args->{'bread_crumbs_component'})) { |
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
#if any br links exists, add them to the breadcrumbs |
|
if (exists($args->{'bread_crumbs'}) and ref($args->{'bread_crumbs'}) eq 'ARRAY') { |
|
foreach my $crumb (@{$args->{'bread_crumbs'}}){ |
|
&Apache::lonhtmlcommon::add_breadcrumb($crumb); |
|
} |
|
} |
|
|
|
#if bread_crumbs_component exists show it as headline else show only the breadcrumbs |
|
if (exists($args->{'bread_crumbs_component'})){ |
|
$result .= &Apache::lonhtmlcommon::breadcrumbs($args->{'bread_crumbs_component'}); |
|
} else { |
|
$result .= &Apache::lonhtmlcommon::breadcrumbs(); |
|
} |
|
} |
|
return $result; |
return $result; |
} |
} |
|
|
|
|
=pod |
=pod |
|
|
=item * &head() |
=item * &head() |
Line 6185 sub get_users_function {
|
Line 6260 sub get_users_function {
|
if ($env{'request.role'}=~/^(su|dc|ad|li)/) { |
if ($env{'request.role'}=~/^(su|dc|ad|li)/) { |
$function='admin'; |
$function='admin'; |
} |
} |
if (($env{'request.role'}=~/^(au|ca|aa)/) || |
if (($env{'request.role'}=~/^(au|ca)/) || |
($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) { |
($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) { |
$function='author'; |
$function='author'; |
} |
} |
Line 6196 sub get_users_function {
|
Line 6271 sub get_users_function {
|
|
|
=pod |
=pod |
|
|
=item * &show_course() |
|
|
|
Used by lonmenu.pm and lonroles.pm to determine whether to use the word |
|
'Courses' or 'Roles' in inline navigation and on screen displaying user's roles. |
|
Inputs: |
|
None |
|
|
|
Outputs: |
|
Scalar: 1 if 'Course' to be used, 0 otherwise. |
|
|
|
=cut |
|
|
|
############################################### |
|
sub show_course { |
|
my $course = !$env{'user.adv'}; |
|
if (!$env{'user.adv'}) { |
|
foreach my $env (keys(%env)) { |
|
next if ($env !~ m/^user\.priv\./); |
|
if ($env !~ m/^user\.priv\.(?:st|cm)/) { |
|
$course = 0; |
|
last; |
|
} |
|
} |
|
} |
|
return $course; |
|
} |
|
|
|
############################################### |
|
|
|
=pod |
|
|
|
=item * &check_user_status() |
=item * &check_user_status() |
|
|
Determines current status of supplied role for a |
Determines current status of supplied role for a |
Line 6742 sub default_quota {
|
Line 6786 sub default_quota {
|
['quotas'],$udom); |
['quotas'],$udom); |
if (ref($quotahash{'quotas'}) eq 'HASH') { |
if (ref($quotahash{'quotas'}) eq 'HASH') { |
if ($inststatus ne '') { |
if ($inststatus ne '') { |
my @statuses = map { &unescape($_); } split(/:/,$inststatus); |
my @statuses = split(/:/,$inststatus); |
foreach my $item (@statuses) { |
foreach my $item (@statuses) { |
if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') { |
if ($quotahash{'quotas'}{$item} ne '') { |
if ($quotahash{'quotas'}{'defaultquota'}{$item} ne '') { |
if ($defquota eq '') { |
if ($defquota eq '') { |
$defquota = $quotahash{'quotas'}{$item}; |
$defquota = $quotahash{'quotas'}{'defaultquota'}{$item}; |
$settingstatus = $item; |
$settingstatus = $item; |
} elsif ($quotahash{'quotas'}{$item} > $defquota) { |
} elsif ($quotahash{'quotas'}{'defaultquota'}{$item} > $defquota) { |
$defquota = $quotahash{'quotas'}{$item}; |
$defquota = $quotahash{'quotas'}{'defaultquota'}{$item}; |
$settingstatus = $item; |
$settingstatus = $item; |
|
} |
|
} |
|
} else { |
|
if ($quotahash{'quotas'}{$item} ne '') { |
|
if ($defquota eq '') { |
|
$defquota = $quotahash{'quotas'}{$item}; |
|
$settingstatus = $item; |
|
} elsif ($quotahash{'quotas'}{$item} > $defquota) { |
|
$defquota = $quotahash{'quotas'}{$item}; |
|
$settingstatus = $item; |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
} |
if ($defquota eq '') { |
if ($defquota eq '') { |
if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') { |
$defquota = $quotahash{'quotas'}{'default'}; |
$defquota = $quotahash{'quotas'}{'defaultquota'}{'default'}; |
|
} else { |
|
$defquota = $quotahash{'quotas'}{'default'}; |
|
} |
|
$settingstatus = 'default'; |
$settingstatus = 'default'; |
} |
} |
} else { |
} else { |
Line 6921 sub user_picker {
|
Line 6949 sub user_picker {
|
if ($cancreate) { |
if ($cancreate) { |
$new_user_create = '<p> <input type="submit" name="forcenew" value="'.&HTML::Entities::encode(&mt('Make new user "[_1]"',$srchterm),'<>&"').'" onclick="javascript:setSearch(\'1\','.$caller.');" /> </p>'; |
$new_user_create = '<p> <input type="submit" name="forcenew" value="'.&HTML::Entities::encode(&mt('Make new user "[_1]"',$srchterm),'<>&"').'" onclick="javascript:setSearch(\'1\','.$caller.');" /> </p>'; |
} else { |
} else { |
my $helplink = 'javascript:helpMenu('."'display'".')'; |
my $helplink = ' href="javascript:helpMenu('."'display'".')"'; |
my %usertypetext = ( |
my %usertypetext = ( |
official => 'institutional', |
official => 'institutional', |
unofficial => 'non-institutional', |
unofficial => 'non-institutional', |
); |
); |
$new_user_create = '<p class="LC_warning">'. |
$new_user_create = '<br /><span class="LC_warning">'.&mt("You are not authorized to create new $usertypetext{$usertype} users in this domain.").' '.&mt('Contact the <a[_1]>helpdesk</a> for assistance.',$helplink).'</span><br /><br />'; |
&mt("You are not authorized to create new $usertypetext{$usertype} users in this domain.").' '. |
|
&mt('Please contact the [_1]helpdesk[_2] for assistance.','<a href="'.$helplink.'">','</a>').'</p><br />'; |
|
} |
} |
} |
} |
} |
} |
Line 6965 ENDSCRIPT
|
Line 6991 ENDSCRIPT
|
|
|
my $output = <<"END_BLOCK"; |
my $output = <<"END_BLOCK"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
|
function validateEntry(callingForm) { |
function validateEntry(callingForm) { |
|
|
var checkok = 1; |
var checkok = 1; |
Line 7034 function validateEntry(callingForm) {
|
Line 7059 function validateEntry(callingForm) {
|
|
|
$newuserscript |
$newuserscript |
|
|
// ]]> |
|
</script> |
</script> |
|
|
$new_user_create |
$new_user_create |
Line 7212 sub personal_data_fieldtitles {
|
Line 7236 sub personal_data_fieldtitles {
|
middlename => 'Middle Name', |
middlename => 'Middle Name', |
generation => 'Generation', |
generation => 'Generation', |
gen => 'Generation', |
gen => 'Generation', |
inststatus => 'Affiliation', |
|
); |
); |
return %fieldtitles; |
return %fieldtitles; |
} |
} |
Line 7282 sub get_institutional_codes {
|
Line 7305 sub get_institutional_codes {
|
|
|
=pod |
=pod |
|
|
=head1 Slot Helpers |
|
|
|
=over 4 |
|
|
|
=item * sorted_slots() |
|
|
|
Sorts an array of slot names in order of slot start time (earliest first). |
|
|
|
Inputs: |
|
|
|
=over 4 |
|
|
|
slotsarr - Reference to array of unsorted slot names. |
|
|
|
slots - Reference to hash of hash, where outer hash keys are slot names. |
|
|
|
=back |
|
|
|
Returns: |
|
|
|
=over 4 |
|
|
|
sorted - An array of slot names sorted by the start time of the slot. |
|
|
|
=back |
|
|
|
=back |
|
|
|
=cut |
|
|
|
|
|
sub sorted_slots { |
|
my ($slotsarr,$slots) = @_; |
|
my @sorted; |
|
if ((ref($slotsarr) eq 'ARRAY') && (ref($slots) eq 'HASH')) { |
|
@sorted = |
|
sort { |
|
if (ref($slots->{$a}) && ref($slots->{$b})) { |
|
return $slots->{$a}{'starttime'} <=> $slots->{$b}{'starttime'} |
|
} |
|
if (ref($slots->{$a})) { return -1;} |
|
if (ref($slots->{$b})) { return 1;} |
|
return 0; |
|
} @{$slotsarr}; |
|
} |
|
return @sorted; |
|
} |
|
|
|
=pod |
|
|
|
=back |
=back |
|
|
=head1 HTTP Helpers |
=head1 HTTP Helpers |
Line 7884 sub upfile_select_html {
|
Line 7857 sub upfile_select_html {
|
# xml => &mt('HTML/XML'), |
# xml => &mt('HTML/XML'), |
); |
); |
my $Str = '<input type="file" name="upfile" size="50" />'. |
my $Str = '<input type="file" name="upfile" size="50" />'. |
'<br />'.&mt('Type').': <select name="upfiletype">'; |
'<br />Type: <select name="upfiletype">'; |
foreach my $type (sort(keys(%Types))) { |
foreach my $type (sort(keys(%Types))) { |
$Str .= '<option value="'.$type.'" >'.$Types{$type}."</option>\n"; |
$Str .= '<option value="'.$type.'" >'.$Types{$type}."</option>\n"; |
} |
} |
Line 7930 sub csv_print_samples {
|
Line 7903 sub csv_print_samples {
|
$r->print(&mt('Samples').'<br />'.&start_data_table(). |
$r->print(&mt('Samples').'<br />'.&start_data_table(). |
&start_data_table_header_row()); |
&start_data_table_header_row()); |
foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) { |
foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) { |
$r->print('<th>'.&mt('Column [_1]',($sample+1)).'</th>'); |
$r->print('<th>'.&mt('Column [_1]',($sample+1)).'</th>'); } |
} |
|
$r->print(&end_data_table_header_row()); |
$r->print(&end_data_table_header_row()); |
foreach my $hash (@$samples) { |
foreach my $hash (@$samples) { |
$r->print(&start_data_table_row()); |
$r->print(&start_data_table_row()); |
Line 7975 sub csv_print_select_table {
|
Line 7947 sub csv_print_select_table {
|
my ($value,$display,$defaultcol)=@{ $array_ref }; |
my ($value,$display,$defaultcol)=@{ $array_ref }; |
$r->print(&start_data_table_row().'<td>'.$display.'</td>'); |
$r->print(&start_data_table_row().'<td>'.$display.'</td>'); |
|
|
$r->print('<td><select name"f'.$i.'"'. |
$r->print('<td><select name=f'.$i. |
' onchange="javascript:flip(this.form,'.$i.');">'); |
' onchange="javascript:flip(this.form,'.$i.');">'); |
$r->print('<option value="none"></option>'); |
$r->print('<option value="none"></option>'); |
foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) { |
foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) { |
Line 8629 sub restore_settings {
|
Line 8601 sub restore_settings {
|
|
|
=item * &build_recipient_list() |
=item * &build_recipient_list() |
|
|
Build recipient lists for four types of e-mail: |
Build recipient lists for three types of e-mail: |
(a) Error Reports, (b) Package Updates, (c) lonstatus warnings/errors |
(a) Error Reports, (b) Package Updates, (c) Help requests, generated by |
(d) Help requests, generated by |
lonerrorhandler.pm, CHECKRPMS and lonsupportreq.pm respectively. |
lonerrorhandler.pm, CHECKRPMS, loncron, and lonsupportreq.pm respectively. |
|
|
|
Inputs: |
Inputs: |
defmail (scalar - email address of default recipient), |
defmail (scalar - email address of default recipient), |
Line 8656 sub build_recipient_list {
|
Line 8627 sub build_recipient_list {
|
my %domconfig = |
my %domconfig = |
&Apache::lonnet::get_dom('configuration',['contacts'],$defdom); |
&Apache::lonnet::get_dom('configuration',['contacts'],$defdom); |
if (ref($domconfig{'contacts'}) eq 'HASH') { |
if (ref($domconfig{'contacts'}) eq 'HASH') { |
if (exists($domconfig{'contacts'}{$mailing})) { |
if (ref($domconfig{'contacts'}{$mailing}) eq 'HASH') { |
if (ref($domconfig{'contacts'}{$mailing}) eq 'HASH') { |
my @contacts = ('adminemail','supportemail'); |
my @contacts = ('adminemail','supportemail'); |
foreach my $item (@contacts) { |
foreach my $item (@contacts) { |
if ($domconfig{'contacts'}{$mailing}{$item}) { |
if ($domconfig{'contacts'}{$mailing}{$item}) { |
my $addr = $domconfig{'contacts'}{$item}; |
my $addr = $domconfig{'contacts'}{$item}; |
if (!grep(/^\Q$addr\E$/,@recipients)) { |
if (!grep(/^\Q$addr\E$/,@recipients)) { |
push(@recipients,$addr); |
push(@recipients,$addr); |
|
} |
|
} |
} |
$otheremails = $domconfig{'contacts'}{$mailing}{'others'}; |
|
} |
} |
|
$otheremails = $domconfig{'contacts'}{$mailing}{'others'}; |
} |
} |
} elsif ($origmail ne '') { |
|
push(@recipients,$origmail); |
|
} |
} |
} elsif ($origmail ne '') { |
} elsif ($origmail ne '') { |
push(@recipients,$origmail); |
push(@recipients,$origmail); |
Line 9314 sub construct_course {
|
Line 9281 sub construct_course {
|
'policy.email', |
'policy.email', |
'comment.email', |
'comment.email', |
'pch.users.denied', |
'pch.users.denied', |
'plc.users.denied', |
'plc.users.denied'], |
'hidefromcat', |
|
'categories'], |
|
$$crsudom,$$crsunum); |
$$crsudom,$$crsunum); |
} |
} |
|
|
Line 9579 sub course_type {
|
Line 9544 sub course_type {
|
sub group_term { |
sub group_term { |
my $crstype = &course_type(); |
my $crstype = &course_type(); |
my %names = ( |
my %names = ( |
'Course' => 'group', |
'Course' => 'group', |
'Community' => 'group', |
'Group' => 'team', |
); |
); |
return $names{$crstype}; |
return $names{$crstype}; |
} |
} |
Line 9644 sub escape_url {
|
Line 9609 sub escape_url {
|
return join('/',@urlslices).'/'.$lastitem; |
return join('/',@urlslices).'/'.$lastitem; |
} |
} |
|
|
sub compare_arrays { |
|
my ($arrayref1,$arrayref2) = @_; |
|
my (@difference,%count); |
|
@difference = (); |
|
%count = (); |
|
if ((ref($arrayref1) eq 'ARRAY') && (ref($arrayref2) eq 'ARRAY')) { |
|
foreach my $element (@{$arrayref1}, @{$arrayref2}) { $count{$element}++; } |
|
foreach my $element (keys(%count)) { |
|
if ($count{$element} == 1) { |
|
push(@difference,$element); |
|
} |
|
} |
|
} |
|
return @difference; |
|
} |
|
|
|
# -------------------------------------------------------- Initliaze user login |
# -------------------------------------------------------- Initliaze user login |
sub init_user_environment { |
sub init_user_environment { |
my ($r, $username, $domain, $authhost, $form, $args) = @_; |
my ($r, $username, $domain, $authhost, $form, $args) = @_; |
Line 9790 sub init_user_environment {
|
Line 9739 sub init_user_environment {
|
} |
} |
} |
} |
|
|
foreach my $tool ('aboutme','blog','portfolio') { |
|
$userenv{'availabletools.'.$tool} = |
|
&Apache::lonnet::usertools_access($username,$domain,$tool,'reload'); |
|
} |
|
|
|
foreach my $crstype ('official','unofficial','community') { |
|
$userenv{'canrequest.'.$crstype} = |
|
&Apache::lonnet::usertools_access($username,$domain,$crstype, |
|
'reload','requestcourses'); |
|
} |
|
|
|
$env{'user.environment'} = "$lonids/$cookie.id"; |
$env{'user.environment'} = "$lonids/$cookie.id"; |
|
|
if (tie(my %disk_env,'GDBM_File',"$lonids/$cookie.id", |
if (tie(my %disk_env,'GDBM_File',"$lonids/$cookie.id", |
Line 9839 sub _add_to_env {
|
Line 9777 sub _add_to_env {
|
# --- Get the symbolic name of a problem and the url |
# --- Get the symbolic name of a problem and the url |
sub get_symb { |
sub get_symb { |
my ($request,$silent) = @_; |
my ($request,$silent) = @_; |
(my $url=$env{'form.url'}) =~ s-^https?\://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--; |
(my $url=$env{'form.url'}) =~ s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--; |
my $symb=($env{'form.symb'} ne '' ? $env{'form.symb'} : (&Apache::lonnet::symbread($url))); |
my $symb=($env{'form.symb'} ne '' ? $env{'form.symb'} : (&Apache::lonnet::symbread($url))); |
if ($symb eq '') { |
if ($symb eq '') { |
if (!$silent) { |
if (!$silent) { |
Line 9866 sub get_annotation {
|
Line 9804 sub get_annotation {
|
} |
} |
|
|
sub clean_symb { |
sub clean_symb { |
my ($symb,$delete_enc) = @_; |
my ($symb) = @_; |
|
|
&Apache::lonenc::check_decrypt(\$symb); |
&Apache::lonenc::check_decrypt(\$symb); |
my $enc = $env{'request.enc'}; |
my $enc = $env{'request.enc'}; |
if ($delete_enc) { |
delete($env{'request.enc'}); |
delete($env{'request.enc'}); |
|
} |
|
|
|
return ($symb,$enc); |
return ($symb,$enc); |
} |
} |