Index: openacs-4/packages/xowiki/tcl/form-field-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/form-field-procs.tcl,v diff -u -N -r1.28 -r1.29 --- openacs-4/packages/xowiki/tcl/form-field-procs.tcl 24 Jul 2007 20:48:33 -0000 1.28 +++ openacs-4/packages/xowiki/tcl/form-field-procs.tcl 25 Jul 2007 23:59:23 -0000 1.29 @@ -51,7 +51,6 @@ if {![my exists id]} {my id [my name]} if {[my exists id]} {my set html(id) [my id]} if {[my exists default]} {my set value [my default]} - #my msg "calling config_from_spec '[my spec]'" my config_from_spec [my spec] } @@ -747,11 +746,13 @@ Class FormField::mon -superclass FormField::select FormField::mon instproc initialize {} { - # TODO: localized values are in acs-lang.localization-mon - my options { - {Jan 1} {Feb 2} {Mar 3} {Apr 4} {May 5} {Jun 6} - {Jul 7} {Aug 8} {Sep 9} {Oct 10} {Nov 11} {Dec 12} + set values [lang::message::lookup [my locale] acs-lang.localization-abmon] + set last 0 + foreach m {1 2 3 4 6 7 8 9 10 11 12} { + lappend options [list [lindex $values $last] $m] + set last $m } + my options $options next } ########################################################### @@ -762,11 +763,13 @@ Class FormField::month -superclass FormField::select FormField::month instproc initialize {} { - # TODO: localized values are in acs-lang.localization-mon - my options { - {January 1} {February 2} {March 3} {April 4} {May 5} {June 6} - {July 7} {August 8} {September 9} {October 10} {November 11} {December 12} + set values [lang::message::lookup [my locale] acs-lang.localization-mon] + set last 0 + foreach m {1 2 3 4 6 7 8 9 10 11 12} { + lappend options [list [lindex $values $last] $m] + set last $m } + my options $options next } @@ -813,7 +816,7 @@ # create for each component of the format a subobject named by the class # ::xowiki::FormField::$class create [self]::$class \ - -name [my name].$class -id [my id].$class + -name [my name].$class -id [my id].$class -locale [my locale] } } 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 -N -r1.72 -r1.73 --- openacs-4/packages/xowiki/tcl/package-procs.tcl 25 Jul 2007 10:54:47 -0000 1.72 +++ openacs-4/packages/xowiki/tcl/package-procs.tcl 25 Jul 2007 23:59:24 -0000 1.73 @@ -640,7 +640,7 @@ } } foreach o $objects {$o destroy} - append msg "$added objects newly inserted, $updated object updated, $replaced objects replaced

" + append msg "$added objects newly inserted, $updated objects updated, $replaced objects replaced

" } # @@ -649,6 +649,7 @@ Package ad_instproc rss { -maxentries -name_filter + -entries_of -title -days } { @@ -666,7 +667,9 @@ if {![info exists namefilter]} { set name_filter [my get_parameter name_filter ""] } - + if {![info exists entries_of]} { + set entries_of [my get_parameter entries_of ""] + } if {![info exists title]} { set title [my get_parameter title ""] if {$title eq ""} { @@ -684,6 +687,7 @@ set r [RSS new -destroy_on_cleanup \ -package_id [my id] \ -name_filter $name_filter \ + -entries_of $entries_of \ -title $title \ -days $days] Index: openacs-4/packages/xowiki/tcl/syndicate-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/syndicate-procs.tcl,v diff -u -N -r1.15 -r1.16 --- openacs-4/packages/xowiki/tcl/syndicate-procs.tcl 24 Jul 2007 13:21:39 -0000 1.15 +++ openacs-4/packages/xowiki/tcl/syndicate-procs.tcl 25 Jul 2007 23:59:24 -0000 1.16 @@ -22,6 +22,7 @@ Class RSS -superclass XMLSyndication -parameter { maxentries {name_filter ""} + {entries_of ""} {days ""} {css ""} {siteurl "[ad_url]"} @@ -97,34 +98,55 @@ } RSS instproc extra_where_clause {} { - my instvar name_filter days + my instvar name_filter days entries_of package_id set extra_where_clause "" if {$name_filter ne ""} { append extra_where_clause " and ci.name ~ E'$name_filter' " } if {$days ne ""} { append extra_where_clause " and p.last_modified > (now() + interval '$days days ago')" } + if {$entries_of ne ""} { + set form_items [list] + set folder_id [$package_id folder_id] + foreach t [split $entries_of |] { + set form_item_id [::xowiki::Form lookup -name $t -parent_id $folder_id] + if {$form_item_id == 0} {error "Cannot lookup page $t"} + lappend form_items $form_item_id + } + append extra_where_clause " and p.page_template in ('[join $form_items ',']') and p.page_instance_id = p.revision_id " + + my set base_table xowiki_form_pagex + } return $extra_where_clause } RSS instproc render {} { - my instvar package_id max_entries name_filter title days description siteurl + my instvar package_id max_entries name_filter title days description siteurl base_table set folder_id [::$package_id folder_id] if {$description eq ""} {set description [::$folder_id set description]} my set link $siteurl[site_node::get_url_from_object_id -object_id $package_id] - #my log "--rss WHERE= [my extra_where_clause]" + set base_table xowiki_pagex + set extra_where_clause [my extra_where_clause] + if {$base_table ne "xowiki_pagex"} { + # we assume, we retrieve the entries for a form + set extra_from "" + } else { + # return always instance_attributes + set extra_from "left join \ + xowiki_page_instance on (p.revision_id = page_instance_id)" + } + set sql [::xo::db::sql select \ -vars "s.body, p.name, p.creator, p.title, p.page_id, instance_attributes, \ p.object_type as content_type, p.last_modified, p.description" \ - -from "syndication s, cr_items ci, xowiki_pagex p left join \ - xowiki_page_instance on (p.revision_id = page_instance_id)" \ + -from "syndication s, cr_items ci, $base_table p $extra_from" \ -where "ci.parent_id = $folder_id and ci.live_revision = s.object_id \ and ci.publish_status <> 'production' \ - [my extra_where_clause] \ + $extra_where_clause \ and s.object_id = p.page_id" \ -orderby "p.last_modified desc" \ -limit [my limit]] Index: openacs-4/packages/xowiki/tcl/weblog-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/weblog-procs.tcl,v diff -u -N -r1.16 -r1.17 --- openacs-4/packages/xowiki/tcl/weblog-procs.tcl 24 Jul 2007 13:58:10 -0000 1.16 +++ openacs-4/packages/xowiki/tcl/weblog-procs.tcl 25 Jul 2007 23:59:24 -0000 1.17 @@ -11,7 +11,7 @@ tag ptag category_id - {instances_of ""} + {entries_of ""} filter_msg {sort_composite ""} {no_footer false} @@ -20,12 +20,13 @@ {exclude_item_ids 0} {summary false} {entry_renderer ::xowiki::Weblog::Entry} + {entry_flag} } ::xowiki::Weblog instproc init {} { my instvar filter_msg package_id nr_items next_page_link prev_page_link my instvar date category_id tag ptag page_number page_size summary items - my instvar name_filter entry_label instances_of sort_composite + my instvar name_filter entry_label entries_of sort_composite my log "--W starting" set folder_id [::$package_id set folder_id] @@ -76,10 +77,10 @@ set base_type ::xowiki::Page set base_table xowiki_pagei set attributes [list cr.revision_id p.publish_date p.title p.creator p.creation_user \ - p.description s.body instance_attributes] - if {$instances_of ne ""} { + p.description s.body pi.instance_attributes] + if {$entries_of ne ""} { set form_items [list] - foreach t [split $instances_of |] { + foreach t [split $entries_of |] { set form_item_id [::xowiki::Form lookup -name $t -parent_id $folder_id] if {$form_item_id == 0} {error "Cannot lookup page $t"} lappend form_items $form_item_id @@ -105,7 +106,7 @@ -orderby "publish_date desc" \ -from_clause "$extra_from_clause, $base_table p \ left outer join syndication s on s.object_id = p.revision_id \ - left join xowiki_page_instance on (p.revision_id = page_instance_id)" \ + left join xowiki_page_instance pi on (p.revision_id = pi.page_instance_id)" \ -where_clause "ci.item_id not in ([my exclude_item_ids]) \ and ci.name != '::$folder_id' and ci.name not like '%weblog%' $date_clause \ [::xowiki::Page container_already_rendered ci.item_id] \ @@ -119,7 +120,8 @@ } set nr_items [db_string count [eval $base_type instance_select_query $sql -count true]] - + #my msg count=$nr_items + #my msg sql=$sql set s [$base_type instantiate_objects -sql [eval $base_type instance_select_query $sql]] foreach c [$s children] { @@ -145,10 +147,12 @@ set p [::Generic::CrItem instantiate -item_id 0 -revision_id $revision_id] # in cases, the revision was created already earlier, drop the mixins if {[$p info mixin] ne ""} {$p mixin {}} + if {[my exists entry_flag]} {$p set [my entry_flag] 1} if {[my no_footer]} {$p set __no_footer 1} if {[catch {$p set description [$p render]} errorMsg]} { set description "Render Error ($errorMsg) $revision_id $name $title" } + if {[my exists entry_flag]} {$p unset [my entry_flag]} #my log "--W $p render (mixins=[$p info mixin]) => $description" } $p set pretty_date $pretty_date @@ -199,7 +203,7 @@ } ::xowiki::Weblog instproc render {} { - my log "--W begin" + #my log "--W begin" my instvar items # # We need the following CSS file for rendering @@ -209,7 +213,7 @@ $items set entry_renderer [my entry_renderer] set content [$items render] $items destroy_on_cleanup - my log "--W end" + #my log "--W end" return $content } Index: openacs-4/packages/xowiki/tcl/xowiki-form-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-form-procs.tcl,v diff -u -N -r1.81 -r1.82 --- openacs-4/packages/xowiki/tcl/xowiki-form-procs.tcl 24 Jul 2007 20:48:33 -0000 1.81 +++ openacs-4/packages/xowiki/tcl/xowiki-form-procs.tcl 25 Jul 2007 23:59:24 -0000 1.82 @@ -675,8 +675,8 @@ -parameter { {field_list {item_id name page_order title creator text form form_constraints anon_instances description nls_language}} - {f.text "= richtext,height=200px"} - {f.form "= richtext,height=200px"} + {f.text "= richtext,height=150px,label=#xowiki.Form-template#"} + {f.form "= richtext,height=150px"} {f.form_constraints "="} {validate { {name {\[::xowiki::validate_name\]} {Another item with this name exists \ Index: openacs-4/packages/xowiki/tcl/xowiki-portlet-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/Attic/xowiki-portlet-procs.tcl,v diff -u -N -r1.77 -r1.78 --- openacs-4/packages/xowiki/tcl/xowiki-portlet-procs.tcl 25 Jul 2007 10:54:47 -0000 1.77 +++ openacs-4/packages/xowiki/tcl/xowiki-portlet-procs.tcl 25 Jul 2007 23:59:24 -0000 1.78 @@ -273,13 +273,14 @@ {parameter_declaration { {-span "10d"} {-name_filter} + {-entries_of} {-title} }} } rss-button instproc render {} { my get_parameters - set href [export_vars -base [$package_id package_url] {{rss $span} name_filter title}] + set href [export_vars -base [$package_id package_url] {{rss $span} name_filter title entries_of}] return "RSS" } @@ -1637,19 +1638,26 @@ item-button instproc render_button { -page + -package_id -method -src -alt -title -return_url -page_order + -object_type } { set html "" - set package_id [$page package_id] - set p_link [$package_id pretty_link [$page name]] if {![info exists return_url]} {set return_url $p_link} if {![info exists alt]} {set alt $method} - set edit_link [$package_id make_link -link $p_link $page $method return_url page_order] + if {[$page istype ::xowiki::Package]} { + set edit_link [$package_id make_link $package_id \ + edit-new page_order object_type return_url autoname] + } else { + set p_link [$package_id pretty_link [$page name]] + set edit_link [$package_id make_link -link $p_link $page $method return_url page_order] + } + if {$edit_link ne ""} { set html "\"$alt\"" } @@ -1674,7 +1682,7 @@ set title "$title [$template title] [$page name]" } return [my render_button \ - -page $page -method edit \ + -page $page -method edit -package_id $package_id \ -title $title -alt $alt \ -return_url [::xo::cc url] \ -src /resources/acs-subsite/Edit16.gif] @@ -1695,7 +1703,7 @@ my instvar __including_page set page [expr {[info exists page_id] ? $page_id : $__including_page}] return [my render_button \ - -page $page -method delete \ + -page $page -method delete -package_id $package_id \ -title $title -alt $alt \ -return_url [::xo::cc url] \ -src /resources/acs-subsite/Delete16.gif] @@ -1714,17 +1722,25 @@ my get_parameters my instvar __including_page set page [expr {[info exists page_id] ? $page_id : $__including_page}] + set page_order [::xowiki::Portlet incr_page_order [$page page_order]] if {[$page istype ::xowiki::FormPage]} { set template [$page page_template] - set page_order [::xowiki::Portlet incr_page_order [$page page_order]] return [my render_button \ - -page $template -method create-new \ + -page $template -method create-new -package_id $package_id \ -title [_ xowiki.create_new_entry_of_type [list type [$template title]]] \ -alt $alt -page_order $page_order \ -return_url [::xo::cc url] \ -src /resources/acs-subsite/Add16.gif] + } else { + set object_type [$__including_page info class] + return [my render_button \ + -page $package_id -method edit_new -package_id $package_id \ + -title [_ xowiki.create_new_entry_of_type [list type $object_type]] \ + -alt $alt -page_order $page_order \ + -return_url [::xo::cc url] \ + -object_type $object_type \ + -src /resources/acs-subsite/Add16.gif] } - return "" } } @@ -2162,7 +2178,7 @@ set sql_atts [list instance_attributes] foreach att [::xowiki::FormPage edit_atts] {set __att($att) 1} - set common_atts [list last_modified creation_user] + set common_atts [list last_modified creation_user name] foreach att $common_atts { lappend sql_atts p.$att set __att($att) 1 Index: openacs-4/packages/xowiki/tcl/xowiki-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-procs.tcl,v diff -u -N -r1.155 -r1.156 --- openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 25 Jul 2007 10:54:47 -0000 1.155 +++ openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 25 Jul 2007 23:59:24 -0000 1.156 @@ -1296,7 +1296,11 @@ # Methods of ::xowiki::FormPage # FormPage instproc footer {} { - return [my include_portlet [list form-entry-menu]] + if {[my exists __no_form_page_footer]} { + next + } else { + return [my include_portlet [list form-entry-menu]] + } } FormPage instproc form_attributes {} { Index: openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl,v diff -u -N -r1.92 -r1.93 --- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 25 Jul 2007 10:54:47 -0000 1.92 +++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 25 Jul 2007 23:59:24 -0000 1.93 @@ -96,7 +96,7 @@ if {$content eq ""} { set content [my render] } - my log "--after render" + #my log "--after render" set footer [my htmlFooter -content $content] set top_portlets "" @@ -116,13 +116,9 @@ array set views_data [views::get -object_id $item_id] } - # export title, name and text into current scope + # import title, name and text into current scope my instvar title name text - ### this was added by dave to address a problem with notifications - ### however, this does not work, when e.g. a page is renamed. - #set return_url [ad_return_url] - if {[my exists_query_parameter return_url]} { set return_url [my query_parameter return_url] } @@ -157,11 +153,18 @@ set object_type [$package_id get_parameter object_type [my info class]] set rev_link [$package_id make_link [self] revisions] set edit_link [$package_id make_link [self] edit return_url] - set delete_link [$package_id make_link [self] delete return_url] - set new_link [$package_id make_link $package_id edit-new object_type return_url autoname] + set delete_link [$package_id make_link [self] delete return_url] + if {[my istype ::xowiki::FormPage]} { + set template_id [my page_template] + set form [$package_id pretty_link [$template_id name]] + set new_link [$package_id make_link -link $form $template_id create-new return_url] + } else { + set new_link [$package_id make_link $package_id edit-new object_type return_url autoname] + } set admin_link [$package_id make_link -privilege admin -link admin/ $package_id {} {}] set index_link [$package_id make_link -privilege public -link "" $package_id {} {}] set create_in_req_locale_link "" + if {[$package_id get_parameter use_connection_locale 0]} { $package_id get_name_and_lang_from_path \ [$package_id set object] req_lang req_local_name @@ -177,7 +180,7 @@ } } - my log "--after context delete_link=$delete_link " + #my log "--after context delete_link=$delete_link " set template [$folder_id get_payload template] set page [self] @@ -355,14 +358,11 @@ } else { set default "" } - #if {![my exists name]} { - # my name "" - #} set f [FormField new -name $name \ -id [::xowiki::Portlet html_id F.[my name].$name] \ -locale [my nls_language] \ -label $label \ - -type [expr {[$slot exists datatype] ? [$slot set datatype] : "text"}] \ + -type [expr {[$slot exists datatype] ? [$slot set datatype] : "text"}] \ -help_text [expr {[$slot exists help_text] ? [$slot set help_text] : ""}] \ -validator [expr {[$slot exists validator] ? [$slot set validator] : ""}] \ -required [expr {[$slot exists required] ? [$slot set required] : "false"}] \ Index: openacs-4/packages/xowiki/www/prototypes/announcements.page =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/prototypes/Attic/announcements.page,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/xowiki/www/prototypes/announcements.page 19 Feb 2007 10:01:28 -0000 1.1 +++ openacs-4/packages/xowiki/www/prototypes/announcements.page 25 Jul 2007 23:59:24 -0000 1.2 @@ -33,10 +33,12 @@ append more "

" set day [lc_time_fmt [my set publish_date] "%x"] + set my_footer [my htmlFooter] + append content "
" \ "

$title

" \ " ($day)
" \ - $description $more \n\ + $description $more $my_footer \n\ "
" } @@ -66,7 +68,7 @@ } set page [my set __page] set rss [$page include_portlet \ - "rss-button -name_filter {$name_filter} -title {[$page title]}"] + "rss-button -title {[$page title]} -entries_of en:announcement-entry"] #set rss [list [self] [lsort [my info vars]]] return "
$filter [next] $prev $next
$rss
" } @@ -83,6 +85,7 @@ } else { #my log "--W NO including page" set exclude_item_ids [$page item_id] + $page set __no_footer 1 } # on the announcements page, an edit-new should not create an object @@ -102,10 +105,11 @@ -category_id [ns_queryget category_id] \ -tag $tag \ -ptag $ptag \ - -name_filter $name_filter \ -entry_label "Announcements" \ -exclude_item_ids $exclude_item_ids \ -entry_renderer $entry_renderer \ + -entry_flag __no_form_page_footer \ + -entries_of en:announcement-entry \ ] $w set __page $page $w mixin add $renderer Index: openacs-4/packages/xowiki/www/prototypes/bib.page =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/prototypes/bib.page,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/xowiki/www/prototypes/bib.page 18 May 2007 09:07:44 -0000 1.1 +++ openacs-4/packages/xowiki/www/prototypes/bib.page 25 Jul 2007 23:59:24 -0000 1.2 @@ -4,7 +4,7 @@ # # A bibliography interface based on weblog. # Bibliography entries are typically selected via - # instances_of (PageInstances, FormInstances). + # entries_of (PageInstances, FormInstances). # # Gustaf Neumann fecit, May 2007 # @@ -14,7 +14,7 @@ {-category_id ""} {-tag ""} {-ptag ""} - {-instances_of ""} + {-entries_of ""} } # @@ -84,7 +84,7 @@ -ptag $ptag \ -no_footer true \ -sort_composite "method,by_date,desc" \ - -instances_of $instances_of \ + -entries_of $entries_of \ -exclude_item_ids $exclude_item_ids \ -entry_renderer $entry_renderer \ ] Index: openacs-4/packages/xowiki/www/prototypes/weblog-portlet.page =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/prototypes/weblog-portlet.page,v diff -u -N -r1.8 -r1.9 --- openacs-4/packages/xowiki/www/prototypes/weblog-portlet.page 24 Jul 2007 13:58:11 -0000 1.8 +++ openacs-4/packages/xowiki/www/prototypes/weblog-portlet.page 25 Jul 2007 23:59:24 -0000 1.9 @@ -11,7 +11,7 @@ {-date ""} {-tag ""} {-ptag ""} - {-instances_of ""} + {-entries_of ""} } # @@ -108,7 +108,7 @@ -category_id [ns_queryget category_id] \ -tag $tag \ -ptag $ptag \ - -instances_of $instances_of \ + -entries_of $entries_of \ -exclude_item_ids $exclude_item_ids \ -entry_renderer $entry_renderer \ ]