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.Repo
|
||||||
alias Wiki.Content
|
alias Wiki.Content
|
||||||
alias Wiki.Content.{Page, Upload}
|
alias Wiki.Content.{Page, Upload}
|
||||||
|
import Ecto.Query
|
||||||
|
|
||||||
plug :get_page
|
plug :get_page
|
||||||
when action in [
|
when action in [
|
||||||
|
@ -163,4 +164,11 @@ defmodule WikiWeb.PageController do
|
||||||
|> put_flash(:info, "Page deleted successfully.")
|
|> put_flash(:info, "Page deleted successfully.")
|
||||||
|> redirect(to: Routes.page_path(conn, :index))
|
|> redirect(to: Routes.page_path(conn, :index))
|
||||||
end
|
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
|
end
|
||||||
|
|
|
@ -62,6 +62,7 @@ defmodule WikiWeb.Router do
|
||||||
|
|
||||||
resources "/pages", PageController, except: [:index]
|
resources "/pages", PageController, except: [:index]
|
||||||
get "/", PageController, :index
|
get "/", PageController, :index
|
||||||
|
get "/random", PageController, :random
|
||||||
post "/pages/:id/uploads", PageController, :create_upload
|
post "/pages/:id/uploads", PageController, :create_upload
|
||||||
get "/pages/:id/uploads/:upload_id", PageController, :get_upload
|
get "/pages/:id/uploads/:upload_id", PageController, :get_upload
|
||||||
delete "/pages/:id/uploads/:upload_id", PageController, :delete_upload
|
delete "/pages/:id/uploads/:upload_id", PageController, :delete_upload
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
<li><a href="/">Home</a></li>
|
<li><a href="/">Home</a></li>
|
||||||
<%= if @current_user do %>
|
<%= if @current_user do %>
|
||||||
<li><%= link "New Page", to: Routes.page_path(@conn, :new) %></li>
|
<li><%= link "New Page", to: Routes.page_path(@conn, :new) %></li>
|
||||||
|
<li><%= link "Random", to: Routes.page_path(@conn, :random) %></li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= if function_exported?(Routes, :live_dashboard_path, 2) do %>
|
<%= if function_exported?(Routes, :live_dashboard_path, 2) do %>
|
||||||
<li><%= link "LiveDashboard", to: Routes.live_dashboard_path(@conn, :home) %></li>
|
<li><%= link "LiveDashboard", to: Routes.live_dashboard_path(@conn, :home) %></li>
|
||||||
|
|
Loading…
Reference in New Issue