def generate_menu
@menu = MenuTree.new
@menu.add( _('Conference listing'),
url_for(:controller => '/conferences', :action => 'list') )
if @user.nil?
@menu.add(_('Log in'),
url_for(:controller => '/people', :action => 'login'))
@menu.add(_('New account'),
url_for(:controller => '/people', :action => 'new'))
else
personal = MenuTree.new
personal.add(_('Personal information'),
url_for(:controller => '/people', :action => 'personal'))
personal.add(_('Change password'),
url_for(:controller => '/people', :action => 'password'))
@user.can_submit_proposals_now? and
personal.add(_('My proposals'),
url_for(:controller=>'/people', :action => 'proposals'))
@user.conferences.size > 0 and
personal.add(_('Invite a friend'),
url_for(:controller=>'/people', :action => 'invite'))
@menu.add(_('My account'),
url_for(:controller => '/people', :action => 'account'),
personal)
@user.admin_tasks.each do |task|
begin
control = "#{task.sys_name.camelcase}Controller".constantize
menu = (control.constants.include?('Menu') ?
control::Menu : []).map do |elem|
MenuItem.new(elem[0],
url_for(:controller => task.sys_name, :action => elem[1]))
end
rescue NameError
menu = MenuItem.new(_'-*- Unimplemented')
end
@menu.add(Translation.for(task.qualified_name),
nil, MenuTree.new(menu))
end
end
end