X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/275dc6c6f5c92630c9a1fca0f1830ba543cd18b7..759c804d6c3b8db0ad99dcd5d155396b29ebedd7:/redmine/redmine_publications/app/controllers/publications_controller.rb?ds=sidebyside

diff --git a/redmine/redmine_publications/app/controllers/publications_controller.rb b/redmine/redmine_publications/app/controllers/publications_controller.rb
index a9d7c15a..c7a11948 100644
--- a/redmine/redmine_publications/app/controllers/publications_controller.rb
+++ b/redmine/redmine_publications/app/controllers/publications_controller.rb
@@ -1,64 +1,54 @@
 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 = []
-
-	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	
+    regexp = Regexp.new(Setting.plugin_redmine_publications[:pattern])
+    repo = Repository.find(:first, :conditions => ['project_id = ?', Setting.plugin_redmine_publications[:project]] )
+
+    Rails.logger.info('[INFO] Importing changes from ' << repo.url)
+    Rails.logger.info('[INFO] Change list: ' << repo.changes.find(:all).inspect )
+
+    @repo_status = []
+    repo.changes.find(:all).each do |change|
+        Rails.logger.info('[INFO] Importing change ' << change.path)
+        match = change.path.match(regexp)
+        if match
+            Publication.find_or_create_by_name(:name => match[1],
+                :source_file => change.path, :repository_id => repo.id)
+              @repo_status += [{:path => change.path, :match => match[1], :matched => true}]
+        else
+              @repo_status += [{:path => change.path, :match => nil, :matched => false}]
+        end
+    end
 	
-	respond_to do |format|	
-	  format.html
-	  format.xml { render :xml => @match_status}
-	  format.json { render :json => @match_status }
-	end
+    respond_to do |format|
+        format.html
+        format.xml { render :xml => @repo_status}
+        format.json { render :json => @repo_status }
+    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