Class: ErpApp::Desktop::FileManager::BaseController

Inherits:
BaseController show all
Defined in:
app/controllers/erp_app/desktop/file_manager/base_controller.rb

Constant Summary collapse

ROOT_NODE =
'root_node'

Instance Method Summary collapse

Methods inherited from BaseController

#index

Instance Method Details

#base_pathObject



12
13
14
# File 'app/controllers/erp_app/desktop/file_manager/base_controller.rb', line 12

def base_path
  @base_path ||= Rails.root.to_s
end

#create_fileObject



24
25
26
27
28
29
30
31
# File 'app/controllers/erp_app/desktop/file_manager/base_controller.rb', line 24

def create_file
  path = (params[:path] == ROOT_NODE) ? base_path : params[:path]
  name = params[:name]

  @file_support.create_file(path, name, "#Empty File")

  render :json => {:success => true, :node => @file_support.find_node(File.join(path, name), {keep_full_path: true})}
end

#create_folderObject



33
34
35
36
37
38
39
# File 'app/controllers/erp_app/desktop/file_manager/base_controller.rb', line 33

def create_folder
  path = (params[:path] == ROOT_NODE) ? base_path : params[:path]
  name = params[:name]

  @file_support.create_folder(path, name)
  render :json => {:success => true, :node => @file_support.find_node(File.join(path, name))}
end

#delete_fileObject



76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'app/controllers/erp_app/desktop/file_manager/base_controller.rb', line 76

def delete_file
  messages = []
  nodes_to_delete = (params[:selected_nodes] ? JSON(params[:selected_nodes]) : [params[:node]])

  begin
    nodes_to_delete.each do |path|
      result, message = @file_support.delete_file(path)
      messages << message
    end
    render :json => {:success => true, :msg => messages.join(',')}
  rescue Exception => e
    render :json => {:success => false, :error => ex.message}
  end
end

#download_fileObject

This method downloads a file directly from file storage (bypassing file_assets) to download thru file_assets, use erp_app/public#download



43
44
45
46
47
# File 'app/controllers/erp_app/desktop/file_manager/base_controller.rb', line 43

def download_file
  path = params[:path]
  contents, message = @file_support.get_contents(path)
  send_data contents, :filename => File.basename(path), :disposition => :attachment
end

#expand_directoryObject



91
92
93
94
# File 'app/controllers/erp_app/desktop/file_manager/base_controller.rb', line 91

def expand_directory
  path = (params[:node] == ROOT_NODE) ? base_path : params[:node]
  render :json => @file_support.build_tree(path)
end

#get_contentsObject



96
97
98
99
100
101
102
103
104
105
106
# File 'app/controllers/erp_app/desktop/file_manager/base_controller.rb', line 96

def get_contents
  path = params[:node]

  contents, message = @file_support.get_contents(path)

  if contents.nil?
    render :text => message
  else
    render :text => contents
  end
end

#rename_fileObject



67
68
69
70
71
72
73
74
# File 'app/controllers/erp_app/desktop/file_manager/base_controller.rb', line 67

def rename_file
  path = params[:node]
  name = params[:file_name]

  result, message = @file_support.rename_file(path, name)

  render :json => {:success => result, :msg => message}
end

#save_moveObject



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'app/controllers/erp_app/desktop/file_manager/base_controller.rb', line 49

def save_move
  messages = []
  nodes_to_move = (params[:selected_nodes] ? JSON(params[:selected_nodes]) : [params[:node]])

  begin
    nodes_to_move.each do |node|
      path            = node
      new_parent_path = (params[:parent_node] == ROOT_NODE) ? base_path : params[:parent_node]
      new_parent_path = new_parent_path.gsub(base_path,'') # target path must be relative
      result, message = @file_support.save_move(path, new_parent_path)
      messages << message
    end
    render :json => {:success => true, :msg => messages.join(',')}
  rescue => ex
    render :json => {:success => false, :error => ex.message}
  end
end

#update_fileObject



16
17
18
19
20
21
22
# File 'app/controllers/erp_app/desktop/file_manager/base_controller.rb', line 16

def update_file
  path    = params[:node]
  content = params[:content]

  @file_support.update_file(path, content)
  render :json => {:success => true}
end

#upload_fileObject



108
109
110
111
112
113
114
115
# File 'app/controllers/erp_app/desktop/file_manager/base_controller.rb', line 108

def upload_file
  upload_path = params[:directory]
  upload_path = base_path if upload_path == ROOT_NODE

  result = upload_file_to_path(upload_path)

  render :inline => result.to_json
end