X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/94ebe35e591f338c0a6a6ad3a63deed6e4f4fc11..352b8591bd1c7163835a6fa1db34d3e2861c1071:/redmine/redmine_publications/app/controllers/publications_controller.rb?ds=inline diff --git a/redmine/redmine_publications/app/controllers/publications_controller.rb b/redmine/redmine_publications/app/controllers/publications_controller.rb index 7b4164c8..ebf735b9 100644 --- a/redmine/redmine_publications/app/controllers/publications_controller.rb +++ b/redmine/redmine_publications/app/controllers/publications_controller.rb @@ -1,62 +1,59 @@ class PublicationsController < ApplicationController unloadable -# before_filter :authorize, :only => [:issues] + # 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 + respond_to do |format| + format.html + format.xml { render :xml => @publications } + format.json { render :json => @publications } + end end def refresh - @match_status = [] + @match_status = [] - regexp = Regexp.new(Setting.plugin_redmine_publications[:pattern]) - Repository.all.each do |repo| - repo.entries.each do |entry| - match = entry.path.match(regexp) + regexp = Regexp.new(Setting.plugin_redmine_publications[:pattern]) + Publication.delete_all() + repos = Repository.all + if repos + repos.each do |repo| + repo_status = [] + if repo.entries + 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) - @match_status += [{:path => entry.path, :match => match[1], :matched => true}] + Publication.find_or_create_by_name(:name => match[1], + :source_file => entry.path, :repository_id => repo.id) + repo_status += [{:path => entry.path, :match => match[1], :matched => true}] else - @match_status += [{:path => entry.path, :match =>nil, :matched => false}] - end + repo_status += [{:path => entry.path, :match =>nil, :matched => false}] + end end - end + @match_status += [{:repo => repo, :status => repo_status}] + end + end - respond_to do |format| - format.html - format.xml { render :xml => @publications } - format.json { render :json => @publications } - end + respond_to do |format| + format.html + format.xml { render :xml => @match_status} + format.json { render :json => @match_status } + end + end end def issues - @publication = Publication.find_by_name(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 - format.xml do - render :xml => @issues - end + @publication = Publication.find_by_name(params[:pub]) - format.json do - headers['Content-Type'] = 'application/json' - render :json => @issues - end - end - end + 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) - def redirect_to_platform - render :text => "" + respond_to do |fmt| + fmt.json { render :json => @issues, :callback => params[:callback] } + end end private