add: better pinned posts ui
This commit is contained in:
parent
b5f841a990
commit
81a7628861
12 changed files with 25 additions and 192 deletions
|
@ -502,7 +502,7 @@ select:focus {
|
|||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
--color: #c9b1bc;
|
||||
--color: #93c5fd;
|
||||
appearance: none;
|
||||
border-radius: var(--radius);
|
||||
transition:
|
||||
|
|
|
@ -1,18 +1,7 @@
|
|||
(text "{% import \"components.html\" as components %} {% extends \"communities/base.html\" %} {% block content %}")
|
||||
(div
|
||||
("class" "flex flex_col gap_4 w_full")
|
||||
(text "{{ macros::community_nav(community=community, selected=\"posts\") }} {% if pinned|length != 0 %}")
|
||||
(div
|
||||
("class" "card_nest")
|
||||
(div
|
||||
("class" "card small flex gap_2 items_center")
|
||||
(text "{{ icon \"pin\" }}")
|
||||
(span
|
||||
(text "{{ text \"communities:label.pinned\" }}")))
|
||||
(div
|
||||
("class" "card flex flex_col gap_4")
|
||||
(text "{% for post in pinned %} {% if post[0].context.repost and post[0].context.repost.reposting -%} {{ components::repost(repost=post[2], post=post[0], owner=post[1], secondary=true, show_community=false, can_manage_post=can_manage_posts) }} {% else %} {{ components::post(post=post[0], owner=post[1], question=post[3], secondary=true, show_community=false, can_manage_post=can_manage_posts, poll=post[4]) }} {%- endif %} {% endfor %}")))
|
||||
(text "{%- endif %}")
|
||||
(text "{{ macros::community_nav(community=community, selected=\"posts\") }}")
|
||||
(div
|
||||
("class" "card_nest")
|
||||
(div
|
||||
|
@ -22,5 +11,6 @@
|
|||
(text "{{ text \"communities:label.posts\" }}")))
|
||||
(div
|
||||
("class" "card flex flex_col gap_4")
|
||||
(text "{% for post in pinned %} {% if post[0].context.repost and post[0].context.repost.reposting -%} {{ components::repost(repost=post[2], post=post[0], owner=post[1], secondary=true, show_community=false, can_manage_post=can_manage_posts) }} {% else %} {{ components::post(post=post[0], owner=post[1], question=post[3], secondary=true, show_community=false, can_manage_post=can_manage_posts, poll=post[4]) }} {%- endif %} {% endfor %}")
|
||||
(text "{% for post in feed %} {% if post[0].context.repost and post[0].context.repost.reposting -%} {{ components::repost(repost=post[2], post=post[0], owner=post[1], secondary=true, show_community=false, can_manage_post=can_manage_posts) }} {% else %} {{ components::post(post=post[0], owner=post[1], question=post[3], secondary=true, show_community=false, can_manage_post=can_manage_posts, poll=post[4]) }} {%- endif %} {% endfor %} {{ components::pagination(page=page, items=feed|length) }}"))))
|
||||
(text "{% endblock %}")
|
||||
|
|
|
@ -358,8 +358,7 @@
|
|||
("class" "flush flex gap_1 items_center")
|
||||
(text "{{ self::community_avatar(id=post.community, community=community) }}")
|
||||
(b
|
||||
(text "{% if community.context.display_name -%} {{ community.context.display_name }} {% else %} {{ community.title }} {%- endif %}"))
|
||||
(text "{% if post.context.is_pinned or post.context.is_profile_pinned -%} {{ icon \"pin\" }} {%- endif %}")))
|
||||
(text "{% if community.context.display_name -%} {{ community.context.display_name }} {% else %} {{ community.title }} {%- endif %}"))))
|
||||
(text "{%- endif %} {%- endif %}")
|
||||
(div
|
||||
("class" "card flex flex_col post gap_2 post:{{ post.id }} {% if secondary -%}secondary{%- endif %}")
|
||||
|
@ -386,7 +385,8 @@
|
|||
(span
|
||||
("class" "name")
|
||||
(text "{{ self::full_username(user=owner) }}"))
|
||||
(text "{{ self::post_info(post=post, community=community) }}"))
|
||||
(text "{{ self::post_info(post=post, community=community) }}")
|
||||
(text "{% if post.context.is_pinned or post.context.is_profile_pinned -%} {{ icon \"pin\" }} {%- endif %}"))
|
||||
(text "{% if not dont_show_title and post.title and community and community.context.enable_titles -%}")
|
||||
; post has a title AND whatever is rendering this component wants to see it
|
||||
(a
|
||||
|
|
|
@ -170,16 +170,6 @@
|
|||
(text "Posts"))
|
||||
(span
|
||||
(text "{{ profile.post_count }}")))
|
||||
(text "{% if gpa and gpa > 0 and (not user.settings.disable_gpa_fun or is_helper) -%}")
|
||||
(div
|
||||
("class" "w_full flex justify_between items_center")
|
||||
("title" "great post average (limited time fun)")
|
||||
(span
|
||||
("class" "notification chip")
|
||||
(text "GPA"))
|
||||
(span
|
||||
(text "{{ gpa|round(method=\"floor\", precision=2) }}")))
|
||||
(text "{%- endif %}")
|
||||
(text "{% if not profile.settings.private_last_seen or is_self or is_helper %}")
|
||||
(div
|
||||
("class" "w_full flex justify_between items_center")
|
||||
|
|
|
@ -3,19 +3,8 @@
|
|||
("style" "display: contents")
|
||||
(text "{{ components::create_question_form(receiver=profile.id, header=profile.settings.motivational_header, drawing_enabled=profile.settings.enable_drawings, allow_anonymous=profile.settings.allow_anonymous_questions) }}"))
|
||||
|
||||
(text "{%- endif %} {% if not tag and pinned|length != 0 -%}")
|
||||
(div
|
||||
("class" "card_nest")
|
||||
(div
|
||||
("class" "card small flex gap_2 items_center")
|
||||
(text "{{ icon \"pin\" }}")
|
||||
(span
|
||||
(text "{{ text \"communities:label.pinned\" }}")))
|
||||
(div
|
||||
("class" "card flex flex_col gap_4")
|
||||
(text "{% for post in pinned %} {% if post[2].read_access == \"Everybody\" -%} {% if post[0].context.repost and post[0].context.repost.reposting -%} {{ components::repost(repost=post[3], post=post[0], owner=post[1], secondary=true, community=post[2], show_community=true, can_manage_post=is_self) }} {% else %} {{ components::post(post=post[0], owner=post[1], question=post[4], secondary=true, community=post[2], can_manage_post=is_self, poll=post[5]) }} {%- endif %} {%- endif %} {% endfor %}")))
|
||||
|
||||
(text "{%- endif %} {{ macros::profile_nav(selected=\"posts\") }}")
|
||||
(text "{%- endif %}")
|
||||
(text "{{ macros::profile_nav(selected=\"posts\") }}")
|
||||
(div
|
||||
("class" "card_nest")
|
||||
(div
|
||||
|
@ -42,6 +31,12 @@
|
|||
(div
|
||||
("class" "card w_full flex flex_col gap_2")
|
||||
("ui_ident" "io_data_load")
|
||||
; pinned
|
||||
(text "{% for post in pinned %} {% if post[2].read_access == \"Everybody\" -%} {% if post[0].context.repost and post[0].context.repost.reposting -%} {{ components::repost(repost=post[3], post=post[0], owner=post[1], secondary=true, community=post[2], show_community=true, can_manage_post=is_self) }} {% else %} {{ components::post(post=post[0], owner=post[1], question=post[4], secondary=true, community=post[2], can_manage_post=is_self, poll=post[5]) }} {%- endif %} {%- endif %} {% endfor %}")
|
||||
(text "{% if pinned|length > 0 -%}")
|
||||
(div ("class" "squig"))
|
||||
(text "{%- endif %}")
|
||||
; ...
|
||||
(div ("ui_ident" "io_data_marker"))))
|
||||
|
||||
(text "{% set paged = user and user.settings.paged_timelines %}")
|
||||
|
|
|
@ -3,19 +3,8 @@
|
|||
("style" "display: contents")
|
||||
(text "{{ components::create_question_form(receiver=profile.id, header=profile.settings.motivational_header, drawing_enabled=profile.settings.enable_drawings, allow_anonymous=profile.settings.allow_anonymous_questions) }}"))
|
||||
|
||||
(text "{%- endif %} {% if not tag and pinned|length != 0 -%}")
|
||||
(div
|
||||
("class" "card_nest")
|
||||
(div
|
||||
("class" "card small flex gap_2 items_center")
|
||||
(text "{{ icon \"pin\" }}")
|
||||
(span
|
||||
(text "{{ text \"communities:label.pinned\" }}")))
|
||||
(div
|
||||
("class" "card flex flex_col gap_4")
|
||||
(text "{% for post in pinned %} {% if post[2].read_access == \"Everybody\" -%} {% if post[0].context.repost and post[0].context.repost.reposting -%} {{ components::repost(repost=post[3], post=post[0], owner=post[1], secondary=true, community=post[2], show_community=true, can_manage_post=is_self) }} {% else %} {{ components::post(post=post[0], owner=post[1], question=post[4], secondary=true, community=post[2], can_manage_post=is_self, poll=post[5]) }} {%- endif %} {%- endif %} {% endfor %}")))
|
||||
|
||||
(text "{%- endif %} {{ macros::profile_nav(selected=\"responses\") }}")
|
||||
(text "{%- endif %}")
|
||||
(text "{{ macros::profile_nav(selected=\"responses\") }}")
|
||||
(div
|
||||
("class" "card_nest")
|
||||
(div
|
||||
|
@ -42,6 +31,12 @@
|
|||
(div
|
||||
("class" "card w_full flex flex_col gap_2")
|
||||
("ui_ident" "io_data_load")
|
||||
; pinned
|
||||
(text "{% for post in pinned %} {% if post[2].read_access == \"Everybody\" -%} {% if post[0].context.repost and post[0].context.repost.reposting -%} {{ components::repost(repost=post[3], post=post[0], owner=post[1], secondary=true, community=post[2], show_community=true, can_manage_post=is_self) }} {% else %} {{ components::post(post=post[0], owner=post[1], question=post[4], secondary=true, community=post[2], can_manage_post=is_self, poll=post[5]) }} {%- endif %} {%- endif %} {% endfor %}")
|
||||
(text "{% if pinned|length > 0 -%}")
|
||||
(div ("class" "squig"))
|
||||
(text "{%- endif %}")
|
||||
; ...
|
||||
(div ("ui_ident" "io_data_marker"))))
|
||||
|
||||
(text "{% set paged = user and user.settings.paged_timelines %}")
|
||||
|
|
|
@ -1970,11 +1970,6 @@
|
|||
\"text\",
|
||||
],
|
||||
[[], \"Fun\", \"title\"],
|
||||
[
|
||||
[\"disable_gpa_fun\", \"Disable GPA\"],
|
||||
\"{{ profile.settings.disable_gpa_fun }}\",
|
||||
\"checkbox\",
|
||||
],
|
||||
[
|
||||
[\"disable_achievements\", \"Disable achievements\"],
|
||||
\"{{ profile.settings.disable_achievements }}\",
|
||||
|
|
|
@ -869,36 +869,6 @@ pub async fn post_to_socket_request(
|
|||
})
|
||||
}
|
||||
|
||||
/// Calculate the user's great post average.
|
||||
pub async fn get_user_gpa_request(
|
||||
jar: CookieJar,
|
||||
Path(id): Path<usize>,
|
||||
Extension(data): Extension<State>,
|
||||
) -> impl IntoResponse {
|
||||
let data = &(data.read().await).0;
|
||||
let user = match get_user_from_token!(jar, data, oauth::AppScope::UserReadProfile) {
|
||||
Some(ua) => ua,
|
||||
None => return Json(Error::NotAllowed.into()),
|
||||
};
|
||||
|
||||
if !user.permissions.check(FinePermission::MANAGE_USERS) {
|
||||
return Json(Error::NotAllowed.into());
|
||||
}
|
||||
|
||||
let gpa = data.calculate_user_gpa(id).await;
|
||||
return Json(ApiReturn {
|
||||
ok: true,
|
||||
message: if gpa >= 3.0 {
|
||||
"cool".to_string()
|
||||
} else if gpa >= 4.0 {
|
||||
"extraordinary".to_string()
|
||||
} else {
|
||||
"ok".to_string()
|
||||
},
|
||||
payload: Some(gpa),
|
||||
});
|
||||
}
|
||||
|
||||
/// Remove a grant token.
|
||||
pub async fn remove_grant_request(
|
||||
jar: CookieJar,
|
||||
|
|
|
@ -405,10 +405,6 @@ pub fn routes() -> Router {
|
|||
get(auth::profile::redirect_from_stripe_id),
|
||||
)
|
||||
.route("/auth/ip/{ip}/block", post(auth::social::ip_block_request))
|
||||
.route(
|
||||
"/auth/user/{id}/gpa",
|
||||
get(auth::profile::get_user_gpa_request),
|
||||
)
|
||||
.route(
|
||||
"/auth/user/{id}/_connect/{stream}",
|
||||
any(auth::profile::subscription_handler),
|
||||
|
|
|
@ -371,7 +371,6 @@ pub async fn posts_request(
|
|||
context.insert("pinned", &pinned);
|
||||
context.insert("page", &props.page);
|
||||
context.insert("tag", &props.tag);
|
||||
context.insert("gpa", &data.0.calculate_user_gpa(other_user.id).await);
|
||||
profile_context(
|
||||
&mut context,
|
||||
&user,
|
||||
|
@ -488,7 +487,6 @@ pub async fn replies_request(
|
|||
|
||||
context.insert("posts", &posts);
|
||||
context.insert("page", &props.page);
|
||||
context.insert("gpa", &data.0.calculate_user_gpa(other_user.id).await);
|
||||
profile_context(
|
||||
&mut context,
|
||||
&user,
|
||||
|
@ -601,7 +599,6 @@ pub async fn media_request(
|
|||
|
||||
context.insert("posts", &posts);
|
||||
context.insert("page", &props.page);
|
||||
context.insert("gpa", &data.0.calculate_user_gpa(other_user.id).await);
|
||||
profile_context(
|
||||
&mut context,
|
||||
&user,
|
||||
|
@ -696,7 +693,6 @@ pub async fn outbox_request(
|
|||
|
||||
context.insert("questions", &questions);
|
||||
context.insert("page", &props.page);
|
||||
context.insert("gpa", &data.0.calculate_user_gpa(other_user.id).await);
|
||||
profile_context(
|
||||
&mut context,
|
||||
&Some(user),
|
||||
|
@ -806,7 +802,6 @@ pub async fn following_request(
|
|||
|
||||
context.insert("list", &list);
|
||||
context.insert("page", &props.page);
|
||||
context.insert("gpa", &data.0.calculate_user_gpa(other_user.id).await);
|
||||
profile_context(
|
||||
&mut context,
|
||||
&user,
|
||||
|
@ -916,7 +911,6 @@ pub async fn followers_request(
|
|||
|
||||
context.insert("list", &list);
|
||||
context.insert("page", &props.page);
|
||||
context.insert("gpa", &data.0.calculate_user_gpa(other_user.id).await);
|
||||
profile_context(
|
||||
&mut context,
|
||||
&user,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue