muck-services 0.1.44 → 0.1.45

Sign up to get free protection for your applications and to get access to all the features.
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