Sha256: a63f10abcf98c1998dba9305168f662da87a5de8cfb25a48c1eed5a8da0fc54c

Contents?: true

Size: 1.76 KB

Versions: 2

Compression:

Stored size: 1.76 KB

Contents

module Typus
  module Controller
    module Trash

      def self.included(base)
        base.before_filter :set_predefined_filter_for_trash, :only => [:index, :trash]
      end

      def set_predefined_filter_for_trash
        add_predefined_filter("Trash", "trash", "deleted")
      end
      private :set_predefined_filter_for_trash

      def trash
        set_deleted

        get_objects

        respond_to do |format|
          format.html do
            # Actions by resource.
            add_resource_action('Restore', {:action => 'restore'}, {:confirm => Typus::I18n.t("Restore %{resource}?", :resource => @resource.model_name.human)})
            add_resource_action('Delete Permanently', {:action => 'wipe'}, {:confirm => Typus::I18n.t("Delete Permanently %{resource}?", :resource => @resource.model_name.human)})
            # Generate and render.
            generate_html
            render 'index'
          end

          %w(json xml csv).each { |f| format.send(f) { send("generate_#{f}") } }
        end
      end

      def restore
        set_deleted
        @resource.find(params[:id]).restore
        redirect_to :back, :notice => Typus::I18n.t("%{resource} recovered from trash.", :resource => @resource.name)
      rescue ActiveRecord::RecordNotFound
        redirect_to :back, :notice => Typus::I18n.t("%{resource} can't be recovered from trash.", :resource => @resource.name)
      end

      def wipe
        set_deleted
        item = @resource.find(params[:id])
        item.disable_trash { item.destroy }
        redirect_to :back, :notice => Typus::I18n.t("%{resource} has been successfully removed from trash.", :resource => @resource.name)
      end

      def set_deleted
        @resource = @resource.deleted
      end
      private :set_deleted

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
typus-3.1.0.rc6 lib/typus/controller/trash.rb
typus-3.1.0.rc5 lib/typus/controller/trash.rb