version 1.17, 2006/10/17 15:04:59
|
version 1.19, 2007/09/05 00:59:51
|
Line 192
|
Line 192
|
</state> |
</state> |
|
|
<state name="FEEDBACK_ADDRESSES" title="Feedback Addresses for Course Content"> |
<state name="FEEDBACK_ADDRESSES" title="Feedback Addresses for Course Content"> |
<message nextstate="FINAL"> |
<message nextstate="USERS_ALLOWED_TO_CLONE"> |
Course members can provide feedback about the course. You can choose |
Course members can provide feedback about the course. You can choose |
who will receive the feedback, such as a different instructor or a |
who will receive the feedback, such as a different instructor or a |
TA. Please enter their LON-CAPA address below, in the |
TA. Please enter their LON-CAPA address below, in the |
Line 233
|
Line 233
|
</message> |
</message> |
</state> |
</state> |
|
|
|
<state name="USERS_ALLOWED_TO_CLONE" title="Granting permission to clone course"> |
|
<message nextstate="FINAL"> |
|
Existing courses can be cloned when creating new courses.<br />Cloning will copy the course structure, contents, and most parameters (automatically advancing any date parameters by six months).<br /><br /> |
|
Names of owners of other courses permitted to clone this course:<br /> |
|
</message> |
|
<string variable='can_clone' size='60' > |
|
<defaultvalue> |
|
return &{$helper->{DATA}->{GETVAL}}('cloners'); |
|
</defaultvalue> |
|
<validator> |
|
my ($output,@cloners,%disallowed); |
|
my $match_dom = $LONCAPA::match_domain; |
|
my $match_uname = $LONCAPA::match_username; |
|
if ($val =~ /,/) { |
|
@cloners = split(/,/,$val); |
|
} else { |
|
$cloners[0] = $val; |
|
} |
|
foreach my $item (@cloners) { |
|
if ($item ne '*') { |
|
my ($clname,$cldom) = split(/:/,$item); |
|
if ($clname eq '*') { |
|
if ($cldom =~ /^$match_dom$/) { |
|
if (!&Apache::lonnet::domain($udom)) { |
|
$disallowed{'domain'} .= $item.','; |
|
} |
|
} else { |
|
$disallowed{'format'} .= $item.','; |
|
} |
|
} elsif ($item !~/^($match_uname)\:($match_dom)$/) { |
|
$disallowed{'format'} .= $item.','; |
|
} else { |
|
if (!grep(/^\Q$cldom\E$/,@alldoms)) { |
|
$disallowed{'domain'} .= $item.','; |
|
} elsif (&Apache::lonnet::homeserver($clname,$cldom) eq 'no_host') { |
|
$disallowed{'newuser'} .= $item.','; |
|
} |
|
} |
|
} |
|
} |
|
foreach my $key (keys(%disallowed)) { |
|
$disallowed{$key} =~ s/,$//; |
|
} |
|
if (keys(%disallowed) > 0) { |
|
$output.= 'Your input contained the following errors:<ul>'; |
|
if (defined($disallowed{'format'})) { |
|
$output .= '<li>Invalid format: '. |
|
'<b>'.$disallowed{'format'}.'</b></li>'; |
|
} |
|
if (defined($disallowed{'domain'})) { |
|
$output .= '<li>Domain(s) do(es) not exist: '. |
|
'<b>'.$disallowed{'domain'}.'</b></li>'; |
|
} |
|
if (defined($disallowed{'newuser'})) { |
|
$output .= '<li>LON-CAPA user(s) do(es) not exist: '. |
|
'<b>'.$disallowed{'newuser'}.'</b></li>'; |
|
} |
|
$output .= '.</ul>'; |
|
} |
|
return $output; |
|
</validator> |
|
<finalcode> |
|
if (&{$helper->{DATA}->{SETVAL}}('cloners', $element->getValue())) { |
|
|
|
|
|
return 'Users allowed to clone course updated to <b>' . $element->getValue() . |
|
'</b>.'; |
|
} |
|
</finalcode> |
|
</string> |
|
<message> |
|
<br />(Course Coordinators automatically have the right to clone their own courses.) |
|
<ul> |
|
<li>Format: <b>user:domain</b>, where "user" and "domain" |
|
are the LON-CAPA username and domain of the user.</li><li>Separate different users with a comma.</li><li>Use *:domain to allow course to be cloned by any course owner in the specified domain.</li><li>Use * to allow unrestricted cloning by all course owners in all domains.</li></ul> |
|
</message> |
|
</state> |
<state name="FINAL" title="Completed"> |
<state name="FINAL" title="Completed"> |
<message>Your course is now set up. Please select the <b>Finish Course |
<message>Your course is now set up. Please select the <b>Finish Course |
Initialization</b> button to re-intialize the course with your chosen |
Initialization</b> button to re-intialize the course with your chosen |