feat: add mention notification creation and user search endpoints across multiple routers

This commit is contained in:
2026-05-12 11:08:38 +00:00
parent 388d4e3af8
commit ff2585b098
17 changed files with 273 additions and 195 deletions
+18 -13
View File
@@ -1,31 +1,32 @@
{% extends "base.html" %}
{% block extra_head %}
<link rel="stylesheet" href="/static/css/projects.css">
<link rel="stylesheet" href="/static/css/sidebar.css">
{% endblock %}
{% block content %}
<div class="projects-layout">
<aside class="projects-sidebar">
<h3>Filter</h3>
<div class="projects-search">
<aside class="sidebar-card">
<div class="sidebar-heading">Filter</div>
<div class="sidebar-section">
<form method="GET" action="/projects">
<input type="text" name="search" placeholder="Search projects..." value="{{ search }}">
</form>
</div>
<div style="margin-bottom: 1rem;">
<h3 style="margin-bottom: 0.5rem;">Type</h3>
<div style="display: flex; flex-direction: column; gap: 0.25rem;">
<a href="/projects?tab={{ current_tab }}" class="feed-category" style="display: flex; align-items: center; gap: 0.625rem; padding: 0.5rem 0.75rem; border-radius: var(--radius); font-size: 0.875rem; color: var(--text-secondary); transition: all 0.2s;">All</a>
<a href="/projects?tab={{ current_tab }}&type=game" class="feed-category" style="display: flex; align-items: center; gap: 0.625rem; padding: 0.5rem 0.75rem; border-radius: var(--radius); font-size: 0.875rem; color: var(--text-secondary); transition: all 0.2s;">Game</a>
<a href="/projects?tab={{ current_tab }}&type=software" class="feed-category" style="display: flex; align-items: center; gap: 0.625rem; padding: 0.5rem 0.75rem; border-radius: var(--radius); font-size: 0.875rem; color: var(--text-secondary); transition: all 0.2s;">Software</a>
<a href="/projects?tab={{ current_tab }}&type=mobile_app" class="feed-category" style="display: flex; align-items: center; gap: 0.625rem; padding: 0.5rem 0.75rem; border-radius: var(--radius); font-size: 0.875rem; color: var(--text-secondary); transition: all 0.2s;">Mobile App</a>
<a href="/projects?tab={{ current_tab }}&type=website" class="feed-category" style="display: flex; align-items: center; gap: 0.625rem; padding: 0.5rem 0.75rem; border-radius: var(--radius); font-size: 0.875rem; color: var(--text-secondary); transition: all 0.2s;">Website</a>
<div class="sidebar-section">
<div class="sidebar-heading">Type</div>
<div class="sidebar-nav">
<a href="/projects?tab={{ current_tab }}" class="sidebar-link {% if not project_type %}active{% endif %}">All</a>
<a href="/projects?tab={{ current_tab }}&type=game" class="sidebar-link {% if project_type == 'game' %}active{% endif %}">Game</a>
<a href="/projects?tab={{ current_tab }}&type=software" class="sidebar-link {% if project_type == 'software' %}active{% endif %}">Software</a>
<a href="/projects?tab={{ current_tab }}&type=mobile_app" class="sidebar-link {% if project_type == 'mobile_app' %}active{% endif %}">Mobile App</a>
<a href="/projects?tab={{ current_tab }}&type=website" class="sidebar-link {% if project_type == 'website' %}active{% endif %}">Website</a>
</div>
</div>
{% if user %}
<div style="margin-bottom: 1rem;">
<h3 style="margin-bottom: 0.5rem;">My Projects</h3>
<div class="sidebar-section">
<div class="sidebar-heading">My Projects</div>
<a href="/projects?user_uid={{ user['uid'] }}" class="btn btn-secondary btn-sm" style="width: 100%; justify-content: center;">View My Projects</a>
</div>
{% endif %}
@@ -91,6 +92,7 @@
</div>
</div>
{% if user %}
<button class="feed-fab" id="create-project-btn" title="Add Project" style="position: fixed; bottom: 2rem; right: 2rem; width: 56px; height: 56px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 1.5rem; display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-lg); border: none; cursor: pointer; z-index: 100;">+</button>
<div class="modal-overlay" id="create-project-modal">
@@ -165,7 +167,9 @@
</form>
</div>
</div>
{% endif %}
{% if user %}
<script>
document.getElementById("create-project-btn").addEventListener("click", function() {
document.getElementById("create-project-modal").classList.add("visible");
@@ -233,4 +237,5 @@
});
})();
</script>
{% endif %}
{% endblock %}