diff --git a/app/assets/javascripts/feeds.js.coffee b/app/assets/javascripts/feeds.js.coffee index 9e59633..02dcf3c 100644 --- a/app/assets/javascripts/feeds.js.coffee +++ b/app/assets/javascripts/feeds.js.coffee @@ -13,3 +13,8 @@ $(document).ready -> false ) + $(".delete_feed").on("ajax:success", (event, data) -> + $(this).parent().remove() + false + ) + diff --git a/app/controllers/feeds_controller.rb b/app/controllers/feeds_controller.rb index 558cb9f..190af3d 100644 --- a/app/controllers/feeds_controller.rb +++ b/app/controllers/feeds_controller.rb @@ -15,6 +15,16 @@ class FeedsController < ApplicationController redirect_to :action => :index, :notice => "Add the feed" end + def destroy + Feed.find(params[:id]).destroy + render :nothing => true, :status => :ok + end + + def errors + @errors = Feed.find(params[:id]).errors + render :layout => false + end + def import fh = File.open(Rails.root.join("public", "uploads", params[:importer][:import_file].original_filename)) # TODO: Hier gehts weiter diff --git a/app/models/error.rb b/app/models/error.rb new file mode 100644 index 0000000..31b3985 --- /dev/null +++ b/app/models/error.rb @@ -0,0 +1,3 @@ +class Error < ActiveRecord::Base + belongs_to :feed +end diff --git a/app/models/feed.rb b/app/models/feed.rb index 213a0a2..eead359 100644 --- a/app/models/feed.rb +++ b/app/models/feed.rb @@ -1,7 +1,8 @@ require "pp" class Feed < ActiveRecord::Base - has_many :items + has_many :items, :dependent => :destroy + has_many :errors, :dependent => :destroy validates_uniqueness_of :url @@ -20,11 +21,19 @@ class Feed < ActiveRecord::Base end by_url(url).update_attribute(:has_errors, false) rescue Exception => e - pp e + Error.create!(:feed_id => self.id, :action => :fetch_and_parse, + :message => e) end end, :on_failure => lambda do |url, response_code, response_header, response_body| by_url(url).update_attribute(:has_errors, true) + Error.create!(:feed_id => self.id, :action => :fetch_and_parse, + :message => " + url: #{url} + response-code: #{response_code} + response-header: #{response_header} + response-body: #{response_body} + ") end ) end @@ -36,7 +45,15 @@ class Feed < ActiveRecord::Base end, :on_failure => lambda do |url, response_code, response_header, response_body| if params.first.include?(:force) - Feed.create!(:url => url, :has_errors => true) + feed = Feed.create!(:url => url, :has_errors => true) + + Error.create!(:feed_id => feed.id, :action => :import, + :message => " + url: #{url} + response-code: #{response_code} + response-header: #{response_header} + response-body: #{response_body} + ") end end ) diff --git a/app/views/feeds/_navigation.html.erb b/app/views/feeds/_navigation.html.erb index f957b51..55bfa8a 100644 --- a/app/views/feeds/_navigation.html.erb +++ b/app/views/feeds/_navigation.html.erb @@ -1,5 +1,9 @@
<%= error.message %>+