@marcel91200 / caddy Mirror · read-only / commits / 3b4d966f
Fork 0

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

Mirrored from https://github.com/Slazee/caddy.git

Synced Nov 11, 23:30 UTC

fileserver: Add sort buttons in grid mode (#7089)

* [ADD] sort buttons in grid mode * [CHANGE] replace spaces with tabs

filipRatajczak committed Jun 23, 2025 at 21:26 UTC 3b4d966fba069e9895980dbbf05f84bf818968ba
1 file changed +90
modules/caddyhttp/fileserver/browse.html
+90
@@ -828,6 +828,96 @@ footer {
828 </svg>
829 Grid
830 </a>
831 + {{- if and (eq .Layout "grid") (eq .Sort "name") (ne .Order "asc")}}
832 + <a href="?sort=name&order=asc{{if ne 0 .Limit}}&limit={{.Limit}}{{end}}{{if ne 0 .Offset}}&offset={{.Offset}}{{end}}&layout=grid">
833 + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-layout-grid" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
834 + <text x="2" y="10" font-size="9" fill="currentColor">Z</text>
835 + <text x="2" y="20" font-size="9" fill="currentColor">A</text>
836 + <path d="M13 4v12"></path>
837 + <path d="M12 16l1 2l1 -2"></path>
838 + </svg>
839 + </a>
840 + {{- else if and (eq .Layout "grid") (eq .Sort "name") (ne .Order "desc")}}
841 + <a href="?sort=name&order=desc{{if ne 0 .Limit}}&limit={{.Limit}}{{end}}{{if ne 0 .Offset}}&offset={{.Offset}}{{end}}&layout=grid">
842 + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-layout-grid" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
843 + <text x="2" y="10" font-size="9" fill="currentColor">A</text>
844 + <text x="2" y="20" font-size="9" fill="currentColor">Z</text>
845 + <path d="M13 4v12"></path>
846 + <path d="M12 16l1 2l1 -2"></path>
847 + </svg>
848 + </a>
849 + {{- else if and (eq .Layout "grid")}}
850 + <a href="?sort=name&order=asc{{if ne 0 .Limit}}&limit={{.Limit}}{{end}}{{if ne 0 .Offset}}&offset={{.Offset}}{{end}}&layout=grid">
851 + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-layout-grid" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
852 + <text x="2" y="20" font-size="9" fill="currentColor">A</text>
853 + <text x="2" y="10" font-size="9" fill="currentColor">Z</text>
854 + <path d="M13 4v12"></path>
855 + <path d="M12 16l1 2l1 -2"></path>
856 + </svg>
857 + </a>
858 + {{- end}}
859 + {{- if and (eq .Layout "grid") (eq .Sort "size") (ne .Order "asc")}}
860 + <a href="?sort=size&order=asc{{if ne 0 .Limit}}&limit={{.Limit}}{{end}}{{if ne 0 .Offset}}&offset={{.Offset}}{{end}}&layout=grid">
861 + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-layout-grid" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
862 + <rect x="2" y="4" width="4" height="3" rx="0.4" ry="0.4"></rect>
863 + <rect x="2" y="10" width="8" height="3" rx="0.4" ry="0.4"></rect>
864 + <rect x="2" y="16" width="12" height="3" rx="0.4" ry="0.4"></rect>
865 + <path d="M18 4v12"></path>
866 + <path d="M17 16l1 2l1 -2"></path>
867 + </svg>
868 + </a>
869 + {{- else if and (eq .Layout "grid") (eq .Sort "size") (ne .Order "desc")}}
870 + <a href="?sort=size&order=desc{{if ne 0 .Limit}}&limit={{.Limit}}{{end}}{{if ne 0 .Offset}}&offset={{.Offset}}{{end}}&layout=grid">
871 + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-layout-grid" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
872 + <rect x="2" y="4" width="12" height="3" rx="0.4" ry="0.4"></rect>
873 + <rect x="2" y="10" width="8" height="3" rx="0.4" ry="0.4"></rect>
874 + <rect x="2" y="16" width="4" height="3" rx="0.4" ry="0.4"></rect>
875 + <path d="M18 4v12"></path>
876 + <path d="M17 16l1 2l1 -2"></path>
877 + </svg>
878 + </a>
879 + {{- else if and (eq .Layout "grid")}}
880 + <a href="?sort=size&order=asc{{if ne 0 .Limit}}&limit={{.Limit}}{{end}}{{if ne 0 .Offset}}&offset={{.Offset}}{{end}}&layout=grid">
881 + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-layout-grid" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
882 + <rect x="2" y="4" width="4" height="3" rx="0.4" ry="0.4"></rect>
883 + <rect x="2" y="10" width="8" height="3" rx="0.4" ry="0.4"></rect>
884 + <rect x="2" y="16" width="12" height="3" rx="0.4" ry="0.4"></rect>
885 + <path d="M18 4v12"></path>
886 + <path d="M17 16l1 2l1 -2"></path>
887 + </svg>
888 + </a>
889 + {{- end}}
890 + {{- if and (eq .Layout "grid") (eq .Sort "time") (ne .Order "asc")}}
891 + <a href="?sort=time&order=asc{{if ne 0 .Limit}}&limit={{.Limit}}{{end}}{{if ne 0 .Offset}}&offset={{.Offset}}{{end}}&layout=grid">
892 + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-layout-grid" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
893 + <circle cx="9" cy="11" r="8"></circle>
894 + <line x1="9" y1="12" x2="9" y2="7" stroke-linecap="round"></line>
895 + <line x1="9" y1="12" x2="12" y2="12" stroke-linecap="round"></line>
896 + <path d="M20 4v12"></path>
897 + <path d="M19 16l1 2l1 -2"></path>
898 + </svg>
899 + </a>
900 + {{- else if and (eq .Layout "grid") (eq .Sort "time") (ne .Order "desc")}}
901 + <a href="?sort=time&order=desc{{if ne 0 .Limit}}&limit={{.Limit}}{{end}}{{if ne 0 .Offset}}&offset={{.Offset}}{{end}}&layout=grid">
902 + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-layout-grid" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
903 + <circle cx="9" cy="11" r="8"></circle>
904 + <line x1="9" y1="12" x2="9" y2="7" stroke-linecap="round"></line>
905 + <line x1="9" y1="12" x2="12" y2="12" stroke-linecap="round"></line>
906 + <path d="M20 4v12"></path>
907 + <path d="M19 5l1 -2l1 2"></path>
908 + </svg>
909 + </a>
910 + {{- else if and (eq .Layout "grid")}}
911 + <a href="?sort=time&order=asc{{if ne 0 .Limit}}&limit={{.Limit}}{{end}}{{if ne 0 .Offset}}&offset={{.Offset}}{{end}}&layout=grid">
912 + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-layout-grid" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
913 + <circle cx="9" cy="11" r="8"></circle>
914 + <line x1="9" y1="12" x2="9" y2="7" stroke-linecap="round"></line>
915 + <line x1="9" y1="12" x2="12" y2="12" stroke-linecap="round"></line>
916 + <path d="M20 4v12"></path>
917 + <path d="M19 16l1 2l1 -2"></path>
918 + </svg>
919 + </a>
920 + {{- end}}
921 </div>
922 <div class='listing{{if eq .Layout "grid"}} grid{{end}}'>
923 {{- if eq .Layout "grid"}}