90 lines
2.4 KiB
Ruby
Executable file
90 lines
2.4 KiB
Ruby
Executable file
class ContactsController < ApplicationController
|
|
|
|
before_filter :check_current_user,:selected_folder, :get_current_folders
|
|
|
|
before_filter :get_contacts, :only => [:index]
|
|
|
|
before_filter :prepare_ops_buttons, :only => [:index]
|
|
|
|
theme :theme_resolver
|
|
|
|
def index
|
|
|
|
end
|
|
|
|
def ops
|
|
if params["create_new"]
|
|
redirect_to(new_contact_path)
|
|
return
|
|
end
|
|
if !params["cids"]
|
|
flash[:warning] = t(:no_selected,:scope=>:contact)
|
|
else
|
|
if params["delete_selected"]
|
|
params["cids"].each do |id|
|
|
@current_user.contacts.find_by_id(id).destroy
|
|
end
|
|
elsif params["compose_to_selected"]
|
|
redirect_to :controller=>'messages',:action=>'compose',:cids=>params["cids"]
|
|
return
|
|
end
|
|
end
|
|
redirect_to(contacts_path)
|
|
end
|
|
|
|
#problem http://binary10ve.blogspot.com/2011/05/migrating-to-rails-3-got-stuck-with.html
|
|
#def destroy
|
|
# @current_user.contacts.find(params[:id]).destroy
|
|
# redirect_to(contacts_path)
|
|
#end
|
|
|
|
def new
|
|
@contact = Contact.new
|
|
end
|
|
|
|
def edit
|
|
@contact = @current_user.contacts.find(params[:id])
|
|
render 'edit'
|
|
end
|
|
|
|
def create
|
|
@contact = @current_user.contacts.build(params[:contact])
|
|
if @contact.valid?
|
|
@contact.save
|
|
flash[:notice] = t(:was_created,:scope=>:contact)
|
|
redirect_to(contacts_path)
|
|
else
|
|
render 'new'
|
|
end
|
|
end
|
|
|
|
def update
|
|
@contact = @current_user.contacts.find(params[:id])
|
|
if @contact.update_attributes(params[:contact])
|
|
redirect_to(contacts_path)
|
|
else
|
|
render 'edit'
|
|
end
|
|
end
|
|
|
|
####################################### protected section ################################
|
|
|
|
protected
|
|
|
|
def prepare_ops_buttons
|
|
@buttons = []
|
|
@buttons << {:text => 'compose_to_selected',:scope=> 'contact', :image => 'email.png'}
|
|
@buttons << {:text => 'create_new',:scope=> 'contact', :image => 'plus.png'}
|
|
@buttons << {:text => 'delete_selected',:scope=>'contact',:image => 'minus.png'}
|
|
end
|
|
|
|
####################################### private section ##################################
|
|
|
|
private
|
|
|
|
def get_contacts
|
|
@contacts = Contact.getPageForUser(@current_user,params[:page],params[:sort_field],params[:sort_dir])
|
|
end
|
|
|
|
end
|