diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 84533de..31f7d80 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -8,8 +8,15 @@ class AppsController < ApplicationController end def show - @errs = @app.errs.ordered.paginate(:page => params[:page], :per_page => Err.per_page) - @deploys = @app.deploys.order_by(:created_at.desc).limit(5) + respond_to do |format| + format.html do + @errs = @app.errs.ordered.paginate(:page => params[:page], :per_page => Err.per_page) + @deploys = @app.deploys.order_by(:created_at.desc).limit(5) + end + format.atom do + @errs = @app.errs.unresolved.ordered + end + end end def new diff --git a/app/views/apps/show.atom.builder b/app/views/apps/show.atom.builder new file mode 100644 index 0000000..424a97b --- /dev/null +++ b/app/views/apps/show.atom.builder @@ -0,0 +1,4 @@ +atom_feed do |feed| + feed.title("Errbit notices for #{h @app.name} at #{root_url}") + render :partial => "errs/list", :locals => {:feed => feed} +end diff --git a/app/views/apps/show.html.haml b/app/views/apps/show.html.haml index 5c70b10..593b14f 100644 --- a/app/views/apps/show.html.haml +++ b/app/views/apps/show.html.haml @@ -1,4 +1,6 @@ - content_for :title, @app.name +- content_for :head do + = auto_discovery_link_tag :atom, app_url(@app, User.token_authentication_key => current_user.authentication_token, :format => "atom"), :title => "Errbit notices for #{@app.name} at #{root_url}" - content_for :meta do %strong Errs Caught: = @app.errs.count diff --git a/app/views/errs/_list.atom.builder b/app/views/errs/_list.atom.builder new file mode 100644 index 0000000..f9d8ef0 --- /dev/null +++ b/app/views/errs/_list.atom.builder @@ -0,0 +1,15 @@ +feed.updated(@errs.first.created_at) + +for err in @errs + notice = err.notices.first + + feed.entry(err, :url => app_err_url(err.app, err)) do |entry| + entry.title "[#{ err.where }] #{err.message.to_s.truncate(27)}" + entry.author do |author| + author.name "#{ err.app.name } [#{ err.environment }]" + end + if notice + entry.summary(notice_atom_summary(notice), :type => "html") + end + end +end diff --git a/app/views/errs/index.atom.builder b/app/views/errs/index.atom.builder index 1183f66..b0a77d5 100644 --- a/app/views/errs/index.atom.builder +++ b/app/views/errs/index.atom.builder @@ -1,18 +1,4 @@ atom_feed do |feed| feed.title("Errbit notices at #{root_url}") - feed.updated(@errs.first.created_at) - - for err in @errs - notice = err.notices.first - - feed.entry(err, :url => app_err_url(err.app, err)) do |entry| - entry.title "[#{ err.where }] #{err.message.to_s.truncate(27)}" - entry.author do |author| - author.name "#{ err.app.name } [#{ err.environment }]" - end - if notice - entry.summary(notice_atom_summary(notice), :type => "html") - end - end - end + render :partial => "errs/list", :locals => {:feed => feed} end -- libgit2 0.21.2