Add random page
This commit is contained in:
parent
76ddd3dcb5
commit
5235403a19
|
@ -4,6 +4,7 @@ defmodule WikiWeb.PageController do
|
|||
alias Wiki.Repo
|
||||
alias Wiki.Content
|
||||
alias Wiki.Content.{Page, Upload}
|
||||
import Ecto.Query
|
||||
|
||||
plug :get_page
|
||||
when action in [
|
||||
|
@ -163,4 +164,11 @@ defmodule WikiWeb.PageController do
|
|||
|> put_flash(:info, "Page deleted successfully.")
|
||||
|> redirect(to: Routes.page_path(conn, :index))
|
||||
end
|
||||
|
||||
def random(conn, _params) do
|
||||
user = conn.assigns.current_user
|
||||
page_ids = Repo.all(from p in Page, where: p.user_id == ^user.id, select: p.id)
|
||||
random_page = Enum.random(page_ids)
|
||||
redirect(conn, to: Routes.page_path(conn, :show, random_page))
|
||||
end
|
||||
end
|
||||
|
|
|
@ -62,6 +62,7 @@ defmodule WikiWeb.Router do
|
|||
|
||||
resources "/pages", PageController, except: [:index]
|
||||
get "/", PageController, :index
|
||||
get "/random", PageController, :random
|
||||
post "/pages/:id/uploads", PageController, :create_upload
|
||||
get "/pages/:id/uploads/:upload_id", PageController, :get_upload
|
||||
delete "/pages/:id/uploads/:upload_id", PageController, :delete_upload
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
<li><a href="/">Home</a></li>
|
||||
<%= if @current_user do %>
|
||||
<li><%= link "New Page", to: Routes.page_path(@conn, :new) %></li>
|
||||
<li><%= link "Random", to: Routes.page_path(@conn, :random) %></li>
|
||||
<% end %>
|
||||
<%= if function_exported?(Routes, :live_dashboard_path, 2) do %>
|
||||
<li><%= link "LiveDashboard", to: Routes.live_dashboard_path(@conn, :home) %></li>
|
||||
|
|
Loading…
Reference in New Issue