purr

password generation and secret sharing
Log | Files | Refs | README | LICENSE

index.hamlet (2724B)


      1 $doctype 5
      2 <html>
      3 
      4   <head>
      5     <title>purr
      6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
      7     <script src="/htmx.js" integrity="sha384-wS5l5IKJBvK6sPTKa2WZ1js3d947pvWXbPJ1OmWfEuxLgeHcEbjUUA5i9V5ZkpCw">
      8     <script src="/copyButtons.js" integrity="sha384-eNQZr7QWPQmi/EWi4lVVFOavm+Eibmh7iDvDptgE0j5fI3xycLssbDBZbKphi8pk">
      9     <link rel="stylesheet" href="/style.css">
     10 
     11   <body>
     12 
     13     <header>
     14       <a href="https://git.eversole.co">
     15         made with &#9829;
     16       |
     17       <a href="mailto:#{email}">contact
     18 
     19     <div #main .main>
     20 
     21       <div #title .title>
     22         <h1>
     23           <a #titleLink .titleLink href="/">purr
     24 
     25 
     26       <div #shareUtils>
     27         $if (link == "/")
     28           <div #requestedPw .hidden>
     29             <p .emptyReq>
     30         $else
     31           <div #requestedPw .requestedPw
     32             hx-trigger="load"
     33             hx-post="/pw"
     34             hx-target="#requestedPw"
     35             hx-swap="outerHTML"
     36             *{hsUserLink}
     37           >
     38            Loading... <img class="htmx-indicator" src="/loading.svg" />
     39 
     40         <div #requestNew .requestNew>
     41           <p>
     42             <input .mainInput 
     43               name="userLink" 
     44               type="text"
     45               placeholder="enter a link to view secret"
     46             />
     47           <button .mainButton
     48             hx-post="/pw"
     49             hx-target="#requestedPw"
     50             hx-swap="outerHTML"
     51             hx-include="[name='userLink']"
     52           />
     53             get secret
     54             <img class="htmx-indicator" src="/loading.svg" />
     55 
     56         <div #shareNew .shareNew>
     57           <p>
     58             <input .mainInput 
     59               name="newSec" 
     60               type="text"
     61               placeholder="enter a secret to share"
     62             />
     63             <div .validForm>
     64               <input .numberInput
     65                 name="newSecDuration"
     66                 type="number"
     67                 min="1"
     68                 max="90"
     69                 value="20"
     70                 onkeyup="if (value < 1 || value > 90) { value = 0 }"
     71               /> days
     72               <input .numberInput
     73                 name="newSecViews"
     74                 type="number"
     75                 min="1"
     76                 max="60"
     77                 value="20"
     78                 onkeyup="if (value < 1 || value > 60) { value = 0 }"
     79               /> views
     80           <button .mainButton
     81             hx-post="/new"
     82             hx-target="#requestedPw"
     83             hx-swap="outerHTML"
     84             hx-include="[id='shareNew']"
     85           />
     86             share secret
     87             <img class="htmx-indicator" src="/loading.svg" />
     88 
     89         <div #generators
     90             hx-trigger="load"
     91             hx-get="/gen"
     92             hx-target="#generators"
     93             hx-swap="outerHTML"
     94         >