Commit 7569b3e963c266bdaced95c4ea3b47162973d591
1 parent
6117f4ed
Exists in
master
and in
29 other branches
ActionItem556: added button 'Manage groups' in control panel
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2288 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
11 changed files
with
133 additions
and
71 deletions
Show diff stats
app/models/profile.rb
app/views/memberships/index.rhtml
1 | -<h1><%= _("%s's groups") % profile.name %></h1> | |
1 | +<div id="memberships-index"> | |
2 | 2 | |
3 | -<p> | |
4 | -<%= _('%s is a member of the following groups:') % profile.name %> | |
5 | -</p> | |
3 | +<h1><%= _('Manage my groups') %></h1> | |
6 | 4 | |
7 | -<table> | |
5 | +<ul> | |
8 | 6 | <% for membership in @memberships %> |
9 | - <tr> | |
10 | - <td> <%= image_tag(profile_icon(membership)) %> </td> | |
11 | - <td> | |
12 | - <%= _('Name: %s') % link_to(membership.name, membership.url) %> <br/> | |
7 | + <li> | |
8 | + <div class='common-profile-list-block'> | |
9 | + <%= profile_image_link(membership, :portrait, 'div') %> | |
10 | + </div> | |
11 | + <span class='profile-details'> | |
12 | + <strong><%= membership.display_name %></strong><br/> | |
13 | 13 | <%= _('Role: %s') % rolename_for(profile, membership) %> <br/> |
14 | 14 | <%= _('Type: %s') % _(membership.class.name) %> <br/> |
15 | 15 | <%= _('Description: %s') % membership.description + '<br/>' if membership.kind_of?(Community) %> |
16 | 16 | <%= _('Members: %s') % membership.members.size.to_s %> <br/> |
17 | 17 | <%= _('Created at: %s') % show_date(membership.created_at) %> <br/> |
18 | - <%= _('Actions: %s') % link_to(_('Manage'), membership.admin_url) + ', ' + link_to(_('Leave'), { :profile => profile.identifier, :controller => 'memberships', :action => 'leave', :id => membership.id }) %> <br/> | |
19 | - | |
20 | - </td> | |
21 | - </tr> | |
18 | + <%= [ link_to(_('Manage'), membership.admin_url), | |
19 | + link_to(_('Leave'), { :profile => profile.identifier, :controller => 'memberships', :action => 'leave', :id => membership.id }), | |
20 | + link_to(_('Destroy'), { :profile => profile.identifier, :controller => 'memberships', :action => 'destroy', :id => membership.id }) | |
21 | + ].join(', ') | |
22 | + %> | |
23 | + </span> | |
24 | + </li> | |
22 | 25 | <% end %> |
23 | -</table> | |
26 | +</ul> | |
24 | 27 | |
25 | 28 | <% button_bar do %> |
26 | - <%= button :add, _('Register a new Enterprise'), :controller => 'enterprise_registration' %> | |
27 | - <%= button :add, _('Create a new community'), :action => 'new_community' %> | |
29 | + <%= button(:add, _('Create a new community'), :controller => 'memberships', :action => 'new_community') %> | |
30 | + <%= button(:add, _('Register a new Enterprise'), :controller => 'enterprise_registration') if environment.regions.any?{|i| i.has_validator?} %> | |
28 | 31 | <%= button :back, _('Go back'), :controller => 'profile_editor' %> |
29 | 32 | <% end %> |
33 | + | |
34 | +</div> | ... | ... |
app/views/profile_editor/index.rhtml
... | ... | @@ -38,26 +38,7 @@ |
38 | 38 | <% end %> |
39 | 39 | <% end %> |
40 | 40 | |
41 | -<% end %> | |
42 | - | |
43 | -<% if @profile.person? %> | |
44 | - | |
45 | - <hr /> | |
46 | - | |
47 | - <h2><%= _('Manage my groups') %></h2> | |
48 | - | |
49 | - <% button_bar do %> | |
50 | - <%= button(:add, _('Create a new community'), :controller => 'memberships', :action => 'new_community') %> | |
51 | - <%= button(:add, _('Register a new Enterprise'), :controller => 'enterprise_registration') if environment.regions.any?{|i| i.has_validator?} %> | |
52 | - <% end %> | |
53 | - | |
54 | - <% file_manager do %> | |
55 | - | |
56 | - <% @profile.memberships.each do |group| %> | |
57 | - <%= file_manager_button(group.name, profile_icon(group) , :profile => group.identifier, :controller => 'profile_editor' ) %> | |
58 | - <% end %> | |
59 | - | |
60 | - <% end %> | |
41 | + <%= file_manager_button(_('Manage my groups'), 'icons-app/groups.png', :controller => 'memberships') if profile.person? %> | |
61 | 42 | |
62 | 43 | <% end %> |
63 | 44 | ... | ... |
public/designs/themes/ecosol/stylesheets/controller_memberships.css
0 → 100644
public/images/icons-app/README
1 | 1 | dlg-neu icons in Noosfero |
2 | 2 | ========================= |
3 | 3 | |
4 | -The icons in this directory are taken from the icon themes for GNOME, | |
5 | -section "apps/". We take the SVG files and convert to 64x64 PNG images, so | |
6 | -these icons are in fact derived works based on dlg-neu's SVG files. | |
4 | +The icons in this directory are taken from the icon themes for GNOME. | |
5 | +We take the SVG files and convert to 64x64 PNG images. | |
7 | 6 | |
8 | 7 | Structure |
9 | 8 | ========= |
... | ... | @@ -19,7 +18,7 @@ Use the fantastic script get-icon.sh! Suppose you want to add a new icon for |
19 | 18 | the "favorites". You find that dlg-neu theme has a nice button under apps, |
20 | 19 | called gtk-open.svg. You call the script as follows: |
21 | 20 | |
22 | -$ sh get-icon.sh favorites epiphany-bookmarks.svg | |
21 | +$ sh get-icon.sh favorites dlg-neu apps/epiphany-bookmarks.svg | |
23 | 22 | |
24 | 23 | The script generates the PNG and create symbolic link from PNG using ICON name. |
25 | 24 | |
... | ... | @@ -44,6 +43,7 @@ epiphany-bookmarks.png dlg-neu |
44 | 43 | mozilla-mail.png dlg-neu |
45 | 44 | gtk-cancel.png dlg-neu |
46 | 45 | emblem-important.png dlg-neu |
46 | +gnome-globe.png gnome | |
47 | 47 | ### END OF ICONS LISTING ### |
48 | 48 | |
49 | 49 | Icons rasterization |
... | ... | @@ -57,8 +57,12 @@ $ rsvg -w 64 -h 64 user_icon.svg user_icon.png |
57 | 57 | Licensing |
58 | 58 | ========= |
59 | 59 | |
60 | +dlg-neu and Nuovo | |
61 | +----------------- | |
62 | + | |
60 | 63 | Their License is as follows (taken from |
61 | -/usr/share/doc/gnome-icon-theme-dlg-neu/copyright on a Debian system): | |
64 | +/usr/share/doc/gnome-icon-theme-dlg-neu/copyright and | |
65 | +/usr/share/doc/gnome-icon-theme-nuovo/copyright on a Debian system): | |
62 | 66 | |
63 | 67 | This package is free software; you can redistribute it and/or modify |
64 | 68 | it under the terms of the GNU General Public License as published by |
... | ... | @@ -78,3 +82,25 @@ Their License is as follows (taken from |
78 | 82 | On Debian systems, the complete text of the GNU General |
79 | 83 | Public License can be found in `/usr/share/common-licenses/GPL'. |
80 | 84 | |
85 | +gnome | |
86 | +----- | |
87 | + | |
88 | +Their License is as follows (taken from | |
89 | +/usr/share/doc/gnome-icon-theme/copyright on a Debian system): | |
90 | + | |
91 | + This package is free software; you can redistribute it and/or modify | |
92 | + it under the terms of the GNU General Public License as published by | |
93 | + the Free Software Foundation; version 2 dated June, 1991. | |
94 | + | |
95 | + This package is distributed in the hope that it will be useful, | |
96 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | |
97 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
98 | + GNU General Public License for more details. | |
99 | + | |
100 | + You should have received a copy of the GNU General Public License | |
101 | + along with this package; if not, write to the Free Software | |
102 | + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, | |
103 | + USA. | |
104 | + | |
105 | +On Debian GNU/Linux systems, the complete text of the GNU General | |
106 | +Public License can be found in `/usr/share/common-licenses/GPL'. | ... | ... |
public/images/icons-app/get-icon.sh
... | ... | @@ -4,17 +4,15 @@ ICON=$1 |
4 | 4 | THEME=$2 |
5 | 5 | SVG=$3 |
6 | 6 | |
7 | -SECTION='apps' | |
8 | - | |
9 | 7 | if [ -z $ICON ] || [ -z $THEME ] || [ -z $SVG ]; then |
10 | - echo "use: $0 <ICON> <THEME> <ICON>" | |
8 | + echo "use: $0 <ICON> <THEME> <SVG>" | |
11 | 9 | echo "example:" |
12 | - echo " $0 favorites dlg-neu epiphany-bookmarks.svg" | |
10 | + echo " $0 favorites dlg-neu emblems/epiphany-bookmarks.svg" | |
13 | 11 | exit 1 |
14 | 12 | fi |
15 | 13 | |
16 | 14 | PNG=$(basename $SVG | sed -e 's/\.svg/\.png/') |
17 | -SVGFILE=/usr/share/icons/$THEME/scalable/$SECTION/$SVG | |
15 | +SVGFILE=/usr/share/icons/$THEME/scalable/$SVG | |
18 | 16 | |
19 | 17 | if [ ! -f $SVGFILE ]; then |
20 | 18 | echo "$SVGFILE not found, stopping." | ... | ... |
5.82 KB
... | ... | @@ -0,0 +1,41 @@ |
1 | +@import url(profile-list-block.css); | |
2 | + | |
3 | +#memberships-index ul { | |
4 | + width: 100%; | |
5 | + padding: 0px; | |
6 | + margin: 0px; | |
7 | + display: table; | |
8 | + border-spacing: 10px | |
9 | +} | |
10 | + | |
11 | +#memberships-index li { | |
12 | + display: table-row; | |
13 | + list-style: none; | |
14 | +} | |
15 | + | |
16 | +#memberships-index li { | |
17 | + background-color: #B8CFE7; | |
18 | +} | |
19 | + | |
20 | +#memberships-index li .vcard { | |
21 | + float: right; | |
22 | + padding: 4% 20px 4% 0px; | |
23 | +} | |
24 | + | |
25 | +#memberships-index li .profile-details { | |
26 | + display: block; | |
27 | + padding: 3% 0px 3% 30px; | |
28 | +} | |
29 | + | |
30 | +#memberships-index li .vcard a.profile_link.url { | |
31 | + border: 2px solid #729FCF; | |
32 | + background-color: #ABC; | |
33 | +} | |
34 | + | |
35 | +#memberships-index li .vcard a.profile_link.url:hover { | |
36 | + border: 2px solid #2A5896; | |
37 | +} | |
38 | + | |
39 | +#memberships-index li .vcard span.org { | |
40 | + display: none; | |
41 | +} | ... | ... |
test/functional/memberships_controller_test.rb
... | ... | @@ -89,28 +89,28 @@ class MembershipsControllerTest < Test::Unit::TestCase |
89 | 89 | community = Community.create!(:name => 'my test community') |
90 | 90 | community.add_member(profile) |
91 | 91 | get :index, :profile => profile.identifier |
92 | - assert_tag :tag => 'td', :content => /Members: 1/ | |
92 | + assert_tag :tag => 'li', :content => /Members: 1/ | |
93 | 93 | end |
94 | 94 | |
95 | 95 | should 'show created at on list' do |
96 | 96 | community = Community.create!(:name => 'my test community') |
97 | 97 | community.add_member(profile) |
98 | 98 | get :index, :profile => profile.identifier |
99 | - assert_tag :tag => 'td', :content => /Created at: #{show_date(community.created_at)}/ | |
99 | + assert_tag :tag => 'li', :content => /Created at: #{show_date(community.created_at)}/ | |
100 | 100 | end |
101 | 101 | |
102 | 102 | should 'show description on list' do |
103 | 103 | community = Community.create!(:name => 'my test community', :description => 'description test') |
104 | 104 | community.add_member(profile) |
105 | 105 | get :index, :profile => profile.identifier |
106 | - assert_tag :tag => 'td', :content => /Description: description test/ | |
106 | + assert_tag :tag => 'li', :content => /Description: description test/ | |
107 | 107 | end |
108 | 108 | |
109 | 109 | should 'not show description to enterprises on list' do |
110 | 110 | enterprise = Enterprise.create!(:identifier => 'enterprise-test', :name => 'my test enterprise') |
111 | 111 | enterprise.add_member(profile) |
112 | 112 | get :index, :profile => profile.identifier |
113 | - assert_no_tag :tag => 'td', :content => /Description:/ | |
113 | + assert_no_tag :tag => 'li', :content => /Description:/ | |
114 | 114 | end |
115 | 115 | |
116 | 116 | should 'show link to leave from community' do |
... | ... | @@ -154,4 +154,21 @@ class MembershipsControllerTest < Test::Unit::TestCase |
154 | 154 | assert_equal Profile::Roles.admin, profile.find_roles(Community.find_by_identifier('my-shiny-new-community')).first.role |
155 | 155 | end |
156 | 156 | |
157 | + should 'display button to create community' do | |
158 | + get :index, :profile => 'testuser' | |
159 | + assert_tag :tag => 'a', :attributes => { :href => "/myprofile/testuser/memberships/new_community" } | |
160 | + end | |
161 | + | |
162 | + should 'not display link to register new enterprise if there is no validators' do | |
163 | + get :index, :profile => 'testuser' | |
164 | + assert_no_tag :tag => 'a', :content => 'Register a new Enterprise' | |
165 | + end | |
166 | + | |
167 | + should 'display link to register new enterprise' do | |
168 | + reg = Environment.default.regions.create!(:name => 'Region test') | |
169 | + reg.validators.create!(:name => 'Validator test', :identifier => 'validator-test') | |
170 | + get :index, :profile => 'testuser' | |
171 | + assert_tag :tag => 'a', :content => 'Register a new Enterprise' | |
172 | + end | |
173 | + | |
157 | 174 | end | ... | ... |
test/functional/profile_editor_controller_test.rb
... | ... | @@ -415,26 +415,6 @@ class ProfileEditorControllerTest < Test::Unit::TestCase |
415 | 415 | assert assigns(:to_disable).enabled? |
416 | 416 | end |
417 | 417 | |
418 | - should 'link to create community' do | |
419 | - profile = Person['ze'] | |
420 | - get :index, :profile => profile.identifier | |
421 | - assert_tag :tag => 'a', :attributes => { :href => "/myprofile/#{profile.identifier}/memberships/new_community" } | |
422 | - end | |
423 | - | |
424 | - should 'not display link to register new enterprise if there is no validators' do | |
425 | - person = create_user('testuser').person | |
426 | - get :index, :profile => 'testuser' | |
427 | - assert_no_tag :tag => 'a', :content => 'Register a new Enterprise' | |
428 | - end | |
429 | - | |
430 | - should 'display link to register new enterprise' do | |
431 | - reg = Environment.default.regions.create!(:name => 'Region test') | |
432 | - reg.validators.create!(:name => 'Validator test', :identifier => 'validator-test') | |
433 | - person = create_user('testuser').person | |
434 | - get :index, :profile => 'testuser' | |
435 | - assert_tag :tag => 'a', :content => 'Register a new Enterprise' | |
436 | - end | |
437 | - | |
438 | 418 | should 'update categories' do |
439 | 419 | env = Environment.default |
440 | 420 | top = env.categories.create!(:display_in_menu => true, :name => 'Top-Level category') |
... | ... | @@ -445,5 +425,11 @@ class ProfileEditorControllerTest < Test::Unit::TestCase |
445 | 425 | assert_equal top, assigns(:current_category) |
446 | 426 | assert_equal [c1, c2], assigns(:categories) |
447 | 427 | end |
448 | - | |
428 | + | |
429 | + should 'display manage my groups button for person' do | |
430 | + person = create_user('testuser').person | |
431 | + get :index, :profile => 'testuser' | |
432 | + assert_tag :tag => 'a', :content => 'Manage my groups' | |
433 | + end | |
434 | + | |
449 | 435 | end | ... | ... |