app/controllers/knitkit/erp_app/desktop/theme_controller.rb in knitkit-2.0.5 vs app/controllers/knitkit/erp_app/desktop/theme_controller.rb in knitkit-2.0.6
- old
+ new
@@ -153,27 +153,29 @@
render :json => {:success => false, :message => ex.message}
end
end
def save_move
+ result = {}
+ nodes_to_move = (params[:selected_nodes] ? JSON(params[:selected_nodes]) : [params[:node]])
model = DesktopApplication.find_by_internal_identifier('knitkit')
begin
- current_user.with_capability(model, 'view', 'Theme') do
- result = {}
- path = File.join(@file_support.root, params[:node])
- new_parent_path = File.join(@file_support.root, params[:parent_node])
+ nodes_to_move.each do |node|
+ current_user.with_capability(model, 'view', 'Theme') do
+ path = File.join(@file_support.root, node)
+ new_parent_path = File.join(@file_support.root, params[:parent_node])
- unless @file_support.exists? path
- result = {:success => false, :msg => 'File does not exist.'}
- else
- theme_file = get_theme_file(path)
- theme_file.move(params[:parent_node])
- result = {:success => true, :msg => "#{File.basename(path)} was moved to #{new_parent_path} successfully"}
+ unless @file_support.exists? path
+ result = {:success => false, :msg => 'File does not exist.'}
+ else
+ theme_file = get_theme_file(path)
+ theme_file.move(params[:parent_node])
+ result = {:success => true, :msg => "#{File.basename(path)} was moved to #{new_parent_path} successfully"}
+ end
end
-
- render :json => result
end
+ render :json => result
rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability=>ex
render :json => {:success => false, :message => ex.message}
end
end
@@ -205,13 +207,13 @@
def upload_file
model = DesktopApplication.find_by_internal_identifier('knitkit')
begin
current_user.with_capability(model, 'view', 'Theme') do
result = {}
- upload_path = request.env['HTTP_EXTRAPOSTDATA_DIRECTORY'].blank? ? params[:directory] : request.env['HTTP_EXTRAPOSTDATA_DIRECTORY']
- name = request.env['HTTP_X_FILE_NAME'].blank? ? params[:file_data].original_filename : request.env['HTTP_X_FILE_NAME']
- data = request.env['HTTP_X_FILE_NAME'].blank? ? params[:file_data] : request.raw_post
+ upload_path = params[:directory]
+ name = params[:name]
+ data = request.raw_post
theme = get_theme(upload_path)
name = File.join(@file_support.root, upload_path, name)
begin
@@ -229,28 +231,35 @@
render :json => {:success => false, :message => ex.message}
end
end
def delete_file
+ messages = []
+ nodes_to_delete = (params[:selected_nodes] ? JSON(params[:selected_nodes]) : [params[:node]])
model = DesktopApplication.find_by_internal_identifier('knitkit')
begin
- current_user.with_capability(model, 'view', 'Theme') do
- path = params[:node]
- result = {}
- begin
- name = File.basename(path)
- result, message, is_folder = @file_support.delete_file(File.join(@file_support.root,path))
- if result && !is_folder
- theme_file = get_theme_file(path)
- theme_file.destroy
+ result = false
+ nodes_to_delete.each do |path|
+ current_user.with_capability(model, 'view', 'Theme') do
+ begin
+ name = File.basename(path)
+ result, message, is_folder = @file_support.delete_file(File.join(@file_support.root,path))
+ if result && !is_folder
+ theme_file = get_theme_file(path)
+ theme_file.destroy
+ end
+ messages << message
+ rescue Exception=>ex
+ Rails.logger.error ex.message
+ Rails.logger.error ex.backtrace.join("\n")
+ render :json => {:success => false, :error => "Error deleting #{name}"} and return
end
- result = {:success => result, :error => message}
- rescue Exception=>ex
- logger.error ex.message
- logger.error ex.backtrace.join("\n")
- result = {:success => false, :error => "Error deleting #{name}"}
- end
- render :json => result
+ end # end current_user.with_capability
+ end # end nodes_to_delete.each
+ if result
+ render :json => {:success => true, :message => messages.join(',')}
+ else
+ render :json => {:success => false, :error => messages.join(',')}
end
rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability=>ex
render :json => {:success => false, :message => ex.message}
end
end