habitica/app/controllers/habits_controller.rb

101 lines
2.5 KiB
Ruby
Raw Normal View History

2012-02-01 04:09:00 +00:00
class HabitsController < ApplicationController
before_filter :authenticate_user!
# GET /habits.json
def index
@user = current_user
2012-02-01 04:09:00 +00:00
respond_to do |format|
format.html # index.html.erb
format.json { render json: @user }
2012-02-01 04:09:00 +00:00
end
end
2012-02-04 21:32:12 +00:00
2012-02-01 04:09:00 +00:00
# GET /habits/new
# GET /habits/new.json
def new
2012-02-01 16:16:12 +00:00
@habit = Habit.new
@habit.position = (Habit.maximum('position') || 0) + 1
2012-02-01 04:09:00 +00:00
respond_to do |format|
format.html # new.html.erb
format.json { render json: @habit }
end
end
# GET /habits/1/edit
def edit
@habit = current_user.habits.find(params[:id])
2012-02-01 04:09:00 +00:00
end
# POST /habits
# POST /habits.json
def create
@habit = Habit.new(params[:habit])
@habit.user_id = current_user.id
2012-02-01 04:09:00 +00:00
respond_to do |format|
if @habit.save
format.html { redirect_to habits_url, notice: 'Habit was successfully created.' }
2012-02-01 04:09:00 +00:00
format.json { render json: @habit, status: :created, location: @habit }
else
format.html { render action: "new" }
format.json { render json: @habit.errors, status: :unprocessable_entity }
end
end
end
# PUT /habits/1
# PUT /habits/1.json
def update
@habit = current_user.habits.find(params[:id])
2012-02-01 04:09:00 +00:00
respond_to do |format|
if @habit.update_attributes(params[:habit])
format.html { redirect_to habits_url, notice: 'Habit was successfully updated.' }
2012-02-01 04:09:00 +00:00
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @habit.errors, status: :unprocessable_entity }
end
end
end
# DELETE /habits/1
# DELETE /habits/1.json
def destroy
@habit = current_user.habits.find(params[:id])
2012-02-01 04:09:00 +00:00
@habit.destroy
respond_to do |format|
format.html { redirect_to habits_url }
format.json { head :no_content }
end
end
2012-02-01 05:39:04 +00:00
def vote
@habit = current_user.habits.find(params[:id])
# habit.vote() saves money to the user, this hack prevents having to
# reload current_user to catch that change
@habit.user=current_user
2012-02-01 15:03:27 +00:00
@habit.vote(params[:vote])
2012-02-01 05:39:04 +00:00
respond_to do |format|
# format.html { render action: "edit" }
# format.json { render json: @habit.errors, status: :unprocessable_entity }
format.js
2012-02-01 05:39:04 +00:00
end
end
2012-02-01 21:55:33 +00:00
def sort
current_user.habits.each do |habit|
logger.fatal params['habit'].index(habit.id.to_s)
habit.position = params['habit'].index(habit.id.to_s)
habit.save
end
render :nothing => true
end
2012-02-01 04:09:00 +00:00
end