Index: openacs-4/packages/dynamic-types/tcl/page-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dynamic-types/tcl/page-procs.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dynamic-types/tcl/page-procs.tcl 17 Feb 2005 15:03:13 -0000 1.1.2.1
@@ -0,0 +1,126 @@
+#
+
+ad_library {
+
+ Procedures to generate tcl/adp pages for dynamic types
+
+ @author Dave Bauer (dave@thedesignexperience.org)
+ @creation-date 2005-02-12
+ @arch-tag: 5f74a989-8a4f-4c28-8f8f-deb10e6f5a12
+ @cvs-id $Id: page-procs.tcl,v 1.1.2.1 2005/02/17 15:03:13 daveb Exp $
+}
+
+namespace eval dtype::page:: {}
+
+ad_proc -public dtype::page::generate_pages {
+ -object_type
+ -package_key
+ {-overwrite "t"}
+ {-expand_form "t"}
+ {-pages {add}}
+} {
+ Generate a set of add/edit/delete/index pages
+ for a dynamic type
+
+ @author Dave Bauer (dave@thedesignexperience.org)
+ @creation-date 2005-02-12
+
+ @param object_type Object type to generate pages for
+
+ @param package_key Package key of package to put pages under
+
+ @param overwrite Overwrite existing pages?
+
+ @return
+
+ @error
+} {
+ acs_object_type::get -object_type $object_type -array object_type_info
+ set id_column $object_type_info(id_column)
+ set pretty_name $object_type_info(pretty_name)
+ set dest [file join [acs_root_dir] packages dynamic-types lib ${object_type}]
+ if {![file exists $dest]} {
+ file mkdir $dest
+ }
+ foreach page $pages {
+ # generate add tcl page
+ set fd [open [tcl_template_path -page ${page}]]
+ set code [read $fd]
+ close $fd
+ regsub -all {id_column} $code $id_column code
+ regsub -all {pretty_name} $code $pretty_name code
+ regsub -all {__object_type} $code $object_type code
+ set fd [open [file join $dest ${page}.tcl] w]
+ puts $fd $code
+ close $fd
+ # generate add adp page
+ set fd [open [adp_template_path -page ${page}]]
+ set code [read $fd]
+ close $fd
+ if {$expand_form} {
+ set regexp ""
+ set result "[expand_form -object_type $object_type]"
+ regsub $regexp $code $result code
+ }
+ set fd [open [file join $dest ${page}.adp] w]
+ puts $fd $code
+ close $fd
+ }
+}
+
+ad_proc -public dtype::page::tcl_template_path {
+ -page
+} {
+ Path of templates
+
+ @author Dave Bauer (dave@thedesignexperience.org)
+ @creation-date 2005-02-12
+
+ @param page
+
+ @return
+
+ @error
+} {
+ return [file join [acs_root_dir] packages dynamic-types lib templates ${page}.tcl]
+}
+
+ad_proc -public dtype::page::adp_template_path {
+ -page
+} {
+ Path of templates
+
+ @author Dave Bauer (dave@thedesignexperience.org)
+ @creation-date 2005-02-12
+
+ @param page
+
+ @return
+
+ @error
+} {
+ return [file join [acs_root_dir] packages dynamic-types lib templates ${page}.adp]
+}
+
+ad_proc -public dtype::page::expand_form {
+ -object_type
+} {
+
+ Generate adp for formtemplate
+
+ @author Dave Bauer (dave@thedesignexperience.org)
+ @creation-date 2005-02-12
+
+ @param object_type
+
+ @return
+
+ @error
+} {
+ set form_id __my_form
+ template::form::create $form_id
+ dtype::form::add_elements \
+ -object_type $object_type \
+ -form $form_id
+ return [template::form::template $form_id]
+}