captcha.gohtml (2069B)
1 {{ define "extra-head" }} 2 <style> 3 #timer_countdown:before { 4 content: "0s"; 5 animation: {{ .Data.CaptchaSec }}s 1s forwards timer_countdown_frames; 6 } 7 @keyframes timer_countdown_frames { 8 {{ range .Data.Frames -}}{{ . | css }}{{ end -}} 9 } 10 </style> 11 {{ end }} 12 13 {{ define "title" }}dkf - captcha{{ end }} 14 15 {{ define "content" }} 16 17 <div class="container"> 18 <div class="col-8 offset-2 col-md-8 offset-md-2 col-sm-8 col-lg-6 offset-lg-3 col-xl-4 offset-xl-4"> 19 {{ if .Data.Error }} 20 <div class="alert alert-danger">{{ .Data.Error }}</div> 21 {{ else if .Data.Success }} 22 <div class="alert alert-success">{{ .Data.Success }}</div> 23 {{ else }} 24 <div class="alert alert-secondary">Waiting for answer...</div> 25 {{ end }} 26 <form method="post"> 27 <input type="hidden" name="csrf" value="{{ .CSRF }}" /> 28 <input type="hidden" name="ts" value="{{ .Data.Ts }}" /> 29 <input type="hidden" name="seed" value="{{ .Data.Seed }}" /> 30 <input type="hidden" name="captcha_id" value="{{ .Data.CaptchaID }}" /> 31 <div class="form-group"> 32 <div class="mb-2 text-center"> 33 {{ template "captcha-tmpl" . }} 34 </div> 35 <input class="transparent-input form-control" placeholder="{{ t "Captcha" . }}" name="captcha" type="text" value="{{ .Data.Captcha }}" autocomplete="off" maxlength="6" required autofocus /> 36 </div> 37 <div class="form-group"> 38 <button class="btn btn-primary btn-lg btn-block">{{ t "Test captcha" . }}</button> 39 {{ if .Data.ShowAnswer }} 40 {{ .Data.Answer }} 41 {{ end }} 42 </div> 43 </form> 44 <form method="get" class="d-inline mr-2"> 45 <button class="btn btn-secondary btn-sm">{{ t "Reset timer" . }}</button> 46 <span id="timer_countdown" class="ml-3"></span> 47 </form> 48 </div> 49 </div> 50 51 {{ end }}