Index: openacs-4/packages/cronjob/cronjob.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cronjob/cronjob.info,v diff -u -r1.7 -r1.8 --- openacs-4/packages/cronjob/cronjob.info 11 Dec 2003 21:40:01 -0000 1.7 +++ openacs-4/packages/cronjob/cronjob.info 29 May 2009 09:02:11 -0000 1.8 @@ -5,50 +5,18 @@ <package-name>Cronjob</package-name> <pretty-plural>Cronjobs</pretty-plural> <initial-install-p>f</initial-install-p> - <singleton-p>f</singleton-p> + <singleton-p>t</singleton-p> - <version name="0.2d1" url="http://openacs.org/repository/download/apm/cronjob-0.2d1.apm"> - <database-support> - <database>oracle</database> - <database>postgresql</database> - </database-support> - <owner url="mailto:tom@rmadilo.com">Tom Jackson</owner> - <summary>Run sql and tcl code on schedule, similar to unix cron.</summary> - <description format="text/plain">Runs sql and tcl code on schedule similar to unix cron. Some issues exist with - guaranteed execution and blocking.</description> + <version name="0.2" url="http://rmadilo.com/files/cronjob/cronjob-0.2.apm"> + <owner url="mailto:tom@junom.com">Tom Jackson</owner> + <summary>Runs sql and tcl code on schedule similar to unix cron.</summary> + <release-date>2007-02-12</release-date> + <description format="text/plain">Runs sql and tcl code on schedule similar to unix cron.</description> - <!-- No dependency information --> + <provides url="cronjob" version="0.2"/> - <files> - <file type="package_spec" path="cronjob.info"/> - <file type="data_model_create" db_type="oracle" path="sql/oracle/cronjob-create.sql"/> - <file type="data_model_drop" db_type="oracle" path="sql/oracle/cronjob-drop.sql"/> - <file type="data_model_create" db_type="postgresql" path="sql/postgresql/cronjob-create.sql"/> - <file type="data_model_drop" db_type="postgresql" path="sql/postgresql/cronjob-drop.sql"/> - <file type="tcl_init" path="tcl/cronjob-init.tcl"/> - <file type="tcl_procs" path="tcl/cronjob-procs.tcl"/> - <file type="query_file" path="tcl/cronjob-procs.xql"/> - <file type="query_file" db_type="oracle" path="www/admin/cronjob-add-oracle.xql"/> - <file type="query_file" db_type="postgresql" path="www/admin/cronjob-add-postgresql.xql"/> - <file type="tcl_util" path="www/admin/cronjob-add.tcl"/> - <file type="query_file" db_type="oracle" path="www/admin/cronjob-delete-oracle.xql"/> - <file type="query_file" db_type="postgresql" path="www/admin/cronjob-delete-postgresql.xql"/> - <file type="tcl_util" path="www/admin/cronjob-delete.tcl"/> - <file type="query_file" db_type="oracle" path="www/admin/cronjob-edit-oracle.xql"/> - <file type="query_file" db_type="postgresql" path="www/admin/cronjob-edit-postgresql.xql"/> - <file type="tcl_util" path="www/admin/cronjob-edit.tcl"/> - <file type="tcl_util" path="www/admin/cronjob-run-now.tcl"/> - <file path="www/admin/cronjob.adp"/> - <file type="tcl_util" path="www/admin/cronjob.tcl"/> - <file type="query_file" path="www/admin/cronjob.xql"/> - <file path="www/admin/cronjobs.adp"/> - <file type="tcl_util" path="www/admin/cronjobs.tcl"/> - <file type="query_file" path="www/admin/cronjobs.xql"/> - <file type="content_page" path="www/admin/index.tcl"/> - <file type="content_page" path="www/index.adp"/> - <file type="content_page" path="www/index.tcl"/> - <file type="query_file" path="www/index.xql"/> - </files> + <callbacks> + </callbacks> <parameters> <!-- No version parameters --> </parameters> Index: openacs-4/packages/cronjob/tcl/cronjob-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cronjob/tcl/cronjob-procs.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/cronjob/tcl/cronjob-procs.tcl 1 Nov 2003 08:45:38 -0000 1.7 +++ openacs-4/packages/cronjob/tcl/cronjob-procs.tcl 29 May 2009 09:02:11 -0000 1.8 @@ -1,7 +1,7 @@ ad_library { - Cronjog support procs + Cronjob support procs - @author Tom Jackson <tom@zmbh.com> + @author Tom Jackson <tom@junom.com> @creation-date 22 Sept 2001 @cvs-id $Id$ @@ -22,7 +22,7 @@ set dayofweek [ns_fmttime $time %w] db_foreach cronjob_sched_foreach "" { - ad_schedule_proc -once t -thread t 1 cronjob_run $cronjob_id + ad_schedule_proc -once t -thread t 1 cronjob_run $cronjob_id } } @@ -33,46 +33,47 @@ Proc to run cronjobs } { + # To avoid errors + set rownum 0 + + set table "No SQL" - ns_log Debug "cronjob_run: Cronjob_id is $cronjob_id" + ns_log Debug "Cronjob_id is $cronjob_id $rownum" db_1row cronjob_query {} db_release_unused_handles if {![string match "" $run_sql]} { - set table "<table cellspacing=0 cellpadding=2 border=1>" - set db [ns_db gethandle "log"] - set sel [ns_db select $db $run_sql] - set rownum 0 - if {![string match "" $sel]} { - while {[ns_db getrow $db $sel]} { - set size [ns_set size $sel] - if {$rownum == 0} { - for {set i 0 } {$i < $size} {incr i} { - append table "\n<th>[ns_set key $sel $i]</th>" - } - } - append table "<tr>" - for {set i 0 } {$i < $size} {incr i} { - append table "\n<td>[ns_set value $sel $i]</td>" - } - append table "</tr>" - incr rownum - } - } - append table "</table>" - if {$rownum == 0} { - set table "No Rows Returned" - } - ns_db releasehandle $db + set rownum 0 + set table "<table cellspacing=\"0\" cellpadding=\"2\" border=\"1\">" + db_foreach cronjob_run_sql $run_sql -column_set row { + + set size [ns_set size $row] + if {$rownum == 0} { + for {set i 0 } {$i < $size} {incr i} { + append table "\n<th>[ns_set key $row $i]</th>" + } + } + append table "<tr>" + for {set i 0 } {$i < $size} {incr i} { + append table "\n<td>[ns_set value $row $i]</td>" + } + append table "</tr>" + incr rownum + } } + append table "</table>" + if {$rownum == 0} { + set table "No Rows Returned" + } + # evaluate the run_tcl code eval $run_tcl if {![string match "" $email]} { - ns_log Debug "cronjob_run: sending cronjob email to $email" - set headers [ns_set create] - ns_set put $headers "Content-Type" "text/html" - ns_sendmail $email [ad_host_administrator] "Cronjob $cronjob_id" "Description: <br>$description<br> $table" $headers + ns_log Debug "sending cronjob email to $email" + set headers [ns_set create] + ns_set put $headers "Content-Type" "text/html" + ns_sendmail $email [ad_host_administrator] "Cronjob $cronjob_id" "Description: <br>$description<br> $table" $headers } return Index: openacs-4/packages/cronjob/www/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cronjob/www/index.adp,v diff -u -r1.2 -r1.3 --- openacs-4/packages/cronjob/www/index.adp 22 May 2003 14:39:12 -0000 1.2 +++ openacs-4/packages/cronjob/www/index.adp 29 May 2009 09:02:11 -0000 1.3 @@ -1,10 +1,10 @@ - <master> - <property name="title">@title;noquote@</property> - <property name="context">@context;noquote@</property> - - <p>This package has no user pages.</p> - <if @admin_p@ eq 1> - [ <a href="admin/">Administer</a> ] - </if> - + <master> + <property name="title">@title@</property> + <property name="context">@context@</property> + + <p>This package has no user pages.</p> + <if @admin_p@ eq 1> + [ <a href="admin/">Administer</a> ] + </if> + \ No newline at end of file Index: openacs-4/packages/cronjob/www/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cronjob/www/index.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/cronjob/www/index.tcl 1 Mar 2005 00:01:27 -0000 1.3 +++ openacs-4/packages/cronjob/www/index.tcl 29 May 2009 09:02:11 -0000 1.4 @@ -1,34 +1,34 @@ -ad_page_contract { - - A place holder for access to the admin pages. - - @author Bart Teeuwisse <bart.teeuwisse@7-sisters.com> - @cvs-id $Id$ - @creation-date Oct 2002 - -} { -} -properties { - title:onevalue - context:onevalue -} - -# Authenticate the user - -set user_id [auth::require_login] - -# Check for admin privileges - -set package_id [ad_conn package_id] -set admin_p [ad_permission_p $package_id admin] - -# Get the name of the package - -if {[db_0or1row get_package_name ""]} { - set title "$instance_name" -} else { - set title "Cronjob" -} - -# Set the context bar. - -set context [list] +ad_page_contract { + + A place holder for access to the admin pages. + + @author Bart Teeuwisse <bart.teeuwisse@7-sisters.com> + @cvs-id $Id$ + @creation-date Oct 2002 + +} { +} -properties { + title:onevalue + context:onevalue +} + +# Authenticate the user + +set user_id [ad_maybe_redirect_for_registration] + +# Check for admin privileges + +set package_id [ad_conn package_id] +set admin_p [ad_permission_p $package_id admin] + +# Get the name of the package + +if {[db_0or1row get_package_name ""]} { + set title "$instance_name" +} else { + set title "Cronjob" +} + +# Set the context bar. + +set context [list] Index: openacs-4/packages/cronjob/www/admin/cronjob-add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cronjob/www/admin/cronjob-add.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/packages/cronjob/www/admin/cronjob-add.tcl 1 Mar 2005 00:01:27 -0000 1.4 +++ openacs-4/packages/cronjob/www/admin/cronjob-add.tcl 29 May 2009 09:02:48 -0000 1.5 @@ -1,8 +1,7 @@ ad_page_contract { Cronjobs Add Page 2 - - @author tom@zmbh.com + @author tom@junom.com @creation-date 22 Sept 2001 @cvs-id $Id$ @@ -14,16 +13,16 @@ mon:notnull,trim day:notnull,trim dayofweek:notnull,trim - run_sql:trim - run_tcl:trim - email:trim,email + run_sql:trim,allhtml + run_tcl:trim,html + email:trim } -set user_id [auth::require_login] +set user_id [ad_maybe_redirect_for_registration] -set approved_p "t" -set disabled_p "f" +set approved_p "f" +set disabled_p "t" db_exec_plsql add_cronjob { Index: openacs-4/packages/cronjob/www/admin/cronjob-delete.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cronjob/www/admin/cronjob-delete.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/packages/cronjob/www/admin/cronjob-delete.tcl 30 Sep 2003 12:10:06 -0000 1.4 +++ openacs-4/packages/cronjob/www/admin/cronjob-delete.tcl 29 May 2009 09:02:48 -0000 1.5 @@ -1,8 +1,7 @@ ad_page_contract { Cronjob Delete - - @author tom@zmbh.com + @author tom@junom.com @creation-date 22 Sept 2001 @cvs-id $Id$ @@ -11,11 +10,6 @@ } -db_exec_plsql edit_cronjob { - - begin - cronjob.del(cronjob_id => :cronjob_id); - end; -} +db_exec_plsql edit_cronjob {} ad_returnredirect cronjobs Index: openacs-4/packages/cronjob/www/admin/cronjob-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cronjob/www/admin/cronjob-edit.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/cronjob/www/admin/cronjob-edit.tcl 30 Nov 2002 17:30:07 -0000 1.3 +++ openacs-4/packages/cronjob/www/admin/cronjob-edit.tcl 29 May 2009 09:02:48 -0000 1.4 @@ -1,8 +1,7 @@ ad_page_contract { Cronjobs Edit Page 2 - - @author tom@zmbh.com + @author tom@junom.com @creation-date 22 Sept 2001 @cvs-id $Id$ @@ -14,9 +13,9 @@ {mon:trim ""} {day:trim ""} {dayofweek:trim ""} - {run_sql:trim ""} + {run_sql:trim,allhtml ""} {run_tcl:trim ""} - {email:trim,email ""} + {email:trim ""} {approved_p:trim ""} {disabled_p:trim ""} } Index: openacs-4/packages/cronjob/www/admin/cronjob.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cronjob/www/admin/cronjob.adp,v diff -u -r1.4 -r1.5 --- openacs-4/packages/cronjob/www/admin/cronjob.adp 22 May 2003 14:40:40 -0000 1.4 +++ openacs-4/packages/cronjob/www/admin/cronjob.adp 29 May 2009 09:02:48 -0000 1.5 @@ -1,6 +1,6 @@ <master> -<property name="title">@page_title;noquote@</property> -<property name="context">@context;noquote@</property> +<property name="title">@page_title@</property> +<property name="context">@context@</property> <h3>@page_title@</h3> @@ -32,37 +32,37 @@ <th align="left">Minute (0-59)</th> <td> <select name="minute"> -@minute_option@ +@minute_option;noquote@ </select><td></tr> <tr> <th align="left">Hour (0-23)</th><td> <select name="hr"> -@hour_option@ +@hour_option;noquote@ </select><td></tr> <tr> <th align="left">Month (1-12)</th><td> <select name="mon"> -@month_option@ +@month_option;noquote@ </select><td></tr> <tr> <th align="left">Day (1-31)</th><td> <select name="day"> -@day_option@ +@day_option;noquote@ </select><td></tr> <tr> <th align="left">Day of Week</th><td> <select name="dayofweek"> -@dayofweek_option@ +@dayofweek_option;noquote@ </select><td></tr> <tr> <th align="left">SQL to Run</th> <td> -<textarea cols="60" rows="4" name="run_sql" wrap="absolute">@run_sql@</textarea> +<textarea cols="80" rows="10" name="run_sql" wrap="absolute">@run_sql@</textarea> <td></tr> <tr> Index: openacs-4/packages/cronjob/www/admin/cronjob.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cronjob/www/admin/cronjob.tcl,v diff -u -r1.5 -r1.6 --- openacs-4/packages/cronjob/www/admin/cronjob.tcl 17 May 2003 10:27:27 -0000 1.5 +++ openacs-4/packages/cronjob/www/admin/cronjob.tcl 29 May 2009 09:02:48 -0000 1.6 @@ -1,11 +1,9 @@ ad_page_contract { Cronjobs List and Add Page - - @author tom@zmbh.com + @author tom@junom.com @creation-date 22 Sept 2001 @cvs-id $Id$ - } { cronjob_id:integer,notnull @@ -45,7 +43,7 @@ } foreach {value name} [list "\*" "Every Day of Week" 0 Sunday 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday] { - if {[string match $dayofweek $value]} { + if {"$dayofweek" eq "$value"} { append dayofweek_option " <option value=\"$value\" selected >$name</option>" } else { Index: openacs-4/packages/cronjob/www/admin/cronjobs.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cronjob/www/admin/cronjobs.adp,v diff -u -r1.4 -r1.5 --- openacs-4/packages/cronjob/www/admin/cronjobs.adp 29 Aug 2003 12:49:58 -0000 1.4 +++ openacs-4/packages/cronjob/www/admin/cronjobs.adp 29 May 2009 09:02:48 -0000 1.5 @@ -1,6 +1,6 @@ <master> -<property name="title">@page_title;noquote@</property> -<property name="context">@context;noquote@</property> +<property name="title">@page_title@</property> +<property name="context">@context@</property> <h3>@page_title@</h3> @@ -46,7 +46,7 @@ <th align="left">Minute (0-59)</th> <td> <select name="minute"> -<option value="*">Every Minute</option>@minute_option;noquote@ +<option value="*">Every Minute</option>@minute_option;noquote@ </select><td></tr> <tr> Index: openacs-4/packages/cronjob/www/admin/cronjobs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cronjob/www/admin/cronjobs.xql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/cronjob/www/admin/cronjobs.xql 30 Nov 2002 17:30:07 -0000 1.2 +++ openacs-4/packages/cronjob/www/admin/cronjobs.xql 29 May 2009 09:02:48 -0000 1.3 @@ -5,7 +5,7 @@ <querytext> select * from cronjobs - order by user_id + order by user_id, cronjob_id </querytext> </fullquery>