-Set Defaults for All Resources in $foldermap
-$showtitle
-Specifically for
-ENDMAPONE
+ my $tmp="";
if ($uname) {
my $person=&Apache::loncommon::plainname($uname,$udom);
- $r->print(&mt("User")." $uname \($person\) ".
- &mt('in')." \n");
+ $tmp.=&mt("User")." $uname \($person\) ".
+ &mt('in')." \n";
} else {
- $r->print("".&mt('all').' '.&mt('users in')." \n");
+ $tmp.="".&mt('all').' '.&mt('users in')." \n";
}
if ($cgroup) {
- $r->print(&mt("Group")." $cgroup".
- " ".&mt('of')." \n");
+ $tmp.=&mt("Group")." $cgroup".
+ " ".&mt('of')." \n";
$csec = '';
} elsif ($csec) {
- $r->print(&mt("Section")." $csec".
- " ".&mt('of')." \n");
+ $tmp.=&mt("Section")." $csec".
+ " ".&mt('of')." \n";
}
- $r->print("$coursename
");
- $r->print("
\n");
+ $r->print(''
+ .&mt('Set Defaults for All Resources in [_1]Specifically for [_2][_3]'
+ ,$foldermap.'
$showtitle
'
+ ,$tmp
+ ,''.$coursename.''
+ )
+ ."
\n"
+ );
#---------------------------------------------------------------- print table
$r->print('
');
$r->print(''.&mt('Parameter Name').' | ');
@@ -1916,7 +1917,7 @@ ENDMAPONE
\%type,\%display,$defbgone,$defbgtwo,$defbgthree,
$parmlev,$uname,$udom,$csec,$cgroup);
}
- $r->print("
---|
");
+ $r->print("
");
} # end each map
} # end of $parmlev eq map
#--------------------------------- Entry for parm level general (Course level)
@@ -2026,6 +2027,8 @@ sub crsenv {
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
+ my (%crsinfo,$chome);
+
#
# Go through list of changes
foreach (keys %env) {
@@ -2120,19 +2123,46 @@ sub crsenv {
my $put_result = &Apache::lonnet::put('environment',
{$name=>$value},$dom,$crs);
if ($put_result eq 'ok') {
- $setoutput.=&mt('Set').' '.$name.' '.&mt('to').' '.$value.'.
';
+ $setoutput.=&mt('Set').' '.$name.' '.&mt('to').' ';
+ if ($name =~ /^default_enrollment_(start|end)_date$/) {
+ $setoutput .= &Apache::lonlocal::locallocaltime($value);
+ } else {
+ $setoutput .= $value;
+ }
+ $setoutput .= '.
';
if ($name eq 'cloners') {
&change_clone($value,\@oldcloner);
}
# Update environment and nohist_courseids.db
- if ($name eq 'description' && defined($value)) {
- my %crsinfo =
- &Apache::lonnet::courseiddump($dom,'.',1,'.','.',
+ if (($name eq 'description') || ($name eq 'cloners') ||
+ ($name eq 'hidefromcat')) {
+ if ($chome eq '') {
+ %crsinfo =
+ &Apache::lonnet::courseiddump($dom,'.',1,'.','.',
$crs,undef,undef,'Course');
- &Apache::lonnet::appenv('course.'.$env{'request.course.id'}.'.description' => $value);
+ $chome = &Apache::lonnet::homeserver($crs,$dom);
+ }
+ }
+ if ($name eq 'description' && defined($value)) {
+ &Apache::lonnet::appenv({'course.'.$env{'request.course.id'}.'.description' => $value});
if (ref($crsinfo{$env{'request.course.id'}}) eq 'HASH') {
$crsinfo{$env{'request.course.id'}}{'description'} = $value;
- my $chome = &Apache::lonnet::homeserver($crs,$dom);
+ my $putresult =
+ &Apache::lonnet::courseidput($dom,\%crsinfo,
+ $chome,'notime');
+ }
+ }
+ if ($name eq 'cloners') {
+ if (ref($crsinfo{$env{'request.course.id'}}) eq 'HASH') {
+ $crsinfo{$env{'request.course.id'}}{'cloners'} = $value;
+ my $putresult =
+ &Apache::lonnet::courseidput($dom,\%crsinfo,
+ $chome,'notime');
+ }
+ }
+ if ($name eq 'hidefromcat') {
+ if (ref($crsinfo{$env{'request.course.id'}}) eq 'HASH') {
+ $crsinfo{$env{'request.course.id'}}{'hidefromcat'} = $value;
my $putresult =
&Apache::lonnet::courseidput($dom,\%crsinfo,
$chome,'notime');
@@ -2190,74 +2220,72 @@ sub crsenv {
my $output='';
if (! exists($values{'con_lost'})) {
my %descriptions=
- ('url' => ''.&mt('Top Level Map').' '.
+ ('url' => ''.&mt('Top Level Map').'
'.
'".
&mt('Select Map').'
'.
- &mt('Modification may make assessment data inaccessible').
+ &mt('Modification may make assessment data inaccessible!').
'',
'description' => ''.&mt('Course Description').'',
'courseid' => ''.&mt('Course ID or number').
'
'.
- '('.&mt('internal').', '.&mt('optional').')',
- 'cloners' => ''.&mt('Users allowed to clone course').'
(user:domain,user:domain,*:domain)
'.&mt('Users with active Course Coordinator role in course are permitted to clone and need not be included.
-Use *:domain to allow course to be cloned by anyone in the specified domain.
-Use * to allow unrestricted cloning in all domains.'),
+ '('.&mt('internal, optional').')',
+ 'cloners' => ''.&mt('Users allowed to clone course').'
'
+ .'("'.&mt('user:domain,user:domain,*:domain').'")
'
+ .&mt('Users with active Course Coordinator role in this course are permitted to clone and need not be included.').'
'
+ .&mt('Use [_1] to allow course to be cloned by anyone in the specified domain.','"*:domain"').'
'
+ .&mt('Use [_1] to allow unrestricted cloning in all domains.','"*"'),
'grading' => ''.&mt('Grading').'
'.
- '"standard", "external", or "spreadsheet" '.&Apache::loncommon::help_open_topic('GradingOptions'),
- 'task_grading' => ''.&mt('Bridge Task Grading').'
'.
- &mt('Instructors and TAs in sections, when grading bridge tasks, should be allowed to grade other sections, "[_1]" they are allowed (this is the default), "[_2]" no, they can only grade their own section','any','section'),
- 'default_xml_style' => ''.&mt('Default XML Style File').' '.
+ &mt('[_1], [_2], or [_3]','"standard"','"external"','"spreadsheet"').&Apache::loncommon::help_open_topic('GradingOptions'),
+ 'task_grading' => ''.&mt('Bridge Task Grading').'
'
+ .&mt('Instructors and TAs in sections, when grading bridge tasks, should be allowed to grade other sections.').'
'
+ .'('.&mt('[_1]: they are allowed (this is the default). [_2]: no, they can only grade their own section.','"any"','"section"').')',
+ 'default_xml_style' => ''.&mt('Default XML Style File').'
'.
'$SelectStyleFile
",
- 'question.email' => ''.&mt('Feedback Addresses for Resource Content Question').
- '
(user:domain,'.
- 'user:domain(section;section;...;*;...),...)',
- 'question.email.text' => ''.&mt('Custom Text for Resource Content Question Option in Feedback').
- '',
- 'comment.email' => ''.&mt('Feedback Addresses for Course Content Comments').'
'.
- '(user:domain,user:domain(section;section;...;*;...),...)',
- 'comment.email.text' => ''.&mt('Custom Text for Course Content Option in Feedback').
- '',
- 'policy.email' => ''.&mt('Feedback Addresses for Course Policy').''.
- '
(user:domain,user:domain(section;section;...;*;...),...)',
- 'policy.email.text' => ''.&mt('Custom Text for Course Policy Option in Feedback').
- '',
- 'hideemptyrows' => ''.&mt('Hide Empty Rows in Spreadsheets').'
'.
- '('.&mt('"[_1]" for default hiding','yes').')',
- 'pageseparators' => ''.&mt('Visibly Separate Items on Pages').'
'.
- '('.&mt('"[_1]" for visible separation','yes').', '.
- &mt('changes will not show until next login').')',
- 'student_classlist_view' => ''.&mt('Allow students to view classlist.').'
'.&mt('("all":students can view all sections,"section":students can only view their own section.blank or "disabled" prevents student view.)'),
- 'student_classlist_portfiles' => ''.&mt('Include link to accessible portfolio files').'
'.&mt('"[_1]" for link to each a listing of each student\'s files.','yes'),
- 'student_classlist_opt_in' => ''.&mt("Student's agreement needed for listing in student-viewable roster").'
'.&mt('"[_1]" to require students to opt-in to listing in the roster (on the roster page).','yes'),
- 'plc.roles.denied'=> ''.&mt('Disallow live chatroom use for Roles').
- '
("st": '.
- &mt('student').', "ta": '.
- 'TA, "in": '.
- &mt('instructor').';
'.&mt('role,role,...').') '.
- Apache::loncommon::help_open_topic("Course_Disable_Discussion"),
+ 'question.email' => ''.&mt('Feedback Addresses for Resource Content Question').'
'
+ .'("'.&mt('user:domain,user:domain(section;section;...;*;...),...').'")',
+ 'question.email.text' => ''.&mt('Custom Text for Resource Content Question Option in Feedback').'',
+ 'comment.email' => ''.&mt('Feedback Addresses for Course Content Comments').'
'
+ .'("'.&mt('user:domain,user:domain(section;section;...;*;...),...').'")',
+ 'comment.email.text' => ''.&mt('Custom Text for Course Content Option in Feedback').'',
+ 'policy.email' => ''.&mt('Feedback Addresses for Course Policy').'
'
+ .'("'.&mt('user:domain,user:domain(section;section;...;*;...),...').'")',
+ 'policy.email.text' => ''.&mt('Custom Text for Course Policy Option in Feedback').'',
+ 'hideemptyrows' => ''.&mt('Hide Empty Rows in Spreadsheets').'
'
+ .'('.&mt('[_1] for default hiding','"yes"').')',
+ 'pageseparators' => ''.&mt('Visibly Separate Items on Pages').'
'
+ .'('.&mt('[_1] for visible separation.','"yes"').' '
+ .&mt('Changes will not show until next login.').')',
+ 'student_classlist_view' => ''.&mt('Allow students to view classlist.').'
'
+ .'('.&mt('[_1]: students can view all sections. [_2]: students can only view their own section. blank or [_3] prevents student view.','"all"','"section"','"disabled"').')',
+ 'student_classlist_portfiles' => ''.&mt('Include link to accessible portfolio files').'
'
+ .'('.&mt('[_1] for link to each a listing of each student\'s files.','"yes"').')',
+ 'student_classlist_opt_in' => ''.&mt("Student's agreement needed for listing in student-viewable roster").'
'
+ .'('.&mt('[_1] to require students to opt-in to listing in the roster (on the roster page).','"yes"').')',
+ 'plc.roles.denied'=> ''.&mt('Disallow live chatroom use for Roles').'
'
+ .'('.&mt('[_1]: student, [_2]: TA, [_3]: instructor','"st"','"ta"','"in"').')
'
+ .'("'.&mt('role,role,...').'") '
+ .Apache::loncommon::help_open_topic("Course_Disable_Discussion"),
'plc.users.denied' =>
''.&mt('Disallow live chatroom use for Users').'
'.
- '(user:domain,user:domain,...)',
+ '("'.&mt('user:domain,user:domain,...').'")',
- 'pch.roles.denied'=> ''.&mt('Disallow Resource Discussion for Roles').
- '
("st": '.
- 'student, "ta": '.
- 'TA, "in": '.
- 'instructor;
role,role,...) '.
- Apache::loncommon::help_open_topic("Course_Disable_Discussion"),
+ 'pch.roles.denied'=> ''.&mt('Disallow Resource Discussion for Roles').'
'
+ .'('.&mt('[_1]: student, [_2]: TA, [_3]: instructor','"st"','"ta"','"in"')
+ .'("'.&mt('role,role,...').'") '
+ .Apache::loncommon::help_open_topic("Course_Disable_Discussion"),
'pch.users.denied' =>
''.&mt('Disallow Resource Discussion for Users').'
'.
- '(user:domain,user:domain,...)',
+ '("'.&mt('user:domain,user:domain,...').'")',
'spreadsheet_default_classcalc'
=> ''.&mt('Default Course Spreadsheet').' '.
'$SelectSpreadsheetFile
",
'spreadsheet_default_studentcalc'
- => ''.&mt('Default Student Spreadsheet').' '.
+ => ''.&mt('Default Student Spreadsheet').'
'.
'$SelectSpreadsheetFile
",
@@ -2268,43 +2296,45 @@ Use * to allow unrestricted cloning in a
",'spreadsheet')\">$SelectSpreadsheetFile
",
'allow_limited_html_in_feedback'
=> ''.&mt('Allow limited HTML in discussion posts').'
'.
- '('.&mt('Set value to "[_1]" to allow',"yes").')',
+ '('.&mt('Set value to [_1] to allow.','"yes"').')',
'allow_discussion_post_editing'
- => ''.&mt('Allow users with specified roles to edit/delete their own discussion posts').'
"st": '.
- &mt('student').', "ta": '.
- 'TA, "in": '.
- &mt('instructor').'; ('.&mt('role:section,role:section,..., e.g., st:001,st:002,in,cc would permit students in sections 001 and 002 and instructors in any section, and course coordinators to edit their own posts.').')
'.
- '('.&mt('or set value to "[_1]" to allow all roles',"yes").')',
+ => ''.&mt('Allow users with specified roles to edit/delete their own discussion posts').'
'
+ .'('.&mt('[_1]: student, [_2]: TA, [_3]: instructor','"st"','"ta"','"in"').')
'
+ .'('.&mt('Set value to [_1] to allow all roles.','"yes"').')'
+ .'("'.&mt('role:section,role:section,...').'")
'
+ .'('.&mt('Example: "st:001,st:002,in,cc" would permit students in sections 001 and 002 and instructors in any section, and course coordinators to edit their own posts.').')',
'rndseed'
- => ''.&mt('Randomization algorithm used').'
'.
- ''.&mt('Modifying this will make problems').' '.
- &mt('have different numbers and answers').'',
+ => ''.&mt('Randomization algorithm used').'
'
+ .''
+ .&mt('Modifying this will make problems have different numbers and answers!')
+ .'',
'receiptalg'
=> ''.&mt('Receipt algorithm used').'
'.
&mt('This controls how receipt numbers are generated.'),
'suppress_tries'
=> ''.&mt('Suppress number of tries in printing').'
'.
- ' ('.&mt('"[_1]" to suppress, anything else to not suppress','yes').')',
+ ' ('.&mt('[_1] to suppress, anything else to not suppress','"yes"').')',
'problem_stream_switch'
=> ''.&mt('Allow problems to be split over pages').'
'.
- ' ('.&mt('"[_1]" if allowed, anything else if not','yes').')',
+ ' ('.&mt('[_1] if allowed, anything else if not','"yes"').')',
'default_paper_size'
=> ''.&mt('Default paper type').'
'.
' ('.&mt('supported types').': Letter [8 1/2x11 in], Legal [8 1/2x14 in],'.
' Tabloid [11x17 in], Executive [7 1/2x10 in], A2 [420x594 mm],'.
' A3 [297x420 mm], A4 [210x297 mm], A5 [148x210 mm], A6 [105x148 mm])',
'print_header_format'
- => &mtn(' Print header format; substitutions : %n student name %c course id %a assignment note, numbers after the % limit the field size.').'',
+ => ' '.&mt('Print header format').'
'
+ .&mt('Substitutions:
[_1]: student name, [_2]: course id, [_3]: assignment note. Numbers after the % limit the field size.','"%n"','"%c"','"%a"'),
'default_enrollment_start_date' => ''.&mt('Default beginning date for student access.').'',
'default_enrollment_end_date' => ''.&mt('Default ending date for student access.').'',
- 'nothideprivileged' => ''.&mt('Privileged users that should not be hidden on staff listings').''.
- '
(user:domain,user:domain,...)',
+ 'nothideprivileged' => ''.&mt('Privileged users that should not be hidden on staff listings').'
'
+ .'("'.&mt('user:domain,user:domain,*:domain').'")',
'languages' => ''.&mt('Languages used').'',
'disable_receipt_display'
=> ''.&mt('Disable display of problem receipts').'
'.
' ('.&mt('"[_1]" to disable, anything else if not','yes').')',
'task_messages'
- => ''.&mt('Send message to student when clicking Done on Tasks').'
('.&mt('[_1] to send a message only to student, [_2] to send message to student and add record to user information page for instructors. Leave blank to disable.','only_student','student_and_user_notes_screen').')',
+ => ''.&mt('Send message to student when clicking Done on Tasks').'
('.&mt('[_1] to send a message only to student, [_2] to send message to student and add record to user information page for instructors. Leave blank to disable.','"only_student"','"student_and_user_notes_screen"').')',
'disablesigfigs'
=> ''.&mt('Disable checking of Significant Figures').'
'.
' ('.&mt('"[_1]" to disable, anything else if not','yes').')',
@@ -2317,12 +2347,27 @@ Use * to allow unrestricted cloning in a
=> ''.&mt('Default set of options to pass to tth/m when converting tex').'',
'texengine'
- => ''.&mt('Force all students in the course to use a specific math rendering engine.').'
'.&mt('(Valid options are [_1].)','"tth", "jsMath", "mimetex"').'',
- );
- my @Display_Order = ('url','description','courseid','cloners','grading',
+ => ''.&mt('Force all students in the course to use a specific math rendering engine.').'
'
+ .'('.&mt('[_1], [_2] (Convert to Images), [_3] (TeX to HTML), or blank for student\'s preference','"jsMath"','"mimetex"','"tth"').')',
+ 'timezone'
+ => ''.&mt('Timezone in which the course takes place').'',
+
+ 'suppress_embed_prompt'
+ => ''.&mt('Suppress prompt to upload items referenced in a web page being uploaded to portfolio, when current role is student.').'
'.
+ ' ('.&mt('[_1] to suppress, anything else to not suppress','"yes"').')',
+ 'hidefromcat'
+ => ''.&mt('Exclude from course catalog').'
'.
+ ' ('.&mt('[_1] to exclude, anything else to include - included if assigned an institutional code, or manually catagorized','"yes"').')',
+ );
+ my @Display_Order = ('url','description','courseid','cloners');
+ if (&can_toggle_cat($dom)) {
+ push(@Display_Order,'hidefromcat');
+ }
+ push (@Display_Order,('grading',
'externalsyllabus',
'default_xml_style','pageseparators',
- 'question.email','question.email.text','comment.email','comment.email.text','policy.email','policy.email.text',
+ 'question.email','question.email.text','comment.email',
+ 'comment.email.text','policy.email','policy.email.text',
'student_classlist_view',
'student_classlist_opt_in',
'student_classlist_portfiles',
@@ -2331,11 +2376,13 @@ Use * to allow unrestricted cloning in a
'allow_limited_html_in_feedback',
'allow_discussion_post_editing',
'languages',
+ 'timezone',
'nothideprivileged',
'rndseed',
'receiptalg',
'problem_stream_switch',
'suppress_tries',
+ 'suppress_embed_prompt',
'default_paper_size',
'print_header_format',
'disable_receipt_display',
@@ -2349,8 +2396,7 @@ Use * to allow unrestricted cloning in a
'texengine',
'disablesigfigs',
'disableexampointprint',
- 'task_messages','task_grading',
- );
+ 'task_messages','task_grading'));
foreach my $parameter (sort(keys(%values))) {
unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./)) {
if (! $descriptions{$parameter}) {
@@ -2375,6 +2421,13 @@ Use * to allow unrestricted cloning in a
$values{$parameter},
$onchange).
'';
+ } elsif ($parameter eq 'timezone') {
+ my $includeempty = 1;
+ my $timezone = &Apache::lonlocal::gettimezone();
+ $output .= ''.
+ &Apache::loncommon::select_timezone($parameter.'_value',
+ $timezone,
+ $onchange,$includeempty).' | ';
} else {
$output .= ''.
&Apache::lonhtmlcommon::textbox($parameter.'_value',
@@ -2401,8 +2454,8 @@ Use * to allow unrestricted cloning in a
my %lt=&Apache::lonlocal::texthash(
'par' => 'Parameter',
'val' => 'Value',
- 'set' => 'Set',
- 'sce' => 'Set Course Environment'
+ 'set' => 'Set?',
+ 'sav' => 'Save'
);
my $Parameter=&mt('Parameter');
@@ -2424,17 +2477,31 @@ $start_page
$breadcrumbs
$end_page
ENDENV
}
+
+sub can_toggle_cat {
+ my ($dom) = @_;
+ my %domconf = &Apache::lonnet::get_dom('configuration',['coursecategories'],$dom);
+ my $can_toggle_cat = '';
+ if (ref($domconf{'coursecategories'}) eq 'HASH') {
+ if ($domconf{'coursecategories'}{'togglecats'} eq 'crs') {
+ $can_toggle_cat = 1;
+ }
+ }
+ return $can_toggle_cat;
+}
+
##################################################
# Overview mode
##################################################
@@ -2729,6 +2796,8 @@ sub listdata {
$$resourcedata{$thiskey},
'',1,'','').
''.
+(($$resourcedata{$thiskey}!=0)?''.
+&mt('Shift all dates based on this date').'':'').
&date_sanity_info($$resourcedata{$thiskey})
);
} elsif ($thistype eq 'date_interval') {
@@ -2798,7 +2867,7 @@ my %strings =
[ 'no', 'No' ]],
'string_problemstatus'
=> [[ 'yes', 'Yes' ],
- [ 'answer', 'Yes, and show correct answer if they exceed the maxium number of tries.' ],
+ [ 'answer', 'Yes, and show correct answer if they exceed the maximum number of tries.' ],
[ 'no', 'No, don\'t show correct/incorrect feedback.' ],
[ 'no_feedback_ever', 'No, show no feedback at all.' ]],
);
@@ -2842,13 +2911,21 @@ sub dateshift {
delete $data{$key};
}
}
+ my %storecontent=();
# go through all parameters and look for dates
foreach my $key (keys %data) {
if ($data{$key.'.type'}=~/^date_(start|end)$/) {
my $newdate=$data{$key}+$shift;
- &Apache::lonnet::put('resourcedata',{$key => $newdate},$dom,$crs);
+ $storecontent{$key}=$newdate;
}
}
+ my $reply=&Apache::lonnet::cput
+ ('resourcedata',\%storecontent,$dom,$crs);
+ if ($reply eq 'ok') {
+ &log_parmset(\%storecontent);
+ }
+ &Apache::lonnet::devalidatecourseresdata($crs,$dom);
+ return $reply;
}
sub newoverview {
@@ -3128,6 +3205,51 @@ ENDOVER
&Apache::loncommon::end_page());
}
+sub date_shift_one {
+ my ($r) = @_;
+ my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
+
+ my $start_page=&Apache::loncommon::start_page('Shift Dates');
+ my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Shift');
+ $r->print(<print('');
+ $r->print(&Apache::loncommon::end_page());
+}
+
+sub date_shift_two {
+ my ($r) = @_;
+ my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
+ my $start_page=&Apache::loncommon::start_page('Shift Dates');
+ my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Shift');
+ $r->print(<print(&mt('Shifting all dates such that [_1] becomes [_2]',
+ &Apache::lonlocal::locallocaltime($env{'form.timebase'}),
+ &Apache::lonlocal::locallocaltime($timeshifted)));
+ my $delta=$timeshifted-$env{'form.timebase'};
+ &dateshift($delta);
+ $r->print(&Apache::loncommon::end_page());
+}
+
sub parse_key {
my ($key) = @_;
my %data;
@@ -3528,7 +3650,7 @@ sub order_meta_fields {
my $ordered_fields = join ",", @neworder;
my $put_result = &Apache::lonnet::put('environment',
{'metadata.addedorder'=>$ordered_fields},$dom,$crs);
- &Apache::lonnet::appenv('course.'.$env{'request.course.id'}.'.metadata.addedorder' => $ordered_fields);
+ &Apache::lonnet::appenv({'course.'.$env{'request.course.id'}.'.metadata.addedorder' => $ordered_fields});
}
my $fields = &get_added_meta_fieldnames($env{'request.course.id'});
my $ordered_fields;
@@ -4153,7 +4275,7 @@ sub handler {
'pres_marker',
'pres_value',
'pres_type',
- 'udom','uname','symb','serial']);
+ 'udom','uname','symb','serial','timebase']);
&Apache::lonhtmlcommon::clear_breadcrumbs();
@@ -4233,6 +4355,14 @@ sub handler {
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=cleanparameters',
text=>"Clean Parameters"});
&clean_parameters($r);
+ } elsif ($env{'form.action'} eq 'dateshift1' && $parm_permission) {
+ &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'},
+ text=>"Shifting Dates"});
+ &date_shift_one($r);
+ } elsif ($env{'form.action'} eq 'dateshift2' && $parm_permission) {
+ &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'},
+ text=>"Shifting Dates"});
+ &date_shift_two($r);
}
} else {
# ----------------------------- Not in a course, or not allowed to modify parms
|