Index: openacs-4/packages/logger/www/log.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/log.adp,v diff -u -r1.7 -r1.7.4.1 --- openacs-4/packages/logger/www/log.adp 9 May 2003 11:04:43 -0000 1.7 +++ openacs-4/packages/logger/www/log.adp 13 May 2003 10:09:56 -0000 1.7.4.1 @@ -53,12 +53,19 @@ -

Log history for the past @log_history_n_days@ days

+

Log history (@start_date_ansi@ to @end_date_ansi@)

+

+ The log history is + shown @log_history_n_days@ back from your last logged entry, or @log_history_n_days@ back from + today if you have no previously logged entries. +

+
Index: openacs-4/packages/logger/www/log.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/log.tcl,v diff -u -r1.9 -r1.9.4.1 --- openacs-4/packages/logger/www/log.tcl 9 May 2003 15:07:48 -0000 1.9 +++ openacs-4/packages/logger/www/log.tcl 13 May 2003 10:09:56 -0000 1.9.4.1 @@ -33,37 +33,6 @@ ad_script_abort } -# Different page title and form mode when adding a log entry -# versus displaying/editing one -if { [exists_and_not_null entry_id] } { - # Initial request in display or edit mode or a submit of the form - set page_title "Edit Log Entry" - set ad_form_mode edit -} else { - # Initial request in add mode - set page_title "Add Log Entry" - set ad_form_mode edit -} - -set context [list $page_title] - -# Build the log entry form elements -set actions [list] -if { $entry_exists_p && [permission::permission_p -object_id $entry_id -privilege write] } { - lappend actions { Edit formbuilder::edit } -} -lappend actions { Done done } - -ad_form -name log_entry_form -cancel_url index -mode $ad_form_mode \ - -actions $actions -form { - entry_id:key(acs_object_id_seq) -} - -# On various occasions we need to know if we are dealing with a submit with the -# form or an initial request (could also be with error message after unaccepted submit) -set submit_p [form is_valid log_entry_form] - - ########### # # Get project and variable info @@ -102,6 +71,49 @@ # ########### +# The creator of a log entry can always edit it +if { $entry_exists_p } { + set edit_p [expr [permission::permission_p -object_id $entry_id -privilege edit] || \ + $current_user_id == $entry_array(creation_user)] +} else { + set edit_p 0 +} + +# Different page title and form mode when adding a log entry +# versus displaying/editing one +if { [exists_and_not_null entry_id] } { + # Initial request in display or edit mode or a submit of the form + set page_title "Edit Log Entry" + if { $edit_p } { + set ad_form_mode edit + } else { + set ad_form_mode display + } +} else { + # Initial request in add mode + set page_title "Add Log Entry" + set ad_form_mode edit +} + +set context [list $page_title] + + +# Build the log entry form elements +set actions [list] +if { $edit_p } { + lappend actions { Edit formbuilder::edit } +} +lappend actions { Done done } + +ad_form -name log_entry_form -cancel_url index -mode $ad_form_mode \ + -actions $actions -form { + entry_id:key(acs_object_id_seq) +} + +# On various occasions we need to know if we are dealing with a submit with the +# form or an initial request (could also be with error message after unaccepted submit) +set submit_p [form is_valid log_entry_form] + ad_form -extend -name log_entry_form -form { {project:text(inform) {label Project} @@ -215,12 +227,41 @@ set show_log_history_p [expr $entry_edited_by_owner_p || ! $entry_exists_p] -set log_history_n_days 31 -set seconds_per_day [expr 60*60*24] -set start_date_seconds [expr [clock seconds] - $log_history_n_days * $seconds_per_day] -set start_date_ansi [clock format $start_date_seconds \ - -format "%Y-%m-%d"] +if { $show_log_history_p } { + # Show N number of days previous to the last logged entry by the user + set ansi_format_string "%Y-%m-%d" + set last_logged_date [db_string last_logged_date { + select to_char(le.time_stamp, 'YYYY-MM-DD') + from logger_entries le, + acs_objects ao + where le.entry_id = ao.object_id + and le.variable_id = :variable_id + and le.project_id = :project_id + and ao.creation_user = :current_user_id + and ao.creation_date = (select max(ao.creation_date) + from logger_entries le, + acs_objects ao + where le.entry_id = ao.object_id + and le.variable_id = :variable_id + and le.project_id = :project_id + and ao.creation_user = :current_user_id + ) + } -default ""] + if { ![empty_string_p $last_logged_date] } { + set end_date_ansi $last_logged_date + set end_date_seconds [clock scan $end_date_ansi] + } else { + # Default end date to now + set end_date_seconds [clock seconds] + set end_date_ansi [clock format $end_date_seconds -format $ansi_format_string] + } + set log_history_n_days 31 + set seconds_per_day [expr 60*60*24] + set start_date_seconds [expr $end_date_seconds - $log_history_n_days * $seconds_per_day] + set start_date_ansi [clock format $start_date_seconds \ + -format $ansi_format_string] +} set add_entry_url "log?[export_vars { project_id variable_id }]" Index: openacs-4/packages/logger/www/lib/entries-table-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/lib/Attic/entries-table-oracle.xql,v diff -u -r1.1 -r1.1.4.1 --- openacs-4/packages/logger/www/lib/entries-table-oracle.xql 8 May 2003 13:56:20 -0000 1.1 +++ openacs-4/packages/logger/www/lib/entries-table-oracle.xql 13 May 2003 10:10:36 -0000 1.1.4.1 @@ -6,7 +6,8 @@ select le.entry_id as id, - acs_permission.permission_p(le.entry_id, :user_id, 'delete') as delete_p, + acs_permission.permission_p(le.entry_id, :current_user_id, 'delete') as delete_p, + acs_permission.permission_p(le.entry_id, :current_user_id, 'edit') as edit_p, le.time_stamp, to_char(le.time_stamp, 'fmMMfm-fmDDfm-YYYY') as time_stamp_pretty, le.value, Index: openacs-4/packages/logger/www/lib/entries-table-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/lib/Attic/entries-table-postgresql.xql,v diff -u -r1.1 -r1.1.4.1 --- openacs-4/packages/logger/www/lib/entries-table-postgresql.xql 8 May 2003 13:56:20 -0000 1.1 +++ openacs-4/packages/logger/www/lib/entries-table-postgresql.xql 13 May 2003 10:10:36 -0000 1.1.4.1 @@ -6,7 +6,8 @@ select le.entry_id as id, - acs_permission__permission_p(le.entry_id, :user_id, 'delete') as delete_p, + acs_permission__permission_p(le.entry_id, :current_user_id, 'delete') as delete_p, + acs_permission__permission_p(le.entry_id, :current_user_id, 'edit') as edit_p, le.time_stamp, to_char(le.time_stamp, 'fmMMfm-fmDDfm-YYYY') as time_stamp_pretty, le.value, Index: openacs-4/packages/logger/www/lib/entries-table.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/lib/Attic/entries-table.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/logger/www/lib/entries-table.adp 8 May 2003 13:56:20 -0000 1.4 +++ openacs-4/packages/logger/www/lib/entries-table.adp 13 May 2003 10:10:36 -0000 1.4.2.1 @@ -27,13 +27,20 @@ - Edit + + Edit + @entries.project_name@ @entries.user_chunk@ @entries.time_stamp_pretty@ - @entries.value@ + + @entries.value@ + + + @entries.value@ + @entries.description@ Index: openacs-4/packages/logger/www/lib/entries-table.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/lib/Attic/entries-table.tcl,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/logger/www/lib/entries-table.tcl 9 May 2003 11:05:02 -0000 1.5 +++ openacs-4/packages/logger/www/lib/entries-table.tcl 13 May 2003 10:10:36 -0000 1.5.2.1 @@ -9,7 +9,7 @@ # end_date_ansi # projection_value -set user_id [ad_conn user_id] +set current_user_id [ad_conn user_id] set package_id [ad_conn package_id] set where_clauses [list] @@ -51,12 +51,12 @@ set value_total 0 set value_count 0 -db_multirow -extend { edit_url delete_url delete_onclick user_chunk selected_p } entries select_entries {} { +db_multirow -extend { entry_url delete_url delete_onclick user_chunk selected_p } entries select_entries {} { set description [string_truncate -len 50 $description] set project_name [string_truncate -len 20 $project_name] set selected_p [string equal $id $selected_entry_id] set action_links_list [list] - set edit_url "log?[export_vars { { entry_id $id } }]" + set entry_url "log?[export_vars { { entry_id $id } }]" if { $delete_p } { set delete_onclick "return confirm('Are you sure you want to delete log entry with $value $variable(unit) $variable(name) on $time_stamp?');" set delete_url "log-delete?[export_vars { { entry_id $id } }]"