a lot of stuff added
This commit is contained in:
parent
37f548ce46
commit
7967e6d5c8
35 changed files with 559 additions and 64 deletions
22
app/controllers/contacts_controller.rb
Executable file
22
app/controllers/contacts_controller.rb
Executable file
|
@ -0,0 +1,22 @@
|
|||
require 'imap_session'
|
||||
require 'imap_mailbox'
|
||||
|
||||
class ContactsController < ApplicationController
|
||||
|
||||
include ImapMailboxModule
|
||||
include ImapSessionModule
|
||||
|
||||
before_filter :check_current_user,:selected_folder
|
||||
|
||||
before_filter :open_imap_session
|
||||
after_filter :close_imap_session
|
||||
|
||||
theme :theme_resolver
|
||||
|
||||
def index
|
||||
@folders = @current_user.folders.order("name asc")
|
||||
@current_folder = @current_user.folders.current(@selected_folder)
|
||||
flash[:notice] = 'Not implemented yet'
|
||||
end
|
||||
|
||||
end
|
89
app/controllers/folders_controller.rb
Executable file
89
app/controllers/folders_controller.rb
Executable file
|
@ -0,0 +1,89 @@
|
|||
class FoldersController < ApplicationController
|
||||
|
||||
include ImapMailboxModule
|
||||
include ImapSessionModule
|
||||
|
||||
before_filter :check_current_user ,:selected_folder
|
||||
|
||||
before_filter :open_imap_session
|
||||
after_filter :close_imap_session
|
||||
|
||||
before_filter :get_folders, :except => :manage
|
||||
|
||||
theme :theme_resolver
|
||||
|
||||
def index
|
||||
|
||||
end
|
||||
|
||||
def create
|
||||
if params["folder"].empty?
|
||||
flash[:warning] = t(:folder_to_create_empty)
|
||||
render "index"
|
||||
else
|
||||
begin
|
||||
if params["parent_folder"].empty?
|
||||
@mailbox.create_folder(params[:folder])
|
||||
else
|
||||
parent_folder = Folder.find(params["parent_folder"])
|
||||
if parent_folder.depth >= $defaults["mailbox_max_parent_folder_depth"].to_i
|
||||
raise Exception, t(:folder_max_depth)
|
||||
end
|
||||
@mailbox.create_folder(parent_folder.full_name + parent_folder.delim + params[:folder])
|
||||
end
|
||||
rescue Exception => e
|
||||
flash[:error] = t(:can_not_create_folder) + ' (' + e.to_s + ')'
|
||||
render 'index'
|
||||
return
|
||||
end
|
||||
redirect_to :action => 'manage', :flash => t(:folder_was_created), :type => :notice
|
||||
end
|
||||
end
|
||||
# FIXME if you delete folder you should change current folder because if you go to messages/index you got nil
|
||||
def delete
|
||||
if params["folder"].empty?
|
||||
flash[:warning] = t(:folder_to_delete_empty)
|
||||
render "index"
|
||||
else
|
||||
begin
|
||||
folder = Folder.find(params["folder"])
|
||||
system_folders = Array.new
|
||||
system_folders << $defaults["mailbox_inbox"]
|
||||
system_folders << $defaults["mailbox_trash"]
|
||||
system_folders << $defaults["mailbox_sent"]
|
||||
system_folders << $defaults["mailbox_drafts"]
|
||||
if system_folders.include?(folder.full_name.downcase)
|
||||
raise Exception, t(:system_folder)
|
||||
end
|
||||
@mailbox.delete_folder(Folder.find(params["folder"]).full_name)
|
||||
rescue Exception => e
|
||||
flash[:error] = t(:can_not_delete_folder) + ' (' + e.to_s + ')'
|
||||
render 'index'
|
||||
return
|
||||
end
|
||||
redirect_to :action => 'manage', :flash => t(:folder_was_deleted), :type => :notice
|
||||
end
|
||||
end
|
||||
|
||||
def sub_un_scribe
|
||||
redirect_to :action => 'manage'
|
||||
end
|
||||
|
||||
def manage
|
||||
@current_user.folders.destroy_all
|
||||
folders=@mailbox.folders
|
||||
Folder.createBulk(@current_user,folders)
|
||||
if params[:flash]
|
||||
flash[params[:type]] = params[:flash]
|
||||
end
|
||||
redirect_to :action => 'index'
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def get_folders
|
||||
@folders = @current_user.folders.order("name asc")
|
||||
@current_folder = @current_user.folders.current(@selected_folder)
|
||||
end
|
||||
|
||||
end
|
|
@ -13,7 +13,14 @@ class InternalController < ApplicationController
|
|||
@title = t(:imap_error)
|
||||
@error = params[:error] || t(:unspecified_error)
|
||||
logger.error "!!! InternalControllerImapError: " + @error
|
||||
render 'error'
|
||||
render 'error'
|
||||
end
|
||||
|
||||
def loginfailure
|
||||
reset_session
|
||||
flash[:error] = t(:login_failure)
|
||||
@current_user = nil
|
||||
redirect_to :controller=>'user', :action => 'login'
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -16,6 +16,7 @@ class MessagesController < ApplicationController
|
|||
def index
|
||||
@folders = @current_user.folders.order("name asc")
|
||||
@current_folder = @current_user.folders.current(@selected_folder)
|
||||
flash[:notice] = 'Not implemented yet'
|
||||
end
|
||||
|
||||
def refresh
|
||||
|
@ -30,4 +31,10 @@ class MessagesController < ApplicationController
|
|||
redirect_to :action => 'index'
|
||||
end
|
||||
|
||||
def compose
|
||||
@folders = @current_user.folders.order("name asc")
|
||||
@current_folder = @current_user.folders.current(@selected_folder)
|
||||
flash[:notice] = 'Not impelented yet'
|
||||
end
|
||||
|
||||
end
|
||||
|
|
13
app/controllers/prefs_controller.rb
Executable file
13
app/controllers/prefs_controller.rb
Executable file
|
@ -0,0 +1,13 @@
|
|||
class PrefsController < ApplicationController
|
||||
|
||||
before_filter :check_current_user,:selected_folder
|
||||
|
||||
theme :theme_resolver
|
||||
|
||||
def index
|
||||
@folders = @current_user.folders.order("name asc")
|
||||
@current_folder = @current_user.folders.current(@selected_folder)
|
||||
flash[:notice] = 'Not implemented yet'
|
||||
end
|
||||
|
||||
end
|
|
@ -17,23 +17,16 @@ class UserController < ApplicationController
|
|||
if user.nil?
|
||||
redirect_to :action => 'unknown' ,:email=> params[:user][:email]
|
||||
else
|
||||
auten = true
|
||||
if auten == true
|
||||
session[:user_id] = user.id
|
||||
user.set_cached_password(session,params[:user][:password])
|
||||
|
||||
if session["return_to"]
|
||||
redirect_to(session["return_to"])
|
||||
session["return_to"] = nil
|
||||
else
|
||||
redirect_to :controller=> 'messages', :action=> 'refresh'
|
||||
end
|
||||
|
||||
session[:user_id] = user.id
|
||||
user.set_cached_password(session,params[:user][:password])
|
||||
|
||||
if session["return_to"]
|
||||
redirect_to(session["return_to"])
|
||||
session["return_to"] = nil
|
||||
else
|
||||
flash[:error] = t(:login_failure)
|
||||
redirect_to :action => 'login'
|
||||
redirect_to :controller=> 'messages', :action=> 'refresh'
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue