You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(381) |
Nov
(176) |
Dec
(310) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(334) |
Feb
(96) |
Mar
(149) |
Apr
(214) |
May
(120) |
Jun
(56) |
Jul
(10) |
Aug
(273) |
Sep
(182) |
Oct
(56) |
Nov
(125) |
Dec
(22) |
2003 |
Jan
(63) |
Feb
(181) |
Mar
(498) |
Apr
(433) |
May
(39) |
Jun
(512) |
Jul
(276) |
Aug
(156) |
Sep
(101) |
Oct
(66) |
Nov
(24) |
Dec
(161) |
2004 |
Jan
(1) |
Feb
(377) |
Mar
(68) |
Apr
(26) |
May
(107) |
Jun
(333) |
Jul
(13) |
Aug
|
Sep
(76) |
Oct
(88) |
Nov
(170) |
Dec
(91) |
2005 |
Jan
(52) |
Feb
(239) |
Mar
(402) |
Apr
(15) |
May
(2) |
Jun
(1) |
Jul
(13) |
Aug
|
Sep
(71) |
Oct
(34) |
Nov
|
Dec
|
2006 |
Jan
(5) |
Feb
(5) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
(7) |
Oct
(2) |
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Chris W. <la...@us...> - 2005-03-02 15:42:28
|
Update of /cvsroot/openinteract/OpenInteract2/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28549/t Modified Files: context.t manage_list_actions.t url.t utils.pl Log Message: OIN-135: test updates due to news package changes and to check REST-created URLs Index: context.t =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/t/context.t,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** context.t 25 Feb 2005 05:32:48 -0000 1.42 --- context.t 2 Mar 2005 15:42:13 -0000 1.43 *************** *** 81,85 **** is( ref $action_table, 'HASH', 'Action table is correct data structure' ); ! is( scalar keys %{ $action_table }, 43, 'Correct number of actions in table' ); --- 81,85 ---- is( ref $action_table, 'HASH', 'Action table is correct data structure' ); ! is( scalar keys %{ $action_table }, 44, 'Correct number of actions in table' ); Index: manage_list_actions.t =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/t/manage_list_actions.t,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** manage_list_actions.t 25 Feb 2005 05:32:48 -0000 1.8 --- manage_list_actions.t 2 Mar 2005 15:42:13 -0000 1.9 *************** *** 6,10 **** use lib 't/'; require 'utils.pl'; ! use Test::More tests => 48; require_ok( 'OpenInteract2::Manage' ); --- 6,10 ---- use lib 't/'; require 'utils.pl'; ! use Test::More tests => 49; require_ok( 'OpenInteract2::Manage' ); *************** *** 28,32 **** edit_document_box error_browser file_index forgotpassword group latest_news login_box logout lookups new new_comment_form ! news news_section news_tools_box newuser object_modify_box objectactivity package page pagedirectory pagescan powered_by_box search search_box security show_comment_by_object --- 28,32 ---- edit_document_box error_browser file_index forgotpassword group latest_news login_box logout lookups new new_comment_form ! news news_archive_monthly news_section news_tools_box newuser object_modify_box objectactivity package page pagedirectory pagescan powered_by_box search search_box security show_comment_by_object Index: url.t =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/t/url.t,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** url.t 28 Feb 2005 01:01:17 -0000 1.16 --- url.t 2 Mar 2005 15:42:13 -0000 1.17 *************** *** 7,11 **** require 'utils.pl'; use OpenInteract2::Context qw( CTX ); ! use Test::More tests => 135; initialize_context(); --- 7,11 ---- require 'utils.pl'; use OpenInteract2::Context qw( CTX ); ! use Test::More tests => 151; initialize_context(); *************** *** 158,168 **** is( $create_url, '/foo?bar=baz', 'Single query item' ); $create_url = $UCL->create( '/foo', { name => 'Stan Granite' } ); is( $create_url, '/foo?name=Stan%20Granite', 'Single query item with spaces' ); my %multiple_q = ( bar => 'baz', blah => 'blech' ); ! $create_url = $UCL->create( '/foo', \%multiple_q ); ! compare_urls( '/foo', \%multiple_q, $create_url, 'Multiple query items' ); my @unescaped = ( '~', '.', '-', '*', "'", '(', ')', '/' ); --- 158,185 ---- is( $create_url, '/foo?bar=baz', 'Single query item' ); + $create_url = $UCL->create( '/foo', { URL_PARAMS => 55, bar => 'baz' } ); + is( $create_url, '/foo/55?bar=baz', + 'Single query item with REST' ); + $create_url = $UCL->create( + '/foo', { URL_PARAMS => [ '55', 'whiteboard' ], bar => 'baz' } ); + is( $create_url, '/foo/55/whiteboard?bar=baz', + 'Single query item with multiple REST' ); $create_url = $UCL->create( '/foo', { name => 'Stan Granite' } ); is( $create_url, '/foo?name=Stan%20Granite', 'Single query item with spaces' ); + $create_url = $UCL->create( + '/foo', { URL_PARAMS => 'actor', name => 'Stan Granite' } ); + is( $create_url, '/foo/actor?name=Stan%20Granite', + 'Single query item with spaces and REST' ); + $create_url = $UCL->create( + '/foo', { URL_PARAMS => 'main actor', name => 'Stan Granite' } ); + is( $create_url, '/foo/main%20actor?name=Stan%20Granite', + 'Single query item with spaces and REST with spaces' ); my %multiple_q = ( bar => 'baz', blah => 'blech' ); ! compare_urls( '/foo', \%multiple_q, $UCL->create( '/foo', \%multiple_q ), 'Multiple query items' ); + $multiple_q{URL_PARAMS} = 'football'; + compare_urls( '/foo/football', \%multiple_q, $UCL->create( '/foo', \%multiple_q ), + 'Multiple query items with REST' ); my @unescaped = ( '~', '.', '-', '*', "'", '(', ')', '/' ); *************** *** 181,184 **** --- 198,209 ---- is( $create_url, '/some%20path/to/La%20Choy?emulate=Stan%20Granite', 'Path with spaces, query item with space' ); + $create_url = $UCL->create( '/some path/to/La Choy', + { URL_PARAMS => 'fake', emulate => 'Stan Granite' } ); + is( $create_url, '/some%20path/to/La%20Choy/fake?emulate=Stan%20Granite', + 'Path with spaces, query item with space with REST' ); + $create_url = $UCL->create( '/some path/to/La Choy', + { URL_PARAMS => 'not fake', emulate => 'Stan Granite' } ); + is( $create_url, '/some%20path/to/La%20Choy/not%20fake?emulate=Stan%20Granite', + 'Path with spaces, query item with space with REST having spaces' ); } *************** *** 188,203 **** --- 213,260 ---- is( $create_url, '/images/foo.gif', 'Simple image URL' ); + $create_url = $UCL->create_image( '/images/foo.gif', { size => 'max' } ); + is( $create_url, '/images/foo.gif?size=max', + 'Simple image URL with query args' ); + $create_url = $UCL->create_image( + '/images/foo.gif', { URL_PARAMS => 'default', size => 'max' } ); + is( $create_url, '/images/foo.gif/default?size=max', + 'Simple image URL with query args and REST' ); + CTX->assign_deploy_image_url( 'http://images.mycompany.com' ); $create_url = $UCL->create_image( '/images/foo.gif' ); is( $create_url, 'http://images.mycompany.com/images/foo.gif', 'Simple image URL with context' ); + $create_url = $UCL->create_image( '/images/foo.gif', { size => 'max' } ); + is( $create_url, 'http://images.mycompany.com/images/foo.gif?size=max', + 'Simple image URL with context and query args' ); + $create_url = $UCL->create_image( + '/images/foo.gif', { URL_PARAMS => 'default', size => 'max' } ); + is( $create_url, 'http://images.mycompany.com/images/foo.gif/default?size=max', + 'Simple image URL with context, query args and REST' ); $create_url = $UCL->create_static( '/reports/q1-2000.pdf' ); is( $create_url, '/reports/q1-2000.pdf', 'Simple static URL' ); + $create_url = $UCL->create_static( + '/reports/q1-2000.pdf', { resolution => 300 } ); + is( $create_url, '/reports/q1-2000.pdf?resolution=300', + 'Simple static URL with query args' ); + $create_url = $UCL->create_static( + '/reports/q1-2000.pdf', { URL_PARAMS => 'unlocked', resolution => 300 } ); + is( $create_url, '/reports/q1-2000.pdf/unlocked?resolution=300', + 'Simple static URL with query args and REST' ); + CTX->assign_deploy_static_url( 'http://static.mycompany.com' ); $create_url = $UCL->create_static( '/reports/q1-2000.pdf' ); is( $create_url, 'http://static.mycompany.com/reports/q1-2000.pdf', 'Simple static URL with context' ); + $create_url = $UCL->create_static( + '/reports/q1-2000.pdf', { resolution => 300 } ); + is( $create_url, 'http://static.mycompany.com/reports/q1-2000.pdf?resolution=300', + 'Simple static URL with context and query args' ); + $create_url = $UCL->create_static( + '/reports/q1-2000.pdf', { URL_PARAMS => 'unlocked', resolution => 300 } ); + is( $create_url, 'http://static.mycompany.com/reports/q1-2000.pdf/unlocked?resolution=300', + 'Simple static URL with context query args and REST' ); } Index: utils.pl =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/t/utils.pl,v retrieving revision 1.96 retrieving revision 1.97 diff -C2 -d -r1.96 -r1.97 *** utils.pl 1 Mar 2005 03:31:19 -0000 1.96 --- utils.pl 2 Mar 2005 15:42:13 -0000 1.97 *************** *** 49,53 **** base_error => '3.02', base_group => '2.18', ! base_page => '2.20', base_security => '2.20', base_template => '3.17', --- 49,53 ---- base_error => '3.02', base_group => '2.18', ! base_page => '2.30', base_security => '2.20', base_template => '3.17', *************** *** 57,61 **** full_text => '2.61', lookup => '2.09', ! news => '2.21', object_activity => '2.13', system_doc => '2.10', --- 57,61 ---- full_text => '2.61', lookup => '2.09', ! news => '2.24', object_activity => '2.13', system_doc => '2.10', *************** *** 72,78 **** is( $path_created, $url_base, "$desc: base paths match" ); ! my %query_map = map { split( '=', $_ ) } split( '&', $query_created ); ! is_deeply( \%query_map, $query_base, "$desc: query strings match" ); } --- 72,81 ---- is( $path_created, $url_base, "$desc: base paths match" ); ! my %query_actual = map { split( '=', $_ ) } split( '&', $query_created ); ! my %query_expected = map { $_ => $query_base->{ $_ } } ! grep { $_ ne 'URL_PARAMS' } ! keys %{ $query_base }; ! is_deeply( \%query_actual, \%query_expected, "$desc: query strings match" ); } |
From: Chris W. <la...@us...> - 2005-03-02 15:32:33
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25930/OpenInteract2 Modified Files: Action.pm Log Message: OIN-135: add property 'url_additional' and method in execute() to match up the names from 'url_additional' with the values from the request's 'param_url_additional()' method Index: Action.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Action.pm,v retrieving revision 1.69 retrieving revision 1.70 diff -C2 -d -r1.69 -r1.70 *** Action.pm 26 Feb 2005 05:56:20 -0000 1.69 --- Action.pm 2 Mar 2005 15:32:23 -0000 1.70 *************** *** 55,58 **** --- 55,59 ---- template_source => 'Template(s) to use to generate task content; can be specified per-task', cache_param => 'Parameters to use when caching contnent', + url_additional => 'Parameter names to which additional URL parameters get assigned; may be segmented by task', ); *************** *** 270,274 **** $log->debug( "Action $item_desc security checked, continuing" ); ! # Check cache and return if found my $cached_content = $self->_check_cache; --- 271,291 ---- $log->debug( "Action $item_desc security checked, continuing" ); ! # Assign any additional URL parameters -- do this before the cache ! # check to ensure that's consistent (it discriminates based on ! # param values) ! ! my @url_params = $self->_get_url_additional_names; ! if ( scalar @url_params ) { ! my $request = CTX->request; ! if ( $request ) { ! my @url_values = $request->param_url_additional; ! my $param_count = 0; ! foreach my $value ( @url_values ) { ! next unless ( $url_params[ $param_count ] ); ! $self->param( $url_params[ $param_count ], $value ); ! $param_count++; ! } ! } ! } my $cached_content = $self->_check_cache; *************** *** 321,324 **** --- 338,367 ---- } + sub _get_url_additional_names { + my ( $self ) = @_; + my $additional = $self->url_additional; + return unless ( $additional ); + my ( @items ); + my $task = $self->task; + if ( ref $additional eq 'ARRAY' ) { + @items = @{ $additional }; + } + elsif ( ref $additional eq 'HASH' ) { + my $base = $additional->{ $task } || + $additional->{DEFAULT} || + $additional->{default}; + if ( $base and ref $base eq 'ARRAY') { + @items = @{ $base }; + } + elsif ( $base ) { + @items = ( $base ); + } + } + else { + @items = ( $additional ); + } + return @items; + } + ######################################## # TASK *************** *** 1889,1892 **** --- 1932,1996 ---- url_alt = Noticias + B<url_additional( \@ or \% )> + + Action parameter names to associate with additional URL parameters + pulled from the request's C<param_url_additional()> method. This + association is done in C<execute()>. + + If specified as an arrayref we associate the parameters no matter what + task is called on the action. If specified as a hashref you can + specify parameter names per-task, using DEFAULT as a catch-all. + + Examples: + + # the value of the first additional URL parameter is assigned to the + # action parameter 'news_id' + [news] + ... + url_additional = news_id + + # Given URL: + URL: http://foo/news/display/22/ + + # Task implementation + sub display { + my ( $self ) = @_; + my $id = $self->param( 'news_id' ); + # $id is '22' since we pulled it from the first URL parameter + } + + # for all actions but 'archive' the value of the first additional URL + # parameter is assigned to the action parameter 'news_id'; for + # archive we assign them to 'search_year', 'search_month' and + # 'search_day' + [news] + ... + [news url_additional] + DEFAULT = news_id + archive = search_year + archive = search_month + archive = search_day + + # Given URL: + http://foo/news/remove/1099/ + + # Task implementation matching 'DEFAULT' + sub remove { + my ( $self ) = @_; + my $id = $self->param( 'news_id' ); + # $id is '1099' since we pulled it from the first URL parameter + } + + # Given URL: + http://foo/news/archive/2005/7/ + + sub archive { + my ( $self ) = @_; + my $year = $self->param( 'search_year' ); + my $month = $self->param( 'search_month' ); + my $day = $self->param( 'search_day' ); + # $year = 2005; $month = 7; $day is undef + } + B<message_name> ($) *************** *** 2360,2366 **** Most actions do not implement this method, instead implementing a task ! and using the base class implementation of C<execute()> to lookup the ! task and perform the necessary security checks and caching. (Learn ! about caching in L<OpenInteract2::Manual::Caching>.) Returns: content generated by the action --- 2464,2493 ---- Most actions do not implement this method, instead implementing a task ! and using the base class implementation of C<execute()> to: ! ! =over 4 ! ! =item * ! ! lookup the task ! ! =item * ! ! perform the necessary security checks ! ! =item * ! ! match up additional URL parameters from the request to action parameters ! ! =item * ! ! check the cache for matching content (More about caching in ! L<OpenInteract2::Manual::Caching>.) ! ! =item * ! ! after the content has been generated, store the content in the cache as necessary ! ! =back Returns: content generated by the action *************** *** 2473,2476 **** --- 2600,2609 ---- See L<PROPERTIES> for the list of properties in each action. + B<property_info()> + + Get a hash of all property names and descriptions -- used in a + management task so you can easily lookup properties without jumping + into the (fairly long) docs. + B<param_from_request( @param_names )> |
From: Chris W. <la...@us...> - 2005-03-02 15:31:45
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/ActionResolver In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25635/OpenInteract2/ActionResolver Modified Files: UserDir.pm NotFoundOrEmpty.pm NameAndTask.pm Log Message: OIN-135: modify resolvers to forward additional URL params up to parent method; what 'additional' means depends on the resolver Index: UserDir.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/ActionResolver/UserDir.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** UserDir.pm 25 Feb 2005 00:05:05 -0000 1.2 --- UserDir.pm 2 Mar 2005 15:31:34 -0000 1.3 *************** *** 19,32 **** sub resolve { my ( $self, $request, $url ) = @_; ! return undef unless ( $url =~ m!^(/~|~)(\w+)(/(\w+))?! ); ! my $username = $2; ! my $task = $4 || 'display'; ! $log ||= get_logger( LOG_ACTION ); my $action = CTX->lookup_action( 'user' ); $action->task( $task ); $action->param( login_name => $username ); $log->is_info && $log->info( "Created userdir action for '$username' ", "performing task '$task'" ); return $action; } --- 19,34 ---- sub resolve { my ( $self, $request, $url ) = @_; ! return undef unless ( $url =~ m|^/?~| ); ! $url =~ s|^/||; $url =~ s/\?.*$//; $url =~ s|/$||; ! my ( $username, $task, @params ) = split /\//, $url; ! $task ||= 'display'; my $action = CTX->lookup_action( 'user' ); $action->task( $task ); $action->param( login_name => $username ); + $log ||= get_logger( LOG_ACTION ); $log->is_info && $log->info( "Created userdir action for '$username' ", "performing task '$task'" ); + $self->assign_additional_params_from_url( $request, @params ); return $action; } *************** *** 46,55 **** http://.../~cwinters http://.../~cwinters/display_groups/ ! http://.../~cwinters/display/ =head1 DESCRIPTION Respond to URLs with leading '~' characters. Everything after the '~' ! is used as the user's name you wish to display or manipulate. =head1 OBJECT METHODS --- 48,58 ---- http://.../~cwinters http://.../~cwinters/display_groups/ ! http://.../~cwinters/last_post/5 =head1 DESCRIPTION Respond to URLs with leading '~' characters. Everything after the '~' ! up to the path separator is used as the user's name you wish to ! display or manipulate. =head1 OBJECT METHODS Index: NotFoundOrEmpty.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/ActionResolver/NotFoundOrEmpty.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** NotFoundOrEmpty.pm 14 Feb 2005 18:23:23 -0000 1.2 --- NotFoundOrEmpty.pm 2 Mar 2005 15:31:34 -0000 1.3 *************** *** 17,21 **** sub get_name { return 'notfound' } ! sub get_order { return 10 } sub resolve { --- 17,22 ---- sub get_name { return 'notfound' } ! # This goes to 11! ! sub get_order { return 11 } sub resolve { *************** *** 47,51 **** OpenInteract2::ActionResolver->register_factory_type( get_name() => __PACKAGE__ ); - 1; --- 48,51 ---- *************** *** 68,77 **** =head1 DESCRIPTION ! =head1 CLASS METHODS ! ! =head1 OBJECT METHODS =head1 SEE ALSO =head1 COPYRIGHT --- 68,80 ---- =head1 DESCRIPTION ! This resolver always fires last. If an action name has not been found ! from the URL we create the action specified in the server ! configuration under 'action_info.not_found. Similarly, if there is no ! action specified we create the action specified in 'action_info.none'. =head1 SEE ALSO + L<OpenInteract2::ActionResolver> + =head1 COPYRIGHT Index: NameAndTask.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/ActionResolver/NameAndTask.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NameAndTask.pm 13 Feb 2005 20:37:35 -0000 1.1 --- NameAndTask.pm 2 Mar 2005 15:31:34 -0000 1.2 *************** *** 22,26 **** $log ||= get_logger( LOG_ACTION ); ! my ( $action_name, $task_name ) = OpenInteract2::URL->parse( $url ); return undef unless ( $action_name ); --- 22,26 ---- $log ||= get_logger( LOG_ACTION ); ! my ( $action_name, $task_name, @params ) = OpenInteract2::URL->parse( $url ); return undef unless ( $action_name ); *************** *** 42,45 **** --- 42,46 ---- $log->info( "Assigned task '$task_name' to action" ); } + $self->assign_additional_params_from_url( $request, @params ); return $action } *************** *** 63,67 **** http://.../news/display/ ! # same as above http://.../news/display/63783/ --- 64,69 ---- http://.../news/display/ ! # same as above, but assigning '63783' as the first ! # 'param_url_additional()' request property http://.../news/display/63783/ |
From: Chris W. <la...@us...> - 2005-03-02 15:30:58
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25383/OpenInteract2 Modified Files: ActionResolver.pm Log Message: OIN-135: add common method for storing additional URL parameters found from a resolver Index: ActionResolver.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/ActionResolver.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ActionResolver.pm 25 Feb 2005 05:36:38 -0000 1.2 --- ActionResolver.pm 2 Mar 2005 15:30:38 -0000 1.3 *************** *** 60,63 **** --- 60,77 ---- } + ######################################## + # OBJECT METHODS + + sub assign_additional_params_from_url { + my ( $self, $request, @params ) = @_; + if ( scalar @params ) { + $log ||= get_logger( LOG_ACTION ); + $log->info( "Assigning additional URL parameters: ", + join( ', ', @params ) ); + $request->param_url_additional( @params ); + } + } + + ######################################## |
From: Chris W. <la...@us...> - 2005-03-02 15:28:59
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24621/OpenInteract2 Modified Files: Request.pm Log Message: OIN-135: add param_url_additional() property, used to store additional (non-action and non-task) parameters from the URL Index: Request.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Request.pm,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** Request.pm 25 Feb 2005 05:37:45 -0000 1.52 --- Request.pm 2 Mar 2005 15:28:44 -0000 1.53 *************** *** 26,30 **** now server_name remote_host user_agent referer cookie_header language_header ! url_absolute url_relative url_initial session auth_user auth_group auth_is_admin auth_is_logged_in ); --- 26,30 ---- now server_name remote_host user_agent referer cookie_header language_header ! url_absolute url_relative url_initial session auth_user auth_group auth_is_admin auth_is_logged_in ); *************** *** 79,82 **** --- 79,93 ---- # PARAMETERS + sub param_url_additional { + my ( $self, @added ) = @_; + if ( scalar @added ) { + $self->{_URL_PARAMS} = \@added; + } + else { + $self->{_URL_PARAMS} ||= []; + } + return wantarray ? @{ $self->{_URL_PARAMS} } : $self->{_URL_PARAMS}; + } + sub param_toggled { my ( $self, $name ) = @_; *************** *** 513,529 **** B<param( [ $name, $value ] )> ! With no arguments, this returns a list -- not an arrayref! -- of ! parameters the client passed in. ! If you pass in C<$name> by itself then you get the value(s) associated ! with it. If C<$name> has not been previously set you get an empty list ! or undef depending on the context. Otherwise, we return the ! context-sensitive value of C<$name> ! If you pass in a C<$value> along with C<$name> then it is assigned to ! C<$name>, overwriting whatever may have been there before. ! Returns: list of parameters (no argument), the parameter associated ! with the first argument (one argument, two arguments), B<param_toggled( $name )> --- 524,556 ---- B<param( [ $name, $value ] )> ! See docs in L<OpenInteract2::ParamContainer> ! B<param_url_additional()> ! Property that returns as a list any additional path information as ! parameters. This allows REST-style URLs. ! What constitutes 'additional' is determined by the relevant ! L<OpenInteract2::ActionResolver> class -- the one that's able to ! resolve a URL into an L<OpenInteract2::Action> object is also ! responsible for setting this property. ! ! For instance, instead of: ! ! http://www.foo.com/news/display/?news_id=1 ! ! You could have: ! ! http://www.foo.com/news/display/1 ! ! And instead of: ! ! http://www.foo.com/news/archive/?year=2005&month=8 ! ! You could use: ! ! http://www.foo.com/news/archive/2005/8 ! ! Returns: list of additional parameters, in order. B<param_toggled( $name )> |
From: Chris W. <la...@us...> - 2005-03-02 15:28:09
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24290/OpenInteract2 Modified Files: URL.pm Log Message: OIN-135: add new URL-creation parameter so that we can easily create REST URLs from anywhere Index: URL.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/URL.pm,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** URL.pm 26 Feb 2005 23:22:45 -0000 1.29 --- URL.pm 2 Mar 2005 15:27:57 -0000 1.30 *************** *** 121,124 **** --- 121,134 ---- my ( $is_absolute ) = $url_base =~ /^\s*http:/; + # do this first so values from URL_PARAMS get escaped too + if ( $params->{URL_PARAMS} ) { + $url_base =~ s|/$||; + my @rest_params = ( ref $params->{URL_PARAMS} ) + ? @{ $params->{URL_PARAMS} } + : ( $params->{URL_PARAMS} ); + $url_base .= '/' . join( '/', @rest_params ); + delete $params->{URL_PARAMS}; + } + # Absolute URLs don't get touched, so the escaping + # contextualization doesn't get done to them *************** *** 132,135 **** --- 142,146 ---- } $params ||= {}; + return $url_base unless ( scalar keys %{ $params } ); *************** *** 368,376 **** continue to work properly. ! If no C<\%params> are specified then the resulting URL will B<not> ! have a trailing '?' to indicate the start of a query string. This is ! important to note if you are doing further manipulation of the URL, ! such as you with if you were embedding it in generated ! Javascript. Note that the parameter names and values are URI-escaped. Unless C<$do_not_escape> is set to a true value we also escape the --- 379,393 ---- continue to work properly. ! One of the entries in C<\%params> is special: C<URL_PARAMS>. If ! specified we append its params (a simple scalar or arrayref ) to ! C<$base_url> as extra path information. This information will not have ! a trailing '/'. ! ! If no other C<\%params> are specified then the resulting URL will ! B<not> have a trailing '?' to indicate the start of a query ! string. This is important to note if you are doing further ! manipulation of the URL, such as you with if you were embedding it in ! generated Javascript. Note that the parameter names and values are ! URI-escaped. Unless C<$do_not_escape> is set to a true value we also escape the *************** *** 386,390 **** Finally: if C<$base_url> begins with 'http:' we do not modify it in any way (including escaping it or adding a context) except to append ! the C<\%params>. Return: URL formed from the deployed context, C<$base_url> and --- 403,407 ---- Finally: if C<$base_url> begins with 'http:' we do not modify it in any way (including escaping it or adding a context) except to append ! the C<\%params>, including C<URL_PARAMS>. Return: URL formed from the deployed context, C<$base_url> and *************** *** 401,408 **** # $url = '/foo?bar=baz' ! $url = OpenInteract2::URL->create( '/foo', { bar => 'baz', blah => 'blech' } ); # $url = '/foo?bar=baz;blah=blech' ! $url = OpenInteract2::URL->create( '/foo', { name => 'Mario Lemieux' } ); # $url = '/foo?name=Mario%20Lemiux' --- 418,435 ---- # $url = '/foo?bar=baz' ! $url = OpenInteract2::URL->create( ! '/foo', { URL_PARAMS => '22', bar => 'baz' } ); ! # $url = '/foo/22?bar=baz' ! ! $url = OpenInteract2::URL->create( ! '/foo', { URL_PARAMS => [ '22', 'baseball' ], bar => 'baz' } ); ! # $url = '/foo/22/baseball?bar=baz' ! ! $url = OpenInteract2::URL->create( ! '/foo', { bar => 'baz', blah => 'blech' } ); # $url = '/foo?bar=baz;blah=blech' ! $url = OpenInteract2::URL->create( ! '/foo', { name => 'Mario Lemieux' } ); # $url = '/foo?name=Mario%20Lemiux' *************** *** 411,422 **** # $url = '/Public/foo?bar=baz' ! $url = OpenInteract2::URL->create( '/foo', { bar => 'baz', blah => 'blech' } ); # $url = '/Public/foo?bar=baz;blah=blech' ! $url = OpenInteract2::URL->create( '/foo', { name => 'Mario Lemieux' } ); # $url = '/Public/foo?name=Mario%20Lemiux' ! $url = OpenInteract2::URL->create( 'http://foo bar/foo', { name => 'Mario Lemieux' } ); ! # $url = 'http://foo bar/foo?name=Mario%20Lemiux' CTX->assign_deploy_url( '/cgi-bin/oi.cgi' ); --- 438,456 ---- # $url = '/Public/foo?bar=baz' ! $url = OpenInteract2::URL->create( ! '/foo', { URL_PARAMS => '99', bar => 'baz' } ); ! # $url = '/Public/foo/99?bar=baz' ! ! $url = OpenInteract2::URL->create( ! '/foo', { bar => 'baz', blah => 'blech' } ); # $url = '/Public/foo?bar=baz;blah=blech' ! $url = OpenInteract2::URL->create( ! '/foo', { name => 'Mario Lemieux' } ); # $url = '/Public/foo?name=Mario%20Lemiux' ! $url = OpenInteract2::URL->create( ! 'http://foo bar/foo', { URL_PARAMS => '66', name => 'Mario Lemieux' } ); ! # $url = 'http://foo bar/foo/66?name=Mario%20Lemiux' CTX->assign_deploy_url( '/cgi-bin/oi.cgi' ); *************** *** 437,441 **** properly. ! If no C<\%params> are specified then the resulting URL will B<not> have a trailing '?' to indicate the start of a query string. This is important to note if you are doing further manipulation of the URL, --- 471,477 ---- properly. ! We treat C<URL_PARAMS> in C<\%params> as C<create()> does. ! ! If no other C<\%params> are specified then the resulting URL will B<not> have a trailing '?' to indicate the start of a query string. This is important to note if you are doing further manipulation of the URL, *************** *** 475,482 **** URLs continue to work properly. ! If no C<\%params> are specified then the resulting URL will B<not> ! have a trailing '?' to indicate the start of a query string. This is ! important to note if you are doing further manipulation of the URL, ! such as you with if you were embedding it in generated Javascript. Unless C<$do_not_escape> is set to a true value we URI-escape the --- 511,521 ---- URLs continue to work properly. ! We treat C<URL_PARAMS> in C<\%params> as C<create()> does. ! ! If no other C<\%params> are specified then the resulting URL will ! B<not> have a trailing '?' to indicate the start of a query ! string. This is important to note if you are doing further ! manipulation of the URL, such as you with if you were embedding it in ! generated Javascript. Unless C<$do_not_escape> is set to a true value we URI-escape the *************** *** 514,517 **** --- 553,558 ---- C<undef>. + We treat C<URL_PARAMS> in C<\%params> as C<create()> does. + Unless C<$do_not_escape> is set to a true value we URI-escape the URL created from the action name and task. (We always URI-escape the query *************** *** 572,575 **** --- 613,619 ---- C<$url>, which is assumed to be contextualized and escaped already. + We do B<NOT> treat C<URL_PARAMS> in C<\%params> as C<create()> does -- + it's just another parameter. + So: |
From: Chris W. <la...@us...> - 2005-03-02 15:21:57
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/news In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21616/news Modified Files: package.ini MANIFEST Changes Log Message: OIN-135: add support to news package for REST URLs, also adding an 'archive' feature to allow you to specify news articles to display by year + month Index: package.ini =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/news/package.ini,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** package.ini 1 Mar 2005 03:28:43 -0000 1.2 --- package.ini 2 Mar 2005 15:21:44 -0000 1.3 *************** *** 1,5 **** [package] name = news ! version = 2.22 author = Chris Winters (ch...@cw...) url = http://www.openinteract.org/ --- 1,5 ---- [package] name = news ! version = 2.24 author = Chris Winters (ch...@cw...) url = http://www.openinteract.org/ Index: MANIFEST =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/news/MANIFEST,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** MANIFEST 1 Mar 2005 03:28:43 -0000 1.8 --- MANIFEST 2 Mar 2005 15:21:44 -0000 1.9 *************** *** 24,27 **** --- 24,28 ---- struct/news_section_sequence.sql struct/news_sequence.sql + template/archive_count.tmpl template/news_detail.tmpl template/news_filter_form.tmpl Index: Changes =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/news/Changes,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** Changes 1 Mar 2005 03:28:43 -0000 1.22 --- Changes 2 Mar 2005 15:21:44 -0000 1.23 *************** *** 1,4 **** --- 1,14 ---- Revision history for OpenInteract package news. + 2.24 Tue Mar 1 22:52:43 EST 2005 + + Add 'archive_list' box that displays the archive count by + year/month. + + 2.23 Tue Mar 1 21:58:00 EST 2005 + + Add 'archive' task which just points to 'search' but we can grab + the extra REST parameters and use them differently. + 2.22 Mon Feb 28 20:33:57 EST 2005 |
From: Chris W. <la...@us...> - 2005-03-02 15:21:57
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/news/conf In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21616/news/conf Modified Files: action.ini Log Message: OIN-135: add support to news package for REST URLs, also adding an 'archive' feature to allow you to specify news articles to display by year + month Index: action.ini =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/news/conf/action.ini,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** action.ini 12 Jun 2004 23:44:04 -0000 1.13 --- action.ini 2 Mar 2005 15:21:44 -0000 1.14 *************** *** 25,28 **** --- 25,34 ---- c_remove_fail_task = home + [news url_additional] + DEFAULT = news_id + @,archive = search_year, search_month, search_day + + + [news security] DEFAULT = READ *************** *** 45,63 **** latest = news::news_listing search = news::news_list show_summary = news::news_list_editable [latest_news] ! class = OpenInteract2::Action::News ! method = latest ! is_secure = no ! ! [latest_news cache_expire] ! latest = 700 ! ! [latest_news cache_param] ! latest = num_items ! ! [latest_news template_source] ! latest = news::news_listing [news_tools_box] --- 51,64 ---- latest = news::news_listing search = news::news_list + archive = news::news_list show_summary = news::news_list_editable [latest_news] ! class = OpenInteract2::Action::News ! method = latest ! is_secure = no ! cache_expire = 700 ! cache_param = num_items ! template_source = news::news_listing [news_tools_box] *************** *** 79,82 **** --- 80,92 ---- action_type = lookup + [news_archive_monthly] + class = OpenInteract2::Action::News + method = archive_by_month + cache_expire = 1h + template_source = news::archive_count + title = Archives + weight = 4 + is_secure = no + url_none = yes # Examples of using different content generators |
From: Chris W. <la...@us...> - 2005-03-02 15:21:56
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/news/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21616/news/OpenInteract2/App Modified Files: News.pm Log Message: OIN-135: add support to news package for REST URLs, also adding an 'archive' feature to allow you to specify news articles to display by year + month Index: News.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/news/OpenInteract2/App/News.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** News.pm 1 Mar 2005 03:28:43 -0000 1.1 --- News.pm 2 Mar 2005 15:21:44 -0000 1.2 *************** *** 57,60 **** --- 57,72 ---- Definition for the toolbox with news actions. + B<news_archive_monthly> + + Displays descending date order a count by month of all news stories: + + [% OI.box_add( 'news_archive_monthly' ) %] + + Note that this is only supported by PostgreSQL, MySQL and (possibly) + SQLite. This is only because I'm not familiar with the date parsing + functions available on other databases. (For example, how to select + and group by the year and month of a date field.) If you'd like to add + your DB let me know. + =head1 OBJECTS |
From: Chris W. <la...@us...> - 2005-03-02 15:21:56
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/news/template In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21616/news/template Modified Files: news_list.tmpl news_home.tmpl Added Files: archive_count.tmpl Log Message: OIN-135: add support to news package for REST URLs, also adding an 'archive' feature to allow you to specify news articles to display by year + month --- NEW FILE: archive_count.tmpl --- [% FOREACH info = counts; archive_url = OI.make_url( ACTION = 'news', TASK = 'archive', URL_PARAMS = [ info.year, info.month ] ); -%] <a href="[% archive_url %]">[% info.month %]/[% info.year %]</a>: [% info.count %] <br /> [% END -%] Index: news_list.tmpl =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/news/template/news_list.tmpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** news_list.tmpl 17 May 2004 14:24:43 -0000 1.4 --- news_list.tmpl 2 Mar 2005 15:21:44 -0000 1.5 *************** *** 17,23 **** [% FOREACH news = news_list -%] ! [%- detail_url = OI.make_url( ACTION = 'news', ! TASK = 'display', ! news_id = news.id ) -%] <a href="[% detail_url %]">[% news.title %]</a> - [% news.section %]<br /> --- 17,22 ---- [% FOREACH news = news_list -%] ! [%- detail_url = OI.make_url( ACTION = 'news', TASK = 'display', ! URL_PARAMS = news.id ) -%] <a href="[% detail_url %]">[% news.title %]</a> - [% news.section %]<br /> Index: news_home.tmpl =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/news/template/news_home.tmpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** news_home.tmpl 25 Feb 2004 01:52:03 -0000 1.4 --- news_home.tmpl 2 Mar 2005 15:21:44 -0000 1.5 *************** *** 2,5 **** --- 2,8 ---- DEFAULT num_latest = 10 -%] + [%- PROCESS error_message; + PROCESS status_message; -%] + [% INCLUDE news::news_filter_form %] |
From: Chris W. <la...@us...> - 2005-03-02 15:21:55
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/news/msg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21616/news/msg Modified Files: news-messages-en.msg Log Message: OIN-135: add support to news package for REST URLs, also adding an 'archive' feature to allow you to specify news articles to display by year + month Index: news-messages-en.msg =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/news/msg/news-messages-en.msg,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** news-messages-en.msg 5 Dec 2004 08:51:23 -0000 1.3 --- news-messages-en.msg 2 Mar 2005 15:21:44 -0000 1.4 *************** *** 39,46 **** news.box.edit_section = Edit news sections ! news.error.fetch = Failed to fetch news object '[_1]': [_2] ! news.error.save = Failed to save news object '[_1]': [_2] news.error.fetch_multiple = Failed to fetch news items: [_1] news.error.fetch_sections = Failed to get news sections: [_1] news.status.multi_updates = Attempted: [_1]; successful updates [_2] \ No newline at end of file --- 39,48 ---- news.box.edit_section = Edit news sections ! news.error.fetch = Failed to fetch news object '[_1]': [_2] ! news.error.save = Failed to save news object '[_1]': [_2] news.error.fetch_multiple = Failed to fetch news items: [_1] news.error.fetch_sections = Failed to get news sections: [_1] + news.error.archive_date = You must provide at least a month and year to browse the archive. + news.error.db_unsupported = This database ([_1]) not supported for extracting date information. news.status.multi_updates = Attempted: [_1]; successful updates [_2] \ No newline at end of file |
From: Chris W. <la...@us...> - 2005-03-02 15:21:55
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/news/OpenInteract2/Action In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21616/news/OpenInteract2/Action Modified Files: News.pm Log Message: OIN-135: add support to news package for REST URLs, also adding an 'archive' feature to allow you to specify news articles to display by year + month Index: News.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/news/OpenInteract2/Action/News.pm,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** News.pm 5 Dec 2004 21:15:53 -0000 1.12 --- News.pm 2 Mar 2005 15:21:44 -0000 1.13 *************** *** 27,30 **** --- 27,45 ---- } + # only by date, but makes for nice URLs... + + sub archive { + my ( $self ) = @_; + my $year = $self->param( 'search_year' ); + my $month = $self->param( 'search_month' ); + $log ||= get_logger( LOG_APP ); + $log->info( "Got archive date [Year: $year] and [Month: $month]" ); + unless ( $year and $month ) { + $self->add_error_key( 'news.error.archive_date' ); + return $self->execute({ task => 'home' }); + } + return $self->search(); + } + sub latest { my ( $self ) = @_; *************** *** 41,47 **** my $where = "active_on <= ? AND active = ? "; my @values = ( OpenInteract2::Util->now, 'yes' ); - my $news_class = CTX->lookup_object( 'news' ); my $items = eval { ! $news_class->fetch_group({ where => $where, value => \@values, --- 56,61 ---- my $where = "active_on <= ? AND active = ? "; my @values = ( OpenInteract2::Util->now, 'yes' ); my $items = eval { ! OpenInteract2::News->fetch_group({ where => $where, value => \@values, *************** *** 74,80 **** unless ( $self->param( 'date' ) ) { ! my $p_day = $request->param( 'news_day' ); ! my $p_month = $request->param( 'news_month' ); ! my $p_year = $request->param( 'news_year' ); if ( $p_month and $p_year ) { $self->param( date => join( '-', $p_day, $p_month, $p_year ) ); --- 88,97 ---- unless ( $self->param( 'date' ) ) { ! my $p_day = $self->param( 'search_day' ) || ! $request->param( 'news_day' ); ! my $p_month = $self->param( 'search_month' ) || ! $request->param( 'news_month' ); ! my $p_year = $self->param( 'search_year' ) || ! $request->param( 'news_year' ); if ( $p_month and $p_year ) { $self->param( date => join( '-', $p_day, $p_month, $p_year ) ); *************** *** 138,147 **** $log->debug( "Quering news objects with: $where\n", "and values: ", join( ', ', @values ) ); - my $news_class = CTX->lookup_object( 'news' ); my $items = eval { ! $news_class->fetch_group({ where => $where, ! value => \@values, ! column_group => 'listing', ! order => 'posted_on DESC' }) }; $params{news_list} = $self->_massage_news_list( $items ); --- 155,165 ---- $log->debug( "Quering news objects with: $where\n", "and values: ", join( ', ', @values ) ); my $items = eval { ! OpenInteract2::News->fetch_group({ ! where => $where, ! value => \@values, ! column_group => 'listing', ! order => 'posted_on DESC', ! }) }; $params{news_list} = $self->_massage_news_list( $items ); *************** *** 268,281 **** 'ID/email is given.</p>'; } - my $news_class = CTX->lookup_object( 'news' ); my @news_list = (); foreach my $nid ( @news_id ) { ! my $news = eval { $news_class->fetch( $nid ) }; push @news_list, $news if ( $news ); } ! my $rv = $news_class->notify({ email => $email, ! subject => 'News notification', ! object => \@news_list, ! type => 'news' }); if ( $rv ) { return '<h2 align="center">Success!</h2>' . --- 286,300 ---- 'ID/email is given.</p>'; } my @news_list = (); foreach my $nid ( @news_id ) { ! my $news = eval { OpenInteract2::News->fetch( $nid ) }; push @news_list, $news if ( $news ); } ! my $rv = OpenInteract2::News->notify({ ! email => $email, ! subject => 'News notification', ! object => \@news_list, ! type => 'news', ! }); if ( $rv ) { return '<h2 align="center">Success!</h2>' . *************** *** 311,315 **** my $request = CTX->request; - my $news_class = CTX->lookup_object( 'news' ); my @do_edit = $request->param( 'do_edit' ); my ( $success, $attempt ); --- 330,333 ---- *************** *** 318,322 **** next unless ( $news_id ); $attempt++; ! my $news = eval { $news_class->fetch( $news_id ) }; if ( $@ ) { $log->error( "Cannot fetch news '$news_id': $@" ); --- 336,340 ---- next unless ( $news_id ); $attempt++; ! my $news = eval { OpenInteract2::News->fetch( $news_id ) }; if ( $@ ) { $log->error( "Cannot fetch news '$news_id': $@" ); *************** *** 341,344 **** --- 359,424 ---- } + # counts by month + sub archive_by_month { + my ( $self ) = @_; + $log ||= get_logger( LOG_APP ); + + my $dbh = OpenInteract2::News->global_datasource_handle(); + my $driver = $dbh->{Driver}{Name}; + + # selects: count, year, month + my $sql = $self->_get_count_by_month_sql( $driver ); + unless ( $sql ) { + $self->add_error_key( 'news.error.db_unsupported', $driver ); + return $self->execute({ task => 'home' }); + } + my ( $sth ); + eval { + $sth = $dbh->prepare( $sql ); + $sth->execute; + }; + if ( $@ ) { + $log->warn( "Error preparing/executing SQL for '$driver' DB: $@" ); + $self->add_error_key( 'news.error.fetch_multiple', "$@" ); + return undef; + } + my @counts = (); + while ( my $row = $sth->fetchrow_arrayref ) { + push @counts, { + count => $row->[0], + year => $row->[1], + month => $row->[2], + }; + } + return $self->generate_content({ + counts => \@counts, + }); + } + + sub _get_count_by_month_sql { + my ( $self, $driver ) = @_; + $driver = lc $driver; + my $table = OpenInteract2::News->table_name; + my $trailing = " FROM $table\n" . + " GROUP BY year, month\n" . + " ORDER BY year DESC, month DESC\n"; + if ( 'pg' eq $driver ) { + return "SELECT count(*), date_part( 'year', posted_on ) as year, " . + " date_part( 'month', posted_on ) as month\n" . + $trailing; + } + elsif ( 'mysql' eq $driver ) { + return "SELECT count(*), EXTRACT( YEAR FROM posted_on ) as year, " . + " EXTRACT( MONTH FROM posted_on ) as month\n" . + $trailing; + } + elsif ( 'sqlite' eq $driver ) { + return "SELECT count(*), substr( posted_on, 1, 4 ) as year, " . + " substr( posted_on, 6, 2 ) as month\n" . + $trailing; + } + return; + } + # Get all sections, or add an error message to the action |
From: Chris W. <la...@us...> - 2005-03-01 03:56:05
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Exception In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2764 Modified Files: Security.pm Log Message: pass our special 'no-exception' parameter so we don't get into an infinite loop Index: Security.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Exception/Security.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Security.pm 28 Feb 2005 23:43:44 -0000 1.11 --- Security.pm 1 Mar 2005 03:55:55 -0000 1.12 *************** *** 34,38 **** unless ( $CTX ) { require OpenInteract2::Context; ! $CTX = OpenInteract2::Context->instance; } my ( $msg ); --- 34,38 ---- unless ( $CTX ) { require OpenInteract2::Context; ! $CTX = OpenInteract2::Context->instance( 1 ); } my ( $msg ); |
From: Chris W. <la...@us...> - 2005-03-01 03:36:51
|
Update of /cvsroot/openinteract/OpenInteract2/sample/package_from_table In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30618/package_from_table Removed Files: package.conf Log Message: package.conf no longer needed --- package.conf DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 03:36:51
|
Update of /cvsroot/openinteract/OpenInteract2/sample/package In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30618/package Removed Files: package.conf Log Message: package.conf no longer needed --- package.conf DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 03:36:12
|
Update of /cvsroot/openinteract/OpenInteract2/sample/package_from_table In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30331/sample/package_from_table Modified Files: FILES Added Files: package.ini Log Message: no longer need to create App.pm when generating CPAN; use package.ini... --- NEW FILE: package.ini --- [package] name = [% package_name %] version = 0.01 author = Who AmI <me...@wh...> url = http://www.whereami.com/ sql_installer = OpenInteract2::SQLInstall::[% class_name %] description = Description of package [% package_name %] goes here. Use can use '\' as a line continuation. # Dependencies: use multiple lines for multiple dependencies module = # Other options: config_watcher, spops_file, action_file, message_file # Add template plugins here: key is name of plugin, value is class [package template_plugin] # Register observers here: key is name of observer, value is class [package observer] Index: FILES =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/sample/package_from_table/FILES,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** FILES 26 Feb 2005 23:07:03 -0000 1.2 --- FILES 1 Mar 2005 03:36:00 -0000 1.3 *************** *** 1,3 **** ! package.conf --> package.conf MANIFEST.SKIP --> MANIFEST.SKIP spops.ini --> conf spops.ini --- 1,3 ---- ! package.ini --> package.ini MANIFEST.SKIP --> MANIFEST.SKIP spops.ini --> conf spops.ini |
From: Chris W. <la...@us...> - 2005-03-01 03:36:11
|
Update of /cvsroot/openinteract/OpenInteract2/sample/package In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30331/sample/package Modified Files: App.pm FILES Added Files: package.ini Log Message: no longer need to create App.pm when generating CPAN; use package.ini... --- NEW FILE: package.ini --- [package] name = [% package_name %] version = 0.01 author = Who AmI <me...@wh...> url = http://www.whereami.com/ sql_installer = OpenInteract2::SQLInstall::[% class_name %] description = Description of package [% package_name %] goes here. Use can use '\' as a line continuation. # Dependencies: use multiple lines for multiple dependencies module = # Other options: config_watcher, spops_file, action_file, message_file # Add template plugins here: key is name of plugin, value is class [package template_plugin] # Register observers here: key is name of observer, value is class [package observer] Index: App.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/sample/package/App.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** App.pm 26 Feb 2005 23:05:51 -0000 1.1 --- App.pm 1 Mar 2005 03:35:59 -0000 1.2 *************** *** 5,9 **** use OpenInteract2::Manage; ! $OpenInteract2::App::[% class_name %]::VERSION = '0.01'; @OpenInteract2::App::[% class_name %]::EXPORT = qw( install ); --- 5,9 ---- use OpenInteract2::Manage; ! $OpenInteract2::App::[% class_name %]::VERSION = sprintf("%d.%02d", q$Revision$ =~ /(\d+)\.(\d+)/); @OpenInteract2::App::[% class_name %]::EXPORT = qw( install ); *************** *** 29,57 **** OpenInteract2::App::[% class_name %] - This application will do everything! ! =head1 SYNOPSIS ! ! =head1 DESCRIPTION ! ! =head1 OBJECTS ! ! No objects created by this application. ! ! =head1 ACTIONS ! ! No actions defined in this application. ! ! =head1 RULESETS ! ! No rulesets defined in this application. ! ! =head1 TASKS ! ! No management tasks defined in this application. ! ! =head1 SEE ALSO ! ! =head1 AUTHORS ! ! Who AmI E<lt>me...@wh...E<gt> =cut --- 29,33 ---- OpenInteract2::App::[% class_name %] - This application will do everything! ! [% pod %] =cut Index: FILES =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/sample/package/FILES,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** FILES 26 Feb 2005 23:05:51 -0000 1.6 --- FILES 1 Mar 2005 03:35:59 -0000 1.7 *************** *** 6,10 **** # 'package_name' and 'class_name' template keys replaced. ! package.conf --> package.conf MANIFEST.SKIP --> MANIFEST.SKIP spops.ini --> conf spops.ini --- 6,10 ---- # 'package_name' and 'class_name' template keys replaced. ! package.ini --> package.ini MANIFEST.SKIP --> MANIFEST.SKIP spops.ini --> conf spops.ini |
From: Chris W. <la...@us...> - 2005-03-01 03:36:11
|
Update of /cvsroot/openinteract/OpenInteract2/sample/package_cpan In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30331/sample/package_cpan Modified Files: FILES Removed Files: App.pm Log Message: no longer need to create App.pm when generating CPAN; use package.ini... Index: FILES =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/sample/package_cpan/FILES,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FILES 8 Feb 2005 12:32:48 -0000 1.1 --- FILES 1 Mar 2005 03:36:00 -0000 1.2 *************** *** 1,4 **** Makefile.PL --> Makefile.PL - App.pm --> lib OpenInteract2 App [% subclass %].pm Brick.pm --> lib OpenInteract2 Brick [% subclass %].pm module_include.t --> t 00_basic_include.t \ No newline at end of file --- 1,3 ---- --- App.pm DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 03:34:48
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Manage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29908/lib/OpenInteract2/Manage Modified Files: Website.pm Log Message: don't use modified names for package bricks Index: Website.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Manage/Website.pm,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** Website.pm 2 Feb 2005 16:16:51 -0000 1.23 --- Website.pm 1 Mar 2005 03:34:37 -0000 1.24 *************** *** 92,100 **** sub _install_packages_from_bricks { my ( $self, $website_dir, $package_names ) = @_; ! foreach my $name ( @{ $package_names } ) { ! my $brick_name = 'pkg_' . $name; ! my $brick = OpenInteract2::Brick->new( $brick_name ); ! foreach my $pkg_name ( $brick->list_resources ) { ! my $pkg_info = $brick->load_resource( $pkg_name ); my $pkg_file = OpenInteract2::Util->decode_base64_and_store( \$pkg_info->{content} --- 92,99 ---- sub _install_packages_from_bricks { my ( $self, $website_dir, $package_names ) = @_; ! foreach my $pkg_name ( @{ $package_names } ) { ! my $brick = OpenInteract2::Brick->new( $pkg_name ); ! foreach my $resource_name ( $brick->list_resources ) { ! my $pkg_info = $brick->load_resource( $resource_name ); my $pkg_file = OpenInteract2::Util->decode_base64_and_store( \$pkg_info->{content} |
From: Chris W. <la...@us...> - 2005-03-01 03:33:39
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Manage/Package In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29670/lib/OpenInteract2/Manage/Package Modified Files: CreateCPAN.pm Log Message: app class no longer needed Index: CreateCPAN.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Manage/Package/CreateCPAN.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CreateCPAN.pm 8 Feb 2005 01:37:18 -0000 1.1 --- CreateCPAN.pm 1 Mar 2005 03:33:29 -0000 1.2 *************** *** 75,79 **** my $subclass_name = $package->name_as_class; - my $app_class_name = "OpenInteract2::App::$subclass_name"; my $brick_class_name = "OpenInteract2::Brick::$subclass_name"; --- 75,78 ---- *************** *** 105,109 **** package_name => $package->name, brick_name => $package->name, - full_app_class => $app_class_name, full_brick_class => $brick_class_name, subclass => $subclass_name, --- 104,107 ---- |
From: Chris W. <la...@us...> - 2005-03-01 03:31:53
|
Update of /cvsroot/openinteract/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29085 Modified Files: MANIFEST Log Message: update package bricks to new names Index: MANIFEST =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/MANIFEST,v retrieving revision 1.117 retrieving revision 1.118 diff -C2 -d -r1.117 -r1.118 *** MANIFEST 26 Feb 2005 23:31:24 -0000 1.117 --- MANIFEST 1 Mar 2005 03:31:40 -0000 1.118 *************** *** 35,54 **** lib/OpenInteract2/Brick/Apache.pm lib/OpenInteract2/Brick/Apache2.pm ! lib/OpenInteract2/Brick/AppBase.pm ! lib/OpenInteract2/Brick/AppBaseBox.pm ! lib/OpenInteract2/Brick/AppBaseError.pm ! lib/OpenInteract2/Brick/AppBaseGroup.pm ! lib/OpenInteract2/Brick/AppBasePage.pm ! lib/OpenInteract2/Brick/AppBaseSecurity.pm ! lib/OpenInteract2/Brick/AppBaseTemplate.pm ! lib/OpenInteract2/Brick/AppBaseTheme.pm ! lib/OpenInteract2/Brick/AppBaseUser.pm ! lib/OpenInteract2/Brick/AppComments.pm ! lib/OpenInteract2/Brick/AppFullText.pm ! lib/OpenInteract2/Brick/AppLookup.pm ! lib/OpenInteract2/Brick/AppNews.pm ! lib/OpenInteract2/Brick/AppObjectActivity.pm ! lib/OpenInteract2/Brick/AppSystemDoc.pm ! lib/OpenInteract2/Brick/AppWhatsNew.pm lib/OpenInteract2/Brick/CGI.pm lib/OpenInteract2/Brick/Daemon.pm --- 35,54 ---- lib/OpenInteract2/Brick/Apache.pm lib/OpenInteract2/Brick/Apache2.pm ! lib/OpenInteract2/Brick/Base.pm ! lib/OpenInteract2/Brick/BaseBox.pm ! lib/OpenInteract2/Brick/BaseError.pm ! lib/OpenInteract2/Brick/BaseGroup.pm ! lib/OpenInteract2/Brick/BasePage.pm ! lib/OpenInteract2/Brick/BaseSecurity.pm ! lib/OpenInteract2/Brick/BaseTemplate.pm ! lib/OpenInteract2/Brick/BaseTheme.pm ! lib/OpenInteract2/Brick/BaseUser.pm ! lib/OpenInteract2/Brick/Comments.pm ! lib/OpenInteract2/Brick/FullText.pm ! lib/OpenInteract2/Brick/Lookup.pm ! lib/OpenInteract2/Brick/News.pm ! lib/OpenInteract2/Brick/ObjectActivity.pm ! lib/OpenInteract2/Brick/SystemDoc.pm ! lib/OpenInteract2/Brick/WhatsNew.pm lib/OpenInteract2/Brick/CGI.pm lib/OpenInteract2/Brick/Daemon.pm *************** *** 219,222 **** --- 219,223 ---- script/oi2_manage script/translate_action_to_ini.pl + script/translate_package_to_ini.pl script/translate_spops_to_ini.pl tools/create_new_manage.pl *************** *** 305,310 **** t/use/test_file.pdf t/use/test_no_overwrite ! t/use/test_package.conf ! t/use/test_package_bad.conf t/use/test_package_bad.dat t/use/test_package_bad.pm --- 306,311 ---- t/use/test_file.pdf t/use/test_no_overwrite ! t/use/test_package.ini ! t/use/test_package_bad.ini t/use/test_package_bad.dat t/use/test_package_bad.pm *************** *** 312,316 **** t/test_pkg/MANIFEST t/test_pkg/MANIFEST.SKIP ! t/test_pkg/package.conf t/test_pkg/conf/action.ini t/test_pkg/conf/spops.ini --- 313,317 ---- t/test_pkg/MANIFEST t/test_pkg/MANIFEST.SKIP ! t/test_pkg/package.ini t/test_pkg/conf/action.ini t/test_pkg/conf/spops.ini |
From: Chris W. <la...@us...> - 2005-03-01 03:31:28
|
Update of /cvsroot/openinteract/OpenInteract2/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29019/t Modified Files: utils.pl Log Message: update package versions Index: utils.pl =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/t/utils.pl,v retrieving revision 1.95 retrieving revision 1.96 diff -C2 -d -r1.95 -r1.96 *** utils.pl 28 Feb 2005 02:26:44 -0000 1.95 --- utils.pl 1 Mar 2005 03:31:19 -0000 1.96 *************** *** 45,64 **** sub main::get_package_versions { return ( ! base => '2.14', ! base_box => '2.18', ! base_error => '3.01', ! base_group => '2.17', ! base_page => '2.29', ! base_security => '2.19', ! base_template => '3.16', ! base_theme => '2.11', ! base_user => '2.38', ! comments => '1.20', ! full_text => '2.59', ! lookup => '2.08', news => '2.21', ! object_activity => '2.12', ! system_doc => '2.09', ! whats_new => '2.11', ); } --- 45,64 ---- sub main::get_package_versions { return ( ! base => '2.15', ! base_box => '2.19', ! base_error => '3.02', ! base_group => '2.18', ! base_page => '2.20', ! base_security => '2.20', ! base_template => '3.17', ! base_theme => '2.12', ! base_user => '2.39', ! comments => '1.21', ! full_text => '2.61', ! lookup => '2.09', news => '2.21', ! object_activity => '2.13', ! system_doc => '2.10', ! whats_new => '2.12', ); } |
From: Chris W. <la...@us...> - 2005-03-01 03:29:26
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/full_text In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/full_text Modified Files: Changes MANIFEST package.ini Log Message: OIN-72: move all docs to ::App class Index: Changes =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/full_text/Changes,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** Changes 28 Feb 2005 04:29:04 -0000 1.19 --- Changes 1 Mar 2005 03:28:42 -0000 1.20 *************** *** 1,4 **** --- 1,8 ---- Revision history for OpenInteract package full_text. + 2.61 Mon Feb 28 20:33:57 EST 2005 + + OIN-72: move docs from doc/ into OI2::App class + 2.60 Sun Feb 27 21:47:57 EST 2005 Index: MANIFEST =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/full_text/MANIFEST,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** MANIFEST 28 Feb 2005 00:55:40 -0000 1.7 --- MANIFEST 1 Mar 2005 03:28:42 -0000 1.8 *************** *** 5,13 **** conf/action.ini conf/spops_full_text_mapping.ini - doc/full_text.pod msg/full_text-messages-en.msg OpenInteract2/FullTextMapping.pm OpenInteract2/FullTextIndexer/DBI.pm OpenInteract2/Action/SiteSearch.pm OpenInteract2/SQLInstall/FullText.pm script/add_objects_to_index.pl --- 5,13 ---- conf/action.ini conf/spops_full_text_mapping.ini msg/full_text-messages-en.msg OpenInteract2/FullTextMapping.pm OpenInteract2/FullTextIndexer/DBI.pm OpenInteract2/Action/SiteSearch.pm + OpenInteract2/App/FullText.pm OpenInteract2/SQLInstall/FullText.pm script/add_objects_to_index.pl Index: package.ini =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/full_text/package.ini,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** package.ini 28 Feb 2005 04:29:04 -0000 1.2 --- package.ini 1 Mar 2005 03:28:42 -0000 1.3 *************** *** 1,5 **** [package] name = full_text ! version = 2.60 author = Chris Winters (ch...@cw...) url = http://www.openinteract.org/ --- 1,5 ---- [package] name = full_text ! version = 2.61 author = Chris Winters (ch...@cw...) url = http://www.openinteract.org/ |
From: Chris W. <la...@us...> - 2005-03-01 03:29:26
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_theme In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_theme Modified Files: Changes MANIFEST package.ini Log Message: OIN-72: move all docs to ::App class Index: Changes =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_theme/Changes,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Changes 28 Feb 2005 00:55:41 -0000 1.12 --- Changes 1 Mar 2005 03:28:39 -0000 1.13 *************** *** 1,4 **** --- 1,8 ---- Revision history for OpenInteract package base_theme. + 2.12 Mon Feb 28 20:33:57 EST 2005 + + OIN-72: move docs from doc/ into OI2::App class + 2.11 Sun Feb 27 16:07:21 EST 2005 Index: MANIFEST =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_theme/MANIFEST,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** MANIFEST 28 Feb 2005 00:55:41 -0000 1.4 --- MANIFEST 1 Mar 2005 03:28:39 -0000 1.5 *************** *** 9,16 **** data/install_theme.dat data/install_theme_prop.dat - doc/base_theme.pod msg/base_theme-messages-en.msg OpenInteract2/Theme.pm OpenInteract2/Action/Theme.pm OpenInteract2/SQLInstall/Theme.pm struct/theme.sql --- 9,16 ---- data/install_theme.dat data/install_theme_prop.dat msg/base_theme-messages-en.msg OpenInteract2/Theme.pm OpenInteract2/Action/Theme.pm + OpenInteract2/App/BaseTheme.pm OpenInteract2/SQLInstall/Theme.pm struct/theme.sql Index: package.ini =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_theme/package.ini,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** package.ini 28 Feb 2005 00:55:41 -0000 1.1 --- package.ini 1 Mar 2005 03:28:39 -0000 1.2 *************** *** 1,5 **** [package] name = base_theme ! version = 2.11 author = Chris Winters (ch...@cw...) url = http://www.openinteract.org/ --- 1,5 ---- [package] name = base_theme ! version = 2.12 author = Chris Winters (ch...@cw...) url = http://www.openinteract.org/ |
From: Chris W. <la...@us...> - 2005-03-01 03:29:26
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_user In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_user Modified Files: Changes MANIFEST package.ini Log Message: OIN-72: move all docs to ::App class Index: Changes =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_user/Changes,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** Changes 28 Feb 2005 00:55:40 -0000 1.39 --- Changes 1 Mar 2005 03:28:40 -0000 1.40 *************** *** 1,4 **** --- 1,8 ---- Revision history for OpenInteract package base_user. + 2.39 Mon Feb 28 20:33:57 EST 2005 + + OIN-72: move docs from doc/ into OI2::App class + 2.38 Sun Feb 27 16:07:21 EST 2005 Index: MANIFEST =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_user/MANIFEST,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** MANIFEST 28 Feb 2005 00:55:40 -0000 1.8 --- MANIFEST 1 Mar 2005 03:28:40 -0000 1.9 *************** *** 9,13 **** data/install_security.dat data/install_user_language.dat - doc/base_user.pod msg/base_user-messages-en.msg msg/base_user-messages-no.msg --- 9,12 ---- *************** *** 16,19 **** --- 15,19 ---- OpenInteract2/Action/NewUser.pm OpenInteract2/Action/User.pm + OpenInteract2/App/BaseUser.pm OpenInteract2/SQLInstall/User.pm OpenInteract2/User/AuthSmb.pm Index: package.ini =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_user/package.ini,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** package.ini 28 Feb 2005 00:55:40 -0000 1.1 --- package.ini 1 Mar 2005 03:28:40 -0000 1.2 *************** *** 1,5 **** [package] name = base_user ! version = 2.38 author = Chris Winters (ch...@cw...) url = http://www.openinteract.org/ --- 1,5 ---- [package] name = base_user ! version = 2.39 author = Chris Winters (ch...@cw...) url = http://www.openinteract.org/ |