add: post tags

This commit is contained in:
trisua 2025-05-08 20:08:43 -04:00
parent efeb660de6
commit 8c3024cb40
13 changed files with 180 additions and 34 deletions

View file

@ -197,6 +197,7 @@
reactions_enabled: true,
is_nsfw: false,
content_warning: "",
tags: "",
};
window.BLANK_INITIAL_SETTINGS = JSON.stringify(
@ -238,12 +239,28 @@
window.POST_INITIAL_SETTINGS.content_warning,
"textarea",
],
[
["tags", "Tags"],
window.POST_INITIAL_SETTINGS.tags,
"input",
{
embed_html:
'<span class="fade">Tags should be separated by a comma.</span>',
},
],
];
trigger("ui::generate_settings_ui", [
document.getElementById("post_options"),
settings_fields,
window.POST_INITIAL_SETTINGS,
{
tags: (new_tags) => {
window.POST_INITIAL_SETTINGS.tags = new_tags
.split(",")
.map((t) => t.trim());
},
},
]);
}, 250);
</script>

View file

@ -253,6 +253,16 @@ and show_community and community.id != config.town_square or question %}
</span>
</details>
{% endif %}
<div class="flex flex-wrap gap-2 fade">
{% for tag in post.context.tags %}
<a
href="/@{{ owner.username }}?tag={{ tag }}"
class="flush fade"
>#{{ tag }}</a
>
{% endfor %}
</div>
</div>
</div>

View file

@ -168,6 +168,15 @@
settings.content_warning,
"textarea",
],
[
["tags", "Tags"],
settings.tags.join(", "),
"input",
{
embed_html:
'<span class="fade">Tags should be separated by a comma.</span>',
},
],
];
if (can_manage_pins) {
@ -186,7 +195,13 @@
]);
}
ui.generate_settings_ui(element, settings_fields, settings);
ui.generate_settings_ui(element, settings_fields, settings, {
tags: (new_tags) => {
settings.tags = new_tags
.split(",")
.map((t) => t.trim());
},
});
}, 250);
</script>
</div>

View file

@ -5,7 +5,7 @@ profile.settings.allow_anonymous_questions) %}
{{ components::create_question_form(receiver=profile.id,
header=profile.settings.motivational_header) }}
</div>
{% endif %} {% if pinned|length != 0 %}
{% endif %} {% if not tag and pinned|length != 0 %}
<div class="card-nest">
<div class="card small flex gap-2 items-center">
{{ icon "pin" }}
@ -29,8 +29,11 @@ profile.settings.allow_anonymous_questions) %}
<div class="card-nest">
<div class="card small flex gap-2 items-center">
{{ icon "clock" }}
{% if not tag %} {{ icon "clock" }}
<span>{{ text "auth:label.recent_posts" }}</span>
{% else %} {{ icon "tag" }}
<span>{{ text "auth:label.recent_with_tag" }}: <b>{{ tag }}</b></span>
{% endif %}
</div>
<div class="card flex flex-col gap-4">