Index: openacs-4/packages/xotcl-core/xotcl-core.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/xotcl-core.info,v
diff -u -r1.106.2.33 -r1.106.2.34
--- openacs-4/packages/xotcl-core/xotcl-core.info 16 Sep 2021 08:52:58 -0000 1.106.2.33
+++ openacs-4/packages/xotcl-core/xotcl-core.info 20 Dec 2021 17:42:31 -0000 1.106.2.34
@@ -10,7 +10,7 @@
t
xotcl
-
+
Gustaf Neumann
XOTcl library functionality (e.g. thread handling, online documentation, Generic Form and List Classes)
2021-09-16
@@ -42,7 +42,7 @@
BSD-Style
2
-
+
Index: openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl,v
diff -u -r1.70.2.27 -r1.70.2.28
--- openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl 19 Oct 2021 17:35:53 -0000 1.70.2.27
+++ openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl 20 Dec 2021 17:42:30 -0000 1.70.2.28
@@ -387,10 +387,11 @@
# Define an abstract ::xo::Table
#
Class create ::xo::Table -superclass OrderedComposite \
- -parameter [expr {[apm_version_names_compare [ad_acs_version] 5.3.0] == 1
- ? {{no_data "#xotcl-core.No_Data#"} {renderer TABLE3} name}
- : {{no_data "#xotcl-core.No_Data#"} {renderer TABLE2} name}
- }]
+ -parameter {
+ {no_data "#xotcl-core.No_Data#"}
+ {renderer TABLE3}
+ name
+ }
Table instproc destroy {} {
#:log "-- "
@@ -461,7 +462,7 @@
:init_renderer
}
- Table instproc write_csv {
+ Table instproc format_csv {
{-delimiter ","}
} {
set output ""
@@ -489,12 +490,18 @@
}
append output [join $line $delimiter] \n
}
+ return $output
+ }
+
+ Table instproc write_csv {
+ {-delimiter ","}
+ } {
if {![info exists :name]} {
set :name "table"
}
set fn [xo::backslash_escape \" ${:name}.csv]
ns_set put [ns_conn outputheaders] Content-Disposition "attachment;filename=\"$fn\""
- ns_return 200 text/csv $output
+ ns_return 200 "text/csv; charset=utf-8" [:format_csv -delimiter $delimiter]
ad_script_abort
}