version 1.196.4.15, 2014/06/09 22:39:01
|
version 1.199, 2012/10/04 13:41:10
|
Line 36 use strict;
|
Line 36 use strict;
|
use LONCAPA; |
use LONCAPA; |
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
use Apache::File; |
use Apache::File; |
|
use Crypt::DES; |
|
use DynaLoader; # for Crypt::DES version |
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
use Apache::lonlocal; |
use Apache::lonlocal; |
Line 43 use Apache::lonnet;
|
Line 45 use Apache::lonnet;
|
use LONCAPA::lonauthcgi(); |
use LONCAPA::lonauthcgi(); |
use LONCAPA(); |
use LONCAPA(); |
|
|
|
# |
|
# Write lonnet::passwd to do the call below. |
|
# Use: |
|
# my $answer=reply("encrypt:passwd:$udom:$uname:$upass",$tryserver); |
|
# |
|
################################################## |
|
# password associated functions # |
|
################################################## |
|
sub des_keys { |
|
# Make a new key for DES encryption. |
|
# Each key has two parts which are returned separately. |
|
# Please note: Each key must be passed through the &hex function |
|
# before it is output to the web browser. The hex versions cannot |
|
# be used to decrypt. |
|
my @hexstr=('0','1','2','3','4','5','6','7', |
|
'8','9','a','b','c','d','e','f'); |
|
my $lkey=''; |
|
for (0..7) { |
|
$lkey.=$hexstr[rand(15)]; |
|
} |
|
my $ukey=''; |
|
for (0..7) { |
|
$ukey.=$hexstr[rand(15)]; |
|
} |
|
return ($lkey,$ukey); |
|
} |
|
|
|
sub des_decrypt { |
|
my ($key,$cyphertext) = @_; |
|
my $keybin=pack("H16",$key); |
|
my $cypher; |
|
if ($Crypt::DES::VERSION>=2.03) { |
|
$cypher=new Crypt::DES $keybin; |
|
} else { |
|
$cypher=new DES $keybin; |
|
} |
|
my $plaintext= |
|
$cypher->decrypt(unpack("a8",pack("H16",substr($cyphertext,0,16)))); |
|
$plaintext.= |
|
$cypher->decrypt(unpack("a8",pack("H16",substr($cyphertext,16,16)))); |
|
$plaintext=substr($plaintext,1,ord(substr($plaintext,0,1)) ); |
|
return $plaintext; |
|
} |
|
|
################################################################ |
################################################################ |
# Handler subroutines # |
# Handler subroutines # |
################################################################ |
################################################################ |
Line 106 sub languagechanger {
|
Line 152 sub languagechanger {
|
text => 'Change Language'}); |
text => 'Change Language'}); |
$r->print(Apache::loncommon::start_page('Content Display Settings')); |
$r->print(Apache::loncommon::start_page('Content Display Settings')); |
$r->print(Apache::lonhtmlcommon::breadcrumbs('Change Language')); |
$r->print(Apache::lonhtmlcommon::breadcrumbs('Change Language')); |
my %userenv = &Apache::lonnet::get('environment',['languages']); |
my $user = $env{'user.name'}; |
|
my $domain = $env{'user.domain'}; |
|
my %userenv = &Apache::lonnet::get |
|
('environment',['languages']); |
my $language=$userenv{'languages'}; |
my $language=$userenv{'languages'}; |
|
|
$r->print( |
my $pref=&mt('Preferred language'); |
'<form name="prefs" action="/adm/preferences" method="post">'."\n". |
my %langchoices=('' => 'No language preference'); |
'<input type="hidden" name="action" value="verify_and_change_languages" />'. |
foreach (&Apache::loncommon::languageids()) { |
'<br /><span class="LC_nobreak">'.&mt('Preferred language').': '. |
if (&Apache::loncommon::supportedlanguagecode($_)) { |
&Apache::loncommon::select_language('language',$language,1).'</span>'."\n". |
$langchoices{&Apache::loncommon::supportedlanguagecode($_)} |
'<br /><input type="submit" value="'.&mt('Save').'" /></form>' |
= &Apache::loncommon::plainlanguagedescription($_); |
); |
} |
|
} |
|
%langchoices = &Apache::lonlocal::texthash(%langchoices); |
|
my $selectionbox= |
|
&Apache::loncommon::select_form( |
|
$language, |
|
'language', |
|
\%langchoices); |
|
$r->print(<<ENDLSCREEN); |
|
<form name="prefs" action="/adm/preferences" method="post"> |
|
<input type="hidden" name="action" value="verify_and_change_languages" /> |
|
<br />$pref: $selectionbox |
|
ENDLSCREEN |
|
$r->print('<br /><input type="submit" value="'.&mt('Save').'" />'); |
} |
} |
|
|
|
|
Line 165 sub texenginechanger {
|
Line 227 sub texenginechanger {
|
'tth' => 'tth (TeX to HTML)', |
'tth' => 'tth (TeX to HTML)', |
#'ttm' => 'TeX to MathML', |
#'ttm' => 'TeX to MathML', |
'jsMath' => 'jsMath', |
'jsMath' => 'jsMath', |
'MathJax' => 'MathJax', |
'MathJax' => 'MathJax', |
'mimetex' => 'mimetex (Convert to Images)', |
'mimetex' => 'mimetex (Convert to Images)', |
'raw' => 'Raw (Screen Reader)' |
'raw' => 'Raw (Screen Reader)' |
); |
); |
Line 183 sub texenginechanger {
|
Line 245 sub texenginechanger {
|
'change' => 'Save', |
'change' => 'Save', |
'exmpl' => 'Examples', |
'exmpl' => 'Examples', |
'mathjax' => 'MathJax:', |
'mathjax' => 'MathJax:', |
'mathjaxinfo' => 'MathJax provides rendered equations whose source code can be extracted in TeX and MathML formats by right clicking the equation.', |
|
'jsmath' => 'jsMath:', |
'jsmath' => 'jsMath:', |
'tth' => 'tth (TeX to HTML):', |
'tth' => 'tth (TeX to HTML):', |
'mimetex' => 'mimetex (Convert to Images):', |
'mimetex' => 'mimetex (Convert to Images):', |
Line 220 $lt{'exmpl'}
|
Line 281 $lt{'exmpl'}
|
|
|
<h3>$lt{'mathjax'}</h3> |
<h3>$lt{'mathjax'}</h3> |
</script> |
</script> |
<iframe src="/res/adm/pages/math_example.tex?inhibitmenu=yes&texengine=MathJax" width="400" height="150"></iframe> |
<iframe src="/res/adm/pages/math_example.tex?inhibitmenu=yes&texengine=MathJax" width="400" height="120"></iframe> |
</p> |
</p> |
<p> |
<p> |
$lt{'mathjaxinfo'} |
MathJax provides rendered equations whose source code can be extracted in TeX and MathML formats by right clicking the equation. |
</p> |
</p> |
|
|
<h3>$lt{'jsmath'}</h3> |
<h3>$lt{'jsmath'}</h3> |
Line 235 if (jsMath.nofonts == 1) {
|
Line 296 if (jsMath.nofonts == 1) {
|
} |
} |
|
|
</script> |
</script> |
<iframe src="/res/adm/pages/math_example.tex?inhibitmenu=yes&texengine=jsMath" width="400" height="150"></iframe> |
<iframe src="/res/adm/pages/math_example.tex?inhibitmenu=yes&texengine=jsMath" width="400" height="120"></iframe> |
</p> |
</p> |
|
|
<h3>$lt{'mimetex'}</h3> |
<h3>$lt{'mimetex'}</h3> |
<p> |
<p> |
<iframe src="/res/adm/pages/math_example.tex?inhibitmenu=yes&texengine=mimetex" width="400" height="150"></iframe> |
<iframe src="/res/adm/pages/math_example.tex?inhibitmenu=yes&texengine=mimetex" width="400" height="100"></iframe> |
</p> |
</p> |
|
|
<h3>$lt{'tth'}</h3> |
<h3>$lt{'tth'}</h3> |
<p> |
<p> |
<iframe src="/res/adm/pages/math_example.tex?inhibitmenu=yes&texengine=tth" width="400" height="150"></iframe> |
<iframe src="/res/adm/pages/math_example.tex?inhibitmenu=yes&texengine=tth" width="400" height="220"></iframe> |
</p> |
</p> |
ENDLSCREEN |
ENDLSCREEN |
if ($env{'environment.texengine'} ne 'jsMath') { |
if ($env{'environment.texengine'} ne 'jsMath') { |
Line 309 sub rolesprefchanger {
|
Line 370 sub rolesprefchanger {
|
my $hotlist_n=$userenv{'recentrolesn'}; |
my $hotlist_n=$userenv{'recentrolesn'}; |
my ($checkedon,$checkedoff); |
my ($checkedon,$checkedoff); |
if ($hotlist_flag) { |
if ($hotlist_flag) { |
$checkedon = 'checked="checked"'; |
$checkedon = 'checked="checked"'; |
} else { |
} else { |
$checkedoff = 'checked="checked"'; |
$checkedoff = 'checked="checked"'; |
} |
} |
Line 392 $options.'
|
Line 453 $options.'
|
&Apache::lonhtmlcommon::row_closure(1). |
&Apache::lonhtmlcommon::row_closure(1). |
&Apache::lonhtmlcommon::end_pick_box().' |
&Apache::lonhtmlcommon::end_pick_box().' |
</div>'); |
</div>'); |
if ($roles_check_list) { |
if ($roles_check_list) { |
$r->print('<div class="LC_left_float"> |
$r->print('<div class="LC_left_float"> |
<h4>'.&mt('Freeze Roles').'</h4> |
<h4>'.&mt('Freeze Roles').'</h4> |
<p>'.&mt('The table below can be used to [_1]freeze[_2] '.$lc_role.'s in the Hotlist.','<q>','</q>').'<br />'. |
<p>'.&mt('The table below can be used to [_1]freeze[_2] '.$lc_role.'s in the Hotlist.','<q>','</q>').'<br />'. |
&mt('Those '.$lc_role.'s marked frozen will not be removed from the list, even if not recently used.').' |
&mt('Those marked frozen will not be removed from the list, even if not recently used.').' |
</p> |
</p> |
'.$roles_check_list.' |
'.$roles_check_list.' |
</div>'); |
</div>'); |
} else { |
} else { |
$r->print('<br clear="all" />'. |
$r->print('<br clear="all" />'. |
&mt('Once the Hotlist contains recently visited '.$lc_role.'s you can return to this page to also set frozen roles.')); |
&mt('Once the Hotlist contains recently visited '.$lc_role.'s, you can return to this page to also set frozen roles.')); |
} |
} |
$r->print(' |
$r->print(' |
<br clear="all" /> |
<br clear="all" /> |
Line 746 sub domcoordchanger {
|
Line 807 sub domcoordchanger {
|
if ($userenv{'domcoord.author'} eq 'blocked') { |
if ($userenv{'domcoord.author'} eq 'blocked') { |
$constchecked=' checked="checked"'; |
$constchecked=' checked="checked"'; |
} |
} |
my $text=&mt('By default, the Domain Coordinator can enter your Authoring Space.'); |
my $text=&mt('By default, the Domain Coordinator can enter your construction space.'); |
my $construction=&mt('Block access to Authoring Space'); |
my $construction=&mt('Block access to construction space'); |
my $change=&mt('Save'); |
my $change=&mt('Save'); |
$r->print(<<ENDSCREEN); |
$r->print(<<ENDSCREEN); |
<form name="prefs" action="/adm/preferences" method="post"> |
<form name="prefs" action="/adm/preferences" method="post"> |
Line 773 sub verify_and_change_domcoord {
|
Line 834 sub verify_and_change_domcoord {
|
} else { |
} else { |
$status=&mt('off'); |
$status=&mt('off'); |
} |
} |
my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Block access to Authoring Space').'</i>','<tt>'.$status.'</tt>')); |
my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Block access to construction space').'</i>','<tt>'.$status.'</tt>')); |
$message=&Apache::loncommon::confirmwrapper($message); |
$message=&Apache::loncommon::confirmwrapper($message); |
&print_main_menu($r,$message); |
&print_main_menu($r,$message); |
} |
} |
Line 831 sub msgforwardchanger {
|
Line 892 sub msgforwardchanger {
|
foad => 'Forward to account(s)', |
foad => 'Forward to account(s)', |
fwdm => 'Forward messages to other account(s) in LON-CAPA', |
fwdm => 'Forward messages to other account(s) in LON-CAPA', |
noti => 'E-mail notification of LON-CAPA messages', |
noti => 'E-mail notification of LON-CAPA messages', |
|
foad_exmpl => 'e.g. <tt>userA:domain1,userB:domain2,...</tt>', |
mnot => 'E-mail address(es) which should be notified about new LON-CAPA messages', |
mnot => 'E-mail address(es) which should be notified about new LON-CAPA messages', |
|
mnot_exmpl => 'e.g. <tt>joe@doe.com</tt>', |
chg => 'Save', |
chg => 'Save', |
email => 'The e-mail address entered in row ', |
email => 'The e-mail address entered in row ', |
notv => 'is not a valid e-mail address', |
notv => 'is not a valid e-mail address', |
toen => "To enter multiple addresses, enter one address at a time, click 'Change' and then add the next one", |
toen => "To enter multiple addresses, enter one address at a time, click 'Change' and then add the next one", |
prme => 'Back', |
prme => 'Back', |
); |
); |
$lt{'foad_exmpl'} = &mt('e.g. [_1]userA:domain1,userB:domain2,...[_2]','<tt>','</tt>'); |
|
$lt{'mnot_exmpl'} = &mt('e.g. [_1]joe@doe.com[_2]','<tt>','</tt>'); |
|
Apache::lonhtmlcommon::add_breadcrumb( |
Apache::lonhtmlcommon::add_breadcrumb( |
{ href => '/adm/preferences?action=changemsgforward', |
{ href => '/adm/preferences?action=changemsgforward', |
text => 'Messages & Notifications'}); |
text => 'Messages & Notifications'}); |
Line 943 ENDMSG
|
Line 1004 ENDMSG
|
'" onclick="javscript:delete_address('."'$num'".')" />'. |
'" onclick="javscript:delete_address('."'$num'".')" />'. |
&mt('Delete').'</label></span></td>'. |
&mt('Delete').'</label></span></td>'. |
'<td><input type="text" value="'.$item.'" name="address_'. |
'<td><input type="text" value="'.$item.'" name="address_'. |
$num.'" onfocus="javascript:address_changes('."'$num'". |
$num.'" onFocus="javascript:address_changes('."'$num'". |
')" /></td><td>'; |
')" /></td><td>'; |
my %chk; |
my %chk; |
if (defined($allnot{$item}{'crit'})) { |
if (defined($allnot{$item}{'crit'})) { |
Line 992 ENDMSG
|
Line 1053 ENDMSG
|
'<input type="checkbox" name="add_notify_'.$num. |
'<input type="checkbox" name="add_notify_'.$num. |
'" value="1" />'.&mt('Add new address').'</label></span></td>'. |
'" value="1" />'.&mt('Add new address').'</label></span></td>'. |
'<td><input type="text" value="" name="address_'.$num. |
'<td><input type="text" value="" name="address_'.$num. |
'" onfocus="javascript:new_address('."'$num'".')" /></td><td>'; |
'" onFocus="javascript:new_address('."'$num'".')" /></td><td>'; |
foreach my $type ('all','crit','reg') { |
foreach my $type ('all','crit','reg') { |
$output .= '<span class="LC_nobreak"><label>'. |
$output .= '<span class="LC_nobreak"><label>'. |
'<input type="radio" name="notify_type_'.$num. |
'<input type="radio" name="notify_type_'.$num. |
Line 1166 sub colorschanger {
|
Line 1227 sub colorschanger {
|
foreach my $item (sort(keys(%colortypes))) { |
foreach my $item (sort(keys(%colortypes))) { |
my $curcol=&Apache::loncommon::designparm($function.'.'.$item,$domain); |
my $curcol=&Apache::loncommon::designparm($function.'.'.$item,$domain); |
$chtable.=&Apache::loncommon::start_data_table_row(). |
$chtable.=&Apache::loncommon::start_data_table_row(). |
'<td>'.$colortypes{$item}.'<td><input name="'.$item. |
'<td>'.$colortypes{$item}.'</td><td style="background: '.$curcol. |
'" class="colorchooser" size="10" value="'.$curcol. |
'"> </td><td><input name="'.$item. |
'" /></td>'. |
'" size="10" value="'.$curcol. |
&Apache::loncommon::end_data_table_row()."\n"; |
'" /></td><td><a href="javascript:pjump('."'color_custom','".$colortypes{$item}. |
|
"','".$curcol."','" |
|
.$item."','parmform.pres','psub'".');">'.&mt('Select').'</a></td>'. |
|
&Apache::loncommon::end_data_table_row()."\n"; |
} |
} |
my $end_data_table = &Apache::loncommon::end_data_table(); |
my $end_data_table = &Apache::loncommon::end_data_table(); |
my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition(); |
my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition(); |
my $savebutton = &mt('Save'); |
my $savebutton = &mt('Save'); |
my $resetbutton = &mt('Reset All'); |
my $resetbutton = &mt('Reset All'); |
my $resetbuttondesc = &mt('Reset All Colors to Default'); |
my $resetbuttondesc = &mt('Reset All Colors to Default'); |
my $colorchooser=&Apache::lonhtmlcommon::color_picker(); |
|
$r->print('<script type="text/javascript" language="JavaScript"> |
|
' . $colorchooser . ' |
|
</script> |
|
'); |
|
|
|
$r->print(<<ENDCOL); |
$r->print(<<ENDCOL); |
|
<script type="text/javascript" language="JavaScript"> |
|
|
<form name="parmform" action=""> |
$pjump_def |
|
|
|
function psub() { |
|
modalWindow.close(); |
|
if (document.parmform.pres_marker.value!='') { |
|
if (document.parmform.pres_type.value!='') { |
|
eval('document.prefs.'+ |
|
document.parmform.pres_marker.value+ |
|
'.value=document.parmform.pres_value.value;'); |
|
} |
|
} else { |
|
document.parmform.pres_value.value=''; |
|
document.parmform.pres_marker.value=''; |
|
} |
|
} |
|
|
|
|
|
</script> |
|
<form name="parmform"> |
<input type="hidden" name="pres_marker" /> |
<input type="hidden" name="pres_marker" /> |
<input type="hidden" name="pres_type" /> |
<input type="hidden" name="pres_type" /> |
<input type="hidden" name="pres_value" /> |
<input type="hidden" name="pres_value" /> |
Line 1222 sub verify_and_change_colors {
|
Line 1299 sub verify_and_change_colors {
|
my $message=''; |
my $message=''; |
foreach my $item (keys %colortypes) { |
foreach my $item (keys %colortypes) { |
my $color=$env{'form.'.$item}; |
my $color=$env{'form.'.$item}; |
if (!($color =~ /^#/)) { |
|
$color = '#' . $color; |
|
} |
|
my $entry='color.'.$function.'.'.$item; |
my $entry='color.'.$function.'.'.$item; |
if (($color=~/^\#[0-9A-Fa-f]{6}$/) && (!$env{'form.resetall'})) { |
if (($color=~/^\#[0-9A-Fa-f]{6}$/) && (!$env{'form.resetall'})) { |
&Apache::lonnet::put('environment',{$entry => $color}); |
&Apache::lonnet::put('environment',{$entry => $color}); |
Line 1275 sub passwordchanger {
|
Line 1349 sub passwordchanger {
|
$r->print( |
$r->print( |
'<p class="LC_warning">' |
'<p class="LC_warning">' |
.&mt('Sorry, the URL you provided to complete the reset of your password was invalid. Either the token included in the URL has been deleted or the URL you provided was invalid. Please submit a [_1]new request[_2] for a password reset, and follow the link to the new URL included in the e-mail that will be sent to you, to allow you to enter a new password.' |
.&mt('Sorry, the URL you provided to complete the reset of your password was invalid. Either the token included in the URL has been deleted or the URL you provided was invalid. Please submit a [_1]new request[_2] for a password reset, and follow the link to the new URL included in the e-mail that will be sent to you, to allow you to enter a new password.' |
,'<a href="/adm/resetpw">','</a>') |
,'<a href="/adm/resetpw">','</a>') |
.'</p>' |
.'</p>' |
); |
); |
return; |
return; |
Line 1296 sub passwordchanger {
|
Line 1370 sub passwordchanger {
|
} |
} |
} else { |
} else { |
$r->print( |
$r->print( |
'<p class="LC_warning">' |
'<p class="LC_warning">' |
.&mt('Sorry, the URL generated when you requested reset of' |
.&mt('Sorry, the URL generated when you requested reset of' |
.' your password contained incomplete information.') |
.' your password contained incomplete information.') |
.'</p>' |
.'</p>' |
); |
); |
return; |
return; |
Line 1319 sub passwordchanger {
|
Line 1393 sub passwordchanger {
|
return if ($currentauth !~ /^(unix|internal):/); |
return if ($currentauth !~ /^(unix|internal):/); |
# |
# |
# Generate keys |
# Generate keys |
my ($lkey_cpass ,$ukey_cpass ) = &Apache::loncommon::des_keys(); |
my ($lkey_cpass ,$ukey_cpass ) = &des_keys(); |
my ($lkey_npass1,$ukey_npass1) = &Apache::loncommon::des_keys(); |
my ($lkey_npass1,$ukey_npass1) = &des_keys(); |
my ($lkey_npass2,$ukey_npass2) = &Apache::loncommon::des_keys(); |
my ($lkey_npass2,$ukey_npass2) = &des_keys(); |
# Store the keys in the log files |
# Store the keys in the log files |
my $lonhost = $r->dir_config('lonHostID'); |
my $lonhost = $r->dir_config('lonHostID'); |
my $logtoken=Apache::lonnet::reply('tmpput:' |
my $logtoken=Apache::lonnet::reply('tmpput:' |
Line 1414 sub client_form {
|
Line 1488 sub client_form {
|
'changepass' => 'Save', |
'changepass' => 'Save', |
); |
); |
|
|
my $output = '<form name="client" action="">' |
my $output = '<form name="client">' |
.&Apache::lonhtmlcommon::start_pick_box(); |
.&Apache::lonhtmlcommon::start_pick_box(); |
if ($caller eq 'reset_by_email') { |
if ($caller eq 'reset_by_email') { |
$output .= &Apache::lonhtmlcommon::row_title( |
$output .= &Apache::lonhtmlcommon::row_title( |
Line 1445 sub client_form {
|
Line 1519 sub client_form {
|
.'<input type="password" name="newpass_2" size="10" />' |
.'<input type="password" name="newpass_2" size="10" />' |
.&Apache::lonhtmlcommon::row_closure(1) |
.&Apache::lonhtmlcommon::row_closure(1) |
.&Apache::lonhtmlcommon::end_pick_box(); |
.&Apache::lonhtmlcommon::end_pick_box(); |
$output .= '<p><input type="button" value="'.$lt{'changepass'}.'" onclick="send();" /></p>' |
$output .= '<p><input type="button" value="'.$lt{'changepass'}.'" onClick="send();" /></p>' |
.qq| |
.qq| |
<input type="hidden" name="ukey_cpass" value="$hexkey->{'ukey_cpass'}" /> |
<input type="hidden" name="ukey_cpass" value="$hexkey->{'ukey_cpass'}" /> |
<input type="hidden" name="lkey_cpass" value="$hexkey->{'lkey_cpass'}" /> |
<input type="hidden" name="lkey_cpass" value="$hexkey->{'lkey_cpass'}" /> |
Line 1560 ENDERROR
|
Line 1634 ENDERROR
|
} |
} |
my ($ckey,$n1key,$n2key)=split(/&/,$tmpinfo); |
my ($ckey,$n1key,$n2key)=split(/&/,$tmpinfo); |
# |
# |
$currentpass = &Apache::loncommon::des_decrypt($ckey ,$currentpass); |
$currentpass = &des_decrypt($ckey ,$currentpass); |
$newpass1 = &Apache::loncommon::des_decrypt($n1key,$newpass1); |
$newpass1 = &des_decrypt($n1key,$newpass1); |
$newpass2 = &Apache::loncommon::des_decrypt($n2key,$newpass2); |
$newpass2 = &des_decrypt($n2key,$newpass2); |
# |
# |
if ($caller eq 'reset_by_email') { |
if ($caller eq 'reset_by_email') { |
my %data = &Apache::lonnet::tmpget($mailtoken); |
my %data = &Apache::lonnet::tmpget($mailtoken); |
Line 1775 sub verify_and_change_discussion {
|
Line 1849 sub verify_and_change_discussion {
|
if (defined($env{'form.discmark'}) ) { |
if (defined($env{'form.discmark'}) ) { |
my $newmark = $env{'form.newmark'}; |
my $newmark = $env{'form.newmark'}; |
if ($newmark eq 'ondisp') { |
if ($newmark eq 'ondisp') { |
$message.=&Apache::lonhtmlcommon::confirm_success(&mt('In discussions: new posts will cease to be identified as "NEW" after display.')).'<br />'; |
$message.=&Apache::lonhtmlcommon::confirm_success(&mt('In discussions: new posts will be cease to be identified as "NEW" after display.')).'<br />'; |
&Apache::lonnet::put('environment',{'discmarkread' => $newmark}); |
&Apache::lonnet::put('environment',{'discmarkread' => $newmark}); |
&Apache::lonnet::appenv({'environment.discmarkread' => $newmark}); |
&Apache::lonnet::appenv({'environment.discmarkread' => $newmark}); |
} else { |
} else { |
Line 2081 push(@{ $menu[0]->{items} }, {
|
Line 2155 push(@{ $menu[0]->{items} }, {
|
linktitle => 'Change your password.', |
linktitle => 'Change your password.', |
}); |
}); |
} |
} |
if ($env{'environment.remote'} eq 'off') { |
|
push(@{ $menu[1]->{items} }, { |
|
linktext => 'Launch Remote Control', |
|
url => '/adm/remote?url=/adm/preferences&action=launch', |
|
permission => 'F', |
|
#help => '', |
|
icon => 'remotecontrol.png', |
|
linktitle => 'Launch the remote control for LON-CAPA.', |
|
}); |
|
}else{ |
|
push(@{ $menu[1]->{items} }, { |
|
linktext => 'Collapse Remote Control', |
|
url => '/adm/remote?url=/adm/preferences&action=collapse', |
|
permission => 'F', |
|
#help => '', |
|
icon => 'remotecontrol.png', |
|
linktitle => 'Collapse the remote control for LON-CAPA.', |
|
}); |
|
} |
|
|
|
if (&can_toggle_namelocking()) { |
if (&can_toggle_namelocking()) { |
push(@{ $menu[0]->{items} }, { |
push(@{ $menu[0]->{items} }, { |
Line 2181 sub handler {
|
Line 2236 sub handler {
|
} else { |
} else { |
$brlink ='/adm/preferences'; |
$brlink ='/adm/preferences'; |
$brtxt = 'Set User Preferences'; |
$brtxt = 'Set User Preferences'; |
$brhelp = 'Prefs_About_Me,Prefs_Language,Prefs_Screen_Name_Nickname,Change_Colors,Change_Password,Prefs_Messages,Change_Discussion_Display'; |
$brhelp = 'Prefs_About_Me,Prefs_Language,Prefs_Screen_Name_Nickname,Change_Colors,Change_Password,Prefs_Messages,Change_Discussion_Display'; |
} |
} |
Apache::lonhtmlcommon::add_breadcrumb |
Apache::lonhtmlcommon::add_breadcrumb |
({href => $brlink, |
({href => $brlink, |