diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2014-10-23 21:46:40 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2014-10-23 21:46:40 +0000 |
commit | c2e73160daa7782d7a91f2b6a974a936c6f084da (patch) | |
tree | 62e174df69aba43cb5a84f2ddd278dc4562963f0 /app/helpers | |
parent | ca5946d82ebb96464a3d283be657bc24ce0c47f1 (diff) | |
download | redmine-c2e73160daa7782d7a91f2b6a974a936c6f084da.tar.gz redmine-c2e73160daa7782d7a91f2b6a974a936c6f084da.zip |
Adds a single controller for users and groups memberships and support for adding multiple projects at once (#11702).
git-svn-id: http://svn.redmine.org/redmine/trunk@13498 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/helpers')
-rw-r--r-- | app/helpers/application_helper.rb | 4 | ||||
-rw-r--r-- | app/helpers/principal_memberships_helper.rb | 56 |
2 files changed, 58 insertions, 2 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 7e9cdce90..923dff581 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -252,7 +252,7 @@ module ApplicationHelper # Renders a tree of projects as a nested set of unordered lists # The given collection may be a subset of the whole project tree # (eg. some intermediate nodes are private and can not be seen) - def render_project_nested_lists(projects) + def render_project_nested_lists(projects, &block) s = '' if projects.any? ancestors = [] @@ -272,7 +272,7 @@ module ApplicationHelper end classes = (ancestors.empty? ? 'root' : 'child') s << "<li class='#{classes}'><div class='#{classes}'>" - s << h(block_given? ? yield(project) : project.name) + s << h(block_given? ? capture(project, &block) : project.name) s << "</div>\n" ancestors << project end diff --git a/app/helpers/principal_memberships_helper.rb b/app/helpers/principal_memberships_helper.rb new file mode 100644 index 000000000..e734f42c9 --- /dev/null +++ b/app/helpers/principal_memberships_helper.rb @@ -0,0 +1,56 @@ +# encoding: utf-8 +# +# Redmine - project management software +# Copyright (C) 2006-2014 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +module PrincipalMembershipsHelper + def render_principal_memberships(principal) + render :partial => 'principal_memberships/index', :locals => {:principal => principal} + end + + def call_table_header_hook(principal) + if principal.is_a?(Group) + call_hook :view_groups_memberships_table_header, :group => principal + else + call_hook :view_users_memberships_table_header, :user => principal + end + end + + def call_table_row_hook(principal, membership) + if principal.is_a?(Group) + call_hook :view_groups_memberships_table_row, :group => principal, :membership => membership + else + call_hook :view_users_memberships_table_row, :user => principal, :membership => membership + end + end + + def new_principal_membership_path(principal, *args) + if principal.is_a?(Group) + new_group_membership_path(principal, *args) + else + new_user_membership_path(principal, *args) + end + end + + def principal_membership_path(principal, membership, *args) + if principal.is_a?(Group) + group_membership_path(principal, membership, *args) + else + user_membership_path(principal, membership, *args) + end + end +end |