Files
componentowl-rails-archive/app/controllers/products_controller.rb

94 lines
3.1 KiB
Ruby
Raw Normal View History

class ProductsController < ApplicationController
skip_before_filter :verify_authenticity_token, :only => [:generate_license, :download]
before_filter :verify_api_token, :only => :generate_license
before_filter(:only => [:show]){ |c| c.find_product("product_url", UrlDestination['product-detail']) }
before_filter :init_objects, :only => [:show]
caches_page :index, :show, :if => Proc.new { |c| c.params[:detail] != Settings.releases_code }
def index
@categories = ProductCategory.all_but_featured
@all_categories = ProductCategory.find :all
@testimonials = Testimonial.for_products_page
end
def show
@special_menu_hl = true if @product.code == Settings.featured_product
@release = @product.current_release
@screenshots = @product.screenshots.featured
# future? pro ajaxove taby
#if params[:ajax]
# render :text => @detail.html
#end
end
def download
params[:filename] = featured_product.setup_file.original_filename.split(".").first if params[:filename] == "swifttodolist7-beta12"
@product = Product.find_by_file(params[:filename])
if @product
DownloadLog.log(@product, request)
if Rails.env.preproduction? || Rails.env.production?
redirect_to "http://#{Settings.download_host}/#{@product.setup_file.path}"
else
send_file @product.setup_file.path, :type => 'application/binary'
end
else
render_404
end
end
def detail
render :text => @detail.html
end
def generate_license
@license_key = BmtLicenseKey.new
@license_key.generate!
respond_to do |format|
format.xml { render :xml => @license_key }
end
end
private
def verify_generate_license_token
if !params[:t] || params[:t] != Settings.generate_license_token
render :nothing => true
end
end
def init_objects
if params[:detail]
case params[:detail]
when "features"
redirect_to(@product, :status => 301)
when "thumbnails"
redirect_to(Product['better-thumbnail-browser'], :status => 301)
when Settings.documentation_code
#redirect_to(product_page_url(@product, @product.product_pages.find_by_code("resources")))
redirect_to("/documentation/#{@product.code}/index.html")
when Settings.class_reference_code
redirect_to("/class-reference/#{@product.code}/index.html")
when Settings.quick_start_guide_code
redirect_to("/documentation/#{@product.code}/data/chapter-quickstart.html")
when Settings.releases_code
@since_release = @product.releases.find_by_version(params[:since]) if params[:since].present?
@since_release = @product.current_release unless @since_release
@releases = @product.releases.find_since(@since_release.version)
else
@detail = @product.product_pages.find_by_code(params[:detail])
render_404 unless @detail
end
else
@detail = @product.default_page
end
@support_request = SupportRequest.new
@support_request.support_request_origin = SupportRequestOrigin['product']
@support_request.product = @product
end
end