--- loncom/interface/lonrequestcourse.pm 2015/07/14 00:11:48 1.92 +++ loncom/interface/lonrequestcourse.pm 2018/09/02 01:16:59 1.95.2.3 @@ -1,7 +1,7 @@ # The LearningOnline Network # Request a course # -# $Id: lonrequestcourse.pm,v 1.92 2015/07/14 00:11:48 raeburn Exp $ +# $Id: lonrequestcourse.pm,v 1.95.2.3 2018/09/02 01:16:59 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2097,6 +2097,18 @@ sub print_personnel_menu { $output .= &Apache::lonhtmlcommon::row_headline(). '

'.&Apache::loncommon::help_open_topic('Course_Request_Personnel').' '.$lt{$crstype}.' '.&mt('Include other personnel?').'

'; } + my $cansearch = 1; + my @alldoms = &Apache::lonnet::all_domains(); + if (@alldoms == 1) { + my %domsrch = &Apache::lonnet::get_dom('configuration', + ['directorysrch'],$alldoms[0]); + if (ref($domsrch{'directorysrch'}) eq 'HASH') { + if ((!$domsrch{'directorysrch'}{'available'}) && + ($domsrch{'directorysrch'}{'lcavailable'} eq '0')) { + $cansearch = 0; + } + } + } for (my $i=0; $i<$persontotal; $i++) { my @linkargs = map { 'person_'.$i.'_'.$_ } (@items); my $linkargstr = join("','",@linkargs); @@ -2121,9 +2133,14 @@ sub print_personnel_menu { } $sectionselector .= $newtitle. ''."\n"; - my $usersrchlinktxt = &mt('Search for user'); - my $usersrchlink = &Apache::loncommon::selectuser_link($formname,@linkargs,$dom, - $usersrchlinktxt); + my $usersrchlink; + if ($cansearch) { + my $usersrchlinktxt = &mt('Search for user'); + $usersrchlink = &Apache::loncommon::selectuser_link($formname,@linkargs,$dom, + $usersrchlinktxt); + } else { + $usersrchlink = ' '; + } my $userchklinktxt = &mt('Check username'); my $userchklink = &Apache::loncommon::selectuser_link($formname,@linkargs,$dom, $userchklinktxt,'checkusername'); @@ -3162,7 +3179,7 @@ sub clone_form { &Apache::loncommon::select_dom_form($dom,'clonedom').''. &Apache::lonhtmlcommon::row_closure(1). &Apache::lonhtmlcommon::row_title($lt{'cid'}).' '. &Apache::loncommon::selectcourse_link($formname,'clonecrs','clonedom','','','',$type). &Apache::lonhtmlcommon::row_closure(1). @@ -3667,7 +3684,7 @@ sub process_request { } $storeresult = 'notpermitted'; } else { - my ($disposition,$message,$reqstatus,$coursedesc,%customvalidation); + my ($disposition,$message,$reqstatus,$coursedesc,$accessstart,$accessend,%customvalidation); my %reqhash = ( reqtime => $now, crstype => $crstype, @@ -3679,6 +3696,8 @@ sub process_request { $env{'user.domain'}); if (ref($details) eq 'HASH') { $coursedesc = $details->{'cdescr'}; + $accessstart = $details->{'accessstart'}; + $accessend = $details->{'accessend'}; } if ($val eq 'autolimit=') { $disposition = 'process'; @@ -3786,6 +3805,9 @@ sub process_request { $customitems{'_LC_owneremail'} = $owneremail; } $customitems{'_LC_coursedomainname'} = &Apache::lonnet::domain($dom,'description'); + $customitems{'_LC_coursedescription'} = $coursedesc; + $customitems{'_LC_coursestartdate'} = $accessstart; + $customitems{'_LC_courseenddate'} = $accessend; my ($result,$postprocess) = &Apache::loncoursequeueadmin::course_creation($dom,$cnum, 'autocreate',$details,\$logmsg,\$newusermsg,\$addresult, \$enrollcount,\$response,\$keysmsg,\%domdefs,\%longroles, @@ -4549,7 +4571,16 @@ sub print_textbook_form { $cc_clone .= $cdom.':'.$cnum.'&'; unless (exists($cloneable{$cdom.'_'.$cnum})) { my %courseinfo = &Apache::lonnet::coursedescription($cdom.'_'.$cnum,{'one_time' => 1}); - $cloneable{$cdom.'_'.$cnum} = \%courseinfo; + $cloneable{$cdom.'_'.$cnum} = { + context => $courseinfo{'internal.creationcontext'}, + created => $courseinfo{'internal.created'}, + creator => $courseinfo{'internal.creator'}, + description => $courseinfo{'description'}, + inst_code => $courseinfo{'coursecode'}, + owner => $courseinfo{'internal.courseowner'}, + releaserequired => $courseinfo{'internal.releaserequired'}, + type => $courseinfo{'type'}, + }; } } @@ -4742,13 +4773,13 @@ sub print_textbook_form { if (keys(%cloneable)) { $r->print(''); } # @@ -4757,13 +4788,13 @@ sub print_textbook_form { if (keys(%domcloneable)) { $r->print(''); } @@ -4845,11 +4876,14 @@ sub clone_selection_table { $cleantitle=~s/'/\\'/g; $cleantitle =~ s/^\s+//; my ($namestr,@owners,%ownernames); - my $singleowner = $cloneableref->{$cid}{'internal.courseowner'}; - push(@owners,$singleowner); + if ($cloneableref->{$cid}{'owner'} ne '') { + push(@owners,$cloneableref->{$cid}{'owner'}); + } if ($cloneableref->{$cid}{'co-owners'} ne '') { - foreach my $item (split(/,/,$cloneableref->{$cid}{'internal.co-owners'})) { - push(@owners,$item); + foreach my $item (split(/,/,$cloneableref->{$cid}{'co-owners'})) { + if (($item ne '') && (!grep(/^\Q$item\E$/,@owners))) { + push(@owners,$item); + } } } foreach my $owner (@owners) { @@ -4983,9 +5017,31 @@ sub process_textbook_request { accessend => $accessend, personnel => {}, }; - if ($reqtype eq 'existing') { - $details->{datemode} = $env{'form.datemode'}; - $details->{dateshift} = $env{'form.dateshift'}; + if (($clonecrs ne '') && ($clonedom ne '')) { + if ($reqtype eq 'existing') { + $details->{datemode} = $env{'form.owndatemode'}; + if ($details->{datemode} eq 'shift') { + $details->{dateshift} = $env{'form.owndateshift'}; + } else { + $details->{dateshift} = ''; + } + } elsif ($reqtype eq 'colleague') { + $details->{datemode} = $env{'form.colldatemode'}; + if ($details->{datemode} eq 'shift') { + $details->{dateshift} = $env{'form.colldateshift'}; + } else { + $details->{dateshift} = ''; + } + } elsif (($reqtype eq 'textbook') || ($reqtype eq 'template')) { + $details->{datemode} = 'delete'; + $details->{dateshift} = ''; + } + if ($details->{dateshift} ne '') { + $details->{dateshift} =~ s/[^\d\.]+//g; + } + } else { + $details->{datemode} = ''; + $details->{dateshift} = ''; } my $lonhost = $r->dir_config('lonHostID'); $r->rflush();