1
0

Added tabindex for tr elements. Filter is hidden by default. If JS is enabled, then it will be displayed.

This commit is contained in:
Alexander Andreev 2022-10-31 01:40:59 +04:00
parent 23737319d2
commit 7da359ddda
Signed by: Arav
GPG Key ID: 0388CC8FAA51063F
2 changed files with 29 additions and 21 deletions

View File

@ -9,6 +9,7 @@ import (
"html" "html"
"io" "io"
"net/http" "net/http"
"strconv"
) )
const ( const (
@ -17,14 +18,16 @@ const (
index__2 = `</span><p>Files: ` index__2 = `</span><p>Files: `
index__3 = ` (` index__3 = ` (`
index__4 = `); Directories: ` index__4 = `); Directories: `
index__5 = `.</p><input type="text" name="filter" placeholder="Type in to filter (case insensitive)"/><table><thead><tr><th>Name</th><th>Date</th><th>Size</th></tr><tr><td><a href="../">../</a></td></tr></thead><tbody>` index__5 = `.</p><input class="hidden" type="text" name="filter" placeholder="Type in to filter this directory (case insensitive)"/><table><thead><tr><th>Name</th><th>Date</th><th>Size</th></tr><tr tabindex="`
index__6 = `</tbody></table></section><section><span>` index__6 = `"><td><a href="../">../</a></td></tr></thead><tbody>`
index__7 = `</span></section><section id="usage"><p>In an overlay use a mouse wheel to change a scale of a video or a picture. Use left and right arrow keys to go through media. Use escape key to close an overlay, or click outside a media. An audio volume is being kept across site using LocalStorage API.</p></section><section id="privacy"><h2>Privacy statements</h2><p>I collect access logs that include access date and time, IP-address, User-Agent, referer URL that tells me where have you came from, request that you sent to me. In addition there are GeoIP information added based on your IP-address that includes country, region, and city for my convenience.</p><p>This site makes use of JavaScript purely for convenient functionality, like being able to watch video, listen to music, and look images in an overlay without the need to open a file in a new tab or return back.</p></section><footer>2017&mdash;2022 Arav &lt;<a href="mailto:me@arav.top">me@arav.top</a>&gt;</footer><div id="overlay"><button name="prev">&#10096;</button><div><div></div><span></span></div><button name="next">&#10097;</button></div></body></html>` index__7 = `</tbody></table></section><section><span>`
index__8 = `<tr><td><a href="` index__8 = `</span></section><section id="usage"><p>On a page use up and down arrow keys to navigate through list. Use home and end keys to go to the start and end of a list. Use Ctrl+Backspace to return to a parent directory.</p><p>In an overlay use a mouse wheel to change a scale of a video or a picture. Use left and right arrow keys to go through media. Use space key to toggle pause. Use escape key to close an overlay, or click outside a media. An audio volume is being kept across site using LocalStorage API.</p></section><section id="privacy"><h2>Privacy statements</h2><p>I collect access logs that include access date and time, IP-address, User-Agent, referer URL that tells me where have you came from, request that you sent to me. In addition there are GeoIP information added based on your IP-address that includes country, region, and city for my convenience.</p><p>This site makes use of JavaScript purely for convenient functionality, like being able to watch video, listen to music, and look images in an overlay without the need to open a file in a new tab or return back.</p></section><footer>2017&mdash;2022 Arav &lt;<a href="mailto:me@arav.top">me@arav.top</a>&gt;</footer><div id="overlay"><button name="prev">&#10096;</button><div><div></div><span></span></div><button name="next">&#10097;</button></div></body></html>`
index__9 = `">` index__9 = `<tr tabindex="`
index__10 = `</a></td><td>` index__10 = `"><td><a href="`
index__11 = `</td><td>` index__11 = `">`
index__12 = `</td></tr>` index__12 = `</a></td><td>`
index__13 = `</td><td>`
index__14 = `</td></tr>`
) )
func Index(mainSite, currentPath string, stats *files.DirStats, items *[]files.DirEntry, r *http.Request, wr io.Writer) { func Index(mainSite, currentPath string, stats *files.DirStats, items *[]files.DirEntry, r *http.Request, wr io.Writer) {
@ -41,21 +44,25 @@ func Index(mainSite, currentPath string, stats *files.DirStats, items *[]files.D
buffer.WriteString(index__4) buffer.WriteString(index__4)
buffer.WriteString(html.EscapeString(fmt.Sprintf("%v", stats.Directories))) buffer.WriteString(html.EscapeString(fmt.Sprintf("%v", stats.Directories)))
buffer.WriteString(index__5) buffer.WriteString(index__5)
buffer.WriteString(html.EscapeString(strconv.FormatInt(int64(0), 10)))
for _, item := range *items {
buffer.WriteString(index__8)
buffer.WriteString(html.EscapeString(fmt.Sprintf("%v", item.Link)))
buffer.WriteString(index__9)
buffer.WriteString(html.EscapeString(fmt.Sprintf("%v", item.Name)))
buffer.WriteString(index__10)
buffer.WriteString(utils.ToClientTimezone(item.Datetime, r).Format(files.FileDateFormat))
buffer.WriteString(index__11)
buffer.WriteString(html.EscapeString(fmt.Sprintf("%v", item.Size)))
buffer.WriteString(index__12)
}
buffer.WriteString(index__6) buffer.WriteString(index__6)
buffer.WriteString(currentPath)
buffer.WriteString(index__7) for i, item := range *items {
buffer.WriteString(index__9)
buffer.WriteString(html.EscapeString(strconv.FormatInt(int64(i+1), 10)))
buffer.WriteString(index__10)
buffer.WriteString(html.EscapeString(fmt.Sprintf("%v", item.Link)))
buffer.WriteString(index__11)
buffer.WriteString(html.EscapeString(fmt.Sprintf("%v", item.Name)))
buffer.WriteString(index__12)
buffer.WriteString(utils.ToClientTimezone(item.Datetime, r).Format(files.FileDateFormat))
buffer.WriteString(index__13)
buffer.WriteString(html.EscapeString(fmt.Sprintf("%v", item.Size)))
buffer.WriteString(index__14)
}
buffer.WriteString(index__7)
buffer.WriteString(currentPath)
buffer.WriteString(index__8)
} }

View File

@ -26,25 +26,26 @@ html(lang='en')
section#files section#files
span!= currentPath span!= currentPath
p Files: #{stats.Files} (#{stats.FilesSize}); Directories: #{stats.Directories}. p Files: #{stats.Files} (#{stats.FilesSize}); Directories: #{stats.Directories}.
input(type="text", name="filter" placeholder="Type in to filter (case insensitive)") input.hidden(type="text", name="filter" placeholder="Type in to filter this directory (case insensitive)")
table table
thead thead
tr tr
th Name th Name
th Date th Date
th Size th Size
tr tr(tabindex=0)
td #[a(href="../") ../] td #[a(href="../") ../]
tbody tbody
each item in *items each item, i in *items
tr tr(tabindex=i+1)
td #[a(href=item.Link) #{item.Name}] td #[a(href=item.Link) #{item.Name}]
td!= utils.ToClientTimezone(item.Datetime, r).Format(files.FileDateFormat) td!= utils.ToClientTimezone(item.Datetime, r).Format(files.FileDateFormat)
td= item.Size td= item.Size
section section
span!= currentPath span!= currentPath
section#usage section#usage
p In an overlay use a mouse wheel to change a scale of a video or a picture. Use left and right arrow keys to go through media. Use escape key to close an overlay, or click outside a media. An audio volume is being kept across site using LocalStorage API. p On a page use up and down arrow keys to navigate through list. Use home and end keys to go to the start and end of a list. Use Ctrl+Backspace to return to a parent directory.
p In an overlay use a mouse wheel to change a scale of a video or a picture. Use left and right arrow keys to go through media. Use space key to toggle pause. Use escape key to close an overlay, or click outside a media. An audio volume is being kept across site using LocalStorage API.
section#privacy section#privacy
h2 Privacy statements h2 Privacy statements
p I collect access logs that include access date and time, IP-address, User-Agent, referer URL that tells me where have you came from, request that you sent to me. In addition there are GeoIP information added based on your IP-address that includes country, region, and city for my convenience. p I collect access logs that include access date and time, IP-address, User-Agent, referer URL that tells me where have you came from, request that you sent to me. In addition there are GeoIP information added based on your IP-address that includes country, region, and city for my convenience.