--- loncom/interface/loncommon.pm 2007/10/12 00:16:40 1.564.2.11
+++ loncom/interface/loncommon.pm 2007/08/28 15:55:49 1.571
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.564.2.11 2007/10/12 00:16:40 albertel Exp $
+# $Id: loncommon.pm,v 1.571 2007/08/28 15:55:49 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -870,7 +870,7 @@ sub help_menu_js {
'js_ready' => 1,
'add_entries' => {
'border' => '0',
- 'rows' => "110,*",},});
+ 'rows' => "105,*",},});
my $end_page =
&Apache::loncommon::end_page({'frameset' => 1,
'js_ready' => 1,});
@@ -1084,6 +1084,63 @@ sub changable_area {
=pod
+=item * resize_textarea_js
+
+emits the needed javascript to resize a textarea to be as big as possible
+
+creates a function resize_textrea that takes two IDs first should be
+the id of the element to resize, second should be the id of a div that
+surrounds everything that comes after the textarea, this routine needs
+to be attached to the
for the onload and onresize events.
+
+
+=cut
+
+sub resize_textarea_js {
+ return <<"RESIZE";
+
+RESIZE
+
+}
+
+=pod
+
=back
=head1 Excel and CSV file utility routines
@@ -3458,6 +3515,9 @@ sub bodytag {
if (!$realm) { $realm=' '; }
# Set messages
my $messages=&domainlogo($domain);
+# Port for miniserver
+ my $lonhttpdPort=$Apache::lonnet::perlvar{'lonhttpdPort'};
+ if (!defined($lonhttpdPort)) { $lonhttpdPort='8080'; }
my $extra_body_attr = &make_attr_string($forcereg,\%design);
@@ -3575,7 +3635,7 @@ ENDROLE
my $imgsrc = $img;
if ($img =~ /^\/adm/) {
- $imgsrc = &lonhttpdurl($img);
+ $imgsrc = 'http://'.$ENV{'HTTP_HOST'}.':'.$lonhttpdPort.$img;
}
my $upperleft=' ';
@@ -4283,7 +4343,9 @@ table#LC_helpmenu_links a:hover {
border: 1px solid #8888FF;
background: #CCCCFF;
}
+
table.LC_pick_box {
+ width: 100%;
border-collapse: separate;
background: white;
border: 1px solid black;
@@ -4296,14 +4358,6 @@ table.LC_pick_box td.LC_pick_box_title {
width: 184px;
padding: 8px;
}
-table.LC_pick_box td.LC_pick_box_value {
- text-align: left;
- padding: 8px;
-}
-table.LC_pick_box td.LC_pick_box_select {
- text-align: left;
- padding: 8px;
-}
table.LC_pick_box td.LC_pick_box_separator {
padding: 0px;
height: 1px;
@@ -4312,48 +4366,7 @@ table.LC_pick_box td.LC_pick_box_separat
table.LC_pick_box td.LC_pick_box_submit {
text-align: right;
}
-table.LC_pick_box td.LC_evenrow_value {
- text-align: left;
- padding: 8px;
- background-color: $data_table_light;
-}
-table.LC_pick_box td.LC_oddrow_value {
- text-align: left;
- padding: 8px;
- background-color: $data_table_light;
-}
-table.LC_helpform_receipt {
- width: 620px;
- border-collapse: separate;
- background: white;
- border: 1px solid black;
- border-spacing: 1px;
-}
-table.LC_helpform_receipt td.LC_pick_box_title {
- background: $tabbg;
- font-weight: bold;
- text-align: right;
- width: 184px;
- padding: 8px;
-}
-table.LC_helpform_receipt td.LC_evenrow_value {
- text-align: left;
- padding: 8px;
- background-color: $data_table_light;
-}
-table.LC_helpform_receipt td.LC_oddrow_value {
- text-align: left;
- padding: 8px;
- background-color: $data_table_light;
-}
-table.LC_helpform_receipt td.LC_pick_box_separator {
- padding: 0px;
- height: 1px;
- background: black;
-}
-span.LC_helpform_receipt_cat {
- font-weight: bold;
-}
+
table.LC_group_priv_box {
background: white;
border: 1px solid black;
@@ -4498,10 +4511,6 @@ span.LC_nobreak {
white-space: nowrap;
}
-span.LC_cusr_emph {
- font-style: italic;
-}
-
table.LC_docs_documents {
background: #BBBBBB;
border-width: 0px;
@@ -4685,9 +4694,7 @@ Inputs: none
sub xml_begin {
my $output='';
- if ($env{'internal.start_page'}==1) {
- &Apache::lonhtmlcommon::init_htmlareafields();
- }
+ &Apache::lonhtmlcommon::init_htmlareafields();
if ($env{'browser.mathml'}) {
$output=''
@@ -5606,7 +5613,7 @@ sub user_picker {
my $currdom = $dom;
my %curr_selected = (
srchin => 'dom',
- srchby => 'lastname',
+ srchby => 'uname',
);
my $srchterm;
if (ref($srch) eq 'HASH') {
@@ -5625,15 +5632,14 @@ sub user_picker {
$srchterm = $srch->{'srchterm'};
}
my %lt=&Apache::lonlocal::texthash(
- 'usr' => 'Search criteria',
'doma' => 'Domain/institution to search',
'uname' => 'username',
'lastname' => 'last name',
'lastfirst' => 'last name, first name',
'crs' => 'in this course',
- 'dom' => 'in selected LON-CAPA domain',
+ 'dom' => 'in this domain',
'alc' => 'all LON-CAPA',
- 'instd' => 'in institutional directory for selected domain',
+ 'instd' => 'in institutional directory',
'exact' => 'is',
'contains' => 'contains',
'begins' => 'begins with',
@@ -5668,7 +5674,7 @@ sub user_picker {
$srchinsel .= "\n \n";
my $srchbysel = ' ';
- foreach my $option ('lastname','lastfirst','uname') {
+ foreach my $option ('uname','lastname','lastfirst') {
if ($curr_selected{'srchby'} eq $option) {
$srchbysel .= '
'.$lt{$option}.' ';
@@ -5680,7 +5686,7 @@ sub user_picker {
$srchbysel .= "\n \n";
my $srchtypesel = ' ';
- foreach my $option ('begins','contains','exact') {
+ foreach my $option ('exact','begins','contains') {
if ($curr_selected{'srchtype'} eq $option) {
$srchtypesel .= '
'.$lt{$option}.' ';
@@ -5694,12 +5700,7 @@ sub user_picker {
my ($newuserscript,$new_user_create);
if ($forcenewuser) {
- if (ref($srch) eq 'HASH') {
- if ($srch->{'srchby'} eq 'uname' && $srch->{'srchtype'} eq 'exact' && $srch->{'srchin'} eq 'dom' && $srch->{'srchdomain'} eq $env{'request.role.domain'}) {
- $new_user_create = ' &"').'" onclick="javascript:setSearch(\'1\','.$caller.');" />
';
- }
- }
-
+ $new_user_create = ' &"').'" onclick="javascript:setSearch(\'1\','.$caller.');" />
';
$newuserscript = <<"ENDSCRIPT";
function setSearch(createnew,callingForm) {
@@ -5806,18 +5807,16 @@ $new_user_create
END_BLOCK
@@ -5825,6 +5824,8 @@ END_BLOCK
return $output;
}
+
+
=pod
=back
@@ -6985,7 +6986,7 @@ sub commit_studentrole {
############################################################
sub check_clone {
- my ($args,$linefeed) = @_;
+ my ($args) = @_;
my $cloneid='/'.$args->{'clonedomain'}.'/'.$args->{'clonecourse'};
my ($clonecrsudom,$clonecrsunum)= &LONCAPA::split_courseid($cloneid);
my $clonehome=&Apache::lonnet::homeserver($clonecrsunum,$clonecrsudom);
@@ -6993,7 +6994,8 @@ sub check_clone {
my $can_clone = 0;
if ($clonehome eq 'no_host') {
- $clonemsg = &mt('No new course created.').$linefeed.&mt('A new course could not be cloned from the specified original - [_1] - because it is a non-existent course.',$args->{'clonecourse'}.':'.$args->{'clonedomain'});
+ $clonemsg = &mt('Attempting to clone non-existing [_1]',
+ $args->{'crstype'});
} else {
my %clonedesc = &Apache::lonnet::coursedescription($cloneid,{'one_time' => 1});
if ($env{'request.role.domain'} eq $args->{'clonedomain'}) {
@@ -7002,24 +7004,18 @@ sub check_clone {
my %clonehash = &Apache::lonnet::get('environment',['cloners'],
$args->{'clonedomain'},$args->{'clonecourse'});
my @cloners = split(/,/,$clonehash{'cloners'});
- if (grep(/^\*$/,@cloners)) {
- $can_clone = 1;
- } elsif (grep(/^\*\:\Q$args->{'ccdomain'}\E$/,@cloners)) {
- $can_clone = 1;
- } else {
- my %roleshash =
- &Apache::lonnet::get_my_roles($args->{'ccuname'},
- $args->{'ccdomain'},
- 'userroles',['active'],['cc'],
- [$args->{'clonedomain'}]);
- if (($roleshash{$args->{'clonecourse'}.':'.$args->{'clonedomain'}.':cc'}) || (grep(/^\Q$args->{'ccuname'}\E:\Q$args->{'ccdomain'}\E$/,@cloners))) {
- $can_clone = 1;
- } else {
- $clonemsg = &mt('No new course created.').$linefeed.&mt('The new course could not be cloned from the existing course because the new course owner ([_1]) does not have cloning rights in the existing course ([_2]).',$args->{'ccuname'}.':'.$args->{'ccdomain'},$clonedesc{'description'});
- }
+ my %roleshash =
+ &Apache::lonnet::get_my_roles($args->{'ccuname'},
+ $args->{'ccdomain'},'userroles',['active'],['cc'],
+ [$args->{'clonedomain'}]);
+ if (($roleshash{$args->{'clonecourse'}.':'.$args->{'clonedomain'}.':cc'}) || (grep(/^\Q$args->{'ccuname'}\E:\Q$args->{'ccdomain'}\E$/,@cloners))) {
+ $can_clone = 1;
+ } else {
+ $clonemsg = &mt('The new course was not cloned from an existing course because the new course owner ([_1]) does not have cloning rights in the existing course ([_2]).',$args->{'ccuname'}.':'.$args->{'ccdomain'},$clonedesc{'description'});
}
- }
+ }
}
+
return ($can_clone, $clonemsg, $cloneid, $clonehome);
}
@@ -7036,11 +7032,9 @@ sub construct_course {
#
my ($can_clone, $clonemsg, $cloneid, $clonehome);
if (($args->{'clonecourse'}) && ($args->{'clonedomain'})) {
- ($can_clone, $clonemsg, $cloneid, $clonehome) = &check_clone($args,$linefeed);
+ ($can_clone, $clonemsg, $cloneid, $clonehome) = &check_clone($args);
if ($context ne 'auto') {
- if ($clonemsg ne '') {
- $clonemsg = ''.$clonemsg.' ';
- }
+ $clonemsg = ''.$clonemsg.' ';
}
$outcome .= $clonemsg.$linefeed;
@@ -7384,27 +7378,10 @@ sub icon {
return &lonhttpdurl($iconname);
}
-sub lonhttpd_port {
- my $lonhttpd_port=$Apache::lonnet::perlvar{'lonhttpdPort'};
- if (!defined($lonhttpd_port)) { $lonhttpd_port='8080'; }
- # IE doesn't like a secure page getting images from a non-secure
- # port (when logging we haven't parsed the browser type so default
- # back to secure
- if ((!exists($env{'browser.type'}) || $env{'browser.type'} eq 'explorer')
- && $ENV{'SERVER_PORT'} == 443) {
- return 443;
- }
- return $lonhttpd_port;
-
-}
-
sub lonhttpdurl {
my ($url)=@_;
-
- my $lonhttpd_port = &lonhttpd_port();
- if ($lonhttpd_port == 443) {
- return 'https://'.$ENV{'SERVER_NAME'}.$url;
- }
+ my $lonhttpd_port=$Apache::lonnet::perlvar{'lonhttpdPort'};
+ if (!defined($lonhttpd_port)) { $lonhttpd_port='8080'; }
return 'http://'.$ENV{'SERVER_NAME'}.':'.$lonhttpd_port.$url;
}