##// END OF EJS Templates
scm: git: performance improvements in fetching revisions (#8857, #9472)...
scm: git: performance improvements in fetching revisions (#8857, #9472) Parse a revision for a given branch, just if we haven't parsed it for any branches before. Moved the db check to for existing revisions into a grouped search. Search for many revisions at once: this reduces db load. Revisions are grouped into sets of 100. This is to improve memory consumption. There will be just one query instead of each 100. The above two methods significantly increase parsing speed. Test case was a git repo with 6000+ commits on a master branch, and several other branches originating for master. Speed improved from 1.4h to 18min. Contributed by Gergely Fábián. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9144 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r8941:b3866b05c14b
r9024:999a4ba30d7b
Show More
my_controller.rb
174 lines | 5.5 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
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/my_controller.rb....
r6680 # Copyright (C) 2006-2011 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.
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/my_controller.rb....
r6680 #
Jean-Philippe Lang
- new controller "myController"...
r60 # 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.
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/my_controller.rb....
r6680 #
Jean-Philippe Lang
- new controller "myController"...
r60 # 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
Code cleanup....
r4383 helper :users
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
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/my_controller.rb....
r6680 DEFAULT_LAYOUT = { 'left' => ['issuesassignedtome'],
'right' => ['issuesreportedbyme']
Jean-Philippe Lang
removed underscores in block names (problem with scriptaculous sortables)...
r239 }.freeze
Jean-Philippe Lang
- new controller "myController"...
r60 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?
Jean-Philippe Lang
Declare safe attributes for User and Projects models....
r4378 @user.safe_attributes = params[:user]
Jean-Philippe Lang
More flexible mail notifications settings at user level. A user has now 3 options:...
r842 @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
Jean-Philippe Lang
Moves mail_notification param to user hash param so that it can be set using the User API....
r4382 @user.notified_project_ids = (@user.mail_notification == 'selected' ? params[:notified_project_ids] : [])
Jean-Philippe Lang
More flexible mail notifications settings at user level. A user has now 3 options:...
r842 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
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
Eric Davis
Allow AuthSources to control if they allow password changes....
r3631 unless @user.change_password_allowed?
Jean-Philippe Lang
Removes "xxx and return" calls (#4446)....
r3071 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
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/my_controller.rb....
r6680
Jean-Philippe Lang
Added the ability to reset its own RSS access key on "My account"....
r666 # Create a new feeds key
def reset_rss_key
Eric Davis
Make sure the RSS token is getting destroyed and created....
r3096 if request.post?
if User.current.rss_token
User.current.rss_token.destroy
User.current.reload
end
User.current.rss_key
Jean-Philippe Lang
Added the ability to reset its own RSS access key on "My account"....
r666 flash[:notice] = l(:notice_feeds_access_key_reseted)
end
redirect_to :action => 'account'
Jean-Philippe Lang
- new controller "myController"...
r60 end
Eric Davis
Added an API token for each User to use when making API requests. (#3920)...
r3103 # Create a new API key
def reset_api_key
if request.post?
if User.current.api_token
User.current.api_token.destroy
User.current.reload
end
User.current.api_key
flash[:notice] = l(:notice_api_access_key_reseted)
end
redirect_to :action => 'account'
end
Jean-Philippe Lang
- new controller "myController"...
r60 # 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 @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
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/my_controller.rb....
r6680
Jean-Philippe Lang
- new controller "myController"...
r60 # 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
Fixes block reordering on my page (#2971)....
r3080 layout = @user.pref[:my_page_layout] || {}
Jean-Philippe Lang
- new controller "myController"...
r60 # remove if already present in a group
Jean-Philippe Lang
Fixes block reordering on my page (#2971)....
r3080 %w(top left right).each {|f| (layout[f] ||= []).delete block }
Jean-Philippe Lang
- new controller "myController"...
r60 # add it on top
Jean-Philippe Lang
Fixes block reordering on my page (#2971)....
r3080 layout['top'].unshift block
@user.pref[:my_page_layout] = layout
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/my_controller.rb....
r6680 @user.pref.save
Jean-Philippe Lang
- new controller "myController"...
r60 render :partial => "block", :locals => {:user => @user, :block_name => block}
end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/my_controller.rb....
r6680
Jean-Philippe Lang
- new controller "myController"...
r60 # 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
Fixes block reordering on my page (#2971)....
r3080 @user = User.current
Jean-Philippe Lang
- new controller "myController"...
r60 # remove block in all groups
Jean-Philippe Lang
Fixes block reordering on my page (#2971)....
r3080 layout = @user.pref[:my_page_layout] || {}
%w(top left right).each {|f| (layout[f] ||= []).delete block }
@user.pref[:my_page_layout] = layout
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/my_controller.rb....
r6680 @user.pref.save
Jean-Philippe Lang
- new controller "myController"...
r60 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 block reordering on my page (#2971)....
r3080 @user = User.current
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
Jean-Philippe Lang
Fixes block reordering on my page (#2971)....
r3080 layout = @user.pref[:my_page_layout] || {}
Jean-Philippe Lang
Allow underscore in block partial name (#2840)....
r2464 # remove group blocks if they are presents in other groups
%w(top left right).each {|f|
Jean-Philippe Lang
Fixes block reordering on my page (#2971)....
r3080 layout[f] = (layout[f] || []) - group_items
Jean-Philippe Lang
Allow underscore in block partial name (#2840)....
r2464 }
Jean-Philippe Lang
Fixes block reordering on my page (#2971)....
r3080 layout[group] = group_items
@user.pref[:my_page_layout] = layout
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/my_controller.rb....
r6680 @user.pref.save
Jean-Philippe Lang
Allow underscore in block partial name (#2840)....
r2464 end
Jean-Philippe Lang
- new controller "myController"...
r60 end
render :nothing => true
end
end