# HG changeset patch # User luisf # Date 1319559042 -3600 # Node ID e3e958595e07379c8cc8ac55355e0fcc9625006d # Parent 386fcfd7459f5ab94773a706b2a243c345ccd061 added new files for hooks; modified redmine tags init file so that patches are loaded. diff -r 386fcfd7459f -r e3e958595e07 vendor/plugins/redmine_tags/app/views/projects/_tags.html.erb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/plugins/redmine_tags/app/views/projects/_tags.html.erb Tue Oct 25 17:10:42 2011 +0100 @@ -0,0 +1,8 @@ +BAHAUS + +<% unless project.tag_list.empty? %> + + <%=l(:tags)%>: + <%= project.tag_counts.collect{ |t| render_tag_link(t, :show_count => false, :open_only => false) }.join(', ') %> + +<% end %> diff -r 386fcfd7459f -r e3e958595e07 vendor/plugins/redmine_tags/assets/javascripts/tags_input.js --- a/vendor/plugins/redmine_tags/assets/javascripts/tags_input.js Mon Oct 24 15:28:29 2011 +0100 +++ b/vendor/plugins/redmine_tags/assets/javascripts/tags_input.js Tue Oct 25 17:10:42 2011 +0100 @@ -92,3 +92,8 @@ function observeIssueTagsField(url) { new Redmine.TagsInput('issue_tag_list').autocomplete('issue_tag_candidates', url); } + + +function observeProjectTagsField(url) { + new Redmine.TagsInput('project_tag_list').autocomplete('project_tag_candidates', url); +} \ No newline at end of file diff -r 386fcfd7459f -r e3e958595e07 vendor/plugins/redmine_tags/init.rb --- a/vendor/plugins/redmine_tags/init.rb Mon Oct 24 15:28:29 2011 +0100 +++ b/vendor/plugins/redmine_tags/init.rb Tue Oct 25 17:10:42 2011 +0100 @@ -41,6 +41,10 @@ require 'dispatcher' Dispatcher.to_prepare :redmine_tags do + unless Project.included_modules.include?(RedmineTags::Patches::ProjectPatch) + Project.send(:include, RedmineTags::Patches::ProjectPatch) + end + unless Issue.included_modules.include?(RedmineTags::Patches::IssuePatch) Issue.send(:include, RedmineTags::Patches::IssuePatch) end @@ -65,3 +69,5 @@ require 'redmine_tags/hooks/model_issue_hook' require 'redmine_tags/hooks/views_issues_hook' +require 'redmine_tags/hooks/views_projects_hook' + diff -r 386fcfd7459f -r e3e958595e07 vendor/plugins/redmine_tags/lib/redmine_tags/hooks/views_projects_hook.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/plugins/redmine_tags/lib/redmine_tags/hooks/views_projects_hook.rb Tue Oct 25 17:10:42 2011 +0100 @@ -0,0 +1,10 @@ +module RedmineTags + module Hooks + class ViewsProjectsHook < Redmine::Hook::ViewListener + render_on :view_projects_show_left, :partial => 'projects/tags' +# render_on :view_issues_form_details_bottom, :partial => 'issues/tags_form' +# render_on :view_issues_sidebar_planning_bottom, :partial => 'issues/tags_sidebar' + end + end +end + diff -r 386fcfd7459f -r e3e958595e07 vendor/plugins/redmine_tags/lib/redmine_tags/patches/project_patch.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/plugins/redmine_tags/lib/redmine_tags/patches/project_patch.rb Tue Oct 25 17:10:42 2011 +0100 @@ -0,0 +1,53 @@ +# C4DM + +require_dependency 'project' + +module RedmineTags + module Patches + module ProjectPatch + def self.included(base) + base.extend(ClassMethods) + + base.class_eval do + unloadable + acts_as_taggable + end + end + + module ClassMethods + # Returns available issue tags + # === Parameters + # * options = (optional) Options hash of + # * project - Project to search in. + # * open_only - Boolean. Whenever search within open issues only. + # * name_like - String. Substring to filter found tags. + def available_tags(options = {}) + project = options[:project] + open_only = options[:open_only] + name_like = options[:name_like] + options = {} + visible = ARCondition.new + + if project + project = project.id if project.is_a? Project + visible << ["#{Issue.table_name}.project_id = ?", project] + end + + if open_only + visible << ["#{Issue.table_name}.status_id IN " + + "( SELECT issue_status.id " + + " FROM #{IssueStatus.table_name} issue_status " + + " WHERE issue_status.is_closed = ? )", false] + end + + if name_like + visible << ["#{ActsAsTaggableOn::Tag.table_name}.name LIKE ?", "%#{name_like.downcase}%"] + end + + options[:conditions] = visible.conditions + self.all_tag_counts(options) + end + end + end + end +end