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 }}