'
- ."".$linktext.' '
- .'';
+ my ($form,$unameele,$udomele,$desc,$extra_element,$multflag,$selecttype)=@_;
+ return "".&mt('Select Course')." ";
}
sub selectauthor_link {
@@ -782,14 +612,6 @@ sub selectauthor_link {
&mt('Select Author').'';
}
-sub selectuser_link {
- my ($form,$unameelem,$domelem,$lastelem,$firstelem,$emailelem,$hdomelem,
- $coursedom,$linktext,$caller) = @_;
- return ''.$linktext.' ';
-}
-
sub check_uncheck_jscript {
my $jscript = <<"ENDSCRT";
function checkAll(field) {
@@ -888,21 +710,6 @@ sub select_datelocale {
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
=item * &linked_select_forms(...)
@@ -989,8 +796,7 @@ sub linked_select_forms {
my $first = "document.$formname.$firstselectname";
# output the javascript to do the changing
my $result = '';
- $result.='
END
# output the initial values for the selection lists
@@ -1121,18 +926,16 @@ sub help_open_topic {
if ($text ne "") {
$template .=
"".
- "$text ";
+ "$text ";
}
# Add the graphic
my $title = &mt('Online Help');
my $helpicon=&lonhttpdurl("/adm/help/help.png");
- $template .= ''.
- ' ';
- if ($text ne '') {
- $template.='
';
- }
+ $template .= <<"ENDTEMPLATE";
+
+ENDTEMPLATE
+ if ($text ne '') { $template.='' };
return $template;
}
@@ -1140,37 +943,31 @@ sub help_open_topic {
# This is a quicky function for Latex cheatsheet editing, since it
# appears in at least four places
sub helpLatexCheatsheet {
- my ($topic,$text,$not_author) = @_;
- my $out;
+ my $other = shift;
my $addOther = '';
- if ($topic) {
- $addOther = &Apache::loncommon::help_open_topic($topic,$text,
+ if ($other) {
+ $addOther = Apache::loncommon::help_open_topic($other, shift,
undef, undef, 600) .
'';
}
- $out = ''.
- $addOther .
- &Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'),
- undef,undef,600).
- ' '.
- &Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'),
- undef,undef,600).
- ' ';
- unless ($not_author) {
- $out .= ''.
- &Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'),
- undef,undef,600).
- ' ';
- }
- $out .= '
';
- return $out;
+ return ''.
+ $addOther .
+ &Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'),
+ undef,undef,600)
+ .' '.
+ &Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'),
+ undef,undef,600)
+ .' '.
+ &Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'),
+ undef,undef,600)
+ .'
';
}
sub general_help {
my $helptopic='Student_Intro';
if ($env{'request.role'}=~/^(ca|au)/) {
$helptopic='Authoring_Intro';
- } elsif ($env{'request.role'}=~/^(cc|co)/) {
+ } elsif ($env{'request.role'}=~/^cc/) {
$helptopic='Course_Coordination_Intro';
} elsif ($env{'request.role'}=~/^dc/) {
$helptopic='Domain_Coordination_Intro';
@@ -1190,9 +987,7 @@ sub update_help_link {
my $banner_link = "/adm/helpmenu?page=banner&topic=$topic&component_help=$component_help&faq=$faq&bug=$bug&origurl=$origurl&stamp=$timestamp&stayonpage=$stayOnPage";
my $output .= <<"ENDOUTPUT";
ENDOUTPUT
return $output;
@@ -1269,8 +1064,8 @@ sub help_menu_js {
my $template .= <<"ENDTEMPLATE";
ENDTEMPLATE
return $template;
@@ -1333,7 +1128,7 @@ sub help_open_bug {
{
$template .=
"".
- "$text ";
+ "$text ";
}
# Add the graphic
@@ -1378,7 +1173,7 @@ sub help_open_faq {
{
$template .=
"".
- "$text ";
+ "$text ";
}
# Add the graphic
@@ -1564,7 +1359,6 @@ sub resize_textarea_js {
my $geometry = &viewport_geometry_js();
return <<"RESIZE";
RESIZE
@@ -1836,7 +1629,7 @@ sub multiple_select_form {
$size = scalar(keys(%$hash));
}
}
- $output.="\n".'';
+ $output.="\n";
my @order;
if (ref($order) eq 'ARRAY') {
@order = @{$order};
@@ -1882,7 +1675,7 @@ sub select_form {
$selectform.=
'&').'" '.
($key eq $def ? 'selected="selected" ' : '').
- ">".$hash{$key}." \n";
+ ">".&mt($hash{$key})."\n";
}
$selectform.=" ";
return $selectform;
@@ -1893,17 +1686,17 @@ sub select_form {
sub display_filter {
if (!$env{'form.show'}) { $env{'form.show'}=10; }
if (!$env{'form.displayfilter'}) { $env{'form.displayfilter'}='currentfolder'; }
- return ''.&mt('Records [_1]',
+ return ''.&mt('Records [_1]',
&Apache::lonmeta::selectbox('show',$env{'form.show'},undef,
(&mt('all'),10,20,50,100,1000,10000))).
- ' '.
+ ' '.
&mt('Filter [_1]',
&select_form($env{'form.displayfilter'},
'displayfilter',
('currentfolder' => 'Current folder/page',
'containing' => 'Containing phrase',
'none' => 'None'))).
- ' ';
+ ' ';
}
sub gradeleveldescription {
@@ -1947,7 +1740,7 @@ sub select_level_form {
=pod
-=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$onchange,$incdoms)
+=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc)
Returns a string containing a form to
allow a user to select the domain to preform an operation in.
@@ -1956,28 +1749,16 @@ See loncreateuser.pm for an example invo
If the $includeempty flag is set, it also includes an empty choice ("no domain
selected");
-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.
-
-The optional $incdoms is a reference to an array of domains which will be the only available options.
+If the $showdomdesc flag is set, the domain name is followed by the domain description.
=cut
#-------------------------------------------
sub select_dom_form {
- my ($defdom,$name,$includeempty,$showdomdesc,$onchange,$incdoms) = @_;
- if ($onchange) {
- $onchange = ' onchange="'.$onchange.'"';
- }
- my @domains;
- if (ref($incdoms) eq 'ARRAY') {
- @domains = sort {lc($a) cmp lc($b)} (@{$incdoms});
- } else {
- @domains = sort {lc($a) cmp lc($b)} (&Apache::lonnet::all_domains());
- }
+ my ($defdom,$name,$includeempty,$showdomdesc) = @_;
+ my @domains = sort {lc($a) cmp lc($b)} (&Apache::lonnet::all_domains());
if ($includeempty) { @domains=('',@domains); }
- my $selectdomain = "\n";
+ my $selectdomain = "\n";
foreach my $dom (@domains) {
$selectdomain.="'.$dom;
@@ -2033,7 +1814,7 @@ sub home_server_form_item {
if ($numlib > 1) {
$result .= ' '."\n";
if ($default) {
- $result .= ' '.&mt('default').
+ $result .= ' '.&mt('default').
' '."\n";
}
foreach my $hostid (sort(keys(%servers))) {
@@ -2328,14 +2109,14 @@ sub authform_kerberos {
$autharg,$jscall);
my ($authnum,%can_assign) = &get_assignable_auth($in{'domain'});
if ($in{'kerb_def_auth'} eq 'krb5') {
- $check5 = ' checked="checked"';
+ $check5 = ' checked="on"';
} else {
- $check4 = ' checked="checked"';
+ $check4 = ' checked="on"';
}
$krbarg = $in{'kerb_def_dom'};
if (defined($in{'curr_authtype'})) {
if ($in{'curr_authtype'} eq 'krb') {
- $krbcheck = ' checked="checked"';
+ $krbcheck = ' checked="on"';
if (defined($in{'mode'})) {
if ($in{'mode'} eq 'modifyuser') {
$krbcheck = '';
@@ -2343,10 +2124,10 @@ sub authform_kerberos {
}
if (defined($in{'curr_kerb_ver'})) {
if ($in{'curr_krb_ver'} eq '5') {
- $check5 = ' checked="checked"';
+ $check5 = ' checked="on"';
$check4 = '';
} else {
- $check4 = ' checked="checked"';
+ $check4 = ' checked="on"';
$check5 = '';
}
}
@@ -2367,7 +2148,7 @@ sub authform_kerberos {
}
} else {
if ($authnum == 1) {
- $authtype = ' ';
+ $authtype = ' ';
}
}
if (!$can_assign{'krb4'} && !$can_assign{'krb5'}) {
@@ -2376,7 +2157,7 @@ sub authform_kerberos {
if (defined($in{'mode'})) {
if ($in{'mode'} eq 'modifycourse') {
if ($authnum == 1) {
- $authtype = ' ';
+ $authtype = ' ';
}
}
}
@@ -2437,7 +2218,7 @@ sub authform_internal{
if (defined($in{'curr_authtype'})) {
if ($in{'curr_authtype'} eq 'int') {
if ($can_assign{'int'}) {
- $intcheck = 'checked="checked" ';
+ $intcheck = 'checked="on" ';
if (defined($in{'mode'})) {
if ($in{'mode'} eq 'modifyuser') {
$intcheck = '';
@@ -2453,7 +2234,7 @@ sub authform_internal{
}
} else {
if ($authnum == 1) {
- $authtype = ' ';
+ $authtype = ' ';
}
}
if (!$can_assign{'int'}) {
@@ -2462,7 +2243,7 @@ sub authform_internal{
if (defined($in{'mode'})) {
if ($in{'mode'} eq 'modifycourse') {
if ($authnum == 1) {
- $authtype = ' ';
+ $authtype = ' ';
}
}
}
@@ -2477,7 +2258,7 @@ sub authform_internal{
$result = &mt
('[_1] Internally authenticated (with initial password [_2])',
''.$authtype,' '.$autharg);
- $result.=" ".&mt('Visible input').' ';
+ $result.=" ".&mt('Visible input').' ';
return $result;
}
@@ -2492,7 +2273,7 @@ sub authform_local{
if (defined($in{'curr_authtype'})) {
if ($in{'curr_authtype'} eq 'loc') {
if ($can_assign{'loc'}) {
- $loccheck = 'checked="checked" ';
+ $loccheck = 'checked="on" ';
if (defined($in{'mode'})) {
if ($in{'mode'} eq 'modifyuser') {
$loccheck = '';
@@ -2508,7 +2289,7 @@ sub authform_local{
}
} else {
if ($authnum == 1) {
- $authtype = ' ';
+ $authtype = ' ';
}
}
if (!$can_assign{'loc'}) {
@@ -2517,7 +2298,7 @@ sub authform_local{
if (defined($in{'mode'})) {
if ($in{'mode'} eq 'modifycourse') {
if ($authnum == 1) {
- $authtype = ' ';
+ $authtype = ' ';
}
}
}
@@ -2546,7 +2327,7 @@ sub authform_filesystem{
if (defined($in{'curr_authtype'})) {
if ($in{'curr_authtype'} eq 'fsys') {
if ($can_assign{'fsys'}) {
- $fsyscheck = 'checked="checked" ';
+ $fsyscheck = 'checked="on" ';
if (defined($in{'mode'})) {
if ($in{'mode'} eq 'modifyuser') {
$fsyscheck = '';
@@ -2559,7 +2340,7 @@ sub authform_filesystem{
}
} else {
if ($authnum == 1) {
- $authtype = ' ';
+ $authtype = ' ';
}
}
if (!$can_assign{'fsys'}) {
@@ -2568,7 +2349,7 @@ sub authform_filesystem{
if (defined($in{'mode'})) {
if ($in{'mode'} eq 'modifycourse') {
if ($authnum == 1) {
- $authtype = ' ';
+ $authtype = ' ';
}
}
}
@@ -2936,43 +2717,6 @@ sub flush_email_cache {
&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
=pod
@@ -2991,25 +2735,6 @@ sub 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".''."\n"
- .$message."\n"
- .'
'."\n";
- } else {
- return $message;
- }
-}
# ------------------------------------------------------------- Message Wrapper
@@ -3036,22 +2761,19 @@ sub aboutmewrapper {
return;
}
return ''.$link.' ';
+ ($target?' target="$target"':'').' title="'.&mt("View this user's personal page").'">'.$link.'';
}
# ------------------------------------------------------------ Syllabus Wrapper
sub syllabuswrapper {
- my ($linktext,$coursedir,$domain,$fontcolor)=@_;
- if ($fontcolor) {
- $linktext=''.$linktext.' ';
- }
+ my ($linktext,$coursedir,$domain)=@_;
return qq{$linktext };
}
sub track_student_link {
- my ($linktext,$sname,$sdom,$target,$start,$only_body) = @_;
+ my ($linktext,$sname,$sdom,$target,$start) = @_;
my $link ="/adm/trackstudent?";
my $title = 'View recent activity';
if (defined($sname) && $sname !~ /^\s*$/ &&
@@ -3065,34 +2787,12 @@ sub track_student_link {
$target = '';
}
if ($start) { $link.='&start='.$start; }
- if ($only_body) { $link .= '&only_body=1'; }
$title = &mt($title);
$linktext = &mt($linktext);
return qq{$linktext }.
&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{$linktext };
-# FIXME uncomment when help item created: &help_open_topic('Slot_Reservation_History');
-
-}
-
# ===================================================== Display a student photo
@@ -3330,28 +3030,6 @@ sub languages {
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 ##
###############################################################
@@ -3490,7 +3168,7 @@ sub relative_to_absolute {
}
$thisdir=~s-/[^/]*$--;
foreach my $link (@rlinks) {
- unless (($link=~/^https?\:\/\//i) ||
+ unless (($link=~/^http:\/\//i) ||
($link=~/^\//) ||
($link=~/^javascript:/i) ||
($link=~/^mailto:/i) ||
@@ -3741,7 +3419,6 @@ sub findallcourses {
if (!%roles) {
%roles = (
cc => 1,
- co => 1,
in => 1,
ep => 1,
ta => 1,
@@ -4068,7 +3745,7 @@ sub blocking_status {
&Apache::lonnet::coursedescription($course);
$coursedesc = $courseinfo{'description'};
}
- $category = "Group portfolio files in the course '$coursedesc'";
+ $category = "Group files in the course '$coursedesc'";
} else {
$category = 'Portfolio files belonging to ';
if ($env{'user.name'} eq 'public' &&
@@ -4171,7 +3848,7 @@ sub determinedomain {
my $domain=shift;
if (! $domain) {
# Determine domain if we have not been given one
- $domain = &Apache::lonnet::default_login_domain();
+ $domain = $Apache::lonnet::perlvar{'lonDefDomain'};
if ($env{'user.domain'}) { $domain=$env{'user.domain'}; }
if ($env{'request.role.domain'}) {
$domain=$env{'request.role.domain'};
@@ -4202,7 +3879,7 @@ sub get_domainconf {
foreach my $key (keys(%{$domconfig{'login'}})) {
if (ref($domconfig{'login'}{$key}) eq 'HASH') {
foreach my $img (keys(%{$domconfig{'login'}{$key}})) {
- $designhash{$udom.'.login.'.$key.'_'.$img} =
+ $designhash{$udom.'.login.'.$key.'_'.$img} =
$domconfig{'login'}{$key}{$img};
}
} else {
@@ -4429,7 +4106,7 @@ sub bodytag {
my $font = &designparm($function.'.font',$domain);
my $pgbg = $bgcolor || &designparm($function.'.pgbg',$domain);
- my %design = ( 'style' => 'margin-top: 0',
+ my %design = ( 'style' => 'margin-top: 0px',
'bgcolor' => $pgbg,
'text' => $font,
'alink' => &designparm($function.'.alink',$domain),
@@ -4540,7 +4217,7 @@ ENDROLE
.''.&mt('Construction Space').' : '
.''
.&Apache::lonmenu::constspaceform();
@@ -4714,11 +4391,15 @@ sub standard_css {
my $vlink = &designparm($function.'.vlink', $domain);
my $link = &designparm($function.'.link', $domain);
+ my $loginbg = &designparm('login.sidebg',$domain);
+ my $bgcol = &designparm('login.bgcol',$domain);
+ my $textcol = &designparm('login.textcol',$domain);
+
my $sans = 'Verdana,Arial,Helvetica,sans-serif';
my $mono = 'monospace';
my $data_table_head = $tabbg;
- my $data_table_light = '#FAFAFA';
- my $data_table_dark = '#F0F0F0';
+ my $data_table_light = '#EEEEEE';
+ my $data_table_dark = '#DDDDDD';
my $data_table_darker = '#CCCCCC';
my $data_table_highlight = '#FFFF00';
my $mail_new = '#FFBB77';
@@ -4731,39 +4412,43 @@ sub standard_css {
my $mail_other_hover = '#669999';
my $table_header = '#DDDDDD';
my $feedback_link_bg = '#BBBBBB';
- my $lg_border_color = '#C8C8C8';
+ my $lg_border_color = '#C8C8C8';
my $border = ($env{'browser.type'} eq 'explorer' ||
- $env{'browser.type'} eq 'safari' ) ? '0 2px 0 2px'
- : '0 3px 0 4px';
+ $env{'browser.type'} eq 'safari' ) ? '0px 2px 0px 2px'
+ : '0px 3px 0px 4px';
return < td {
- background-color: #CCCCCC;
+ background-color: #CCC;
font-weight: bold;
text-align: left;
}
@@ -5091,7 +4737,7 @@ table.LC_nested tr.LC_empty_row td {
table.LC_nested_outer tr th {
font-weight: bold;
background-color: $data_table_head;
- font-size: smaller;
+ font-size: small;
border-bottom: 1px solid #000000;
}
table.LC_nested_outer tr td.LC_subheader {
@@ -5102,7 +4748,7 @@ table.LC_nested_outer tr td.LC_subheader
text-align: right;
}
table.LC_nested tr.LC_info_row td {
- background-color: #CCCCCC;
+ background-color: #CCC;
font-weight: bold;
font-size: small;
text-align: center;
@@ -5112,7 +4758,7 @@ table.LC_nested_outer tr th.LC_left_item
text-align: left;
}
table.LC_nested td {
- background-color: #FFFFFF;
+ background-color: #FFF;
font-size: small;
}
table.LC_nested_outer tr th.LC_right_item,
@@ -5123,18 +4769,18 @@ table.LC_nested tr td.LC_right_item {
}
table.LC_nested tr.LC_odd_row td {
- background-color: #EEEEEE;
+ background-color: #EEE;
}
table.LC_createuser {
}
table.LC_createuser tr.LC_section_row td {
- font-size: smaller;
+ font-size: small;
}
table.LC_createuser tr.LC_info_row td {
- background-color: #CCCCCC;
+ background-color: #CCC;
font-weight: bold;
text-align: center;
}
@@ -5186,91 +4832,23 @@ table.LC_mail_list tr.LC_mail_even {
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 {
- width: 100%;
- border-collapse: collapse;
-}
-table#LC_cstr_controls tr td {
- border: 4px solid $pgbg;
- padding: 4px;
- text-align: center;
- background: $tabbg;
-}
-table#LC_cstr_controls tr th {
- border: 4px solid $pgbg;
- background: $table_header;
- text-align: center;
- font-family: $sans;
- font-size: smaller;
-}
-
-table#LC_browser {
-
-}
-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;
-}
-table#LC_browser tr.LC_browser_file_locked,
-table#LC_browser tr.LC_browser_file_unpublished {
- background: #FFAA99;
-}
-table#LC_browser tr.LC_browser_file_obsolete {
- background: #AAAAAA;
-}
-table#LC_browser tr.LC_browser_file_modified,
-table#LC_browser tr.LC_browser_file_metamodified {
- background: #FFFF77;
-}
-table#LC_browser tr.LC_browser_folder {
- background: #CCCCFF;
-}
-
table.LC_data_table tr > td.LC_browser_file,
table.LC_data_table tr > td.LC_browser_file_published {
- background: #AAEE77;
+ background: #CCFF88;
}
-
table.LC_data_table tr > td.LC_browser_file_locked,
table.LC_data_table tr > td.LC_browser_file_unpublished {
background: #FFAA99;
}
-
table.LC_data_table tr > td.LC_browser_file_obsolete {
- background: #888888;
+ background: #AAAAAA;
}
-
table.LC_data_table tr > td.LC_browser_file_modified,
table.LC_data_table tr > td.LC_browser_file_metamodified {
- background: #F8F866;
+ background: #FFFF77;
}
-
table.LC_data_table tr.LC_browser_folder > td {
- background: #E0E8FF;
+ background: #CCCCFF;
}
table.LC_data_table tr > td.LC_roles_is {
@@ -5293,7 +4871,7 @@ table.LC_data_table tr > td.LC_roles_sel
}
span.LC_current_location {
- font-size: x-large;
+ font-size:larger;
background: $pgbg;
}
@@ -5337,9 +4915,9 @@ table.LC_parm_overview_restrictions th {
border-color: $pgbg;
}
table#LC_helpmenu {
- border: none;
+ border: 0px;
height: 55px;
- border-spacing: 0;
+ border-spacing: 0px;
}
table#LC_helpmenu fieldset legend {
@@ -5350,7 +4928,7 @@ table#LC_helpmenu_links {
width: 100%;
border: 1px solid black;
background: $pgbg;
- padding: 0;
+ padding: 0px;
border-spacing: 1px;
}
table#LC_helpmenu_links tr td {
@@ -5392,7 +4970,6 @@ table.LC_pick_box td.LC_pick_box_title {
background: $tabbg;
font-weight: bold;
text-align: right;
- vertical-align: top;
width: 184px;
padding: 8px;
}
@@ -5413,7 +4990,7 @@ table.LC_pick_box td.LC_pick_box_select
padding: 8px;
}
table.LC_pick_box td.LC_pick_box_separator {
- padding: 0;
+ padding: 0px;
height: 1px;
background: black;
}
@@ -5455,7 +5032,7 @@ table.LC_helpform_receipt td.LC_oddrow_v
background-color: $data_table_light;
}
table.LC_helpform_receipt td.LC_pick_box_separator {
- padding: 0;
+ padding: 0px;
height: 1px;
background: black;
}
@@ -5488,7 +5065,7 @@ table.LC_group_priv_box td.LC_groups_fun
}
table.LC_group_priv td {
text-align: left;
- padding: 0;
+ padding: 0px;
}
table.LC_notify_front_page {
@@ -5509,7 +5086,6 @@ table.LC_notify_front_page td {
background: $tabbg;
vertical-align: middle;
margin: 2ex 0ex 2ex 0ex;
- padding: 3px;
}
.LC_topic_bar span {
vertical-align: middle;
@@ -5611,7 +5187,7 @@ table.LC_prior_match tr td {
border: 1px solid #000000;
}
-.LC_nobreak {
+span.LC_nobreak {
white-space: nowrap;
}
@@ -5626,7 +5202,7 @@ span.LC_cusr_subheading {
table.LC_docs_documents {
background: #BBBBBB;
- border-width: 0;
+ border-width: 0px;
border-collapse: collapse;
}
@@ -5643,7 +5219,7 @@ table.LC_docs_documents td.LC_docs_docum
}
.LC_docs_entry_move {
- border: none;
+ border: 0px;
border-collapse: collapse;
}
@@ -5699,7 +5275,7 @@ table.LC_sty_end {
}
table.LC_double_column {
- border-width: 0;
+ border-width: 0px;
border-collapse: collapse;
width: 100%;
padding: 2px;
@@ -5739,23 +5315,6 @@ div.LC_clear_float_footer {
}
-div.LC_grade_select_mode {
- font-family: $sans;
-}
-div.LC_grade_select_mode div div {
- margin: 5px;
-}
-div.LC_grade_select_mode_selector {
- margin: 5px;
- float: left;
-}
-div.LC_grade_select_mode_selector_header {
- font: bold medium $sans;
-}
-div.LC_grade_select_mode_type {
- clear: left;
-}
-
div.LC_grade_show_user {
margin-top: 20px;
border: 1px solid black;
@@ -5763,7 +5322,8 @@ div.LC_grade_show_user {
div.LC_grade_user_name {
background: #DDDDEE;
border-bottom: 1px solid black;
- font: bold large $sans;
+ font-weight: bold;
+ font-size: large;
}
div.LC_grade_show_user_odd_row div.LC_grade_user_name {
background: #DDEEDD;
@@ -5782,7 +5342,8 @@ div.LC_grade_show_problem_header,
div.LC_grade_submissions_header,
div.LC_grade_message_center_header,
div.LC_grade_assign_header {
- font: bold large $sans;
+ font-weight: bold;
+ font-size: large;
}
div.LC_grade_show_problem_problem,
div.LC_grade_submissions_body,
@@ -5793,7 +5354,8 @@ div.LC_grade_assign_body {
background: #FFFFFF;
}
span.LC_grade_check_note {
- font: normal medium $sans;
+ font-weight: normal;
+ font-size: medium;
display: inline;
position: absolute;
right: 1em;
@@ -5803,12 +5365,13 @@ table.LC_scantron_action {
width: 100%;
}
table.LC_scantron_action tr th {
- font: normal bold $sans;
+ font-weight:bold;
+ font-style:normal;
}
-
-div.LC_edit_problem_header,
+.LC_edit_problem_header,
div.LC_edit_problem_footer {
- font: normal medium $sans;
+ font-weight: normal;
+ font-size: medium;
margin: 2px;
}
div.LC_edit_problem_header,
@@ -5825,12 +5388,14 @@ div.LC_edit_problem_header_edit_row {
margin-bottom: 5px;
}
div.LC_edit_problem_header_title {
- font: larger bold $sans;
+ font-weight: bold;
+ font-size: larger;
background: $tabbg;
padding: 3px;
}
table.LC_edit_problem_header_title {
- font: larger bold $sans;
+ font-size: larger;
+ font-weight: bold;
width: 100%;
border-color: $pgbg;
border-style: solid;
@@ -5838,7 +5403,7 @@ table.LC_edit_problem_header_title {
background: $tabbg;
border-collapse: collapse;
- padding: 0;
+ padding: 0px
}
div.LC_edit_problem_discards {
@@ -5854,7 +5419,7 @@ hr.LC_edit_problem_divide {
color: $tabbg;
background-color: $tabbg;
height: 3px;
- border: none;
+ border: 0px;
}
img.stift{
border-width:0;
@@ -5878,15 +5443,317 @@ table#LC_mainmenu td.LC_mainmenu_col_fie
font-size: small;
font-weight: bold;
}
-fieldset#LC_mainmenu_fieldset {
- margin:0 10px 10px 0;
+/* ---- 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:$tabbg;
+ 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;
}
-div.LC_createcourse {
- margin: 10px 10px 10px 10px;
+.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: 182px;
+ border:1px solid #CCCCCC;
+ background-color:$loginbg;
+}
+
+.LC_loginpage_loginContainer h1{
+ margin-top:0;
+ display:block;
+ background:$bgcol;
+ color:$textcol;
+ padding-left:5px;
+}
+.LC_loginpage_loginInfo {
+ margin-left:20px;
+ float:left;
+ width:30%;
+ border:1px solid #CCCCCC;
+ padding:10px;
+}
+
+.LC_loginpage_loginDomain {
+ margin-right:20px;
+ width:20%;
+ float:left;
+ 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
}
@@ -6014,8 +5881,7 @@ sub xml_begin {
.'';
} else {
- $output=''.
- '';
+ $output='';
}
return $output;
}
@@ -6156,26 +6022,10 @@ sub start_page {
if ($args->{'html_encode'}) {
$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;
}
+
=pod
=item * &head()
@@ -6318,7 +6168,7 @@ sub simple_error_page {
}
sub start_data_table_empty_row {
- $row_count[0]++;
+# $row_count[0]++;
return ''."\n";;
}
@@ -6400,13 +6250,13 @@ Returns either 'student','coordinator','
###############################################
sub get_users_function {
my $function = 'student';
- if ($env{'request.role'}=~/^(cc|co|in|ta|ep)/) {
+ if ($env{'request.role'}=~/^(cc|in|ta|ep)/) {
$function='coordinator';
}
if ($env{'request.role'}=~/^(su|dc|ad|li)/) {
$function='admin';
}
- if (($env{'request.role'}=~/^(au|ca|aa)/) ||
+ if (($env{'request.role'}=~/^(au|ca)/) ||
($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) {
$function='author';
}
@@ -6417,37 +6267,6 @@ sub get_users_function {
=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()
Determines current status of supplied role for a
@@ -6470,7 +6289,7 @@ sub check_user_status {
my $active_chk = 'none';
my $now = time;
if (@uroles > 0) {
- if (($role eq 'cc') || ($role eq 'co') || ($sec eq '') || (!defined($sec))) {
+ if (($role eq 'cc') || ($sec eq '') || (!defined($sec))) {
$srchstr = '/'.$cdom.'/'.$crs.'_'.$role;
} else {
$srchstr = '/'.$cdom.'/'.$crs.'/'.$sec.'_'.$role;
@@ -6951,8 +6770,6 @@ If the user's status includes multiple t
the largest default quota which applies to the user determines the
default quota returned.
-=back
-
=cut
###############################################
@@ -6965,7 +6782,7 @@ sub default_quota {
['quotas'],$udom);
if (ref($quotahash{'quotas'}) eq 'HASH') {
if ($inststatus ne '') {
- my @statuses = map { &unescape($_); } split(/:/,$inststatus);
+ my @statuses = split(/:/,$inststatus);
foreach my $item (@statuses) {
if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') {
if ($quotahash{'quotas'}{'defaultquota'}{$item} ne '') {
@@ -7101,7 +6918,6 @@ sub user_picker {
# loncreateuser::print_user_query_page()
# has been completed.
next if ($option eq 'alc');
- next if (($option eq 'crs') && ($env{'form.form'} eq 'requestcrs'));
next if ($option eq 'crs' && !$env{'request.course.id'});
if ($curr_selected{'srchin'} eq $option) {
$srchinsel .= '
@@ -7145,14 +6961,12 @@ sub user_picker {
if ($cancreate) {
$new_user_create = ' &"').'" onclick="javascript:setSearch(\'1\','.$caller.');" />
';
} else {
- my $helplink = 'javascript:helpMenu('."'display'".')';
+ my $helplink = ' href="javascript:helpMenu('."'display'".')"';
my %usertypetext = (
official => 'institutional',
unofficial => 'non-institutional',
);
- $new_user_create = ''.
- &mt("You are not authorized to create new $usertypetext{$usertype} users in this domain.").' '.
- &mt('Please contact the [_1]helpdesk[_2] for assistance.','',' ').'
';
+ $new_user_create = ''.&mt("You are not authorized to create new $usertypetext{$usertype} users in this domain.").' '.&mt('Contact the helpdesk for assistance.',$helplink).' ';
}
}
}
@@ -7189,7 +7003,6 @@ ENDSCRIPT
my $output = <<"END_BLOCK";
$new_user_create
+
+
END_BLOCK
- $output .= &Apache::lonhtmlcommon::start_pick_box().
- &Apache::lonhtmlcommon::row_title($lt{'doma'}).
- $domform.
- &Apache::lonhtmlcommon::row_closure().
- &Apache::lonhtmlcommon::row_title($lt{'usr'}).
- $srchbysel.
- $srchtypesel.
- ' '.
- $srchinsel.
- &Apache::lonhtmlcommon::row_closure(1).
- &Apache::lonhtmlcommon::end_pick_box().
- ' ';
return $output;
}
@@ -7432,7 +7248,6 @@ sub personal_data_fieldtitles {
middlename => 'Middle Name',
generation => 'Generation',
gen => 'Generation',
- inststatus => 'Affiliation',
);
return %fieldtitles;
}
@@ -7502,56 +7317,8 @@ sub get_institutional_codes {
=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
-
=head1 HTTP Helpers
=over 4
@@ -7841,9 +7608,9 @@ sub upload_embedded {
' '.
$orig_uploaded_filename.' ';
} else {
- $output .= ''.
+ $output .= ''.
&mt('View embedded file: [_1]',''.
- $orig_uploaded_filename.' ').' ';
+ $orig_uploaded_filename.'').' ';
}
}
close($fh);
@@ -8102,7 +7869,7 @@ sub upfile_select_html {
# xml => &mt('HTML/XML'),
);
my $Str = ' '.
- ' '.&mt('Type').': ';
+ ' Type: ';
foreach my $type (sort(keys(%Types))) {
$Str .= ''.$Types{$type}." \n";
}
@@ -8148,8 +7915,7 @@ sub csv_print_samples {
$r->print(&mt('Samples').' '.&start_data_table().
&start_data_table_header_row());
foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) {
- $r->print(''.&mt('Column [_1]',($sample+1)).' ');
- }
+ $r->print(''.&mt('Column [_1]',($sample+1)).' '); }
$r->print(&end_data_table_header_row());
foreach my $hash (@$samples) {
$r->print(&start_data_table_row());
@@ -8191,9 +7957,9 @@ sub csv_print_select_table {
&end_data_table_header_row()."\n");
foreach my $array_ref (@$d) {
my ($value,$display,$defaultcol)=@{ $array_ref };
- $r->print(&start_data_table_row().''.$display.' ');
+ $r->print(&start_data_table_row().''.$display.' ');
- $r->print('print('');
$r->print(' ');
foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) {
@@ -8847,11 +8613,9 @@ sub restore_settings {
=item * &build_recipient_list()
-Build recipient lists for five types of e-mail:
-(a) Error Reports, (b) Package Updates, (c) lonstatus warnings/errors
-(d) Help requests, (e) Course requests needing approval, generated by
-lonerrorhandler.pm, CHECKRPMS, loncron, lonsupportreq.pm and
-loncoursequeueadmin.pm respectively.
+Build recipient lists for three types of e-mail:
+(a) Error Reports, (b) Package Updates, (c) Help requests, generated by
+lonerrorhandler.pm, CHECKRPMS and lonsupportreq.pm respectively.
Inputs:
defmail (scalar - email address of default recipient),
@@ -8875,21 +8639,17 @@ sub build_recipient_list {
my %domconfig =
&Apache::lonnet::get_dom('configuration',['contacts'],$defdom);
if (ref($domconfig{'contacts'}) eq 'HASH') {
- if (exists($domconfig{'contacts'}{$mailing})) {
- if (ref($domconfig{'contacts'}{$mailing}) eq 'HASH') {
- my @contacts = ('adminemail','supportemail');
- foreach my $item (@contacts) {
- if ($domconfig{'contacts'}{$mailing}{$item}) {
- my $addr = $domconfig{'contacts'}{$item};
- if (!grep(/^\Q$addr\E$/,@recipients)) {
- push(@recipients,$addr);
- }
+ if (ref($domconfig{'contacts'}{$mailing}) eq 'HASH') {
+ my @contacts = ('adminemail','supportemail');
+ foreach my $item (@contacts) {
+ if ($domconfig{'contacts'}{$mailing}{$item}) {
+ my $addr = $domconfig{'contacts'}{$item};
+ if (!grep(/^\Q$addr\E$/,@recipients)) {
+ push(@recipients,$addr);
}
- $otheremails = $domconfig{'contacts'}{$mailing}{'others'};
}
+ $otheremails = $domconfig{'contacts'}{$mailing}{'others'};
}
- } elsif ($origmail ne '') {
- push(@recipients,$origmail);
}
} elsif ($origmail ne '') {
push(@recipients,$origmail);
@@ -9021,8 +8781,6 @@ sub extract_categories {
my $trailstr;
if ($name eq 'instcode') {
$trailstr = &mt('Official courses (with institutional codes)');
- } elsif ($name eq 'communities') {
- $trailstr = &mt('Communities');
} else {
$trailstr = $name;
}
@@ -9133,16 +8891,14 @@ Inputs:
cathash - reference to hash of categories defined for the domain (from
configuration.db)
-currcat - scalar with an & separated list of categories assigned to a course.
-
-type - scalar contains course type (Course or Community).
+currcat - scalar with an & separated list of categories assigned to a course.
Returns: $output (markup to be displayed)
=cut
sub assign_categories_table {
- my ($cathash,$currcat,$type) = @_;
+ my ($cathash,$currcat) = @_;
my $output;
if (ref($cathash) eq 'HASH') {
my (@cats,@trails,%allitems,%idx,@jsarray,@path,$maxdepth);
@@ -9151,20 +8907,15 @@ sub assign_categories_table {
if (@cats > 0) {
my $itemcount = 0;
if (ref($cats[0]) eq 'ARRAY') {
+ $output = &Apache::loncommon::start_data_table();
my @currcategories;
if ($currcat ne '') {
@currcategories = split('&',$currcat);
}
- my $table;
for (my $i=0; $i<@{$cats[0]}; $i++) {
my $parent = $cats[0][$i];
- next if ($parent eq 'instcode');
- if ($type eq 'Community') {
- next unless ($parent eq 'communities');
- } else {
- next if ($parent eq 'communities');
- }
my $css_class = $itemcount%2?' class="LC_odd_row"':'';
+ next if ($parent eq 'instcode');
my $item = &escape($parent).'::0';
my $checked = '';
if (@currcategories > 0) {
@@ -9172,26 +8923,18 @@ sub assign_categories_table {
$checked = ' checked="checked" ';
}
}
- my $parent_title = $parent;
- if ($parent eq 'communities') {
- $parent_title = &mt('Communities');
- }
- $table .= ''.
- ' '.$parent_title.' '.
- ' ';
+ $output .= ''.
+ ' '.$parent.' '.
+ ' ';
my $depth = 1;
push(@path,$parent);
- $table .= &assign_category_rows($itemcount,\@cats,$depth,$parent,\@path,\@currcategories);
+ $output .= &assign_category_rows($itemcount,\@cats,$depth,$parent,\@path,\@currcategories);
pop(@path);
- $table .= ' ';
+ $output .= ' ';
$itemcount ++;
}
- if ($itemcount) {
- $output = &Apache::loncommon::start_data_table().
- $table.
- &Apache::loncommon::end_data_table();
- }
+ $output .= &Apache::loncommon::end_data_table();
}
}
}
@@ -9436,62 +9179,40 @@ sub check_clone {
my $clonehome=&Apache::lonnet::homeserver($clonecrsunum,$clonecrsudom);
my $clonemsg;
my $can_clone = 0;
- my $lctype = lc($args->{'type'});
- if ($lctype ne 'community') {
- $lctype = 'course';
- }
+
if ($clonehome eq 'no_host') {
- if ($args->{'type'} eq 'Community') {
- $clonemsg = &mt('No new community created.').$linefeed.&mt('A new community could not be cloned from the specified original - [_1] - because it is a non-existent community.',$args->{'clonecourse'}.':'.$args->{'clonedomain'});
- } else {
- $clonemsg = &mt('No new course created.').$linefeed.&mt('A new course could not be cloned from the specified original - [_1] - because it is a non-existent course.',$args->{'clonecourse'}.':'.$args->{'clonedomain'});
- }
+ $clonemsg = &mt('No new course created.').$linefeed.&mt('A new course could not be cloned from the specified original - [_1] - because it is a non-existent course.',$args->{'clonecourse'}.':'.$args->{'clonedomain'});
} else {
my %clonedesc = &Apache::lonnet::coursedescription($cloneid,{'one_time' => 1});
- if ($args->{'type'} eq 'Community') {
- if ($clonedesc{'type'} ne 'Community') {
- $clonemsg = &mt('No new community created.').$linefeed.&mt('A new community could not be cloned from the specified original - [_1] - because it is a course not a community.',$args->{'clonecourse'}.':'.$args->{'clonedomain'});
- return ($can_clone, $clonemsg, $cloneid, $clonehome);
- }
- }
- if (($env{'request.role.domain'} eq $args->{'clonedomain'}) &&
- (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'}))) {
- $can_clone = 1;
- } else {
- my %clonehash = &Apache::lonnet::get('environment',['cloners'],
- $args->{'clonedomain'},$args->{'clonecourse'});
- my @cloners = split(/,/,$clonehash{'cloners'});
+ if ($env{'request.role.domain'} eq $args->{'clonedomain'}) {
+ $can_clone = 1;
+ } else {
+ my %clonehash = &Apache::lonnet::get('environment',['cloners'],
+ $args->{'clonedomain'},$args->{'clonecourse'});
+ my @cloners = split(/,/,$clonehash{'cloners'});
if (grep(/^\*$/,@cloners)) {
$can_clone = 1;
} elsif (grep(/^\*\:\Q$args->{'ccdomain'}\E$/,@cloners)) {
$can_clone = 1;
} else {
- my $ccrole = 'cc';
- if ($args->{'type'} eq 'Community') {
- $ccrole = 'co';
- }
- my %roleshash =
- &Apache::lonnet::get_my_roles($args->{'ccuname'},
- $args->{'ccdomain'},
- 'userroles',['active'],[$ccrole],
- [$args->{'clonedomain'}]);
- if (($roleshash{$args->{'clonecourse'}.':'.$args->{'clonedomain'}.':'.$ccrole}) || (grep(/^\Q$args->{'ccuname'}\E:\Q$args->{'ccdomain'}\E$/,@cloners))) {
- $can_clone = 1;
- } else {
- if ($args->{'type'} eq 'Community') {
- $clonemsg = &mt('No new community created.').$linefeed.&mt('The new community could not be cloned from the existing community because the new community owner ([_1]) does not have cloning rights in the existing community ([_2]).',$args->{'ccuname'}.':'.$args->{'ccdomain'},$clonedesc{'description'});
- } else {
- $clonemsg = &mt('No new course created.').$linefeed.&mt('The new course could not be cloned from the existing course because the new course owner ([_1]) does not have cloning rights in the existing course ([_2]).',$args->{'ccuname'}.':'.$args->{'ccdomain'},$clonedesc{'description'});
- }
- }
- }
+ my %roleshash =
+ &Apache::lonnet::get_my_roles($args->{'ccuname'},
+ $args->{'ccdomain'},
+ 'userroles',['active'],['cc'],
+ [$args->{'clonedomain'}]);
+ if (($roleshash{$args->{'clonecourse'}.':'.$args->{'clonedomain'}.':cc'}) || (grep(/^\Q$args->{'ccuname'}\E:\Q$args->{'ccdomain'}\E$/,@cloners))) {
+ $can_clone = 1;
+ } else {
+ $clonemsg = &mt('No new course created.').$linefeed.&mt('The new course could not be cloned from the existing course because the new course owner ([_1]) does not have cloning rights in the existing course ([_2]).',$args->{'ccuname'}.':'.$args->{'ccdomain'},$clonedesc{'description'});
+ }
+ }
}
}
return ($can_clone, $clonemsg, $cloneid, $clonehome);
}
sub construct_course {
- my ($args,$logmsg,$courseid,$crsudom,$crsunum,$udom,$uname,$context,$cnum,$category) = @_;
+ my ($args,$logmsg,$courseid,$crsudom,$crsunum,$udom,$uname,$context) = @_;
my $outcome;
my $linefeed = ' '."\n";
if ($context eq 'auto') {
@@ -9529,9 +9250,7 @@ sub construct_course {
$args->{'crscode'},
$args->{'ccuname'}.':'.
$args->{'ccdomain'},
- $args->{'crstype'},
- $cnum,$context,$category);
-
+ $args->{'crstype'});
# Note: The testing routines depend on this being output; see
# Utils::Course. This needs to at least be output as a comment
@@ -9574,9 +9293,7 @@ sub construct_course {
'policy.email',
'comment.email',
'pch.users.denied',
- 'plc.users.denied',
- 'hidefromcat',
- 'categories'],
+ 'plc.users.denied'],
$$crsudom,$$crsunum);
}
@@ -9839,22 +9556,12 @@ sub course_type {
sub group_term {
my $crstype = &course_type();
my %names = (
- 'Course' => 'group',
- 'Community' => 'group',
+ 'Course' => 'group',
+ 'Group' => 'team',
);
return $names{$crstype};
}
-sub course_types {
- my @types = ('official','unofficial','community');
- my %typename = (
- official => 'Official course',
- unofficial => 'Unofficial course',
- community => 'Community',
- );
- return (\@types,\%typename);
-}
-
sub icon {
my ($file)=@_;
my $curfext = lc((split(/\./,$file))[-1]);
@@ -9914,22 +9621,6 @@ sub escape_url {
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
sub init_user_environment {
my ($r, $username, $domain, $authhost, $form, $args) = @_;
@@ -10060,17 +9751,6 @@ 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";
if (tie(my %disk_env,'GDBM_File',"$lonids/$cookie.id",
@@ -10083,8 +9763,8 @@ sub init_user_environment {
}
untie(%disk_env);
} else {
- &Apache::lonnet::logthis("WARNING: ".
- 'Could not create environment storage in lonauth: '.$!.' ');
+ &Apache::lonnet::logthis("WARNING: ".
+ 'Could not create environment storage in lonauth: '.$!.' ');
return 'error: '.$!;
}
}
@@ -10109,7 +9789,7 @@ sub _add_to_env {
# --- Get the symbolic name of a problem and the url
sub get_symb {
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)));
if ($symb eq '') {
if (!$silent) {
@@ -10136,13 +9816,11 @@ sub get_annotation {
}
sub clean_symb {
- my ($symb,$delete_enc) = @_;
+ my ($symb) = @_;
&Apache::lonenc::check_decrypt(\$symb);
my $enc = $env{'request.enc'};
- if ($delete_enc) {
- delete($env{'request.enc'});
- }
+ delete($env{'request.enc'});
return ($symb,$enc);
}