Revision 1450:020bc7fe7a2a plugins/redmine_bibliography

View differences:

plugins/redmine_bibliography/app/controllers/publications_controller.rb
203 203
    # todo: make sure query works with both pgres and mysql ~lf.20131010
204 204
    authors_list = Author.joins(:authorships).where("LOWER(authorships.name_on_paper) LIKE LOWER(?)", "%#{params[:term]}%").uniq
205 205

  
206
    users_list = User.active.like(params[:term]).find(:all, :limit => 100)
206
    # name_like scope, defined in lib/user_author patch
207
    users_list = User.active.name_like(params[:term]).find(:all, :limit => 100)
207 208

  
208 209
    logger.debug "Query for \"#{params[:term]}\" returned \"#{authors_list.size}\" authors and \"#{users_list.size}\" users"
209 210

  
plugins/redmine_bibliography/app/views/projects/show.html.erb
58 58
		<%= textilizable @project.description %>
59 59
	</div>	
60 60
  <% end %>
61
	<ul>
62
	<% unless @project.homepage.blank? %><li><%=l(:field_homepage)%>: <%= link_to h(@project.homepage), @project.homepage %></li><% end %>
61
  <div class="overviewfields">
62
	<% unless @project.homepage.blank? %><h4><%=l(:field_homepage)%>:</h4><ul><li><%= link_to h(@project.homepage), @project.homepage %></li></ul><% end %>
63 63
  <% if @subprojects.any? %>
64
 	<li><%=l(:label_subproject_plural)%>:
65
	    <%= @subprojects.collect{|p| link_to(h(p), :action => 'show', :id => p)}.join(", ").html_safe %></li>
64
 	<h4><%=l(:label_subproject_plural)%>:</h4>
65
          <ul>
66
	    <li><%= @subprojects.collect{|p| link_to(h(p), :action => 'show', :id => p)}.join("</li><li>").html_safe %></li>
67
          </ul>
66 68
  <% end %>
67 69
	<% @project.visible_custom_field_values.each do |custom_value| %>
68 70
	<% if !custom_value.value.blank? %>
69
	   <li><%= custom_value.custom_field.name%>: <%=h show_value(custom_value) %></li>
71
	   <h4><%= custom_value.custom_field.name%>:</h4><ul><li><%=h show_value(custom_value) %></li></ul>
70 72
	<% end %>
71 73
	<% end %>
72
	</ul>	
73

  
74
  </div>
74 75
  <% if User.current.allowed_to?(:view_issues, @project) and @open_issues_by_tracker.values.any? %>
75 76
  <div class="issues box">    
76 77
    <h3><%=l(:label_issue_tracking)%></h3>
plugins/redmine_bibliography/lib/bibliography/user_author_patch.rb
4 4
  module UserAuthorPatch
5 5
    def self.included(base)
6 6
      base.send(:include, InstanceMethods)
7
      extend ClassMethods
7

  
8
      base.class_eval do
9
        # adapted from the app/models/principals_model.rb
10
        # to remove the email address from the search
11
        scope :name_like, lambda {|q|
12
          q = q.to_s
13
          if q.blank?
14
            where({})
15
          else
16
            pattern = "%#{q}%"
17
            sql = %w(login firstname lastname).map {|column| "LOWER(#{  table_name}.    #{column}) LIKE LOWER(:p)"}.join(" OR ")
18
            params = {:p => pattern}
19
            if q =~ /^(.+)\s+(.+)$/
20
              a, b = "#{$1}%", "#{$2}%"
21
              sql << " OR (LOWER(#{table_name}.firstname) LIKE LOWER(:a) AND  LOWER    (#{table_name}.lastname) LIKE LOWER(:b))"
22
              sql << " OR (LOWER(#{table_name}.firstname) LIKE LOWER(:b) AND  LOWER    (#{table_name}.lastname) LIKE LOWER(:a))"
23
              params.merge!(:a => a, :b => b)
24
            end
25
          where(sql, params)
26
          end
27
        }
28
      end #base.class_eval
8 29

  
9 30
    end #self.included
10 31

  
11
    module ClassMethods
12
    end
13

  
14 32
    module InstanceMethods
15 33

  
34
      # todo: deprecated? ~lf.20131011
16 35
      def institution
17 36
        unless self.ssamr_user_detail.nil?
18 37
          institution_name = self.ssamr_user_detail.institution_name

Also available in: Unified diff