X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/4b33f145c7966710e537531261e04d2596159049..09444838209cb9fd08f799553889ff04a015e8ad:/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..a9d7c15a 100644
--- a/redmine/redmine_publications/app/controllers/publications_controller.rb
+++ b/redmine/redmine_publications/app/controllers/publications_controller.rb
@@ -1,14 +1,48 @@
-
 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
+	@match_status = []
+
+	regexp = Regexp.new(Setting.plugin_redmine_publications[:pattern])
+	Repository.all.each do |repo|
+	  repo_status = []
+	  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)
+	      repo_status += [{:path => entry.path, :match => match[1], :matched => true}]
+            else
+	      repo_status += [{:path => entry.path, :match =>nil, :matched => false}]
+	    end
+          end
+          @match_status += [{:repo => repo, :status => repo_status}]
+        end	
+	
+	respond_to do |format|	
+	  format.html
+	  format.xml { render :xml => @match_status}
+	  format.json { render :json => @match_status }
+	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 +61,10 @@ class PublicationsController < ApplicationController
 	render :text => ""
   end
 
+  private
+
+  def find_project
+    @project = Project.find(params[:project_id])
+  end
+
 end