Diff
Modified: branches/datasets/app/controllers/data_items_controller.rb (2935 => 2936)
--- branches/datasets/app/controllers/data_items_controller.rb 2012-02-16 17:00:37 UTC (rev 2935)
+++ branches/datasets/app/controllers/data_items_controller.rb 2012-02-17 11:39:13 UTC (rev 2936)
@@ -19,16 +19,13 @@
:data_set => @data_set)
respond_to do |format|
format.html { redirect_to data_set_url(@data_set) }
+ format.js { render :layout => false }
end
else
fetch_port_names
respond_to do |format|
- if request.xhr?
- format.html { render :partial => "data_sets/errors", :status => :unprocessable_entity,
- :locals => {:errors => @data_item.errors.full_messages} }
- else
- format.html { render :action ="" "new", :status => :unprocessable_entity }
- end
+ format.html { render :action ="" "new", :status => :unprocessable_entity }
+ format.js { render :layout => false, :status => :unprocessable_entity }
end
end
end
@@ -37,21 +34,14 @@
if @data_item.update_attributes(:data ="" get_data, :port_name => params[:workflow_port], :port_type => params[:port_type],
:data_set => @data_set)
respond_to do |format|
- if request.xhr?
- format.html { render :partial => "data_items/data_item", :object => @data_item }
- else
- format.html { redirect_to data_set_url(@data_set) }
- end
+ format.html { redirect_to data_set_url(@data_set) }
+ format.js { render :layout => false }
end
else
fetch_port_names
respond_to do |format|
- if request.xhr?
- format.html { render :partial => "data_sets/errors", :status => :unprocessable_entity,
- :locals => {:errors => @data_item.errors.full_messages} }
- else
- format.html { render :action ="" "edit", :status => :unprocessable_entity }
- end
+ format.html { render :action ="" "edit", :status => :unprocessable_entity }
+ format.js { render :layout => false, :status => :unprocessable_entity }
end
end
end
@@ -68,11 +58,8 @@
def edit
respond_to do |format|
- if request.xhr?
- format.html { render :partial => "data_items/data_item_form" }
- else
- format.html
- end
+ format.html
+ format.js { render :layout => false }
end
end
@@ -81,31 +68,22 @@
if @port_names.empty?
respond_to do |format|
- if request.xhr?
- format.html { render :nothing => true, :status => :unprocessable_entity }
- else
- flash[:error] = "No more #{params[:port_type]}s left to specify."
- format.html { redirect_to data_set_url(@data_set) }
- end
+ flash[:error] = "No more #{params[:port_type]}s left to specify."
+ format.html { redirect_to data_set_url(@data_set) }
+ format.js { render :layout => false }
end
else
respond_to do |format|
- if request.xhr?
- format.html { render :partial => "data_items/data_item_form" }
- else
- format.html
- end
+ format.html
+ format.js { render :layout => false }
end
end
end
def show
respond_to do |format|
- if request.xhr?
- format.html { render :partial => "data_items/data_item", :object => @data_item }
- else
- format.html
- end
+ format.html
+ format.js { render :layout => false }
end
end
@@ -170,7 +148,10 @@
def auth
unless Authorization.is_authorized?("edit", nil, @data_set, current_user)
respond_to do |format|
- format.html { render :nothing => true, :status => :forbidden }
+ flash[:error] = "You are not authorized to modify this data set."
+ flash[:error] += " Please log in." unless logged_in?
+ format.html { redirect_to data_set_url(@data_set) }
+ format.js { render :text => "window.location.reload();" } # Refresh the page
end
end
end
Modified: branches/datasets/app/views/data_items/_data_item.rhtml (2935 => 2936)
--- branches/datasets/app/views/data_items/_data_item.rhtml 2012-02-16 17:00:37 UTC (rev 2935)
+++ branches/datasets/app/views/data_items/_data_item.rhtml 2012-02-17 11:39:13 UTC (rev 2936)
@@ -32,8 +32,8 @@
:title => "Delete this #{data_item.dependent_data? ? "data" : "association"}"}, "", false) %>
<br/>
<% end %>
- <%= icon('edit', {:url ="" edit_data_item_path(data_item), :method => :get,
- :update => {:success => "item_#{data_item.id}"},
+ <%= icon('edit', {:url ="" edit_data_item_path(data_item),
+ :method => :get,
:loading => "$('data_item_#{data_item.id}_spinner').show();",
:complete => "$('data_item_#{data_item.id}_spinner').hide();"},
nil, {:title => "Edit this #{data_item.dependent_data? ? "data" : "association"}"}, "", true) %>
Modified: branches/datasets/app/views/data_items/_data_item_form.rhtml (2935 => 2936)
--- branches/datasets/app/views/data_items/_data_item_form.rhtml 2012-02-16 17:00:37 UTC (rev 2935)
+++ branches/datasets/app/views/data_items/_data_item_form.rhtml 2012-02-17 11:39:13 UTC (rev 2936)
@@ -1,9 +1,8 @@
<%
- port_name = @data_item.port_name
port_type = @data_item.port_type
port_names_for_select = @port_names.map do |p|
- %(<option #{"selected=\"selected\"" if (port_name == p)}
+ %(<option #{"selected=\"selected\"" if (@data_item.port_name == p)}
value="#{p}" title="#{h p}">#{h truncate(p, :length => 20)}</option>)
end.join.html_safe
@@ -11,7 +10,6 @@
container_element = @data_item.id.nil? ? "data_item_#{port_type}_form" : "address@hidden"
unique_id = (@data_item.id || port_type).to_s
-
# We have to revert using a normal, non-AJAX HTTP request when uploading a file, because files cannot be uploaded using
# _javascript_, as it is forbidden from accessing the file system for security reasons.
#
@@ -20,33 +18,28 @@
form_submit_function = nil
no_ajax ||= false
+ form_submit_function = %(
+ $('data_item_form_spinner_#{unique_id}').show();
+ $('data_item_submit_#{unique_id}').disable().value = "...";
+ return true;
+ )
+
unless no_ajax || @data_item.id.nil?
form_submit_function = %(
if($F('data_type_select_#{unique_id}') == "FileData"){
//Normal HTTP request
- $('data_item_form_spinner_#{unique_id}').show();
- $('data_item_submit_#{unique_id}').disable().value = "...";
- return true;
+ #{form_submit_function}
}
else{
//AJAX
#{remote_function(:url ="" data_item_path(@data_item),
:method => :put,
- :update => {:success => container_element,
- :failure => "data_item_form_errors"},
- :failure => "$('data_item_form_errors').show();",
:loading => "$('data_item_form_spinner_#{unique_id}').show();",
:complete => "$('data_item_form_spinner_#{unique_id}').hide();",
:form => true)};
return false;
}
)
- else
- form_submit_function = %(
- $('data_item_form_spinner_#{unique_id}').show();
- $('data_item_submit_#{unique_id}').disable().value = "...";
- return true;
- )
end
%>
@@ -109,7 +102,6 @@
<% else %>
<%= link_to "Cancel", "#", : remote_function(:url ="" data_item_path(@data_item),
:method => :get,
- :update => {:success => container_element},
:loading => "$('data_item_form_spinner_#{unique_id}').show();",
:complete => "$('data_item_form_spinner_#{unique_id}').hide();")+
";return false" %>
Added: branches/datasets/app/views/data_items/create.js.erb (0 => 2936)
--- branches/datasets/app/views/data_items/create.js.erb (rev 0)
+++ branches/datasets/app/views/data_items/create.js.erb 2012-02-17 11:39:13 UTC (rev 2936)
@@ -0,0 +1,7 @@
+<% if @data_item.errors.empty? %>
+ $('data_item_<address@hidden>_form').update(
+ '<%= escape_javascript(render :partial => "data_items/data_item", :object => @data_item) -%>'
+ );
+<% else %>
+ alert('<%= escape_javascript(@data_item.errors.full_messages.join("\n")) -%>');
+<% end %>
Added: branches/datasets/app/views/data_items/edit.js.erb (0 => 2936)
--- branches/datasets/app/views/data_items/edit.js.erb (rev 0)
+++ branches/datasets/app/views/data_items/edit.js.erb 2012-02-17 11:39:13 UTC (rev 2936)
@@ -0,0 +1,3 @@
+$('item_<address@hidden>').update(
+ '<%= escape_javascript(render :partial => "data_items/data_item_form", :object => @data_item) -%>'
+);
Added: branches/datasets/app/views/data_items/new.js.erb (0 => 2936)
--- branches/datasets/app/views/data_items/new.js.erb (rev 0)
+++ branches/datasets/app/views/data_items/new.js.erb 2012-02-17 11:39:13 UTC (rev 2936)
@@ -0,0 +1,7 @@
+<% unless @port_names.empty? %>
+ $('data_item_<address@hidden>_form').update(
+ '<%= escape_javascript(render :partial => "data_items/data_item_form", :object => @data_item) -%>'
+ );
+<% else %>
+ alert('No more <address@hidden>s left to specify, try refreshing the page.');
+<% end %>
Added: branches/datasets/app/views/data_items/show.js.erb (0 => 2936)
--- branches/datasets/app/views/data_items/show.js.erb (rev 0)
+++ branches/datasets/app/views/data_items/show.js.erb 2012-02-17 11:39:13 UTC (rev 2936)
@@ -0,0 +1,3 @@
+$('<address@hidden ? "address@hidden" : "address@hidden"-%>').update(
+ '<%= escape_javascript(render :partial => "data_items/data_item", :object => @data_item) -%>'
+);
Added: branches/datasets/app/views/data_items/update.js.erb (0 => 2936)
--- branches/datasets/app/views/data_items/update.js.erb (rev 0)
+++ branches/datasets/app/views/data_items/update.js.erb 2012-02-17 11:39:13 UTC (rev 2936)
@@ -0,0 +1,7 @@
+<% if @data_item.errors.empty? %>
+ $('item_<address@hidden>').update(
+ '<%= escape_javascript(render :partial => "data_items/data_item", :object => @data_item) -%>'
+ );
+<% else %>
+ alert('<%= escape_javascript(@data_item.errors.full_messages.join("\n")) -%>');
+<% end %>
Modified: branches/datasets/app/views/data_sets/_data_set.rhtml (2935 => 2936)
--- branches/datasets/app/views/data_sets/_data_set.rhtml 2012-02-16 17:00:37 UTC (rev 2935)
+++ branches/datasets/app/views/data_sets/_data_set.rhtml 2012-02-17 11:39:13 UTC (rev 2936)
@@ -56,8 +56,6 @@
<ul class="sectionIcons">
<li>
<%= icon('new', {:url ="" new_data_set_data_item_path(:data_set_id => @data_set.id, :port_type => "input"), :method => :get,
- :update => {:success => "data_item_input_form"},
- :failure => "alert('No more inputs left to specify.')",
:loading => "$('data_item_input_form_spinner').show();",
:complete => "$('data_item_input_form_spinner').hide();"}, nil, nil,
'Add input data', true) %>
@@ -92,12 +90,11 @@
<% if @free_output_count > 0 %>
<ul class="sectionIcons">
<li>
- <%= icon('new', {:url ="" new_data_set_data_item_path(:data_set_id => @data_set.id, :port_type => "output"), :method => :get,
- :update => {:success => "data_item_output_form"},
- :failure => "alert('No more outputs left to specify.')",
+ <%= icon('new', {:url ="" new_data_set_data_item_path(:data_set_id => @data_set.id, :port_type => "output"),
+ :method => :get,
:loading => "$('data_item_output_form_spinner').show();",
- :complete => "$('data_item_output_form_spinner').hide();"}, nil, nil,
- 'Add output data', true) %>
+ :complete => "$('data_item_output_form_spinner').hide();"},
+ nil, nil, 'Add output data', true) %>
<img id="data_item_output_form_spinner" src="" style="display:none; vertical-align: middle;"/>
</li>
</ul>
Modified: branches/datasets/test/functional/data_items_controller_test.rb (2935 => 2936)
--- branches/datasets/test/functional/data_items_controller_test.rb 2012-02-16 17:00:37 UTC (rev 2935)
+++ branches/datasets/test/functional/data_items_controller_test.rb 2012-02-17 11:39:13 UTC (rev 2936)
@@ -14,7 +14,7 @@
assert_difference("TextData.count", 1) do
assert_difference("DataItem.count", 1) do
- xhr :post, :create, :data_set_id => data_set.id,
+ post :create, :data_set_id => data_set.id,
:workflow_port => "string1",
:port_type => "input",
:data_type => "TextData",
@@ -31,7 +31,7 @@
login_as(:john)
assert_difference("DataItem.count", 1) do
- xhr :post, :create, :data_set_id => data_set.id,
+ post :create, :data_set_id => data_set.id,
:workflow_port => "string1",
:port_type => "input",
:data_type => "Blob",
@@ -91,7 +91,7 @@
assert_no_difference("TextData.count") do
assert_no_difference("DataItem.count") do
- xhr :post, :create, :data_set_id => data_set.id,
+ post :create, :data_set_id => data_set.id,
:workflow_port => "string1",
:port_type => "invalid_port_type_that_will_cause_failure",
:data_type => "TextData",
@@ -109,7 +109,7 @@
assert_no_difference("TextData.count") do
assert_no_difference("DataItem.count") do
- xhr :post, :create, :data_set_id => data_set.id,
+ post :create, :data_set_id => data_set.id,
:workflow_port => "string1",
:port_type => "input",
:data_type => "TextData",
@@ -135,7 +135,7 @@
end
end
- assert_response :forbidden
+ assert flash[:error]
end
test "can replace data in a data set" do