class PackagesController < ApplicationController def index @packages = Package.includes(:screenshots) if params[:query] @packages = @packages.text_search(params[:query]) end unless params[:search].blank? 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 moderate # TODO end def upload raise "name not given" unless params[:name] @package = Package.find_by(name: params[:name]) 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 def delete_screenshot @screenshot = Screenshot.find_by(id: params[:id]) @screenshot.destroy redirect_to upload_package_by_name_path end end