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 +1 -1
- data/app/controllers/muck/entries_controller.rb +1 -0
- data/app/controllers/muck/feeds_controller.rb +1 -1
- data/app/helpers/muck_services_feeds_helper.rb +3 -3
- data/app/models/aggregation.rb +15 -1
- data/app/views/entries/_result.html.erb +1 -1
- data/app/views/entries/search.pjs.erb +5 -1
- data/app/views/feeds/_feed.html.erb +1 -1
- data/app/views/feeds/_feed_row.html.erb +8 -7
- data/app/views/feeds/index.html.erb +8 -7
- data/muck-services.gemspec +2 -2
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
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 =
|
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
|
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 == '
|
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
|
|
data/app/models/aggregation.rb
CHANGED
@@ -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 + " (" + (
|
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', :
|
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>');
|
@@ -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
|
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.
|
28
|
-
<td><%= feed_row.created_at.strftime('%d %b %
|
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.
|
11
|
-
<th><%= link_to t('muck.services.
|
12
|
-
<th><%= link_to t('muck.services.
|
13
|
-
<th><%= link_to t('muck.services.
|
14
|
-
<th><%= link_to t('muck.services.
|
15
|
-
<th><%= link_to t('muck.services.
|
16
|
-
<th><%= link_to t('muck.services.
|
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>
|
data/muck-services.gemspec
CHANGED
@@ -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.
|
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-
|
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.
|
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-
|
13
|
+
date: 2010-06-01 00:00:00 -06:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|