-ENDPASTE
- $r->print(' ');
+ $r->print('
'
+ .''.&mt('Clipboard').' '
+ .'');
+ $r->print(' ');
}
sub do_paste_from_buffer {
@@ -1473,8 +1508,7 @@ sub handle_edit_cmd {
}
sub editor {
- my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$type)=@_;
-
+ my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$crstype)=@_;
my $container= ($env{'form.pagepath'}) ? 'page'
: 'sequence';
@@ -1489,9 +1523,14 @@ sub editor {
$LONCAPA::map::resources[$idx]='';
}
- my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order)=
- &breadcrumbs($folder,$allowed,$type);
- $r->print($breadcrumbtrail);
+ my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order);
+ if ($allowed) {
+ ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order) =
+ &breadcrumbs($allowed,$crstype);
+ $r->print($breadcrumbtrail);
+ } else {
+ $randompick = -1;
+ }
# ------------------------------------------------------------ Process commands
@@ -1569,34 +1608,70 @@ sub editor {
my $idx=0;
my $shown=0;
if (($ishidden) || ($isencrypted) || ($randompick>=0) || ($is_random_order)) {
- $r->print(''.&mt('Parameters').':
'.
- ($randompick>=0?''.&mt('randomly pick [_1] resources',$randompick).' ':'').
+ $r->print(''.
+ '
'.&mt('Parameters:').
+ '
'.
+ ($randompick>=0?''.&mt('randomly pick [quant,_1,resource]',$randompick).' ':'').
($ishidden?''.&mt('contents hidden').' ':'').
($isencrypted?''.&mt('URLs hidden').' ':'').
+ ($is_random_order?''.&mt('random order').' ':'').
' ');
+ if ($randompick>=0) {
+ $r->print('
'
+ .&mt('Caution: this folder is set to randomly pick a subset'
+ .' of resources. Adding or removing resources from this'
+ .' folder will change the set of resources that the'
+ .' students see, resulting in spurious or missing credit'
+ .' for completed problems, not limited to ones you'
+ .' modify. Do not modify the contents of this folder if'
+ .' it is in active student use.')
+ .'
'
+ );
+ }
+ if ($is_random_order) {
+ $r->print('
'
+ .&mt('Caution: this folder is set to randomly order its'
+ .' contents. Adding or removing resources from this folder'
+ .' will change the order of resources shown.')
+ .'
'
+ );
+ }
+ $r->print('
');
}
- if ($randompick>=0) {
- $r->print(''.&mt('Caution: this folder is set to randomly pick a subset of resources. Adding or removing resources from this folder will change the set of resources that the students see, resulting in spurious or missing credit for completed problems, not limited to ones you modify. Do not modify the contents of this folder if it is in active student use.').'
');
- }
- if ($is_random_order) {
- $r->print(''.&mt('Caution: this folder is set to randomly order its contents. Adding or removing resources from this folder will change the order of resources shown.').'
');
- }
- $r->print('');
+
+ my $output;
foreach my $res (@LONCAPA::map::order) {
- my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]);
- $name=&LONCAPA::map::qtescape($name);
- $url=&LONCAPA::map::qtescape($url);
- unless ($name) { $name=(split(/\//,$url))[-1]; }
- unless ($name) { $idx++; next; }
- $r->print(&entryline($idx,$name,$url,$folder,$allowed,$res,
- $coursenum));
- $idx++;
- $shown++;
+ my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]);
+ $name=&LONCAPA::map::qtescape($name);
+ $url=&LONCAPA::map::qtescape($url);
+ unless ($name) { $name=(split(/\//,$url))[-1]; }
+ unless ($name) { $idx++; next; }
+ $output .= &entryline($idx,$name,$url,$folder,$allowed,$res,
+ $coursenum,$crstype);
+ $idx++;
+ $shown++;
}
- unless ($shown) {
- $r->print(''.&mt('Currently no documents.').' ');
+ if ($shown) {
+ $r->print(&Apache::loncommon::start_data_table());
+ if ($allowed) {
+ $r->print(&Apache::loncommon::start_data_table_header_row()
+ .''.&mt('Move').' '
+ .''.&mt('Actions').' '
+ .''.&mt('Document').' ');
+ if ($folder !~ /^supplemental/) {
+ $->print(''.&mt('Settings').' ');
+ }
+ $r->print(&Apache::loncommon::end_data_table_header_row());
+ }
+ $r->print($output
+ .&Apache::loncommon::end_data_table()
+ );
+ } else {
+ $r->print(''
+ .&mt('Currently no documents.')
+ .'
'
+ );
}
- $r->print("\n
\n");
if ($allowed) {
&print_paste_buffer($r,$container);
}
@@ -1667,7 +1742,7 @@ sub process_file_upload {
return 'failed';
} else {
if ($parseaction eq 'parse') {
- my $total_embedded = keys(%{$allfiles});
+ my $total_embedded = scalar(keys(%{$allfiles}));
if ($total_embedded > 0) {
my $num = 0;
my $state = '
@@ -1740,8 +1815,7 @@ sub parse_supplemental_title {
# --------------------------------------------------------------- An entry line
sub entryline {
- my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_;
-
+ my ($index,$title,$url,$folder,$allowed,$residx,$coursenum,$crstype)=@_;
my ($foldertitle,$pagetitle,$renametitle);
if (&is_supplemental_title($title)) {
($title,$foldertitle,$renametitle) = &parse_supplemental_title($title);
@@ -1759,7 +1833,7 @@ sub entryline {
$renametitle=~s/\\/\\\\/g;
$renametitle=~s/\"\;/\\\"/g;
$renametitle=~s/ /%20/g;
- my $line='';
+ my $line=&Apache::loncommon::start_data_table_row();
my ($form_start,$form_end);
# Edit commands
my ($container, $type, $esc_path, $path, $symb);
@@ -1790,7 +1864,7 @@ sub entryline {
ne '')) {
$selectbox=
' '.
- '';
+ '';
for (my $i=1;$i<=$#LONCAPA::map::order+1;$i++) {
if ($i==$incindex) {
$selectbox.='('.$i.') ';
@@ -1862,18 +1936,16 @@ END
$form_end = '';
$line.=(<
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
$form_start
@@ -1900,7 +1972,7 @@ END
my $pagefile;
if ($uploaded) {
if ($extension eq 'sequence') {
- $icon=$iconpath.'/folder_closed.gif';
+ $icon=$iconpath.'/navmap.folder.closed.gif';
$url=~/\Q$coursenum\E\/([\/\w]+)\.sequence$/;
$url='/adm/coursedocs?';
$folderarg=$1;
@@ -1972,7 +2044,7 @@ END
'parameter_randomorder'))[0]=~/^yes$/i);
$url.='folderpath='.&escape($folderpath).$cpinfo;
$parameterset=''.&mt('Randomly Pick: ').
- ' '.
@@ -2000,18 +2072,24 @@ END
$url.='pagepath='.&escape($pagepath).
'&pagesymb='.&escape($symb).$cpinfo;
}
- if ($external) {
+ if (($external) && ($allowed)) {
my $form = ($folder =~ /^default/)? 'newext' : 'supnewext';
$external = ' '.&mt('Edit').' ';
} else {
undef($external);
}
+ my $reinit;
+ if ($crstype eq 'Community') {
+ $reinit = &mt('(re-initialize community to access)');
+ } else {
+ $reinit = &mt('(re-initialize course to access)');
+ }
$line.='
-
+
'.($url?'':'').' '.($url?' ':'').'
-
- '.($url?"":'').$title.($url?' ':' '.&mt('(re-initialize course to access)').' ').$external."
+
+ '.($url?"":'').$title.($url?' ':' '.$reinit.' ').$external."
";
if (($allowed) && ($folder!~/^supplemental/)) {
my %lt=&Apache::lonlocal::texthash(
@@ -2036,7 +2114,7 @@ END
$form_start $parameterset $form_end
ENDPARMS
}
- $line.=" ";
+ $line.=&Apache::loncommon::end_data_table_row();
return $line;
}
@@ -2159,7 +2237,7 @@ List Symbs
sub list_symbs {
my ($r) = @_;
- my $type = &Apache::loncommon::course_type();
+ my $crstype = &Apache::loncommon::course_type();
$r->print(&Apache::loncommon::start_page('Symb List'));
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Symb List'));
my $navmap = Apache::lonnavmaps::navmap->new();
@@ -2168,7 +2246,7 @@ sub list_symbs {
''.
&mt('Unable to retrieve information about course contents').
'
');
- &Apache::lonnet::logthis('Symb list failed - could not create navmap object in '.lc($type).':'.$env{'request.course.id'});
+ &Apache::lonnet::logthis('Symb list failed - could not create navmap object in '.lc($crstype).':'.$env{'request.course.id'});
} else {
$r->print(" \n");
foreach my $res ($navmap->retrieveResources()) {
@@ -2182,11 +2260,11 @@ sub list_symbs {
sub verifycontent {
my ($r) = @_;
- my $type = &Apache::loncommon::course_type();
+ my $crstype = &Apache::loncommon::course_type();
my $loaderror=&Apache::lonnet::overloaderror($r);
if ($loaderror) { return $loaderror; }
- $r->print(&Apache::loncommon::start_page('Verify '.$type.' Documents'));
- $r->print(&Apache::lonhtmlcommon::breadcrumbs('Verify '.$type.' Documents'));
+ $r->print(&Apache::loncommon::start_page('Verify '.$crstype.' Documents'));
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs('Verify '.$crstype.' Documents'));
$hashtied=0;
undef %alreadyseen;
%alreadyseen=();
@@ -2195,7 +2273,7 @@ sub verifycontent {
if ($hash{$key}=~/\.(page|sequence)$/) {
if (($key=~/^src_/) && ($alreadyseen{&unescape($hash{$key})})) {
$r->print(''.
- &mt('The following sequence or page is included more than once in your '.$type.': ').
+ &mt('The following sequence or page is included more than once in your '.$crstype.': ').
&unescape($hash{$key}).' '.
&mt('Note that grading records for problems included in this sequence or folder will overlap. '));
}
@@ -2218,9 +2296,9 @@ sub devalidateversioncache {
sub checkversions {
my ($r) = @_;
- my $type = &Apache::loncommon::course_type();
- $r->print(&Apache::loncommon::start_page("Check $type Document Versions"));
- $r->print(&Apache::lonhtmlcommon::breadcrumbs("Check $type Document Versions"));
+ my $crstype = &Apache::loncommon::course_type();
+ $r->print(&Apache::loncommon::start_page("Check $crstype Document Versions"));
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs("Check $crstype Document Versions"));
my $header='';
my $startsel='';
my $monthsel='';
@@ -2281,7 +2359,7 @@ sub checkversions {
&changewarning($r,'');
if ($env{'form.timerange'} eq 'all') {
# show all documents
- $header=&mt('All Documents in '.$type);
+ $header=&mt('All Documents in '.$crstype);
$allsel=1;
foreach my $key (keys(%hash)) {
if ($key=~/^ids\_(\/res\/.+)$/) {
@@ -2326,7 +2404,7 @@ sub checkversions {
$env{'course.'.$env{'request.course.id'}.'.domain'},
$env{'course.'.$env{'request.course.id'}.'.num'});
my %lt=&Apache::lonlocal::texthash
- ('st' => 'Version changes since start of '.$type,
+ ('st' => 'Version changes since start of '.$crstype,
'lm' => 'Version changes since last Month',
'lw' => 'Version changes since last Week',
'sy' => 'Version changes since Yesterday',
@@ -2335,9 +2413,9 @@ sub checkversions {
'fi' => 'File',
'md' => 'Modification Date',
'mr' => 'Most recently published Version',
- 've' => 'Version used in '.$type,
- 'vu' => 'Set Version to be used in '.$type,
-'sv' => 'Set Versions to be used in '.$type.' according to Selections below',
+ 've' => 'Version used in '.$crstype,
+ 'vu' => 'Set Version to be used in '.$crstype,
+'sv' => 'Set Versions to be used in '.$crstype.' according to Selections below',
'sm' => 'Keep all Resources up-to-date with most recent Versions (default)',
'sc' => 'Set all Resource Versions to current Version (Fix Versions)',
'di' => 'Differences');
@@ -2384,7 +2462,7 @@ ENDHEADERS
'Most Recent: '.
''.$currentversion.' '.
' '.
- 'In '.$type.': '.
+ ' In '.$crstype.': '.
'');
# Used in course
my $usedversion=$hash{'version_'.$linkurl};
@@ -2401,7 +2479,7 @@ ENDHEADERS
('select_form_order' =>
['',1..$currentversion,'mostrecent'],
'' => '',
- 'mostrecent' => 'most recent',
+ 'mostrecent' => &mt('most recent'),
map {$_,$_} (1..$currentversion))));
$r->print(' ');
my $lastold=1;
@@ -2502,18 +2580,18 @@ sub changewarning {
$message='Changes will become active for your current session after [_1], or the next time you log in.';
}
$r->print("\n\n".
-''."\n".
''."\n\n");
+$help{'Caching'}.''."\n\n");
}
@@ -2521,7 +2599,7 @@ sub init_breadcrumbs {
my ($form,$text)=@_;
&Apache::lonhtmlcommon::clear_breadcrumbs();
&Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/coursedocs",
- text=>"Edit ".&Apache::loncommon::course_type(),
+ text=>&Apache::loncommon::course_type().' Editor',
faq=>273,
bug=>'Instructor Interface',
help => 'Docs_Adding_Course_Doc'});
@@ -2539,8 +2617,17 @@ sub handler {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
return OK if $r->header_only;
- my $type = &Apache::loncommon::course_type();
+ my $crstype = &Apache::loncommon::course_type();
+ my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'};
+ if ($coursedom =~ /^\w+citest$/) {
+ my $coursenum = $env{'course.'.$env{'request.course.id'}.'.num'};
+ my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'});
+ if ($allowed) {
+ &concept_test_builder($r,$coursedom,$coursenum);
+ return OK;
+ }
+ }
# --------------------------------------------- Initialize help topics for this
foreach my $topic ('Adding_Course_Doc','Main_Course_Documents',
@@ -2583,7 +2670,7 @@ sub handler {
&init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' DOCS to Construction Space');
&dumpcourse($r);
} elsif ($allowed && $env{'form.exportcourse'}) {
- &init_breadcrumbs('exportcourse','Export '.&Apache::loncommon::course_type().' to IMS');
+ &init_breadcrumbs('exportcourse','IMS Export');
&exportcourse($r);
} else {
# is this a standard course?
@@ -2605,7 +2692,12 @@ sub handler {
&Apache::loncommon::restore_course_settings('docs_folderpath',
{'folderpath' => 'scalar'});
}
- if (!$env{'form.folderpath'}) {
+ if (!$allowed) {
+ unless($env{'form.folderpath'} =~ /^supplemental/) {
+ $env{'form.folderpath'} = '';
+ }
+ }
+ if (!$env{'form.folderpath'} && $allowed) {
&Apache::loncommon::restore_course_settings('docs_folderpath',
{'pagepath' => 'scalar'});
}
@@ -2614,7 +2706,7 @@ sub handler {
}
if ($env{'form.folderpath'} =~ /^supplemental_\d+/) {
$env{'form.folderpath'} = 'supplemental&'.
- &escape(&mt('Supplemental '.$type.' Documents')).'&'.
+ &escape(&mt('Supplemental '.$crstype.' Documents')).'&'.
$env{'form.folderpath'};
}
&Apache::loncommon::store_course_settings('docs_folderpath',
@@ -2637,7 +2729,9 @@ sub handler {
if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) {
$showdoc='/'.$1;
}
- unless ($showdoc) { # got called from remote
+ if ($showdoc) { # got called in sequence from course
+ $allowed=0;
+ } else {
if (($env{'form.folder'}=~/^(?:group|default)_/) ||
($env{'form.folder'} =~ m:^\d+/(pages|sequences)/:)) {
$forcestandard = 1;
@@ -2648,10 +2742,28 @@ sub handler {
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']);
$script=&Apache::lonratedt::editscript('simple');
}
- } else { # got called in sequence from course
- $allowed=0;
}
+# subroutine to list form elements
+sub create_list_elements {
+ my @formarr = @_;
+ my $list = '';
+ for my $button (@formarr){
+ for my $picture(keys %$button) {
+ #my $link = Apache::lonhtmlcommon::htmltag('a' ,$button->{$picture}, {href => "test"});
+ $list .= Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'});
+ }
+ }
+ return $list;
+}
+
+# subroutine to create ul from list elements
+sub create_form_ul {
+ my $list = shift;
+ my $ul = Apache::lonhtmlcommon::htmltag('ul',$list, {class => 'LC_ListStyleNormal'});
+ return $ul;
+}
+
# get course data
my $coursenum=$env{'course.'.$env{'request.course.id'}.'.num'};
my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'};
@@ -2670,15 +2782,37 @@ sub handler {
}
# -------------------------------------------------------------------- Body tag
$script = '';
- my $brcrum = [{href=>"/adm/createuser",text=>"$type Documents"}];
- $r->print(&Apache::loncommon::start_page("$type Documents", $script,
- {'force_register' => $showdoc,
- 'bread_crumbs' => $brcrum}).
- &Apache::loncommon::help_open_menu('','',273,'RAT'));
+ .'// '."\n"
+ .''."\n";
+
+ # Breadcrumbs
+ &Apache::lonhtmlcommon::clear_breadcrumbs();
+ if ($allowed) {
+ &Apache::lonhtmlcommon::add_breadcrumb({
+ href=>"/adm/coursedocs",text=>"$crstype Editor"});
+
+ $r->print(&Apache::loncommon::start_page("$crstype Editor", $script,
+ {'force_register' => $showdoc,})
+ .&Apache::loncommon::help_open_menu('','',273,'RAT')
+ .&Apache::lonhtmlcommon::breadcrumbs(
+ 'Editing the Table of Contents for your '.$crstype,
+ 'Docs_Adding_Course_Doc')
+ );
+ } elsif ($showdoc) {
+ $r->print(&Apache::loncommon::start_page("$crstype documents",undef,
+ {'force_register' => $showdoc,}));
+ } else {
+ my $folder=$env{'form.folder'};
+ if ($folder eq '' || $folder eq 'supplemental') {
+ $env{'form.folderpath'} = 'supplemental&'.
+ &escape(&mt('Supplemental '.$crstype.' Documents'));
+ }
+ my ($breadcrumbtrail) = &breadcrumbs($allowed,$crstype);
+ $r->print(&Apache::loncommon::start_page("Supplemental documents").
+ $breadcrumbtrail);
+ }
my %allfiles = ();
my %codebase = ();
@@ -2770,10 +2904,9 @@ sub handler {
unless ($showdoc || $upload_result eq 'phasetwo') {
# -----------------------------------------------------------------------------
my %lt=&Apache::lonlocal::texthash(
- 'uplm' => 'Upload a new main '.lc($type).' document',
- 'upls' => 'Upload a new supplemental '.lc($type).' document',
+ 'uplm' => 'Upload a new main '.lc($crstype).' document',
+ 'upls' => 'Upload a new supplemental '.lc($crstype).' document',
'impp' => 'Import a document',
- 'pubd' => 'Published Documents',
'copm' => 'All documents out of a published map into this folder',
'upld' => 'Upload Document',
'srch' => 'Search',
@@ -2796,16 +2929,16 @@ sub handler {
'grpo' => 'Group Portfolio',
'rost' => 'Course Roster',
'abou' => 'Personal Information Page for a User',
- 'imsf' => 'Import IMS package',
+ 'imsf' => 'IMS Import',
+ 'imsl' => 'Import IMS package',
'file' => 'File',
'title' => 'Title',
'comment' => 'Comment',
- 'parse' => 'Upload embedded images/multimedia files if HTML file!',
+ 'parse' => 'Upload embedded images/multimedia files if HTML file',
'nd' => 'Upload Document',
'pm' => 'Published Map',
'sd' => 'Special Document',
'mo' => 'More Options',
- 'hao' => 'Hide all Options'
);
# -----------------------------------------------------------------------------
my $fileupload=(<
CHBO
+ my $fileuploada = " $help{'Uploading_From_Harddrive'}";
my $fileuploadform=(<
@@ -2835,28 +2969,25 @@ CHBO
$checkbox
-
-
-
-
- $help{'Uploading_From_Harddrive'}
-
+FUFORM
+ #$list .= Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'});
+ #$fileuploadform .= create_form_ul(create_list_elements(@fileuploada));
+ $fileuploadform .= create_form_ul(Apache::lonhtmlcommon::htmltag('li',$fileuploada,{class => 'LC_menubuttons_inline_text'}));
+ $fileuploadform .= (<
FUFORM
my $simpleeditdefaultform=(<
- $lt{'pubd'}
- $uploadtag
-
-
-
-
- $help{'Importing_LON-CAPA_Resource'}
-
-
-
+SEDFFORM
+ my @simpleeditdefaultforma = (
+ { ' ' => "$uploadtag$lt{'srch'} " },
+ { ' ' => "$lt{'impo'} $help{'Importing_LON-CAPA_Resource'}" },
+ { ' ' => "$lt{'book'} " },
+ );
+ $simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma));
+ $simpleeditdefaultform .=(<
$lt{'copm'}
@@ -2873,10 +3004,7 @@ SEDFFORM
ERFORM
@@ -2894,7 +3022,7 @@ ERFORM
if ($env{'form.folder'} eq '' ||
$env{'form.folder'} eq 'supplemental') {
$folderpath='default&'.
- &escape(&mt('Main '.$type.' Documents'));
+ &escape(&mt('Main '.$crstype.' Documents'));
}
}
unless ($env{'form.pagepath'}) {
@@ -2916,46 +3044,64 @@ ERFORM
HIDDENFORM
}
# --------------------------------------------------------- Main tab structure
+
my $activeClass = 1;
my $active = '';
- $r->print('');
- if (($standard) && ($allowed) && (!$forcesupplement) && (($env{'form.folderpath'}=~/^default/) || ($env{'form.pagepath'}))) {
- if($activeClass == 1){
- $active = 'class="active"';
- $activeClass = 0;
- }
- }
- $r->print(''.&mt('Main Course Documents').' ');
- $active = '';
- if (!$forcestandard || ($env{'form.folderpath'}=~/^supplemental/)) {
- if($activeClass == 1){
- $active = 'class="active"';
+ my %tabtitles = (
+ main => {
+ Course => &mt('Main Course Documents'),
+ Community => &mt('Main Community Documents'),
+ },
+ supplemental => {
+ Course => &mt('Supplemental Course Documents'),
+ Community => &mt('Supplemental Community Documents'),
+ },
+ );
+ if ($allowed) {
+ $r->print('');
+ if (($standard) && ($allowed) && (!$forcesupplement) && (($env{'form.folderpath'}=~/^default/) || $env{'form.folderpath'}eq"" || ($env{'form.pagepath'}))) {
+ if($activeClass == 1){
+ $active = 'class="active"';
+ $activeClass = 0;
+ }
+ }
+ $r->print(''.$tabtitles{'main'}{$crstype}.' ');
+ $active = '';
+ if (!$forcestandard || ($env{'form.folderpath'}=~/^supplemental/)) {
+ if($activeClass == 1){
+ $active = 'class="active"';
+ }
}
+ $r->print(''.$tabtitles{'supplemental'}{$crstype}.' ');
+ $r->print(' ');
+ } else {
+ $r->print(' ');
}
- $r->print(''.&mt('Supplemental Course Documents').' ');
- $r->print(' ');
+ $r->print('
'
+ .'
');
# --------------------------------------------------------- Standard documents
my $savefolderpath;
- my $active = 'style="display: none;"';
+ $active = 'style="display: none;"';
if($activeClass == 0){
$active = 'style="display: block;"';
}
+ if ($allowed) {
$r->print('
');
my $folder=$env{'form.folder'};
if ($folder eq '' || $folder=~/^supplemental/) {
$folder='default';
$savefolderpath = $env{'form.folderpath'};
- $env{'form.folderpath'}='default&'.&escape(&mt('Main '.$type.' Documents'));
+ $env{'form.folderpath'}='default&'.&escape($tabtitles{'main'}{$crstype});
$uploadtag = '
';
}
my $postexec='';
if ($folder eq 'default') {
- $r->print(''
+ $r->print(''."\n"
);
} else {
#$postexec='self.close();';
@@ -2974,14 +3120,14 @@ HIDDENFORM
my $recoverform=(<
-
+ $lt{'reco'}
RFORM
my $imspform=(<
-
+ $lt{'imsf'}
IMSPFORM
@@ -2991,10 +3137,8 @@ IMSPFORM
$uploadtag
-
-
+ $lt{'navc'}
$help{'Navigate_Content'}
-
NNFORM
my $newsmppageform=(<
$uploadtag
-
- $help{'Simple Page'}
-
+ $lt{'sipa'}
+ $help{'Simple Page'}
NSPFORM
@@ -3014,10 +3156,8 @@ NSPFORM
$uploadtag
-
- $help{'Simple Problem'}
-
+ $lt{'sipr'}
+ $help{'Simple Problem'}
NSPROBFORM
@@ -3027,10 +3167,7 @@ NSPROBFORM
$uploadtag
-
-
-
+ $lt{'drbx'}
NDBFORM
@@ -3039,11 +3176,8 @@ NDBFORM
$uploadtag
-
-
+ $lt{'scuf'}
$help{'Score_Upload_Form'}
-
NEXUFORM
@@ -3052,11 +3186,8 @@ NEXUFORM
$uploadtag
-
-
+ $lt{'bull'}
$help{'Bulletin Board'}
-
NBFORM
@@ -3066,10 +3197,8 @@ NBFORM
$uploadtag
-
-
+ $lt{'mypi'}
$help{'My Personal Information Page'}
-
NAMFORM
@@ -3078,10 +3207,7 @@ NAMFORM
$uploadtag
-
-
-
+ $lt{'abou'}
NASOFORM
@@ -3092,42 +3218,36 @@ NASOFORM
$uploadtag
-
-
+ $lt{'rost'}
$help{'Course Roster'}
-
NROSTFORM
my $specialdocumentsform;
+my @specialdocumentsforma;
my $newfolderform;
+my $newfolderb;
unless ($env{'form.pagepath'}) {
my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
-
+
my $newpageform=(<
-
- $help{'Adding_Pages'}
-
+ $lt{'newp'}
+ $help{'Adding_Pages'}
NPFORM
+
$newfolderform=(<
-
- $help{'Adding_Folders'}
-
+ $lt{'newf'} $help{'Adding_Folders'}
NFFORM
@@ -3137,10 +3257,9 @@ NFFORM
$uploadtag
-
-
+ $lt{'syll'}
$help{'Syllabus'}
-
+
NSYLFORM
@@ -3150,36 +3269,54 @@ NSYLFORM
$uploadtag
-
-
+ $lt{'grpo'}
$help{'Group Portfolio'}
-
NGFFORM
-
- $specialdocumentsform=" $newpageform $newsylform $newgroupfileform";
+ @specialdocumentsforma=(
+ {' '=>$newpageform},
+ {' '=>$newsylform},
+ {' '=>$newgroupfileform},
+ );
+
}
- $specialdocumentsform.=" $newnavform $newsmppageform
- $newsmpproblemform $newdropboxform
- $newexuploadform $newbulform
- $newaboutmeform $newaboutsomeoneform
- $newrosterform";
+ push @specialdocumentsforma, ({' '=>$newnavform},
+ {' '=>$newsmppageform},
+ {' '=>$newsmpproblemform},
+ {' '=>$newdropboxform},
+ {' '=>$newexuploadform},
+ {' '=>$newbulform},
+ {' '=>$newaboutmeform},
+ {' '=>$newaboutsomeoneform},
+ {' '=>$newrosterform},);
+
+ $specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma));
+
if($env{'form.pagepath'}) {
- $specialdocumentsform=" $newsmpproblemform $newexuploadform";
+
+ @specialdocumentsforma=(
+ {' '=>$newsmpproblemform},
+ {' '=>$newexuploadform}
+ );
+ $specialdocumentsform= create_form_ul(create_list_elements(@specialdocumentsforma));
}
+my @tools = (
+ {' '=>$extresourcesform},
+ {' '=>$imspform},
+ {' '=>$recoverform},
+ );
+
my %orderhash = (
- 'aa' => ['Upload Document',$fileuploadform.' '.$newfolderform],
- 'bb' => ['Published Documents',$simpleeditdefaultform],
+ '00' => ['Newfolder',$newfolderform],
+ 'aa' => ['Upload Document',$fileuploadform],
+ 'bb' => ['Published Resources',$simpleeditdefaultform],
'cc' => ['Special Documents',$specialdocumentsform],
- 'dd' => ['Tools',$extresourcesform.' '.$imspform.' '.$recoverform.' '.&generate_admin_options($containertag,$uploadtag,\%help,\%env)],
- 'zz' => ['Hide all Options'],
+ 'dd' => ['Tools', create_form_ul(create_list_elements(@tools)).&generate_admin_options($containertag,$uploadtag,\%help,\%env)],
);
my $tid='1';
-my $varcd = 'Main Course Documents';
-$r->print(&generate_edit_table($tid,$varcd,\%orderhash));
$hadchanges=0;
- my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type);
+ my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype);
if ($error) {
$r->print(''.$error.'
');
}
@@ -3188,17 +3325,18 @@ $r->print(&generate_edit_table($tid,$var
}
&changewarning($r,'');
- $r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc',
- &mt('Editing the Table of Contents for your '.$type)));
+$r->print(&generate_edit_table($tid,\%orderhash));
+
$r->print(' ');
+ }
if ($env{'form.pagepath'}) {
}
# ----------------------------------------------------- Supplemental documents
- my $active = 'style="display: none;"';
+ $active = 'style="display: none;"';
if($activeClass == 1){
$active = 'style="display: block;"';
}
- $r->print('
');
+ $r->print('
');
my $folder=$env{'form.folder'};
unless ($folder=~/^supplemental/) {
$folder='supplemental';
@@ -3206,8 +3344,8 @@ $r->print('
');
if ($folder =~ /^supplemental$/ &&
(($env{'form.folderpath'} =~ /^default\&/) || ($env{'form.folderpath'} eq ''))) {
$env{'form.folderpath'} = 'supplemental&'.
- &escape(&mt('Supplemental '.$type.' Documents'));
- }else{
+ &escape(&mt('Supplemental '.$crstype.' Documents'));
+ } elsif ($allowed) {
$env{'form.folderpath'} = $savefolderpath;
}
$env{'form.pagepath'} = '';
@@ -3218,8 +3356,9 @@ $r->print('
');
my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
+ my $supupdocformbtn = "
$help{'Uploading_From_Harddrive'}";
my $supupdocform=(<
+ ');
$lt{'comment'}:
-
+
-
-
- $help{'Uploading_From_Harddrive'}
-
-
SUPDOCFORM
+ $supupdocform .= create_form_ul(Apache::lonhtmlcommon::htmltag('li',$supupdocformbtn,{class => 'LC_menubuttons_inline_text'}))."";
my $supnewfolderform=(<
-
- $help{'Adding_Folders'}
-
+ $lt{'newf'}
+ $help{'Adding_Folders'}
SNFFORM
-
+
my $supnewextform=(<
-
- $help{'Adding_External_Resource'}
-
+ $lt{'extr'} $help{'Adding_External_Resource'}
SNEFORM
@@ -3274,45 +3401,52 @@ SNEFORM
-
-
+ $lt{'syll'}
$help{'Syllabus'}
-
SNSFORM
my $supnewaboutmeform=(<
+
SNAMFORM
-
+my @specialdocs = (
+ {' '=>$supnewextform},
+ {' '=>$supnewsylform},
+ {' '=>$supnewaboutmeform},
+ );
my %suporderhash = (
- 'ee' => ['Upload Document',$supupdocform.' '.$supnewfolderform],
- 'ff' => ['Special Documents',$supnewextform.' '.$supnewsylform.' '.$supnewaboutmeform],
- 'zz' => ['Hide all Options'],
+ '00' => ['Supnewfolder', $supnewfolderform],
+ 'ee' => ['Upload Document',$supupdocform],
+ 'ff' => ['Special Documents',create_form_ul(create_list_elements(@specialdocs))]
);
-my $tid='2';
-my $varscd = 'Supplemental Course Documents';
+ my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype);
+ if ($error) {
+ $r->print(''.$error.'
');
+ }
+ my $tid='2';
+ $r->print(&generate_edit_table($tid,\%suporderhash));
+ } else {
+ my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype);
+ if ($error) {
+ $r->print(''.$error.'
');
+ }
+ }
+
-$r->print(&generate_edit_table($tid,$varscd,\%suporderhash));
-my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type);
- if ($error) {
- $r->print(''.$error.'
');
- }
-$r->print(' ');
- }
$r->print('
');
+$r->print('
');
+
+
if ($allowed) {
$r->print('
-ENDOPTIONFORM
+ my @list = (
+ {' '=>"$lt{'vc'} $help{'Verify_Content'}"},
+ {' '=>"$lt{'cv'} $help{'Check_Resource_Versions'}"},
+ );
+ if($dumpbut ne ''){
+ push @list, {' '=>$dumpbut};
+ }
+ push @list, ({' '=>$exportbut},
+ {' '=>"$lt{'ls'} "},
+ {' '=>"$lt{'sl'} "},
+ );
+ return '';
}
sub generate_edit_table {
- my ($tid,$varcd,$orderhash_ref) = @_;
+ my ($tid,$orderhash_ref) = @_;
+ return unless(ref($orderhash_ref) eq 'HASH');
my %orderhash = %{$orderhash_ref};
my $form;
my $activetab;
@@ -3372,35 +3508,33 @@ sub generate_edit_table {
if($env{'form.active'} ne ''){
$activetab = $env{'form.active'};
}
- $form = ''.&mt($varcd).' ';
+ $form = '
';
$form .= '
';
foreach my $name (sort(keys(%orderhash))){
- if($name eq 'zz'){
- if($activetab ne ''){
- $active = '';
- }else{
- $active = 'class="active"';
- }
- $form .= ''.&mt(${$orderhash{$name}}[0]).' ';
- }else{
+ if($name ne '00'){
if($activetab eq '' || $activetab ne $name){
$active = '';
}elsif($activetab eq $name){
$active = 'class="active"';
}
- $form .= ''.&mt(${$orderhash{$name}}[0]).' ';
- }
+ $form .= ''.&mt(${$orderhash{$name}}[0]).' ';
+ } else {
+ $form .= ''.${$orderhash{$name}}[1].' ';
+
+ }
}
$form .= ' ';
- $form .= '
';
+ $form .= '
';
foreach my $field (keys(%orderhash)){
- if($field ne 'zz'){
+ if($field ne '00'){
if($activetab eq '' || $activetab ne $field){
$active = 'style="display: none;"';
}elsif($activetab eq $field){
$active = 'style="display:block;"';
}
- $form .= '
'.${$orderhash{$field}}[1].'
';
+ $form .= '
'.${$orderhash{$field}}[1]
+ .'
';
}
}
$form .= '
';
@@ -3408,6 +3542,74 @@ sub generate_edit_table {
return $form;
}
+sub concept_test_builder {
+ my ($r,$cdom,$cnum) = @_;
+ &Apache::londocsgci::setdefaults($cdom);
+ if ($env{'form.context'} eq 'requestcrs') {
+ if ($env{'form.phase'} eq 'storemap') {
+ &Apache::londocsgci::evaluate();
+ my $error = &Apache::londocsgci::store('requestcrs',$cdom,$cnum);
+ my $output = '
';
+ if ($error) {
+ $output .= ''.
+ &mt('An error occurred saving your concept test: [_1].',$error).
+ ' ';
+ } else {
+ &Apache::lonuserstate::readmap($cdom.'/'.$cnum);
+ $output .= &mt('Your concept test has been saved.');
+ }
+ $output .= '
';
+ if (&Apache::lonrequestcourse::generate_page($r,'new','chooseitems')) {
+ my $formname = 'requestcrs';
+ $r->print('