Browse Source

Use rich tag-picker in creation too

Getty Ritter 3 years ago
parent
commit
86871d26d6
3 changed files with 12 additions and 3 deletions
  1. 3 1
      lc/app.py
  2. 5 0
      lc/view.py
  3. 4 2
      templates/add_link.mustache

+ 3 - 1
lc/app.py

@@ -148,9 +148,11 @@ class ChangePassword(Endpoint):
 @endpoint("/u/<string:user>/l")
 class CreateLink(Endpoint):
     def html(self, user: str):
+        u = self.require_authentication(user)
         url = flask.request.args.get("url", "")
         name = flask.request.args.get("name", "")
-        defaults = v.AddLinkDefaults(name=name, url=url,)
+        tags = u.get_tags()
+        defaults = v.AddLinkDefaults(user=user, name=name, url=url, all_tags=tags,)
         return render(
             "main",
             v.Page(

+ 5 - 0
lc/view.py

@@ -163,9 +163,14 @@ class Message(View):
 
 @dataclass
 class AddLinkDefaults(View):
+    user: str
+    all_tags: List[Tag]
     url: Optional[str] = None
     name: Optional[str] = None
 
+    def post_url(self) -> str:
+        return f"/u/{self.user}/l"
+
 
 @dataclass
 class Page(View):

+ 4 - 2
templates/add_link.mustache

@@ -1,5 +1,5 @@
 <div class="loginform">
-  <form name="login" method="POST">
+  <form name="login" method="POST" action="{{post_url}}">
     <div class="url">
       <label for="url">URL</label>
       <input name="url" type="text" value="{{url}}" />
@@ -18,7 +18,9 @@
     </div>
     <div class="tags">
       <label for="tags">Tags</label>
-      <input name="tags" type="text" />
+      <input class="tagtest" type="text"
+        value=""
+        data-whitelist="{{#all_tags}}{{name}},{{/all_tags}}" />
     </div>
 
     <div class="submit">