Opcje konfguracyjne pluginu. Walidacja przy wpisywaniu publikacji do zagadnienia...
[redakcja_redmine.git] / app / controllers / publications_controller.rb
index c7d16e3..1220bea 100644 (file)
@@ -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