Browse Source

Allow the add_link URL to use its params to populate default values

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

+ 7 - 1
lc/app.py

@@ -128,8 +128,14 @@ class CreateInvite(Endpoint):
 @endpoint("/u/<string:user>/l")
 class CreateLink(Endpoint):
     def html(self, user: str):
+        url = flask.request.args.get("url", "")
+        name = flask.request.args.get("name", "")
+        defaults = v.AddLinkDefaults(
+            name=name,
+            url=url,
+        )
         return render(
-            "main", v.Page(title="login", content=render("add_link"), user=self.user,)
+            "main", v.Page(title="login", content=render("add_link", defaults), user=self.user,)
         )
 
     def api_post(self, user: str):

+ 5 - 0
lc/view.py

@@ -83,6 +83,11 @@ class Message(View):
     message: str
 
 
+@dataclass
+class AddLinkDefaults(View):
+    url: Optional[str] = None
+    name: Optional[str] = None
+
 @dataclass
 class Page(View):
     title: str

+ 2 - 2
templates/add_link.mustache

@@ -2,11 +2,11 @@
   <form name="login" method="POST">
     <div class="url">
       <label for="url">URL</label>
-      <input name="url" type="text" />
+      <input name="url" type="text" value="{{url}}" />
     </div>
     <div class="name">
       <label for="name">Link Name</label>
-      <input name="name" type="text" />
+      <input name="name" type="text" value="{{name}}" />
     </div>
     <div class="description">
       <label for="description">Description</label>