Index: openacs-4/packages/acs-templating/tcl/element-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/element-procs.tcl,v diff -u -N -r1.17 -r1.18 --- openacs-4/packages/acs-templating/tcl/element-procs.tcl 5 Oct 2003 17:55:55 -0000 1.17 +++ openacs-4/packages/acs-templating/tcl/element-procs.tcl 9 Oct 2003 11:07:40 -0000 1.18 @@ -527,9 +527,10 @@ set values [template::data::transform::$datatype element] } - set spellcheck [lindex [template::util::spellcheck::spellcheck_properties -element_ref element] 0] + # Spell-checker + array set spellcheck [template::util::spellcheck::spellcheck_properties -element_ref element] - if { ![string equal ":nospell:" $spellcheck] } { + if { $spellcheck(perform_p) } { set values [template::data::transform::spellcheck -element_ref element -values $values] } Index: openacs-4/packages/acs-templating/tcl/richtext-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/richtext-procs.tcl,v diff -u -N -r1.10 -r1.11 --- openacs-4/packages/acs-templating/tcl/richtext-procs.tcl 5 Oct 2003 17:55:55 -0000 1.10 +++ openacs-4/packages/acs-templating/tcl/richtext-procs.tcl 9 Oct 2003 11:07:40 -0000 1.11 @@ -187,13 +187,11 @@ append output [textarea_internal "$element(id)" attributes $contents] append output "
Format: [menu "$element(id).format" [template::util::richtext::format_options] $format {}]" - set spellcheck_properties [template::util::spellcheck::spellcheck_properties -element_ref element] - set spellcheck [lindex $spellcheck_properties 0] + # Spell-checker + array set spellcheck [template::util::spellcheck::spellcheck_properties -element_ref element] - if { ![string equal ":nospell:" $spellcheck] } { - set selected_option [lindex $spellcheck_properties 1] - - append output " Spellcheck: [menu "$element(id).spellcheck" [nsv_get spellchecker lang_options] $selected_option {}]" + if { $spellcheck(render_p) } { + append output " Spellcheck: [menu "$element(id).spellcheck" [nsv_get spellchecker lang_options] $spellcheck(selected_option) {}]" } } else { Index: openacs-4/packages/acs-templating/tcl/spellcheck-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/spellcheck-procs.tcl,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-templating/tcl/spellcheck-procs.tcl 5 Oct 2003 17:55:55 -0000 1.4 +++ openacs-4/packages/acs-templating/tcl/spellcheck-procs.tcl 9 Oct 2003 11:07:40 -0000 1.5 @@ -18,19 +18,26 @@ Returns the merged (possibly corrected) text or the empty string if it is not time to merge. } { - set merge_text [ns_queryget $element_id.merge_text] + set __form__ [ns_getform] + set merge_text [ns_set get $__form__ $element_id.merge_text] + ns_set delkey $__form__ $element_id.merge_text + if { [empty_string_p $merge_text] } { return {} } # loop through errors and substitute the corrected words for #errnum#. set i 0 - while { [ns_queryexists $element_id.error_$i] } { - regsub "\#$i\#" $merge_text [ns_queryget $element_id.error_$i] merge_text + while { [ns_set find $__form__ $element_id.error_$i] != -1 } { + regsub "\#$i\#" $merge_text [ns_set get $__form__ $element_id.error_$i] merge_text + ns_set delkey $__form__ $element_id.error_$i incr i } + ns_set cput $__form__ $element_id $merge_text + ns_set cput $__form__ $element_id.spellcheck ":nospell:" + return $merge_text } @@ -308,11 +315,11 @@ ad_proc -public template::util::spellcheck::spellcheck_properties { -element_ref:required } { - Returns a list of spellcheck properties. + Returns a list of spellcheck properties in array setable format. } { upvar $element_ref element - if { [empty_string_p [set spellcheck [ns_queryget $element(id).spellcheck]]] } { + if { [empty_string_p [set spellcheck_value [ns_queryget $element(id).spellcheck]]] } { # The user hasn't been able to state whether (s)he wants spellchecking to be performed or not. # That's either because spell-checking is disabled for this element, or we're not dealing with a submit. @@ -321,7 +328,6 @@ if { [empty_string_p [nsv_get spellchecker path]] } { # The aspell or ispell binary was not found during server startup - turn spell-checking off. - #set spellcheck ":nospell:" set spellcheck_p 0 } else { @@ -341,32 +347,42 @@ if { $spellcheck_p } { # This is not a submit; we are rendering the form element for the first time and # since the spellcheck "sub widget" is to be displayed we'll also want to know - # which option that should be selected by default. + # which option should be selected by default. + set spellcheck(render_p) 1 + set spellcheck(perform_p) 1 + if { $widget_info(${element(widget)}) } { - set spellcheck [nsv_get spellchecker default_lang] - set selected_option $spellcheck + set spellcheck(selected_option) [nsv_get spellchecker default_lang] } else { - set spellcheck [nsv_get spellchecker default_lang] - set selected_option ":nospell:" + set spellcheck(selected_option) ":nospell:" } } else { + set spellcheck(render_p) 0 + set spellcheck(perform_p) 0 + # set this to something so the script won't choke. - set selected_option "n/a" - set spellcheck ":nospell:" + set spellcheck(selected_option) ":nospell:" } } else { # The user has explicitly stated if (s)he wants spellchecking to be performed # on the text or not. Hence we are in submit mode with spell-checking enabled. # Let's check which it is and keep record of the states of our select menu in - # case the error page is shown. + # case the error page is shown (because of an error in a neighboring element). - set selected_option $spellcheck + set spellcheck(selected_option) $spellcheck_value + set spellcheck(render_p) 1 + + if { [string equal ":nospell:" $spellcheck(selected_option)] } { + set spellcheck(perform_p) 0 + } else { + set spellcheck(perform_p) 1 + } } - - return [list $spellcheck $selected_option] + + return [array get spellcheck] } Index: openacs-4/packages/acs-templating/tcl/widget-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/widget-procs.tcl,v diff -u -N -r1.25 -r1.26 --- openacs-4/packages/acs-templating/tcl/widget-procs.tcl 5 Oct 2003 17:55:55 -0000 1.25 +++ openacs-4/packages/acs-templating/tcl/widget-procs.tcl 9 Oct 2003 11:07:40 -0000 1.26 @@ -209,13 +209,12 @@ set output [textarea_internal $element(name) attributes $value $mode] - set spellcheck_properties [template::util::spellcheck::spellcheck_properties -element_ref element] - set spellcheck [lindex $spellcheck_properties 0] - - if { ![string equal ":nospell:" $spellcheck] } { - set selected_option [lindex $spellcheck_properties 1] + # Spell-checker + array set spellcheck [template::util::spellcheck::spellcheck_properties -element_ref element] + + if { $spellcheck(render_p) } { append output "
Spellcheck: -[menu "$element(id).spellcheck" [nsv_get spellchecker lang_options] $selected_option {}]" +[menu "$element(id).spellcheck" [nsv_get spellchecker lang_options] $spellcheck(selected_option) {}]" } return $output @@ -330,13 +329,12 @@ upvar $element_reference element - set spellcheck_properties [template::util::spellcheck::spellcheck_properties -element_ref element] - set spellcheck [lindex $spellcheck_properties 0] - - if { [string equal $element(mode) "edit"] && ![string equal ":nospell:" $spellcheck] } { - set selected_option [lindex $spellcheck_properties 1] + # Spell-checker + array set spellcheck [template::util::spellcheck::spellcheck_properties -element_ref element] + + if { [string equal $element(mode) "edit"] && $spellcheck(render_p) } { return "[input text element $tag_attributes]
Spellcheck: -[menu "$element(id).spellcheck" [nsv_get spellchecker lang_options] $selected_option {}]" +[menu "$element(id).spellcheck" [nsv_get spellchecker lang_options] $spellcheck(selected_option) {}]" } else { return [input text element $tag_attributes] }