muck-services 0.1.44 → 0.1.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.44
1
+ 0.1.45
@@ -30,6 +30,7 @@ class Muck::EntriesController < ApplicationController
30
30
  def search
31
31
  @search = params[:q] || params[:terms]
32
32
  @grain_size = params[:grain_size] || 'all'
33
+ @details = params[:details] || 'true'
33
34
  _search
34
35
  respond_to do |format|
35
36
  format.html { render :template => 'entries/search' }
@@ -6,7 +6,7 @@ class Muck::FeedsController < ApplicationController
6
6
  before_filter :get_owner, :except => ['index', 'show']
7
7
 
8
8
  def index
9
- @feeds = Feed.find(:all, :conditions => 'status >= 0', :order => (params[:order] || 'title') + (params[:asc] == 'false' ? ' DESC' : ' ASC') + ', title', :include => [:default_language]).paginate(:page => @page, :per_page => @per_page)
9
+ @feeds = Aggregation.global_feeds(params[:order], params[:asc]).paginate(:page => @page, :per_page => @per_page)
10
10
  respond_to do |format|
11
11
  format.html { render :template => 'feeds/index' }
12
12
  format.xml { render :xml => @feeds.to_xml }
@@ -14,18 +14,18 @@ module MuckServicesFeedsHelper
14
14
 
15
15
  def feed_contributor_link(feed)
16
16
  if feed.contributor_id.nil?
17
- admin = Feed.find_by_login('admin')
17
+ # admin = Feed.find_by_login('admin')
18
18
  'unknown'
19
19
  else
20
20
  link_to feed.contributor.display_name, profile_path(feed.contributor)
21
21
  end
22
22
  end
23
23
 
24
- def sort_feeds_link(current_order, current_asc, new_order, admin = false)
24
+ def sort_feeds_url(current_order, current_asc, new_order, admin = false)
25
25
  if admin == true
26
26
  admin_feeds_url(:order => new_order, :asc => (current_order == new_order && (current_asc == 'true' || current_asc == nil)) ? 'false' : 'true')
27
27
  else
28
- feeds_url(:order => new_order, :asc => (current_order == new_order && (current_asc == 'true' || current_asc == nil)) ? 'false' : 'true')
28
+ feeds_url(:order => new_order, :asc => (current_order == new_order && (current_asc == 'false' || current_asc == nil)) ? 'true' : 'false')
29
29
  end
30
30
  end
31
31
 
@@ -30,7 +30,21 @@ class Aggregation < ActiveRecord::Base
30
30
  named_scope :recent, lambda { { :conditions => ['created_at > ?', 1.week.ago] } }
31
31
  named_scope :newest, :order => "created_at DESC"
32
32
 
33
-
33
+
34
+ def self.global_feeds(order_field = 'title', ascending = 'true')
35
+ allowed_fields = ['languages.english_name','status','entries_count','harvested_from_title','last_harvested_at','created_at','feed_contributor']
36
+ order_direction = (ascending == 'false' ? ' DESC' : ' ASC')
37
+ order_by = allowed_fields.include?(order_field) ? (order_field + order_direction + ', title') : ('title ' + order_direction)
38
+
39
+ Feed.find_by_sql("SELECT users.id feed_contributor_id, users.login feed_contributor, languages.english_name default_language_name, feeds.*, aggregation_id <=> 1 FROM aggregations " +
40
+ "INNER JOIN aggregation_feeds ON aggregations.id = aggregation_feeds.aggregation_id " +
41
+ "RIGHT OUTER JOIN feeds ON aggregation_feeds.feed_id = feeds.id " +
42
+ "INNER JOIN languages ON feeds.default_language_id = languages.id " +
43
+ "LEFT OUTER JOIN users ON feeds.contributor_id = users.id " +
44
+ # "WHERE aggregations.title = 'global_feeds' AND feeds.status >= 0 " +
45
+ "ORDER BY #{order_by}")
46
+ end
47
+
34
48
  # Builds and then adds feeds for a given terms
35
49
  # user: User to be associated with each feed. Default is nil which makes each feed global.
36
50
  # service_ids: An array of service ids. Nil will generate a feed for every available service.
@@ -1,6 +1,6 @@
1
1
  <% link = visit_path(result) %>
2
2
  <p>
3
- <%= link_to result.title + " (" + (result.collection.nil? ? result.feed_id.to_s : result.collection) + ")", link, :class => "title_link", :rel => "nofollow" %>
3
+ <%= link_to result.title + " (" + (@feed.nil? ? result.collection : @feed.short_title) + ")", link, :class => "title_link", :rel => "nofollow" %>
4
4
  - <%= link_to t('muck.services.related_resources'), resource_path(result), :class => "related_resources_link", :rel => "nofollow" %>
5
5
  <% if !result.direct_link.nil? %> - <%= link_to t('muck.services.metadata'), result.permalink, :class => "catalog_link" %><% end %>
6
6
  <% if result.description.length > 0 %><br/><span class="description"><%= truncate_words(result.description) %></span><% end %>
@@ -1,4 +1,6 @@
1
- <% cache({:locale => Language.locale_id, :format => 'pjs', :grain_size => @grain_size, :q => @search, :omit_feeds => @omit_feeds, :page => @page, :per_page => @per_page}) do %>
1
+ <% cache({:locale => Language.locale_id, :format => 'pjs', :details => @details,
2
+ :grain_size => @grain_size, :q => @search, :omit_feeds => @omit_feeds,
3
+ :page => @page, :per_page => @per_page}) do %>
2
4
  <% if !@results.blank? %>
3
5
  function truncate(text, length) {
4
6
  nEnd = text.indexOf(" ", 200);
@@ -15,9 +17,11 @@ for(nRec = 0; nRec < recs.length; nRec++) {
15
17
  if (r == null) r = recs[nRec];
16
18
  document.write('<p class="oer_recommender_item">');
17
19
  document.write('<a class="oer_recommender_recommendation_link" href="' + app + 'visits/' + r.id + '">' + r.title + ' (' + r.collection + ')</a>');
20
+ <% if @details == 'true' %>
18
21
  if (r.description) document.write('<br/><span class="oer_recommender_description">' + truncate(r.description) + '</span>');
19
22
  document.write('<br/><span class="oer_recommender_uri">' + r.permalink + '</span>');
20
23
  document.write('</p>');
24
+ <% end %>
21
25
  }
22
26
  document.write('</div>');
23
27
  document.write('</div>');
@@ -23,6 +23,6 @@
23
23
  <% end -%>
24
24
  <% end %>
25
25
  <hr/>
26
- <%= render :partial => 'feeds/entry', :collection => @entries %>
26
+ <%= render :partial => 'entries/result', :collection => @entries %>
27
27
  <%= will_paginate @entries %>
28
28
  </div>
@@ -15,15 +15,16 @@
15
15
  <% end -%>
16
16
  </td>
17
17
  <% end -%>
18
- <td><%= feed_row.error_message ? t('muck.services.failed_last_request', :error => feed_row.error_message) : feed_row.banned? ? t('muck.services.banned') : feed_row.pending? ? ('muck.services.pending') : t('muck.services.ok') %></td>
19
- <td><%= feed_row.default_language.english_name unless feed_row.default_language.nil? %></td>
20
18
  <td><%= feed_row.entries_count.nil? ? "0" : feed_row.entries_count.to_s %></td>
21
- <td><%= feed_row.harvested_from_short_title %></td>
22
19
  <td>
23
20
  <%= link_to image_tag('icons/feed.png'), feed_row.uri, :target => '_blank' %>
24
- <%= link_to h(feed_row.title || feed_row.display_uri), feed_path(feed_row) %>
25
- <% if feed_row.display_uri != feed_row.uri %><%= link_to image_tag('icons/external.png'), feed_row.display_uri, :target => '_blank' %><% end %>
21
+ <%= link_to h(feed_row.title.empty? ? (feed_row.display_uri.nil? ? feed_row.uri : feed_row.display_uri) : feed_row.title), feed_path(feed_row) %>
22
+ <% if (!feed_row.display_uri.nil? && feed_row.display_uri != feed_row.uri) %><%= link_to image_tag('icons/external.png'), feed_row.display_uri, :target => '_blank' %><% end %>
26
23
  </td>
27
- <td><%= feed_row.last_harvested_at.strftime('%d %b at %H:%M') if feed_row.last_harvested_at %></td>
28
- <td><%= feed_row.created_at.strftime('%d %b %y') if feed_row.created_at %></td>
24
+ <td><%= link_to(feed_row.feed_contributor, profile_path(feed_row.feed_contributor_id)) if feed_row.feed_contributor %></td>
25
+ <td><%= feed_row.created_at.strftime('%d %b %Y') if feed_row.created_at %></td>
26
+ <td><%= feed_row.last_harvested_at.strftime('%d %b %Y at %H:%M') if feed_row.last_harvested_at %></td>
27
+ <td><%= feed_row.default_language_name %></td>
28
+ <td><%= feed_row.harvested_from_short_title %></td>
29
+ <td><%= feed_row.error_message ? t('muck.services.failed_last_request', :error => feed_row.error_message) : feed_row.banned? ? t('muck.services.banned') : feed_row.pending? ? ('muck.services.pending') : t('muck.services.ok') %></td>
29
30
  </tr>
@@ -7,13 +7,14 @@
7
7
  </p>
8
8
  <table class="feeds">
9
9
  <tr>
10
- <th><%= link_to t('muck.services.status'), sort_feeds_link(params[:order], params[:asc], 'status') %></th>
11
- <th><%= link_to t('muck.services.default_language'), sort_feeds_link(params[:order], params[:asc], 'languages.english_name') %></th>
12
- <th><%= link_to t('muck.services.entries_count'), sort_feeds_link(params[:order], params[:asc], 'entries_count') %></th>
13
- <th><%= link_to t('muck.services.repository'), sort_feeds_link(params[:order], params[:asc], 'harvested_from_title') %></th>
14
- <th><%= link_to t('muck.services.title'), sort_feeds_link(params[:order], params[:asc], 'title') %></th>
15
- <th><%= link_to t('muck.services.harvested_at'), sort_feeds_link(params[:order], params[:asc], 'last_harvested_at') %></th>
16
- <th><%= link_to t('muck.services.added_date'), sort_feeds_link(params[:order], params[:asc], 'created_at') %></th>
10
+ <th><%= link_to t('muck.services.entries_count'), sort_feeds_url(params[:order], params[:asc], 'entries_count') %></th>
11
+ <th><%= link_to t('muck.services.title'), sort_feeds_url(params[:order], params[:asc], 'title') %></th>
12
+ <th><%= link_to t('muck.services.contributor'), sort_feeds_url(params[:order], params[:asc], 'feed_contributor') %></th>
13
+ <th width="70px"><%= link_to t('muck.services.added_date'), sort_feeds_url(params[:order], params[:asc], 'created_at') %></th>
14
+ <th width="120px"><%= link_to t('muck.services.harvested_at'), sort_feeds_url(params[:order], params[:asc], 'last_harvested_at') %></th>
15
+ <th><%= link_to t('muck.services.default_language'), sort_feeds_url(params[:order], params[:asc], 'languages.english_name') %></th>
16
+ <th><%= link_to t('muck.services.repository'), sort_feeds_url(params[:order], params[:asc], 'harvested_from_title') %></th>
17
+ <th><%= link_to t('muck.services.status'), sort_feeds_url(params[:order], params[:asc], 'status') %></th>
17
18
  </tr>
18
19
  <%= render :partial => 'feeds/feed_row', :collection => @feeds %>
19
20
  </table>
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{muck-services}
8
- s.version = "0.1.44"
8
+ s.version = "0.1.45"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Joel Duffin", "Justin Ball"]
12
- s.date = %q{2010-04-29}
12
+ s.date = %q{2010-06-01}
13
13
  s.description = %q{This gem contains the rails specific code for dealing with feeds, aggregations and recommendations. It is meant to work with the muck-raker gem.}
14
14
  s.email = %q{justin@tatemae.com}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: muck-services
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.44
4
+ version: 0.1.45
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Duffin
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-04-29 00:00:00 -06:00
13
+ date: 2010-06-01 00:00:00 -06:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency