Index: openacs-4/packages/acs-templating/www/doc/demo/index.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/index.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-templating/www/doc/demo/index.html 9 Feb 2006 02:40:05 -0000 1.7
+++ openacs-4/packages/acs-templating/www/doc/demo/index.html 9 Feb 2006 06:39:54 -0000 1.8
@@ -377,6 +377,24 @@
View |
+
+ Add a bulk action to delete all checked notes |
+
+
+ index
+ delete
+ postgres query
+ oracle query
+ |
+
+ index
+ |
+
+ index
+ |
+ View |
+
+
Forms
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/add-disabled.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/add-disabled.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/add-edit.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/add-edit.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/doc/demo/list5/add-edit.adp 9 Feb 2006 06:39:55 -0000 1.1
@@ -0,0 +1,6 @@
+
+@page_title@
+@context;noquote@
+
+
+
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/add-edit.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/add-edit.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/doc/demo/list5/add-edit.tcl 9 Feb 2006 06:39:55 -0000 1.1
@@ -0,0 +1,123 @@
+# packages/notes/www/add-edit.tcl
+ad_page_contract {
+
+ @author Don Baccus (dhogaza@pacifier.com)
+ @creation-date 2000-10-23
+ @cvs-id $Id: add-edit.tcl,v 1.1 2006/02/09 06:39:55 jiml Exp $
+
+ Example script that allows for the creation or editing of a simple note
+ object type, using ad_form and package Tcl API tools.
+
+} -query {
+ note_id:integer,notnull,optional
+} -properties {
+ context:onevalue
+ page_title:onevalue
+}
+
+# When using ad_form to generate or edit acs_objects, the object type's
+# key column must be specified in ad_page_contract as is done above,
+# and defined with the type "key" in ad_form. This enables the use of
+# the various request and submission code blocks.
+
+set package_id [ad_conn package_id]
+
+ad_form -form {
+
+ # The "note" object type's key
+
+ note_id:key
+
+ # "title" is of type text and will use a "text" widget.
+
+ {title:text \
+ {label Title}
+ {html {size 20}}
+ }
+
+ # "body" is of type text and will use a "textarea" widget.
+
+ {body:text(textarea) \
+ {label Body}
+ {html {rows 10 cols 40 wrap soft}}
+ }
+
+} -new_request {
+
+ # By convention packages only allow a user to create new objects if the user has
+ # the "create" privilege on the package instance itself.
+
+ permission::require_permission -object_id $package_id -privilege create
+
+ # Customize the page title to reflect the fact that this form is used to
+ # create a new note.
+
+ set page_title "New Note"
+
+} -edit_request {
+
+ permission::require_permission -object_id $note_id -privilege write
+
+ # Customize the page title to reflect the fact that this form is used to
+ # edit an existing note.
+
+ set page_title "Edit Note"
+
+ # Fill the form with the values from the note we're editing.
+
+ db_1row note_select {}
+
+} -on_validation_error {
+
+ # There was an error in the form, let the page title reflect this.
+
+ set page_title "Error in submission"
+
+} -new_data {
+
+ # Create a new note.
+
+ # Generate the new object automatically from the data set in the form. Standard
+ # acs_object attributes like creation_user are set automatically.
+
+ package_instantiate_object -var_list [list [list context_id $package_id]] \
+ -form_id add-edit \
+ note
+
+} -edit_data {
+
+ # Currently we need to update our object manually ...
+
+ set modifying_user [ad_conn user_id]
+ set modifying_ip [ad_conn peeraddr]
+
+ db_transaction {
+ db_dml object_update {}
+ db_dml note_update {}
+ }
+
+} -after_submit {
+
+ # We've successfully processed the submission, send the user back to the index page.
+
+ ad_returnredirect "./"
+
+ # ad_returnredirect returns after redirecting the user, so abort the script rather
+ # than fall through to the display code. Failure to abort the script will burden
+ # your server with needless template processing, though the user won't notice due to
+ # having been redirected.
+
+ ad_script_abort
+
+}
+
+# The following is only executed if we did not process a valid submission, in other
+# words on the initial "new" or "edit" form request or after a submission which
+# contained errors. Add the page title to the breadcrumb context bar.
+
+set context [list $page_title]
+
+# Display the form, blank if we're processing a "new" request, filled with data if we're
+# processing an "edit" request or a submitted form that contains errors.
+
+ad_return_template
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/add-edit.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/add-edit.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/doc/demo/list5/add-edit.xql 9 Feb 2006 06:39:55 -0000 1.1
@@ -0,0 +1,30 @@
+
+
+
+
+
+ select title, body
+ from notes
+ where note_id = :note_id
+
+
+
+
+
+ update acs_objects
+ set modifying_user = :modifying_user,
+ modifying_ip = :modifying_ip
+ where object_id = :note_id
+
+
+
+
+
+ update notes
+ set title = :title,
+ body = :body
+ where note_id = :note_id
+
+
+
+
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/add.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/add.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/blank.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/blank.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/delete-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/delete-oracle.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/doc/demo/list5/delete-oracle.xql 9 Feb 2006 06:39:55 -0000 1.1
@@ -0,0 +1,17 @@
+
+
+
+ oracle8.1.6
+
+
+
+
+ begin
+ template_demo_note.del(:template_demo_note_id);
+ end;
+
+
+
+
+
+
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/delete-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/delete-postgresql.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/doc/demo/list5/delete-postgresql.xql 9 Feb 2006 06:39:55 -0000 1.1
@@ -0,0 +1,15 @@
+
+
+
+ postgresql7.1
+
+
+
+
+ select template_demo_note__delete( :template_demo_note_id );
+
+
+
+
+
+
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/delete.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/delete.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/doc/demo/list5/delete.tcl 9 Feb 2006 06:39:55 -0000 1.1
@@ -0,0 +1,36 @@
+# packages/notes/www/delete.tcl
+
+ad_page_contract {
+
+ @author rhs@mit.edu
+ @creation-date 2000-10-23
+ @cvs-id $Id: delete.tcl,v 1.1 2006/02/09 06:39:55 jiml Exp $
+} {
+ template_demo_note_id:integer,notnull,multiple
+}
+
+# Here, we delete all the notes being fed to us, which is all
+# the notes that were checked on the index page. This page doesn't
+# know/care about the fact they are the checked notes, all it knows
+# is there are a bunch of template_demo_note_id values coming in
+# through the url. So, this list is sorta becoming a form too :)
+#
+# so this loop runs thru all passed-in values of template_demo_note_id
+# and for each, deletes that note.
+
+foreach template_demo_note_id $template_demo_note_id {
+ ad_require_permission $template_demo_note_id delete
+
+ package_exec_plsql \
+ -var_list \
+ [list \
+ [list \
+ template_demo_note_id \
+ $template_demo_note_id \
+ ] \
+ ] \
+ template_demo_note \
+ del
+}
+
+ad_returnredirect "./"
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/index-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/index-oracle.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/doc/demo/list5/index-oracle.xql 9 Feb 2006 06:39:55 -0000 1.1
@@ -0,0 +1,42 @@
+
+
+ oracle8.1.6
+
+
+
+ select n.template_demo_note_id,
+ n.title,
+ n.body,
+ n.color,
+ to_char(o.creation_date, 'YYYY-MM-DD HH24:MI:SS') as creation_date,
+ p.first_names || ' ' || p.last_name as creation_user_name,
+ decode(acs_permission.permission_p(n.template_demo_note_id,
+ :user_id,
+ 'write'),
+ 't', 1,
+ 'f', 0) as write_p,
+ decode(acs_permission.permission_p(n.template_demo_note_id,
+ :user_id,
+ 'admin'),
+ 't', 1,
+ 'f', 0) as admin_p,
+ decode(acs_permission.permission_p(n.template_demo_note_id,
+ :user_id,
+ 'delete'),
+ 't', 1,
+ 'f', 0) as delete_p
+ from template_demo_notes n,
+ acs_objects o,
+ persons p
+ where n.template_demo_note_id = o.object_id
+ and o.creation_user = p.person_id
+ and exists (select 1
+ from acs_object_party_privilege_map
+ where object_id = template_demo_note_id
+ and party_id = :user_id
+ and privilege = 'read')
+ order by creation_date
+
+
+
+
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/index-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/index-postgresql.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/doc/demo/list5/index-postgresql.xql 9 Feb 2006 06:39:55 -0000 1.1
@@ -0,0 +1,29 @@
+
+
+ postgresql7.1
+
+
+
+
+ select
+ n.template_demo_note_id,
+ n.title,
+ n.color,
+ to_char(o.creation_date, 'YYYY-MM-DD HH24:MI:SS') as creation_date,
+ p.first_names || ' ' || p.last_name as creation_user_name
+ from
+ template_demo_notes n,
+ acs_objects o,
+ persons p
+ where n.template_demo_note_id = o.object_id
+ and o.creation_user = p.person_id
+ and exists (select 1
+ from acs_object_party_privilege_map
+ where object_id = template_demo_note_id
+ and party_id = :user_id
+ and privilege = 'read')
+ [template::list::orderby_clause -orderby -name notes]
+
+
+
+
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/index.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/index.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/doc/demo/list5/index.adp 9 Feb 2006 06:39:55 -0000 1.1
@@ -0,0 +1,6 @@
+
+Notes
+@context;noquote@
+
+
+
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/index.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/doc/demo/list5/index.tcl 9 Feb 2006 06:39:55 -0000 1.1
@@ -0,0 +1,71 @@
+# main index page for notes.
+
+ad_page_contract {
+
+ @author rhs@mit.edu
+ @creation-date 2000-10-23
+ @cvs-id $Id: index.tcl,v 1.1 2006/02/09 06:39:55 jiml Exp $
+} -query {
+ orderby:optional
+} -properties {
+ notes:multirow
+ context:onevalue
+ create_p:onevalue
+}
+
+set package_id [ad_conn package_id]
+set user_id [ad_conn user_id]
+
+set context [list]
+set create_p [ad_permission_p $package_id create]
+
+# New here, is the use of -key to signify which column is the key field,
+# and the -bulk_actions to give us the ability to delete all the checked
+# notes at once.
+
+template::list::create -name notes \
+ -multirow template_demo_notes \
+ -key "template_demo_note_id" \
+ -bulk_actions {
+ "Delete Checked Notes" "delete" "Delete Checked Notes"
+ } \
+ -elements {
+ title {
+ label "Title of Note"
+ link_url_col view_url
+ }
+ creation_user_name {
+ label "Owner of Note"
+ }
+ creation_date {
+ label "When Note Created"
+ }
+ color {
+ label "Color"
+ }
+ } \
+ -orderby {
+ default_value title,asc
+ title {
+ label "Title of Note"
+ orderby n.title
+ }
+ creation_user_name {
+ label "Owner of Note"
+ orderby creation_user_name
+ }
+ creation_date {
+ label "When Note Created"
+ orderby o.creation_date
+ }
+ color {
+ label "Color"
+ orderby n.color
+ }
+ }
+
+db_multirow -extend { view_url } template_demo_notes template_demo_notes {} {
+ set view_url [export_vars -base view-one { template_demo_note_id }]
+}
+
+ad_return_template
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/view-one.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/view-one.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/doc/demo/list5/view-one.adp 9 Feb 2006 06:39:55 -0000 1.1
@@ -0,0 +1,6 @@
+
+@title;noquote@
+@context;noquote@
+
+@body;noquote@
+@color@
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/doc/demo/list5/view-one.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/list5/view-one.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/doc/demo/list5/view-one.tcl 9 Feb 2006 06:39:55 -0000 1.1
@@ -0,0 +1,22 @@
+ad_page_contract {
+ @author Neophytos Demetriou
+ @creation-date 2001-09-02
+} {
+ template_demo_note_id:integer,notnull
+} -properties {
+ context:onevalue
+ title:onevalue
+ body:onevalue
+}
+
+set context [list "One note"]
+
+db_1row note_select {
+ select title, body, color
+ from template_demo_notes
+ where template_demo_note_id = :template_demo_note_id
+}
+
+set body [ad_text_to_html -- $body]
+
+ad_return_template