Skip to content

Commit

Permalink
Add styling for the app
Browse files Browse the repository at this point in the history
  • Loading branch information
mailsg committed Sep 21, 2023
1 parent d52ee06 commit 9ab5aed
Show file tree
Hide file tree
Showing 2 changed files with 164 additions and 164 deletions.
148 changes: 74 additions & 74 deletions app/controllers/categories_controller.rb
Original file line number Diff line number Diff line change
@@ -1,74 +1,74 @@
class CategoriesController < ApplicationController
before_action :set_category, only: [:show, :edit, :update, :destroy]

# GET /categories or /categories.json
def index
@user = current_user
@categories = @user.category
end

# GET /categories/1 or /categories/1.json
def show
@category = Category.find(params[:id])
@expenses = @category.expense.order(created_at: :desc)
@categories = current_user.category
end

# GET /categories/new
def new
@user = current_user
@category = Category.new
end

# POST /categories or /categories.json
def create
@user = current_user
@category = @user.category.new(category_params)

respond_to do |format|
if @category.save
format.html { redirect_to categories_url, notice: 'Category created successfully.' }
format.json { render :show, status: :created, location: @category }
else
format.html { render :new, status: :unprocessable_entity }
format.json { render json: @category.errors, status: :unprocessable_entity }
end
end
end

# PATCH/PUT /categories/1 or /categories/1.json
def update
respond_to do |format|
if @category.update(category_params)
format.html { redirect_to category_url(@category), notice: 'Category updated successfully .' }
format.json { render :show, status: :ok, location: @category }
else
format.html { render :edit, status: :unprocessable_entity }
format.json { render json: @category.errors, status: :unprocessable_entity }
end
end
end

# DELETE /categories/1 or /categories/1.json
def destroy
@category = Category.find(params[:id])
@category.destroy

respond_to do |format|
format.html { redirect_to categories_url, notice: 'Category deleted successfully.' }
format.json { head :no_content }
end
end

private

# Callbacks to share common setup between actions.
def set_category
@category = Category.find(params[:id])
end

# Allow a list of trusted parameters.
def category_params
params.require(:category).permit(:name, :icon)
end
end
class CategoriesController < ApplicationController
before_action :set_category, only: %i[show edit update destroy]

# GET /categories or /categories.json
def index
@user = current_user
@categories = @user.category
end

# GET /categories/1 or /categories/1.json
def show
@category = Category.find(params[:id])
@expenses = @category.expense.order(created_at: :desc)
@categories = current_user.category
end

# GET /categories/new
def new
@user = current_user
@category = Category.new
end

# POST /categories or /categories.json
def create
@user = current_user
@category = @user.category.new(category_params)

respond_to do |format|
if @category.save
format.html { redirect_to categories_url, notice: 'Category created successfully.' }
format.json { render :show, status: :created, location: @category }
else
format.html { render :new, status: :unprocessable_entity }
format.json { render json: @category.errors, status: :unprocessable_entity }
end
end
end

# PATCH/PUT /categories/1 or /categories/1.json
def update
respond_to do |format|
if @category.update(category_params)
format.html { redirect_to category_url(@category), notice: 'Category updated successfully .' }
format.json { render :show, status: :ok, location: @category }
else
format.html { render :edit, status: :unprocessable_entity }
format.json { render json: @category.errors, status: :unprocessable_entity }
end
end
end

# DELETE /categories/1 or /categories/1.json
def destroy
@category = Category.find(params[:id])
@category.destroy

respond_to do |format|
format.html { redirect_to categories_url, notice: 'Category deleted successfully.' }
format.json { head :no_content }
end
end

private

# Callbacks to share common setup between actions.
def set_category
@category = Category.find(params[:id])
end

# Allow a list of trusted parameters.
def category_params
params.require(:category).permit(:name, :icon)
end
end
180 changes: 90 additions & 90 deletions app/controllers/expenses_controller.rb
Original file line number Diff line number Diff line change
@@ -1,90 +1,90 @@
class ExpensesController < ApplicationController
before_action :set_expense, only: [:show, :edit, :update, :destroy]

# GET /expenses or /expenses.json
def index
@category = Category.find(params[:category_id])
@expenses = @category.expense.all
end

# GET /expenses/new
def new
@author = current_user
@category = Category.find(params[:category_id])
@expense = Expense.new
end

# POST /expenses or /expenses.json
def create
@author = current_user
saved_expenses = []
category_ids = params[:expense][:category_ids].reject(&:empty?).map(&:to_i).uniq

category_ids.each do |c_id|
@category = Category.find(c_id)
@expense = Expense.new(expense_params)
@expense.author_id = current_user.id
@category.expense << @expense

if @expense.save
saved_expenses << @expense
else
# Handle the case where an expense can't be saved
respond_to do |format|
format.html { render :new, status: :unprocessable_entity }
format.json { render json: @expense.errors, status: :unprocessable_entity }
end
end
end

save?(saved_expenses, category_ids)
# Redirect to the first category's show page after all expenses have been processed
end

# PATCH/PUT /expenses/1 or /expenses/1.json
def update
respond_to do |format|
if @expense.update(expense_params)
format.html { redirect_to expense_url(@expense), notice: 'Expense updated successfully.' }
format.json { render :show, status: :ok, location: @expense }
else
format.html { render :edit, status: :unprocessable_entity }
format.json { render json: @expense.errors, status: :unprocessable_entity }
end
end
end

# DELETE /expenses/1 or /expenses/1.json
def destroy
@expense.destroy

respond_to do |format|
format.html { redirect_to expenses_url, notice: 'Expense successfully deleted.' }
format.json { head :no_content }
end
end

private

# Use callbacks to share common setup between actions.
def set_expense
@expense = Expense.find(params[:id])
end

# Allow a list of trusted parameters.
def expense_params
params.require(:expense).permit(:name, :amount, :author_id)
end

def save?(saved_expenses, category_ids)
if saved_expenses.present?
redirect_to category_path(category_ids.first), notice: 'Expenses created successfully.'
else
# The case where no expenses were successfully saved
respond_to do |format|
format.html { render :new, status: :unprocessable_entity }
format.json { render json: { error: 'No expenses saved.' }, status: :unprocessable_entity }
end
end
end
end
class ExpensesController < ApplicationController
before_action :set_expense, only: %i[show edit update destroy]

# GET /expenses or /expenses.json
def index
@category = Category.find(params[:category_id])
@expenses = @category.expense.all
end

# GET /expenses/new
def new
@author = current_user
@category = Category.find(params[:category_id])
@expense = Expense.new
end

# POST /expenses or /expenses.json
def create
@author = current_user
saved_expenses = []
category_ids = params[:expense][:category_ids].reject(&:empty?).map(&:to_i).uniq

category_ids.each do |c_id|
@category = Category.find(c_id)
@expense = Expense.new(expense_params)
@expense.author_id = current_user.id
@category.expense << @expense

if @expense.save
saved_expenses << @expense
else
# Handle the case where an expense can't be saved
respond_to do |format|
format.html { render :new, status: :unprocessable_entity }
format.json { render json: @expense.errors, status: :unprocessable_entity }
end
end
end

save?(saved_expenses, category_ids)
# Redirect to the first category's show page after all expenses have been processed
end

# PATCH/PUT /expenses/1 or /expenses/1.json
def update
respond_to do |format|
if @expense.update(expense_params)
format.html { redirect_to expense_url(@expense), notice: 'Expense updated successfully.' }
format.json { render :show, status: :ok, location: @expense }
else
format.html { render :edit, status: :unprocessable_entity }
format.json { render json: @expense.errors, status: :unprocessable_entity }
end
end
end

# DELETE /expenses/1 or /expenses/1.json
def destroy
@expense.destroy

respond_to do |format|
format.html { redirect_to expenses_url, notice: 'Expense successfully deleted.' }
format.json { head :no_content }
end
end

private

# Use callbacks to share common setup between actions.
def set_expense
@expense = Expense.find(params[:id])
end

# Allow a list of trusted parameters.
def expense_params
params.require(:expense).permit(:name, :amount, :author_id)
end

def save?(saved_expenses, category_ids)
if saved_expenses.present?
redirect_to category_path(category_ids.first), notice: 'Expenses created successfully.'
else
# The case where no expenses were successfully saved
respond_to do |format|
format.html { render :new, status: :unprocessable_entity }
format.json { render json: { error: 'No expenses saved.' }, status: :unprocessable_entity }
end
end
end
end

0 comments on commit 9ab5aed

Please sign in to comment.