Index: openacs-4/contrib/packages/project-manager/project-manager.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/Attic/project-manager.info,v diff -u -r1.33 -r1.34 --- openacs-4/contrib/packages/project-manager/project-manager.info 14 Jul 2004 17:51:02 -0000 1.33 +++ openacs-4/contrib/packages/project-manager/project-manager.info 24 Jul 2004 08:33:49 -0000 1.34 @@ -7,14 +7,14 @@ f f - + Jade Rubick Project management tool for OpenACS - 2004-07-09 + 2004-07-19 Integrated Bakery Resources Track tasks, estimates and actual progress for a project. See the <a href="http://openacs.org/projects/dotwrk/project_management/">project page</a> for more information. - + Index: openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-table-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/sql/postgresql/Attic/project-manager-table-create.sql,v diff -u -r1.21 -r1.22 --- openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-table-create.sql 25 Jun 2004 00:04:42 -0000 1.21 +++ openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-table-create.sql 24 Jul 2004 08:33:53 -0000 1.22 @@ -191,10 +191,17 @@ task_number integer, status integer constraint pm_tasks_task_status_fk - references pm_task_status + references pm_task_status, + deleted_p char(1) default 'f' + constraint pm_tasks_deleted_p_ck + check (deleted_p in ('t','f')) ); +CREATE OR REPLACE view +pm_tasks_active as + SELECT task_id, task_number, status FROM pm_tasks where deleted_p = 'f'; + create table pm_tasks_revisions ( task_revision_id integer constraint pm_task_revs_id_fk Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/contrib/packages/project-manager/sql/postgresql/upgrade/upgrade-2.12-2.13b1.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/contrib/packages/project-manager/sql/postgresql/upgrade/upgrade-2.13b1-2.13b2.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/contrib/packages/project-manager/tcl/project-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/tcl/Attic/project-procs-postgresql.xql,v diff -u -r1.6 -r1.7 --- openacs-4/contrib/packages/project-manager/tcl/project-procs-postgresql.xql 14 Jul 2004 17:51:07 -0000 1.6 +++ openacs-4/contrib/packages/project-manager/tcl/project-procs-postgresql.xql 24 Jul 2004 08:33:54 -0000 1.7 @@ -72,12 +72,15 @@ - select - item_id, - content_type - from - cr_items - where parent_id = :project_item_id + SELECT + i.item_id, + i.content_type + FROM + cr_items i, + pm_tasks_active t + WHERE + i.item_id = t.task_id and + i.parent_id = :project_item_id @@ -88,8 +91,11 @@ sum(t.estimated_hours_work) as estimated_hours_total, to_char(current_timestamp,'J') as today_j from - pm_tasks_revisionsx t, cr_items i + pm_tasks_revisionsx t, + cr_items i, + pm_tasks_active a where + i.item_id = a.task_id and t.item_id in ([join $task_list ", "]) and i.live_revision = t.revision_id @@ -112,7 +118,7 @@ from pm_tasks_revisionsx t, cr_items i, - pm_tasks ti, + pm_tasks_active ti, pm_task_status s where t.item_id in ([join $task_list ", "]) and Index: openacs-4/contrib/packages/project-manager/tcl/task-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/tcl/Attic/task-procs.tcl,v diff -u -r1.17 -r1.18 --- openacs-4/contrib/packages/project-manager/tcl/task-procs.tcl 14 Jul 2004 17:51:08 -0000 1.17 +++ openacs-4/contrib/packages/project-manager/tcl/task-procs.tcl 24 Jul 2004 08:33:54 -0000 1.18 @@ -84,7 +84,7 @@ FROM pm_tasks_revisionsx r, cr_items i, - pm_tasks t + pm_tasks_active t WHERE r.parent_id = :project_item_id and r.revision_id = i.live_revision and @@ -577,7 +577,7 @@ ad_proc -public pm::task::delete { -task_item_id:required } { - Deletes a given task + Marks a task deleted @author Jade Rubick (jader@bread.com) @creation-date 2004-03-10 @@ -588,12 +588,33 @@ @error No error thrown if there is no such task. } { - db_exec_plsql delete_task "select pm_task__delete_task_item(:task_item_id)" + db_dml mark_delete "update pm_tasks set deleted_p = 't' where task_id = :task_item_id" + pm::project::compute_status [pm::task::project_item_id -task_item_id $task_item_id] + return 1 } +ad_proc -public pm::task::project_item_id { + -task_item_id:required +} { + Returns the project item id for a given task + + @author Jade Rubick (jader@bread.com) + @creation-date 2004-07-16 + + @param task_item_id + + @return -1 if there is an error. + + @error +} { + return [db_string get_project_id "select parent_id from cr_items where item_id = :task_item_id" -default -1] +} + + + ad_proc -public pm::task::get_url { object_id } { @@ -1185,7 +1206,7 @@ p.party_id, (select one_line from pm_roles r where ta.role_id = r.role_id) as role FROM - pm_tasks ts, + pm_tasks_active ts, pm_tasks_revisionsx t, pm_task_assignment ta, acs_users_all p, @@ -1653,24 +1674,71 @@ } { set use_uncertain_completion_times_p [parameter::get -parameter "UseUncertainCompletionTimesP" -default "1"] - if {[string equal $use_uncertain_completion_times_p 1]} { + if {[string equal $percent_complete 100]} { + return 0 + } - set display_value1 [expr round($hours_work_min * $percent_complete / 100)] - set display_value2 [expr round($hours_work_max * $percent_complete / 100)] + if {[string equal $percent_complete 0]} { + return [pm::task::estimated_hours_work \ + -hours_work $hours_work \ + -hours_work_min $hours_work_min \ + -hours_work_max $hours_work_max] + } + if {[string is true $use_uncertain_completion_times_p]} { + + set display_value1 [expr round($hours_work_min * [expr 100 - $percent_complete] / double(100))] + set display_value2 [expr round($hours_work_max * [expr 100 - $percent_complete] / double(100))] + if {[string equal $display_value1 $display_value2]} { set display_value "$display_value1" } else { set display_value "$display_value1 - $display_value2" } } else { - set display_value [expr round($hours_work * $percent_complete / 100)] + set display_value [expr round($hours_work * [expr 100 - $percent_complete] / double(100))] } return $display_value } +ad_proc -public pm::task::estimated_hours_work { + -hours_work:required + -hours_work_min:required + -hours_work_max:required +} { + Displays the total estimated hours work in a consistent format + + @author Jade Rubick (jader@bread.com) + @creation-date 2004-06-02 + + @param hours_work + + @param hours_work_min + + @param hours_work_max + + @return + + @error +} { + set use_uncertain_completion_times_p [parameter::get -parameter "UseUncertainCompletionTimesP" -default "1"] + + if {[string equal $use_uncertain_completion_times_p 1]} { + if {[string equal $hours_work_min $hours_work_max]} { + set display_value "$hours_work_min" + } else { + set display_value "$hours_work_min - $hours_work_max" + } + } else { + set display_value "$estimated_hours_work" + } + + return $display_value +} + + ad_proc -public pm::task::assignee_email_list { -task_item_id:required } { @@ -1743,7 +1811,7 @@ FROM persons u, pm_task_assignment a, - pm_tasks ts + pm_tasks_active ts WHERE u.person_id = a.party_id and ts.task_id = a.task_id and Index: openacs-4/contrib/packages/project-manager/www/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/index.adp,v diff -u -r1.20 -r1.21 --- openacs-4/contrib/packages/project-manager/www/index.adp 12 Mar 2004 13:44:44 -0000 1.20 +++ openacs-4/contrib/packages/project-manager/www/index.adp 24 Jul 2004 08:33:55 -0000 1.21 @@ -1,31 +1,38 @@ - - -@project_term@s -@context;noquote@ - - - - - - - -
- + + + @project_term@s + @context;noquote@ + + + + + + - - + + + + + +
+ +
+ Search:
+ + @hidden_vars;noquote@ + +
+ @category_select;noquote@ - + - -
- + + + + +
-
- - - Index: openacs-4/contrib/packages/project-manager/www/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/index.tcl,v diff -u -r1.19 -r1.20 --- openacs-4/contrib/packages/project-manager/www/index.tcl 14 Jul 2004 17:51:08 -0000 1.19 +++ openacs-4/contrib/packages/project-manager/www/index.tcl 24 Jul 2004 08:33:55 -0000 1.20 @@ -18,6 +18,7 @@ } { orderby_project:optional {status_id:integer,optional} + {searchterm ""} category_id:multiple,optional {format "normal"} {assignee_id:integer,optional} @@ -42,6 +43,10 @@ set project_term [parameter::get -parameter "ProjectName" -default "Project"] set project_term_lower [parameter::get -parameter "projectname" -default "project"] +set exporting_vars { status_id category_id assignee_id orderby_project format } +set hidden_vars [export_vars -form $exporting_vars] + + # set up context bar set context [list] @@ -85,22 +90,35 @@ set assignees_filter [pm::project::assignee_filter_select -status_id $status_id] +if {![empty_string_p $searchterm]} { + + if {[regexp {([0-9]+)} $searchterm match query_digits]} { + set search_term_where " (upper(p.title) like upper('%$searchterm%') + or p.item_id = :query_digits) " + } else { + set search_term_where " upper(p.title) like upper('%$searchterm%')" + } +} else { + set search_term_where "" +} + + template::list::create \ -name projects \ -multirow projects \ -key project_item_id \ -elements { - customer_name { - label "Customer" - display_template " -@projects.customer_name@@projects.customer_name@ -" - } project_name { label "Project name" link_url_col item_url link_html { title "View this project version" } } + customer_name { + label "Customer" + display_template " +@projects.customer_name@@projects.customer_name@ +" + } earliest_finish_date { label "Earliest finish" display_template "@projects.earliest_finish_date@@projects.earliest_finish_date@" @@ -123,6 +141,10 @@ narrow } \ -filters { + searchterm { + label "Search" + where_clause {$search_term_where} + } status_id { label "Status" values {[pm::status::project_status_select]} Index: openacs-4/contrib/packages/project-manager/www/one-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/one-postgresql.xql,v diff -u -r1.27 -r1.28 --- openacs-4/contrib/packages/project-manager/www/one-postgresql.xql 30 Jun 2004 16:43:29 -0000 1.27 +++ openacs-4/contrib/packages/project-manager/www/one-postgresql.xql 24 Jul 2004 08:33:55 -0000 1.28 @@ -56,7 +56,9 @@ t.estimated_hours_work, t.estimated_hours_work_min, t.estimated_hours_work_max, - t.actual_hours_worked + t.actual_hours_worked, + s.status_type, + s.description as status_description FROM (select * from pm_tasks_revisionsx LEFT JOIN @@ -70,14 +72,13 @@ pm_task_dependency d ON i.item_id = d.task_id, - pm_tasks ti, + pm_tasks_active ti, pm_task_status s WHERE t.parent_id = :project_item_id and t.revision_id = i.live_revision and t.item_id = ti.task_id and - ti.status = s.status_id and - s.status_type = :status_type + ti.status = s.status_id [template::list::orderby_clause -name tasks -orderby] Index: openacs-4/contrib/packages/project-manager/www/one.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/one.adp,v diff -u -r1.36 -r1.37 --- openacs-4/contrib/packages/project-manager/www/one.adp 11 Jun 2004 20:58:19 -0000 1.36 +++ openacs-4/contrib/packages/project-manager/www/one.adp 24 Jul 2004 08:33:55 -0000 1.37 @@ -265,9 +265,6 @@ - - - Index: openacs-4/contrib/packages/project-manager/www/one.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/one.tcl,v diff -u -r1.38 -r1.39 --- openacs-4/contrib/packages/project-manager/www/one.tcl 30 Jun 2004 21:29:30 -0000 1.38 +++ openacs-4/contrib/packages/project-manager/www/one.tcl 24 Jul 2004 08:33:55 -0000 1.39 @@ -28,7 +28,6 @@ project_id:integer,optional {orderby_subproject ""} {orderby_tasks ""} - {status_type "o"} {logger_variable_id:integer ""} {logger_days:integer "30"} @@ -76,11 +75,6 @@ -project_item_id $project_item_id] } } - status_type_exists { - if {![string equal $status_type "o"] && ![string equal $status_type "c"]} { - set status_type "o" - } - } logger_days_positive { if {$logger_days < 1} { set logger_days 1 @@ -195,12 +189,6 @@ # Tasks, using list-builder --------------------------------- -if {$use_uncertain_completion_times_p} { - set work_display_template "@tasks.estimated_hours_work_min@ - @tasks.estimated_hours_work_max@ h" -} else { - set work_display_template "@tasks.estimated_hours_work@ h" -} - set process_link "process-use?project_item_id=$project_item_id" template::list::create \ @@ -213,10 +201,7 @@ } title { label "Subject" - display_col title - display_template { - @tasks.title@ - } + display_template "@tasks.title@@tasks.title@ -- closed" } parent_task_id { label "Dep" @@ -266,11 +251,6 @@ narrow } \ -filters { - status_type { - label "Status" - values {{"Open" "o"} {"Closed" "c"}} - where_clause {s.status_type = :status_type} - } project_item_id { hide_p 1 } @@ -284,34 +264,32 @@ -orderby { default_value latest_start,asc title { - orderby_asc "title asc, task_id asc" - orderby_desc "title desc, task_id desc" + orderby_asc "status_type desc, title asc, task_id asc" + orderby_desc "status_type asc, title desc, task_id desc" default_direction asc } earliest_start { - orderby_asc "earliest_start, task_id asc, u.first_names, u.last_name" - orderby_desc "earliest_start desc, task_id desc, u.first_names, u.last_name" + orderby_asc "status_type desc, earliest_start, task_id asc, u.first_names, u.last_name" + orderby_desc "status_type asc, earliest_start desc, task_id desc, u.first_names, u.last_name" default_direction asc } earliest_finish { - orderby_asc "earliest_finish, task_id asc, u.first_names, u.last_name" - orderby_desc "earliest_finish desc, task_id desc, u.first_names, u.last_name" + orderby_asc "status_type desc, earliest_finish, task_id asc, u.first_names, u.last_name" + orderby_desc "status_type asc, earliest_finish desc, task_id desc, u.first_names, u.last_name" default_direction asc } latest_start { - orderby_asc "latest_start, task_id asc, u.first_names, u.last_name" - orderby_desc "latest_start desc, task_id desc, u.first_names, u.last_name" + orderby_asc "status_type desc, latest_start, task_id asc, u.first_names, u.last_name" + orderby_desc "status_type asc, latest_start desc, task_id desc, u.first_names, u.last_name" default_direction asc } latest_finish { - orderby_asc "latest_finish, task_id asc, u.first_names, u.last_name" - orderby_desc "latest_finish desc, task_id desc, u.first_names, u.last_name" + orderby_asc "status_type desc, latest_finish, task_id asc, u.first_names, u.last_name" + orderby_desc "status_type asc, latest_finish desc, task_id desc, u.first_names, u.last_name" default_direction asc } } \ - -orderby_name orderby_tasks \ - -html { - } + -orderby_name orderby_tasks db_multirow -extend { item_url earliest_start_pretty earliest_finish_pretty latest_start_pretty latest_finish_pretty slack_time} tasks project_tasks_query { Index: openacs-4/contrib/packages/project-manager/www/task-add-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-add-edit.tcl,v diff -u -r1.40 -r1.41 --- openacs-4/contrib/packages/project-manager/www/task-add-edit.tcl 28 Jun 2004 21:12:22 -0000 1.40 +++ openacs-4/contrib/packages/project-manager/www/task-add-edit.tcl 24 Jul 2004 08:33:56 -0000 1.41 @@ -99,9 +99,13 @@ ad_complain } } - percent_is_in_range -requires {percent_complete:integer} { - if {$percent_complete < 0 || $percent_complete > 100} { - ad_complain + percent_is_in_range { + for {set i 1} {$i <= $number} {incr i} { + if {[exists_and_not_null percent_complete($i)]} { + if {$percent_complete($i) < 0 || $percent_complete($i) > 100} { + ad_complain + } + } } } } -errors { Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/contrib/packages/project-manager/www/task-delete-postgresql.xql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/contrib/packages/project-manager/www/task-delete.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-delete.adp,v diff -u -r1.1 -r1.2 --- openacs-4/contrib/packages/project-manager/www/task-delete.adp 27 Apr 2004 00:49:29 -0000 1.1 +++ openacs-4/contrib/packages/project-manager/www/task-delete.adp 24 Jul 2004 08:33:56 -0000 1.2 @@ -1,5 +1,5 @@ @title@ @context@ - -Currently, deletion of a task is not working. + + Index: openacs-4/contrib/packages/project-manager/www/task-delete.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-delete.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/contrib/packages/project-manager/www/task-delete.tcl 27 Apr 2004 00:49:29 -0000 1.1 +++ openacs-4/contrib/packages/project-manager/www/task-delete.tcl 24 Jul 2004 08:33:56 -0000 1.2 @@ -4,6 +4,7 @@ Deletes a task + @author Chris Davis (mcd@daviesinc.com) @author Jade Rubick (jader@bread.com) @creation-date 2004-03-31 @arch-tag: af0efc2f-cf78-4f80-a484-1f52f3db6a48 @@ -15,5 +16,71 @@ } -errors { } +set package_id [ad_conn package_id] + +permission::require_permission -privilege "delete" -object_id $package_id + set title "Delete task" set context [list "Delete task"] + + +set action [template::form get_action delete_task] + +if {[string equal $action delete]} { + + pm::task::delete -task_item_id $task_item_id + ad_returnredirect -message "Task $task_item_id Deleted" "index" + +} else { + + set use_uncertain_completion_times_p [parameter::get -parameter "UseUncertainCompletionTimesP" -default "1"] + + if {[string is true $use_uncertain_completion_times_p]} { + set hours_work { + {estimated_hours_work_min:text + {label "Estimated Hours (Min)"} + } + {estimated_hours_work_max:text + {label "Estimated Hours (Max)"} + } + } + } else { + set hours_work { + {estimated_hours_work:text + {label "Estimated Hours"} + } + } + } + + + set form " + task_item_id:key + {task_title:text + {label \"Title\"} + } + {description:richtext + {label \"Description\"} + } + $hours_work + {percent_complete:text + {label \"Percent Complete\"} + } + " + + ad_form -name delete_task \ + -edit_request { + + db_1row task_query { } + + set description [list $description $mime_type] + + } \ + -mode display \ + -has_submit 1 \ + -has_edit 1 \ + -actions {{"Delete this task?" delete} {"Cancel" cancel}} \ + -cancel_url "task-one?task_id=$task_item_id" \ + -form $form + +} + Index: openacs-4/contrib/packages/project-manager/www/task-one.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-one.adp,v diff -u -r1.32 -r1.33 --- openacs-4/contrib/packages/project-manager/www/task-one.adp 14 Jul 2004 17:51:08 -0000 1.32 +++ openacs-4/contrib/packages/project-manager/www/task-one.adp 24 Jul 2004 08:33:56 -0000 1.33 @@ -163,8 +163,10 @@ Slack: @task_info.slack_time@
+ + Complete: @task_info.percent_complete@% - + Index: openacs-4/contrib/packages/project-manager/www/tasks-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/tasks-postgresql.xql,v diff -u -r1.7 -r1.8 --- openacs-4/contrib/packages/project-manager/www/tasks-postgresql.xql 3 Jun 2004 21:32:13 -0000 1.7 +++ openacs-4/contrib/packages/project-manager/www/tasks-postgresql.xql 24 Jul 2004 08:33:56 -0000 1.8 @@ -32,7 +32,7 @@ p.first_names || ' ' || p.last_name as full_name, (select one_line from pm_roles r where ta.role_id = r.role_id) as role FROM - pm_tasks ts, + pm_tasks_active ts, cr_items i, pm_tasks_revisionsx t LEFT JOIN pm_task_assignment ta Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/contrib/packages/room-reservation/sql/postgresql/upgrade/upgrade-0.1d-0.2d.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/etc/daemontools/run =================================================================== RCS file: /usr/local/cvsroot/openacs-4/etc/daemontools/run,v diff -u -r1.6 -r1.7 --- openacs-4/etc/daemontools/run 26 Apr 2004 16:18:16 -0000 1.6 +++ openacs-4/etc/daemontools/run 24 Jul 2004 08:34:02 -0000 1.7 @@ -1,9 +1,10 @@ #!/bin/sh +# give time for Postgres to come up # see http://openacs.org/forums/message-view?message_id=176100 sleep 4 exec /usr/local/aolserver/bin/nsd-postgres -it /var/lib/aolserver/service0/etc/config.tcl -u service0 -g web # For AOLserver 4 using privileged ports (usually < 1024), add the flag -# -b youraddress:yourport +# -b youraddress:yourport to the nsd command Index: openacs-4/packages/acs-authentication/tcl/authentication-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/tcl/authentication-procs.tcl,v diff -u -r1.67 -r1.68 --- openacs-4/packages/acs-authentication/tcl/authentication-procs.tcl 12 Jul 2004 14:49:34 -0000 1.67 +++ openacs-4/packages/acs-authentication/tcl/authentication-procs.tcl 24 Jul 2004 08:34:03 -0000 1.68 @@ -74,12 +74,14 @@ } ad_proc -public auth::self_registration {} { - #Check AllowSelfRegister parameter + #Check AllowSelfRegister parameter - if { ![parameter::get_from_package_key -package_key acs-authentication -parameter AllowS\elfRegister] } { - ad_maybe_redirect_for_registration + if { ![parameter::get_from_package_key \ + -package_key acs-authentication \ + -parameter AllowSelfRegister] } { + ad_maybe_redirect_for_registration } -} +} ad_proc -public auth::get_user_id { Index: openacs-4/packages/acs-content-repository/sql/oracle/content-item.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/oracle/content-item.sql,v diff -u -r1.26 -r1.27 --- openacs-4/packages/acs-content-repository/sql/oracle/content-item.sql 29 Jun 2004 10:17:35 -0000 1.26 +++ openacs-4/packages/acs-content-repository/sql/oracle/content-item.sql 24 Jul 2004 08:34:03 -0000 1.27 @@ -11,6 +11,10 @@ -- http://www.fsf.org/copyleft/gpl.html set serveroutput on size 1000000 format wrapped +create or replace view content_item_globals as + select -100 as c_root_folder_id + from dual; + create or replace package body content_item as Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-content-repository/sql/oracle/upgrade/upgrade-5.1.2d3-5.1.2d4.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-type.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-type.sql,v diff -u -r1.37 -r1.38 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-type.sql 1 Jul 2004 16:33:38 -0000 1.37 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-type.sql 24 Jul 2004 08:34:04 -0000 1.38 @@ -310,7 +310,7 @@ -- Drop the column if neccessary if drop_attribute__drop_column then execute ''alter table '' || v_table || '' drop column '' || - drop_attribute__attribute_name || '' '' || ''cascade''; + drop_attribute__attribute_name || '' cascade''; -- exception when others then -- raise_application_error(-20000, ''Unable to drop column '' || Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.1.2d1-5.1.2d2.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.1.2d2-5.1.2d3.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-lang/tcl/locale-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/tcl/locale-procs.tcl,v diff -u -r1.28 -r1.29 --- openacs-4/packages/acs-lang/tcl/locale-procs.tcl 29 Jun 2004 10:17:40 -0000 1.28 +++ openacs-4/packages/acs-lang/tcl/locale-procs.tcl 24 Jul 2004 08:34:05 -0000 1.29 @@ -287,6 +287,11 @@ set user_id [ad_conn untrusted_user_id] } + # For all the users with a user_id of 0 don't cache. + if { $user_id == 0} { + return [lang::user::site_wide_locale_not_cached $user_id] + } + # Cache for the lifetime of sessions (7 days) return [util_memoize [list lang::user::site_wide_locale_not_cached $user_id] [sec_session_timeout]] } Index: openacs-4/packages/acs-subsite/lib/login.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/lib/login.adp,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-subsite/lib/login.adp 10 Jun 2004 17:06:47 -0000 1.6 +++ openacs-4/packages/acs-subsite/lib/login.adp 24 Jul 2004 08:34:06 -0000 1.7 @@ -8,9 +8,8 @@ - - #acs-subsite.Register# - - + + #acs-subsite.Register# + Index: openacs-4/packages/acs-subsite/lib/login.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/lib/login.tcl,v diff -u -r1.22 -r1.23 --- openacs-4/packages/acs-subsite/lib/login.tcl 10 Jun 2004 17:06:47 -0000 1.22 +++ openacs-4/packages/acs-subsite/lib/login.tcl 24 Jul 2004 08:34:06 -0000 1.23 @@ -14,12 +14,11 @@ security::require_secure_conn } - set self_registration [parameter::get_from_package_key \ -package_key acs-authentication \ - -parameter AllowSelfRegister] + -parameter AllowSelfRegister \ + -default 1] - if { ![exists_and_not_null package_id] } { set subsite_id [subsite::get_element -element object_id] } Index: openacs-4/packages/acs-subsite/lib/user-new.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/lib/user-new.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-subsite/lib/user-new.tcl 10 Jun 2004 17:06:47 -0000 1.7 +++ openacs-4/packages/acs-subsite/lib/user-new.tcl 24 Jul 2004 08:34:06 -0000 1.8 @@ -63,7 +63,6 @@ } } - ad_form -extend -name register -on_request { # Populate elements from local variables @@ -92,7 +91,6 @@ } } - # Handle registration problems switch $creation_info(creation_status) { @@ -131,10 +129,6 @@ if { ![empty_string_p $next_url] } { # Add user_id and account_message to the URL - if { $creation_info(generated_pwd_p) } { - set password $creation_info(password) - } - ad_returnredirect [export_vars -base $next_url {user_id password {account_message $creation_info(account_message)}}] ad_script_abort } Index: openacs-4/packages/acs-subsite/tcl/subsite-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/tcl/subsite-procs.tcl,v diff -u -r1.25 -r1.26 --- openacs-4/packages/acs-subsite/tcl/subsite-procs.tcl 29 Jun 2004 10:17:43 -0000 1.25 +++ openacs-4/packages/acs-subsite/tcl/subsite-procs.tcl 24 Jul 2004 08:34:06 -0000 1.26 @@ -289,7 +289,26 @@ return $result } +ad_proc -public subsite::upload_allowed {} { + Verifies SolicitPortraitP parameter to ensure upload portrait + security. + @author Hector Amado (hr_amado@galileo.edu) + @creation-date 2004-06-16 +} { + + if { ![parameter::get_from_package_key -package_key acs-subsite -parameter SolicitPortraitP] } { + if { ![acs_user::site_wide_admin_p] } { + ns_log notice "user is tried to see user/portrait/upload without permission" + ad_return_forbidden \ + "Permission Denied" \ + "
+ You don't have permission to see this page. +
" + } + } +} + ad_proc subsite::util::sub_type_exists_p { object_type } { Index: openacs-4/packages/acs-subsite/www/resources/core.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/resources/core.js,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-subsite/www/resources/core.js 4 Mar 2004 18:33:22 -0000 1.5 +++ openacs-4/packages/acs-subsite/www/resources/core.js 24 Jul 2004 08:34:06 -0000 1.6 @@ -113,9 +113,8 @@ /* HTMLArea (part of Richtext Widget) Support */ function acs_initHtmlArea(editor_var, elementid) { - var config = new HTMLArea.Config(); + var config = editor_var.config; config.editorURL = "/resources/acs-templating/htmlarea/"; - editor_var = new HTMLArea(elementid, config); editor_var.generate(); return false; } Index: openacs-4/packages/acs-subsite/www/user/portrait/upload-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/user/portrait/Attic/upload-2.tcl,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-subsite/www/user/portrait/upload-2.tcl 2 Jul 2004 11:49:05 -0000 1.9 +++ openacs-4/packages/acs-subsite/www/user/portrait/upload-2.tcl 24 Jul 2004 08:34:07 -0000 1.10 @@ -12,6 +12,7 @@ {title ""} } +subsite::upload_allowed set current_user_id [auth::require_login] if [empty_string_p $user_id] { Index: openacs-4/packages/acs-subsite/www/user/portrait/upload.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/user/portrait/upload.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-subsite/www/user/portrait/upload.tcl 15 Aug 2003 21:18:13 -0000 1.3 +++ openacs-4/packages/acs-subsite/www/user/portrait/upload.tcl 24 Jul 2004 08:34:07 -0000 1.4 @@ -16,6 +16,7 @@ set current_user_id [ad_verify_and_get_user_id] if [empty_string_p $user_id] { + subsite::upload_allowed set user_id $current_user_id set admin_p 0 } else { Index: openacs-4/packages/acs-tcl/tcl/admin-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/admin-procs.tcl,v diff -u -r1.15 -r1.16 --- openacs-4/packages/acs-tcl/tcl/admin-procs.tcl 26 Jan 2004 15:39:46 -0000 1.15 +++ openacs-4/packages/acs-tcl/tcl/admin-procs.tcl 24 Jul 2004 08:34:07 -0000 1.16 @@ -25,7 +25,7 @@ if { [security::secure_conn_p] } { return "filter_ok" } - + ad_returnredirect [security::get_secure_qualified_url [ad_return_url]] # No abort since in filter Index: openacs-4/packages/acs-tcl/tcl/html-email-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/html-email-procs.tcl,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-tcl/tcl/html-email-procs.tcl 12 Jul 2004 14:49:49 -0000 1.5 +++ openacs-4/packages/acs-tcl/tcl/html-email-procs.tcl 24 Jul 2004 08:34:07 -0000 1.6 @@ -33,8 +33,11 @@ #source $r_dir/md5.tcl #source $r_dir/mime.tcl - package require mime + # Files are included, therefore there is no need for the mime + # package anymore. + # package require mime + # convert text to charset set encoding [ns_encodingforcharset $charset] if {[lsearch [encoding names] $encoding] != -1} { Index: openacs-4/packages/acs-tcl/tcl/security-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/security-procs.tcl,v diff -u -r1.33 -r1.34 --- openacs-4/packages/acs-tcl/tcl/security-procs.tcl 29 Jun 2004 10:17:44 -0000 1.33 +++ openacs-4/packages/acs-tcl/tcl/security-procs.tcl 24 Jul 2004 08:34:07 -0000 1.34 @@ -1503,6 +1503,9 @@ # Prefix with https regsub {^(?:http://)?} $secure_location {https://} secure_location + # remove port number if using nonstandard port + regexp {^(.*):(.*)?} $secure_location match secure_location port + # Add port number if non-standard set https_port [get_https_port] if { ![string equal $https_port 443] } { Index: openacs-4/packages/dotlrn/dotlrn.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/dotlrn.info,v diff -u -r1.120 -r1.121 --- openacs-4/packages/dotlrn/dotlrn.info 29 Apr 2004 15:42:50 -0000 1.120 +++ openacs-4/packages/dotlrn/dotlrn.info 24 Jul 2004 08:34:09 -0000 1.121 @@ -22,6 +22,10 @@ + + + + @@ -44,10 +48,10 @@ - - - - + + + + Index: openacs-4/packages/dotlrn/catalog/dotlrn.en_US.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/catalog/dotlrn.en_US.ISO-8859-1.xml,v diff -u -r1.36 -r1.37 --- openacs-4/packages/dotlrn/catalog/dotlrn.en_US.ISO-8859-1.xml 29 Jun 2004 10:17:53 -0000 1.36 +++ openacs-4/packages/dotlrn/catalog/dotlrn.en_US.ISO-8859-1.xml 24 Jul 2004 08:34:10 -0000 1.37 @@ -162,6 +162,7 @@ Edit Edit a User Edit Pre-approved Email Servers + Edit community parameters Edit the message below and hit "Send Email" to notify this user. Edit parameters Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/dotlrn/tcl/apm-callback-procs.tcl'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/dotlrn/tcl/community-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/tcl/community-procs.tcl,v diff -u -r1.186 -r1.187 --- openacs-4/packages/dotlrn/tcl/community-procs.tcl 29 Jun 2004 10:17:54 -0000 1.186 +++ openacs-4/packages/dotlrn/tcl/community-procs.tcl 24 Jul 2004 08:34:10 -0000 1.187 @@ -312,6 +312,21 @@ # it's children) permission::set_not_inherit -object_id $community_id + + # Grant permission to dotlrn-admin group + + set dotlrn_admin_group_id [db_string group_id_from_name " + select group_id from groups where group_name='dotlrn-admin'" -default ""] + if {![empty_string_p $dotlrn_admin_group_id] } { + + permission::grant \ + -party_id $dotlrn_admin_group_id \ + -object_id $community_id \ + -privilege "admin" + + } + + # Grant read_private_data permission to "non guest" users. dotlrn_privacy::grant_read_private_data_to_non_guests -object_id $community_id Index: openacs-4/packages/dotlrn/tcl/dotlrn-security-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/tcl/dotlrn-security-procs.tcl,v diff -u -r1.56 -r1.57 --- openacs-4/packages/dotlrn/tcl/dotlrn-security-procs.tcl 12 Jul 2004 14:49:56 -0000 1.56 +++ openacs-4/packages/dotlrn/tcl/dotlrn-security-procs.tcl 24 Jul 2004 08:34:10 -0000 1.57 @@ -105,16 +105,19 @@ ns_set put $extra_vars user_id $user_id ns_set put $extra_vars id $id - set portal_id [dotlrn::get_portal_id_from_type -type user] + set template_id [dotlrn::get_portal_id_from_type -type user] db_transaction { set_can_browse -user_id $user_id -can_browse\=$can_browse_p - # The user will start with a the default portal. - # A new one will be created when they go to configure + set portal_id [portal::create \ + -template_id $template_id \ + -name "[_ dotlrn.lt_Your_dotLRN_Workspace]" \ + $user_id] - ns_set put $extra_vars portal_id $portal_id + ns_set put $extra_vars portal_id $portal_id + # Add the relation (no need to feed in anything for object_id_one, # or two for that matter). set rel_id [relation_add \ @@ -124,7 +127,7 @@ "" \ $user_id \ ] - + dotlrn_applet::dispatch -op AddUser -list_args [list $user_id] # if the user is a member of communities (from some previous Index: openacs-4/packages/dotlrn/www/applet-add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/applet-add.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/dotlrn/www/applet-add.tcl 23 Oct 2002 12:38:39 -0000 1.7 +++ openacs-4/packages/dotlrn/www/applet-add.tcl 24 Jul 2004 08:34:10 -0000 1.8 @@ -26,6 +26,10 @@ {referer "applets"} } +#prevent this page from being called when it is not allowed +# i.e. AllowManageApplets 0 +dotlrn_portlet::is_allowed -parameter manageapplets + set community_id [dotlrn_community::get_community_id] # Check access Index: openacs-4/packages/dotlrn/www/applets.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/applets.tcl,v diff -u -r1.14 -r1.15 --- openacs-4/packages/dotlrn/www/applets.tcl 21 Oct 2003 21:53:23 -0000 1.14 +++ openacs-4/packages/dotlrn/www/applets.tcl 24 Jul 2004 08:34:10 -0000 1.15 @@ -23,6 +23,10 @@ } -query { } +#prevent this page from being called when it is not allowed +# i.e. AllowManageApplets 0 +dotlrn_portlet::is_allowed -parameter manageapplets + set community_id [dotlrn_community::get_community_id] set user_id [ad_get_user_id] set portal_id [dotlrn_community::get_portal_id -community_id $community_id] Index: openacs-4/packages/dotlrn/www/configure.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/configure.tcl,v diff -u -r1.19 -r1.20 --- openacs-4/packages/dotlrn/www/configure.tcl 12 Jul 2004 14:49:56 -0000 1.19 +++ openacs-4/packages/dotlrn/www/configure.tcl 24 Jul 2004 08:34:10 -0000 1.20 @@ -56,34 +56,6 @@ set portal_id [dotlrn::get_portal_id -user_id $user_id] - # check if the portal_id is the default_portal_id - - set default_portal_p [db_string default_portal_p { - select count(*) from dotlrn_portal_types_map where portal_id = :portal_id - }] - - - if {$default_portal_p == 1} { - # user is set as the default portal - # give the user their own portal - - - set portal_id [portal::create \ - -template_id $portal_id \ - -name "[_ dotlrn.lt_Your_dotLRN_Workspace]" \ - $user_id] - - db_exec_plsql update_user_portal_id { - update dotlrn_user_profile_rels set portal_id = :portal_id - where dotlrn_user_profile_rels.rel_id = - (select rel_id from acs_rels, dotlrn_user_types - where acs_rels.object_id_two = :user_id - and acs_rels.object_id_one = dotlrn_user_types.group_id) - } - - util_memoize_flush "dotlrn::get_portal_id_not_cached -user_id $user_id" - } - set name [portal::get_name $portal_id] set rendered_page [portal::configure -allow_theme_change_p 0 $portal_id "index"] Index: openacs-4/packages/dotlrn/www/dotlrn-main-portlet.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/dotlrn-main-portlet.adp,v diff -u -r1.38 -r1.39 --- openacs-4/packages/dotlrn/www/dotlrn-main-portlet.adp 29 Jun 2004 10:18:00 -0000 1.38 +++ openacs-4/packages/dotlrn/www/dotlrn-main-portlet.adp 24 Jul 2004 08:34:10 -0000 1.39 @@ -70,9 +70,11 @@ @communities.pretty_name@ Archived +   #dotlrn.drop_membership_link# +   #dotlrn.administer_link# Index: openacs-4/packages/dotlrn/www/dotlrn-main-portlet.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/dotlrn-main-portlet.tcl,v diff -u -r1.12 -r1.13 --- openacs-4/packages/dotlrn/www/dotlrn-main-portlet.tcl 29 Jun 2004 10:18:00 -0000 1.12 +++ openacs-4/packages/dotlrn/www/dotlrn-main-portlet.tcl 24 Jul 2004 08:34:10 -0000 1.13 @@ -35,6 +35,10 @@ set user_id [ad_conn user_id] set user_can_browse_p [dotlrn::user_can_browse_p -user_id $user_id] +set show_drop_button_p [parameter::get_from_package_key \ + -package_key dotlrn-portlet \ + -parameter AllowMembersDropGroups] + if { $show_archived_p } { set archived_clause "" } else { Index: openacs-4/packages/dotlrn/www/dotlrn-master.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/dotlrn-master.adp,v diff -u -r1.36 -r1.37 --- openacs-4/packages/dotlrn/www/dotlrn-master.adp 12 Jul 2004 14:49:56 -0000 1.36 +++ openacs-4/packages/dotlrn/www/dotlrn-master.adp 24 Jul 2004 08:34:10 -0000 1.37 @@ -1,29 +1,117 @@ - - - - - @header_stuff;noquote@ - - @context;noquote@ - @context_bar;noquote@ - @focus;noquote@ - @doc_type;noquote@ - @title;noquote@ + +<% -@navbar;noquote@ + # Copyright (C) 2001, 2002 MIT + # + # This file is part of dotLRN. + # + # dotLRN is free software; you can redistribute it and/or modify it under the + # terms of the GNU General Public License as published by the Free Software + # Foundation; either version 2 of the License, or (at your option) any later + # version. + # + # dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY + # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + # details. -
- -

@title;noquote@

+ + # /www/dotlrn-default-master.adp + # + # This is the 'default-master' template for dotlrn sites. + # + # Author: Arjun Sanyal (arjun@openforce.net), yon@openforce.net + # + # $Id$ + + +%> + + + + + +@title@ + + + +@header_stuff;noquote@ + + @attribute.key@="@attribute.value@"> + + + + + + + + + + + + + + + + + + + + + + +
@text;noquote@ + @user_name@ +
+ #dotlrn.user_portal_page_home_title# + + #dotlrn.help# + + #dotlrn.logout# +
@navbar;noquote@
+

+

+ + +

@title@

+ +

@context_bar;noquote@

+
+ + + -
-
-@navbar;noquote@ + +

+ -

+ + + + + +
@navbar;noquote@
+ + + +

+

+ +

+ +

+ +

+ + Index: openacs-4/packages/dotlrn/www/dotlrn-master.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/dotlrn-master.tcl,v diff -u -r1.32 -r1.33 --- openacs-4/packages/dotlrn/www/dotlrn-master.tcl 12 Jul 2004 14:49:56 -0000 1.32 +++ openacs-4/packages/dotlrn/www/dotlrn-master.tcl 24 Jul 2004 08:34:10 -0000 1.33 @@ -65,6 +65,7 @@ set header_img_file "[acs_root_dir]/packages/dotlrn/www/resources/logo" set header_img_alt_text "Header Logo" +set extra_spaces "" set td_align "align=\"center\" valign=\"top\"" if {[dotlrn::user_p -user_id $user_id]} { @@ -300,18 +301,33 @@ } if { $make_navbar_p } { + if {$link_control_panel} { + set link_control_panel 1 + } else { + set link_control_panel 0 + } + set extra_spaces "" set navbar [dotlrn::portal_navbar \ - -user_id $user_id \ - -link_control_panel [template::util::is_true $link_control_panel] \ - -control_panel_text $control_panel_text \ - -link_all $link_all] + -user_id $user_id \ + -link_control_panel $link_control_panel \ + -control_panel_text $control_panel_text \ + -pre_html "$extra_spaces" \ + -post_html $extra_spaces \ + -link_all $link_all + ] +} else { + set navbar "
" } if { ![info exists header_stuff] } { set header_stuff "" } +if { [info exists text] } { + set text [lang::util::localize $text] +} + # This style sheet should be moved over to an external file for performance append header_stuff "