Index: openacs-4/packages/xowiki/tcl/folder-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/folder-procs.tcl,v diff -u -r1.14 -r1.15 --- openacs-4/packages/xowiki/tcl/folder-procs.tcl 10 Sep 2012 07:59:11 -0000 1.14 +++ openacs-4/packages/xowiki/tcl/folder-procs.tcl 13 Sep 2012 15:26:45 -0000 1.15 @@ -456,6 +456,7 @@ child-resources instproc render {} { my get_parameters + set package_id [::xo::cc package_id] set current_folder [my set __including_page] if {$parent eq ".."} { @@ -511,6 +512,8 @@ # http://developer.yahoo.com/yui/examples/datatable/dt_skinning.html # HiddenField ID + HiddenField item_id + HiddenField revision_id AnchorField edit -CSSclass edit-item-button -label "" \ -hide $::hidden(edit) \ -html {style "padding: 0px;"} @@ -539,6 +542,7 @@ -extra_where_clause $extra_where_clause] set package_id [::xo::cc package_id] + set pkg ::$package_id set url [::xo::cc url] $pkg get_lang_and_name -default_lang "" -name [$current_folder name] lang name @@ -568,6 +572,8 @@ $t add \ -ID [$c name] \ + -item_id [$c item_id] \ + -revision_id [$c revision_id] \ -name $prettyName \ -name.href [export_vars -base $page_link {template_file html-content}] \ -name.title [$c set title] \ @@ -584,16 +590,34 @@ foreach {att order} [split $orderby ,] break $t orderby -order [expr {$order eq "asc" ? "increasing" : "decreasing"}] $att - set resources_list "[$t asHTML]" - - set viewers [util_coalesce [$current_folder property viewers] [$current_folder get_parameter viewers]] + + + set template_ref [util_coalesce \ + [$current_folder property template] \ + [$current_folder get_parameter template]] + + # set template_ref "//xowiki/icon-view.tpl" + # set template_ref "//xowiki/thumbnail-view.tpl" + + if { $template_ref ne {} } { + set template [$package_id get_page_from_item_ref $template_ref] + set view [::xo::DataView new -store $t -template $template] + set html [$view asHTML] + } else { + set html [$t asHTML] + } + + set viewers [util_coalesce \ + [$current_folder property viewers] \ + [$current_folder get_parameter viewers]] + set viewer_links "" foreach v $viewers { set wf_link "${v}?p.folder=[${current_folder} name]" append wf_link "&m=create-or-use" append viewer_links [subst -nocommands -nobackslashes {
  • view with $v
  • }] } - return " [$t asHTML]" + return " $html" } } @@ -755,6 +779,7 @@ } } + Class DataTable \ -superclass ::xo::Table \ -parameter { @@ -785,6 +810,32 @@ } } +namespace eval ::xo { + + Class DataView \ + -parameter { + {store ""} + {template ""} + {adp ""} + } + + DataView instproc init {} { + my instvar template adp + + set text [$template set text] + set adp {<%ns_adp_bind_args rows%>} + append adp [util_compile_template text] + + } + + DataView instproc asHTML {} { + my instvar adp store + return [ns_adp_parse $adp [$store children]] + } + +} + + # TODO Allow renderers from other namespaces in 30-widget-procs namespace eval ::xo::Table { Index: openacs-4/packages/xowiki/tcl/package-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/package-procs.tcl,v diff -u -r1.258 -r1.259 --- openacs-4/packages/xowiki/tcl/package-procs.tcl 10 Sep 2012 07:59:11 -0000 1.258 +++ openacs-4/packages/xowiki/tcl/package-procs.tcl 13 Sep 2012 15:26:45 -0000 1.259 @@ -167,6 +167,7 @@ my log "Error: Could not resolve parameter folder page '$item_ref' of FormPage [self]." } else { set item_id [::xo::db::CrClass lookup -name $name -parent_id [$folder item_id]] + my msg "name=$name item_ref=$item_ref folder=$folder item_id=$item_id folder_id=[$folder item_id]" if { $item_id != 0 } { return $item_id } @@ -968,10 +969,15 @@ } } - # TODO - #my log ">>>>>>>> HERE HERE item_id=$item_id" if { $item_id == 0 } { set item_id [my get_page_from_super -folder_id $parent_id $stripped_name] + if { $item_id == 0 } { + set item_id [my get_page_from_super -folder_id $parent_id ${lang}:$stripped_name] + if { $item_id == 0 } { + set item_id [my get_page_from_super -folder_id $parent_id file:$stripped_name] + } + } + if { $item_id != 0 } { set name $stripped_name } @@ -1321,7 +1327,7 @@ -parent_id [my folder_id] \ parent (stripped_name)] - #my msg "get_parent_and_name '$stripped_url' returns [array get {}]" + my msg "get_parent_and_name '$stripped_url' returns [array get {}]" if {![regexp {^(download)/(.+)$} $(lang) _ (method) (lang)]} { set (method) "" @@ -1343,10 +1349,14 @@ ::xo::cc set actual_query $tag_kind=$tag&summary=$summary } } + array set "" [my prefixed_lookup -parent_id $(parent_id) \ - -default_lang $default_lang -lang $(lang) -stripped_name $(stripped_name)] - #my msg "prefixed_lookup '$(stripped_name)' returns [array get {}]" + -default_lang $default_lang \ + -lang $(lang) \ + -stripped_name $(stripped_name)] + my msg "prefixed_lookup '$(stripped_name)' returns [array get {}]" + if {$(item_id) == 0} { # check link (todo should happen in package->lookup?) ::xo::db::CrClass get_instance_from_db -item_id $(parent_id) Index: openacs-4/packages/xowiki/tcl/xowiki-utility-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-utility-procs.tcl,v diff -u -r1.21 -r1.22 --- openacs-4/packages/xowiki/tcl/xowiki-utility-procs.tcl 21 Aug 2012 15:43:32 -0000 1.21 +++ openacs-4/packages/xowiki/tcl/xowiki-utility-procs.tcl 13 Sep 2012 15:26:45 -0000 1.22 @@ -680,4 +680,89 @@ return [$root asList] } +proc util_compile_template {textVar {depth 0}} { + + upvar $textVar text + + if { $text eq {} } return + + set first [string first {} $text] + + if { -1 == $last } { + error "unmatched tpl tag" + } + + set first_gt [string first {>} $text [expr {1+$first}]] + set body_start [expr {1 + $first_gt}] + set body_end [expr { $last - 1}] + if { $body_start > $body_end } { + error "something wrong folks: missing '>' after '")=>6 + set text [string range $text $body_start $body_end] + append adp [util_compile_template before_text $depth] + append adp "\n foreach o${depth} \$$varname \{ " + append adp [util_compile_template text $depth] + append adp "\}" + incr depth -1 + if { 0 == $depth } { append adp "%>" } + + append adp [util_compile_template after_text $depth] + + } else { + set adp "" + set re {\{([a-zA-Z_][a-zA-Z_0-9\.]*)\}} + set start 0 + set text [string map {"%7B" "\{" "%7D" "\}"} $text] + while {[regexp -start $start -indices -- $re $text match submatch]} { + lassign $submatch subStart subEnd + lassign $match matchStart matchEnd + incr matchStart -1 + incr matchEnd + + set before_text [string range $text $start $matchStart] + set name [string range $text $subStart $subEnd] + if { $before_text ne {} } { + append adp "\n ns_adp_puts [list -nonewline $before_text]" + } + append adp "\n ns_adp_puts -nonewline \[\$o${depth} set $name\]" + + set start $matchEnd + } + set after_text [string range $text $start end] + if { $after_text ne {} } { + append adp "\n ns_adp_puts -nonewline [list $after_text]" + } + + } + + + return $adp + +} + +proc util_gen_doc_preview {infile outfile {dpi 120}} { + set GS [util_coalesce [util::which gs] /usr/bin/gs] + set cmd "${GS} -q -dQUIET -dSAFER -dPARANOIDSAFE -dBATCH -dNOPAUSE -dNOPROMPT -dAlignToPixels=0 -dGridFitTT=0 \"-sDEVICE=png16m\" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r${dpi} -dFirstPage=1 -dLastPage=1 \"-sOutputFile=${outfile}\" \"${infile}\"" + exec -- /bin/sh -c "${cmd} || exit 0" 2> /dev/null +} + + +proc util_scale_image {geometry infile outfile} { + set im_convert [util_coalesce [util::which convert] /usr/bin/convert] + set cmd "${im_convert} -quiet -strip -scale $geometry ${infile} ${outfile}" + ns_log notice "scale_image cmd=$cmd" + exec -- /bin/sh -c "$cmd || exit 0" 2> /dev/null +} + ::xo::library source_dependent \ No newline at end of file Index: openacs-4/packages/xowiki/www/oacs-view.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/oacs-view.adp,v diff -u -r1.62 -r1.63 --- openacs-4/packages/xowiki/www/oacs-view.adp 26 May 2011 07:51:05 -0000 1.62 +++ openacs-4/packages/xowiki/www/oacs-view.adp 13 Sep 2012 15:26:45 -0000 1.63 @@ -1,4 +1,4 @@ - + @title;noquote@ @context;noquote@ Index: openacs-4/packages/xowiki/www/oacs-view2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/oacs-view2.adp,v diff -u -r1.41 -r1.42 --- openacs-4/packages/xowiki/www/oacs-view2.adp 26 May 2011 07:51:05 -0000 1.41 +++ openacs-4/packages/xowiki/www/oacs-view2.adp 13 Sep 2012 15:26:45 -0000 1.42 @@ -1,4 +1,4 @@ - + @title;noquote@ @context;noquote@ Index: openacs-4/packages/xowiki/www/oacs-view3.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/oacs-view3.adp,v diff -u -r1.36 -r1.37 --- openacs-4/packages/xowiki/www/oacs-view3.adp 26 May 2011 07:51:05 -0000 1.36 +++ openacs-4/packages/xowiki/www/oacs-view3.adp 13 Sep 2012 15:26:45 -0000 1.37 @@ -1,4 +1,4 @@ - + @title;noquote@ @context;noquote@ Index: openacs-4/packages/xowiki/www/thumbnail.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/thumbnail.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/xowiki/www/thumbnail.tcl 13 Sep 2012 15:26:45 -0000 1.1 @@ -0,0 +1,30 @@ +ad_page_contract { + @author Neophytos Demetriou +} { + item_id:naturalnum + revision_id:naturalnum + {preview:boolean "0"} +} + +set file_object [::xo::db::CrClass get_instance_from_db -item_id $item_id] + +set name [$file_object name] +set type [string trimleft [string tolower [file extension ${name}]] {.}] +if { $type eq {} && -1 == [string first {:} $id] } { + set type "folder" +} +if { $type eq {pdf} && $preview } { + set infile [$file_object full_file_name] + set dir [file join [acs_root_dir] cr_preview ${item_id}] + set outfile [file join $dir ${item_id}-0.png] + set thumbnail_file [file join $dir ${item_id}-200.png] + if { ![file isdirectory $dir] } { + file mkdir $dir + util_gen_doc_preview $infile $outfile + util_scale_image "200x" $outfile $thumbnail_file + } +} else { + set thumbnail_file [file join [acs_root_dir] packages xowiki www resources ${type}-icon.png] +} + +ad_returnfile_background 200 image/png $thumbnail_file \ No newline at end of file Index: openacs-4/packages/xowiki/www/view-book-no-ajax.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/view-book-no-ajax.adp,v diff -u -r1.18 -r1.19 --- openacs-4/packages/xowiki/www/view-book-no-ajax.adp 26 May 2011 07:51:05 -0000 1.18 +++ openacs-4/packages/xowiki/www/view-book-no-ajax.adp 13 Sep 2012 15:26:45 -0000 1.19 @@ -1,4 +1,4 @@ - + @title;noquote@ @context;noquote@ Index: openacs-4/packages/xowiki/www/view-book.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/view-book.adp,v diff -u -r1.29 -r1.30 --- openacs-4/packages/xowiki/www/view-book.adp 26 May 2011 07:51:05 -0000 1.29 +++ openacs-4/packages/xowiki/www/view-book.adp 13 Sep 2012 15:26:45 -0000 1.30 @@ -1,4 +1,4 @@ - + @title;noquote@ @context;noquote@ Index: openacs-4/packages/xowiki/www/view-default.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/view-default.adp,v diff -u -r1.58 -r1.59 --- openacs-4/packages/xowiki/www/view-default.adp 26 May 2011 07:51:05 -0000 1.58 +++ openacs-4/packages/xowiki/www/view-default.adp 13 Sep 2012 15:26:45 -0000 1.59 @@ -1,4 +1,4 @@ - + @title;noquote@ @context;noquote@ Index: openacs-4/packages/xowiki/www/view-links.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/view-links.adp,v diff -u -r1.48 -r1.49 --- openacs-4/packages/xowiki/www/view-links.adp 26 May 2011 07:51:05 -0000 1.48 +++ openacs-4/packages/xowiki/www/view-links.adp 13 Sep 2012 15:26:45 -0000 1.49 @@ -1,4 +1,4 @@ - +
    Index: openacs-4/packages/xowiki/www/view-plain.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/view-plain.adp,v diff -u -r1.44 -r1.45 --- openacs-4/packages/xowiki/www/view-plain.adp 26 May 2011 07:51:05 -0000 1.44 +++ openacs-4/packages/xowiki/www/view-plain.adp 13 Sep 2012 15:26:45 -0000 1.45 @@ -1,4 +1,4 @@ - +
    Index: openacs-4/packages/xowiki/www/prototypes/folder.form.page =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/prototypes/Attic/folder.form.page,v diff -u -r1.8 -r1.9 --- openacs-4/packages/xowiki/www/prototypes/folder.form.page 20 Aug 2012 09:29:11 -0000 1.8 +++ openacs-4/packages/xowiki/www/prototypes/folder.form.page 13 Sep 2012 15:26:45 -0000 1.9 @@ -4,7 +4,7 @@ -title "Folder Form" \ -set anon_instances t \ -set text {{{child-resources}}} \ - -set form {
    @extra_menu_entries@ @index@ @ParameterPages@ @viewers@ @inherit_folders@
    } \ + -set form {
    @extra_menu_entries@ @index@ @template@ @ParameterPages@ @viewers@ @inherit_folders@
    } \ -set form_constraints {extra_menu_entries:menuentries _nls_language:omit _name:required} Index: openacs-4/packages/xowiki/www/resources/jpeg-icon.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/Attic/jpeg-icon.png,v diff -u Binary files differ Index: openacs-4/packages/xowiki/www/resources/mov-icon.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/Attic/mov-icon.png,v diff -u Binary files differ Index: openacs-4/packages/xowiki/www/resources/mp4-icon.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/Attic/mp4-icon.png,v diff -u Binary files differ Index: openacs-4/packages/xowiki/www/resources/pdf-icon.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/Attic/pdf-icon.png,v diff -u Binary files differ