Index: openacs-4/packages/rss-support/tcl/rss-generation-service-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rss-support/tcl/rss-generation-service-procs.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/rss-support/tcl/rss-generation-service-procs.tcl 30 Nov 2001 05:56:37 -0000 1.6 +++ openacs-4/packages/rss-support/tcl/rss-generation-service-procs.tcl 4 Dec 2001 04:57:20 -0000 1.7 @@ -61,13 +61,11 @@ } } set xml [apply rss_gen $args] - set report_dir [ns_info pageroot]/[ad_parameter -package_id [rss_package_id] RssGenOutputDirectory rss-support rss]/$impl_name/${summary_context_id} - # Create directory if needed. - rss_assert_dir $report_dir - # Write report. - set fh [open $report_dir/rss.xml w] + set report_file [rss_gen_report_file -summary_context_id $summary_context_id -impl_name $impl_name -assert -url] + + set fh [open $report_file w] puts $fh $xml close $fh @@ -136,4 +134,89 @@ ns_log Notice "rss_gen_bind: error binding impl $impl_id for contract $contract_id: $errMsg" } } +} + +ad_proc -private rss_gen_report_dir { + -summary_context_id + -impl_name + -subscr_id + {-assert:boolean f} +} { + Return a directory path, relative to the pageroot, for the rss + subscription with subscr_id or impl_name + summary_context_id + provided. +} { + if {!([info exists summary_context_id] && \ + [info exists impl_name])} { + if ![info exists subscr_id] { + error "rss_gen_report_dir needs either subscr_id or impl_id+summary_context_id" + } else { + db_1row subscr_context_and_impl { + select s.summary_context_id, + i.impl_name + from rss_gen_subscrs s, + acs_sc_impls i + where i.impl_id = s.impl_id + and s.subscr_id = :subscr_id + } + } + } + + set report_dir /[ad_parameter -package_id [rss_package_id] RssGenOutputDirectory rss-support rss]/$impl_name/${summary_context_id} + + if $assert_p { + rss_assert_dir $report_dir + } + + return $report_dir +} + +ad_proc -private rss_gen_report_file { + -summary_context_id + -impl_name + -subscr_id + {-assert:boolean f} + {-url:boolean t} +} { + Return a file path for the rss subscription with subscr_id + or impl_name + summary_context_id provided. + If the -assert flag is set, the parent directory is created if + it doesn't exist (default: false). + If the -url flag is set, return a url (default: true); otherwise + return a Unix file path. +} { + if {!([info exists summary_context_id] && \ + [info exists impl_name])} { + if ![info exists subscr_id] { + error "rss_gen_report_file needs either subscr_id or impl_id+summary_context_id" + } else { + db_1row subscr_context_and_impl { + select s.summary_context_id, + i.impl_name + from rss_gen_subscrs s, + acs_sc_impls i + where i.impl_id = s.impl_id + and s.subscr_id = :subscr_id + } + } + } + + if $assert_p { + set report_dir [rss_gen_report_dir \ + -summary_context_id $summary_context_id \ + -impl_name $impl_name \ + -assert] + } else { + set report_dir [rss_gen_report_dir \ + -summary_context_id $summary_context_id \ + -impl_name $impl_name] + } + + set report_url $report_dir/rss.xml + + if $url_p { + return $report_url + } else { + return [ns_url2file $report_url] + } } \ No newline at end of file Index: openacs-4/packages/rss-support/www/delete.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rss-support/www/delete.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/rss-support/www/delete.adp 4 Dec 2001 04:57:20 -0000 1.1 @@ -0,0 +1,22 @@ +<master> +<property name="title">Delete a Subcription</property> + +<h2>Delete Subscription</h2> +@context_bar@ +<hr> + +<blockquote> +Channel: <if @channel_link@ eq "">@channel_title@</if><else> +<a href="@channel_link@">@channel_title@</a></else> +<form action=delete-2> +<input type=hidden name=subscr_id value="@subscr_id@"> +<input type=hidden name=return_url value="@return_url@"> +<if @offer_file@ eq 1> +<input type=checkbox name=delete_subscr_p>Delete subscription<br> +<input type=checkbox name=delete_file_p>Delete report +</if> +<p> +<input type=submit value="Really delete?"> +<input type=button onclick="history.back()" value="No, I want to go back"> +</form> +</blockquote> Index: openacs-4/packages/rss-support/www/delete.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rss-support/www/delete.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/rss-support/www/delete.tcl 4 Dec 2001 04:57:20 -0000 1.1 @@ -0,0 +1,27 @@ +ad_page_contract { + Confirm deletion of a subscription. +} { + subscr_id:notnull,naturalnum + return_url:notnull +} + +ad_require_permission $subscr_id admin + +db_1row subscr_info { + select channel_title, + channel_link + from rss_gen_subscrs + where subscr_id = :subscr_id +} + +if [string equal $channel_title ""] { + set channel_title "Summary Context $summary_context_id" +} + +set context_bar [ad_context_bar Delete] + +if [file exists [rss_gen_report_file -subscr_id $subscr_id]] { + set offer_file 1 +} else { + set offer_file 0 +} \ No newline at end of file Index: openacs-4/packages/rss-support/www/subscr-ae.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rss-support/www/subscr-ae.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/rss-support/www/subscr-ae.tcl 30 Nov 2001 05:56:37 -0000 1.3 +++ openacs-4/packages/rss-support/www/subscr-ae.tcl 4 Dec 2001 04:57:20 -0000 1.4 @@ -94,5 +94,5 @@ return_url \ meta] -set context_bar [ad_context_bar] +set context_bar [ad_context_bar Add/Edit] Index: openacs-4/packages/rss-support/www/admin/subscrs.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rss-support/www/admin/subscrs.adp,v diff -u -r1.2 -r1.3 --- openacs-4/packages/rss-support/www/admin/subscrs.adp 30 Nov 2001 05:56:37 -0000 1.2 +++ openacs-4/packages/rss-support/www/admin/subscrs.adp 4 Dec 2001 04:57:20 -0000 1.3 @@ -18,10 +18,11 @@ <tr bgcolor=efefef><td><if @subscrs.channel_link@ eq "">@subscrs.channel_title@</if><else><a href="@subscrs.channel_link@">@subscrs.channel_title@</a></else></else></td> <td>@subscrs.timeout@s</td> <td><nobr><small>@subscrs.lastbuild@</small></nobr></td> - <td>@subscrs.last_ttb@</td> + <td>@subscrs.last_ttb@ seconds</td> <td>@subscrs.creator@</td> <td><a href="../subscr-ae?subscr_id=@subscrs.subscr_id@">edit</a> | - <a href="../subscr-run?subscr_id=@subscrs.subscr_id@&return_url=@enc_url@">run</a> | delete</td> + <a href="../subscr-run?subscr_id=@subscrs.subscr_id@&return_url=@enc_url@">run</a> | + <a href="../delete?subscr_id=@subscrs.subscr_id@&return_url=@enc_url@">delete</a></td> </tr> </multiple> </table> Index: openacs-4/packages/rss-support/www/admin/subscrs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rss-support/www/admin/subscrs.tcl,v diff -u -r1.2 -r1.3 --- openacs-4/packages/rss-support/www/admin/subscrs.tcl 30 Nov 2001 05:56:37 -0000 1.2 +++ openacs-4/packages/rss-support/www/admin/subscrs.tcl 4 Dec 2001 04:57:20 -0000 1.3 @@ -9,6 +9,7 @@ from rss_gen_subscrs s, acs_objects o where o.object_id = s.subscr_id + order by s.last_ttb desc } { if [string equal $channel_title ""] { set channel_title "Subscription #$subscr_id"