##// END OF EJS Templates
By default, only show statuses that are used by the tracker on the workflow edit view....
By default, only show statuses that are used by the tracker on the workflow edit view. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3188 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r3071:488c192286ea
r3074:6bf0723d0654
Show More
my_controller.rb
167 lines | 6.0 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
Allow My Page blocks to be added to from a plugin (#2840)....
r2465 # Redmine - project management software
# Copyright (C) 2006-2009 Jean-Philippe Lang
Jean-Philippe Lang
- new controller "myController"...
r60 #
# 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.
class MyController < ApplicationController
before_filter :require_login
Jean-Philippe Lang
Moves @layout 'base'@ to ApplicationController....
r1726 helper :issues
Jean-Philippe Lang
User custom fields can now be set as editable so that users can edit them on 'My account'....
r2274 helper :custom_fields
Jean-Philippe Lang
Moves @layout 'base'@ to ApplicationController....
r1726
Jean-Philippe Lang
removed underscores in block names (problem with scriptaculous sortables)...
r239 BLOCKS = { 'issuesassignedtome' => :label_assigned_to_me_issues,
'issuesreportedbyme' => :label_reported_issues,
Jean-Philippe Lang
Added a new block available for my page: "Watched issues"...
r453 'issueswatched' => :label_watched_issues,
Jean-Philippe Lang
removed underscores in block names (problem with scriptaculous sortables)...
r239 'news' => :label_news_latest,
Jean-Philippe Lang
- new controller "myController"...
r60 'calendar' => :label_calendar,
Jean-Philippe Lang
Add a time tracking block for 'My page' (#615)....
r1245 'documents' => :label_document_plural,
'timelog' => :label_spent_time
Jean-Philippe Lang
Allow My Page blocks to be added to from a plugin (#2840)....
r2465 }.merge(Redmine::Views::MyPage::Block.additional_blocks).freeze
Jean-Philippe Lang
- new controller "myController"...
r60
Jean-Philippe Lang
removed underscores in block names (problem with scriptaculous sortables)...
r239 DEFAULT_LAYOUT = { 'left' => ['issuesassignedtome'],
'right' => ['issuesreportedbyme']
}.freeze
Jean-Philippe Lang
- new controller "myController"...
r60 verify :xhr => true,
:session => :page_layout,
:only => [:add_block, :remove_block, :order_blocks]
def index
page
render :action => 'page'
end
# Show user's page
def page
Jean-Philippe Lang
Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums....
r906 @user = User.current
Jean-Philippe Lang
removed underscores in block names (problem with scriptaculous sortables)...
r239 @blocks = @user.pref[:my_page_layout] || DEFAULT_LAYOUT
Jean-Philippe Lang
- new controller "myController"...
r60 end
# Edit user's account
def account
Jean-Philippe Lang
More flexible mail notifications settings at user level. A user has now 3 options:...
r842 @user = User.current
Jean-Philippe Lang
"hide my email address" preference added, so that it's not displayed on account/show...
r61 @pref = @user.pref
Jean-Philippe Lang
More flexible mail notifications settings at user level. A user has now 3 options:...
r842 if request.post?
@user.attributes = params[:user]
@user.mail_notification = (params[:notification_option] == 'all')
@user.pref.attributes = params[:pref]
Jean-Philippe Lang
Added an option on 'My account' for users who don't want to be notified of changes that they make....
r886 @user.pref[:no_self_notified] = (params[:no_self_notified] == '1')
Jean-Philippe Lang
More flexible mail notifications settings at user level. A user has now 3 options:...
r842 if @user.save
@user.pref.save
@user.notified_project_ids = (params[:notification_option] == 'selected' ? params[:notified_project_ids] : [])
set_language_if_valid @user.language
flash[:notice] = l(:notice_account_updated)
redirect_to :action => 'account'
return
end
Jean-Philippe Lang
- new controller "myController"...
r60 end
Jean-Philippe Lang
More flexible mail notifications settings at user level. A user has now 3 options:...
r842 @notification_options = [[l(:label_user_mail_option_all), 'all'],
[l(:label_user_mail_option_none), 'none']]
# Only users that belong to more than 1 project can select projects for which they are notified
# Note that @user.membership.size would fail since AR ignores :include association option when doing a count
@notification_options.insert 1, [l(:label_user_mail_option_selected), 'selected'] if @user.memberships.length > 1
@notification_option = @user.mail_notification? ? 'all' : (@user.notified_projects_ids.empty? ? 'none' : 'selected')
Jean-Philippe Lang
- new controller "myController"...
r60 end
Jean-Philippe Lang
More flexible mail notifications settings at user level. A user has now 3 options:...
r842 # Manage user's password
def password
Jean-Philippe Lang
Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums....
r906 @user = User.current
Jean-Philippe Lang
Removes "xxx and return" calls (#4446)....
r3071 if @user.auth_source_id
flash[:error] = l(:notice_can_t_change_password)
redirect_to :action => 'account'
return
end
Jean-Philippe Lang
More flexible mail notifications settings at user level. A user has now 3 options:...
r842 if request.post?
if @user.check_password?(params[:password])
@user.password, @user.password_confirmation = params[:new_password], params[:new_password_confirmation]
if @user.save
flash[:notice] = l(:notice_account_password_updated)
redirect_to :action => 'account'
end
Jean-Philippe Lang
- new controller "myController"...
r60 else
Jean-Philippe Lang
More flexible mail notifications settings at user level. A user has now 3 options:...
r842 flash[:error] = l(:notice_account_wrong_password)
Jean-Philippe Lang
- new controller "myController"...
r60 end
end
Jean-Philippe Lang
Added the ability to reset its own RSS access key on "My account"....
r666 end
# Create a new feeds key
def reset_rss_key
if request.post? && User.current.rss_token
User.current.rss_token.destroy
flash[:notice] = l(:notice_feeds_access_key_reseted)
end
redirect_to :action => 'account'
Jean-Philippe Lang
- new controller "myController"...
r60 end
# User's page layout configuration
def page_layout
Jean-Philippe Lang
Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums....
r906 @user = User.current
Jean-Philippe Lang
fixed: crash on my/page_layout (trying to modify a frozen hash)...
r255 @blocks = @user.pref[:my_page_layout] || DEFAULT_LAYOUT.dup
Jean-Philippe Lang
- new controller "myController"...
r60 session[:page_layout] = @blocks
%w(top left right).each {|f| session[:page_layout][f] ||= [] }
@block_options = []
Jean-Philippe Lang
Set a default scope for 'My page' block names translations (#3057)....
r2570 BLOCKS.each {|k, v| @block_options << [l("my.blocks.#{v}", :default => [v, v.to_s.humanize]), k.dasherize]}
Jean-Philippe Lang
- new controller "myController"...
r60 end
# Add a block to user's page
# The block is added on top of the page
# params[:block] : id of the block to add
def add_block
Jean-Philippe Lang
Allow underscore in block partial name (#2840)....
r2464 block = params[:block].to_s.underscore
Jean-Philippe Lang
Removes "xxx and return" calls (#4446)....
r3071 (render :nothing => true; return) unless block && (BLOCKS.keys.include? block)
Jean-Philippe Lang
Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums....
r906 @user = User.current
Jean-Philippe Lang
- new controller "myController"...
r60 # remove if already present in a group
%w(top left right).each {|f| (session[:page_layout][f] ||= []).delete block }
# add it on top
session[:page_layout]['top'].unshift block
render :partial => "block", :locals => {:user => @user, :block_name => block}
end
# Remove a block to user's page
# params[:block] : id of the block to remove
def remove_block
Jean-Philippe Lang
Allow underscore in block partial name (#2840)....
r2464 block = params[:block].to_s.underscore
Jean-Philippe Lang
- new controller "myController"...
r60 # remove block in all groups
%w(top left right).each {|f| (session[:page_layout][f] ||= []).delete block }
render :nothing => true
end
# Change blocks order on user's page
# params[:group] : group to order (top, left or right)
# params[:list-(top|left|right)] : array of block ids of the group
def order_blocks
group = params[:group]
Jean-Philippe Lang
Fixes that "My Page" personalization was not storing reordered blocks (#2971)....
r2545 if group.is_a?(String)
group_items = (params["list-#{group}"] || []).collect(&:underscore)
Jean-Philippe Lang
Allow underscore in block partial name (#2840)....
r2464 if group_items and group_items.is_a? Array
# remove group blocks if they are presents in other groups
%w(top left right).each {|f|
session[:page_layout][f] = (session[:page_layout][f] || []) - group_items
}
session[:page_layout][group] = group_items
end
Jean-Philippe Lang
- new controller "myController"...
r60 end
render :nothing => true
end
# Save user's page layout
def page_layout_save
Jean-Philippe Lang
Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums....
r906 @user = User.current
Jean-Philippe Lang
- new controller "myController"...
r60 @user.pref[:my_page_layout] = session[:page_layout] if session[:page_layout]
@user.pref.save
session[:page_layout] = nil
redirect_to :action => 'page'
end
end