luis@298
|
1 require 'redmine'
|
luis@454
|
2
|
luis@945
|
3 require 'bibtex'
|
luis@945
|
4 require 'citeproc'
|
Chris@1580
|
5 require 'citeproc/ruby'
|
Chris@1580
|
6 require 'csl/styles'
|
luis@945
|
7
|
luis@454
|
8 # Patches to the Redmine core.
|
luis@1127
|
9 ActionDispatch::Callbacks.to_prepare do
|
luis@454
|
10 require_dependency 'project'
|
luis@466
|
11 require_dependency 'user'
|
luis@651
|
12 require_dependency 'mailer'
|
luis@454
|
13
|
luis@454
|
14 unless Project.included_modules.include? Bibliography::ProjectPublicationsPatch
|
luis@454
|
15 Project.send(:include, Bibliography::ProjectPublicationsPatch)
|
luis@454
|
16 end
|
luis@466
|
17
|
luis@483
|
18 unless User.included_modules.include? Bibliography::UserAuthorPatch
|
luis@483
|
19 User.send(:include, Bibliography::UserAuthorPatch)
|
luis@466
|
20 end
|
luis@649
|
21
|
luis@651
|
22 unless Mailer.included_modules.include? Bibliography::MailerPatch
|
luis@651
|
23 Mailer.send(:include, Bibliography::MailerPatch)
|
luis@649
|
24 end
|
luis@649
|
25
|
luis@1070
|
26 unless ProjectsHelper.included_modules.include?(Bibliography::ProjectsHelperPatch)
|
luis@1070
|
27 ProjectsHelper.send(:include, Bibliography::ProjectsHelperPatch)
|
luis@1068
|
28 end
|
chris@1234
|
29
|
chris@1234
|
30 unless MyHelper.included_modules.include?(Bibliography::MyHelperPatch)
|
chris@1234
|
31 MyHelper.send(:include, Bibliography::MyHelperPatch)
|
chris@1234
|
32 end
|
luis@454
|
33 end
|
luis@298
|
34
|
luis@455
|
35
|
luis@455
|
36 # Plugin Info
|
luis@298
|
37 Redmine::Plugin.register :redmine_bibliography do
|
luis@298
|
38 name 'Redmine Bibliography plugin'
|
luis@298
|
39 author 'Chris Cannam, Luis Figueira'
|
luis@455
|
40 description 'This is a bibliography management plugin for Redmine'
|
luis@298
|
41 version '0.0.1'
|
luis@298
|
42 url 'http://example.com/path/to/plugin'
|
luis@298
|
43 author_url 'http://example.com/about'
|
luis@376
|
44
|
chris@835
|
45 settings :default => { 'menu' => 'Publications' }, :partial => 'settings/bibliography'
|
luis@454
|
46
|
luis@455
|
47 project_module :redmine_bibliography do
|
luis@1087
|
48 permission :view_publication, {:publications => :show}, :public => :true
|
luis@630
|
49 permission :publications, { :publications => :index }, :public => true
|
luis@630
|
50 permission :edit_publication, {:publications => [:edit, :update]}
|
luis@630
|
51 permission :add_publication, {:publications => [:new, :create]}
|
luis@632
|
52 permission :delete_publication, {:publications => :destroy}
|
luis@632
|
53
|
luis@1087
|
54
|
luis@455
|
55 end
|
luis@454
|
56
|
luis@455
|
57 # extending the Project Menu
|
luis@456
|
58 menu :project_menu, :publications, { :controller => 'publications', :action => 'index', :path => nil }, :after => :activity, :param => :project_id, :caption => Proc.new { Setting.plugin_redmine_bibliography['menu'] },
|
luis@455
|
59 :if => Proc.new { !Setting.plugin_redmine_bibliography['menu'].blank? }
|
luis@1068
|
60
|
luis@1080
|
61 activity_provider :publication, :class_name => 'Publication', :default => true
|
luis@1080
|
62
|
luis@614
|
63 end
|
luis@1080
|
64
|
luis@1080
|
65
|
luis@1080
|
66
|