version 1.925.2.13, 2010/09/19 18:50:48
|
version 1.925.2.16, 2010/10/11 16:00:57
|
Line 4559 sub bodytag {
|
Line 4559 sub bodytag {
|
|
|
my $role_selector; |
my $role_selector; |
if (($custommenu) && ($env{'request.course.id'}) && |
if (($custommenu) && ($env{'request.course.id'}) && |
($env{'course.'.$env{'request.course.id'}.'.domain'} eq 'gcitest') && |
($env{'course.'.$env{'request.course.id'}.'.domain'} eq 'gcitest')) { |
($env{'request.role'} !~ m{^st\./gcitest/$match_courseid})) { |
|
$role_selector = &Apache::lonmenu::roles_selector( |
$role_selector = &Apache::lonmenu::roles_selector( |
$env{'course.' . $env{'request.course.id'} . '.domain'}, |
$env{'course.' . $env{'request.course.id'} . '.domain'}, |
$env{'course.' . $env{'request.course.id'} . '.num'} ); |
$env{'course.' . $env{'request.course.id'} . '.num'} ); |
Line 4568 sub bodytag {
|
Line 4567 sub bodytag {
|
$role_selector = '<br />'.$role_selector; |
$role_selector = '<br />'.$role_selector; |
} |
} |
} |
} |
|
my $cid = $env{'request.course.id'}; |
|
my %gcicourses = ( |
|
gci_9615072b469884921gcil1 => 'review', |
|
gci_1H96711d710194bfegcil1 => 'submit', |
|
gci_5422913620b814c90gcil1 => 'tutorial', |
|
); |
|
if (($custommenu && $cid && !$gcicourses{$cid}) || ($env{'user.domain'} eq 'gcitest')) { |
|
my $role = 'st'; |
|
if ($custommenu) { |
|
$role = 'cc'; |
|
} |
|
my ($switcher_js,$switcher,$formname); |
|
$formname = 'pickrole'; |
|
my %courses = &existing_gcitest_courses($role); |
|
my $numcourses = keys(%courses); |
|
my $reqdcount = 0; |
|
if ($cid) { |
|
if ($courses{$cid}) { |
|
$reqdcount = 1; |
|
} |
|
} |
|
if ($numcourses > $reqdcount) { |
|
$switcher = &gcitest_switcher($role,$formname,%courses); |
|
my $current; |
|
if ($cid) { |
|
$current = $role.'./'.$env{'course.'.$cid.'.domain'}. |
|
'/'.$env{'course.'.$cid.'.num'}; |
|
} |
|
$switcher_js = &Apache::loncommon::gcitest_switcher_js($current,$numcourses,$formname); |
|
if ($switcher_js) { |
|
$switcher_js= <<"ENDSCRIPT"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
|
|
$switcher_js |
|
|
|
// ]]> |
|
</script> |
|
ENDSCRIPT |
|
} |
|
} |
|
if ($switcher) { |
|
$switcher = $switcher_js.$switcher; |
|
if ($role_selector) { |
|
$role_selector .= ' '.$switcher; |
|
} else { |
|
$role_selector .= '<br />'.$switcher; |
|
} |
|
} |
|
} |
|
|
if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { |
if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { |
if ($dc_info) { |
if ($dc_info) { |
Line 4578 sub bodytag {
|
Line 4627 sub bodytag {
|
return $bodytag; |
return $bodytag; |
} |
} |
|
|
|
if ($cid && $gcicourses{$cid} eq 'tutorial') { |
|
$bodytag .= '<div class="LC_page_header">'; |
|
} |
$bodytag .= qq|<div id="LC_nav_bar">$name $role $role_selector</div>|; |
$bodytag .= qq|<div id="LC_nav_bar">$name $role $role_selector</div>|; |
|
|
$bodytag .= Apache::lonhtmlcommon::scripttag( |
$bodytag .= Apache::lonhtmlcommon::scripttag( |
Line 4589 sub bodytag {
|
Line 4641 sub bodytag {
|
$dc_info = &dc_courseid_toggle($dc_info); |
$dc_info = &dc_courseid_toggle($dc_info); |
} |
} |
$bodytag .= qq|<div id="LC_realm">$realm $dc_info</div>|; |
$bodytag .= qq|<div id="LC_realm">$realm $dc_info</div>|; |
|
if ($cid && $gcicourses{$cid} eq 'tutorial') { |
|
$bodytag .= '</div>'; |
|
} |
|
|
#don't show menus for public users |
#don't show menus for public users |
if($env{'user.name'} ne 'public' && $env{'user.domain'} ne 'public'){ |
if($env{'user.name'} ne 'public' && $env{'user.domain'} ne 'public'){ |
if (($custommenu) && |
if (($custommenu) && |
($env{'request.role'} !~ m{^st\./gcitest/$match_courseid})) { |
($env{'request.role'} !~ m{^st\./gcitest/$match_courseid})) { |
$bodytag .= &Apache::lonmenu::gci_secondary_menu(); |
$bodytag .= &Apache::lonmenu::gci_secondary_menu(); |
} else { |
} elsif ($env{'request.role'} ne 'cm' || &check_for_gci_dc()) { |
$bodytag .= Apache::lonmenu::secondary_menu(); |
$bodytag .= Apache::lonmenu::secondary_menu(); |
} |
} |
$bodytag .= Apache::lonmenu::serverform(); |
$bodytag .= Apache::lonmenu::serverform(); |
Line 4605 sub bodytag {
|
Line 4660 sub bodytag {
|
$args->{'bread_crumbs'}); |
$args->{'bread_crumbs'}); |
} elsif ($forcereg) { |
} elsif ($forcereg) { |
$bodytag .= &Apache::lonmenu::innerregister($forcereg); |
$bodytag .= &Apache::lonmenu::innerregister($forcereg); |
|
} elsif ($custommenu && $env{'request.course.id'} && |
|
&Apache::lonnet::allowed('mdc', $env{'request.course.id'})) { |
|
if (($env{'request.noversionuri'} eq '/adm/navmaps') || |
|
($env{'request.noversionuri'} eq '/adm/coursedocs') || |
|
($env{'request.noversionuri'} eq '/adm/createuser') || |
|
($env{'request.noversionuri'} eq '/adm/whatsnew') || |
|
($env{'request.noversionuri'} eq '/cgi-bin/printout.pl') || |
|
($env{'request.noversionuri'} eq '/adm/printout') || |
|
($env{'request.noversionuri'} eq '/adm/statistics')) { |
|
|
|
my @advtools = &concept_test_manager(); |
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
&Apache::lonhtmlcommon::add_breadcrumb_tool( |
|
'advtools',@advtools); |
|
my $advlinks; |
|
my $legendtext = '<a class="LC_menubuttons_link" href="/adm/menu">'.&mt('Management').'</a>'; |
|
&Apache::lonhtmlcommon::render_advtools(\$advlinks,$legendtext); |
|
$bodytag .= $advlinks; |
|
} |
} |
} |
}else{ |
}else{ |
# this is to seperate menu from content when there's no secondary |
# this is to seperate menu from content when there's no secondary |
Line 4613 sub bodytag {
|
Line 4687 sub bodytag {
|
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); |
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); |
} |
} |
|
|
#SD testing |
|
#$bodytag .= Apache::lonmenu::menubuttons($forcereg); |
|
return $bodytag; |
return $bodytag; |
} |
} |
|
|
Line 4652 $bodytag
|
Line 4724 $bodytag
|
ENDBODY |
ENDBODY |
} |
} |
|
|
|
sub concept_test_manager { |
|
my @advtools; |
|
my %items = ( |
|
docs => { |
|
desc => 'Edit Test', |
|
action => "go('/adm/coursedocs')", |
|
tooltip => 'Assemble or modify Concept Test' |
|
}, |
|
cprv => { |
|
desc => 'Enrollment/Activity', |
|
action => "go('/adm/createuser')", |
|
tooltip => 'Enrollment and student activity', |
|
}, |
|
new => { |
|
desc => "What's New?", |
|
action => "go('/adm/whatsnew')", |
|
tooltip => 'Recent events/action items in Concept Test' , |
|
}, |
|
prnt => { |
|
desc => 'Print Test', |
|
action => "go('/adm/printout');", |
|
tooltip => 'Prepare printable Concept Test', |
|
}, |
|
chrt => { |
|
desc => 'Test Statistics', |
|
action => "go('/adm/statistics');", |
|
tooltip => 'Concept Test Statistics', |
|
}, |
|
rcrs => { |
|
desc => 'Create New Test', |
|
action => "switchpage('createtest');", |
|
tooltip => 'Create new Concept Test', |
|
}, |
|
); |
|
my @ordered = ('docs','cprv','new','prnt','chrt','rcrs'); |
|
foreach my $item (@ordered) { |
|
push(@advtools, |
|
'<a title="'.$items{$item}{tooltip}.'" class="LC_menubuttons_link" href="javascript:'. |
|
$items{$item}{action}.';">'. |
|
'<img src="'.'/res/adm/pages/'.$item.'22.png" alt="'.$items{$item}{tooltip}. |
|
'" border="0" class="LC_icon" />'. |
|
'<span class="LC_menubuttons_inline_text">'.$items{$item}{desc}.'</span></a>'); |
|
} |
|
return @advtools; |
|
} |
|
|
sub dc_courseid_toggle { |
sub dc_courseid_toggle { |
my ($dc_info) = @_; |
my ($dc_info) = @_; |
return ' <span id="dccidtext" class="LC_cusr_subheading">'. |
return ' <span id="dccidtext" class="LC_cusr_subheading">'. |
Line 4954 table#LC_title_bar.LC_with_remote {
|
Line 5072 table#LC_title_bar.LC_with_remote {
|
margin: 0; |
margin: 0; |
} |
} |
|
|
|
ul.LC_breadcrumb_tools_outerlist { |
|
margin: 0; |
|
padding: 0; |
|
position: relative; |
|
list-style: none; |
|
} |
|
ul.LC_breadcrumb_tools_outerlist li { |
|
display: inline; |
|
} |
|
|
|
.LC_breadcrumb_tools_navigation { |
|
padding: 0; |
|
margin: 0; |
|
float: left; |
|
} |
|
.LC_breadcrumb_tools_tools { |
|
padding: 0; |
|
margin: 0; |
|
float: right; |
|
} |
|
|
|
div.LC_GCI_Menu { |
|
width:900px; |
|
} |
|
|
|
div.LC_GCI_Menu:after { |
|
content:''; |
|
display:block; |
|
clear:both; |
|
} |
|
|
|
div.LC_GCI_Menu_left { |
|
float:left; |
|
width:400px; |
|
} |
|
|
|
div.LC_GCI_Menu_right { |
|
float:left; |
|
width:400px;; |
|
} |
|
|
dl.LC_GCI_Menu { |
dl.LC_GCI_Menu { |
width:300px; |
width:300px; |
float:left; |
float:left; |
Line 4966 dl.LC_GCI_Menu dt {
|
Line 5125 dl.LC_GCI_Menu dt {
|
margin-bottom:0.7em; |
margin-bottom:0.7em; |
} |
} |
|
|
|
dl.LC_GCI_Menu dt a { |
|
color: $font; |
|
} |
|
|
dl.LC_GCI_Menu dd { |
dl.LC_GCI_Menu dd { |
font-size:0.8em; |
font-size:0.8em; |
margin:0 0 2em 0; |
margin:0 0 2em 0; |
Line 4974 dl.LC_GCI_Menu dd {
|
Line 5137 dl.LC_GCI_Menu dd {
|
background:none no-repeat left top; |
background:none no-repeat left top; |
} |
} |
|
|
/* #SD START (work in progress)*/ |
|
|
|
ul.LC_bct { |
|
margin: 0; |
|
padding: 0; |
|
} |
|
ul.LC_bct ol { |
|
display: inline; |
|
} |
|
ul.LC_bct ul { |
|
display: inline; |
|
padding: 0; |
|
} |
|
ul.LC_bct li { |
|
list-style-type: none; |
|
display: inline; |
|
} |
|
|
|
|
|
ul.LC_breadcrumb_tools { |
|
} |
|
|
|
li.LC_breadcrumb_tools { |
|
} |
|
li.LC_breadcrumb_tools img{ |
|
vertical-align: middle; |
|
} |
|
|
|
.LC_breadcrumb_tools_A { |
|
margin: 0 0 0 1em; |
|
} |
|
.LC_breadcrumb_tools_B { |
|
float: right; |
|
margin-top: 0.4em; |
|
} |
|
.LC_breadcrumb_tools_C { |
|
margin: 0 1em 0 0; |
|
float: right; |
|
} |
|
/* #SD END */ |
|
|
|
table#LC_title_bar td { |
table#LC_title_bar td { |
background: $tabbg; |
background: $tabbg; |
} |
} |
Line 5025 table#LC_menubuttons img {
|
Line 5147 table#LC_menubuttons img {
|
|
|
.LC_breadcrumbs_component { |
.LC_breadcrumbs_component { |
float: right; |
float: right; |
margin: 0 1em; |
margin: 0.25em 1em; |
} |
} |
.LC_breadcrumbs_component img { |
.LC_breadcrumbs_component img { |
vertical-align: middle; |
vertical-align: middle; |
Line 5044 td.LC_table_cell_checkbox {
|
Line 5166 td.LC_table_cell_checkbox {
|
background: $sidebg; |
background: $sidebg; |
border-bottom: 1px solid $lg_border_color; |
border-bottom: 1px solid $lg_border_color; |
line-height: 2.5em; |
line-height: 2.5em; |
/* SD working here |
overflow: hidden; |
height: 2.5em; |
|
overflow: hidden; */ |
|
margin: 0; |
margin: 0; |
padding: 0; |
padding: 0; |
|
text-align: left; |
} |
} |
|
|
/* Preliminary fix to hide breadcrumbs inside remote control window */ |
/* Preliminary fix to hide breadcrumbs inside remote control window */ |
Line 5060 td.LC_table_cell_checkbox {
|
Line 5181 td.LC_table_cell_checkbox {
|
clear:both; |
clear:both; |
background: #F8F8F8; /* $sidebg; */ |
background: #F8F8F8; /* $sidebg; */ |
border: 1px solid $sidebg; |
border: 1px solid $sidebg; |
margin: 0 0 10px 0; |
margin: 0 0 0 0; |
} |
} |
|
|
.LC_fontsize_medium { |
.LC_fontsize_medium { |
Line 6018 fieldset > legend {
|
Line 6139 fieldset > legend {
|
padding: 0 5px 0 5px; |
padding: 0 5px 0 5px; |
} |
} |
|
|
|
div.LC_page_header { |
|
background-color: $pgbg_or_bgcolor; |
|
margin: 0 0 1.0em 0; |
|
} |
|
|
#LC_nav_bar { |
#LC_nav_bar { |
float: left; |
float: left; |
margin: 0.2em 0 0 0; |
margin: 0.2em 0 0 0; |
Line 6040 ol.LC_primary_menu {
|
Line 6166 ol.LC_primary_menu {
|
margin: 0.2em 0 0 0; |
margin: 0.2em 0 0 0; |
} |
} |
|
|
|
span.LC_new_message{ |
|
font-weight:bold; |
|
color: darkred; |
|
} |
|
|
ol#LC_PathBreadcrumbs { |
ol#LC_PathBreadcrumbs { |
margin: 0; |
margin: 0; |
} |
} |
Line 6193 ol#LC_MenuBreadcrumbs,
|
Line 6324 ol#LC_MenuBreadcrumbs,
|
ol#LC_PathBreadcrumbs { |
ol#LC_PathBreadcrumbs { |
padding-left: 10px; |
padding-left: 10px; |
margin: 0; |
margin: 0; |
list-style-position: inside; |
margin: 0; |
/* SD working here |
height: 2.5em; /* equal to #LC_breadcrumbs line-height */ |
white-space: nowrap; */ |
|
} |
} |
|
|
ol#LC_MenuBreadcrumbs li, |
ol#LC_MenuBreadcrumbs li, |
ol#LC_PathBreadcrumbs li, |
ol#LC_PathBreadcrumbs li, |
ul.LC_CourseBreadcrumbs li { |
ul.LC_CourseBreadcrumbs li { |
display: inline; |
display: inline; |
white-space: nowrap; |
white-space: normal; |
/* SD working here |
|
white-space: normal; */ |
|
} |
} |
|
|
ol#LC_MenuBreadcrumbs li a, |
ol#LC_MenuBreadcrumbs li a, |
Line 6213 ul.LC_CourseBreadcrumbs li a {
|
Line 6341 ul.LC_CourseBreadcrumbs li a {
|
font-size:90%; |
font-size:90%; |
} |
} |
|
|
|
ol#LC_MenuBreadcrumbs h1 { |
|
display: inline; |
|
font-size: 90%; |
|
line-height: 2.5em; |
|
margin: 0; |
|
padding: 0; |
|
} |
|
|
ol#LC_PathBreadcrumbs li a { |
ol#LC_PathBreadcrumbs li a { |
text-decoration:none; |
text-decoration:none; |
font-size:100%; |
font-size:100%; |
Line 6457 ul.LC_funclist {
|
Line 6593 ul.LC_funclist {
|
padding: 0.5em 1em 0.5em 0; |
padding: 0.5em 1em 0.5em 0; |
} |
} |
|
|
|
ul.LC_funclist > li:first-child { |
|
font-weight:bold; |
|
margin-left:0.8em; |
|
} |
|
|
ul.LC_funclist + ul.LC_funclist { |
ul.LC_funclist + ul.LC_funclist { |
/* |
/* |
left border as a seperator if we have more than |
left border as a seperator if we have more than |
Line 6483 ul.LC_funclist li {
|
Line 6624 ul.LC_funclist li {
|
background:#DAE0D2 url("/gcimenu_bg.gif") repeat-x bottom; |
background:#DAE0D2 url("/gcimenu_bg.gif") repeat-x bottom; |
font-size:93%; |
font-size:93%; |
line-height:normal; |
line-height:normal; |
|
margin: 0.5em 0 0.5em 0; |
} |
} |
#gciheader ul { |
#gciheader ul { |
margin:0; |
margin:0; |
Line 6801 sub start_page {
|
Line 6943 sub start_page {
|
#if bread_crumbs_component exists show it as headline else show only the breadcrumbs |
#if bread_crumbs_component exists show it as headline else show only the breadcrumbs |
if(exists($args->{'bread_crumbs_component'})){ |
if(exists($args->{'bread_crumbs_component'})){ |
$result .= &Apache::lonhtmlcommon::breadcrumbs($args->{'bread_crumbs_component'}); |
$result .= &Apache::lonhtmlcommon::breadcrumbs($args->{'bread_crumbs_component'}); |
}else{ |
} elsif (exists($args->{'bread_crumbs_menulink'})) { |
$result .= &Apache::lonhtmlcommon::breadcrumbs(); |
$result .= &Apache::lonhtmlcommon::breadcrumbs('','',$args->{'bread_crumbs_menulink'}); |
|
} else { |
|
$result .= &Apache::lonhtmlcommon::breadcrumbs(); |
} |
} |
} |
} |
return $result; |
return $result; |
Line 10898 sub existing_gcitest_courses {
|
Line 11042 sub existing_gcitest_courses {
|
} else { |
} else { |
next; |
next; |
} |
} |
my ($tstart,$tend) = split('.',$env{$envkey}); |
my ($tstart,$tend) = split(/\./,$env{$envkey}); |
if (((!$tstart) || ($tstart < $now)) && ((!$tend) || ($tend > $now))) { |
if (((!$tstart) || ($tstart < $now)) && ((!$tend) || ($tend > $now))) { |
my $descr = $env{'course.'.$cdom.'_'.$cnum.'.description'}; |
my $descr = $env{'course.'.$cdom.'_'.$cnum.'.description'}; |
if ($descr ne '') { |
if ($descr ne '') { |
Line 10909 sub existing_gcitest_courses {
|
Line 11053 sub existing_gcitest_courses {
|
return %courses; |
return %courses; |
} |
} |
|
|
|
sub gcitest_switcher { |
|
my ($role,$formname,%courses) = @_; |
|
my $output; |
|
my %Sortby; |
|
foreach my $course (sort(keys(%courses))) { |
|
next unless (ref($courses{$course}) eq 'HASH'); |
|
my $clean_title = $courses{$course}{'description'}; |
|
$clean_title =~ s/\W+//g; |
|
if ($clean_title eq '') { |
|
$clean_title = $courses{$course}{'description'}; |
|
} |
|
push(@{$Sortby{$clean_title}},$course); |
|
} |
|
my @sorted_courses = sort { lc($a) cmp lc($b) } (keys(%Sortby)); |
|
my $default; |
|
if (@sorted_courses > 1) { |
|
if (($env{'request.course.id'}) && ($courses{$env{'request.course.id'}})) { |
|
$default = &mt('Switch concept test ...'); |
|
} else { |
|
$default = &mt('Select a concept test ...'); |
|
} |
|
} else { |
|
unless (($env{'request.course.id'}) && ($courses{$env{'request.course.id'}})) { |
|
$default = &mt('Select concept test ...'); |
|
} |
|
} |
|
if ($default) { |
|
$output = '<form name="'.$formname.'" action="/adm/roles" method="post">'. |
|
'<select name="newrole" onchange="javascript:courseswitcher();">'. |
|
'<option value="" selected="selected">'.$default.'</option>'; |
|
foreach my $item (@sorted_courses) { |
|
foreach my $course (@{$Sortby{$item}}) { |
|
my ($cdom,$cnum) = split('_',$course); |
|
$output .= '<option value="'.$role.'./'.$cdom.'/'.$cnum.'">'.$courses{$course}{'description'}.'</option>'; |
|
} |
|
} |
|
$output .= '</select><input type="hidden" name="selectrole" value="" /></form>'; |
|
} |
|
return $output; |
|
} |
|
|
|
sub gcitest_switcher_js { |
|
my ($current,$numcourses,$formname) = @_; |
|
my $output = <<"ENDJS"; |
|
|
|
function courseswitcher(caller) { |
|
var numcourses = $numcourses; |
|
var current = '$current'; |
|
var choice = document.$formname.newrole.options[document.$formname.newrole.selectedIndex].value; |
|
if (choice == '') { |
|
if (caller == 'icon') { |
|
alert('No Concept Test selected'); |
|
} |
|
document.$formname.selectrole.value = ''; |
|
return; |
|
} |
|
if (choice == current) { |
|
if ((caller != 'icon') && (numcourses > 1)) { |
|
alert('You have selected the current course.\\nPlease select a different Concept Test course'); |
|
} |
|
document.$formname.newrole.selectedIndex = 0; |
|
document.$formname.selectrole.value = ''; |
|
return; |
|
} |
|
document.$formname.selectrole.value = '1'; |
|
document.$formname.submit(); |
|
return; |
|
} |
|
|
|
ENDJS |
|
return $output; |
|
} |
|
|
|
|
|
|
=pod |
=pod |
|
|
=back |
=back |