mirror of
https://github.com/philomena-dev/philomena.git
synced 2024-11-27 21:47:59 +01:00
269caabd5e
* return some BoR functionality to forums - Added searching by forum slug - Display forum/topic/post-num in search results for each post - Display who locked topic for moderators * fix topic position bug (Fixes philomena-dev/philomena#110)
154 lines
4.9 KiB
Text
154 lines
4.9 KiB
Text
h1 Posts
|
|
|
|
= form_for :posts, Routes.post_path(@conn, :index), [method: "get", class: "hform", enforce_utf8: false], fn f ->
|
|
.field
|
|
= text_input f, :pq, name: :pq, value: @conn.params["pq"], class: "input hform__text", placeholder: "Search posts", autocapitalize: "none"
|
|
= submit "Search", class: "hform__button button"
|
|
|
|
.fieldlabel
|
|
' For more information, see the
|
|
a href="/pages/search_syntax" search syntax documentation
|
|
' . Search results are sorted by creation date.
|
|
|
|
h2 Search Results
|
|
|
|
= cond do
|
|
- Enum.any?(@posts) ->
|
|
- route = fn p -> Routes.post_path(@conn, :index, p) end
|
|
- pagination = render PhilomenaWeb.PaginationView, "_pagination.html", page: @posts, route: route, params: [pq: @conn.params["pq"]], conn: @conn
|
|
|
|
= for {body, post} <- @posts, post.topic.hidden_from_users == false do
|
|
div
|
|
h3
|
|
=<> link post.topic.forum.name, to: Routes.forum_path(@conn, :show, post.topic.forum)
|
|
| »
|
|
=<> link post.topic.title, to: Routes.forum_topic_path(@conn, :show, post.topic.forum, post.topic)
|
|
| »
|
|
- post_link = Routes.forum_topic_path(@conn, :show, post.topic.forum, post.topic, post_id: post.id) <> "#post_#{post.id}"
|
|
= if post.topic_position == 0 do
|
|
=<> link "Topic Opener", to: post_link
|
|
- else
|
|
=<> link "Post #{post.topic_position}", to: post_link
|
|
= render PhilomenaWeb.PostView, "_post.html", body: body, post: post, conn: @conn
|
|
|
|
.block
|
|
.block__header.block__header--light.page__header
|
|
.page__pagination = pagination
|
|
.page__info
|
|
span.block__header__title
|
|
= render PhilomenaWeb.PaginationView, "_pagination_info.html", page: @posts, conn: @conn
|
|
|
|
- assigns[:error] ->
|
|
p
|
|
' Oops, there was an error evaluating your query:
|
|
pre = assigns[:error]
|
|
|
|
- true ->
|
|
p
|
|
' No posts found!
|
|
|
|
h3 Default search
|
|
p
|
|
' If you do not specify a field to search over, the search engine will
|
|
' search for posts with a body that is similar to the query's
|
|
em word stems
|
|
' . For example, posts containing the words
|
|
code winged humanization
|
|
' ,
|
|
code wings
|
|
' , and
|
|
code> spread wings
|
|
' would all be found by a search for
|
|
code wing
|
|
' , but
|
|
code> sewing
|
|
' would not be.
|
|
|
|
h3 Allowed fields
|
|
table.table
|
|
thead
|
|
tr
|
|
th Field Selector
|
|
th Type
|
|
th Description
|
|
th Example
|
|
tbody
|
|
tr
|
|
td
|
|
code author
|
|
td Literal
|
|
td Matches the author of this post. Anonymous authors will never match this term.
|
|
td
|
|
code = link "author:Joey", to: Routes.post_path(@conn, :index, pq: "author:Joey")
|
|
tr
|
|
td
|
|
code body
|
|
td Full Text
|
|
td Matches the body of this post. This is the default field.
|
|
td
|
|
code = link "body:test", to: Routes.post_path(@conn, :index, pq: "body:test")
|
|
tr
|
|
td
|
|
code created_at
|
|
td Date/Time Range
|
|
td Matches the creation time of this post.
|
|
td
|
|
code = link "created_at:2015", to: Routes.post_path(@conn, :index, pq: "created_at:2015")
|
|
tr
|
|
td
|
|
code id
|
|
td Numeric Range
|
|
td Matches the numeric surrogate key for this post.
|
|
td
|
|
code = link "id:1000000", to: Routes.post_path(@conn, :index, pq: "id:1000000")
|
|
tr
|
|
td
|
|
code my
|
|
td Meta
|
|
td
|
|
code> my:posts
|
|
' matches posts you have posted if you are signed in.
|
|
td
|
|
code = link "my:posts", to: Routes.post_path(@conn, :index, pq: "my:posts")
|
|
tr
|
|
td
|
|
code subject
|
|
td Full Text
|
|
td Matches the title of the topic.
|
|
td
|
|
code = link "subject:time wasting thread", to: Routes.post_path(@conn, :index, pq: "subject:time wasting thread")
|
|
tr
|
|
td
|
|
code topic_id
|
|
td Literal
|
|
td Matches the numeric surrogate key for the topic this post belongs to.
|
|
td
|
|
code = link "topic_id:7000", to: Routes.post_path(@conn, :index, pq: "topic_id:7000")
|
|
tr
|
|
td
|
|
code topic_position
|
|
td Numeric Range
|
|
td Matches the offset from the beginning of the topic of this post. Positions begin at 0.
|
|
td
|
|
code = link "topic_position:0", to: Routes.post_path(@conn, :index, pq: "topic_position:0")
|
|
tr
|
|
td
|
|
code updated_at
|
|
td Date/Time Range
|
|
td Matches the creation or last edit time of this post.
|
|
td
|
|
code = link "updated_at.gte:2 weeks ago", to: Routes.post_path(@conn, :index, pq: "updated_at.gte:2 weeks ago")
|
|
tr
|
|
td
|
|
code user_id
|
|
td Literal
|
|
td Matches posts with the specified user_id. Anonymous users will never match this term.
|
|
td
|
|
code = link "user_id:211190", to: Routes.post_path(@conn, :index, pq: "user_id:211190")
|
|
tr
|
|
td
|
|
code forum
|
|
td Literal
|
|
td Matches the short name for the forum this post belongs to.
|
|
td
|
|
code = link "forum:meta", to: Routes.post_path(@conn, :index, pq: "forum:meta")
|