diff --git a/app/controllers/dmsf_links_controller.rb b/app/controllers/dmsf_links_controller.rb index 9116bd01..3d66ac7c 100644 --- a/app/controllers/dmsf_links_controller.rb +++ b/app/controllers/dmsf_links_controller.rb @@ -33,14 +33,44 @@ class DmsfLinksController < ApplicationController @dmsf_file_id = params[:dmsf_link][:dmsf_file_id] @type = params[:dmsf_link][:type] @dmsf_link.target_project_id = params[:dmsf_link][:target_project_id] - @target_folder_id = params[:dmsf_link][:target_folder_id].to_i if params[:reload].blank? && DmsfLinksHelper.is_a_number?(params[:dmsf_link][:target_folder_id]) + @target_folder_id = params[:dmsf_link][:target_folder_id].to_i if params[:reload].blank? && DmsfLinksHelper.is_a_number?(params[:dmsf_link][:target_folder_id]) + if params[:dmsf_link][:name].blank? + if @type == 'link_to' + if params[:dmsf_link][:dmsf_file_id].present? + file = DmsfFile.find_by_id params[:dmsf_link][:dmsf_file_id] + @dmsf_link.name = file.title if file + else + folder = DmsfFolder.find_by_id params[:dmsf_link][:dmsf_folder_id] + @dmsf_link.name = folder.title if folder + end + else + if params[:dmsf_link][:target_file_id].present? + file = DmsfFile.find_by_id params[:dmsf_link][:target_file_id] + @dmsf_link.name = file.title if file + else + folder = DmsfFolder.find_by_id params[:dmsf_link][:target_folder_id] + @dmsf_link.name = folder.title if folder + end + end + else + @dmsf_link.name = params[:dmsf_link][:name] + end else # Link from/to @dmsf_link.dmsf_folder_id = params[:dmsf_folder_id] @dmsf_file_id = params[:dmsf_file_id] @type = params[:type] @dmsf_link.target_project_id = params[:project_id] - @target_folder_id = params[:dmsf_folder_id].to_i if params[:dmsf_folder_id].present? + @target_folder_id = params[:dmsf_folder_id].to_i if params[:dmsf_folder_id].present? + if @type == 'link_to' + if @dmsf_file_id + file = DmsfFile.find_by_id @dmsf_file_id + @dmsf_link.name = file.title if file + else + folder = DmsfFolder.find_by_id @target_folder_id + @dmsf_link.name = folder.title if folder + end + end end render :layout => !request.xhr? diff --git a/app/views/dmsf_links/_form.html.erb b/app/views/dmsf_links/_form.html.erb index 091c56c6..d76c0959 100644 --- a/app/views/dmsf_links/_form.html.erb +++ b/app/views/dmsf_links/_form.html.erb @@ -72,7 +72,7 @@
<% end %>- <%= label_tag('dmsf_link[name]', l(:label_link_name), :class => 'required') %> + <%= label_tag('dmsf_link[name]', l(:label_link_name), :class => 'required') %> <%= text_field_tag 'dmsf_link[name]', @dmsf_link.name, :size => 40, :maxlength => 255 %>
@@ -86,4 +86,7 @@ $('#dmsf_link_target_folder_id').change(function () { $('#content').load("<%= url_for(:action => 'new', :project_id => @project.id) %>", $('#new_dmsf_link').serialize()); }); + $('#dmsf_link_target_file_id').change(function () { + $('#content').load("<%= url_for(:action => 'new', :project_id => @project.id) %>", $('#new_dmsf_link').serialize()); + }); \ No newline at end of file