X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/4b33f145c7966710e537531261e04d2596159049..df8c4d03972096be278e9143a773e20697f5ba5e:/redmine/redmine_publications/app/controllers/publications_controller.rb diff --git a/redmine/redmine_publications/app/controllers/publications_controller.rb b/redmine/redmine_publications/app/controllers/publications_controller.rb index c7d16e3f..1220bea1 100644 --- a/redmine/redmine_publications/app/controllers/publications_controller.rb +++ b/redmine/redmine_publications/app/controllers/publications_controller.rb @@ -1,14 +1,35 @@ - class PublicationsController < ApplicationController unloadable - @@source_file_field_id = 1 +# before_filter :authorize, :only => [:issues] + + def index + @publications = Publication.all + respond_to do |format| + format.html + format.xml { render :xml => @publications } + format.json { render :json => @publications } + end + end + + def refresh + regexp = Regexp.new(Setting.plugin_redmine_publications['pattern']) + Repository.all.each do |repo| + repo.entries.each do |entry| + match = entry.path.match(regexp) + if match + Publication.find_or_create_by_name(:name => match[1], + :source_file => entry.path, :repository_id => repo.id) + end + end + end + end def issues - logger.info "Searching for issues with document name = " + params[:pub] + "." - joins = "JOIN issue_publications ON (issues.id = issue_publications.issue_id) JOIN publications ON (issue_publications.publication_id = publications.id)" + @publication = Publication.find_by_name(params[:pub]) - conditions = ['publications.source_file = ? ', params[:pub] ] + joins = "JOIN issue_publications ON (issues.id = issue_publications.issue_id)" + conditions = ['issue_publications.publication_id = ? ', @publication.id ] @issues = Issue.all(:joins => joins, :conditions => conditions) respond_to do |format| format.html @@ -27,4 +48,10 @@ class PublicationsController < ApplicationController render :text => "" end + private + + def find_project + @project = Project.find(params[:project_id]) + end + end