dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

new-link.gohtml (9323B)


      1 {{ define "title" }}dkf - new-link{{ end }}
      2 
      3 {{ define "content" }}
      4 <div class="container-fluid">
      5     <nav aria-label="breadcrumb">
      6         <ol class="breadcrumb">
      7             <li class="breadcrumb-item"><a href="/links">Links</a></li>
      8             {{ if .Data.IsEdit }}
      9                 <li class="breadcrumb-item active">{{ t "Edit link" . }}</li>
     10             {{ else }}
     11                 <li class="breadcrumb-item active">{{ t "New link" . }}</li>
     12             {{ end }}
     13         </ol>
     14     </nav>
     15 
     16 
     17     <div class="card mb-3">
     18         <div class="card-header">
     19             {{ if .Data.IsEdit }}
     20                 {{ t "Edit link" . }}
     21             {{ else }}
     22                 {{ t "New link" . }}
     23             {{ end }}
     24         </div>
     25         <div class="card-body">
     26             <form method="post">
     27                 <input type="hidden" name="csrf" value="{{ .CSRF }}" />
     28                 <input type="hidden" name="formName" value="createLink" />
     29                 <div class="form-group">
     30                     <label for="link">{{ t "Link" . }}</label>
     31                     <input name="link" id="link" placeholder="http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.onion" value="{{ .Data.Link }}" class="form-control{{ if .Data.ErrorLink }} is-invalid{{ end }}" type="text" {{ if .Data.ErrorLink }} autofocus{{ end }} />
     32                     {{ if .Data.ErrorLink }}<div class="invalid-feedback">{{ .Data.ErrorLink }}</div>{{ end }}
     33                 </div>
     34                 <div class="form-group">
     35                     <label for="title">{{ t "Title" . }}</label>
     36                     <input name="title" id="title" placeholder="Title" value="{{ .Data.Title }}" class="form-control{{ if .Data.ErrorTitle }} is-invalid{{ end }}" type="text" {{ if .Data.ErrorTitle }} autofocus{{ end }} />
     37                     {{ if .Data.ErrorTitle }}<div class="invalid-feedback">{{ .Data.ErrorTitle }}</div>{{ end }}
     38                 </div>
     39                 <div class="form-group">
     40                     <label for="description">{{ t "Description" . }}</label>
     41                     <textarea name="description" id="description" placeholder="Description" class="form-control{{ if .Data.ErrorDescription }} is-invalid{{ end }}" type="text" {{ if .Data.ErrorDescription }} autofocus{{ end }}>{{ .Data.Description }}</textarea>
     42                     {{ if .Data.ErrorDescription }}<div class="invalid-feedback">{{ .Data.ErrorDescription }}</div>{{ end }}
     43                 </div>
     44                 <div class="form-group">
     45                     <label for="shorthand">{{ t "Shorthand" . }}</label>
     46                     <input name="shorthand" id="shorthand" placeholder="Shorthand" value="{{ .Data.Shorthand }}" class="form-control{{ if .Data.ErrorShorthand }} is-invalid{{ end }}" type="text" {{ if .Data.ErrorShorthand }} autofocus{{ end }} />
     47                     {{ if .Data.ErrorShorthand }}<div class="invalid-feedback">{{ .Data.ErrorShorthand }}</div>{{ end }}
     48                 </div>
     49                 <div class="form-group">
     50                     <label for="categories">{{ t "Categories" . }}</label>
     51                     <input name="categories" id="categories" placeholder="Categories eg: category1,category2,category3" value="{{ .Data.Categories }}" class="form-control{{ if .Data.ErrorCategories }} is-invalid{{ end }}" type="text" {{ if .Data.ErrorCategories }} autofocus{{ end }} />
     52                     {{ if .Data.ErrorCategories }}<div class="invalid-feedback">{{ .Data.ErrorCategories }}</div>{{ end }}
     53                 </div>
     54                 <div class="form-group">
     55                     <label for="tags">{{ t "Tags" . }}</label>
     56                     <input name="tags" id="tags" placeholder="Tags eg: marketplace,casino,chat" value="{{ .Data.Tags }}" class="form-control{{ if .Data.ErrorTags }} is-invalid{{ end }}" type="text" {{ if .Data.ErrorTags }} autofocus{{ end }} />
     57                     {{ if .Data.ErrorTags }}<div class="invalid-feedback">{{ .Data.ErrorTags }}</div>{{ end }}
     58                 </div>
     59                 <div class="form-group">
     60                     {{ if .Data.IsEdit }}
     61                         <input type="submit" value="{{ t "Edit link" . }}" class="btn btn-primary" />
     62                     {{ else }}
     63                         <input type="submit" value="{{ t "Create link" . }}" class="btn btn-primary" />
     64                     {{ end }}
     65                 </div>
     66             </form>
     67         </div>
     68     </div>
     69 
     70     {{ if .Data.IsEdit }}
     71         <div class="card mb-3">
     72             <div class="card-header">
     73                 {{ t "Mirrors" . }}
     74             </div>
     75             <div class="card-body">
     76                 <table class="table table-novpadding table-sm table-striped table-hover">
     77                     <tr>
     78                         <th>URL</th>
     79                         <th class="text-right">Actions</th>
     80                     </tr>
     81                     {{ range .Data.Mirrors }}
     82                         <tr>
     83                             <td>{{ .MirrorURL }}</td>
     84                             <td class="text-right"><a href="/links/mirrors/{{ .ID }}/delete" class="btn btn-danger btn-sm" title="Delete">X</a></td>
     85                         </tr>
     86                     {{ else }}
     87                         <tr>
     88                             <td colspan="3"><em>No mirrors</em></td>
     89                         </tr>
     90                     {{ end }}
     91                 </table>
     92                 <hr />
     93                 <form method="post">
     94                     <input type="hidden" name="csrf" value="{{ .CSRF }}" />
     95                     <input type="hidden" name="formName" value="createMirror" />
     96                     <div class="form-group">
     97                         <label for="mirror_link">{{ t "Link" . }}</label>
     98                         <input name="mirror_link" id="mirror_link" placeholder="http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.onion" value="{{ .Data.MirrorLink }}" class="form-control{{ if .Data.ErrorMirrorLink }} is-invalid{{ end }}" type="text" {{ if .Data.ErrorMirrorLink }} autofocus{{ end }} />
     99                         {{ if .Data.ErrorMirrorLink }}<div class="invalid-feedback">{{ .Data.ErrorMirrorLink }}</div>{{ end }}
    100                     </div>
    101                     <div class="form-group">
    102                         <input type="submit" value="{{ t "Create mirror" . }}" class="btn btn-primary" />
    103                     </div>
    104                 </form>
    105             </div>
    106         </div>
    107 
    108         <div class="card mb-3">
    109         <div class="card-header">
    110             {{ t "PGP" . }}
    111         </div>
    112         <div class="card-body">
    113             <table class="table table-novpadding table-sm table-striped table-hover">
    114                 <tr>
    115                     <th>Title</th>
    116                     <th>Public key</th>
    117                     <th class="text-right">Actions</th>
    118                 </tr>
    119                 {{ range .Data.LinkPgps }}
    120                     <tr>
    121                         <td>{{ .Title }}</td>
    122                         <td>{{ .PgpPublicKey | trunc 100 }}</td>
    123                         <td class="text-right"><a href="/links/pgp/{{ .ID }}/delete" class="btn btn-danger btn-sm" title="Delete">X</a></td>
    124                     </tr>
    125                 {{ else }}
    126                     <tr>
    127                         <td colspan="3"><em>No public keys</em></td>
    128                     </tr>
    129                 {{ end }}
    130             </table>
    131             <hr />
    132             <form method="post">
    133                 <input type="hidden" name="csrf" value="{{ .CSRF }}" />
    134                 <input type="hidden" name="formName" value="createPgp" />
    135                 <div class="form-group">
    136                     <label for="pgp_title">{{ t "Title" . }}</label>
    137                     <input name="pgp_title" id="pgp_title" placeholder="" value="{{ .Data.PGPTitle }}" class="form-control{{ if .Data.ErrorPGPTitle }} is-invalid{{ end }}" type="text" {{ if .Data.ErrorPGPTitle }} autofocus{{ end }} />
    138                     {{ if .Data.ErrorPGPTitle }}<div class="invalid-feedback">{{ .Data.ErrorPGPTitle }}</div>{{ end }}
    139                 </div>
    140                 <div class="form-group">
    141                     <label for="pgp_description">{{ t "Description" . }}</label>
    142                     <input name="pgp_description" id="pgp_description" placeholder="" value="{{ .Data.PGPDescription }}" class="form-control{{ if .Data.ErrorPGPDescription }} is-invalid{{ end }}" type="text" {{ if .Data.ErrorPGPDescription }} autofocus{{ end }} />
    143                     {{ if .Data.ErrorPGPDescription }}<div class="invalid-feedback">{{ .Data.ErrorPGPDescription }}</div>{{ end }}
    144                 </div>
    145                 <div class="form-group">
    146                     <label for="pgp_public_key">{{ t "Public key" . }}</label>
    147                     <textarea name="pgp_public_key" id="pgp_public_key" class="form-control{{ if .Data.ErrorPGPPublicKey }} is-invalid{{ end }}" type="text" {{ if .Data.ErrorPGPPublicKey }} autofocus{{ end }}>{{ .Data.PGPPublicKey }}</textarea>
    148                     {{ if .Data.ErrorPGPPublicKey }}<div class="invalid-feedback">{{ .Data.ErrorPGPPublicKey }}</div>{{ end }}
    149                 </div>
    150                 <div class="form-group">
    151                     <input type="submit" value="{{ t "Create PGP" . }}" class="btn btn-primary" />
    152                 </div>
    153             </form>
    154         </div>
    155     </div>
    156     {{ end }}
    157 </div>
    158 {{ end }}