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 -r1.270 -r1.271 --- openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 6 Sep 2008 16:26:59 -0000 1.270 +++ openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 8 Sep 2008 11:27:12 -0000 1.271 @@ -841,6 +841,7 @@ } if {[catch {set html [$page render]} errorMsg]} { + ns_log error "$errorMsg\n$::errorInfo" set page_name [$page name] set html [my error_during_render [_ xowiki.error-includelet-error_during_render]] } @@ -891,6 +892,7 @@ lappend adp_args __including_page [self] set including_page_level [template::adp_level] if {[catch {set page [template::adp_include $adp_fn $adp_args]} errorMsg]} { + ns_log error "$errorMsg\n$::errorInfo" # in case of error, reset the adp_level to the previous value set ::template::parse_level $including_page_level incr ::xowiki_inclusion_depth -1 @@ -1026,8 +1028,9 @@ -stripped_name $normalized_name -label $label \ -folder_id $parent_id -package_id $package_id - if {[catch {eval [self]::link configure $options} error]} { - return "
Error during processing of options [list $options] of link of type [[self]::link info class]:
$error
" + if {[catch {eval [self]::link configure $options} errorMsg]} { + ns_log error "$errorMsg\n$::errorInfo" + return "
Error during processing of options [list $options] of link of type [[self]::link info class]:
$errorMsg
" } else { return [[self]::link render] } @@ -1504,14 +1507,15 @@ PageInstance instproc get_field_label {name value} { set short_spec [my get_short_spec $name] - #my msg "short_spec for $name = '$short_spec'" - if {$short_spec ne ""} { set f [::xowiki::formfield::FormField new -volatile -name $name -spec $short_spec] - return [$f pretty_value $value] + if {![$f exists show_raw_value]} { + set value [$f field_value $value] + } } return $value } + PageInstance instproc widget_spec_from_folder_object {name given_template_name} { # get the widget field specifications from the payload of the folder object # for a field with a specified name in a specified page template @@ -1717,7 +1721,7 @@ Form proc disable_input_fields {{-with_submit 0} form} { dom parse -simple -html $form doc $doc documentElement root - my disable_input_fields_dom $root + my dom_disable_input_fields -with_submit $with_submit $root return [$root asHTML] } @@ -1728,6 +1732,7 @@ # we assume, that the richtext is stored as 2-elem list with mime-type #my log "-- text='$text'" if {[lindex $text 0] ne ""} { + my do_substitutions 0 set content [my substitute_markup [my set text]] } elseif {[lindex $form 0] ne ""} { set content [[self class] disable_input_fields [lindex $form 0]] @@ -1783,6 +1788,7 @@ if {[catch { my create_form_fields_from_form_constraints $form_constraints } errorMsg]} { + ns_log error "$errorMsg\n$::errorInfo" my uplevel [list set errorMsg $errorMsg] #my msg "ERROR: invalid spec '$short_spec' for form field '$spec_name' -- $errorMsg" return 0 @@ -2039,8 +2045,7 @@ } FormPage instproc get_value {before varname} { - #my msg "varname=$varname, val=[my property $varname]" - set value [my property $varname] + set value [my property $varname] # todo: might be more efficient to check, if it exists already set f [my create_raw_form_field -name $varname \ @@ -2049,7 +2054,7 @@ if {[$f hide_value]} { set value "" - } else { + } elseif {![$f exists show_raw_value]} { set value [$f pretty_value $value] } return $before$value 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 -r1.164 -r1.165 --- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 7 Sep 2008 13:27:13 -0000 1.164 +++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 8 Sep 2008 11:27:13 -0000 1.165 @@ -161,7 +161,11 @@ set autoname [$package_id get_parameter autoname 0] set object_type [$package_id get_parameter object_type [my info class]] set rev_link [$package_id make_link -with_entities 0 [self] revisions] - set edit_link [$package_id make_link -with_entities 0 [self] edit return_url] + if {[$package_id query_parameter m ""] eq "edit"} { + set view_link [$package_id make_link -with_entities 0 [self] view return_url] + } else { + set edit_link [$package_id make_link -with_entities 0 [self] edit return_url] + } set delete_link [$package_id make_link -with_entities 0 [self] delete return_url] if {[my exists __link(new)]} { set new_link [my set __link(new)] @@ -228,7 +232,7 @@ $package_id return_page -adp $template_file -variables { name title item_id context header_stuff return_url content footer package_id - rev_link edit_link delete_link new_link admin_link index_link + rev_link edit_link delete_link new_link admin_link index_link view_link notification_subscribe_link notification_image top_includelets page views_data property_body property_doc @@ -1165,11 +1169,25 @@ } } + # some final sanity checks + foreach f $form_fields { + if {[$f exists disabled]} { + # don't mark disabled fields as required + if {[$f required]} { + $f required false + } + #don't show the help-text, if you cannot input + if {[$f help_text] ne ""} { + $f help_text "" + } + } + } + # The following command would be correct, but does not work due to a bug in # tdom. # set form [my regsub_eval \ # [template::adp_variable_regexp] $form \ - # {my form_field_as_html "\\\1" "\2" $form_fields}] + # {my form_field_as_html -mode edit "\\\1" "\2" $form_fields}] # Due to this bug, we program around and replace the at-character # by \x003 to avoid conflict withe the input and we replace these # magic chars finally with the fields resulting from tdom. @@ -1254,7 +1272,7 @@ set html [$root asHTML] set html [my regsub_eval \ {(^|[^\\])\x003([a-zA-Z0-9_:]+)\x003} $html \ - {my form_field_as_html "\\\1" "\2" $form_fields}] + {my form_field_as_html -mode edit "\\\1" "\2" $form_fields}] #my log "calling VIEW with HTML [string length $html]" if {$view} {