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