Commit 7b83924b8edab8da1f49c0d2295d06e529ee5379
1 parent
c9d91c10
Exists in
staging
and in
4 other branches
plugin template
Showing
9 changed files
with
525 additions
and
0 deletions
Show diff stats
@@ -0,0 +1,21 @@ | @@ -0,0 +1,21 @@ | ||
1 | +class DspacePlugin < Noosfero::Plugin | ||
2 | + | ||
3 | + def self.plugin_name | ||
4 | + "Relevant Content Plugin" | ||
5 | + end | ||
6 | + | ||
7 | + def self.plugin_description | ||
8 | + _("A plugin that lists the most accessed, most commented, most liked and most disliked contents.") | ||
9 | + end | ||
10 | + | ||
11 | + def self.extra_blocks | ||
12 | + { | ||
13 | + DspacePlugin::DspaceBlock => {} | ||
14 | + } | ||
15 | + end | ||
16 | + | ||
17 | + def stylesheet? | ||
18 | + true | ||
19 | + end | ||
20 | + | ||
21 | +end |
@@ -0,0 +1,97 @@ | @@ -0,0 +1,97 @@ | ||
1 | +class DspacePlugin::DspaceBlock < Block | ||
2 | + def self.description | ||
3 | + _('Dspace content') | ||
4 | + end | ||
5 | + | ||
6 | + def default_title | ||
7 | + _('Dspace content') | ||
8 | + end | ||
9 | + | ||
10 | + def help | ||
11 | + _('This block displays dspace content.') | ||
12 | + end | ||
13 | + | ||
14 | + settings_items :limit, :type => :integer, :default => 5 | ||
15 | + settings_items :show_most_read, :type => :boolean, :default => 1 | ||
16 | + settings_items :show_most_commented, :type => :boolean, :default => 1 | ||
17 | + settings_items :show_most_liked, :type => :boolean, :default => 1 | ||
18 | + settings_items :show_most_disliked, :type => :boolean, :default => 0 | ||
19 | + settings_items :show_most_voted, :type => :boolean, :default => 1 | ||
20 | + | ||
21 | + attr_accessible :limit, :show_most_voted, :show_most_disliked, :show_most_liked, :show_most_commented, :show_most_read | ||
22 | + | ||
23 | + include ActionView::Helpers | ||
24 | + include Rails.application.routes.url_helpers | ||
25 | + | ||
26 | + def content(args={}) | ||
27 | + | ||
28 | + content = block_title(title) | ||
29 | + | ||
30 | + if self.show_most_read | ||
31 | + docs = Article.most_accessed(owner, self.limit) | ||
32 | + if !docs.blank? | ||
33 | + subcontent = "" | ||
34 | + subcontent += content_tag(:span, _("Most read articles"), :class=>"title mread") + "\n" | ||
35 | + subcontent += content_tag(:ul, docs.map {|item| content_tag('li', link_to(h(item.title), item.url))}.join("\n")) | ||
36 | + content += content_tag(:div, subcontent, :class=>"block mread") + "\n" | ||
37 | + end | ||
38 | + end | ||
39 | + | ||
40 | + if self.show_most_commented | ||
41 | + docs = Article.most_commented_dspace(owner, self.limit) | ||
42 | + if !docs.blank? | ||
43 | + subcontent = "" | ||
44 | + subcontent += content_tag(:span, _("Most commented articles"), :class=>"title mcommented") + "\n" | ||
45 | + subcontent += content_tag(:ul, docs.map {|item| content_tag('li', link_to(h(item.title), item.url))}.join("\n")) | ||
46 | + content += content_tag(:div, subcontent, :class=>"block mcommented") + "\n" | ||
47 | + end | ||
48 | + end | ||
49 | + | ||
50 | + if owner.kind_of?(Environment) | ||
51 | + env = owner | ||
52 | + else | ||
53 | + env = owner.environment | ||
54 | + end | ||
55 | + | ||
56 | + if env.plugin_enabled?(VotePlugin) | ||
57 | + if self.show_most_liked | ||
58 | + docs = Article.more_positive_votes(owner, self.limit) | ||
59 | + if !docs.blank? | ||
60 | + subcontent = "" | ||
61 | + subcontent += content_tag(:span, _("Most liked articles"), :class=>"title mliked") + "\n" | ||
62 | + subcontent += content_tag(:ul, docs.map {|item| content_tag('li', link_to(h(item.title), item.url))}.join("\n")) | ||
63 | + content += content_tag(:div, subcontent, :class=>"block mliked") + "\n" | ||
64 | + end | ||
65 | + end | ||
66 | + if self.show_most_disliked | ||
67 | + docs = Article.more_negative_votes(owner, self.limit) | ||
68 | + if !docs.blank? | ||
69 | + subcontent = "" | ||
70 | + subcontent += content_tag(:span, _("Most disliked articles"), :class=>"title mdisliked") + "\n" | ||
71 | + subcontent += content_tag(:ul, docs.map {|item| content_tag('li', link_to(h(item.title), item.url))}.join("\n")) | ||
72 | + content += content_tag(:div, subcontent, :class=>"block mdisliked") + "\n" | ||
73 | + end | ||
74 | + end | ||
75 | + | ||
76 | + if self.show_most_voted | ||
77 | + docs = Article.most_voted(owner, self.limit) | ||
78 | + if !docs.blank? | ||
79 | + subcontent = "" | ||
80 | + subcontent += content_tag(:span, _("Most voted articles"), :class=>"title mvoted") + "\n" | ||
81 | + subcontent += content_tag(:ul, docs.map {|item| content_tag('li', link_to(h(item.title), item.url))}.join("\n")) | ||
82 | + content += content_tag(:div, subcontent, :class=>"block mvoted") + "\n" | ||
83 | + end | ||
84 | + end | ||
85 | + end | ||
86 | + return content | ||
87 | + end | ||
88 | + | ||
89 | + def timeout | ||
90 | + 4.hours | ||
91 | + end | ||
92 | + | ||
93 | + def self.expire_on | ||
94 | + { :profile => [:article], :environment => [:article] } | ||
95 | + end | ||
96 | + | ||
97 | +end |
@@ -0,0 +1,95 @@ | @@ -0,0 +1,95 @@ | ||
1 | +require_dependency 'article' | ||
2 | + | ||
3 | +class Article | ||
4 | + | ||
5 | + scope :dspace, :conditions => ["articles.published = true and (articles.type != 'UploadedFile' and articles.type != 'Blog' and articles.type != 'RssFeed') OR articles.type is NULL"] | ||
6 | + | ||
7 | + def self.articles_columns | ||
8 | + Article.column_names.map {|c| "articles.#{c}"} .join(",") | ||
9 | + end | ||
10 | + | ||
11 | + def self.most_accessed(owner, limit = nil) | ||
12 | + conditions = owner.kind_of?(Environment) ? ["hits > 0"] : ["profile_id = ? and hits > 0", owner.id] | ||
13 | + result = Article.dspace.find( | ||
14 | + :all, | ||
15 | + :order => 'hits desc', | ||
16 | + :limit => limit, | ||
17 | + :conditions => conditions) | ||
18 | + result.paginate({:page => 1, :per_page => limit}) | ||
19 | + end | ||
20 | + | ||
21 | + def self.most_commented_dspace(owner, limit) | ||
22 | + conditions = owner.kind_of?(Environment) ? ["comments_count > 0"] : ["profile_id = ? and comments_count > 0", owner.id] | ||
23 | + result = Article.dspace.find( | ||
24 | + :all, | ||
25 | + :order => 'comments_count desc', | ||
26 | + :limit => limit, | ||
27 | + :conditions => conditions) | ||
28 | + result.paginate({:page => 1, :per_page => limit}) | ||
29 | + end | ||
30 | + | ||
31 | + def self.more_positive_votes(owner, limit = nil) | ||
32 | + conditions = owner.kind_of?(Environment) ? {'votes.voteable_type' => 'Article'} : ["profile_id = ? and votes.voteable_type = ? ", owner.id, 'Article'] | ||
33 | + result = Article.dspace.find( | ||
34 | + :all, | ||
35 | + :order => 'sum(vote) desc', | ||
36 | + :group => 'voteable_id, ' + articles_columns, | ||
37 | + :limit => limit, | ||
38 | + :having => ['sum(vote) > 0'], | ||
39 | + :conditions => conditions, | ||
40 | + :joins => 'INNER JOIN votes ON articles.id = votes.voteable_id') | ||
41 | + result.paginate({:page => 1, :per_page => limit}) | ||
42 | + end | ||
43 | + | ||
44 | + def self.more_negative_votes(owner, limit = nil) | ||
45 | + conditions = owner.kind_of?(Environment) ? {'votes.voteable_type' => 'Article'} : ["profile_id = ? and votes.voteable_type = 'Article' ", owner.id] | ||
46 | + result = Article.dspace.find( | ||
47 | + :all, | ||
48 | + :order => 'sum(vote) asc', | ||
49 | + :group => 'voteable_id, ' + articles_columns, | ||
50 | + :limit => limit, | ||
51 | + :having => ['sum(vote) < 0'], | ||
52 | + :conditions => conditions, | ||
53 | + :joins => 'INNER JOIN votes ON articles.id = votes.voteable_id' | ||
54 | + ) | ||
55 | + result.paginate({:page => 1, :per_page => limit}) | ||
56 | + end | ||
57 | + | ||
58 | + def self.most_liked(owner, limit = nil) | ||
59 | + conditions = owner.kind_of?(Environment) ? ["votes.voteable_type = 'Article' and vote > 0"] : ["votes.voteable_type = 'Article' and vote > 0 and profile_id = ? ", owner.id] | ||
60 | + result = Article.dspace.find( | ||
61 | + :all, | ||
62 | + :select => articles_columns, | ||
63 | + :order => 'count(voteable_id) desc', | ||
64 | + :group => 'voteable_id, ' + articles_columns, | ||
65 | + :limit => limit, | ||
66 | + :conditions => conditions, | ||
67 | + :joins => 'INNER JOIN votes ON articles.id = votes.voteable_id') | ||
68 | + result.paginate({:page => 1, :per_page => limit}) | ||
69 | + end | ||
70 | + | ||
71 | + def self.most_disliked(owner, limit = nil) | ||
72 | + conditions = owner.kind_of?(Environment) ? ["votes.voteable_type = 'Article' and vote < 0"] : ["votes.voteable_type = 'Article' and vote < 0 and profile_id = ? ", owner.id] | ||
73 | + result = Article.dspace.find( | ||
74 | + :all, | ||
75 | + :order => 'count(voteable_id) desc', | ||
76 | + :group => 'voteable_id, ' + articles_columns, | ||
77 | + :limit => limit, | ||
78 | + :conditions => conditions, | ||
79 | + :joins => 'INNER JOIN votes ON articles.id = votes.voteable_id') | ||
80 | + result.paginate({:page => 1, :per_page => limit}) | ||
81 | + end | ||
82 | + | ||
83 | + def self.most_voted(owner, limit = nil) | ||
84 | + conditions = owner.kind_of?(Environment) ? ["votes.voteable_type = 'Article'"] : ["votes.voteable_type = 'Article' and profile_id = ? ", owner.id] | ||
85 | + result = Article.dspace.find( | ||
86 | + :all, | ||
87 | + :select => articles_columns, | ||
88 | + :order => 'count(voteable_id) desc', | ||
89 | + :group => 'voteable_id, ' + articles_columns, | ||
90 | + :limit => limit, | ||
91 | + :conditions => conditions, | ||
92 | + :joins => 'INNER JOIN votes ON articles.id = votes.voteable_id') | ||
93 | + result.paginate({:page => 1, :per_page => limit}) | ||
94 | + end | ||
95 | +end |
@@ -0,0 +1,79 @@ | @@ -0,0 +1,79 @@ | ||
1 | +#content .dspace-plugin_dspace-block { | ||
2 | + padding: 10px 0px 10px 10px; | ||
3 | + word-wrap: break-word; | ||
4 | +} | ||
5 | + | ||
6 | +.dspace-plugin_dspace-block ul { | ||
7 | + margin: 0px; | ||
8 | + padding: 0px 0px 0px 20px; | ||
9 | +} | ||
10 | +.dspace-plugin_dspace-block li { | ||
11 | + margin: 0px; | ||
12 | + padding: 0px; | ||
13 | + list-style: none | ||
14 | +} | ||
15 | +.dspace-plugin_dspace-block a { | ||
16 | + text-decoration: none; | ||
17 | +} | ||
18 | +.dspace-plugin_dspace-block .block-footer-content { | ||
19 | + font-size: 10px; | ||
20 | +} | ||
21 | +.dspace-plugin_dspace-block .block-footer-content a:hover { | ||
22 | + text-decoration: underline; | ||
23 | +} | ||
24 | + | ||
25 | +.dspace-plugin_dspace-block p { | ||
26 | + text-align:center; | ||
27 | +} | ||
28 | + | ||
29 | +.dspace-plugin_dspace-block p.like{ | ||
30 | + background-image: url('images/positive-hand.png'); | ||
31 | + background-repeat: no-repeat; | ||
32 | + min-width: 50px; | ||
33 | + text-align:center; | ||
34 | +} | ||
35 | + | ||
36 | +.dspace-plugin_dspace-block p.dislike{ | ||
37 | + background-image: url('images/negative-hand.png'); | ||
38 | + background-repeat: no-repeat; | ||
39 | + min-width: 50px; | ||
40 | + text-align:center; | ||
41 | +} | ||
42 | + | ||
43 | + | ||
44 | +.dspace-plugin_dspace-block { | ||
45 | + //overflow: hidden; | ||
46 | + display: block; | ||
47 | + width: 100%; | ||
48 | +} | ||
49 | + | ||
50 | + | ||
51 | +.dspace-cover img { | ||
52 | + width: 100%; | ||
53 | +} | ||
54 | + | ||
55 | +.dspace-plugin_dspace-block span.title { | ||
56 | + display: block; | ||
57 | + margin: 20px 0px 0px; | ||
58 | + padding: 0px 0px 0px 20px; | ||
59 | +} | ||
60 | + | ||
61 | +.dspace-plugin_dspace-block span.title.mread { | ||
62 | + | ||
63 | +} | ||
64 | + | ||
65 | +.dspace-plugin_dspace-block span.title.mcommented { | ||
66 | + | ||
67 | +} | ||
68 | + | ||
69 | +.dspace-plugin_dspace-block span.title.mliked { | ||
70 | + | ||
71 | +} | ||
72 | + | ||
73 | +.dspace-plugin_dspace-block span.title.mdisliked { | ||
74 | + | ||
75 | +} | ||
76 | + | ||
77 | +.dspace-plugin_dspace-block span.title.mvoted { | ||
78 | + | ||
79 | +} |
@@ -0,0 +1 @@ | @@ -0,0 +1 @@ | ||
1 | +require File.dirname(__FILE__) + '/../../../test/test_helper' |
@@ -0,0 +1,148 @@ | @@ -0,0 +1,148 @@ | ||
1 | +require File.dirname(__FILE__) + '/../test_helper' | ||
2 | + | ||
3 | +require 'comment_controller' | ||
4 | +# Re-raise errors caught by the controller. | ||
5 | +class CommentController; def rescue_action(e) raise e end; end | ||
6 | + | ||
7 | +class DspaceBlockTest < ActiveSupport::TestCase | ||
8 | + | ||
9 | + include AuthenticatedTestHelper | ||
10 | + fixtures :users, :environments | ||
11 | + | ||
12 | + def setup | ||
13 | + @controller = CommentController.new | ||
14 | + @request = ActionController::TestRequest.new | ||
15 | + @response = ActionController::TestResponse.new | ||
16 | + @profile = create_user('testinguser').person | ||
17 | + @environment = @profile.environment | ||
18 | + end | ||
19 | + attr_reader :profile, :environment | ||
20 | + | ||
21 | + def enable_vote_plugin | ||
22 | + enabled = false | ||
23 | + environment=Environment.default | ||
24 | + if Noosfero::Plugin.all.include?('VotePlugin') | ||
25 | + if not environment.enabled_plugins.include?(:vote) | ||
26 | + environment.enable_plugin(Vote) | ||
27 | + environment.save! | ||
28 | + end | ||
29 | + enabled = true | ||
30 | + end | ||
31 | + enabled | ||
32 | + end | ||
33 | + | ||
34 | + should 'list most commented articles' do | ||
35 | + Article.delete_all | ||
36 | + a1 = create(TextileArticle, :name => "art 1", :profile_id => profile.id) | ||
37 | + a2 = create(TextileArticle, :name => "art 2", :profile_id => profile.id) | ||
38 | + a3 = create(TextileArticle, :name => "art 3", :profile_id => profile.id) | ||
39 | + | ||
40 | + 2.times { Comment.create(:title => 'test', :body => 'asdsad', :author => profile, :source => a2).save! } | ||
41 | + 4.times { Comment.create(:title => 'test', :body => 'asdsad', :author => profile, :source => a3).save! } | ||
42 | + | ||
43 | + # should respect the order (more commented comes first) | ||
44 | + assert_equal a3.name, profile.articles.most_commented_dspace(Environment.default, 3).first.name | ||
45 | + # It is a2 instead of a1 since it does not list articles without comments | ||
46 | + assert_equal a2.name, profile.articles.most_commented_dspace(Environment.default, 3).last.name | ||
47 | + end | ||
48 | + | ||
49 | + | ||
50 | + should 'find the most voted' do | ||
51 | + if not enable_vote_plugin | ||
52 | + return | ||
53 | + end | ||
54 | + article = fast_create(Article, {:name=>'2 votes'}) | ||
55 | + 2.times{ | ||
56 | + person = fast_create(Person) | ||
57 | + person.vote_for(article) | ||
58 | + } | ||
59 | + article = fast_create(Article, {:name=>'10 votes'}) | ||
60 | + 10.times{ | ||
61 | + person = fast_create(Person) | ||
62 | + person.vote_for(article) | ||
63 | + } | ||
64 | + article = fast_create(Article, {:name=>'5 votes'}) | ||
65 | + 5.times{ | ||
66 | + person = fast_create(Person) | ||
67 | + person.vote_for(article) | ||
68 | + } | ||
69 | + articles = Article.most_voted(Environment.default, 5) | ||
70 | + assert_equal '10 votes', articles.first.name | ||
71 | + assert_equal '2 votes', articles.last.name | ||
72 | + end | ||
73 | + | ||
74 | + should 'list the most postive' do | ||
75 | + if not enable_vote_plugin | ||
76 | + return | ||
77 | + end | ||
78 | + article = fast_create(Article, {:name=>'23 votes for 20 votes against'}) | ||
79 | + 20.times{ | ||
80 | + person = fast_create(Person) | ||
81 | + person.vote_against(article) | ||
82 | + } | ||
83 | + 23.times{ | ||
84 | + person = fast_create(Person) | ||
85 | + person.vote_for(article) | ||
86 | + } | ||
87 | + article = fast_create(Article, {:name=>'10 votes for 5 votes against'}) | ||
88 | + 10.times{ | ||
89 | + person = fast_create(Person) | ||
90 | + person.vote_for(article) | ||
91 | + } | ||
92 | + 5.times{ | ||
93 | + person = fast_create(Person) | ||
94 | + person.vote_against(article) | ||
95 | + } | ||
96 | + article = fast_create(Article, {:name=>'2 votes against'}) | ||
97 | + 2.times{ | ||
98 | + person = fast_create(Person) | ||
99 | + person.vote_against(article) | ||
100 | + } | ||
101 | + | ||
102 | + article = fast_create(Article, {:name=>'7 votes for'}) | ||
103 | + 7.times{ | ||
104 | + person = fast_create(Person) | ||
105 | + person.vote_for(article) | ||
106 | + } | ||
107 | + articles = Article.more_positive_votes(Environment.default, 5) | ||
108 | + assert_equal '7 votes for', articles.first.name | ||
109 | + assert_equal '23 votes for 20 votes against', articles.last.name | ||
110 | + end | ||
111 | + | ||
112 | + should 'list the most negative' do | ||
113 | + if not enable_vote_plugin | ||
114 | + return | ||
115 | + end | ||
116 | + article = fast_create(Article, {:name=>'23 votes for 29 votes against'}) | ||
117 | + 29.times{ | ||
118 | + person = fast_create(Person) | ||
119 | + person.vote_against(article) | ||
120 | + } | ||
121 | + 23.times{ | ||
122 | + person = fast_create(Person) | ||
123 | + person.vote_for(article) | ||
124 | + } | ||
125 | + article = fast_create(Article, {:name=>'10 votes for 15 votes against'}) | ||
126 | + 10.times{ | ||
127 | + person = fast_create(Person) | ||
128 | + person.vote_for(article) | ||
129 | + } | ||
130 | + 15.times{ | ||
131 | + person = fast_create(Person) | ||
132 | + person.vote_against(article) | ||
133 | + } | ||
134 | + article = fast_create(Article, {:name=>'2 votes against'}) | ||
135 | + 2.times{ | ||
136 | + person = fast_create(Person) | ||
137 | + person.vote_against(article) | ||
138 | + } | ||
139 | + article = fast_create(Article, {:name=>'7 votes for'}) | ||
140 | + 7.times{ | ||
141 | + person = fast_create(Person) | ||
142 | + person.vote_for(article) | ||
143 | + } | ||
144 | + articles = Article.more_negative_votes(Environment.default, 5) | ||
145 | + assert_equal '23 votes for 29 votes against', articles.first.name | ||
146 | + assert_equal '2 votes against', articles.last.name | ||
147 | + end | ||
148 | +end | ||
0 | \ No newline at end of file | 149 | \ No newline at end of file |
@@ -0,0 +1,47 @@ | @@ -0,0 +1,47 @@ | ||
1 | +require File.dirname(__FILE__) + '/../test_helper' | ||
2 | + | ||
3 | +require 'comment_controller' | ||
4 | +# Re-raise errors caught by the controller. | ||
5 | +class CommentController; def rescue_action(e) raise e end; end | ||
6 | + | ||
7 | +class DspaceBlockTest < ActiveSupport::TestCase | ||
8 | + | ||
9 | + include AuthenticatedTestHelper | ||
10 | + fixtures :users, :environments | ||
11 | + | ||
12 | + def setup | ||
13 | + @controller = CommentController.new | ||
14 | + @request = ActionController::TestRequest.new | ||
15 | + @response = ActionController::TestResponse.new | ||
16 | + | ||
17 | + @profile = create_user('testinguser').person | ||
18 | + @environment = @profile.environment | ||
19 | + end | ||
20 | + attr_reader :profile, :environment | ||
21 | + | ||
22 | + should 'have a default title' do | ||
23 | + dspace_block = DspacePlugin::DspaceBlock.new | ||
24 | + block = Block.new | ||
25 | + assert_not_equal block.default_title, dspace_block.default_title | ||
26 | + end | ||
27 | + | ||
28 | + should 'have a help tooltip' do | ||
29 | + dspace_block = DspacePlugin::DspaceBlock.new | ||
30 | + block = Block.new | ||
31 | + assert_not_equal "", dspace_block.help | ||
32 | + end | ||
33 | + | ||
34 | + should 'describe itself' do | ||
35 | + assert_not_equal Block.description, DspacePlugin::DspaceBlock.description | ||
36 | + end | ||
37 | + | ||
38 | + should 'is editable' do | ||
39 | + block = DspacePlugin::DspaceBlock.new | ||
40 | + assert block.editable? | ||
41 | + end | ||
42 | + | ||
43 | + should 'expire' do | ||
44 | + assert_equal DspacePlugin::DspaceBlock.expire_on, {:environment=>[:article], :profile=>[:article]} | ||
45 | + end | ||
46 | + | ||
47 | +end |
@@ -0,0 +1,29 @@ | @@ -0,0 +1,29 @@ | ||
1 | +require File.dirname(__FILE__) + '/../test_helper' | ||
2 | + | ||
3 | +class DspacePluginTest < ActiveSupport::TestCase | ||
4 | + | ||
5 | + def setup | ||
6 | + @plugin = DspacePlugin.new | ||
7 | + end | ||
8 | + | ||
9 | + should 'be a noosfero plugin' do | ||
10 | + assert_kind_of Noosfero::Plugin, @plugin | ||
11 | + end | ||
12 | + | ||
13 | + should 'have name' do | ||
14 | + assert_equal 'Relevant Content Plugin', DspacePlugin.plugin_name | ||
15 | + end | ||
16 | + | ||
17 | + should 'have description' do | ||
18 | + assert_equal _("A plugin that lists the most accessed, most commented, most liked and most disliked contents."), DspacePlugin.plugin_description | ||
19 | + end | ||
20 | + | ||
21 | + should 'have stylesheet' do | ||
22 | + assert @plugin.stylesheet? | ||
23 | + end | ||
24 | + | ||
25 | + should "return DspaceBlock in extra_blocks class method" do | ||
26 | + assert DspacePlugin.extra_blocks.keys.include?(DspacePlugin::DspaceBlock) | ||
27 | + end | ||
28 | + | ||
29 | +end |
plugins/dspace/views/box_organizer/dspace_plugin/_dspace_block.html.erb
0 → 100644
@@ -0,0 +1,8 @@ | @@ -0,0 +1,8 @@ | ||
1 | +<div id='edit-dspace-block'> | ||
2 | + <%= labelled_form_field _('Limit of items per category'), text_field(:block, :limit, :size => 3) %> | ||
3 | + <%= labelled_check_box _('Display most accessed content'), "block[show_most_read]", 1 ,@block.show_most_read %><BR> | ||
4 | + <%= labelled_check_box _('Display most commented content'), "block[show_most_commented]", 1 ,@block.show_most_commented %><BR> | ||
5 | + <%= labelled_check_box _('Display most liked content'), "block[show_most_liked]", 1 ,@block.show_most_liked %><BR> | ||
6 | + <%= labelled_check_box _('Display most voted content'), "block[show_most_voted]", 1 ,@block.show_most_voted %><BR> | ||
7 | + <%= labelled_check_box _('Display most disliked content'), "block[show_most_disliked]", 1 , @block.show_most_disliked %><BR> | ||
8 | +</div> | ||
0 | \ No newline at end of file | 9 | \ No newline at end of file |