';
+ '';
$colspan=" colspan='2' ";
my $cl=&mt('Close');
my $gi=&mt('Import');
$closebutton=<
+
END
$groupimportbutton=<
+onclick="javascript:select_group()" />
END
}
# Additions made by Matthew to make the browser a little easier to deal
@@ -228,7 +236,7 @@ END
# ------ set catalogmodefunctions to have extra needed javascript functionality
my $catalogmodefunctions='';
if ($env{'form.catalogmode'} eq 'interactive' or
- $env{'form.catalogmode'} eq 'groupimport') {
+ $env{'form.catalogmode'} eq 'import') {
# The if statement below sets us up to use the old version
# by default (ie. if $mode is undefined). This is the easy
# way out. Hopefully in the future I'll find a way to get
@@ -239,7 +247,7 @@ END
#
#
if (!defined($mode) || ($mode ne 'edit' && $mode ne 'parmset')) {
- my $location = "/adm/groupsort?catalogmode=groupimport&";
+ my $location = "/adm/groupsort?&inhibitmenu=yes&catalogmode=import&";
$location .= "mode=".$mode."&";
$location .= "acts=";
$catalogmodefunctions=<<"END";
@@ -266,6 +274,9 @@ END
function select_data(url) {
var location = "/res/?launch=2&form=$form&element=$element&titleelement=$titleelement&acts=" + url;
window.location=location;
+ if (window.opener.document.forms["$form"].elements["$element"].value != url) {
+ window.opener.unClean();
+ }
}
function select_group() {
window.location="$location"+document.forms.fileattr.acts.value;
@@ -326,7 +337,7 @@ function rep_dirpath(suffix,val) {
eval("document.forms.dirpath"+suffix+".acts.value=val");
}
END
- if ($env{'form.catalogmode'} eq 'groupimport') {
+ if ($env{'form.catalogmode'} eq 'import') {
$catalogmodefunctions.=<
-$catalogmodefunctions
+$catalogmodefunctions;
+function update_only(field) {
+ alert(field.name);
+}
+function checkAll() {
+ var numForms = document.forms.length;
+ for (i=0;i
ENDHEADER
- my ($headerdom)=($uri=~/^\/res\/(\w+)\//);
- $r->print(&Apache::loncommon::start_page('Browse Resources',$js,
- {'domain' => $headerdom,}));
-# - Evaluate actions from previous page (both cumulatively and chronologically)
- if ($env{'form.catalogmode'} eq 'groupimport') {
- my $acts=$env{'form.acts'};
- my @Acts=split(/b/,$acts);
- my %ahash;
- my %achash;
- my $ac=0;
- # some initial hashes for working with data
- foreach (@Acts) {
- my ($state,$ref)=split(/a/);
- $ahash{$ref}=$state;
- $achash{$ref}=$ac;
- $ac++;
- }
- # sorting through the actions and changing the global database hash
- foreach (sort {$achash{$a}<=>$achash{$b}} (keys %ahash)) {
- my $key=$_;
- if ($ahash{$key} eq '1') {
- $hash{'store_'.$hash{'pre_'.$key.'_link'}}=
- $hash{'pre_'.$key.'_title'};
- $hash{'storectr_'.$hash{'pre_'.$key.'_link'}}=
- $hash{'storectr'}+0;
- $hash{'storectr'}++;
- }
- if ($ahash{$key} eq '0') {
- if ($hash{'store_'.$hash{'pre_'.$key.'_link'}}) {
- delete $hash{'store_'.$hash{'pre_'.$key.'_link'}};
- }
- }
- }
- # deleting the previously cached listing
- foreach (keys %hash) {
- if ($_ =~ /^pre_/ && $_ =~/link$/) {
- my $key = $_;
- $key =~ s/^pre_//;
- $key =~ s/_[^_]*$//;
- delete $hash{'pre_'.$key.'_title'};
- delete $hash{'pre_'.$key.'_link'};
- }
- }
+ my ($headerdom)=($uri=~m{^/res/($match_domain)/});
+ my %args = (
+ 'domain' => $headerdom,
+ );
+ if ($env{'form.catalogmode'}) {
+ # "Popup mode"
+ $args{'only_body'} = 1;
+ }
+ $r->print(&Apache::loncommon::start_page('Browse Resources',$js,\%args));
+# ---------------------------------- get state of file types to be showing
+ if ($env{'form.only'}) {
+ $typeselect = $env{'form.only'};
+ } else {
+ $typeselect = '';
}
-
+
# ---------------------------------- get state of file attributes to be showing
if ($env{'form.attrs'}) {
- for (my $i=0; $i<=11; $i++) {
+ for (my $i=0; $i<=16; $i++) {
delete $hash{'display_attrs_'.$i};
if ($env{'form.attr'.$i} == 1) {
- $attrchk[$i] = 'checked';
+ $attrchk[$i] = 'checked="checked"';
$hash{'display_attrs_'.$i} = 1;
}
}
} else {
- for (my $i=0; $i<=11; $i++) {
- $attrchk[$i] = 'checked' if $hash{'display_attrs_'.$i} == 1;
+ for (my $i=0; $i<=16; $i++) {
+ $attrchk[$i] = 'checked="checked"' if $hash{'display_attrs_'.$i} == 1;
}
}
@@ -435,49 +448,87 @@ ENDHEADER
'st' => 'Statistics',
'au' => 'Author',
'kw' => 'Keywords',
+ 'sb' => 'Subject',
+ 'nt' => 'Notes',
+ 'ab' => 'Abstract',
'ln' => 'Language',
+ 'gl' => 'Grade Level',
+ 'sd' => 'Standards',
'sa' => 'Source Available',
'sr' => 'Show resource',
'li' => 'Linked/Related Resources',
'av' => 'All versions',
- 'ud' => 'Update Display'
+ 'ud' => 'Update Display',
+ 'pr' => 'Problems',
+ 'gr' => 'Graphics',
+ 'at' => 'All types',
+ 'hd' => 'Display Options',
);
$r->print(<
-
+');
+ $r->print(<
$closebutton $groupimportbutton
END
+ $r->print(&Apache::loncommon::inhibit_menu_check('input'));
+
# -------------- Filter out sequence containment in crumbs and "recent folders"
my $storeuri=$uri;
$storeuri='/'.(split(/\.(page|sequence)\/\//,$uri))[-1];
$storeuri=~s/\/+/\//g;
# ---------------------------------------------------------------- Bread crumbs
$r->print(&Apache::lonhtmlcommon::crumbs($storeuri,'','',
- (($env{'form.catalogmode'} eq 'groupimport')?
+ (($env{'form.catalogmode'} eq 'import')?
'document.forms.fileattr':'')).
&Apache::lonhtmlcommon::select_recent('residx','resrecent',
'window.status=this.form.resrecent.options[this.form.resrecent.selectedIndex].value;this.form.action=this.form.resrecent.options[this.form.resrecent.selectedIndex].value;this.form.submit();'));
@@ -485,8 +536,8 @@ END
my $reshome=$env{'course.'.$env{'request.course.id'}.'.reshome'};
if ($reshome) {
$r->print("print('javascript:document.forms.fileattr.action="'.$reshome.'";document.forms.fileattr.submit();');
+ if ($env{'form.catalogmode'} eq 'import') {
+ $r->print('javascript:document.forms.fileattr.action="'.&Apache::loncommon::inhibit_menu_check($reshome).'";document.forms.fileattr.submit();');
} else {
$r->print($reshome);
}
@@ -496,6 +547,11 @@ END
# ------------------------------------------------------ Remember where we were
&Apache::loncommon::storeresurl($storeuri);
&Apache::lonhtmlcommon::store_recent('residx',$storeuri,$storeuri);
+# -------------------------------------------------- Check All and Uncheck all
+ if ($env{'form.catalogmode'} eq 'import') {
+ $r->print(' ');
+ $r->print('');
+ }
# ----------------- output starting row to the indexed file/directory hierarchy
my $titleclr="#ddffff";
#$r->print(&initdebug());
@@ -527,6 +583,16 @@ END
if ($hash{'display_attrs_11'} == 1);
$r->print("
".&mt("Resource")."
\n")
if ($hash{'display_attrs_7'} == 1);
+ $r->print("
".&mt("Subject")."
\n")
+ if ($hash{'display_attrs_12'} == 1);
+ $r->print("
".&mt("Notes")."
\n")
+ if ($hash{'display_attrs_13'} == 1);
+ $r->print("
".&mt("Abstract")."
\n")
+ if ($hash{'display_attrs_14'} == 1);
+ $r->print("
".&mt("Grade Level")."
\n")
+ if ($hash{'display_attrs_15'} == 1);
+ $r->print("
".&mt("Standards")."
\n")
+ if ($hash{'display_attrs_16'} == 1);
$r->print('');
# ----------------- read in what directories have previously been set to "open"
@@ -578,12 +644,13 @@ END
# -------- recursively go through all the directories and output as appropriate
&scanDir ($r,$toplevel,$indent,\%hash);
-# ---------------------------- embed hidden information useful for group import
- $r->print("");
# -------------------------------------------------------------- end the tables
$r->print('');
+# ---------------------------- embed hidden information useful for group import
+ $r->print("");
+# -------------------------------------------------------------- end the tables
$r->print('');
# --------------------------------------------------- end the output and return
@@ -620,7 +687,7 @@ sub scanDir {
next if($strip =~ /.*\.meta$/ | $obs eq '1');
my (@fileparts) = split(/\./,$strip);
if ($hash{'display_attrs_9'} != 1) {
-# if not all versions to be shown
+ # if not all versions to be shown
if (scalar(@fileparts) >= 3) {
my $fext = pop @fileparts;
my $ov = pop @fileparts;
@@ -676,7 +743,7 @@ sub get_list {
$uri=~s/\/+/\//g;
foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$uri))) {
my @ratpart=split(/\:/,$_);
- push @list,$ratpart[1];
+ push(@list,&LONCAPA::map::qtescape($ratpart[1]));
}
$hash{'dirlist_files_'.$luri} = join("\n",@list);
} else {
@@ -685,7 +752,7 @@ sub get_list {
$hash{'dirlist_files_'.$luri} = join("\n",@list);
$hash{'dirlist_timestamp_files_'.$luri} = time;
}
- return @list=&match_ext($r,@list);
+ return @list=&match_ext($r,@list);
}
sub dynmetaread {
@@ -703,7 +770,7 @@ sub dynmetaread {
}
# Actually get the data
%dynhash=
- (%dynhash,&Apache::lonmeta::get_dynamic_metadata_from_sql($uri));
+ (%dynhash,&Apache::lonmeta::get_dynamic_metadata_from_sql($uri.'/'));
# Remember that we got it
$dynread{$uri}=1;
}
@@ -793,9 +860,10 @@ sub display_line {
my $tabtag='';
my $i=0;
- while ($i<=11) {
+ while ($i<=16) {
$tabtag=join('',$tabtag,"
")
- if $hash{'display_attrs_'.$i} == 1;
+ if ($i != 9 &&
+ $hash{'display_attrs_'.$i} == 1);
$i++;
}
my $valign = ($hash{'display_attrs_7'} == 1 ? 'top' : 'bottom');
@@ -807,19 +875,20 @@ sub display_line {
$updir='/'.(split(/\.(page|sequence)\/\//,$startdir))[-1];
$updir=~s/\/+/\//g;
- $r->print("
$extrafield");
+ $r->print("
$extrafield");
$r->print("
\n");
$r->print ('$tabtag
\n");
return OK;
@@ -835,24 +904,24 @@ sub display_line {
if ($filecom[1] eq 'domain') {
$r->print (''."\n")
if ($env{'form.dirPointer'} eq "on");
- $r->print("