Index: openacs-4/packages/bug-tracker/bug-tracker.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bug-tracker/bug-tracker.info,v diff -u -r1.24 -r1.25 --- openacs-4/packages/bug-tracker/bug-tracker.info 29 May 2008 14:59:43 -0000 1.24 +++ openacs-4/packages/bug-tracker/bug-tracker.info 29 May 2008 15:09:52 -0000 1.25 @@ -1,3 +1,4 @@ + @@ -12,7 +13,7 @@ Tracks bugs and features, versions and maintainers, in software projects. 2008-05-13 Musea Technologies - Bug tracking application with notifications, configurable state management, and patch upload. + Bug tracking application with notifications, configurable state management, and patch upload. Contains the best of SDM, Bugzilla, FogBUGZ, and bughost.com. 0 @@ -36,6 +37,7 @@ + Index: openacs-4/packages/bug-tracker/catalog/bug-tracker.en_US.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bug-tracker/catalog/bug-tracker.en_US.ISO-8859-1.xml,v diff -u -r1.9 -r1.10 --- openacs-4/packages/bug-tracker/catalog/bug-tracker.en_US.ISO-8859-1.xml 29 May 2008 15:01:08 -0000 1.9 +++ openacs-4/packages/bug-tracker/catalog/bug-tracker.en_US.ISO-8859-1.xml 29 May 2008 15:09:52 -0000 1.10 @@ -70,6 +70,8 @@ Component_id %component_id% not found components Components: %component_filter% + Confirm delete + Are you sure you want to delete this related file from this bug? You will not be able to undo this action. Create new Create new category type Creation Date @@ -79,9 +81,12 @@ Custom Default Delete + delete + Delete related file Deleted Description format + download Download patch content Duplicate Edit @@ -140,6 +145,7 @@ %next_bug_num% of %all_bugs% No %patches_name%. You don't have permission to '%action.pretty_name%' on bug #%bug_id% "%bug.summary%" + No related files No selected bugs. Couldn't find user in database None @@ -182,10 +188,21 @@ Priority codes Name Project administration + properties Reassign Reassigned Refuse Refused + A related file (%filename%) was deleted from this %bug_pretty%. + Description + File + File is required + Filename + A file (%filename%) was uploaded to this %bug_pretty%. <br><br> Description:<br> %description% + Related file not found + Related File Properties + A new revision (%filename%) for a file (%old_filename%) was uploaded to this %bug_pretty%. <br><br> Description:<br> %description% + Related Files Release Version Release this version @@ -263,7 +280,10 @@ Unsubscribe from %pretty_name%" "<# Subscribe to %pretty_name% Unsubscribe to notifications for activity on this %bug_name% + Upload new revision of related file (%filename%) + upload new version Upload a patch + Upload related file Use default setup User Agent Version Index: openacs-4/packages/bug-tracker/tcl/bug-tracker-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bug-tracker/tcl/bug-tracker-procs.tcl,v diff -u -r1.35 -r1.36 --- openacs-4/packages/bug-tracker/tcl/bug-tracker-procs.tcl 29 May 2008 14:59:43 -0000 1.35 +++ openacs-4/packages/bug-tracker/tcl/bug-tracker-procs.tcl 29 May 2008 15:09:52 -0000 1.36 @@ -1296,6 +1296,8 @@ if [db_0or1row instance_info { *SQL* } ] { set folder_id [content::folder::new -name "bug_tracker_$project_id" -package_id $project_id] content::folder::register_content_type -folder_id $folder_id -content_type {bt_bug_revision} -include_subtypes t + content::folder::register_content_type -folder_id $folder_id -content_type "content_revision" + content::folder::register_content_type -folder_id $folder_id -content_type "image" set keyword_id [content::keyword::new -heading "$instance_name"] @@ -1378,3 +1380,49 @@ -package_id $package_id \ -workflow_id $workflow_id]] } + +##### +# +# Related Files +# +##### + +ad_proc bug_tracker::related_files_p {} { + Is the related files submission feature turned on? +} { + return [parameter::get -package_id [ad_conn package_id] -parameter "RelatedFilesP" -default 1] +} + +ad_proc bug_tracker::get_related_files_links { + {-bug_id:required} +} { + set related_files_list [list] + set user_id [ad_conn user_id] + set admin_p [permission::permission_p \ + -party_id $user_id \ + -object_id [ad_conn package_id] \ + -privilege "admin"] + set return_url [ad_return_url] + + db_foreach get_related_files_for_bug {} { + set view_url [export_vars -base related-file-download {bug_id related_object_id {t $related_revision_id}}] + set properties_url [export_vars -base "related-file-properties" {bug_id related_object_id}] + set delete_url [export_vars -base "related-file-delete" {bug_id related_object_id return_url}] + set new_version_url [export_vars -base "related-file-update" {bug_id related_object_id return_url}] + if { ( $related_creation_user == $user_id ) || $admin_p } { + set extra_actions " | [_ bug-tracker.upload_new_version] | [_ bug-tracker.delete]" + } else { + set extra_actions "" + } + lappend related_files_list "$related_title [_ bug-tracker.download] | [_ bug-tracker.properties]${extra_actions}" + } if_no_rows { + set related_files_string [_ bug-tracker.No_related_files] + } + + if { [llength $related_files_list] != 0 } { + set related_files_string [join $related_files_list "
"] + } + + return $related_files_string +} + Index: openacs-4/packages/bug-tracker/tcl/bug-tracker-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bug-tracker/tcl/bug-tracker-procs.xql,v diff -u -r1.6 -r1.7 --- openacs-4/packages/bug-tracker/tcl/bug-tracker-procs.xql 25 Feb 2005 17:08:11 -0000 1.6 +++ openacs-4/packages/bug-tracker/tcl/bug-tracker-procs.xql 29 May 2008 15:09:52 -0000 1.7 @@ -221,6 +221,25 @@ - + + + select l.rel_id, + l.object_id_two as related_object_id, + r.title as related_title, + i.name as related_name, + o.creation_user as related_creation_user, + r.revision_id as related_revision_id + from acs_data_links l, + cr_items i, + cr_revisions r, + acs_objects o + where l.object_id_one = :bug_id + and l.object_id_two = i.item_id + and r.revision_id = i.live_revision + and i.item_id = o.object_id + and (i.content_type = 'content_revision' or i.content_type = 'image') + order by l.object_id_two + + Index: openacs-4/packages/bug-tracker/tcl/install-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bug-tracker/tcl/install-procs.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/packages/bug-tracker/tcl/install-procs.tcl 13 Jan 2005 13:56:16 -0000 1.4 +++ openacs-4/packages/bug-tracker/tcl/install-procs.tcl 29 May 2008 15:09:52 -0000 1.5 @@ -65,6 +65,12 @@ workflow::case::state_changed_handler -case_id $case_id } } + 1.4d3 1.4d4 { + db_foreach select_folder_ids {} { + content::folder::register_content_type -folder_id $folder_id -content_type "content_revision" + content::folder::register_content_type -folder_id $folder_id -content_type "image" + } + } } } Index: openacs-4/packages/bug-tracker/tcl/install-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bug-tracker/tcl/install-procs.xql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/bug-tracker/tcl/install-procs.xql 13 Jan 2005 13:56:16 -0000 1.2 +++ openacs-4/packages/bug-tracker/tcl/install-procs.xql 29 May 2008 15:09:52 -0000 1.3 @@ -16,4 +16,11 @@ + + + select folder_id + from bt_projects + + + Index: openacs-4/packages/bug-tracker/www/bug.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bug-tracker/www/bug.tcl,v diff -u -r1.38 -r1.39 --- openacs-4/packages/bug-tracker/www/bug.tcl 1 Mar 2005 00:01:26 -0000 1.38 +++ openacs-4/packages/bug-tracker/www/bug.tcl 29 May 2008 15:09:52 -0000 1.39 @@ -39,6 +39,8 @@ # Paches enabled for this project? set patches_p [bug_tracker::patches_p] +# Does project allow upload of related files? +set related_files_p [bug_tracker::related_files_p] ##### # @@ -186,6 +188,10 @@ # More fixed form elements ad_form -extend -name bug -form { + {related_files:text(inform) + {label "[_ bug-tracker.Related_Files]"} + {mode display} + } {patches:text(inform) {label $patch_label} {mode display} @@ -300,6 +306,9 @@ # Display value for patches set bug(patches_display) "[bug_tracker::get_patch_links -bug_id $bug(bug_id) -show_patch_status $show_patch_status]   \[ [_ bug-tracker.Upload_Patch] \]" + # Display value for related files + set bug(related_files_display) "[bug_tracker::get_related_files_links -bug_id $bug(bug_id)]
\[ [_ bug-tracker.Upload_related_file] \]" + # Hide elements that should be hidden depending on the bug status foreach element $bug(hide_fields) { element set_properties bug $element -widget hidden @@ -321,6 +330,14 @@ } } + if { !$related_files_p } { + foreach element { related_files } { + if { [info exists bug:$element] } { + element set_properties bug $element -widget hidden + } + } + } + # Optionally hide user agent if { !$user_agent_p } { element set_properties bug user_agent -widget hidden @@ -357,6 +374,7 @@ # Set values for elements with separate display value foreach element { patches + related_files } { # check that the element exists if { [info exists bug:$element] } {