mirror of
https://github.com/simple-login/app.git
synced 2025-02-22 23:02:55 +08:00
add alias search
This commit is contained in:
parent
a362a0f543
commit
28c8fa0f4d
2 changed files with 19 additions and 2 deletions
|
@ -29,6 +29,13 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<form method="get" class="col-3">
|
||||
<input type="search" name="query" placeholder="Enter to search for alias" class="form-control"
|
||||
value="{{ query }}">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="row row-cards row-deck mt-4">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
|
|
|
@ -33,6 +33,8 @@ def index():
|
|||
if highlight_gen_email_id:
|
||||
del session[HIGHLIGHT_GEN_EMAIL_ID]
|
||||
|
||||
query = request.args.get("query") or ""
|
||||
|
||||
# User generates a new email
|
||||
if request.method == "POST":
|
||||
if request.form.get("form-name") == "trigger-email":
|
||||
|
@ -113,12 +115,13 @@ def index():
|
|||
return render_template(
|
||||
"dashboard/index.html",
|
||||
client_users=client_users,
|
||||
aliases=get_alias_info(current_user.id, highlight_gen_email_id),
|
||||
aliases=get_alias_info(current_user.id, query, highlight_gen_email_id),
|
||||
highlight_gen_email_id=highlight_gen_email_id,
|
||||
query=query,
|
||||
)
|
||||
|
||||
|
||||
def get_alias_info(user_id, highlight_gen_email_id=None) -> [AliasInfo]:
|
||||
def get_alias_info(user_id, query=None, highlight_gen_email_id=None) -> [AliasInfo]:
|
||||
aliases = {} # dict of alias and AliasInfo
|
||||
q = db.session.query(GenEmail, ForwardEmail, ForwardEmailLog).filter(
|
||||
GenEmail.user_id == user_id,
|
||||
|
@ -126,6 +129,9 @@ def get_alias_info(user_id, highlight_gen_email_id=None) -> [AliasInfo]:
|
|||
ForwardEmail.id == ForwardEmailLog.forward_id,
|
||||
)
|
||||
|
||||
if query:
|
||||
q = q.filter(GenEmail.email.contains(query))
|
||||
|
||||
for ge, fe, fel in q:
|
||||
if ge.email not in aliases:
|
||||
aliases[ge.email] = AliasInfo(
|
||||
|
@ -150,6 +156,10 @@ def get_alias_info(user_id, highlight_gen_email_id=None) -> [AliasInfo]:
|
|||
.filter(GenEmail.email.notin_(aliases.keys()))
|
||||
.filter(GenEmail.user_id == user_id)
|
||||
)
|
||||
|
||||
if query:
|
||||
q = q.filter(GenEmail.email.contains(query))
|
||||
|
||||
for ge in q:
|
||||
aliases[ge.email] = AliasInfo(
|
||||
gen_email=ge,
|
||||
|
|
Loading…
Reference in a new issue