muck-services 3.1.1 → 3.2.0
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/identity_feeds_controller.rb +28 -27
- data/app/helpers/muck_services_service_helper.rb +22 -0
- data/app/models/service.rb +1 -1
- data/app/views/identity_feeds/{_available_service_categories.html.erb → _available_service_categories.erb} +0 -0
- data/app/views/identity_feeds/_form.erb +11 -5
- data/app/views/identity_feeds/_services_for_user.erb +11 -0
- data/app/views/identity_feeds/create.erb +10 -0
- data/app/views/identity_feeds/destroy.erb +1 -0
- data/app/views/identity_feeds/{edit.html.erb → edit.erb} +0 -0
- data/app/views/identity_feeds/index.erb +49 -0
- data/app/views/identity_feeds/{new.html.erb → new.erb} +0 -0
- data/app/views/service_templates/{_facebook.html.erb → _facebook.erb} +1 -1
- data/app/views/service_templates/{_friendfeed.html.erb → _friendfeed.erb} +1 -1
- data/app/views/service_templates/{_goodreads.html.erb → _goodreads.erb} +0 -0
- data/app/views/service_templates/{_linkedin.html.erb → _linkedin.erb} +1 -1
- data/app/views/service_templates/{_netflix.html.erb → _netflix.erb} +1 -1
- data/app/views/service_templates/{_polyvore.html.erb → _polyvore.erb} +0 -0
- data/app/views/service_templates/{_zotero_group.html.erb → _zotero_group.erb} +0 -0
- data/app/views/services/{_edit_service.html.erb → _edit_service.erb} +0 -0
- data/app/views/services/{_new_service.html.erb → _new_service.erb} +0 -0
- data/app/views/services/{_personal_recommendations.html.erb → _personal_recommendations.erb} +0 -0
- data/app/views/services/{_summary.html.erb → _summary.erb} +0 -0
- data/app/views/services/{_view_service.html.erb → _view_service.erb} +0 -0
- data/config/locales/en.yml +10 -10
- data/db/bootstrap/services.yml +2 -2
- data/muck-services.gemspec +22 -19
- data/public/javascripts/muck_services-src.js +134 -0
- data/public/javascripts/muck_services.js +10 -104
- data/public/stylesheets/muck-services.css +1 -0
- metadata +25 -22
- data/app/views/identity_feeds/_services_for_user.html.erb +0 -25
- data/app/views/identity_feeds/index.html.erb +0 -32
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.2.0
|
@@ -22,43 +22,51 @@ class Muck::IdentityFeedsController < ApplicationController
|
|
22
22
|
@feed = Feed.new
|
23
23
|
respond_to do |format|
|
24
24
|
format.html { render :template => 'identity_feeds/new' }
|
25
|
-
format.
|
25
|
+
format.js { render :template => 'identity_feeds/new', :layout => false }
|
26
|
+
format.pjs { render :template => 'identity_feeds/new', :layout => false }
|
26
27
|
end
|
27
28
|
end
|
28
29
|
|
29
30
|
def create
|
30
31
|
@service = Service.find(params[:service_id])
|
32
|
+
|
31
33
|
if !params[:uri].blank?
|
32
|
-
|
33
|
-
|
34
|
+
uri = params[:uri]
|
35
|
+
elsif !@service.uri_data_template.blank? && params[:username]
|
36
|
+
uri = @service.uri_data_template
|
37
|
+
else
|
38
|
+
uri = nil
|
39
|
+
end
|
40
|
+
|
41
|
+
if uri
|
42
|
+
@feed = Feed.new(:uri => uri, :login => params[:username])
|
43
|
+
feeds = Service.create_tag_feeds_for_service(@service, uri, params[:username], params[:password], current_user.id)
|
34
44
|
if feeds.blank?
|
35
|
-
success = false
|
45
|
+
@success = false
|
36
46
|
if params[:username]
|
37
|
-
message = I18n.t('muck.services.no_feeds_from_username')
|
47
|
+
@message = I18n.t('muck.services.no_feeds_from_username')
|
38
48
|
else
|
39
|
-
message = I18n.t('muck.services.no_feeds_at_uri')
|
49
|
+
@message = I18n.t('muck.services.no_feeds_at_uri')
|
40
50
|
end
|
41
51
|
else
|
42
|
-
success, messages = add_feeds_to_parent(@parent, feeds)
|
43
|
-
message = messages.join('<br />')
|
52
|
+
@success, messages = add_feeds_to_parent(@parent, feeds)
|
53
|
+
@message = messages.join('<br />')
|
44
54
|
end
|
45
55
|
else
|
46
|
-
success = false
|
47
|
-
message = I18n.t('muck.services.please_specify_url')
|
56
|
+
@success = false
|
57
|
+
@message = I18n.t('muck.services.please_specify_url')
|
48
58
|
end
|
49
59
|
|
60
|
+
@user_services = @parent.identity_feeds.find(:all, :include => [{:feed => :service}]) if @success
|
61
|
+
|
50
62
|
respond_to do |format|
|
51
63
|
format.html do
|
52
|
-
flash[:notice] = message if message
|
64
|
+
flash[:notice] = @message.html_safe if @message
|
53
65
|
redirect_to polymorphic_url([@parent, :identity_feeds])
|
54
66
|
end
|
55
|
-
format.pjs
|
56
|
-
|
57
|
-
|
58
|
-
end
|
59
|
-
format.json do
|
60
|
-
render :json => {:parent => @parent, :service => @service, :feeds => feeds, :success => success, :message => message }.as_json
|
61
|
-
end
|
67
|
+
format.pjs { render :template => 'identity_feeds/create', :layout => false }
|
68
|
+
format.js { render :template => 'identity_feeds/create', :layout => false }
|
69
|
+
format.json { render :json => {:parent => @parent, :service => @service, :feeds => feeds, :success => @success, :message => @message }.as_json }
|
62
70
|
end
|
63
71
|
end
|
64
72
|
|
@@ -82,11 +90,8 @@ class Muck::IdentityFeedsController < ApplicationController
|
|
82
90
|
flash[:notice] = t("muck.services.identity_feed_removed")
|
83
91
|
redirect_to polymorphic_url([@identity_feed.ownable, :identity_feeds])
|
84
92
|
end
|
85
|
-
format.js
|
86
|
-
|
87
|
-
page << "jQuery('##{@identity_feed.dom_id}').fadeOut();"
|
88
|
-
end
|
89
|
-
end
|
93
|
+
format.js { render :template => 'identity_feeds/destroy', :layout => false }
|
94
|
+
format.pjs { render :template => 'identity_feeds/destroy', :layout => false }
|
90
95
|
format.json do
|
91
96
|
render :json => { :success => true,
|
92
97
|
:identity_feed => @identity_feed,
|
@@ -122,10 +127,6 @@ class Muck::IdentityFeedsController < ApplicationController
|
|
122
127
|
@parent.can_edit?(current_user)
|
123
128
|
end
|
124
129
|
|
125
|
-
def get_new_html(service, parent, feed)
|
126
|
-
render_to_string(:partial => 'identity_feeds/form', :locals => { :service => service, :parent => parent, :feed => feed })
|
127
|
-
end
|
128
|
-
|
129
130
|
def get_edit_html(identity_feed)
|
130
131
|
render_to_string(:partial => 'identity_feeds/form', :locals => { :service => identity_feed.feed.service, :parent => identity_feed.ownable, :feed => identity_feed.feed })
|
131
132
|
end
|
@@ -71,12 +71,19 @@ module MuckServicesServiceHelper
|
|
71
71
|
service_link(path, identity_feed.feed.service, link_css, wrapper, link_text)
|
72
72
|
end
|
73
73
|
|
74
|
+
# Renders a link with an icon and text
|
74
75
|
def service_external_link(identity_feed, link_css = nil, wrapper = nil)
|
75
76
|
path = identity_feed.feed.display_uri || identity_feed.feed.uri
|
76
77
|
link_text = identity_feed.feed.title unless identity_feed.feed.title.blank?
|
77
78
|
service_link(path, identity_feed.feed.service, link_css, wrapper, link_text, 'blank')
|
78
79
|
end
|
79
80
|
|
81
|
+
# Render a link with an icon an no text
|
82
|
+
def service_external_icon_link(identity_feed, link_css = nil, wrapper = nil, target = 'blank', id = nil)
|
83
|
+
path = identity_feed.feed.display_uri || identity_feed.feed.uri
|
84
|
+
service_icon_link(path, identity_feed.feed.service, link_css, wrapper, target, id)
|
85
|
+
end
|
86
|
+
|
80
87
|
# Renders a delete button for an identity_feed
|
81
88
|
def service_delete(identity_feed, button_type = :button, button_text = t("muck.general.delete"))
|
82
89
|
render(:partial => 'shared/delete', :locals => { :delete_object => identity_feed,
|
@@ -96,6 +103,21 @@ module MuckServicesServiceHelper
|
|
96
103
|
end
|
97
104
|
end
|
98
105
|
|
106
|
+
# Renders a service link optionally wrapping it in the specified element
|
107
|
+
def service_icon_link(path, service, link_css, wrapper, target = nil, id = nil)
|
108
|
+
if service.respond_to?(:icon)
|
109
|
+
service_name = service.icon
|
110
|
+
else
|
111
|
+
service_name = "#{service}.png"
|
112
|
+
end
|
113
|
+
link = %Q{<a #{'id=' + id if id} href="#{path}" #{'target=' + target if target} class="service-link #{link_css}">#{service_icon(service_name, 16, service.name)}</a>}.html_safe
|
114
|
+
if wrapper
|
115
|
+
content_tag(wrapper, link, :class => 'identity-service').html_safe
|
116
|
+
else
|
117
|
+
link
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
99
121
|
def url_by_identity_feed(owner, identity_feed, service)
|
100
122
|
if identity_feed
|
101
123
|
polymorphic_url([owner, identity_feed], :service_id => service.to_param).html_safe
|
data/app/models/service.rb
CHANGED
@@ -156,7 +156,7 @@ class Service < ActiveRecord::Base
|
|
156
156
|
# creates a feed for a service with a username and optional password
|
157
157
|
def self.create_tag_feeds_for_service(service, uri, username, password, contributor)
|
158
158
|
uris = service.generate_uris(username, password, uri)
|
159
|
-
uris.collect{ |u| Feed.find_or_create(u.url, u.title, username, password, service.id, contributor) } if uris
|
159
|
+
uris.collect{ |u| Feed.find_or_create(u.url, u.title, username, password, service.id, contributor, u.human_url) } if uris
|
160
160
|
end
|
161
161
|
|
162
162
|
def self.build_photo_feeds(terms, user, service_ids = nil, refresh_services = false)
|
File without changes
|
@@ -1,5 +1,6 @@
|
|
1
|
+
<div id="identity-feed-message"></div>
|
1
2
|
<div id="identity-feed">
|
2
|
-
<%= form_for(:feed, :url => url_by_identity_feed(parent, @identity_feed, service)) do |f| -%>
|
3
|
+
<%= form_for(:feed, :url => url_by_identity_feed(parent, @identity_feed, service), :html => { :class => 'add-identity' } ) do |f| -%>
|
3
4
|
<%= service_title(service) %>
|
4
5
|
<% if service.template.blank? -%>
|
5
6
|
<% if service.uri_data_template.blank? -%>
|
@@ -11,10 +12,15 @@
|
|
11
12
|
<%= render :partial => "service_templates/#{service.template}", :locals => { :service => service, :feed => feed } -%>
|
12
13
|
<% end -%>
|
13
14
|
<div class="button form-row">
|
14
|
-
<%= f.submit t('muck.services.import_service', :service => service.name), :id => '
|
15
|
-
<span id="finding_uri_message" style="display:none;">
|
16
|
-
<%= t('muck.services.submitting_feed_message')
|
15
|
+
<%= f.submit t('muck.services.import_service', :service => service.name), :id => 'submit_add_feed' %>
|
16
|
+
<span id="finding_uri_message" class="waiting" style="display:none;">
|
17
|
+
<%= t('muck.services.submitting_feed_message') %>
|
17
18
|
</span>
|
18
19
|
</div>
|
19
20
|
<% end -%>
|
20
|
-
</div>
|
21
|
+
</div>
|
22
|
+
<script type="text/javascript">
|
23
|
+
jQuery(document).ready(function() {
|
24
|
+
apply_add_feed();
|
25
|
+
});
|
26
|
+
</script>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<div id="my-services" class="services-main <%= css %>">
|
2
|
+
<h2><%= title || I18n.t('muck.services.my_services') %></h2>
|
3
|
+
<ul id="my-services-list" class="services-list">
|
4
|
+
<% if edit -%>
|
5
|
+
<%= render(:partial => 'services/edit_service', :collection => identity_feeds) %>
|
6
|
+
<% else -%>
|
7
|
+
<%= render(:partial => 'services/view_service', :collection => identity_feeds) %>
|
8
|
+
<% end -%>
|
9
|
+
</ul>
|
10
|
+
</div>
|
11
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<% if @success -%>
|
2
|
+
jQuery('#my-services').replaceWith('<%= escape_javascript(services_for_user(@user_services, nil, 'span-5').html_safe) %>');
|
3
|
+
apply_delete_feed();
|
4
|
+
jQuery.fancybox.close();
|
5
|
+
<% else -%>
|
6
|
+
jQuery('#identity-feed-message').addClass('error');
|
7
|
+
jQuery('#identity-feed-message').html("<%=@message.html_safe%>");
|
8
|
+
jQuery('#submit_add_feed').show();
|
9
|
+
jQuery('#finding_uri_message').hide();
|
10
|
+
<% end -%>
|
@@ -0,0 +1 @@
|
|
1
|
+
jQuery('#<%=@identity_feed.dom_id%>').fadeOut();
|
File without changes
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<%= output_errors('', {:class => 'help-box'}) %>
|
2
|
+
<%= available_service_categories(@service_categories, nil, 'span-15') %>
|
3
|
+
<%= services_for_user(@user_services, nil, 'span-5') %>
|
4
|
+
|
5
|
+
<script type="text/javascript">
|
6
|
+
jQuery(document).ready(function() {
|
7
|
+
jQuery('a.lightbox').fancybox({
|
8
|
+
'width': 400,
|
9
|
+
'height': 100,
|
10
|
+
'ajax' : {
|
11
|
+
dataType: 'html',
|
12
|
+
beforeSend: add_headers
|
13
|
+
}
|
14
|
+
});
|
15
|
+
jQuery('a#facebook-link').fancybox({
|
16
|
+
'width': 400,
|
17
|
+
'height': 375,
|
18
|
+
'ajax' : {
|
19
|
+
dataType: 'html',
|
20
|
+
beforeSend: add_headers
|
21
|
+
}
|
22
|
+
});
|
23
|
+
jQuery('a#zotero-groups-link').fancybox({
|
24
|
+
'width': 400,
|
25
|
+
'height': 130,
|
26
|
+
'ajax' : {
|
27
|
+
dataType: 'html',
|
28
|
+
beforeSend: add_headers
|
29
|
+
}
|
30
|
+
});
|
31
|
+
jQuery('a#netflix-link').fancybox({
|
32
|
+
'width': 400,
|
33
|
+
'height': 160,
|
34
|
+
'ajax' : {
|
35
|
+
dataType: 'html',
|
36
|
+
beforeSend: add_headers
|
37
|
+
}
|
38
|
+
});
|
39
|
+
});
|
40
|
+
</script>
|
41
|
+
|
42
|
+
<script type="text/javascript">
|
43
|
+
jQuery(document).ready(function() {
|
44
|
+
//apply_delete_hover();
|
45
|
+
apply_delete_feed();
|
46
|
+
});
|
47
|
+
</script>
|
48
|
+
|
49
|
+
|
File without changes
|
@@ -1,4 +1,4 @@
|
|
1
1
|
<%= text_field_tag :uri, feed.uri %>
|
2
|
-
<p><%= t('muck.services.facebook_link', :link => '<a href="http://www.facebook.com/posted.php" target="blank">Click Here</a>') %></p>
|
2
|
+
<p><%= t('muck.services.facebook_link', :link => '<a href="http://www.facebook.com/posted.php" target="blank">Click Here</a>').html_safe %></p>
|
3
3
|
<img src="/images/service_icons/facebook_my_links.jpg" />
|
4
4
|
<p><%= t('muck.services.facebook_instructions') %></p>
|
@@ -1,2 +1,2 @@
|
|
1
1
|
<%= text_field_tag :uri, feed.uri %>
|
2
|
-
<%= t('muck.services.friendfeed_rss', :link => '<a href="http://friendfeed.com/">Friendfeed home page</a>') %>
|
2
|
+
<%= t('muck.services.friendfeed_rss', :link => '<a href="http://friendfeed.com/" target="_blank">Friendfeed home page</a>').html_safe %>
|
File without changes
|
@@ -1,2 +1,2 @@
|
|
1
1
|
<%= text_field_tag :uri, feed.uri %>
|
2
|
-
<%= t('muck.services.linkedin_rss', :link => '<a href="http://www.linkedin.com/myprofile?editwp=">LinkedIn Public Profile page</a>') %>
|
2
|
+
<%= t('muck.services.linkedin_rss', :link => '<a href="http://www.linkedin.com/myprofile?editwp=" target="_blank">LinkedIn Public Profile page</a>').html_safe %>
|
@@ -1,2 +1,2 @@
|
|
1
1
|
<%= text_field_tag :uri, feed.uri %>
|
2
|
-
<%= t('muck.services.netflix_rss', :link => '<a href="http://www.netflix.com/RSSFeeds">Netflix Queue RSS page</a>') %>
|
2
|
+
<%= t('muck.services.netflix_rss', :link => '<a href="http://www.netflix.com/RSSFeeds" target="_blank">Netflix Queue RSS page</a>').html_safe %>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/app/views/services/{_personal_recommendations.html.erb → _personal_recommendations.erb}
RENAMED
File without changes
|
File without changes
|
File without changes
|
data/config/locales/en.yml
CHANGED
@@ -50,7 +50,7 @@ en:
|
|
50
50
|
rss: RSS
|
51
51
|
validate_feed: Mark feed as valid
|
52
52
|
discover_feed_message: Searching for information about the url you provided. Please wait.
|
53
|
-
service_feed_name: "%{term}
|
53
|
+
service_feed_name: "%{term} on %{service}"
|
54
54
|
please_specify_url: Please specify a url
|
55
55
|
available_sources: Available Sources
|
56
56
|
import_service: Import %{service}
|
@@ -61,7 +61,7 @@ en:
|
|
61
61
|
add_aggregation_title: "Name for aggregation:"
|
62
62
|
back: Back
|
63
63
|
polyvore_prompt: Polyvore profile URL
|
64
|
-
login_or_signup_prompt: "%{signup}
|
64
|
+
login_or_signup_prompt: "%{signup} or %{login} to discuss and share resources."
|
65
65
|
facebook_shares: Facebook Shared Links
|
66
66
|
facebook: Facebook
|
67
67
|
for: for
|
@@ -70,18 +70,18 @@ en:
|
|
70
70
|
loading_content_image: <%= t('muck.services.loading_image') %>
|
71
71
|
save_aggreation: Save this Aggregation
|
72
72
|
metadata: metadata
|
73
|
-
signup_to_save_aggreation: "%{login}
|
73
|
+
signup_to_save_aggreation: "%{login} or %{signup} to save this search"
|
74
74
|
visit: visit
|
75
75
|
facebook_link: You can find your URL on your Facebook My Links page. %{link} and then click on 'My Links'
|
76
|
-
course_search_results: Courses <b>%{first}
|
76
|
+
course_search_results: Courses <b>%{first} - %{last}</b> of <b>%{total}</b> for search <b>%{terms}</b>
|
77
77
|
only_courses: Only Courses
|
78
|
-
no_hits: Your search - <b>%{search}
|
78
|
+
no_hits: Your search - <b>%{search}</b> - did not match any <b>%{resource_type}</b>. Please try a different search or choose a different language.
|
79
79
|
no_recommendations: No recommendations were found.
|
80
80
|
feed_successfully_created: Thank you for submitting a feed. You will be emailed when the feed is approved.
|
81
81
|
login: Login
|
82
82
|
next_label: Next
|
83
83
|
add_rss: Add Rss
|
84
|
-
already_added_username_feed: You've already added a %{service}
|
84
|
+
already_added_username_feed: You've already added a %{service} account with the username %{username}
|
85
85
|
topic_feeds_for: Feeds for %{terms}
|
86
86
|
explore: Search the Web
|
87
87
|
videos: Videos
|
@@ -98,7 +98,7 @@ en:
|
|
98
98
|
loading_message: "Loading... "
|
99
99
|
feed_successfully_updated: Feed was successfully updated.
|
100
100
|
approval_status: Approved
|
101
|
-
course_tag_results: Courses <b>%{first}
|
101
|
+
course_tag_results: Courses <b>%{first} - %{last}</b> of <b>%{total}</b> tagged <b>%{terms}</b>
|
102
102
|
goodreads_prompt: Goodreads profile URL
|
103
103
|
feed_remove: Feed Removed
|
104
104
|
loading_image: Loading Image
|
@@ -123,7 +123,7 @@ en:
|
|
123
123
|
oai_endpoint_successfully_created: Successfully added OAI endpoint
|
124
124
|
add_extended_feed_title: Add new feed
|
125
125
|
gm_title: Related Resources
|
126
|
-
resource_tag_results: Resources <b>%{first}
|
126
|
+
resource_tag_results: Resources <b>%{first} - %{last}</b> of <b>%{total}</b> tagged <b>%{terms}</b>
|
127
127
|
rdf: RDF
|
128
128
|
amazon_prompt: Please enter the email you use with Amazon.com
|
129
129
|
edit_aggregation_title: Editing %{title}
|
@@ -192,7 +192,7 @@ en:
|
|
192
192
|
already_shared: You've previously shared this page.
|
193
193
|
add_edit_feeds: Add/Edit Feeds
|
194
194
|
harvest_interval: Harvest interval (hrs)
|
195
|
-
resource_search_results: Resources <b>%{first}
|
195
|
+
resource_search_results: Resources <b>%{first} - %{last}</b> of <b>%{total}</b> for search <b>%{terms}</b>
|
196
196
|
successfully_added_uri_feed: Successfully added %{uri}
|
197
197
|
no_feeds_found: No feeds were found
|
198
198
|
direct_link: "[direct link]"
|
@@ -207,7 +207,7 @@ en:
|
|
207
207
|
add_feed: Add Feed
|
208
208
|
identity_feeds: Identity Feeds
|
209
209
|
added_date: Added
|
210
|
-
no_tagged_courses: No <b>courses</b> were found tagged with <b>%{tags}
|
210
|
+
no_tagged_courses: No <b>courses</b> were found tagged with <b>%{tags}</b>. <a href='/resources'>Start over</a> or show <a href='/resources/tags/%{tags}'>all resources tagged %{tags}</a>.
|
211
211
|
personal_recommendations: Recommendations
|
212
212
|
feed_id: ID
|
213
213
|
repository_short_title: "Repository Short Title:"
|
data/db/bootstrap/services.yml
CHANGED
@@ -317,7 +317,7 @@ pandora:
|
|
317
317
|
icon: pandora.png
|
318
318
|
use_for: "identity"
|
319
319
|
service_category_id: 5
|
320
|
-
active:
|
320
|
+
active: false
|
321
321
|
technorati_tags:
|
322
322
|
id: 27
|
323
323
|
sort: 27
|
@@ -719,7 +719,7 @@ amazon:
|
|
719
719
|
icon: amazon.png
|
720
720
|
use_for: "identity"
|
721
721
|
service_category_id: 12
|
722
|
-
active:
|
722
|
+
active: false
|
723
723
|
prompt: amazon_prompt
|
724
724
|
twitter_tags:
|
725
725
|
id: 59
|
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 = "3.
|
8
|
+
s.version = "3.2.0"
|
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{2011-01
|
12
|
+
s.date = %q{2011-02-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 = [
|
@@ -104,12 +104,14 @@ Gem::Specification.new do |s|
|
|
104
104
|
"app/views/feeds/new_oai_rss.html.erb",
|
105
105
|
"app/views/feeds/show.html.erb",
|
106
106
|
"app/views/feeds/unban.html.erb",
|
107
|
-
"app/views/identity_feeds/_available_service_categories.
|
107
|
+
"app/views/identity_feeds/_available_service_categories.erb",
|
108
108
|
"app/views/identity_feeds/_form.erb",
|
109
|
-
"app/views/identity_feeds/_services_for_user.
|
110
|
-
"app/views/identity_feeds/
|
111
|
-
"app/views/identity_feeds/
|
112
|
-
"app/views/identity_feeds/
|
109
|
+
"app/views/identity_feeds/_services_for_user.erb",
|
110
|
+
"app/views/identity_feeds/create.erb",
|
111
|
+
"app/views/identity_feeds/destroy.erb",
|
112
|
+
"app/views/identity_feeds/edit.erb",
|
113
|
+
"app/views/identity_feeds/index.erb",
|
114
|
+
"app/views/identity_feeds/new.erb",
|
113
115
|
"app/views/oai_endpoints/_form.html.erb",
|
114
116
|
"app/views/oai_endpoints/_oai_endpoint_row.html.erb",
|
115
117
|
"app/views/oai_endpoints/new.html.erb",
|
@@ -123,18 +125,18 @@ Gem::Specification.new do |s|
|
|
123
125
|
"app/views/recommendations/index.rss.builder",
|
124
126
|
"app/views/recommendations/index.xml.builder",
|
125
127
|
"app/views/recommendations/real_time.html.erb",
|
126
|
-
"app/views/service_templates/_facebook.
|
127
|
-
"app/views/service_templates/_friendfeed.
|
128
|
-
"app/views/service_templates/_goodreads.
|
129
|
-
"app/views/service_templates/_linkedin.
|
130
|
-
"app/views/service_templates/_netflix.
|
131
|
-
"app/views/service_templates/_polyvore.
|
132
|
-
"app/views/service_templates/_zotero_group.
|
133
|
-
"app/views/services/_edit_service.
|
134
|
-
"app/views/services/_new_service.
|
135
|
-
"app/views/services/_personal_recommendations.
|
136
|
-
"app/views/services/_summary.
|
137
|
-
"app/views/services/_view_service.
|
128
|
+
"app/views/service_templates/_facebook.erb",
|
129
|
+
"app/views/service_templates/_friendfeed.erb",
|
130
|
+
"app/views/service_templates/_goodreads.erb",
|
131
|
+
"app/views/service_templates/_linkedin.erb",
|
132
|
+
"app/views/service_templates/_netflix.erb",
|
133
|
+
"app/views/service_templates/_polyvore.erb",
|
134
|
+
"app/views/service_templates/_zotero_group.erb",
|
135
|
+
"app/views/services/_edit_service.erb",
|
136
|
+
"app/views/services/_new_service.erb",
|
137
|
+
"app/views/services/_personal_recommendations.erb",
|
138
|
+
"app/views/services/_summary.erb",
|
139
|
+
"app/views/services/_view_service.erb",
|
138
140
|
"app/views/services_mailer/notification_feed_added.html.erb",
|
139
141
|
"app/views/services_mailer/notification_feed_added.text.erb",
|
140
142
|
"app/views/services_mailer/notification_oai_endpoint_added.html.erb",
|
@@ -252,6 +254,7 @@ Gem::Specification.new do |s|
|
|
252
254
|
"lib/muck-services/services.rb",
|
253
255
|
"lib/tasks/muck_services.rake",
|
254
256
|
"muck-services.gemspec",
|
257
|
+
"public/javascripts/muck_services-src.js",
|
255
258
|
"public/javascripts/muck_services.js",
|
256
259
|
"public/stylesheets/frame.css",
|
257
260
|
"public/stylesheets/muck-services.css"
|
@@ -0,0 +1,134 @@
|
|
1
|
+
function apply_add_feed(){
|
2
|
+
jQuery('.add-identity').bind('submit', function(){
|
3
|
+
jQuery('#submit_add_feed').hide();
|
4
|
+
jQuery('#finding_uri_message').show();
|
5
|
+
jQuery(this).ajaxSubmit({
|
6
|
+
dataType: 'script',
|
7
|
+
beforeSend: add_headers
|
8
|
+
});
|
9
|
+
return false;
|
10
|
+
});
|
11
|
+
}
|
12
|
+
|
13
|
+
function apply_delete_feed(){
|
14
|
+
jQuery('.identity-feed-delete').bind('submit', function(){
|
15
|
+
jQuery(this).replaceWith(jQuery(jQuery('#muck_ajax_delete_control_message').html()).show());
|
16
|
+
jQuery(this).ajaxSubmit({
|
17
|
+
dataType: 'script',
|
18
|
+
beforeSend: add_headers
|
19
|
+
});
|
20
|
+
return false;
|
21
|
+
});
|
22
|
+
}
|
23
|
+
|
24
|
+
function apply_delete_hover(){
|
25
|
+
jQuery('ul#my-services-list li form').hide();
|
26
|
+
jQuery('ul#my-services-list li').hover(function(){
|
27
|
+
jQuery(this).children('form').show(); }, function(){
|
28
|
+
jQuery(this).children('form').hide(); });
|
29
|
+
}
|
30
|
+
|
31
|
+
function apply_show_entry_content(){
|
32
|
+
jQuery('.combined-feed-list .feed-item .feed-title').hover(
|
33
|
+
function () {
|
34
|
+
jQuery(this).next('.combined-feed-list .feed-item .feed-content').show();
|
35
|
+
},
|
36
|
+
function () {
|
37
|
+
jQuery(this).next('.combined-feed-list .feed-item .feed-content').hide();
|
38
|
+
}
|
39
|
+
);
|
40
|
+
jQuery('.combined-feed-list .feed-item .feed-content').hover(
|
41
|
+
function () {
|
42
|
+
jQuery(this).show();
|
43
|
+
},
|
44
|
+
function () {
|
45
|
+
jQuery(this).hide();
|
46
|
+
}
|
47
|
+
);
|
48
|
+
}
|
49
|
+
|
50
|
+
function show_tool(tool) {
|
51
|
+
jQuery('.tool').hide();
|
52
|
+
jQuery('#content_iframe').width('75%');
|
53
|
+
jQuery('#' + tool + '_tool').show();
|
54
|
+
jQuery('#recs_panel').css("left", jQuery("#content_iframe").width() - 252);
|
55
|
+
maximize_space();
|
56
|
+
return false;
|
57
|
+
}
|
58
|
+
function maximize_space() {
|
59
|
+
var container = jQuery(".tools_container");
|
60
|
+
var spacer = jQuery('#comments_tools_close_wrapper').height() + 5;
|
61
|
+
container.height(jQuery(window).height() - (jQuery('#toolbar').height() + spacer));
|
62
|
+
}
|
63
|
+
function setup_entry_comment_submit(){
|
64
|
+
jQuery(".entry-comment-submit").click(function() {
|
65
|
+
jQuery(this).siblings('textarea').hide();
|
66
|
+
jQuery(".entry-comment-submit").hide();
|
67
|
+
jQuery(this).parent().append('<p class="entry-comment-loading"><img src="/images/spinner.gif" alt="loading..." /> ' + ADD_COMMENT_MESSAGE + '</p>');
|
68
|
+
var form = jQuery(this).parents('form');
|
69
|
+
jQuery.post(form.attr('action'), form.serialize() + '&format=json',
|
70
|
+
function(data){
|
71
|
+
var json = eval('(' + data + ')');
|
72
|
+
if(!json.success){
|
73
|
+
jQuery.jGrowl.info(json.message);
|
74
|
+
} else {
|
75
|
+
jQuery('.entry-comment-loading').remove();
|
76
|
+
jQuery('#comments_tool').find('textarea').show();
|
77
|
+
jQuery('#comments_tool').find('textarea').val('');
|
78
|
+
jQuery(".entry-comment-submit").show();
|
79
|
+
jQuery("#comments_container").animate({ scrollTop: jQuery("#comments_tool").attr("scrollHeight") }, 3000);
|
80
|
+
var contents = jQuery(json.html)
|
81
|
+
contents.hide();
|
82
|
+
jQuery('#comments_wrapper').append(contents);
|
83
|
+
contents.fadeIn("slow");
|
84
|
+
apply_frame_comment_hover();
|
85
|
+
}
|
86
|
+
});
|
87
|
+
return false;
|
88
|
+
});
|
89
|
+
}
|
90
|
+
function apply_frame_comment_hover(){
|
91
|
+
jQuery('.comment_holder').hover(
|
92
|
+
function () { jQuery(this).addClass('comment-hover'); },
|
93
|
+
function () { jQuery(this).removeClass('comment-hover'); } );
|
94
|
+
}
|
95
|
+
function setup_share_submit(){
|
96
|
+
jQuery('#share_submit_share_new').click(function() {
|
97
|
+
jQuery(this).parent().append('<p class="share-loading"><img src="/images/spinner.gif" alt="loading..." /> ' + ADD_SHARE_MESSAGE + '</p>');
|
98
|
+
jQuery('#share_submit_share_new').hide();
|
99
|
+
var form = jQuery(this).parents('form');
|
100
|
+
jQuery.post(form.attr('action'), form.serialize() + '&format=json',
|
101
|
+
function(data){
|
102
|
+
var json = eval('(' + data + ')');
|
103
|
+
jQuery('.share-loading').remove();
|
104
|
+
jQuery('#share_submit_share_new').show();
|
105
|
+
if(!json.success){
|
106
|
+
jQuery.jGrowl.info(json.message);
|
107
|
+
} else {
|
108
|
+
jQuery.jGrowl.info(json.message);
|
109
|
+
}
|
110
|
+
});
|
111
|
+
return false;
|
112
|
+
});
|
113
|
+
}
|
114
|
+
|
115
|
+
jQuery(document).ready(function() {
|
116
|
+
jQuery("#content_iframe").load(maximize_iframe_height);
|
117
|
+
jQuery(window).bind('resize', function() {
|
118
|
+
maximize_iframe_height();
|
119
|
+
});
|
120
|
+
});
|
121
|
+
|
122
|
+
function maximize_iframe_height() {
|
123
|
+
var frame = jQuery("#content_iframe");
|
124
|
+
frame.height(jQuery(window).height() - jQuery('#toolbar').height());
|
125
|
+
jQuery('#recs_panel').css("left", jQuery("#content_iframe").width() - 252);
|
126
|
+
}
|
127
|
+
|
128
|
+
function initRecsPanel() {
|
129
|
+
var panel = jQuery("#recs_panel");
|
130
|
+
panel.append("<div id='rec_close_box' title='Close'>x</div>");
|
131
|
+
jQuery("#rec_close_box").click(function() {jQuery("#recs_panel").hide();jQuery("#show_recommendations_link").show();return false;});
|
132
|
+
panel.css("left", jQuery("#toolbar").width() - 250);
|
133
|
+
if (panel.draggable) panel.draggable();
|
134
|
+
}
|
@@ -1,104 +1,10 @@
|
|
1
|
-
function
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
function () {
|
12
|
-
jQuery(this).show();
|
13
|
-
},
|
14
|
-
function () {
|
15
|
-
jQuery(this).hide();
|
16
|
-
}
|
17
|
-
);
|
18
|
-
}
|
19
|
-
|
20
|
-
function show_tool(tool) {
|
21
|
-
jQuery('.tool').hide();
|
22
|
-
jQuery('#content_iframe').width('75%');
|
23
|
-
jQuery('#' + tool + '_tool').show();
|
24
|
-
jQuery('#recs_panel').css("left", jQuery("#content_iframe").width() - 252);
|
25
|
-
maximize_space();
|
26
|
-
return false;
|
27
|
-
}
|
28
|
-
function maximize_space() {
|
29
|
-
var container = jQuery(".tools_container");
|
30
|
-
var spacer = jQuery('#comments_tools_close_wrapper').height() + 5;
|
31
|
-
container.height(jQuery(window).height() - (jQuery('#toolbar').height() + spacer));
|
32
|
-
}
|
33
|
-
function setup_entry_comment_submit(){
|
34
|
-
jQuery(".entry-comment-submit").click(function() {
|
35
|
-
jQuery(this).siblings('textarea').hide();
|
36
|
-
jQuery(".entry-comment-submit").hide();
|
37
|
-
jQuery(this).parent().append('<p class="entry-comment-loading"><img src="/images/spinner.gif" alt="loading..." /> ' + ADD_COMMENT_MESSAGE + '</p>');
|
38
|
-
var form = jQuery(this).parents('form');
|
39
|
-
jQuery.post(form.attr('action'), form.serialize() + '&format=json',
|
40
|
-
function(data){
|
41
|
-
var json = eval('(' + data + ')');
|
42
|
-
if(!json.success){
|
43
|
-
jQuery.jGrowl.info(json.message);
|
44
|
-
} else {
|
45
|
-
jQuery('.entry-comment-loading').remove();
|
46
|
-
jQuery('#comments_tool').find('textarea').show();
|
47
|
-
jQuery('#comments_tool').find('textarea').val('');
|
48
|
-
jQuery(".entry-comment-submit").show();
|
49
|
-
jQuery("#comments_container").animate({ scrollTop: jQuery("#comments_tool").attr("scrollHeight") }, 3000);
|
50
|
-
var contents = jQuery(json.html)
|
51
|
-
contents.hide();
|
52
|
-
jQuery('#comments_wrapper').append(contents);
|
53
|
-
contents.fadeIn("slow");
|
54
|
-
apply_frame_comment_hover();
|
55
|
-
}
|
56
|
-
});
|
57
|
-
return false;
|
58
|
-
});
|
59
|
-
}
|
60
|
-
function apply_frame_comment_hover(){
|
61
|
-
jQuery('.comment_holder').hover(
|
62
|
-
function () { jQuery(this).addClass('comment-hover'); },
|
63
|
-
function () { jQuery(this).removeClass('comment-hover'); } );
|
64
|
-
}
|
65
|
-
function setup_share_submit(){
|
66
|
-
jQuery('#share_submit_share_new').click(function() {
|
67
|
-
jQuery(this).parent().append('<p class="share-loading"><img src="/images/spinner.gif" alt="loading..." /> ' + ADD_SHARE_MESSAGE + '</p>');
|
68
|
-
jQuery('#share_submit_share_new').hide();
|
69
|
-
var form = jQuery(this).parents('form');
|
70
|
-
jQuery.post(form.attr('action'), form.serialize() + '&format=json',
|
71
|
-
function(data){
|
72
|
-
var json = eval('(' + data + ')');
|
73
|
-
jQuery('.share-loading').remove();
|
74
|
-
jQuery('#share_submit_share_new').show();
|
75
|
-
if(!json.success){
|
76
|
-
jQuery.jGrowl.info(json.message);
|
77
|
-
} else {
|
78
|
-
jQuery.jGrowl.info(json.message);
|
79
|
-
}
|
80
|
-
});
|
81
|
-
return false;
|
82
|
-
});
|
83
|
-
}
|
84
|
-
|
85
|
-
jQuery(document).ready(function() {
|
86
|
-
jQuery("#content_iframe").load(maximize_iframe_height);
|
87
|
-
jQuery(window).bind('resize', function() {
|
88
|
-
maximize_iframe_height();
|
89
|
-
});
|
90
|
-
});
|
91
|
-
|
92
|
-
function maximize_iframe_height() {
|
93
|
-
var frame = jQuery("#content_iframe");
|
94
|
-
frame.height(jQuery(window).height() - jQuery('#toolbar').height());
|
95
|
-
jQuery('#recs_panel').css("left", jQuery("#content_iframe").width() - 252);
|
96
|
-
}
|
97
|
-
|
98
|
-
function initRecsPanel() {
|
99
|
-
var panel = jQuery("#recs_panel");
|
100
|
-
panel.append("<div id='rec_close_box' title='Close'>x</div>");
|
101
|
-
jQuery("#rec_close_box").click(function() {jQuery("#recs_panel").hide();jQuery("#show_recommendations_link").show();return false;});
|
102
|
-
panel.css("left", jQuery("#toolbar").width() - 250);
|
103
|
-
if (panel.draggable) panel.draggable();
|
104
|
-
}
|
1
|
+
function apply_add_feed(){jQuery(".add-identity").bind("submit",function(){jQuery("#submit_add_feed").hide();jQuery("#finding_uri_message").show();jQuery(this).ajaxSubmit({dataType:"script",beforeSend:add_headers});return false})}function apply_delete_feed(){jQuery(".identity-feed-delete").bind("submit",function(){jQuery(this).replaceWith(jQuery(jQuery("#muck_ajax_delete_control_message").html()).show());jQuery(this).ajaxSubmit({dataType:"script",beforeSend:add_headers});return false})}
|
2
|
+
function apply_delete_hover(){jQuery("ul#my-services-list li form").hide();jQuery("ul#my-services-list li").hover(function(){jQuery(this).children("form").show()},function(){jQuery(this).children("form").hide()})}
|
3
|
+
function apply_show_entry_content(){jQuery(".combined-feed-list .feed-item .feed-title").hover(function(){jQuery(this).next(".combined-feed-list .feed-item .feed-content").show()},function(){jQuery(this).next(".combined-feed-list .feed-item .feed-content").hide()});jQuery(".combined-feed-list .feed-item .feed-content").hover(function(){jQuery(this).show()},function(){jQuery(this).hide()})}
|
4
|
+
function show_tool(b){jQuery(".tool").hide();jQuery("#content_iframe").width("75%");jQuery("#"+b+"_tool").show();jQuery("#recs_panel").css("left",jQuery("#content_iframe").width()-252);maximize_space();return false}function maximize_space(){var b=jQuery(".tools_container"),a=jQuery("#comments_tools_close_wrapper").height()+5;b.height(jQuery(window).height()-(jQuery("#toolbar").height()+a))}
|
5
|
+
function setup_entry_comment_submit(){jQuery(".entry-comment-submit").click(function(){jQuery(this).siblings("textarea").hide();jQuery(".entry-comment-submit").hide();jQuery(this).parent().append('<p class="entry-comment-loading"><img src="/images/spinner.gif" alt="loading..." /> '+ADD_COMMENT_MESSAGE+"</p>");var b=jQuery(this).parents("form");jQuery.post(b.attr("action"),b.serialize()+"&format=json",function(a){a=eval("("+a+")");if(a.success){jQuery(".entry-comment-loading").remove();jQuery("#comments_tool").find("textarea").show();
|
6
|
+
jQuery("#comments_tool").find("textarea").val("");jQuery(".entry-comment-submit").show();jQuery("#comments_container").animate({scrollTop:jQuery("#comments_tool").attr("scrollHeight")},3E3);a=jQuery(a.html);a.hide();jQuery("#comments_wrapper").append(a);a.fadeIn("slow");apply_frame_comment_hover()}else jQuery.jGrowl.info(a.message)});return false})}
|
7
|
+
function apply_frame_comment_hover(){jQuery(".comment_holder").hover(function(){jQuery(this).addClass("comment-hover")},function(){jQuery(this).removeClass("comment-hover")})}
|
8
|
+
function setup_share_submit(){jQuery("#share_submit_share_new").click(function(){jQuery(this).parent().append('<p class="share-loading"><img src="/images/spinner.gif" alt="loading..." /> '+ADD_SHARE_MESSAGE+"</p>");jQuery("#share_submit_share_new").hide();var b=jQuery(this).parents("form");jQuery.post(b.attr("action"),b.serialize()+"&format=json",function(a){a=eval("("+a+")");jQuery(".share-loading").remove();jQuery("#share_submit_share_new").show();jQuery.jGrowl.info(a.message)});return false})}
|
9
|
+
jQuery(document).ready(function(){jQuery("#content_iframe").load(maximize_iframe_height);jQuery(window).bind("resize",function(){maximize_iframe_height()})});function maximize_iframe_height(){jQuery("#content_iframe").height(jQuery(window).height()-jQuery("#toolbar").height());jQuery("#recs_panel").css("left",jQuery("#content_iframe").width()-252)}
|
10
|
+
function initRecsPanel(){var b=jQuery("#recs_panel");b.append("<div id='rec_close_box' title='Close'>x</div>");jQuery("#rec_close_box").click(function(){jQuery("#recs_panel").hide();jQuery("#show_recommendations_link").show();return false});b.css("left",jQuery("#toolbar").width()-250);b.draggable&&b.draggable()};
|
@@ -13,6 +13,7 @@
|
|
13
13
|
#identity-feed input[type="text"] {width:380px;}
|
14
14
|
ul#my-services-list li {position:relative;}
|
15
15
|
ul#my-services-list li form {right:-25px;position:absolute;top:3px;}
|
16
|
+
ul#my-services-list li .waiting{height:15px;display:inline-block;}
|
16
17
|
ul.service-summary{margin:0;padding:0;list-style:none;}
|
17
18
|
ul.service-summary a.service-link{display:inline-block;margin:2px 0;padding:2px 0 5px 28px;text-decoration:none;}
|
18
19
|
#data-sources #sources-list ul {float:left;display:inline-block;height:170px;margin:0 20px;width:150px;}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: muck-services
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 3.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 3.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Joel Duffin
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-01
|
19
|
+
date: 2011-02-01 00:00:00 -07:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -312,12 +312,14 @@ files:
|
|
312
312
|
- app/views/feeds/new_oai_rss.html.erb
|
313
313
|
- app/views/feeds/show.html.erb
|
314
314
|
- app/views/feeds/unban.html.erb
|
315
|
-
- app/views/identity_feeds/_available_service_categories.
|
315
|
+
- app/views/identity_feeds/_available_service_categories.erb
|
316
316
|
- app/views/identity_feeds/_form.erb
|
317
|
-
- app/views/identity_feeds/_services_for_user.
|
318
|
-
- app/views/identity_feeds/
|
319
|
-
- app/views/identity_feeds/
|
320
|
-
- app/views/identity_feeds/
|
317
|
+
- app/views/identity_feeds/_services_for_user.erb
|
318
|
+
- app/views/identity_feeds/create.erb
|
319
|
+
- app/views/identity_feeds/destroy.erb
|
320
|
+
- app/views/identity_feeds/edit.erb
|
321
|
+
- app/views/identity_feeds/index.erb
|
322
|
+
- app/views/identity_feeds/new.erb
|
321
323
|
- app/views/oai_endpoints/_form.html.erb
|
322
324
|
- app/views/oai_endpoints/_oai_endpoint_row.html.erb
|
323
325
|
- app/views/oai_endpoints/new.html.erb
|
@@ -331,18 +333,18 @@ files:
|
|
331
333
|
- app/views/recommendations/index.rss.builder
|
332
334
|
- app/views/recommendations/index.xml.builder
|
333
335
|
- app/views/recommendations/real_time.html.erb
|
334
|
-
- app/views/service_templates/_facebook.
|
335
|
-
- app/views/service_templates/_friendfeed.
|
336
|
-
- app/views/service_templates/_goodreads.
|
337
|
-
- app/views/service_templates/_linkedin.
|
338
|
-
- app/views/service_templates/_netflix.
|
339
|
-
- app/views/service_templates/_polyvore.
|
340
|
-
- app/views/service_templates/_zotero_group.
|
341
|
-
- app/views/services/_edit_service.
|
342
|
-
- app/views/services/_new_service.
|
343
|
-
- app/views/services/_personal_recommendations.
|
344
|
-
- app/views/services/_summary.
|
345
|
-
- app/views/services/_view_service.
|
336
|
+
- app/views/service_templates/_facebook.erb
|
337
|
+
- app/views/service_templates/_friendfeed.erb
|
338
|
+
- app/views/service_templates/_goodreads.erb
|
339
|
+
- app/views/service_templates/_linkedin.erb
|
340
|
+
- app/views/service_templates/_netflix.erb
|
341
|
+
- app/views/service_templates/_polyvore.erb
|
342
|
+
- app/views/service_templates/_zotero_group.erb
|
343
|
+
- app/views/services/_edit_service.erb
|
344
|
+
- app/views/services/_new_service.erb
|
345
|
+
- app/views/services/_personal_recommendations.erb
|
346
|
+
- app/views/services/_summary.erb
|
347
|
+
- app/views/services/_view_service.erb
|
346
348
|
- app/views/services_mailer/notification_feed_added.html.erb
|
347
349
|
- app/views/services_mailer/notification_feed_added.text.erb
|
348
350
|
- app/views/services_mailer/notification_oai_endpoint_added.html.erb
|
@@ -460,6 +462,7 @@ files:
|
|
460
462
|
- lib/muck-services/services.rb
|
461
463
|
- lib/tasks/muck_services.rake
|
462
464
|
- muck-services.gemspec
|
465
|
+
- public/javascripts/muck_services-src.js
|
463
466
|
- public/javascripts/muck_services.js
|
464
467
|
- public/stylesheets/frame.css
|
465
468
|
- public/stylesheets/muck-services.css
|
@@ -1,25 +0,0 @@
|
|
1
|
-
<div id="my-services" class="services-main <%= css %>">
|
2
|
-
<h2><%= title || I18n.t('muck.services.my_services') %></h2>
|
3
|
-
<ul id="my-services-list" class="services-list">
|
4
|
-
<% if edit -%>
|
5
|
-
<%= render(:partial => 'services/edit_service', :collection => identity_feeds) %>
|
6
|
-
<% else -%>
|
7
|
-
<%= render(:partial => 'services/view_service', :collection => identity_feeds) %>
|
8
|
-
<% end -%>
|
9
|
-
</ul>
|
10
|
-
</div>
|
11
|
-
<% content_for :javascript do -%>
|
12
|
-
jQuery(document).ready(function() {
|
13
|
-
jQuery('ul#my-services-list li form').hide();
|
14
|
-
jQuery('ul#my-services-list li').hover(
|
15
|
-
function () { jQuery(this).children('form').show(); },
|
16
|
-
function () { jQuery(this).children('form').hide(); }
|
17
|
-
);
|
18
|
-
|
19
|
-
jQuery('.muck_ajax_delete_control').click(function(){
|
20
|
-
jQuery(this).parents('li').html(jQuery('#muck_ajax_delete_control_message').html());
|
21
|
-
return true;
|
22
|
-
});
|
23
|
-
});
|
24
|
-
<% end -%>
|
25
|
-
|
@@ -1,32 +0,0 @@
|
|
1
|
-
<%= output_errors('', {:class => 'help-box'}) %>
|
2
|
-
<%= available_service_categories(@service_categories, nil, 'span-15') %>
|
3
|
-
<%= services_for_user(@user_services, nil, 'span-5') %>
|
4
|
-
|
5
|
-
<% content_for :javascript do -%>
|
6
|
-
jQuery(document).ready(function() {
|
7
|
-
jQuery('a.lightbox').fancybox({
|
8
|
-
'hideOnContentClick': false,
|
9
|
-
'overlayShow': true,
|
10
|
-
'frameWidth': 400,
|
11
|
-
'frameHeight': 100
|
12
|
-
});
|
13
|
-
jQuery('a#facebook-link').fancybox({
|
14
|
-
'hideOnContentClick': false,
|
15
|
-
'overlayShow': true,
|
16
|
-
'frameWidth': 400,
|
17
|
-
'frameHeight': 275
|
18
|
-
});
|
19
|
-
jQuery('a#zotero-groups-link').fancybox({
|
20
|
-
'hideOnContentClick': false,
|
21
|
-
'overlayShow': true,
|
22
|
-
'frameWidth': 400,
|
23
|
-
'frameHeight': 130
|
24
|
-
});
|
25
|
-
jQuery('a#netflix-link').fancybox({
|
26
|
-
'hideOnContentClick': false,
|
27
|
-
'overlayShow': true,
|
28
|
-
'frameWidth': 400,
|
29
|
-
'frameHeight': 160
|
30
|
-
});
|
31
|
-
});
|
32
|
-
<% end -%>
|