debshots/app/controllers/packages_controller.rb

82 lines
1.9 KiB
Ruby

class PackagesController < ApplicationController
def index
@packages = Package.includes(:screenshots)
if params[:query]
@packages = @packages.text_search(params[:query])
end
if params[:search]
logger.debug "Searching for #{params[:search]}"
@packages = @packages.general_search(params[:search])
end
# Limit the packages to those that have approved screenshots.
# Also eager-load the screenshots.
if params[:show]=='onlywith'
@packages = @packages.where("screenshots.approved"=>true)
end
if params[:show]=='with'
@packages = @packages.with_screenshots
logger.debug 'Limiting packages to those with screenshots'
elsif params[:show]=='without'
@packages = @packages.without_screenshots
logger.debug 'Limiting packages to those without screenshots'
end
end
def list
index
@packages = @packages.paginate(page: params[:page], per_page: 6)
render 'packages/index-list.slim'
end
def grid
index
@packages = @packages.paginate(page: params[:page], per_page: 24)
render 'packages/index-grid.slim'
end
def details
@package = Package.find_by(name: params[:name])
end
def with_screenshots
# TODO
end
def without_screenshots
# TODO
end
def moderate
# TODO
end
def upload
# TODO
raise "name not given" unless params[:name]
@package = Package.find_by(name: params[:name])
#@new_screenshot = @package.screenshots.new
end
def upload_image
#render text: params[:image].to_json
#render text: params.to_json
@package = Package.find_by(name: params[:name])
@new_screenshot = @package.screenshots.create(image: params[:image])
#raise
#@package.save
#new_screenshot.image = params[:image]
#render text: "File has been uploaded successfully"
redirect_to upload_package_by_name_path
end
private
#def user_params
# params.require(:screenshot).permit(:image)
#end
end