diff --git a/app/controllers/authors_controller.rb b/app/controllers/authors_controller.rb index ebf6b509690bc6fdb4feeecb670e3fda1ac6572c..2f53c442b9aae271a003bc19286e897c4904569a 100644 --- a/app/controllers/authors_controller.rb +++ b/app/controllers/authors_controller.rb @@ -5,5 +5,12 @@ class AuthorsController < ApplicationController @author= Author.where(:id => params[:id]).first @author_ostatus_posts = @author.ostatus_posts.sort(:created_at.desc) end + + + def destroy + current_user.unsubscribe_from_pubsub(params[:id]) + flash[:notice] = "unsubscribed person." + redirect_to ostatus_path + end end diff --git a/app/models/author.rb b/app/models/author.rb index 2f50c28cb9175ec302083ab7672d4482a81314bd..1547e67fa7236f9676aaa407fd3c37e6b2ee9742 100644 --- a/app/models/author.rb +++ b/app/models/author.rb @@ -9,7 +9,8 @@ class Author key :hub, String many :ostatus_posts, :class_name => 'OstatusPost', :foreign_key => :author_id - before_save :set_defaults + before_save :set_defaults + before_destroy :delete_posts def self.instantiate(opts) author = Author.first(:feed_url => opts[:feed_url]) @@ -22,4 +23,8 @@ class Author self.avatar_thumbnail = nil if self.avatar_thumbnail == 0 self.service = self.url if self.service == 0 end + + def delete_posts + self.ostatus_posts.delete_all + end end diff --git a/app/views/authors/show.html.haml b/app/views/authors/show.html.haml index 7191f40a663e312dfe64ab66b30df2b33202f34f..364bf6eace6ef9f0dd0eb1520afff685141644da 100644 --- a/app/views/authors/show.html.haml +++ b/app/views/authors/show.html.haml @@ -1,6 +1,6 @@ .span-20.last %h1= "#{@author.username}" - + = link_to 'unsubscribe', @author, :confirm => 'Are you sure?', :method => :delete .span-20 - if @author_ostatus_posts diff --git a/app/views/dashboards/index.html.haml b/app/views/dashboards/index.html.haml index 088ec334fb1cd3c6659971092d7f3a9cbb8bc360..86dbeeec90623fd282af8e016eb1c384423750da 100644 --- a/app/views/dashboards/index.html.haml +++ b/app/views/dashboards/index.html.haml @@ -7,6 +7,7 @@ %h1= title_for_page = render "shared/publisher" %ul#stream + = puts @posts.inspect - for post in @posts = render type_partial(post), :post => post #pagination