Commit ac42021dd561b723f14819656927ee20a636710d
Committed by
Daniela Feitosa
1 parent
f99a9e55
Exists in
master
and in
29 other branches
Layouts for wall activities done, scraps missing
Showing
11 changed files
with
106 additions
and
4 deletions
Show diff stats
app/models/event.rb
@@ -120,6 +120,10 @@ class Event < Article | @@ -120,6 +120,10 @@ class Event < Article | ||
120 | true | 120 | true |
121 | end | 121 | end |
122 | 122 | ||
123 | + def notifiable? | ||
124 | + true | ||
125 | + end | ||
126 | + | ||
123 | include Noosfero::TranslatableContent | 127 | include Noosfero::TranslatableContent |
124 | include MaybeAddHttp | 128 | include MaybeAddHttp |
125 | 129 |
app/models/forum.rb
@@ -24,4 +24,13 @@ class Forum < Folder | @@ -24,4 +24,13 @@ class Forum < Folder | ||
24 | def self.icon_name(article = nil) | 24 | def self.icon_name(article = nil) |
25 | 'forum' | 25 | 'forum' |
26 | end | 26 | end |
27 | + | ||
28 | + def notifiable? | ||
29 | + true | ||
30 | + end | ||
31 | + | ||
32 | + def first_paragraph | ||
33 | + paragraphs = Hpricot(body).search('p') | ||
34 | + paragraphs.empty? ? '' : paragraphs.first.to_html | ||
35 | + end | ||
27 | end | 36 | end |
app/models/uploaded_file.rb
@@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
4 | # of the file itself is kept. (FIXME?) | 4 | # of the file itself is kept. (FIXME?) |
5 | class UploadedFile < Article | 5 | class UploadedFile < Article |
6 | 6 | ||
7 | - track_actions :upload_image, :after_create, :keep_params => ["view_url", "thumbnail_path", "parent.url", "parent.name"], :if => Proc.new { |a| a.published? && a.image? && !a.parent.nil? && a.parent.gallery? } | 7 | + track_actions :upload_image, :after_create, :keep_params => ["view_url", "thumbnail_path", "parent.url", "parent.name"], :if => Proc.new { |a| a.published? && a.image? && !a.parent.nil? && a.parent.gallery? }, :custom_target => :parent |
8 | 8 | ||
9 | include ShortFilename | 9 | include ShortFilename |
10 | 10 |
app/views/profile/_create_article.rhtml
@@ -2,8 +2,10 @@ | @@ -2,8 +2,10 @@ | ||
2 | <%= link_to(profile_image(activity.user, :minor), activity.user.url) %> | 2 | <%= link_to(profile_image(activity.user, :minor), activity.user.url) %> |
3 | </div> | 3 | </div> |
4 | <div class='profile-activity-description'> | 4 | <div class='profile-activity-description'> |
5 | - <p class='profile-activity-text'><%= link_to activity.user.name, activity.user.url %> <%= describe activity %></p> | ||
6 | - <div class='profile-activity-lead'><%= image_tag(activity.params['first_image']) if activity.params['first_image'] %><%= strip_tags(activity.params['lead']).gsub(/(\xA0|\xC2|\s)+/, ' ').gsub(/^\s+/, '') %></div> | 5 | + <p class='profile-activity-text'><%= link_to activity.user.name, activity.user.url %></p> |
6 | + <div class='profile-activity-lead'> | ||
7 | + <b><%= activity.params['name'] %></b> <span title='<%= activity.target.class.short_description %>' class='profile-activity-icon icon-new icon-new<%= activity.target.class.icon_name %>'></span><br /> | ||
8 | + <%= image_tag(activity.params['first_image']) unless activity.params['first_image'].blank? %><%= strip_tags(activity.params['lead']).gsub(/(\xA0|\xC2|\s)+/, ' ').gsub(/^\s+/, '') %> <small><%= link_to(_('See more +'), activity.params['url']) unless activity.get_lead.blank? %></small></div> | ||
7 | <p class='profile-activity-time'><%= time_ago_as_sentence(activity.created_at) + ' ' + _('ago') %></p> | 9 | <p class='profile-activity-time'><%= time_ago_as_sentence(activity.created_at) + ' ' + _('ago') %></p> |
8 | <div class='profile-wall-actions'> | 10 | <div class='profile-wall-actions'> |
9 | <%= link_to_remote(content_tag(:span, _('Remove')), :url =>{:action => 'remove_activity', :activity_id => activity.id}, :update => "profile-activity-item-#{activity.id}") if logged_in? && current_person == @profile %> | 11 | <%= link_to_remote(content_tag(:span, _('Remove')), :url =>{:action => 'remove_activity', :activity_id => activity.id}, :update => "profile-activity-item-#{activity.id}") if logged_in? && current_person == @profile %> |
config/initializers/action_tracker.rb
@@ -23,7 +23,7 @@ ActionTrackerConfig.verbs = { | @@ -23,7 +23,7 @@ ActionTrackerConfig.verbs = { | ||
23 | }, | 23 | }, |
24 | 24 | ||
25 | :upload_image => { | 25 | :upload_image => { |
26 | - :description => lambda { n_('uploaded 1 image:<br />%{thumbnails}<br />%{details}', 'uploaded %{num} images:<br />%{thumbnails}<br />%{details}', get_view_url.size) % { :num => get_view_url.size, :thumbnails => '{{ta.collect_group_with_index(:thumbnail_path){ |t,i| content_tag(:span, link_to(image_tag(t), ta.get_view_url[i]))}.last(3).join}}', :details => '{{unique_with_count(ta.collect_group_with_index(:parent_name){ |n,i| link_to(n, ta.get_parent_url[i])}, "%s").join("<br />")}}' % _("in the gallery") } }, | 26 | + :description => lambda { n_('uploaded 1 image:<br />%{thumbnails}<br style="clear: both;" />%{details}', 'uploaded %{num} images:<br />%{thumbnails}<br style="clear: both;" />%{details}', get_view_url.size) % { :num => get_view_url.size, :thumbnails => '{{ta.collect_group_with_index(:thumbnail_path){ |t,i| content_tag(:span, image_tag(t) + link_to(nil, ta.get_view_url[i]))}.last(3).join}}', :details => '{{unique_with_count(ta.collect_group_with_index(:parent_name){ |n,i| link_to(n, ta.get_parent_url[i])}, "%s").join("<br />")}}' % _("in the gallery") } }, |
27 | :type => :groupable | 27 | :type => :groupable |
28 | }, | 28 | }, |
29 | 29 |
732 Bytes
public/stylesheets/application.css
@@ -5911,6 +5911,65 @@ h1#agenda-title { | @@ -5911,6 +5911,65 @@ h1#agenda-title { | ||
5911 | color: #808080; | 5911 | color: #808080; |
5912 | } | 5912 | } |
5913 | 5913 | ||
5914 | +#profile-wall li.profile-activity-item.upload_image span, | ||
5915 | +#profile-wall li.profile-activity-item.upload_image span img, | ||
5916 | +#profile-wall li.profile-activity-item.upload_image span a { | ||
5917 | + width: 98px; | ||
5918 | + height: 86px; | ||
5919 | + display: block; | ||
5920 | + overflow: hidden; | ||
5921 | + position: absolute; | ||
5922 | +} | ||
5923 | + | ||
5924 | +#profile-wall li.profile-activity-item.upload_image span { | ||
5925 | + position: relative; | ||
5926 | + float: left; | ||
5927 | + margin: 5px 5px 5px 0; | ||
5928 | +} | ||
5929 | + | ||
5930 | +#profile-wall li.profile-activity-item.upload_image span a { | ||
5931 | + background: transparent url(/images/gallery-image-activity-border.png) center center no-repeat; | ||
5932 | + text-indent: -5000em; | ||
5933 | +} | ||
5934 | + | ||
5935 | +#profile-wall li.profile-activity-item.upload_image .article-comment span, | ||
5936 | +#profile-wall li.profile-activity-item.upload_image .profile-wall-actions span { | ||
5937 | + display: inline; | ||
5938 | + position: static; | ||
5939 | + margin: 0; | ||
5940 | + float: none; | ||
5941 | + width: auto; | ||
5942 | + height: auto; | ||
5943 | +} | ||
5944 | + | ||
5945 | +#profile-wall li.profile-activity-item ul.profile-wall-activities-comments { | ||
5946 | + margin-top: 0; | ||
5947 | +} | ||
5948 | + | ||
5949 | +#profile-wall li.profile-activity-item.upload_image .profile-activity-text { | ||
5950 | + padding-left: 50px; | ||
5951 | +} | ||
5952 | + | ||
5953 | +#profile-wall li.profile-activity-item.join_community .profile-activity-text a img, | ||
5954 | +#profile-wall li.profile-activity-item.new_friendship .profile-activity-text a img { | ||
5955 | + margin: 5px 5px 0 0; | ||
5956 | + padding: 1px; | ||
5957 | + border: 1px solid #ccc; | ||
5958 | +} | ||
5959 | + | ||
5960 | +#profile-wall li.profile-activity-item.create_article { | ||
5961 | + position: relative; | ||
5962 | +} | ||
5963 | + | ||
5964 | +.profile-activity-icon { | ||
5965 | + width: 16px; | ||
5966 | + height: 16px; | ||
5967 | + display: inline-block; | ||
5968 | + position: absolute; | ||
5969 | + top: 5px; | ||
5970 | + right: 5px; | ||
5971 | +} | ||
5972 | + | ||
5914 | #profile-activity .profile-wall-scrap-replies li, | 5973 | #profile-activity .profile-wall-scrap-replies li, |
5915 | #profile-network .profile-wall-scrap-replies li, | 5974 | #profile-network .profile-wall-scrap-replies li, |
5916 | #profile-wall .profile-wall-scrap-replies li { | 5975 | #profile-wall .profile-wall-scrap-replies li { |
test/unit/article_test.rb
@@ -1600,4 +1600,9 @@ assert_equal 'bla', profile.articles.map(&:comments_count) | @@ -1600,4 +1600,9 @@ assert_equal 'bla', profile.articles.map(&:comments_count) | ||
1600 | a = fast_create(Article, :body => '<p>Foo</p><p>Bar</p>') | 1600 | a = fast_create(Article, :body => '<p>Foo</p><p>Bar</p>') |
1601 | assert_equal '', a.first_image | 1601 | assert_equal '', a.first_image |
1602 | end | 1602 | end |
1603 | + | ||
1604 | + should 'store first image in tracked action' do | ||
1605 | + a = TinyMceArticle.create! :name => 'Tracked Article', :body => '<p>Foo<img src="foo.png" />Bar</p>', :profile_id => profile.id | ||
1606 | + assert_equal 'foo.png', ActionTracker::Record.last.get_first_image | ||
1607 | + end | ||
1603 | end | 1608 | end |
test/unit/event_test.rb
@@ -274,4 +274,7 @@ class EventTest < ActiveSupport::TestCase | @@ -274,4 +274,7 @@ class EventTest < ActiveSupport::TestCase | ||
274 | assert Event.new.tiny_mce? | 274 | assert Event.new.tiny_mce? |
275 | end | 275 | end |
276 | 276 | ||
277 | + should 'be notifiable' do | ||
278 | + assert Event.new.notifiable? | ||
279 | + end | ||
277 | end | 280 | end |
test/unit/forum_test.rb
@@ -110,4 +110,17 @@ class ForumTest < ActiveSupport::TestCase | @@ -110,4 +110,17 @@ class ForumTest < ActiveSupport::TestCase | ||
110 | assert !folder.accept_uploads? | 110 | assert !folder.accept_uploads? |
111 | end | 111 | end |
112 | 112 | ||
113 | + should 'be notifiable' do | ||
114 | + assert Forum.new.notifiable? | ||
115 | + end | ||
116 | + | ||
117 | + should 'get first paragraph' do | ||
118 | + f = fast_create(Forum, :body => '<p>First</p><p>Second</p>') | ||
119 | + assert_equal '<p>First</p>', f.first_paragraph | ||
120 | + end | ||
121 | + | ||
122 | + should 'not get first paragraph' do | ||
123 | + f = fast_create(Forum, :body => 'Nothing to do here') | ||
124 | + assert_equal '', f.first_paragraph | ||
125 | + end | ||
113 | end | 126 | end |
test/unit/uploaded_file_test.rb
@@ -330,4 +330,11 @@ class UploadedFileTest < ActiveSupport::TestCase | @@ -330,4 +330,11 @@ class UploadedFileTest < ActiveSupport::TestCase | ||
330 | assert_equal 'hello_world.php.txt', file.filename | 330 | assert_equal 'hello_world.php.txt', file.filename |
331 | end | 331 | end |
332 | 332 | ||
333 | + should 'use the gallery as the parent for action tracker' do | ||
334 | + p = fast_create(Gallery, :profile_id => @profile.id) | ||
335 | + f = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => p, :profile => @profile) | ||
336 | + ta = ActionTracker::Record.last(:conditions => { :verb => "upload_image" }) | ||
337 | + assert_equal f.parent, ta.target | ||
338 | + end | ||
339 | + | ||
333 | end | 340 | end |