Index: openacs-4/packages/news-aggregator/www/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/index.tcl,v
diff -u -r1.9 -r1.9.2.1
--- openacs-4/packages/news-aggregator/www/index.tcl 20 Aug 2004 09:31:27 -0000 1.9
+++ openacs-4/packages/news-aggregator/www/index.tcl 28 Dec 2005 17:55:43 -0000 1.9.2.1
@@ -4,34 +4,35 @@
@author Simon Carstensen simon@bcuni.net
@creation-date 28-06-2003
} {
- aggregator_id:integer,optional
- purge_p:boolean,optional
+ { aggregator_id:integer,optional "0" }
+ { purge_p:boolean,optional }
}
set user_id [ad_conn user_id]
set package_id [ad_conn package_id]
+set instance_name [apm_instance_name_from_id $package_id]
set package_url [ad_conn package_url]
set per_user_aggregators_p [parameter::get -package_id $package_id -parameter PerUserAggregatorsP -default 0]
set enable_purge_p [parameter::get -package_id $package_id -parameter EnablePurgeP -default 1]
set multiple_aggregators_p [parameter::get -package_id $package_id -parameter MultipleAggregatorsP -default 1]
set allow_aggregator_edit_p [parameter::get -package_id $package_id -parameter AllowAggregatorEditP -default 1]
-
-if { ![info exists aggregator_id] } {
+if { !$aggregator_id } {
# Check whether the user has an aggregator
if { !$user_id } {
if { !$per_user_aggregators_p } {
ad_returnredirect "public-aggregators"
}
- ad_redirect_for_registration
+ auth::require_login
ad_script_abort
}
- set aggregator_id [news_aggregator::aggregator::user_default -user_id $user_id]
+ set aggregator_id [news_aggregator::aggregator::user_default \
+ -user_id $user_id -package_id $package_id]
if { !$aggregator_id && $per_user_aggregators_p } {
- set user_name [db_string select_user_name {}]
+ set user_name [person::name -person_id $user_id]
set aggregator_name "${user_name}'s News Aggregator"
set aggregator_id [news_aggregator::aggregator::new \
@@ -40,22 +41,29 @@
-public_p 0 \
-creation_user $user_id \
-creation_ip [ad_conn peeraddr]]
+ news_aggregator::aggregator::set_user_default -user_id $user_id \
+ -package_id $package_id -aggregator_id $aggregator_id
#load preinstalled subscriptions into aggregator
news_aggregator::aggregator::load_preinstalled_subscriptions \
-aggregator_id $aggregator_id \
-package_id $package_id
+
+ } elseif { !$aggregator_id } {
+ # No default aggregator and no per-user aggregator
+ # Try to default to a public aggregator
+ set aggregator_id [news_aggregator::aggregator::instance_default \
+ -package_id $package_id]
}
- ad_returnredirect "$aggregator_id"
}
-if { $aggregator_id == 0 } {
- # May this user create her own aggregator?
- set write_p [permission::permission_p \
- -object_id $package_id \
- -privilege write]
- if { $write_p } {
+# Have we found an aggregator yet?
+if { !$aggregator_id } {
+ # May this user create an aggregator?
+ if { [permission::permission_p \
+ -object_id $package_id \
+ -privilege write] eq "1" } {
ad_returnredirect "settings"
}
ad_returnredirect "public-aggregators"
@@ -67,6 +75,27 @@
db_1row aggregator_info {}
+# Get options for "other aggregators" form widget
+set other_aggregators [list [list " --- select --- " "\#"]]
+db_foreach other_aggregators {} {
+ if { [permission::permission_p \
+ -object_id $other_id \
+ -privilege read] eq "1" } {
+ lappend other_aggregators [list $name $other_id]
+ }
+}
+set num_options [llength $other_aggregators]
+
+ad_form -name aggregators -form {
+ {aggregator:integer(select)
+ {options $other_aggregators}
+ {html {onchange "javascript:this.form.submit();"}}
+ }
+} -on_submit {
+ ad_returnredirect "[ad_conn package_url]$aggregator"
+ ad_script_abort
+}
+
#if { $public_p == "f" } {
# permission::require_permission \
# -object_id $aggregator_id \
@@ -82,7 +111,7 @@
set return_url [ad_conn url]
set aggregator_url [export_vars -base aggregator { return_url aggregator_id }]
-set create_url "${package_url}/aggregator"
+set create_url "${package_url}aggregator-add"
set limit [ad_parameter "number_of_items_shown"]
set sql_limit [expr 7*$limit]
Index: openacs-4/packages/news-aggregator/www/index.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/Attic/index.xql,v
diff -u -r1.3.2.1 -r1.3.2.2
--- openacs-4/packages/news-aggregator/www/index.xql 25 Dec 2005 00:57:44 -0000 1.3.2.1
+++ openacs-4/packages/news-aggregator/www/index.xql 28 Dec 2005 17:55:43 -0000 1.3.2.2
@@ -20,6 +20,16 @@
+
+
+ select aggregator_id as other_id, aggregator_name as name,
+ description as description, public_p
+ from na_aggregators
+ where aggregator_id <> :aggregator_id
+ and package_id = :package_id
+
+
+
select
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/news-aggregator/www/manage.adp'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/news-aggregator/www/manage.tcl'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/news-aggregator/www/set-default.tcl'.
Fisheye: No comparison available. Pass `N' to diff?
Index: openacs-4/packages/news-aggregator/www/settings.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/settings.adp,v
diff -u -r1.1.1.1 -r1.1.1.1.2.1
--- openacs-4/packages/news-aggregator/www/settings.adp 20 Mar 2004 11:04:39 -0000 1.1.1.1
+++ openacs-4/packages/news-aggregator/www/settings.adp 28 Dec 2005 17:55:43 -0000 1.1.1.1.2.1
@@ -2,25 +2,20 @@
@page_title@
@context@
+@page_title@
-
Your News Aggregators
+You have the ability to view the following aggregators in @instance_name@. If You select a default aggregator,
+you will automatically be directed there when visiting @instance_name@. If you have write privileges on
+a particular aggregator, you will have the option to edit or delete it as well.
» Create new aggregator
-
- Default News Aggregator
-
- Select default aggregator:
-
-
-
-
-
+
-
Your Weblogs
+The weblogs below will show up as options when you choose to blog about a news item.
Index: openacs-4/packages/news-aggregator/www/settings.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/settings.tcl,v
diff -u -r1.1.1.1 -r1.1.1.1.2.1
--- openacs-4/packages/news-aggregator/www/settings.tcl 20 Mar 2004 11:04:39 -0000 1.1.1.1
+++ openacs-4/packages/news-aggregator/www/settings.tcl 28 Dec 2005 17:55:43 -0000 1.1.1.1.2.1
@@ -7,71 +7,62 @@
aggregator_id:integer,optional
}
-set page_title "Your Settings"
-set context [list $page_title]
-
set user_id [ad_conn user_id]
set package_id [ad_conn package_id]
set package_url [ad_conn package_url]
+set instance_name [apm_instance_name_from_id $package_id]
+set page_title "$instance_name Settings"
+set default_aggregator_id [news_aggregator::aggregator::user_default -user_id $user_id -package_id $package_id]
-set aggregator_options [news_aggregator::aggregator::options -user_id $user_id]
-set default_aggregator_id [news_aggregator::aggregator::user_default -user_id $user_id]
-
-ad_form -name aggregators -form {
- {default_aggregator_id:integer(select)
- {options $aggregator_options}
- {value $default_aggregator_id}
- }
- {submit:text(submit)
- {label "Go"}
- }
-} -on_submit {
- news_aggregator::aggregator::set_user_default \
- -user_id $user_id \
- -aggregator_id $default_aggregator_id
-
- ad_returnredirect settings
- ad_script_abort
+# Check to make sure the aggregator exists (user may have deleted and redirected)
+if { [exists_and_not_null aggregator_id] && [db_string aggregator_exists {} -default 0] } {
+ array set ag_info [news_aggregator::aggregator::aggregator_info -aggregator_id $aggregator_id]
+ set context [list [list "." $ag_info(aggregator_name)] "$page_title"]
+} else {
+ set context [list $page_title]
}
set return_url settings
-set aggregator_link [export_vars -base "${package_url}aggregator" {return_url}]
+set aggregator_link [export_vars -base "${package_url}aggregator-add" {return_url}]
template::list::create \
-name "aggregators" \
-multirow "aggregators" \
-key aggregator_id \
+ -no_data "There are no aggregators in the system yet." \
-row_pretty_plural "aggregators" \
-elements {
edit {
label {}
display_template {
-
+ alt="Edit this aggregator" border="0">
}
}
aggregator_name {
- label "Name"
+ label "Aggregator Name"
display_template {
@aggregators.aggregator_name@
-
- (default)
-
}
link_url_eval {}
link_html { title "" }
}
public_p {
label "Public?"
}
+ default_p {
+ display_template {
+ defaultset as default
+ }
+ }
delete {
label {}
display_template {
-
+ alt="Delete this aggregator" border="0">
}
}
}
@@ -82,6 +73,7 @@
delete_url
delete_onclick
default_p
+ set_default_url
} aggregators select_aggregators {} {
if { [string equal $public_p t] } {
set public_p "Yes"
@@ -90,21 +82,23 @@
}
set url $package_url
- set edit_url [export_vars -base "${url}aggregator" {aggregator_id}]
+ set edit_url "${url}${aggregator_id}/manage?tab=general"
set delete_url [export_vars -base aggregator-delete {{delete_aggregator_id $aggregator_id}}]
set delete_onclick "return confirm('Are you sure you want to delete this news aggregator?');"
- if { [string equal $aggregator_id $default_aggregator] } {
+ if { [string equal $aggregator_id $default_aggregator_id] } {
set default_p 1
} else {
set default_p 0
+ set set_default_url [export_vars -base set-default {user_id aggregator_id}]
}
}
template::list::create \
-name "weblogs" \
-multirow "weblogs" \
-key weblog_id \
+ -no_data "No weblogs have been added yet." \
-row_pretty_plural "weblogs" \
-elements {
edit {
Index: openacs-4/packages/news-aggregator/www/settings.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/settings.xql,v
diff -u -r1.1.1.1 -r1.1.1.1.2.1
--- openacs-4/packages/news-aggregator/www/settings.xql 20 Mar 2004 11:04:39 -0000 1.1.1.1
+++ openacs-4/packages/news-aggregator/www/settings.xql 28 Dec 2005 17:55:43 -0000 1.1.1.1.2.1
@@ -4,17 +4,23 @@
- select a.aggregator_id,
- a.aggregator_name,
- a.public_p,
- u.default_aggregator
- from na_aggregators a join
- acs_objects o on (o.object_id = a.aggregator_id) join
- na_user_preferences u on (o.creation_user = u.user_id)
- where a.package_id = :package_id
- and u.user_id = :user_id
- order by a.aggregator_name
+ select a.aggregator_id,
+ a.aggregator_name,
+ a.public_p,
+ acs_permission__permission_p(a.aggregator_id,:user_id,'write') as write_p
+ from na_aggregators a
+ where a.package_id = :package_id
+ and acs_permission__permission_p(a.aggregator_id,:user_id,'read')
+ order by a.aggregator_name;
+
+
+ select 1
+ from na_aggregators a
+ where aggregator_id = :aggregator_id
+
+
+
Index: openacs-4/packages/news-aggregator/www/subscriptions.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/subscriptions.adp,v
diff -u -r1.5 -r1.5.2.1
--- openacs-4/packages/news-aggregator/www/subscriptions.adp 20 Aug 2004 09:31:27 -0000 1.5
+++ openacs-4/packages/news-aggregator/www/subscriptions.adp 28 Dec 2005 17:55:43 -0000 1.5.2.1
@@ -1,12 +1,8 @@
-
+
@page_title@
@context@
- Back to news aggregator
-
-
-
Enter the URL of an XML news feed you want to subscribe to, then click on the Add button.
Index: openacs-4/packages/news-aggregator/www/subscriptions.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/subscriptions.tcl,v
diff -u -r1.7 -r1.7.2.1
--- openacs-4/packages/news-aggregator/www/subscriptions.tcl 20 Aug 2004 09:31:27 -0000 1.7
+++ openacs-4/packages/news-aggregator/www/subscriptions.tcl 28 Dec 2005 17:55:43 -0000 1.7.2.1
@@ -1,5 +1,5 @@
ad_page_contract {
- The News Aggregator subscription page.
+ The News Aggregator subscription page (included by manage.adp).
@author Simon Carstensen (simon@bcuni.net)
@creation-date Jan 2003
@@ -15,9 +15,15 @@
-object_id $aggregator_id \
-privilege write
-set page_title "Subscriptions"
-set context [list $page_title]
+array set ag_info [news_aggregator::aggregator::aggregator_info -aggregator_id $aggregator_id]
+set page_title "Manage Subscriptions"
+if { [exists_and_not_null context] } {
+ lappend context "$page_title"
+} else {
+ set context [list $page_title]
+}
+
set user_id [ad_conn user_id]
set package_id [ad_conn package_id]
set package_url [ad_conn package_url]
@@ -132,7 +138,7 @@
set xml_graphics_url "${package_url}graphics/xml.gif"
}
-ad_form -name add_subscription -form {
+ad_form -name add_subscription -action subscriptions -form {
{subscription_id:integer(hidden),key}
{feed_url:text(text)
{value $feed_url_val}
@@ -160,6 +166,6 @@
}
array set channel $channel_array
set title $channel(title)
- ad_returnredirect -message "You have been subscribed to $title." subscriptions
+ ad_returnredirect -message "You have been subscribed to $title." "manage?tab=subscriptions"
ad_script_abort
}