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 +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
|