]> git.draconx.ca Git - homepage.git/blobdiff - layouts/listing.erb
Improve clicky table generation.
[homepage.git] / layouts / listing.erb
similarity index 59%
rename from layouts/listing.xhtml
rename to layouts/listing.erb
index 406e42ba79ac2eaac0fba108141b4fa2ec6f0833..02017a0304ed32bf31b535e1307d271636a76e98 100644 (file)
@@ -71,49 +71,13 @@ def render_entry(files, key)
   EOF
 end
 %>
-<div>
-<script type='x'><![CDATA[]]x><!--]]></script>
-<input style='display: none' type='radio' name='filelist-sort' id='filelist-name-sort' checked='checked' />
-<input style='display: none' type='radio' name='filelist-sort' id='filelist-date-sort' />
-<input style='display: none' type='radio' name='filelist-sort' id='filelist-size-sort' />
-<input style='display: none' type='checkbox' id='filelist-name-rev' />
-<input style='display: none' type='checkbox' id='filelist-date-rev' />
-<input style='display: none' type='checkbox' id='filelist-size-rev' />
-<script type='x'>--></script>
-<table class='filelist'>
+<table class='filelist' clicky='name'>
   <thead>
     <tr>
       <th />
-      <th class='name'>
-        <label for='filelist-name-sort'><span>Name</span></label>
-        <script type='x'><![CDATA[]]x><!--]]></script>
-        <label for='filelist-name-rev' style='display: none'>
-          <span>Name</span>
-          <img alt='FWD' width='16' height='16' src='/images/down.svg' />
-          <img alt='REV' width='16' height='16' src='/images/up.svg' style='display: none' />
-        </label>
-        <script type='x'>--></script>
-      </th>
-      <th class='date'>
-        <label for='filelist-date-sort'><span>Last Modified</span></label>
-        <script type='x'><![CDATA[]]x><!--]]></script>
-        <label for='filelist-date-rev' style='display: none'>
-          <span>Last Modified</span>
-          <img alt='FWD' width='16' height='16' src='/images/down.svg' />
-          <img alt='REV' width='16' height='16' src='/images/up.svg' style='display: none' />
-        </label>
-        <script type='x'>--></script>
-      </th>
-      <th class='size'>
-        <label for='filelist-size-sort'><span>Size</span></label>
-        <script type='x'><![CDATA[]]x><!--]]></script>
-        <label for='filelist-size-rev' style='display: none'>
-          <span>Size</span>
-          <img alt='FWD' width='16' height='16' src='/images/down.svg' />
-          <img alt='REV' width='16' height='16' src='/images/up.svg' style='display: none' />
-        </label>
-        <script type='x'>--></script>
-      </th>
+      <th clicky='name'>Name</th>
+      <th clicky='date'>Last Modified</th>
+      <th clicky='size'>Size</th>
     </tr>
   </thead>
   <tbody>
@@ -124,18 +88,14 @@ end
 %>
 <%
 by_name = files.keys.sort{ |a, b| strverscmp(a, b) }
-by_name.each_index do |i|
-  entry = render_entry(files, by_name[i])
-  if i+1 == by_name.length
-    entry.sub!(%r{(.*)</td>}m,
-               "\\1<script type='x'><![CDATA[]]x><!--]]></script></td>")
-  end
+by_name.each do |key|
+  entry = render_entry(files, key)
 %>
     <tr><%= entry %></tr>
 <% end %>
   </tbody>
 
-  <tbody style='display: none'>
+  <tbody>
 <%
 def meta_cmp(files, key, a, b)
   av, bv = files[a][key], files[b][key]
@@ -146,7 +106,7 @@ end
 by_date = files.keys.sort { |a, b| meta_cmp(files, :sorttime, a, b) }
 by_size = files.keys.sort { |a, b| meta_cmp(files, :size, a, b) }
 
-listnames = [ "namerev", "date", "daterev", "size", "sizerev" ]
+listnames = [ "namerev", "datefwd", "daterev", "sizefwd", "sizerev" ]
 lists = [ by_name.reverse, by_date, by_date.reverse, by_size, by_size.reverse ]
 if parentrow
 %>
@@ -186,7 +146,5 @@ while not (elems = lists.map(&:first)).compact.empty?
   even ^= true
 end
 %>
-    <tr><td><script type='x'>--></script></tr>
   </tbody>
 </table>
-</div>