mailr/app/controllers/links_controller.rb

98 lines
2.6 KiB
Ruby
Raw Permalink Normal View History

2012-03-10 18:08:39 +01:00
require 'tempfile'
class LinksController < ApplicationController
before_filter :check_current_user,:selected_folder, :get_current_folders
before_filter :get_links, :only => [:index]
def index
end
def new
@link = Link.new
end
def edit
@link = @current_user.links.find(params[:id])
render 'edit'
end
def create
2012-03-30 19:31:23 +02:00
if params["delete_selected"]
if params["items_ids"]
params["items_ids"].each do |id|
@current_user.links.find_by_id(id).destroy
end
end
redirect_to(links_path)
return
end
2012-03-10 18:08:39 +01:00
@link = @current_user.links.build(params[:link])
if @link.valid?
@link.save
flash[:success] = t(:was_created,:scope=>:link)
redirect_to(links_path)
else
render 'new'
end
end
def update
@link = @current_user.links.find(params[:id])
if @link.update_attributes(params[:link])
redirect_to(links_path)
else
render 'edit'
end
end
2012-03-30 19:31:23 +02:00
def import_export
2012-03-10 18:08:39 +01:00
if params["export"]
2012-03-30 19:31:23 +02:00
links = @current_user.links
s = ""
links.each do |l|
s += l.export + "\r\n"
end
headers['Content-type'] = "text/csv"
headers['Content-Disposition'] = %(attachment; filename="links.csv")
render :text => s
return
2012-03-10 18:08:39 +01:00
elsif params["import"]
begin
raise t(:no_file_chosen,:scope=>:common) if not params[:upload]
raise t(:no_tmp_dir,:scope=>:common) if not File.exists?($defaults["msg_upload_dir"])
tmp_file = Tempfile.new($defaults["contact_tmp_filename"],$defaults["msg_upload_dir"])
tmp_file.write(params[:upload][:datafile].read)
tmp_file.flush
tmp_file.rewind
tmp_file.readlines.each do |line|
2012-03-30 19:31:23 +02:00
next if line =~ /^#/
Link.import(@current_user,line)
2012-03-10 18:08:39 +01:00
end
rescue ActiveRecord::RecordInvalid => e
flash[:error] = {:title => e.to_s,:info => e.record.inspect + e.record.errors.inspect}
rescue Exception => e
flash[:error] = e.to_s
else
2012-03-30 19:31:23 +02:00
flash[:success] = t(:were_imported,:scope=>:link)
2012-03-10 18:08:39 +01:00
end
end
redirect_to :action => 'index'
end
####################################### protected section ################################
protected
####################################### private section ##################################
private
def get_links
@links = Link.getPageForUser(@current_user,params[:page],params[:sort_field],params[:sort_dir])
end
end