1
0
mirror of https://github.com/lrsjng/h5ai.git synced 2025-08-28 16:20:02 +02:00

Compare commits

...

37 Commits
v0.2.3 ... v0.8

Author SHA1 Message Date
Lars Jung
0d4edcb047 Lots of changes. See README.md changelog. 2011-07-08 03:32:23 +02:00
Lars Jung
a339814582 Updated screenshots. 2011-07-07 02:59:10 +02:00
Lars Jung
8eac4ca133 Removed shadows. Reworked tree side bar. 2011-07-07 02:26:07 +02:00
Lars Jung
e4646734f2 Added localization. 2011-07-05 01:39:45 +02:00
Lars Jung
e54abe08ca Added folder effects to details and icons view. Moved some icons. 2011-07-04 20:14:24 +02:00
Lars Jung
faaddd8d60 Remove screenshots. 2011-07-04 16:31:05 +02:00
Lars Jung
d599425452 Some comments and documentation. 2011-07-04 16:26:35 +02:00
Lars Jung
3e6197d2fc Added comments in options.js. 2011-07-04 12:51:34 +02:00
Lars Jung
ecf93da505 Forgot to remove local options. 2011-07-04 02:24:12 +02:00
Lars Jung
e91a127771 Forgot to remove local options. 2011-07-04 02:23:43 +02:00
Lars Jung
b8fba3ac8e Added basic options support. Refactored js. 2011-07-04 02:18:27 +02:00
Lars Jung
b7387adfc8 Some fixes. 2011-07-02 21:11:25 +02:00
Lars Jung
8ee98ed7bd Disabled tree. 2011-07-01 15:32:22 +02:00
Lars Jung
067e0970f8 Added tree sidebar. 2011-07-01 01:51:24 +02:00
Lars Jung
13ddb670b8 Updated screenshots and readme. 2011-06-27 16:13:07 +02:00
Lars Jung
ed1a19dd5c Rewrote js. Added and sorted icons. Cleaned. Version 0.4. 2011-06-27 15:35:50 +02:00
Lars Jung
c06bfea09b Updated references. 2011-06-25 02:58:00 +02:00
Lars Jung
e3da1c2603 Updated references. 2011-06-25 02:54:52 +02:00
Lars Jung
e14787e258 Forgot to update readme. 2011-06-24 22:18:44 +02:00
Lars Jung
4fd85accef Set version to 0.3.2. 2011-06-24 22:15:18 +02:00
Lars Jung
177dade3a5 Removed lbi versions from file names. Added empty indicator into icons view. 2011-06-24 22:12:46 +02:00
Lars Jung
a529a32d3a Set version to 0.3.1. 2011-06-24 15:39:44 +02:00
Lars Jung
4f09cbf00e Cleaned js. 2011-06-24 15:20:23 +02:00
Lars Jung
e07f05864c Refactored js to be an object. 2011-06-24 15:14:45 +02:00
Lars Jung
b07d702896 Fixed .empty bug. Added h5ai jQuery object for click callbacks. 2011-06-24 03:15:25 +02:00
Lars Jung
ea716b36aa Updated readme. 2011-06-24 00:01:33 +02:00
Lars Jung
81ec9b2743 Updated readme. 2011-06-23 23:43:01 +02:00
Lars Jung
ccb26f4774 Updated readme. 2011-06-23 23:42:18 +02:00
Lars Jung
31bf39bb45 Updated readme. 2011-06-23 23:35:19 +02:00
Lars Jung
32ec4f5b5e Updated readme. Included resources. 2011-06-23 23:27:20 +02:00
Lars Jung
4da215fc68 Updated readme. 2011-06-23 21:01:08 +02:00
Lars Jung
d37ff20f67 Included build stuff. 2011-06-23 20:35:28 +02:00
Lars Jung
df947590f6 Fixed links. 2011-06-22 16:09:00 +02:00
Lars Jung
7602ab55d7 Minor fixes. Added cache support for pngs, if server supports it. 2011-06-19 19:47:28 +02:00
Lars Jung
ff2bddf826 Updated readme. 2011-06-17 19:22:44 +02:00
Lars Jung
58639ce621 Updated readme. 2011-06-17 19:02:21 +02:00
Lars Jung
e5ca966266 Changed custom header and footer handling. 2011-06-17 14:02:58 +02:00
312 changed files with 2302 additions and 729 deletions

50
.gitignore vendored Normal file
View File

@@ -0,0 +1,50 @@
# Build folders to ignore
bin
build
#target
build.local.*
# Eclipse
.classpath
.ant-targets-*
# Numerous always-ignore extensions
*.diff
*.err
*.orig
*.log
*.rej
*.swo
*.swp
*.vi
*~
*.sass-cache
# OS or Editor folders
.DS_Store
.cache
.project
.settings
.tmproj
nbproject
Thumbs.db
# Dreamweaver added files
_notes
dwsync.xml
# Komodo
*.komodoproject
.komodotools
# Folders to ignore
.hg
.svn
.CVS
intermediate
publish
.idea

164
README.md
View File

@@ -1,44 +1,144 @@
h5ai - a beautified Apache index
================================
# h5ai v0.8   ·   a beautified Apache index
Screenshots
-----------
<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"/>
## Screenshots
<a href="http://larsjung.de/h5ai/sample/screenshots/h5ai-v0.7-details.png" target="_blank">
<img src="http://larsjung.de/h5ai/sample/screenshots/h5ai-v0.7-details.png" width="400px" alt="screenshot" title="details view" style="display: inline" />
</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" />
&#160; &#160; &#160;
<a href="http://larsjung.de/h5ai/sample/screenshots/h5ai-v0.7-icons.png" target="_blank">
<img src="http://larsjung.de/h5ai/sample/screenshots/h5ai-v0.7-icons.png" width="400px" alt="screenshot" title="icons view" style="display: inline" />
</a>
<div style="clear: both"/>
Live example
------------
## Live example
View a [sample folder](http://repo.larsjung.de/h5ai-sample)
View a [sample folder](http://larsjung.de/h5ai/sample)
*(the files are all empty to save webspace)*
Install
-------
## Install
1. Copy the `h5ai` folder to the web-root directory of your server or alternativly set an alias `/h5ai/` to
this folder.
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.
Everything you need is located in folder `target`.
* Copy folder `h5ai` to the web-root directory of your server or alternativly set an alias `/h5ai/` to
this folder.
* Add the content of file `dot.htaccess` to the `.htaccess` file inside the directory you want to be
styled (you might have to create this file). This directory and any subdirectories will be styled by h5ai.
* Adjust `options.js` inside the `h5ai` folder to your needs. Defaults will be fine for a start.
Optionally add `h5ai.header.html` and/or `h5ai.footer.html` files to any of the styled folders to [display
custom top or bottom sections](http://larsjung.de/h5ai/sample/customize). The content of those files
will be wrapped by `<header>` and `<footer>` tags.
Changelog
---------
## License and References
<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>
[h5ai](http://larsjung.de/h5ai) is provided under the terms of the [CC BY-SA 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/).
It is based on
[HTML5 Boilerplate](http://html5boilerplate.com),
[jQuery](http://jquery.com),
[Modernizr](http://www.modernizr.com) and
[Faenza icon set](http://tiheum.deviantart.com/art/Faenza-Icons-173323228),
please respect their rights.
## Changelog
### v0.8
*2011-07-08*
* removed slashes from folder labels
* optionally rename parent folder entries to real folder names, see `options.js`
* long breadcrumbs (multiple rows) no longer hide content
* error folder icons are opaque now
* refactored js a lot (again...)
### v0.7
*2011-07-07*
* removed shadows
* smarter tree side bar
### v0.6
*2011-07-05*
* refactored js
* added localization, see `options.js`
### v0.5.3
*2011-07-04*
* refactored js
* added basic options support via `options.js`
* commented `options.js`
* optional tree sidebar
### v0.5.2
*2011-07-02*
* details view adjusts to window width
* linked icon for *.gz and *.bz2
### v0.5.1
*2011-07-01*
* disabled tree sidebar for now, since it had unwanted side effects
### v0.5
*2011-07-01*
* added tree sidebar
* some refactorings
### v0.4
*2011-06-27*
* added better fallback, in case JavaScript is disabled
* rewrote js, fixed middle-button click etc. problems
* refactored css
* sorted, added and moved icons and images
* updated dot.access
### v0.3.2
*2011-06-24*
* removed lib versions from file names
* added 'empty' indicator for icons view
### v0.3.1
*2011-06-24*
* refactored js
* added `folderClick` and `fileClick` callback hooks
* fixed .emtpy style
### v0.3
*2011-06-23*
* included build stuff, files previously found in the base directory are now located in folder `target`
* styles and scripts are now minified
* added Modernizr 2.0.4 for future use
* updated jQuery to version 1.6.1
### v0.2.3
*2011-06-17*
* more refactoring in main.js
* added custom js support, and global includes
* ~~added custom js support, and global includes~~ *removed, only custom top and bottom sections supported*
### v0.2.2
@@ -63,23 +163,3 @@ Changelog
* added icon view
Author
------
[Lars Jung](http://larsjung.de)
[h5ai on github](http://github.com/larrrs/h5ai)
License
-------
<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
[Faenza icon set](http://tiheum.deviantart.com/art/Faenza-Icons-173323228), please respect their rights.

19
build.properties Normal file
View File

@@ -0,0 +1,19 @@
custom = true
# project
project.name = h5ai
project.version = 0.8
# src
src.dir = src
# build
build.dir = target
# libs
lib.scripp.jar = tools/scripp.jar

59
build.xml Normal file
View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<project
name="h5ai"
basedir="."
default="build"
xmlns:scripp="antlib:de.larsjung.scripp.ant"
>
<target name="init">
<property file="build.properties" />
<tstamp>
<format property="build.stamp" pattern="yyyy-MM-dd-HHmmss" />
</tstamp>
<property name="build.label" value="${project.name} ${project.version} b${build.stamp}" />
<echo>Build: ${build.label}</echo>
<taskdef
resource="de/larsjung/scripp/ant/antlib.xml"
uri="antlib:de.larsjung.scripp.ant"
classpath="${lib.scripp.jar}"
/>
</target>
<target name="clean" depends="init">
<delete dir="${build.dir}" />
</target>
<target name="build" depends="clean">
<mkdir dir="${build.dir}" />
<copy todir="${build.dir}">
<fileset dir="${src.dir}" />
</copy>
<replace dir="${build.dir}">
<replacefilter token="%BUILD%" value="${build.label}" />
<replacefilter token="%BUILD_NAME%" value="${project.name}" />
<replacefilter token="%BUILD_VERSION%" value="${project.version}" />
<replacefilter token="%BUILD_STAMP%" value="${build.stamp}" />
</replace>
<scripp.dir dir="${build.dir}/h5ai/css" />
<scripp.dir dir="${build.dir}/h5ai/js" />
</target>
<macrodef name="scripp.dir">
<attribute name="dir" />
<sequential>
<scripp:process>
<fileset dir="@{dir}" includes="**/*.less,**/*.css,**/*.js" excludes="inc/**/*,**/*.min.css,**/*.min.js" />
<globmapper from="*.less" to="*.css" />
<globmapper from="*.css" to="*.css" />
<globmapper from="*.js" to="*.js" />
</scripp:process>
<delete dir="@{dir}/inc">
<fileset dir="@{dir}" includes="**/*.less" />
</delete>
</sequential>
</macrodef>
</project>

View File

@@ -1,116 +0,0 @@
<IfModule mod_autoindex.c>
# 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 FancyIndexing
IndexOptions HTMLTable
IndexOptions XHTML
IndexOptions SuppressHTMLPreamble
IndexOptions SuppressRules
IndexOptions SuppressDescription
IndexOptions FoldersFirst
IndexOptions IgnoreCase
IndexOptions IconsAreLinks
IndexOptions VersionSort
IndexOptions NameWidth=*
################################
# icon mapping
################################
AddIcon /h5ai/icons/parent.png ..
AddIcon /h5ai/icons/folder.png ^^DIRECTORY^^
AddIcon /h5ai/icons/blank.png ^^BLANKICON^^
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
AddIcon /h5ai/icons/css.png .less
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/bin.png .so .o
AddIcon /h5ai/icons/zip.png .zip .Z .z .jar .war
AddIcon /h5ai/icons/tar.png .tar
AddIcon /h5ai/icons/archive.png .tar.gz .tgz .tar.bz2
AddIcon /h5ai/icons/pdf.png .pdf
AddIcon /h5ai/icons/deb.png .deb
AddIcon /h5ai/icons/rpm.png .rpm
AddIcon /h5ai/icons/cd.png .iso .cue
AddIconByType /h5ai/icons/png.png image/png
AddIconByType /h5ai/icons/jpg.png image/jpeg
AddIconByType /h5ai/icons/gif.png image/gif
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/image.png image/*
AddIconByType /h5ai/icons/audio.png audio/*
AddIconByType /h5ai/icons/video.png video/*
AddIconByEncoding /h5ai/icons/zip.png x-compress x-gzip x-bzip2
DefaultIcon /h5ai/icons/unknown.png
</IfModule>

View File

@@ -1,28 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Index - styled with h5ai</title>
<link rel="shortcut icon" href="/h5ai/icons/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="/h5ai/main.css">
</head>
<body>
<nav>
<ul>
<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>
<div class="clearfix"></div>
</nav>
<section id="content">
<section id="top"></section>
<section id="details">
<!--
The following code was generated by apache's autoindex module. It is not valid HTML 5 for the
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.
-->

File diff suppressed because one or more lines are too long

View File

@@ -1,248 +0,0 @@
@import "lib/html5reset.css";
body {
font-family: Ubuntu, sans-serif;
font-size: 16px;
color: #555;
margin: 80px 30px;
}
a, a:visited {
color: #555;
text-decoration: none;
}
a:hover {
color: #e80;
}
nav {
position: fixed;
z-index: 1;
width: 100%;
left: 0;
top: 0;
font-size: 0.85em;
background-color: rgb(240,240,240);
border-bottom: 1px solid rgb(225,225,225);
-webkit-box-shadow: 0 0 30px #555;
-moz-box-shadow: 0 0 30px #555;
box-shadow: 0 0 30px #555;
}
nav li {
cursor: pointer;
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 {
color: #e80;
background-color: rgba(255,255,255,0.5);
opacity: 1.0;
}
nav a {
display: block;
height: 30px;
line-height: 30px;
padding: 0 10px;
}
nav img {
vertical-align: bottom;
padding: 0 6px 6px 0;
}
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);
}
#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;
margin: 0 auto;
}
#details {
display: none;
}
#details table {
display: block;
width: 100%;
border-collapse: collapse;
}
#details tr.entry:hover, #details tr.entry:hover a {
background-color: rgb(235,245,250);
background-color: #f0f0f0;
color: #e80;
cursor: pointer;
}
#details th, #details td {
padding: 3px 6px;
text-align: left;
border: none;
}
#details th {
padding-bottom: 18px;
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;
}
#details th.header:hover, #details th.header:hover a {
color: #555;
cursor: pointer;
opacity: 0.9;
}
#details th a, #details th a:visited {
color: #555;
font-weight: normal;
}
#details th a img {
width: 12px;
height: 12px;
padding: 0 8px;
}
#details td {
border: 1px solid #ddd;
border-left: none;
border-right: none;
}
#details .icon {
text-align: center;
width: 16px;
}
#details .icon img {
width: 16px;
height: 16px;
padding-top: 2px;
}
#details .name {
width: 682px;
max-width: 682px;
overflow: hidden;
white-space: nowrap;
}
#details .date {
text-align: right;
width: 160px;
min-width: 160px;
white-space: nowrap;
}
#details .size {
text-align: right;
width: 70px;
min-width: 70px;
white-space: nowrap;
}
#details .empty {
text-align: center;
margin: 50px 0;
color: #ddd;
font-size: 5em;
font-weight: bold;
}
#icons {
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;
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 {
position: fixed;
z-index: 1;
width: 100%;
left: 0;
bottom: 0;
padding: 10px 0;
border-top: 1px solid rgb(225,225,225);
background-color: rgb(240,240,240);
color: #999;
font-size: 0.85em;
text-align: center;
-webkit-box-shadow: 0 0 30px #555;
-moz-box-shadow: 0 0 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;
}
#html5 {
position: absolute;
left: 6px;
bottom: 6px;
float: left;
}
#html5 img {
width: 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 {
opacity: 0.8;
}

View File

@@ -1,269 +0,0 @@
( function( $ ) {
/*******************************
* init after dom load
*******************************/
$( function() {
applyViewmode();
initBreadcrumb();
initViews();
loadIncludes();
} );
/*******************************
* config
*******************************/
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() {
var viewmode = localStorage.getItem( config.store.viewmode );
if ( $.inArray( viewmode, config.viewmodes ) ) {
return viewmode;
};
return config.viewmodes[0];
};
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 );
var pathname = decodeURI( document.location.pathname );
var parts = pathname.split( "/" );
var path = "/";
var $ul = $( "nav ul" );
for ( idx in parts ) {
var part = parts[idx];
if ( part !== "" ) {
path += part + "/";
$ul.append( $( "<li class='crumb'><a href='" + path + "'><img src='" + config.icons.crumb + "' alt='>' />" + part + "</a></li>" ) );
}
}
$( "nav li a" ).closest( "li" )
.click( function () {
document.location.href = $( this ).find( "a" ).attr( "href" );
} );
document.title = document.domain + pathname;
};
/*******************************
* details view
*******************************/
function makeTableHtml5Conform() {
$( "#details td" ).removeAttr( "align" ).removeAttr( "valign" );
};
function getColumnClass( idx ) {
if ( idx >= 0 && idx < config.columnClasses.length ) {
return config.columnClasses[idx];
}
return "unknown";
};
function initTableColumns() {
$( "#details tr" ).each( function () {
var colIdx = 0;
$( this ).find( "th,td" ).each( function () {
$( this ).addClass( getColumnClass( colIdx ) );
colIdx++;
} );
} );
};
function initTableRows() {
$( "#details th a" ).closest( "th" )
.addClass( "header" )
.click( function () {
document.location.href = $( this ).find( "a" ).attr( "href" );
} );
$( "#details td.name a" ).closest( "tr" )
.addClass( "entry" )
.click( function () {
document.location.href = $( this ).find( "td.name a" ).attr( "href" );
} );
$dataRows = $( "#details td" ).closest( "tr" );
if ( $dataRows.size() === 0 || $dataRows.size() === 1 && $dataRows.find( "td.name a" ).text() === "Parent Directory" ) {
$( "#details" ).append( $( "<div class='empty'>empty</div>" ) );
}
};
function addSortOrderIcon() {
var order = document.location.search;
if ( order === "" ) {
order = config.defaultSortOrder;
}
var $icon;
if ( order.indexOf( "O=A" ) >= 0 ) {
$icon = $( "<img src='" + config.icons.ascending + "' class='sort' alt='ascending' />" );
} else {
$icon = $( "<img src='" + config.icons.descending + "' class='sort' alt='descending' />" );
}
if ( order.indexOf( "C=N" ) >= 0 ) {
$( "#details th.name a" ).append( $icon );
} else if ( order.indexOf( "C=M" ) >= 0 ) {
$( "#details th.date a" ).prepend( $icon );
} else if ( order.indexOf( "C=S" ) >= 0 ) {
$( "#details th.size a" ).prepend( $icon );
}
};
function initDetailsView() {
makeTableHtml5Conform();
initTableColumns();
initTableRows();
addSortOrderIcon();
};
/*******************************
* icons view
*******************************/
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 );

140
src/dot.htaccess Normal file
View File

@@ -0,0 +1,140 @@
################################
# %BUILD_NAME% %BUILD_VERSION%
# customized .htaccess
################################
# Options +Indexes
# Options +FollowSymLinks
<IfModule mod_headers.c>
################################
# cache images for 52 weeks
################################
<FilesMatch "\.png$">
Header set Cache-Control "max-age=31449600, public"
</FilesMatch>
</IfModule>
################################
# style auto index
################################
<IfModule mod_autoindex.c>
################################
# 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.header.html h5ai.footer.html
################################
# table options
################################
IndexOrderDefault Ascending Name
IndexOptions Type=text/html;h5ai=%BUILD_VERSION%
IndexOptions Charset=UTF-8
IndexOptions FancyIndexing
IndexOptions HTMLTable
IndexOptions XHTML
IndexOptions SuppressHTMLPreamble
IndexOptions SuppressRules
IndexOptions SuppressDescription
IndexOptions FoldersFirst
IndexOptions IgnoreCase
IndexOptions IconsAreLinks
IndexOptions VersionSort
IndexOptions NameWidth=*
################################
# icon mapping
################################
AddIcon /h5ai/icons/16x16/parent.png ..
AddIcon /h5ai/icons/16x16/folder.png ^^DIRECTORY^^
AddIcon /h5ai/icons/16x16/blank.png ^^BLANKICON^^
AddIcon /h5ai/icons/16x16/readme.png README
AddIcon /h5ai/icons/16x16/copying.png COPYING LICENSE
AddIcon /h5ai/icons/16x16/install.png INSTALL
AddIcon /h5ai/icons/16x16/authors.png AUTHORS
AddIcon /h5ai/icons/16x16/log.png LOG Log log
AddIcon /h5ai/icons/16x16/css.png .less
AddIcon /h5ai/icons/16x16/script.png .conf .ini .sh .shar .csh .ksh .tcl
AddIcon /h5ai/icons/16x16/makefile.png .pom pom.xml build.xml
AddIcon /h5ai/icons/16x16/bin.png .so .o
AddIcon /h5ai/icons/16x16/archive.png .tar.gz .tgz .tar.bz2
AddIcon /h5ai/icons/16x16/zip.png .zip .Z .z .jar .war .gz .bz2
AddIcon /h5ai/icons/16x16/tar.png .tar
AddIcon /h5ai/icons/16x16/pdf.png .pdf
AddIcon /h5ai/icons/16x16/deb.png .deb
AddIcon /h5ai/icons/16x16/rpm.png .rpm
AddIcon /h5ai/icons/16x16/cd.png .iso .cue
AddIconByType /h5ai/icons/16x16/png.png image/png
AddIconByType /h5ai/icons/16x16/jpg.png image/jpeg
AddIconByType /h5ai/icons/16x16/gif.png image/gif
AddIconByType /h5ai/icons/16x16/ico.png image/x-icon
AddIconByType /h5ai/icons/16x16/bmp.png image/x-ms-bmp
AddIconByType /h5ai/icons/16x16/html.png text/html
AddIconByType /h5ai/icons/16x16/css.png text/css
AddIconByType /h5ai/icons/16x16/xml.png application/xml
AddIconByType /h5ai/icons/16x16/js.png application/javascript application/json
AddIconByType /h5ai/icons/16x16/php.png application/x-httpd-php
AddIconByType /h5ai/icons/16x16/py.png text/x-python
AddIconByType /h5ai/icons/16x16/rb.png application/x-ruby
AddIconByType /h5ai/icons/16x16/java.png text/x-java
AddIconByType /h5ai/icons/16x16/cpp.png text/x-c++src
AddIconByType /h5ai/icons/16x16/hpp.png text/x-c++hdr
AddIconByType /h5ai/icons/16x16/c.png text/x-csrc
AddIconByType /h5ai/icons/16x16/h.png text/x-chdr
AddIconByType /h5ai/icons/16x16/pdf.png application/pdf
AddIconByType /h5ai/icons/16x16/rtf.png text/rtf application/rtf
AddIconByType /h5ai/icons/16x16/tex.png text/x-tex
AddIconByType /h5ai/icons/16x16/makefile.png text/x-makefile
AddIconByType /h5ai/icons/16x16/bin.png application/java-vm
AddIconByType /h5ai/icons/16x16/exe.png application/x-executable application/x-msdos-program
AddIconByType /h5ai/icons/16x16/text.png text/*
AddIconByType /h5ai/icons/16x16/image.png image/*
AddIconByType /h5ai/icons/16x16/audio.png audio/*
AddIconByType /h5ai/icons/16x16/video.png video/*
AddIconByEncoding /h5ai/icons/16x16/zip.png x-compress x-gzip x-bzip2
DefaultIcon /h5ai/icons/16x16/unknown.png
</IfModule>

View File

@@ -0,0 +1,198 @@
#extended.details-view {
display: none;
ul {
margin: 0;
padding: 0;
list-style: none;
li {
position: relative;
white-space: nowrap;
clear: both;
&.header a {
padding-bottom: 18px;
color: #555;
opacity: 0.4;
cursor: pointer;
.transition( all 0.2s ease-in-out );
&:visited {
color: #555;
}
&:hover {
color: #555;
opacity: 0.9;
}
img {
width: 12px;
height: 12px;
padding: 0 8px;
}
}
&.entry {
border-bottom: 1px solid #ddd;
a {
display: block;
cursor: pointer;
&:hover {
background-color: #f6f6f6;
color: #e80;
}
}
&.error {
> a, > a:visited {
color: #999;
.label {
opacity: 0.7;
.hint {
font-size: 0.9em;
font-style: italic;
color: #c55;
}
}
}
}
}
.icon, .label, .date, .size {
padding: 6px;
}
.icon {
display: inline-block;
position: absolute;
left: 0;
top: 2px;
width: 16px;
img {
width: 16px;
height: 16px;
}
}
.icon.big {
display: none;
}
.label {
display: block;
margin: 0 270px 0 24px;
overflow: hidden;
white-space: nowrap;
text-align: left;
}
.date {
position: absolute;
right: 100px;
top: 0;
text-align: right;
width: 160px;
white-space: nowrap;
}
.size {
position: absolute;
right: 0;
top: 0;
text-align: right;
width: 80px;
white-space: nowrap;
}
}
}
.empty {
text-align: center;
margin: 50px 0;
color: #ddd;
font-size: 5em;
font-weight: bold;
}
}
#extended.icons-view {
display: none;
padding: 10px;
border: 1px solid #eee;
border-radius: 15px;
ul {
margin: 0;
padding: 0;
list-style: none;
li {
&.header {
display: none;
}
&.entry {
float: left;
a {
display: block;
margin: 8px;
padding: 8px;
width: 100px;
height: 120px;
float: left;
text-align: center;
overflow: hidden;
border-radius: 5px;
cursor: pointer;
border: 2px solid rgba(0,0,0,0);
&:hover {
color: #e80;
border-color: #eee;
background-color: #f6f6f6;
}
.icon {
display: block;
img {
width: 48px;
height: 48px;
margin-bottom: 8px;
}
}
.icon.small {
display: none;
}
.label {
display: block;
word-wrap: break-word;
}
.date, .size {
display: none;
}
}
&.error {
> a, > a:visited {
color: #999;
.label {
opacity: 0.7;
.hint {
font-size: 0.9em;
font-style: italic;
color: #c55;
}
}
}
}
}
}
}
.empty {
padding: 16px;
height: 120px;
text-align: center;
color: #ddd;
font-size: 5em;
font-weight: bold;
}
}

View File

@@ -0,0 +1,38 @@
.border-radius ( @radius ) {
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
border-radius: @radius;
}
.box-shadow ( @shadow ) {
-moz-box-shadow: @shadow;
-webkit-box-shadow: @shadow;
box-shadow: @shadow;
}
.transition ( @transition ) {
-moz-transition: @transition;
-ms-transition: @transition;
-o-transition: @transition;
-webkit-transition: @transition;
transition: @transition;
}
.transform ( @transform ) {
-moz-transform: @transform;
-o-transform: @transform;
-webkit-transform: @transform;
transform: @transform;
}
.background-size ( @size ) {
-moz-background-size: @size;
-webkit-background-size: @size;
background-size: @size;
}

View File

@@ -0,0 +1,68 @@
#table {
table {
display: block;
width: 100%;
border-collapse: collapse;
th, td {
padding: 3px 6px;
text-align: left;
border: none;
}
th {
padding-bottom: 18px;
opacity: 0.4;
.transition( all 0.2s ease-in-out );
&:hover, &:hover a {
color: #555;
cursor: pointer;
opacity: 0.9;
}
a, a:visited {
color: #555;
font-weight: normal;
img {
width: 12px;
height: 12px;
padding: 0 8px;
}
}
}
td {
border: 1px solid #ddd;
border-left: none;
border-right: none;
}
td:nth-child(1), th:nth-child(1) {
text-align: center;
width: 16px;
img {
width: 16px;
height: 16px;
padding-top: 2px;
}
}
td:nth-child(2), th:nth-child(2) {
width: 682px;
max-width: 682px;
overflow: hidden;
white-space: nowrap;
}
td:nth-child(3), th:nth-child(3) {
text-align: right;
width: 160px;
min-width: 160px;
white-space: nowrap;
}
td:nth-child(4), th:nth-child(4) {
text-align: right;
width: 70px;
min-width: 70px;
white-space: nowrap;
}
}
}

106
src/h5ai/css/inc/tree.less Normal file
View File

@@ -0,0 +1,106 @@
#tree {
position: fixed;
left: -200px;
top: 80px;
font-size: 0.85em;
padding: 16px 32px 16px 16px;
background-color: rgb(241,241,241);
border: 2px solid rgb(210,210,210);
border-left: none;
.border-radius ( 0 15px 15px 0 );
.entry {
.blank, .indicator {
display: inline-block;
width: 16px;
height: 25px;
float: left;
}
.indicator {
opacity: 0.7;
.transition( all 0.2s ease-in-out );
cursor: pointer;
&:hover {
opacity: 1;
}
img {
position: relative;
left: 0;
top: 3px;
width: 12px;
height: 12px;
vertical-align: bottom;
.transition( all 0.2s ease-in-out );
}
&.open {
img {
.transform( rotate(90deg) );
}
}
&.unknown {
opacity: 0.3;
}
}
> a, > a.visited {
margin-left: 16px;
padding: 4px 6px;
border: 1px solid rgba(0,0,0,0);
.border-radius( 5px );
display: block;
opacity: 0.7;
&:hover {
background-color: rgba(255,255,255,0.5);
opacity: 1;
}
.label {
display: inline-block;
}
.icon {
display: inline-block;
width: 20px;
img {
width: 16px;
height: 16px;
vertical-align: bottom;
}
}
.hint {
display: inline-block;
margin-left: 12px;
font-style: italic;
font-size: 0.9em;
color: #ccc;
img {
width: 10px;
height: 10px;
vertical-align: baseline;
}
}
}
&.file {
display: none;
}
&.current {
> a, > a:visited {
border: 1px solid rgba(0,0,0,0.1);
background-color: rgba(255,255,255,0.5);
opacity: 1;
}
}
&.error {
> a, > a:visited {
color: #999;
}
.hint {
color: #c55;
}
}
.content {
list-style: none;
margin-left: 20px;
}
}
}

166
src/h5ai/css/main.less Normal file
View File

@@ -0,0 +1,166 @@
@import "inc/html5reset";
@import "inc/mixins";
html.js {
.jsDisabledFallback {
display: none;
}
}
html.no-js {
body > nav ul {
display: none;
}
}
body {
font-family: Ubuntu, sans-serif;
font-size: 16px;
color: #555;
margin: 80px 30px;
}
a, a:visited {
color: #555;
text-decoration: none;
&:hover {
color: #e80;
}
}
body > nav {
position: fixed;
z-index: 1;
width: 100%;
left: 0;
top: 0;
font-size: 0.85em;
background-color: rgb(241,241,241);
border-bottom: 2px solid rgb(210,210,210);
span.jsDisabledFallback {
display: block;
height: 30px;
line-height: 30px;
padding: 0 10px;
color: #999;
}
li {
cursor: pointer;
opacity: 0.7;
.transition( all 0.2s ease-in-out );
&.crumb {
float: left;
border-right: 1px solid rgb(231,231,231);
.hint {
margin-left: 8px;
font-style: italic;
color: #999;
}
img.hint {
width: 10px;
height: 10px;
vertical-align: baseline;
padding: 0px;
}
}
&.current {
background-color: rgba(255,255,255,0.5);
opacity: 1.0;
}
&.view {
float: right;
border-left: 1px solid rgb(230,230,230);
}
&:hover, &:hover a {
background-color: rgba(255,255,255,0.5);
color: #e80;
opacity: 1.0;
}
}
a {
display: block;
height: 30px;
line-height: 30px;
padding: 0 10px;
}
img {
width: 16px;
height: 16px;
vertical-align: bottom;
padding: 0 6px 6px 0;
}
}
#content {
max-width: 980px;
margin: 0 auto;
> header {
display: none;
padding-bottom: 10px;
margin-bottom: 80px;
border-bottom: 2px dashed #ddd;
}
> footer {
display: none;
padding-top: 10px;
margin-top: 80px;
border-top: 2px dashed #ddd;
}
}
@import "inc/table";
@import "inc/extended";
@import "inc/tree";
body > footer {
position: fixed;
z-index: 1;
width: 100%;
left: 0;
bottom: 0;
padding: 10px 0;
background-color: rgb(241,241,241);
border-top: 2px solid rgb(210,210,210);
color: #999;
font-size: 0.85em;
text-align: center;
a, a:visited {
color: #555;
.transition( all 0.2s ease-in-out );
&:hover {
color: #e80;
}
}
}
#html5 {
position: absolute;
left: 6px;
bottom: 6px;
float: left;
img {
width: 20px;
height: 20px;
opacity: 0.4;
.transition( all 0.2s ease-in-out );
}
&:hover img {
opacity: 0.8;
}
}

View File

@@ -1,8 +1,9 @@
<!-- generated code ends here -->
</section>
<section id="icons"></section>
<section id="bottom"></section>
<section id="extended"></section>
<footer></footer>
</section>
<section id="tree"></section>
<footer>
<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" />
@@ -10,14 +11,13 @@
<img class="techclass" src="/h5ai/images/html5-storage.png" alt="html5-storage" />
<img class="techclass" src="/h5ai/images/html5-css3.png" alt="html5-css3" />
</a>
<a href="http://github.com/larrrs/h5ai" target="_blank" title="h5ai v0.2.3">h5ai</a>
using
<a href="http://html5boilerplate.com" target="_blank" title="a rock-solid default for HTML5 awesome">HTML5 Boilerplate</a>
and
<a href="http://larsjung.de/h5ai" target="_blank" title="h5ai %BUILD_VERSION%">h5ai</a>
<span class="l10n-footerUsing">using</span>
<a href="http://tiheum.deviantart.com/art/Faenza-Icons-173323228" target="_blank" title="icon theme for Gnome">Faenza icons</a>
</footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
<script>window.jQuery || document.write( '<script src="/h5ai/lib/jquery-1.5.min.js"><\/script>' )</script>
<script src="/h5ai/main.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script>window.jQuery || document.write( '<script src="/h5ai/js/lib/jquery.min.js"><\/script>' )</script>
<script src="/h5ai/options.js"></script>
<script src="/h5ai/js/main.js"></script>
</body>
</html>
</html>

39
src/h5ai/header.html Normal file
View File

@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html class="no-js">
<head>
<meta charset="utf-8">
<title>Directory index · styled with h5ai</title>
<meta name="h5ai-version" content="h5ai %BUILD_VERSION%">
<meta name="description" content="Directory index styled with h5ai (http://larsjung.de/h5ai)">
<meta name="keywords" content="directory, index, autoindex, h5ai">
<link rel="shortcut icon" type="image/png" href="/h5ai/images/h5ai-16x16.png">
<link rel="apple-touch-icon" type="image/png" href="/h5ai/images/h5ai-48x48.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="/h5ai/css/main.css">
<script src="/h5ai/js/lib/modernizr.min.js"></script>
</head>
<body>
<nav>
<span class="jsDisabledFallback">Directory index · JavaScript is disabled</span>
<ul>
<li id="domain" class="crumb">
<a href="/"><img src="/h5ai/images/home.png" alt="domain" /><span>domain</span></a>
</li>
<li id="viewicons" class="view">
<a href="#"><img src="/h5ai/images/view-icons.png" alt="view-icons" /><span class="l10n-viewIcons">icons</span></a>
</li>
<li id="viewdetails" class="view" >
<a href="#"><img src="/h5ai/images/view-details.png" alt="view-details" /><span class="l10n-viewDetails">details</span></a>
</li>
</ul>
<div class="clearfix"></div>
</nav>
<section id="content">
<header></header>
<section id="table" class="jsDisabledFallback">
<!--
The following code was generated by apache's autoindex module. It is not valid HTML 5 for the
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.
-->

View File

Before

Width:  |  Height:  |  Size: 551 B

After

Width:  |  Height:  |  Size: 551 B

View File

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 554 B

View File

Before

Width:  |  Height:  |  Size: 492 B

After

Width:  |  Height:  |  Size: 492 B

View File

Before

Width:  |  Height:  |  Size: 551 B

After

Width:  |  Height:  |  Size: 551 B

View File

Before

Width:  |  Height:  |  Size: 227 B

After

Width:  |  Height:  |  Size: 227 B

View File

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 663 B

View File

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 554 B

View File

Before

Width:  |  Height:  |  Size: 506 B

After

Width:  |  Height:  |  Size: 506 B

View File

Before

Width:  |  Height:  |  Size: 757 B

After

Width:  |  Height:  |  Size: 757 B

View File

Before

Width:  |  Height:  |  Size: 699 B

After

Width:  |  Height:  |  Size: 699 B

View File

Before

Width:  |  Height:  |  Size: 599 B

After

Width:  |  Height:  |  Size: 599 B

View File

Before

Width:  |  Height:  |  Size: 592 B

After

Width:  |  Height:  |  Size: 592 B

View File

Before

Width:  |  Height:  |  Size: 671 B

After

Width:  |  Height:  |  Size: 671 B

View File

Before

Width:  |  Height:  |  Size: 311 B

After

Width:  |  Height:  |  Size: 311 B

View File

Before

Width:  |  Height:  |  Size: 535 B

After

Width:  |  Height:  |  Size: 535 B

View File

Before

Width:  |  Height:  |  Size: 679 B

After

Width:  |  Height:  |  Size: 679 B

View File

Before

Width:  |  Height:  |  Size: 619 B

After

Width:  |  Height:  |  Size: 619 B

View File

Before

Width:  |  Height:  |  Size: 846 B

After

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

View File

Before

Width:  |  Height:  |  Size: 409 B

After

Width:  |  Height:  |  Size: 409 B

View File

Before

Width:  |  Height:  |  Size: 655 B

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 B

View File

Before

Width:  |  Height:  |  Size: 504 B

After

Width:  |  Height:  |  Size: 504 B

View File

Before

Width:  |  Height:  |  Size: 530 B

After

Width:  |  Height:  |  Size: 530 B

View File

Before

Width:  |  Height:  |  Size: 770 B

After

Width:  |  Height:  |  Size: 770 B

View File

Before

Width:  |  Height:  |  Size: 792 B

After

Width:  |  Height:  |  Size: 792 B

View File

Before

Width:  |  Height:  |  Size: 671 B

After

Width:  |  Height:  |  Size: 671 B

View File

Before

Width:  |  Height:  |  Size: 788 B

After

Width:  |  Height:  |  Size: 788 B

View File

Before

Width:  |  Height:  |  Size: 658 B

After

Width:  |  Height:  |  Size: 658 B

View File

Before

Width:  |  Height:  |  Size: 675 B

After

Width:  |  Height:  |  Size: 675 B

View File

Before

Width:  |  Height:  |  Size: 540 B

After

Width:  |  Height:  |  Size: 540 B

View File

Before

Width:  |  Height:  |  Size: 423 B

After

Width:  |  Height:  |  Size: 423 B

View File

Before

Width:  |  Height:  |  Size: 614 B

After

Width:  |  Height:  |  Size: 614 B

View File

Before

Width:  |  Height:  |  Size: 614 B

After

Width:  |  Height:  |  Size: 614 B

View File

Before

Width:  |  Height:  |  Size: 494 B

After

Width:  |  Height:  |  Size: 494 B

View File

Before

Width:  |  Height:  |  Size: 799 B

After

Width:  |  Height:  |  Size: 799 B

View File

Before

Width:  |  Height:  |  Size: 757 B

After

Width:  |  Height:  |  Size: 757 B

View File

Before

Width:  |  Height:  |  Size: 610 B

After

Width:  |  Height:  |  Size: 610 B

View File

Before

Width:  |  Height:  |  Size: 679 B

After

Width:  |  Height:  |  Size: 679 B

View File

Before

Width:  |  Height:  |  Size: 629 B

After

Width:  |  Height:  |  Size: 629 B

View File

Before

Width:  |  Height:  |  Size: 622 B

After

Width:  |  Height:  |  Size: 622 B

View File

Before

Width:  |  Height:  |  Size: 743 B

After

Width:  |  Height:  |  Size: 743 B

View File

Before

Width:  |  Height:  |  Size: 621 B

After

Width:  |  Height:  |  Size: 621 B

View File

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 781 B

View File

Before

Width:  |  Height:  |  Size: 384 B

After

Width:  |  Height:  |  Size: 384 B

View File

Before

Width:  |  Height:  |  Size: 660 B

After

Width:  |  Height:  |  Size: 660 B

View File

Before

Width:  |  Height:  |  Size: 660 B

After

Width:  |  Height:  |  Size: 660 B

View File

Before

Width:  |  Height:  |  Size: 627 B

After

Width:  |  Height:  |  Size: 627 B

View File

Before

Width:  |  Height:  |  Size: 613 B

After

Width:  |  Height:  |  Size: 613 B

View File

Before

Width:  |  Height:  |  Size: 586 B

After

Width:  |  Height:  |  Size: 586 B

View File

Before

Width:  |  Height:  |  Size: 510 B

After

Width:  |  Height:  |  Size: 510 B

View File

Before

Width:  |  Height:  |  Size: 406 B

After

Width:  |  Height:  |  Size: 406 B

View File

Before

Width:  |  Height:  |  Size: 677 B

After

Width:  |  Height:  |  Size: 677 B

View File

Before

Width:  |  Height:  |  Size: 463 B

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

View File

Before

Width:  |  Height:  |  Size: 556 B

After

Width:  |  Height:  |  Size: 556 B

View File

Before

Width:  |  Height:  |  Size: 556 B

After

Width:  |  Height:  |  Size: 556 B

View File

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 739 B

View File

Before

Width:  |  Height:  |  Size: 585 B

After

Width:  |  Height:  |  Size: 585 B

View File

Before

Width:  |  Height:  |  Size: 617 B

After

Width:  |  Height:  |  Size: 617 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 997 B

After

Width:  |  Height:  |  Size: 997 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Some files were not shown because too many files have changed in this diff Show More