/app/controllers/home_controller.rb
Ruby | 194 lines | 164 code | 28 blank | 2 comment | 89 complexity | 56d280669ed5d9abda67491fa955b143 MD5 | raw file
- class HomeController < ApplicationController
- before_filter :authenticate_user!
- before_filter :set_demo_settings, only: :demo_delete
- before_filter :set_user_settings, only: :user_update
- before_action :set_stock_event, only: [:update, :search_event]
-
- def dashboard
- if current_user.username == "joevans"
- redirect_to backend_path
- else
- @stock_events = StockEvent.where(:dealer => current_user.dealer)
- @versions = PaperTrail::Version.order('created_at desc')
- end
- end
- def history
- if current_user.admin?
- @versions = PaperTrail::Version.order('created_at DESC')
- @stock_events = StockEvent.where(:dealer => current_user.dealer).order("updated_at DESC")
- else
- redirect_to :root, alert: 'Admin access required.' unless current_user.admin?
- end
- end
- def all_records
- if current_user.admin? || current_user.role == "110" || current_user.role == "210" || current_user.role == "310" || current_user.role == "410" || current_user.role == "610" || current_user.role == "710"
- @versions = PaperTrail::Version.order('created_at desc')
- @stock_events = StockEvent.where(:dealer => current_user.dealer).order("status DESC")
- else
- redirect_to :root, alert: 'Manager access required' unless current_user.admin?
- end
- end
- def deleted
- if current_user.admin?
- @versions = PaperTrail::Version.order('created_at desc')
- @stock_events = StockEvent.where(:dealer => current_user.dealer).order("updated_at DESC").where(:status => "0")
- else
- redirect_to :root, alert: 'Admin access required' unless current_user.admin?
- end
- end
- def user_manage
- if current_user.admin? || current_user.role == "110" || current_user.role == "210" || current_user.role == "310" || current_user.role == "410" || current_user.role == "610" || current_user.role == "710"
- @users = User.where(:dealer => current_user.dealer).order('username desc')
- else
- redirect_to :root, alert: 'Manager access required' unless current_user.admin?
- end
- end
- def user_settings
- # UserNotifier.send_signup_email(@user).deliver
- end
- def search
- @projects = StockEvent.where(:dealer => current_user.dealer).search(params[:search])
- @versions = PaperTrail::Version.order('created_at desc')
- end
- def user_update
- respond_to do |format|
- if @user_settings.update(user_settings_params)
- if URI(request.referer).path == "/user_manage"
- format.html { redirect_to request.referer, notice: 'User profile was successfully updated.' }
- format.json { head :no_content }
- sign_in @user_settings, :bypass => true
- elsif URI(request.referer).path == "/user_settings"
- format.html { redirect_to request.referer, notice: 'Your profile was successfully updated.' }
- format.json { head :no_content }
- sign_in @user_settings, :bypass => true
- end
- else
- format.html { render action: 'user_settings' }
- format.json { render json: @stock_event.errors, alert: :unprocessable_entity, status: :unprocessable_entity }
- end
- end
- end
- def update
- respond_to do |format|
- if @stock_events.update(stock_event_params)
- format.html { redirect_to :root, notice: 'Stock number "'+@stock_events.stock_number+'" was successfully updated. '+undo_link }
- format.json { head :no_content }
- else
- format.html { render action: 'dashboard' }
- format.json { render json: @stock_event.errors, status: :unprocessable_entity }
- end
- end
- end
- def register_user
- if current_user.admin? || current_user.role == "110" || current_user.role == "210" || current_user.role == "310" || current_user.role == "410" || current_user.role == "610" || current_user.role == "710"
- @new_user = User.new
- else
- redirect_to :back, alert: 'Manager access required' unless current_user.admin?
- end
- end
- def register_action
- if current_user.admin? || current_user.role == "110" || current_user.role == "210" || current_user.role == "310" || current_user.role == "410" || current_user.role == "610" || current_user.role == "710"
- @new_user = User.new(register_params)
- respond_to do |format|
- if @new_user.save
- format.html { redirect_to user_manage_path, notice: 'User successfully added.' }
- format.json { head :no_content }
- else
- format.html { render action: 'register_user', alert: "#{@new_user.errors}" }
- format.json { render json: @new_user.errors, status: :unprocessable_entity }
- end
- end
- else
- redirect_to :root, alert: 'Manager access required' unless current_user.admin?
- end
- end
- def car_demo
- @stock_events = StockEvent.where(:dealer => current_user.dealer)
- @versions = PaperTrail::Version.order('created_at desc')
- @all_demo = CarDemo.where(:dealership => current_user.dealer)
- @car_demo = CarDemo.new
- end
- def car_demo_update
- if current_user.admin? || current_user.role == "110" || current_user.role == "210" || current_user.role == "310" || current_user.role == "410" || current_user.role == "610" || current_user.role == "710"
- @car_demo = CarDemo.new(demo_params)
- respond_to do |format|
- if @car_demo.save
- format.html { redirect_to car_demo_path, notice: 'Car demo successfully added.' }
- format.json { head :no_content }
- else
- format.html { render action: 'car_demo_update' }
- format.json { render json: @new_user.errors, status: :unprocessable_entity }
- end
- end
- else
- redirect_to :root, alert: 'Manager access required.' unless current_user.admin?
- end
- end
- def demo_delete
- if current_user.admin? || current_user.role == "110" || current_user.role == "210" || current_user.role == "310" || current_user.role == "410" || current_user.role == "610" || current_user.role == "710"
- @find_demo.update(:deleted => true)
-
- respond_to do |format|
- format.html { redirect_to car_demo_path, notice: 'Demo was successfully removed.' }
- format.json { head :no_content }
- end
- else
- redirect_to :root, alert: 'Manager access required.' unless current_user.admin?
- end
- end
- def activity
- @rss_feed = "https://bitbucket.org/joevans/dealer-utility/rss?token=070e2d25e60d2df4f6d250d9ac7f52c0"
- end
- private
- def undo_link
- view_context.link_to(" Undo Change", revert_version_path(@stock_events.versions.reload.last), :method => :post, :class => "fa fa-undo btn thumb-btn orange-btn") rescue ""
- end
- # Use callbacks to share common setup or constraints between actions.
- def set_demo_settings
- @find_demo = CarDemo.find(params[:car_demo][:id])
- end
- def set_user_settings
- @user_settings = User.find(params[:user][:id])
- end
- def set_stock_event
- @stock_events = StockEvent.where(:dealer => current_user.dealer).find(params[:stock_event][:id])
- end
- def demo_params
- params.require(:car_demo).permit(:name, :car_stock, :dealership)
- end
- def register_params
- params.require(:user).permit(:firstname, :lastname, :email, :username, :role, :admin, :dealer, :password, :password_confirmation)
- end
- def user_settings_params
- params.require(:user).permit(:id, :firstname, :lastname, :email, :username, :role, :admin, :password, :password_confirmation)
- end
- def stock_event_params
- params.require(:stock_event).permit(:vehicle_sold, :needs_pics, :stock_number, :location, :color, :year, :make, :model, :status, :department, :bgcolor, :created_by, :updated_by)
- end
- end