Index: openacs-4/contrib/packages/irc-logger/ChangeLog
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/irc-logger/ChangeLog,v
diff -u -r1.7 -r1.8
--- openacs-4/contrib/packages/irc-logger/ChangeLog 13 Feb 2003 04:04:22 -0000 1.7
+++ openacs-4/contrib/packages/irc-logger/ChangeLog 10 Mar 2003 20:27:32 -0000 1.8
@@ -1,3 +1,11 @@
+2003-03-10 Bart Teeuwisse
+
+ * www/doc/index.adp (Module):
+ - Add IRC logs in reverse order so that the newest log is at the top of the page.
+ - Add 'current' link to latest IRC log at the top of the page.
+ - Add 'current' link to irc-logger for links from other sites to the latest log.
+ - Update documentation.
+
2003-02-12 Bart Teeuwisse
* www/admin/update.tcl (Module):
Index: openacs-4/contrib/packages/irc-logger/irc-logger.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/irc-logger/irc-logger.info,v
diff -u -r1.2 -r1.3
--- openacs-4/contrib/packages/irc-logger/irc-logger.info 10 Feb 2003 21:23:09 -0000 1.2
+++ openacs-4/contrib/packages/irc-logger/irc-logger.info 10 Mar 2003 20:27:32 -0000 1.3
@@ -7,15 +7,15 @@
f
f
-
+
oracle
postgresql
Bart Teeuwisse
The IRC logger places the log files of logger (a Perl script by Dave Beckett) into ETP for integration with OpenACS.
- 2003-02-10
- the Code Mill
+ 2003-02-21
+ the Code Mill
The IRC logger places the log files of <a href="http://cvs.ilrt.org/cvsweb/redland/logger/">logger</a> (a Perl script by Dave Beckett) into ETP for integration with OpenACS. Besides logger, this package also depends on <a href="http://www.tdom.org/">tDOM</a> (high performance XML data processing with easy and powerful Tcl scripting functionality).
@@ -34,6 +34,7 @@
+
Index: openacs-4/contrib/packages/irc-logger/tcl/irc-logger-procs-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/irc-logger/tcl/irc-logger-procs-postgresql.xql,v
diff -u -r1.2 -r1.3
--- openacs-4/contrib/packages/irc-logger/tcl/irc-logger-procs-postgresql.xql 31 Jan 2003 06:27:32 -0000 1.2
+++ openacs-4/contrib/packages/irc-logger/tcl/irc-logger-procs-postgresql.xql 10 Mar 2003 20:27:32 -0000 1.3
@@ -6,12 +6,48 @@
7.1
+
+
+ select etp__get_folder_id(:package_id)
+
+
+
+
+
+ select i1.item_id, i1.tree_sortkey, coalesce((
+ select tree_sortkey
+ from cr_items i2
+ where i2.tree_sortkey > i1.tree_sortkey
+ and i2.parent_id = :parent_id
+ and i2.name <> 'index'
+ and $i2_select_criteria
+ order by i2.tree_sortkey limit 1), (
+ select i2.tree_sortkey
+ from cr_items i2
+ where i2.parent_id = :parent_id
+ and i2.name <> 'index'
+ and $i2_select_criteria
+ order by i2.tree_sortkey limit 1)) as next_sortkey
+ from cr_items i1
+ where i1.parent_id = :parent_id
+ and i1.name <> 'index'
+ and $i1_select_criteria
+ order by i1.tree_sortkey;
+
+
+
select etp__create_page(:parent_package_id, :date, :date, :content_type)
+
+
+ select etp__create_extlink(:parent_package_id, :log_url, :link_label, :link_description);
+
+
+
select u.user_id, p.first_names || ' ' || p.last_name as name
Index: openacs-4/contrib/packages/irc-logger/tcl/irc-logger-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/irc-logger/tcl/irc-logger-procs.tcl,v
diff -u -r1.4 -r1.5
--- openacs-4/contrib/packages/irc-logger/tcl/irc-logger-procs.tcl 11 Feb 2003 21:51:22 -0000 1.4
+++ openacs-4/contrib/packages/irc-logger/tcl/irc-logger-procs.tcl 10 Mar 2003 20:27:32 -0000 1.5
@@ -101,6 +101,60 @@
return ""
}
+ad_proc -public irc::logger::rotate_logs {
+ -package_id:required
+ {-all:boolean}
+} {
+
+ Rotate the ETP pages so that the ETP page with the new log is
+ listed first instead of last. Please be aware that changes to
+ the sort order through of these logs through ETP might have
+ undesired side effects to the order. This an artifact of ETP
+ and not of the IRC logger.
+
+ @creation-date 2003-02-18
+ @author Bart Teeuwisse (bart.teeuwisse@thecodemill.biz)
+
+ @param package_id The package_id of the ETP instance that is
+ the parent of the ETP log pages.
+
+ @param -all Switch indicating wether all ETP instances should
+ be rotated or only the ETP log pages. This flag is used when
+ the 'current' link has been created and needs to be rotated to
+ the top of the page.
+
+ @return none
+
+ @error none
+} {
+
+ # Get the ID of the parent folder of the ETP log pages.
+
+ set parent_id [db_string get_parent_id {} -default {}]
+
+ # Rotate all ETP pages or just the logs?
+
+ if {$all_p} {
+ set i1_select_criteria "true"
+ set i2_select_criteria "true"
+ } else {
+ set i1_select_criteria [db_map i1_criteria]
+ set i2_select_criteria [db_map i2_criteria]
+ }
+
+ # Rotate the logs by assigning the tree_sortkey of the next ETP
+ # page to the current page. Assign the tree_sortkey of the first
+ # page to the last (=new) page.
+
+ db_foreach etp_logs {} {
+
+ # Assign the tree_sortkey of the next ETP page to the current
+ # page or the tree_sortkey of the first ETP to the last page.
+
+ db_dml shift {}
+ }
+}
+
ad_proc -public irc::logger::update_log {
-date:required
-package_id:required
@@ -175,11 +229,45 @@
# Create a new ETP page for the log.
db_exec_plsql page_create {}
- }
+ set log_live_revision_id [etp::get_live_revision_id $parent_package_id $date]
+ # Rotate the logs so that the new log is
+ # on top.
+
+ irc::logger::rotate_logs -package_id $parent_package_id
+
+ # Symlink 'current' to the latest log.
+
+ set log_url "[site_node::get_url -node_id $parent_package_id]$date"
+ if {![db_0or1row get_extlink {}]} {
+
+ # Create a 'current' symlink to the
+ # new log. As ETP symlinks don't
+ # support labels the link is created
+ # as an ETP extlink which do support
+ # labels and descriptions.
+
+ set link_label "current"
+ set link_description "Current $irc_channel_name conversation log"
+ db_exec_plsql create_extlink {}
+
+ # Rotate the symlink to the top of the list.
+
+ irc::logger::rotate_logs -package_id $parent_package_id -all
+
+ } else {
+
+ # Point the 'current' symlink to the new log.
+
+ db_dml update_extlink {}
+
+ }
+ } else {
+ set log_live_revision_id [etp::get_live_revision_id $parent_package_id $date]
+ }
+
# The update the existing ETP page for the log.
- set log_live_revision_id [etp::get_live_revision_id $parent_package_id $date]
set log_description "Conversation log of $irc_channel_name of $date"
db_dml update_revision {}
Index: openacs-4/contrib/packages/irc-logger/tcl/irc-logger-procs.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/irc-logger/tcl/irc-logger-procs.xql,v
diff -u -r1.1 -r1.2
--- openacs-4/contrib/packages/irc-logger/tcl/irc-logger-procs.xql 30 Jan 2003 02:48:48 -0000 1.1
+++ openacs-4/contrib/packages/irc-logger/tcl/irc-logger-procs.xql 10 Mar 2003 20:27:32 -0000 1.2
@@ -1,6 +1,47 @@
+
+
+ (i1.content_type <> 'content_extlink' or
+ i1.content_type is null)
+
+
+
+
+
+ (i2.content_type <> 'content_extlink' or
+ i2.content_type is null)
+
+
+
+
+
+ update cr_items
+ set tree_sortkey = :next_sortkey
+ where item_id = :item_id
+
+
+
+
+
+ select extlink_id
+ from cr_extlinks e, cr_items i, cr_folders f
+ where i.item_id = e.extlink_id
+ and i.parent_id = f.folder_id
+ and f.package_id = :parent_package_id
+ and e.label = 'current'
+
+
+
+
+
+ update cr_extlinks
+ set url = :log_url
+ where extlink_id = :extlink_id
+
+
+
update cr_revisions
Index: openacs-4/contrib/packages/irc-logger/www/current.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/irc-logger/www/current.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/contrib/packages/irc-logger/www/current.tcl 10 Mar 2003 20:28:44 -0000 1.1
@@ -0,0 +1,22 @@
+ad_page_contract {
+
+ # Redirect to today's log. Unfortunately ETP didn't provide the
+ # means to create current link in the ETP folder. Had to resort to
+ # this somewhat round about link.
+
+ @author Bart Teeuwisse (bart.teeuwisse@thecodemill.biz)
+ @creation-date 2003-03-01
+ @cvs $Id: current.tcl,v 1.1 2003/03/10 20:28:44 bartt Exp $
+
+} {
+}
+
+# The current log has the name of today's date in the GMT timezone.
+
+set gmt_today [clock format [clock seconds] -format %Y-%m-%d -gmt true]
+
+# Redirect to today's log without checking iXSf indeed it exists. It
+# could be that the logger died or that the ETP does not exists yet as
+# nothing has happened today on the channel.
+
+ns_returnredirect ../$gmt_today
Index: openacs-4/contrib/packages/irc-logger/www/doc/index.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/irc-logger/www/doc/index.adp,v
diff -u -r1.3 -r1.4
--- openacs-4/contrib/packages/irc-logger/www/doc/index.adp 31 Jan 2003 23:56:34 -0000 1.3
+++ openacs-4/contrib/packages/irc-logger/www/doc/index.adp 10 Mar 2003 20:27:32 -0000 1.4
@@ -143,8 +143,19 @@
Edit-This-Page that @package_name@ is mounted under.
@package_name@ can be mounted more than once. Each instance
- processing the logs of a different bot.
+ processing the logs of a different bot. New logs are added to the
+ top of the page, preceded by a link called 'current' which is a
+ symlink to the latest IRC log.
+ There is an additional 'current' link in @package_name@ for ease
+ of linking to the latest IRC log from other packages or from
+ external sites. This additional link is necessary because the
+ 'current' link on the page listing the IRC logs can not be
+ referred to as /irc/log/current. Edit-This-Page does not redirect
+ the request for /irc/log/current to the latest log but produces a
+ '404 Page not found' error instead. Hence the additional 'current'
+ link at /irc/log/logger/current.
+
@package_name@ will link to the user's profile and include the
full name for users of the site who have entered their IRC nick as
their OpenACS screen name.
Index: openacs-4/contrib/packages/irc-logger/www/doc/license.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/irc-logger/www/doc/license.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/contrib/packages/irc-logger/www/doc/license.tcl 30 Jan 2003 02:48:50 -0000 1.1
+++ openacs-4/contrib/packages/irc-logger/www/doc/license.tcl 10 Mar 2003 20:32:46 -0000 1.2
@@ -3,7 +3,7 @@
License information of the Authorize.net Gateway, an
implementation of the Payment Service Contract.
- @author Bart Teeuwisse
+ @author Bart Teeuwisse
@creation-date May 2002
@cvs $Id$