1
0
mirror of https://github.com/lrsjng/h5ai.git synced 2025-08-30 17:19:56 +02:00

Compare commits

..

14 Commits
v0.1 ... v0.2.3

Author SHA1 Message Date
Lars Jung
9e521a188d More refactoring. Added global includes. 2011-06-17 02:46:32 +02:00
Lars Jung
490fe36947 Refactored, minor fixes. 2011-06-16 21:20:18 +02:00
Lars Jung
c045f0dc77 Updated readme. 2011-06-16 14:53:38 +02:00
Lars Jung
657f280826 Updated screenshots. 2011-06-16 14:41:38 +02:00
Lars Jung
bf57f4535c Fixes. 2011-06-16 03:06:46 +02:00
Lars Jung
0e5802f0d7 Fixes. 2011-06-16 01:59:52 +02:00
Lars Jung
9ca2b61a9c Fixes. 2011-06-16 01:53:16 +02:00
Lars Jung
eb20529d08 Some fixes and colored links. 2011-06-16 01:24:49 +02:00
Lars Jung
1c9cb5def4 Added icon view. 2011-06-15 16:20:13 +02:00
Lars Jung
3576db818b Removed unused files. 2011-06-15 02:29:03 +02:00
Lars Jung
9b3575ee78 Minor changes, mainly refactoring. 2011-06-15 02:26:55 +02:00
Lars Jung
76855274ad Modified README. Added link to sample folder. 2011-06-12 03:08:27 +02:00
Lars Jung
2d9cdac8a4 Fixed image links. 2011-06-11 21:03:49 +02:00
Lars Jung
0eca53c3e5 Fixed image links. 2011-06-11 20:56:20 +02:00
54 changed files with 455 additions and 188 deletions

View File

@@ -1,31 +1,85 @@
h5ai - a beautified Apache index h5ai - a beautified Apache index
================================ ================================
Screenshot Screenshots
---------- -----------
![screenshot](screen.jpg "screenshot") <a href="http://repo.larsjung.de/screens/h5ai-v0.2.1-details.png" target="_blank" style="float: left">
<img src="http://repo.larsjung.de/screens/h5ai-v0.2.1-details.png" width="400px" alt="screenshot" title="screenshot"/>
</a>
<a href="http://repo.larsjung.de/screens/h5ai-v0.2.1-icons.png" target="_blank" style="float: right">
<img src="http://repo.larsjung.de/screens/h5ai-v0.2.1-icons.png" width="400px" alt="screenshot" title="screenshot" />
</a>
<div style="clear: both"/>
compare it to the built in index
![original index](org.jpg "original index") Live example
------------
View a [sample folder](http://repo.larsjung.de/h5ai-sample)
*(the files are all empty to save webspace)*
Install Install
------- -------
* copy the `h5ai` folder to the web-root directory of your server 1. Copy the `h5ai` folder to the web-root directory of your server or alternativly set an alias `/h5ai/` to
* add the content of file `dot-htaccess` to the `.htaccess` file in the directory this folder.
you want to be indexed (you might have to create this file) 2. Add the content of file `dot.htaccess` to the `.htaccess` file in the directory
you want to be styled (you might have to create this file). This directory and any subdirectories will be
styled by h5ai.
Changelog
---------
### v0.2.3
*2011-06-17*
* more refactoring in main.js
* added custom js support, and global includes
### v0.2.2
*2011-06-16*
* refactored a lot, added some comments
* included fixes from [NumEricR](http://github.com/NumEricR/h5ai)
* added top/bottom message support, only basicly styled
### v0.2.1
*2011-06-16*
* fixed croped filenames
* fixed missing .png extension in header
* added some color to the links
* added changelog
### v0.2
*2011-06-15*
* added icon view
Author
------
[Lars Jung](http://larsjung.de)
[h5ai on github](http://github.com/larrrs/h5ai)
License License
------- -------
This project is licensed under the [CC BY-SA 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/) <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a>
This project is licensed under the [CC BY-SA 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/).
It is based on the awesome [HTML5 Boilerplate](http://html5boilerplate.com) and the beautiful It is based on the awesome [HTML5 Boilerplate](http://html5boilerplate.com) and the beautiful
[Faenza icon set](http://tiheum.deviantart.com/art/Faenza-Icons-173323228), please respect their rights. [Faenza icon set](http://tiheum.deviantart.com/art/Faenza-Icons-173323228), please respect their rights.

View File

@@ -1,7 +1,37 @@
<IfModule mod_autoindex.c> <IfModule mod_autoindex.c>
Options +Indexes +FollowSymLinks # Options +Indexes
################################
# uncomment the following line to force directory listing
# even for directories with valid index files
################################
# DirectoryIndex IGNORE-DEFAULT-INDEX-FILES
################################
# h5ai header and footer
################################
HeaderName /h5ai/header.html
ReadmeName /h5ai/footer.html
################################
# hide h5ai folder and config files from index
################################
IndexIgnore h5ai h5ai.*
################################
# table options
################################
IndexOrderDefault Ascending Name
IndexOptions Charset=UTF-8 IndexOptions Charset=UTF-8
IndexOptions FancyIndexing IndexOptions FancyIndexing
@@ -14,48 +44,27 @@
IndexOptions IgnoreCase IndexOptions IgnoreCase
IndexOptions IconsAreLinks IndexOptions IconsAreLinks
IndexOptions VersionSort IndexOptions VersionSort
IndexOptions NameWidth=*
DirectoryIndex IGNORE-DEFAULT-INDEX-FILES
IndexOrderDefault Ascending Name
IndexIgnore h5ai .??* *~ *# RCS CVS *,v *,t
HeaderName /h5ai/header.html ################################
ReadmeName /h5ai/footer.html # icon mapping
################################
AddIconByType /h5ai/icons/png.png image/png AddIcon /h5ai/icons/parent.png ..
AddIconByType /h5ai/icons/jpg.png image/jpeg AddIcon /h5ai/icons/folder.png ^^DIRECTORY^^
AddIconByType /h5ai/icons/gif.png image/gif AddIcon /h5ai/icons/blank.png ^^BLANKICON^^
AddIconByType /h5ai/icons/ico.png image/x-icon
AddIconByType /h5ai/icons/bmp.png image/x-ms-bmp AddIcon /h5ai/icons/readme.png README
AddIcon /h5ai/icons/copying.png COPYING LICENSE
AddIcon /h5ai/icons/install.png INSTALL
AddIcon /h5ai/icons/authors.png AUTHORS
AddIcon /h5ai/icons/log.png LOG Log log
AddIconByType /h5ai/icons/html.png text/html
AddIconByType /h5ai/icons/css.png text/css
AddIcon /h5ai/icons/css.png .less AddIcon /h5ai/icons/css.png .less
AddIconByType /h5ai/icons/xml.png application/xml
AddIconByType /h5ai/icons/js.png application/javascript application/json
AddIconByType /h5ai/icons/php.png application/x-httpd-php
AddIconByType /h5ai/icons/java.png text/x-java
AddIconByType /h5ai/icons/py.png text/x-python
AddIconByType /h5ai/icons/rb.png application/x-ruby
AddIconByType /h5ai/icons/cpp.png text/x-c++src
AddIconByType /h5ai/icons/hpp.png text/x-c++hdr
AddIconByType /h5ai/icons/c.png text/x-csrc
AddIconByType /h5ai/icons/h.png text/x-chdr
AddIconByType /h5ai/icons/tex.png text/x-tex
AddIcon /h5ai/icons/script.png .conf .ini .sh .shar .csh .ksh .tcl AddIcon /h5ai/icons/script.png .conf .ini .sh .shar .csh .ksh .tcl
AddIcon /h5ai/icons/makefile.png .pom pom.xml build.xml
AddIcon /h5ai/icons/log.png log Log LOG
AddIconByType /h5ai/icons/bin.png application/java-vm
AddIcon /h5ai/icons/bin.png .so .o AddIcon /h5ai/icons/bin.png .so .o
AddIconByType /h5ai/icons/exe.png application/x-executable application/x-msdos-program
AddIconByType /h5ai/icons/makefile.png text/x-makefile
AddIcon /h5ai/icons/makefile.png pom.xml .pom build.xml
AddIconByType /h5ai/icons/pdf.png application/pdf
AddIconByType /h5ai/icons/rtf.png text/rtf application/rtf
AddIcon /h5ai/icons/zip.png .zip .Z .z .jar .war AddIcon /h5ai/icons/zip.png .zip .Z .z .jar .war
AddIcon /h5ai/icons/tar.png .tar AddIcon /h5ai/icons/tar.png .tar
@@ -65,10 +74,34 @@
AddIcon /h5ai/icons/rpm.png .rpm AddIcon /h5ai/icons/rpm.png .rpm
AddIcon /h5ai/icons/cd.png .iso .cue AddIcon /h5ai/icons/cd.png .iso .cue
AddIcon /h5ai/icons/authors.png AUTHORS AddIconByType /h5ai/icons/png.png image/png
AddIcon /h5ai/icons/install.png INSTALL AddIconByType /h5ai/icons/jpg.png image/jpeg
AddIcon /h5ai/icons/copying.png COPYING LICENSE AddIconByType /h5ai/icons/gif.png image/gif
AddIcon /h5ai/icons/readme.png README AddIconByType /h5ai/icons/ico.png image/x-icon
AddIconByType /h5ai/icons/bmp.png image/x-ms-bmp
AddIconByType /h5ai/icons/html.png text/html
AddIconByType /h5ai/icons/css.png text/css
AddIconByType /h5ai/icons/xml.png application/xml
AddIconByType /h5ai/icons/js.png application/javascript application/json
AddIconByType /h5ai/icons/php.png application/x-httpd-php
AddIconByType /h5ai/icons/py.png text/x-python
AddIconByType /h5ai/icons/rb.png application/x-ruby
AddIconByType /h5ai/icons/java.png text/x-java
AddIconByType /h5ai/icons/cpp.png text/x-c++src
AddIconByType /h5ai/icons/hpp.png text/x-c++hdr
AddIconByType /h5ai/icons/c.png text/x-csrc
AddIconByType /h5ai/icons/h.png text/x-chdr
AddIconByType /h5ai/icons/pdf.png application/pdf
AddIconByType /h5ai/icons/rtf.png text/rtf application/rtf
AddIconByType /h5ai/icons/tex.png text/x-tex
AddIconByType /h5ai/icons/makefile.png text/x-makefile
AddIconByType /h5ai/icons/bin.png application/java-vm
AddIconByType /h5ai/icons/exe.png application/x-executable application/x-msdos-program
AddIconByType /h5ai/icons/text.png text/* AddIconByType /h5ai/icons/text.png text/*
AddIconByType /h5ai/icons/image.png image/* AddIconByType /h5ai/icons/image.png image/*
@@ -77,10 +110,6 @@
AddIconByEncoding /h5ai/icons/zip.png x-compress x-gzip x-bzip2 AddIconByEncoding /h5ai/icons/zip.png x-compress x-gzip x-bzip2
AddIcon /h5ai/icons/parent.png ..
AddIcon /h5ai/icons/folder.png ^^DIRECTORY^^
AddIcon /h5ai/icons/blank.png ^^BLANKICON^^
DefaultIcon /h5ai/icons/unknown.png DefaultIcon /h5ai/icons/unknown.png
</IfModule> </IfModule>

View File

@@ -1,14 +1,16 @@
<!-- generated code ends here --> <!-- generated code ends here -->
<div id="empty">empty</div> </section>
<div id="special"></div> <section id="icons"></section>
<section id="bottom"></section>
</section> </section>
<footer> <footer>
<a id="html5" href="http://www.w3.org/html/logo/" target="_blank" title="HTML5 semantics & CSS3"> <a id="html5" href="http://www.w3.org/html/logo/" target="_blank" title="HTML5 semantics, storage & CSS3">
<img class="logo" src="/h5ai/images/html5.png" alt="html5" /> <img class="logo" src="/h5ai/images/html5.png" alt="html5" />
<img class="techclass" src="/h5ai/images/html5-semantics.png" alt="html5-semantics" /> <img class="techclass" src="/h5ai/images/html5-semantics.png" alt="html5-semantics" />
<img class="techclass" src="/h5ai/images/html5-storage.png" alt="html5-storage" />
<img class="techclass" src="/h5ai/images/html5-css3.png" alt="html5-css3" /> <img class="techclass" src="/h5ai/images/html5-css3.png" alt="html5-css3" />
</a> </a>
<a href="http://github.com/larrrs/h5ai" target="_blank" title="html5autoindex v0.1">h5ai</a> <a href="http://github.com/larrrs/h5ai" target="_blank" title="h5ai v0.2.3">h5ai</a>
using using
<a href="http://html5boilerplate.com" target="_blank" title="a rock-solid default for HTML5 awesome">HTML5 Boilerplate</a> <a href="http://html5boilerplate.com" target="_blank" title="a rock-solid default for HTML5 awesome">HTML5 Boilerplate</a>
and and

View File

@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>Index</title> <title>Index - styled with h5ai</title>
<link rel="shortcut icon" href="/h5ai/icons/folder.png" /> <link rel="shortcut icon" href="/h5ai/icons/folder.png" />
<link rel="apple-touch-icon" href="/h5ai/images/folder.png"> <link rel="apple-touch-icon" href="/h5ai/images/folder.png">
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Ubuntu:regular,italic,bold"> <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Ubuntu:regular,italic,bold">
@@ -11,14 +11,18 @@
<body> <body>
<nav> <nav>
<ul> <ul>
<li id="domain"><a href="/"><img src="/h5ai/icons/home.png" alt="domain" /><span>domain</span></a></li> <li id="domain" class="crumb"><a href="/"><img src="/h5ai/icons/home.png" alt="domain" /><span>domain</span></a></li>
<li id="viewicons" class="view"><a href="#"><img src="/h5ai/icons/view-icons.png" alt="view-icons" />icons</a></li>
<li id="viewdetails" class="view" ><a href="#"><img src="/h5ai/icons/view-details.png" alt="view-details" />details</a></li>
</ul> </ul>
<div class="clearfix"></div> <div class="clearfix"></div>
</nav> </nav>
<section id="content"> <section id="content">
<!-- <section id="top"></section>
The following code was generated by apache's autoindex module. It is not valid HTML 5 for the <section id="details">
reason, that 'align' and 'valign' attributes on the td element are obsolete. Both of them are <!--
removed via javascript. The actual page should render as perfect HTML 5, even if the produced The following code was generated by apache's autoindex module. It is not valid HTML 5 for the
source is not valid HTML 5. reason, that 'align' and 'valign' attributes on the td element are obsolete. Both of them are
--> removed via javascript. The actual page should render as perfect HTML 5, even if the produced
source is not valid HTML 5.
-->

Binary file not shown.

Before

Width:  |  Height:  |  Size: 662 B

BIN
h5ai/icons/view-details.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

BIN
h5ai/icons/view-icons.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

BIN
h5ai/images/archive.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
h5ai/images/audio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
h5ai/images/bin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
h5ai/images/blank.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

BIN
h5ai/images/bmp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
h5ai/images/c.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
h5ai/images/cd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
h5ai/images/cpp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/css.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
h5ai/images/deb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
h5ai/images/default.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 997 B

BIN
h5ai/images/exe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
h5ai/images/gif.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/gzip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
h5ai/images/h.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
h5ai/images/hpp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/html.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
h5ai/images/html5-storage.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

BIN
h5ai/images/ico.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
h5ai/images/image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
h5ai/images/java.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/jpg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
h5ai/images/js.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
h5ai/images/makefile.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
h5ai/images/package.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/parent.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
h5ai/images/pdf.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
h5ai/images/php.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
h5ai/images/png.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
h5ai/images/py.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
h5ai/images/rar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
h5ai/images/rb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
h5ai/images/rpm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
h5ai/images/rtf.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/script.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
h5ai/images/tar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1013 B

BIN
h5ai/images/tex.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
h5ai/images/text.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
h5ai/images/tiff.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/unknown.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
h5ai/images/xml.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
h5ai/images/zip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -15,151 +15,215 @@ a, a:visited {
text-decoration: none; text-decoration: none;
} }
a:hover { a:hover {
color: #333; color: #e80;
} }
nav { nav {
position: fixed; position: fixed;
z-index: 1;
width: 100%; width: 100%;
left: 0px; left: 0;
top: 0px; top: 0;
font-size: 0.85em; font-size: 0.85em;
background-color: rgb(240,240,240); background-color: rgb(240,240,240);
border-bottom: 1px solid rgb(225,225,225); border-bottom: 1px solid rgb(225,225,225);
-webkit-box-shadow: 0px 0px 30px #555; -webkit-box-shadow: 0 0 30px #555;
-moz-box-shadow: 0px 0px 30px #555; -moz-box-shadow: 0 0 30px #555;
box-shadow: 0px 0px 30px #555; box-shadow: 0 0 30px #555;
} }
nav li { nav li {
float: left;
border-right: 1px dotted rgb(225,225,225);
cursor: pointer; cursor: pointer;
opacity: 0.7; opacity: 0.7;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
} }
nav li.hover, nav li.hover a { nav li:hover, nav li:hover a {
color: #e80;
background-color: rgba(255,255,255,0.5); background-color: rgba(255,255,255,0.5);
opacity: 1.0; opacity: 1.0;
} }
nav a { nav a {
display: block display: block;
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
padding: 4px 10px; padding: 0 10px;
} }
nav img { nav img {
vertical-align: bottom; vertical-align: bottom;
padding-right: 6px; padding: 0 6px 6px 0;
padding-bottom: 6px; }
nav li.crumb {
float: left;
border-right: 1px dotted rgb(225,225,225);
}
nav li.view {
float: right;
border-left: 1px dotted rgb(225,225,225);
} }
section#content { #top {
display: none;
padding-bottom: 10px;
margin-bottom: 80px;
border-bottom: 2px dashed #ddd;
}
#bottom {
display: none;
padding-top: 10px;
margin-top: 80px;
border-top: 2px dashed #ddd;
}
#content {
max-width: 980px; max-width: 980px;
margin: 0px auto; margin: 0 auto;
} }
table { #details {
display: none;
}
#details table {
display: block;
width: 100%; width: 100%;
border-collapse: collapse; border-collapse: collapse;
} }
table { #details tr.entry:hover, #details tr.entry:hover a {
display: block;
}
table tr.hover, table tr.hover a {
background-color: rgb(235,245,250); background-color: rgb(235,245,250);
background-color: #eeeeee; background-color: #f0f0f0;
color: #333; color: #e80;
cursor: pointer; cursor: pointer;
} }
table th, table td { #details th, #details td {
padding: 3px 6px; padding: 3px 6px;
text-align: left; text-align: left;
border: none; border: none;
} }
table th { #details th {
padding-bottom: 18px; padding-bottom: 18px;
opacity: 0.4; opacity: 0.4;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
} }
table th.hover { #details th.header:hover, #details th.header:hover a {
color: #555;
cursor: pointer; cursor: pointer;
opacity: 0.9; opacity: 0.9;
} }
table th a, table th a:visited { #details th a, #details th a:visited {
color: #555; color: #555;
font-weight: normal; font-weight: normal;
} }
table th a img { #details th a img {
width: 12px; width: 12px;
height: 12px; height: 12px;
padding: 0px 8px; padding: 0 8px;
} }
table td { #details td {
border: 1px solid #ddd; border: 1px solid #ddd;
border-left: 0px; border-left: none;
border-right: 0px; border-right: none;
} }
table .icon { #details .icon {
text-align: center; text-align: center;
width: 16px; width: 16px;
} }
table .icon img { #details .icon img {
width: 16px; width: 16px;
height: 16px; height: 16px;
padding-top: 2px; padding-top: 2px;
} }
table .name { #details .name {
width: 682px; width: 682px;
max-width: 682px; max-width: 682px;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
} }
table .date { #details .date {
text-align: right; text-align: right;
width: 160px; width: 160px;
min-width: 160px; min-width: 160px;
white-space: nowrap; white-space: nowrap;
} }
table .size { #details .size {
text-align: right; text-align: right;
width: 70px; width: 70px;
min-width: 70px; min-width: 70px;
white-space: nowrap; white-space: nowrap;
} }
#details .empty {
div#empty {
display: none;
text-align: center; text-align: center;
margin: 50px 0px; margin: 50px 0;
color: #ddd; color: #ddd;
font-size: 5em; font-size: 5em;
font-weight: bold; font-weight: bold;
} }
div#special { #icons {
display: none; display: none;
padding: 10px;
border: 1px solid #eee;
border-radius: 15px;
}
#icons .entry {
margin: 8px;
padding: 8px;
width: 100px;
height: 120px;
float: left;
text-align: center; text-align: center;
margin: 50px 0px; overflow: hidden;
border-radius: 5px;
cursor: pointer;
border: 1px solid rgba(0,0,0,0);
}
#icons .entry:hover {
color: #e80;
border-color: #eee;
-webkit-box-shadow: 0 0 20px #555;
-moz-box-shadow: 0 0 20px #555;
box-shadow: 0 0 20px #999;
}
#icons .entry img {
width: 48px;
height: 48px;
margin-bottom: 8px;
} }
footer { footer {
position: fixed; position: fixed;
z-index: 1;
width: 100%; width: 100%;
left: 0px; left: 0;
bottom: 0px; bottom: 0;
padding: 10px 0px; padding: 10px 0;
border-top: 1px solid rgb(225,225,225); border-top: 1px solid rgb(225,225,225);
background-color: rgb(240,240,240); background-color: rgb(240,240,240);
color: #999; color: #999;
font-size: 0.85em; font-size: 0.85em;
text-align: center; text-align: center;
-webkit-box-shadow: 0px 0px 30px #555; -webkit-box-shadow: 0 0 30px #555;
-moz-box-shadow: 0px 0px 30px #555; -moz-box-shadow: 0 0 30px #555;
box-shadow: 0px 0px 30px #555; box-shadow: 0 0 30px #555;
}
footer a, footer a:visited {
color: #555;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
footer a:hover {
color: #e80;
} }
@@ -170,9 +234,13 @@ footer {
float: left; float: left;
} }
#html5 img { #html5 img {
opacity: 0.4;
width: 20px; width: 20px;
height: 20px; height: 20px;
opacity: 0.4;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
} }
#html5:hover img { #html5:hover img {
opacity: 0.8; opacity: 0.8;

View File

@@ -1,34 +1,85 @@
( function( $ ) { ( function( $ ) {
var columnClasses = [ "icon", "name", "date", "size" ];
var defaultSortOrder = "C=N;O=A"
var h5aiPath = "/h5ai"
/*******************************
* init after dom load
*******************************/
$( function() { $( function() {
init(); applyViewmode();
initBreadcrumb();
initViews();
loadIncludes();
} ); } );
function init () {
convertToHtml5();
addBreadcrumb(); /*******************************
addColumnClasses(); * config
initTableRows(); *******************************/
addSortOrderIcons();
//specialFiles(); var config = {
columnClasses: [ "icon", "name", "date", "size" ],
defaultSortOrder: "C=N;O=A",
viewmodes: [ "details", "icons" ],
store: {
viewmode: "h5ai.viewmode"
},
icons: {
crumb: "/h5ai/icons/crumb.png",
ascending: "/h5ai/icons/ascending.png",
descending: "/h5ai/icons/descending.png"
},
globalPath: "/h5ai/global/",
localPrefix: "h5ai.",
includes: {
top: "top.html",
bottom: "bottom.html",
include: "include.js"
}
}; };
/*******************************
* local stored viewmode
*******************************/
function getViewmode() {
function convertToHtml5() { var viewmode = localStorage.getItem( config.store.viewmode );
if ( $.inArray( viewmode, config.viewmodes ) ) {
$( "td" ).removeAttr( "align" ).removeAttr( "valign" ); return viewmode;
};
return config.viewmodes[0];
}; };
function addBreadcrumb() { function applyViewmode( viewmode ) {
if ( viewmode !== undefined ) {
localStorage.setItem( config.store.viewmode, viewmode );
}
if ( getViewmode() === "icons" ) {
$( "#details" ).hide();
$( "#icons" ).show();
} else {
$( "#details" ).show();
$( "#icons" ).hide();
}
};
/*******************************
* breadcrumb
*******************************/
function initBreadcrumb() {
$( "#domain span" ).text( document.domain ); $( "#domain span" ).text( document.domain );
var pathname = decodeURI( document.location.pathname ); var pathname = decodeURI( document.location.pathname );
@@ -39,19 +90,11 @@
var part = parts[idx]; var part = parts[idx];
if ( part !== "" ) { if ( part !== "" ) {
path += part + "/"; path += part + "/";
$ul.append( $( "<li class='crumb'><a href='" + path + "'><img src='" + h5aiPath + "/icons/crumb.png' alt='>' />" + part + "</a></li>" ) ); $ul.append( $( "<li class='crumb'><a href='" + path + "'><img src='" + config.icons.crumb + "' alt='>' />" + part + "</a></li>" ) );
} }
} }
$( "nav li a" ).closest( "li" ) $( "nav li a" ).closest( "li" )
.hover(
function () {
$( this ).addClass( "hover" );
},
function () {
$( this ).removeClass( "hover" );
}
)
.click( function () { .click( function () {
document.location.href = $( this ).find( "a" ).attr( "href" ); document.location.href = $( this ).find( "a" ).attr( "href" );
} ); } );
@@ -60,18 +103,30 @@
}; };
/*******************************
* details view
*******************************/
function makeTableHtml5Conform() {
$( "#details td" ).removeAttr( "align" ).removeAttr( "valign" );
};
function getColumnClass( idx ) { function getColumnClass( idx ) {
if ( idx >= 0 && idx < columnClasses.length ) { if ( idx >= 0 && idx < config.columnClasses.length ) {
return columnClasses[idx]; return config.columnClasses[idx];
} }
return "unknown"; return "unknown";
}; };
function addColumnClasses() { function initTableColumns() {
$( "tr" ).each( function () { $( "#details tr" ).each( function () {
var colIdx = 0; var colIdx = 0;
$( this ).find( "th,td" ).each( function () { $( this ).find( "th,td" ).each( function () {
$( this ).addClass( getColumnClass( colIdx ) ); $( this ).addClass( getColumnClass( colIdx ) );
@@ -83,77 +138,132 @@
function initTableRows() { function initTableRows() {
$( "th a" ).closest( "th" ) $( "#details th a" ).closest( "th" )
.hover( .addClass( "header" )
function () {
$( this ).addClass( "hover" );
},
function () {
$( this ).removeClass( "hover" );
}
)
.click( function () { .click( function () {
document.location.href = $( this ).find( "a" ).attr( "href" ); document.location.href = $( this ).find( "a" ).attr( "href" );
} ); } );
$( "td.name a" ).closest( "tr" ) $( "#details td.name a" ).closest( "tr" )
.hover( .addClass( "entry" )
function () {
$( this ).addClass( "hover" );
},
function () {
$( this ).removeClass( "hover" );
}
)
.click( function () { .click( function () {
document.location.href = $( this ).find( "td.name a" ).attr( "href" ); document.location.href = $( this ).find( "td.name a" ).attr( "href" );
} ); } );
$dataRows = $( "td" ).closest( "tr" ); $dataRows = $( "#details td" ).closest( "tr" );
if ( $dataRows.size() === 0 || $dataRows.size() === 1 && $dataRows.find( "td.name a" ).text() === "Parent Directory" ) { if ( $dataRows.size() === 0 || $dataRows.size() === 1 && $dataRows.find( "td.name a" ).text() === "Parent Directory" ) {
$( "#empty" ).show(); $( "#details" ).append( $( "<div class='empty'>empty</div>" ) );
} }
}; };
function addSortOrderIcons() { function addSortOrderIcon() {
var order = document.location.search; var order = document.location.search;
if ( order === "" ) { if ( order === "" ) {
order = defaultSortOrder; order = config.defaultSortOrder;
} }
var $icon; var $icon;
if ( order.indexOf( "O=A" ) >= 0 ) { if ( order.indexOf( "O=A" ) >= 0 ) {
$icon = $( "<img src='" + h5aiPath + "/icons/ascending.png' class='sort' alt='ascending' />" ); $icon = $( "<img src='" + config.icons.ascending + "' class='sort' alt='ascending' />" );
} else { } else {
$icon = $( "<img src='" + h5aiPath + "/icons/descending.png' class='sort' alt='descending' />" ); $icon = $( "<img src='" + config.icons.descending + "' class='sort' alt='descending' />" );
} }
if ( order.indexOf( "C=N" ) >= 0 ) { if ( order.indexOf( "C=N" ) >= 0 ) {
$( "th.name a" ).append( $icon ); $( "#details th.name a" ).append( $icon );
} else if ( order.indexOf( "C=M" ) >= 0 ) { } else if ( order.indexOf( "C=M" ) >= 0 ) {
$( "th.date a" ).prepend( $icon ); $( "#details th.date a" ).prepend( $icon );
} else if ( order.indexOf( "C=S" ) >= 0 ) { } else if ( order.indexOf( "C=S" ) >= 0 ) {
$( "th.size a" ).prepend( $icon ); $( "#details th.size a" ).prepend( $icon );
} }
}; };
function specialFiles() { function initDetailsView() {
specialFile( "README", "readme.png" ); makeTableHtml5Conform();
specialFile( "ChangeLog", "changelog.png" ); initTableColumns();
specialFile( "INSTALL", "install.png" ); initTableRows();
specialFile( "COPYING", "copying.png" ); addSortOrderIcon();
specialFile( "LICENSE", "copying.png" );
specialFile( "AUTHORS", "authors.png" );
}; };
function specialFile( name, img ) {
if ( $( "td.name a:contains(" + name + ")" ).size() > 0 ) {
$( "#special" ) /*******************************
.append( $( "<img src='" + h5aiPath + "/images/" + img + "' alt='readme' />" ) ) * icons view
.show(); *******************************/
}
function initIconsView() {
var $div = $( "<div></div>" );
$( "#details td.name a" ).closest( "tr" ).each( function () {
var $tr = $( this );
var icon = $tr.find( "td.icon img" ).attr( "src" ).replace( "icons", "images" );
var $link = $tr.find( "td.name a" );
$( "<div class='entry'><img src='" + icon + "' /><div class='label'>" + $link.text() + "</div></div>" )
.click( function () {
document.location.href = $link.attr( "href" );
} ).
appendTo( $div );
} );
$div.append( $( "<div class='clearfix'></div>" ) );
$( "#icons" ).append( $div );
};
/*******************************
* init views
*******************************/
function initViews() {
initDetailsView();
initIconsView();
$( "#viewdetails" ).closest( "li" )
.click( function () {
applyViewmode( "details" );
} );
$( "#viewicons" ).closest( "li" )
.click( function () {
applyViewmode( "icons" );
} );
};
/*******************************
* includes
*******************************/
function loadIncludes() {
$( "#top" ).load( config.localPrefix + config.includes.top, function( response, status ) {
if (status !== "error") {
$( "#top" ).show();
} else {
$( "#top" ).load( config.globalPath + config.includes.top, function( response, status ) {
if (status !== "error") {
$( "#top" ).show();
}
} );
}
} );
$( "#bottom" ).load( config.localPrefix + config.includes.bottom, function( response, status ) {
if (status !== "error") {
$( "#bottom" ).show();
} else {
$( "#bottom" ).load( config.globalPath + config.includes.bottom, function( response, status ) {
if (status !== "error") {
$( "#bottom" ).show();
}
} );
}
} );
$.getScript( config.globalPath + config.includes.include );
$.getScript( config.localPrefix + config.includes.include );
}; };
} )( jQuery ); } )( jQuery );

BIN
org.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB