PageRenderTime 26ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/app/controllers/home_controller.rb

https://bitbucket.org/joevans/dealer-utility
Ruby | 194 lines | 164 code | 28 blank | 2 comment | 89 complexity | 56d280669ed5d9abda67491fa955b143 MD5 | raw file
  1. class HomeController < ApplicationController
  2. before_filter :authenticate_user!
  3. before_filter :set_demo_settings, only: :demo_delete
  4. before_filter :set_user_settings, only: :user_update
  5. before_action :set_stock_event, only: [:update, :search_event]
  6. def dashboard
  7. if current_user.username == "joevans"
  8. redirect_to backend_path
  9. else
  10. @stock_events = StockEvent.where(:dealer => current_user.dealer)
  11. @versions = PaperTrail::Version.order('created_at desc')
  12. end
  13. end
  14. def history
  15. if current_user.admin?
  16. @versions = PaperTrail::Version.order('created_at DESC')
  17. @stock_events = StockEvent.where(:dealer => current_user.dealer).order("updated_at DESC")
  18. else
  19. redirect_to :root, alert: 'Admin access required.' unless current_user.admin?
  20. end
  21. end
  22. def all_records
  23. 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"
  24. @versions = PaperTrail::Version.order('created_at desc')
  25. @stock_events = StockEvent.where(:dealer => current_user.dealer).order("status DESC")
  26. else
  27. redirect_to :root, alert: 'Manager access required' unless current_user.admin?
  28. end
  29. end
  30. def deleted
  31. if current_user.admin?
  32. @versions = PaperTrail::Version.order('created_at desc')
  33. @stock_events = StockEvent.where(:dealer => current_user.dealer).order("updated_at DESC").where(:status => "0")
  34. else
  35. redirect_to :root, alert: 'Admin access required' unless current_user.admin?
  36. end
  37. end
  38. def user_manage
  39. 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"
  40. @users = User.where(:dealer => current_user.dealer).order('username desc')
  41. else
  42. redirect_to :root, alert: 'Manager access required' unless current_user.admin?
  43. end
  44. end
  45. def user_settings
  46. # UserNotifier.send_signup_email(@user).deliver
  47. end
  48. def search
  49. @projects = StockEvent.where(:dealer => current_user.dealer).search(params[:search])
  50. @versions = PaperTrail::Version.order('created_at desc')
  51. end
  52. def user_update
  53. respond_to do |format|
  54. if @user_settings.update(user_settings_params)
  55. if URI(request.referer).path == "/user_manage"
  56. format.html { redirect_to request.referer, notice: 'User profile was successfully updated.' }
  57. format.json { head :no_content }
  58. sign_in @user_settings, :bypass => true
  59. elsif URI(request.referer).path == "/user_settings"
  60. format.html { redirect_to request.referer, notice: 'Your profile was successfully updated.' }
  61. format.json { head :no_content }
  62. sign_in @user_settings, :bypass => true
  63. end
  64. else
  65. format.html { render action: 'user_settings' }
  66. format.json { render json: @stock_event.errors, alert: :unprocessable_entity, status: :unprocessable_entity }
  67. end
  68. end
  69. end
  70. def update
  71. respond_to do |format|
  72. if @stock_events.update(stock_event_params)
  73. format.html { redirect_to :root, notice: 'Stock number "'+@stock_events.stock_number+'" was successfully updated. '+undo_link }
  74. format.json { head :no_content }
  75. else
  76. format.html { render action: 'dashboard' }
  77. format.json { render json: @stock_event.errors, status: :unprocessable_entity }
  78. end
  79. end
  80. end
  81. def register_user
  82. 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"
  83. @new_user = User.new
  84. else
  85. redirect_to :back, alert: 'Manager access required' unless current_user.admin?
  86. end
  87. end
  88. def register_action
  89. 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"
  90. @new_user = User.new(register_params)
  91. respond_to do |format|
  92. if @new_user.save
  93. format.html { redirect_to user_manage_path, notice: 'User successfully added.' }
  94. format.json { head :no_content }
  95. else
  96. format.html { render action: 'register_user', alert: "#{@new_user.errors}" }
  97. format.json { render json: @new_user.errors, status: :unprocessable_entity }
  98. end
  99. end
  100. else
  101. redirect_to :root, alert: 'Manager access required' unless current_user.admin?
  102. end
  103. end
  104. def car_demo
  105. @stock_events = StockEvent.where(:dealer => current_user.dealer)
  106. @versions = PaperTrail::Version.order('created_at desc')
  107. @all_demo = CarDemo.where(:dealership => current_user.dealer)
  108. @car_demo = CarDemo.new
  109. end
  110. def car_demo_update
  111. 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"
  112. @car_demo = CarDemo.new(demo_params)
  113. respond_to do |format|
  114. if @car_demo.save
  115. format.html { redirect_to car_demo_path, notice: 'Car demo successfully added.' }
  116. format.json { head :no_content }
  117. else
  118. format.html { render action: 'car_demo_update' }
  119. format.json { render json: @new_user.errors, status: :unprocessable_entity }
  120. end
  121. end
  122. else
  123. redirect_to :root, alert: 'Manager access required.' unless current_user.admin?
  124. end
  125. end
  126. def demo_delete
  127. 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"
  128. @find_demo.update(:deleted => true)
  129. respond_to do |format|
  130. format.html { redirect_to car_demo_path, notice: 'Demo was successfully removed.' }
  131. format.json { head :no_content }
  132. end
  133. else
  134. redirect_to :root, alert: 'Manager access required.' unless current_user.admin?
  135. end
  136. end
  137. def activity
  138. @rss_feed = "https://bitbucket.org/joevans/dealer-utility/rss?token=070e2d25e60d2df4f6d250d9ac7f52c0"
  139. end
  140. private
  141. def undo_link
  142. 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 ""
  143. end
  144. # Use callbacks to share common setup or constraints between actions.
  145. def set_demo_settings
  146. @find_demo = CarDemo.find(params[:car_demo][:id])
  147. end
  148. def set_user_settings
  149. @user_settings = User.find(params[:user][:id])
  150. end
  151. def set_stock_event
  152. @stock_events = StockEvent.where(:dealer => current_user.dealer).find(params[:stock_event][:id])
  153. end
  154. def demo_params
  155. params.require(:car_demo).permit(:name, :car_stock, :dealership)
  156. end
  157. def register_params
  158. params.require(:user).permit(:firstname, :lastname, :email, :username, :role, :admin, :dealer, :password, :password_confirmation)
  159. end
  160. def user_settings_params
  161. params.require(:user).permit(:id, :firstname, :lastname, :email, :username, :role, :admin, :password, :password_confirmation)
  162. end
  163. def stock_event_params
  164. params.require(:stock_event).permit(:vehicle_sold, :needs_pics, :stock_number, :location, :color, :year, :make, :model, :status, :department, :bgcolor, :created_by, :updated_by)
  165. end
  166. end