defmodule ComfycampWeb.NotesEditorController do use ComfycampWeb, :controller alias Comfycamp.Notes alias Comfycamp.Notes.Note def index(conn, _params) do notes = Notes.list_notes() conn |> put_layout(html: :admin) |> render(:index, page_title: "Заметки", notes: notes, stylesheets: ["/assets/admin.css"]) end def new(conn, _params) do changeset = Notes.change_note(%Note{}) conn |> put_layout(html: :admin) |> render(:new, page_title: "Новая заметка", changeset: changeset, stylesheets: ["/assets/admin.css"] ) end def edit(conn, %{"id" => id}) do note = Notes.get_note!(id) changeset = Notes.change_note(note) conn |> put_layout(html: :admin) |> render(:edit, page_title: "Редактировать заметку", changeset: changeset, stylesheets: ["/assets/admin.css"] ) end def create(conn, %{"note" => note_params}) do case Notes.create_note(note_params) do {:ok, note} -> conn |> put_flash(:info, "Заметка сохранена.") |> redirect(to: ~p"/admin/notes/#{note}") {:error, changeset} -> conn |> put_flash(:error, "Ошибка при обновлении заметки.") |> put_layout(html: :admin) |> render(:new, page_title: "Создать заметку", changeset: changeset, stylesheets: ["/assets/admin.css"] ) end end def update(conn, %{"id" => id, "note" => note_params}) do note = Notes.get_note!(id) case Notes.update_note(note, note_params) do {:ok, note} -> conn |> put_flash(:info, "Заметка обновлена.") |> redirect(to: ~p"/admin/notes/#{note}") {:error, changeset} -> conn |> put_flash(:error, "Ошибка при обновлении заметки.") |> put_layout(html: :admin) |> render(:edit, page_title: "Редактировать заметку", changeset: changeset, stylesheets: ["/assets/admin.css"] ) end end def show(conn, %{"id" => id}) do note = Notes.get_note!(id) conn |> put_layout(html: :admin) |> render(:show, page_title: "Заметка", note: note, stylesheets: ["/assets/admin.css"]) end def delete(conn, %{"id" => id}) do note = Notes.get_note!(id) case Notes.delete_note(note) do {:ok, _note} -> conn |> put_flash(:info, "Заметка удалена.") |> redirect(to: ~p"/admin/notes") {:error, changeset} -> conn |> put_flash(:error, "Ошибка при удалении заметки.") |> put_layout(html: :admin) |> render(:edit, page_title: "Редактировать заметку", changeset: changeset, stylesheets: ["/assets/admin.css"] ) end end end