luis@298: require 'redmine' luis@454: luis@945: require 'bibtex' luis@945: require 'citeproc' Chris@1580: require 'citeproc/ruby' Chris@1580: require 'csl/styles' luis@945: luis@454: # Patches to the Redmine core. luis@1127: ActionDispatch::Callbacks.to_prepare do luis@454: require_dependency 'project' luis@466: require_dependency 'user' luis@651: require_dependency 'mailer' luis@454: luis@454: unless Project.included_modules.include? Bibliography::ProjectPublicationsPatch luis@454: Project.send(:include, Bibliography::ProjectPublicationsPatch) luis@454: end luis@466: luis@483: unless User.included_modules.include? Bibliography::UserAuthorPatch luis@483: User.send(:include, Bibliography::UserAuthorPatch) luis@466: end luis@649: luis@651: unless Mailer.included_modules.include? Bibliography::MailerPatch luis@651: Mailer.send(:include, Bibliography::MailerPatch) luis@649: end luis@649: luis@1070: unless ProjectsHelper.included_modules.include?(Bibliography::ProjectsHelperPatch) luis@1070: ProjectsHelper.send(:include, Bibliography::ProjectsHelperPatch) luis@1068: end chris@1234: chris@1234: unless MyHelper.included_modules.include?(Bibliography::MyHelperPatch) chris@1234: MyHelper.send(:include, Bibliography::MyHelperPatch) chris@1234: end luis@454: end luis@298: luis@455: luis@455: # Plugin Info luis@298: Redmine::Plugin.register :redmine_bibliography do luis@298: name 'Redmine Bibliography plugin' luis@298: author 'Chris Cannam, Luis Figueira' luis@455: description 'This is a bibliography management plugin for Redmine' luis@298: version '0.0.1' luis@298: url 'http://example.com/path/to/plugin' luis@298: author_url 'http://example.com/about' luis@376: chris@835: settings :default => { 'menu' => 'Publications' }, :partial => 'settings/bibliography' luis@454: luis@455: project_module :redmine_bibliography do luis@1087: permission :view_publication, {:publications => :show}, :public => :true luis@630: permission :publications, { :publications => :index }, :public => true luis@630: permission :edit_publication, {:publications => [:edit, :update]} luis@630: permission :add_publication, {:publications => [:new, :create]} luis@632: permission :delete_publication, {:publications => :destroy} luis@632: luis@1087: luis@455: end luis@454: luis@455: # extending the Project Menu luis@456: 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: :if => Proc.new { !Setting.plugin_redmine_bibliography['menu'].blank? } luis@1068: luis@1080: activity_provider :publication, :class_name => 'Publication', :default => true luis@1080: luis@614: end luis@1080: luis@1080: luis@1080: