'
- .&Apache::lonhtmlcommon::start_pick_box()
-
- .&Apache::lonhtmlcommon::row_headline()
- .'
'
- .&Apache::lonhtmlcommon::row_closure()
-
- .&Apache::lonhtmlcommon::row_title($lt{'user'})
- .'
'
- .&Apache::loncommon::studentbrowser_javascript()
- .&Apache::loncommon::selectstudent_link('ccrs','ccuname','ccdomain')
- .&Apache::lonhtmlcommon::row_closure()
-
- .&Apache::lonhtmlcommon::row_title($lt{'dmn'},"","LC_odd_row_value")
- .$domform
- .&Apache::lonhtmlcommon::row_closure()
-
- .&Apache::lonhtmlcommon::row_headline()
- .'
'
- .&Apache::lonhtmlcommon::row_closure()
-
- .&Apache::lonhtmlcommon::row_title($lt{'ctit'})
- .'
'
- .&Apache::lonhtmlcommon::row_closure()
-
- .&Apache::lonhtmlcommon::row_title($lt{'chsr'})
- .$course_home
- .&Apache::lonhtmlcommon::row_closure()
+ $r->print('
-$lt{'co'} $lt{'gc'}
-
-
-
-
-
-$lt{'ginf'}
-
-
-
-
-
-
-
-$lt{'grco'}
-
-
-
-
$lt{'mssg'}
-
-
-
-
-
-$lt{'cmmn'}
-
-
-
-
-
-$lt{'acco'}
-
-
-
-
-
-$lt{'rshm'}
-
-
-
-$lt{'grts'}
-
-$lt{'grtq'}
-Mb
-
-
+ $r->print('
-
-
-
-ENDDOCUMENT
+
+'
+ );
}
- $r->print($end_page);
+ $r->print(''.
+ $end_page);
}
# ====================================================== Phase two: make course
@@ -787,10 +675,14 @@ sub create_course {
# Make the requested user a course coordinator or group coordinator
#
if (($ccdomain) && ($ccuname)) {
+ my $ccrole = 'cc';
+ if ($crstype eq 'Community') {
+ $ccrole = 'co';
+ }
$r->print(&mt('Assigning role of '.$crstype.' Coordinator to [_1]:',
,''.$ccuname.':'.$ccdomain.'')
.&Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid,
- 'cc','','','','','createcourse').'');
+ $ccrole,'','','','','createcourse').'
');
}
if ($env{'form.setkeys'}) {
$r->print(
@@ -806,7 +698,7 @@ sub create_course {
}
sub print_intro_page {
- my $r = shift;
+ my ($r,$show_all_choices) = @_;
my $start_page =
&Apache::loncommon::start_page('Create a New Course or Community');
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses');
@@ -814,51 +706,77 @@ sub print_intro_page {
&Apache::loncommon::end_page();
my $helplink=&Apache::loncommon::help_open_topic('Create_Course_Community',&mt('Help on Creating Courses and Communities'));
- my @choices = ({ internal_name => 'courseone',
- name => &mt('Create a single course'),
- short_description =>
- &mt('Create a new course by completing an online form.'),
- },
- { internal_name => 'groupone',
- name => &mt('Create a single community'),
- short_description =>
- &mt('Create a new collaborative community by completing an online form.'),
- },
- { internal_name => 'batchone',
- name => &mt('Create courses/communities by uploading an attributes file'),
- short_description =>
- &mt('Upload an attributes file containing specifications for one or more courses or communities in XML format.'),
- help => 'Batch_Creation',
- },
- { internal_name => 'requestdisplay',
- name => &mt('Approve or reject course requests'),
- short_description =>
- &mt('Display course creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'),
- },
- { internal_name => 'creationlog',
- name => &mt('View course creation log'),
- short_description =>
- &mt('Display information about when, how and by whom courses were created in this domain.'),
- },
+ # Create menu
+ my @menu;
+ @menu =
+ ({ categorytitle => 'Course/Community Creation',
+ items => [
+ {
+ linktext => 'Create a single course',
+ url => '/adm/createcourse?phase=courseone',
+ permission => 1,
+ #help => '',
+ icon => 'ccrs.png',
+ linktitle => 'Create a new course by completing an online form.'
+ },
+ {
+ linktext => 'Create a single community',
+ url => '/adm/createcourse?phase=groupone',
+ permission => $show_all_choices,
+ #help => '',
+ icon => 'ccrs.png',
+ linktitle => 'Create a new collaborative community by completing an online form.'
+ },
+ {
+ linktext => 'Create courses/communities by uploading an attributes file',
+ url => '/adm/createcourse?phase=batchone',
+ permission => 1,
+ help => 'Batch_Creation',
+ icon => 'ccrs.png',
+ linktitle => 'Upload an attributes file containing specifications for one or more courses or communities in XML format.'
+ },
+ ]
+ },
+ { categorytitle => 'Course/Community Requests',
+ items => [
+ {
+ linktext => 'Approve or reject requests',
+ url => '/adm/createcourse?phase=requestdisplay',
+ permission => $show_all_choices,
+ #help => '',
+ icon => 'ccrs.png',
+ linktitle => 'Display course and community creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'
+ },
+ {
+ linktext => 'Display official course requests',
+ url => '/adm/createcourse?phase=pendingdisplay',
+ permission => $show_all_choices,
+ #help => '',
+ icon => 'ccrs.png',
+ linktitle => 'Display official course requests submitted by authorized users, held pending validation of instructor status.'
+ },
+ ]
+ },
+ { categorytitle => 'Administration',
+ items => [
+ {
+ linktext => 'View creation log',
+ url => '/adm/createcourse?phase=creationlog',
+ permission => $show_all_choices,
+ #help => '',
+ icon => 'document-properties.png',
+ linktitle => 'Display information about when, how and by whom courses and communities were created in this domain.'
+ },
+ ]
+ },
+ );
+
+ $r->print(
+ $start_page
+ .$crumbs
+ .&Apache::lonhtmlcommon::generate_menu(@menu)
+ .$end_page
);
- my $options;
- foreach my $choice (@choices) {
- $options .='
'.
- $choice->{'name'}.'';
- if (exists($choice->{'help'})) {
- $options .= &Apache::loncommon::help_open_topic($choice->{'help'});
- }
- $options .= "
\n".' '.(' 'x8).$choice->{'short_description'}.
- "\n";
- }
-
- $r->print(<'.
'
'.
'');
+ 'value="'.&mt('Create Courses/Communities').'" />');
$r->print($end_page);
return;
}
@@ -926,15 +844,16 @@ sub courserequestbrowser_javascript {
ENDREQBRW
@@ -962,8 +881,6 @@ sub print_creation_logs {
foreach my $item ('show','page','type','context') {
$curr{$item} = $env{'form.'.$item};
}
- my $createdafter = &Apache::lonhtmlcommon::get_date_from_form('created_after_date');
- my $createdbefore = &Apache::lonhtmlcommon::get_date_from_form('created_before_date');
$curr{'created_after_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_after_date');
$curr{'created_before_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_before_date');
foreach my $key (keys(%defaults)) {
@@ -971,21 +888,24 @@ sub print_creation_logs {
$curr{$key} = $defaults{$key};
}
}
- my (%whodunit,$version);
- ($version) = ($r->dir_config('lonVersion') =~ /^([\d\.]+)\-/);
- $r->print(&creation_display_filter($formname,\%curr,$version));
+ my %whodunit;
+ $r->print(&creation_display_filter($formname,\%curr));
my $showntablehdr = 0;
my $tablehdr = &Apache::loncommon::start_data_table().
&Apache::loncommon::start_data_table_header_row().
' | '.&mt('Creation Date').' | '.
''.&mt('Creator').' | '.&mt('Description').' | '.
- ''.&mt('Course Owner(s)').' | ';
+ ''.&mt('Owner(s)').' | ';
if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'any')) {
$tablehdr .= ''.&mt('Institutional Code').' | ';
- }
- $tablehdr .= ''.&mt('Course Type').' | '.
- ''.&mt('Creation Context').' | '.
- &Apache::loncommon::end_data_table_header_row();
+ }
+ if ($curr{'type'} eq 'any') {
+ $tablehdr .= ''.&mt('Course Type').' | ';
+ }
+ if ($curr{'context'} eq 'any') {
+ $tablehdr .= ''.&mt('Creation Context').' | ';
+ }
+ $tablehdr .= &Apache::loncommon::end_data_table_header_row();
my ($minshown,$maxshown);
$minshown = 1;
my $count = 0;
@@ -1034,6 +954,12 @@ sub print_creation_logs {
undef,undef,undef,$curr{'created_before_date'},
$curr{'created_after_date'},$creationcontext);
foreach my $cid (sort { $courses{$b}{'created'}<=>$courses{$a}{'created'} } (keys(%courses))) {
+ if ($curr{'show'} ne &mt('all')) {
+ if ($count >= $curr{'page'} * $curr{'show'}) {
+ $more_records = 1;
+ last;
+ }
+ }
$count ++;
next if ($count < $minshown);
if (!$showntablehdr) {
@@ -1106,7 +1032,13 @@ sub print_creation_logs {
if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'any')) {
$r->print(''.$courses{$cid}{'inst_code'}.' | ');
}
- $r->print(''.$showtype.' | '.$showcontext.' | '.&Apache::loncommon::end_data_table_row()."\n");
+ if ($curr{'type'} eq 'any') {
+ $r->print(' | '.$showtype.' | ');
+ }
+ if ($curr{'context'} eq 'any') {
+ $r->print(''.$showcontext.' | ');
+ }
+ $r->print(''.&Apache::loncommon::end_data_table_row()."\n");
}
if ($showntablehdr) {
$r->print(&Apache::loncommon::end_data_table().' ');
@@ -1147,7 +1079,7 @@ ENDSCRIPT
}
sub creation_display_filter {
- my ($formname,$curr,$version) = @_;
+ my ($formname,$curr) = @_;
my $nolink = 1;
my ($contexts,$contextnames) = &context_names();
my $output = ''.
@@ -1163,14 +1095,14 @@ sub creation_display_filter {
&Apache::lonhtmlcommon::date_setter($formname,'created_before_date',
$curr->{'created_before_date'},undef,
undef,undef,undef,undef,undef,undef,$nolink);
- $output .= ' | '.&mt('Window during which course was created:').' '.
+ $output .= ' | '.&mt('Window during which course/community was created:').' '.
''.&mt('After:').
' | '.$startform.' | '.
''.&mt('Before:').' | '.
''.$endform.' | '.
' | '.
' | ';
- my ($types,$typenames) = &course_types();
+ my ($types,$typenames) = &Apache::loncommon::course_types();
if (ref($types) eq 'ARRAY') {
if (@{$types} > 1) {
$output .= ''.
@@ -1218,36 +1150,18 @@ sub creation_display_filter {
# Update Display button
$output .= ' '.
''.
- ' ';
-
- # Server version info
- $output .= ''.
- &mt('Only courses created from servers running LON-CAPA [_1] or later are displayed.','2.9.0');
- if ($version) {
- $output .= ' '.&mt('This LON-CAPA server is version [_1]',$version);
- }
- $output .= ' ';
+ ' ';
return $output;
}
-sub course_types {
- my @types = qw(official unofficial community);
- my %typename = (
- official => 'Official course',
- unofficial => 'Unofficial course',
- community => 'Community',
- );
- return (\@types,\%typename);
-}
-
sub context_names {
- my @contexts = qw(auto web dc_create requestcrs);
+ my @contexts = qw(auto web dc_create requestcourses);
my %contextnames =
&Apache::lonlocal::texthash (
- auto => 'Automated creation from batch file',
- web => 'Batch creation from uploaded file',
- dc_create => 'Single course created by Domain Coordinator',
- requestcrs => 'Processing of submitted course request',
+ auto => 'Automated creation from batch file',
+ web => 'Batch creation from uploaded file',
+ dc_create => 'Course or community created by Dom. Coord.',
+ requestcourses => 'Processing of submitted course request',
);
return (\@contexts,\%contextnames);
}
@@ -1306,6 +1220,13 @@ sub handler {
return OK;
}
+ my $show_all_choices = 0;
+ my $primary_rev = &Apache::lonnet::get_server_loncaparev($env{'request.role.domain'});
+ if (($primary_rev ne 'refused') && ($primary_rev ne 'error') &&
+ ($primary_rev ne 'unknown_cmd') && ($primary_rev ne 'no_such_host')) {
+ $show_all_choices = 1;
+ }
+
if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
@@ -1318,7 +1239,8 @@ sub handler {
text=>"Creation Options",
faq=>79,bug=>'Dom Coord Interface',});
if (($env{'form.phase'} eq 'coursetwo') ||
- ($env{'form.phase'} eq 'grouptwo')) {
+ (($env{'form.phase'} eq 'grouptwo') &&
+ ($show_all_choices))) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/createcourse?phase=$env{'form.prevphase'}",
text=>&mt('[_1] Creation Settings',),
@@ -1329,7 +1251,8 @@ sub handler {
faq=>9,bug=>'Dom Coord Interface',});
&create_course($r);
} elsif (($env{'form.phase'} eq 'courseone') ||
- ($env{'form.phase'} eq 'groupone')) {
+ (($env{'form.phase'} eq 'groupone') &&
+ ($show_all_choices))) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/createcourse?phase=$env{'form.phase'}",
text=>&mt('[_1] Creation Settings',),
@@ -1351,7 +1274,7 @@ sub handler {
text=>"Creation Outcome",
faq=>9,bug=>'Dom Coord Interface',});
&process_batchfile($r);
- } elsif ($env{'form.phase'} eq 'requestdisplay') {
+ } elsif (($env{'form.phase'} eq 'requestdisplay') && ($show_all_choices)) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/createcourse?phase=$env{'form.phase'}",
text=>&mt('[_1] Display Request Queue',),
@@ -1363,21 +1286,53 @@ sub handler {
&Apache::loncoursequeueadmin::display_queued_requests(
'domain',$env{'request.role.domain'}).''.
&Apache::loncommon::end_page());
- } elsif ($env{'form.phase'} eq 'requestchange') {
+ } elsif (($env{'form.phase'} eq 'requestchange') && ($show_all_choices)) {
+ if ($env{'form.queue'} eq 'pending') {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/createcourse?phase=pendingdisplay",
+ text=>&mt('Display Pending Queue',),
+ faq=>9,bug=>'Dom Coord Interface',});
+ } else {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/createcourse?phase=requestdisplay",
+ text=>&mt('[_1] Display Request Queue',),
+ faq=>9,bug=>'Dom Coord Interface',});
+ }
&Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"/adm/createcourse?phase=requestdisplay",
- text=>&mt('[_1] Display Request Queue',),
- faq=>9,bug=>'Dom Coord Interface',},
- {href=>"/adm/createcourse?phase=requestchange",
- text=>&mt('[_1] Requests Updated',),
- faq=>9,bug=>'Dom Coord Interface',},);
+ ({href=>"/adm/createcourse?phase=requestchange",
+ text=>&mt('[_1] Requests Updated',),
+ faq=>9,bug=>'Dom Coord Interface',},);
my $start_page=&Apache::loncommon::start_page('Update Requests Result');
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Requests Updated','Course_Request',undef,'Course_Request');
$r->print($start_page.$crumbs."\n".''.
&Apache::loncoursequeueadmin::update_request_queue(
'domain',$env{'request.role.domain'}).' '.
&Apache::loncommon::end_page());
- } elsif ($env{'form.phase'} eq 'creationlog') {
+ } elsif (($env{'form.phase'} eq 'pendingdisplay') && ($show_all_choices)) {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/createcourse?phase=$env{'form.phase'}",
+ text=>&mt('Display Pending Queue',),
+ faq=>9,bug=>'Dom Coord Interface',});
+ my $js = &courserequestbrowser_javascript();
+ my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js);
+ my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Request',undef,'Course_Request');
+ $r->print($start_page.$crumbs."\n".''.
+ &Apache::loncoursequeueadmin::display_queued_requests(
+ 'pending',$env{'request.role.domain'}).' '.
+ &Apache::loncommon::end_page());
+ } elsif (($env{'form.phase'} eq 'requestvalidation') && ($show_all_choices)) {
+ my $js = &courserequestbrowser_javascript();
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/createcourse?phase=pendingdisplay",
+ text=>&mt('Display Pending Queue'),},
+ {href=>"/adm/createcourse?phase=requestvalidation",
+ text=>&mt('Validation Attempted'),},);
+ my $start_page=&Apache::loncommon::start_page('Requests Validation Result',$js);
+ my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Request',undef,'Course_Request');
+ $r->print($start_page.$crumbs."\n".''.
+ &Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'}).' '.
+ &Apache::loncommon::end_page());
+ } elsif (($env{'form.phase'} eq 'creationlog') && ($show_all_choices)) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/createcourse?phase=creationlog",
text=>&mt('[_1] Display Creation History',),});
@@ -1386,13 +1341,13 @@ sub handler {
&syllabuslink_javascript()."\n".
'// ]]>'."\n".
'';
- my $start_page=&Apache::loncommon::start_page('Course Creation Logs',$js);
- my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Created Courses','Creation_Log',undef,'Creation_Log');
+ my $start_page=&Apache::loncommon::start_page('Course/Community Creation Logs',$js);
+ my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Created Courses/Communities','Creation_Log',undef,'Creation_Log');
$r->print($start_page.$crumbs."\n".'');
&print_creation_logs($r);
$r->print(' '.&Apache::loncommon::end_page());
} else {
- &print_intro_page($r);
+ &print_intro_page($r,$show_all_choices);
}
} else {
$env{'user.error.msg'}=
|
|