Sha256: 4fde9fe376ed937d49f7ebdbebabd3ce5a9fc60cd7303572eb5be24b7983cc9e

Contents?: true

Size: 1.68 KB

Versions: 1

Compression:

Stored size: 1.68 KB

Contents

class MediaController < ApplicationController
  layout "bacuview-layout"

# FIXTHIS: sorting on pool.volretention sorts by media.volretention,
# and vise versa.  This is way wrong, but easy to work around.
#    @media = Media.find_by_sql(
#      'SELECT * FROM media ' +
#      'JOIN pool ON pool.poolid=media.poolid ' +
#      'ORDER BY pool.volretention')

  def key_sql
    { "name"   => "volumename",        "name-"   => "volumename desc", 
      "slot"   => "inchanger,storageid,slot",
      "slot-"  => "inchanger desc,storageid desc,slot desc",
      "stat"   => "volstatus",         "stat-"   => "volstatus desc", 
      "jobs"   => "voljobs",           "jobs-"   => "voljobs desc",
      "files"  => "volfiles",          "files-"  => "volfiles desc", 
      "bytes"  => "volbytes",          "bytes-"  => "volbytes desc",
      "expire" => "expire",            "expire-" => "expire desc",
      "retain" => "Pool.volretention", "retain-" => "Pool.volretention desc",
      "pool"   => "name",              "pool-"   => "name desc",
      "ptype"  => "pooltype",          "ptype-"  => "pooltype desc",
      "mtype"  => "mediatype",         "mtype-"  => "mediatype desc" }
  end

  def index
    @page_title = "Media"
    @media = Media.find(:all,
      :order => sort_key(:msort, key_sql),
      :joins => 'join Pool on Pool.PoolId=Media.PoolId',
      :select => "*, " +
        ( MYSQL ?
          "from_unixtime(unix_timestamp(lastwritten) + Media.volretention) " :
          "lastwritten + media.volretention * interval '1 second'" ) +
        " as expire")
  end

  def show
    @media = Media.find(params[:mid])
    @page_title = "Media " + @media.volumename
    params[:action] = params[:mid] = nil
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bacuview-1.5 app/controllers/media_controller.rb