1
0
mirror of https://github.com/lrsjng/h5ai.git synced 2025-09-03 10:53:08 +02:00

Compare commits

..

7 Commits
v0.9 ... v0.11

Author SHA1 Message Date
Lars Jung
2e179df6e5 Changed license to MIT. 2011-07-27 02:25:00 +02:00
Lars Jung
8aed077297 Improved tree scrollbar. 2011-07-26 16:40:18 +02:00
Lars Jung
89fd74c4ab Fixed problems with ' in links 2011-07-24 18:05:44 +02:00
Lars Jung
5708b2e38e * fixed problems with XAMPP on Windows (see dot.htaccess comments for instructions)
* fixed tree fade-in-fade-out effect for small displays ([issue #6](http://github.com/lrsjng/h5ai/issues/6))
* added custom scrollbar to tree ([issue #6](http://github.com/lrsjng/h5ai/issues/6))
* fixed broken links caused by URI encoding/decoding ([issue #9](http://github.com/lrsjng/h5ai/issues/9))
* added "empty" to localization (hope Google Translate did a good job here)
2011-07-24 15:25:43 +02:00
Lars Jung
2407cd50ce Merge pull request #7 from MarcoSharper/master
Czech and Slovak translation
2011-07-19 11:46:04 -07:00
Marek Hrabe
fbcb8cb5e8 Added Slovak translation 2011-07-19 20:38:09 +02:00
Marek Hrabe
d822eb63e2 Added Czech translation 2011-07-19 20:33:03 +02:00
19 changed files with 359 additions and 110 deletions

19
LICENSE.txt Normal file
View File

@@ -0,0 +1,19 @@
Copyright (c) 2011 Lars Jung, http://larsjung.de
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,43 +1,13 @@
# h5ai v0.9   ·   a beautified Apache index
# h5ai v0.11   ·   a beautified Apache index
h5ai tries to make browsing files on a Apache HTTP server more comfortable. It makes use of the
built-in autoindex module of Apache and adds styles and functionality to the page generated by
this module.
For installation instructions and documentation have a look at the [project page](http://larsjung.de/h5ai).
There is also a [sample folder](http://larsjung.de/h5ai/sample).
## 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>
&#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>
## Live example
View a [sample folder](http://larsjung.de/h5ai/sample)
*(the files are all empty to save webspace)*
## Install
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.
## 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
[h5ai](http://larsjung.de/h5ai) is provided under the terms of the MIT License.
It uses
[HTML5 Boilerplate](http://html5boilerplate.com),
[jQuery](http://jquery.com),
[Modernizr](http://www.modernizr.com) and
@@ -47,6 +17,34 @@ please respect their rights.
## Changelog
### v0.11
*2011-07-27*
* changed license to MIT license, see `LICENSE.txt`
### v0.10.2
*2011-07-26*
* improved tree scrollbar
### v0.10.1
*2011-07-24*
* fixed problems with ' in links
### v0.10
*2011-07-24*
* fixed problems with XAMPP on Windows (see `dot.htaccess` comments for instructions)
* fixed tree fade-in-fade-out effect for small displays ([issue #6](http://github.com/lrsjng/h5ai/issues/6))
* added custom scrollbar to tree ([issue #6](http://github.com/lrsjng/h5ai/issues/6))
* fixed broken links caused by URI encoding/decoding ([issue #9](http://github.com/lrsjng/h5ai/issues/9))
* added "empty" to localization (hope Google Translate did a good job here)
### v0.9
*2011-07-18*

View File

@@ -3,7 +3,7 @@ custom = true
# project
project.name = h5ai
project.version = 0.9
project.version = 0.11
# src

View File

@@ -8,7 +8,7 @@
# Options +FollowSymLinks
<IfModule mod_headers.c>
<IfModule headers_module>
################################
# cache images for 52 weeks
@@ -25,7 +25,13 @@
# style auto index
################################
<IfModule mod_autoindex.c>
################################
# IMPORTANT FOR XAMPP
# if you're running XAMPP you might need to replace the
# following line with
# <IfModule autoindex_color_module>
################################
<IfModule autoindex_module>
################################
# uncomment the following line to force directory listing

View File

@@ -1,17 +1,31 @@
#tree {
position: fixed;
left: -200px;
display: none;
left: 0;
top: 0;
overflow: auto;
font-size: 0.85em;
padding: 16px 32px 16px 16px;
padding: 16px 16px 16px 16px;
background-color: rgb(241,241,241);
border: 2px solid rgb(210,210,210);
border-left: none;
.border-radius ( 0 15px 15px 0 );
> .scrollbar {
margin: 12px 12px 12px 0;
width: 6px;
background-color: rgb(210,210,210);
.border-radius( 3px );
.drag {
background-color: rgb(180,180,180);
.border-radius( 3px );
}
&.dragOn .drag {
background-color: rgb(150,150,150);
}
}
.entry {
.blank, .indicator {

View File

@@ -11,7 +11,7 @@
<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://larsjung.de/h5ai" target="_blank" title="h5ai %BUILD_VERSION%">h5ai %BUILD_VERSION%</a>
<a href="http://larsjung.de/h5ai" target="_blank" title="h5ai project page">h5ai %BUILD_VERSION%</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>

View File

@@ -50,7 +50,7 @@ var H5ai = function ( options, langs, pathCache ) {
this.init = function () {
document.title = document.domain + decodeURI( document.location.pathname );
document.title = decodeURI( document.domain + document.location.pathname );
this.applyViewmode();
this.initBreadcrumb();
@@ -132,7 +132,7 @@ var H5ai = function ( options, langs, pathCache ) {
var path = pathCache.getPathForFolder( pathname );
$ul.append( path.updateCrumbHtml() );
var pathnameParts = decodeURI( document.location.pathname ).split( "/" );
var pathnameParts = document.location.pathname.split( "/" );
for ( idx in pathnameParts ) {
var part = pathnameParts[idx];
if ( part !== "" ) {
@@ -165,7 +165,10 @@ var H5ai = function ( options, langs, pathCache ) {
$( "#tree" )
.css( "top", "" + ( navHeight + treeSpacing ) + "px" )
.css( "max-height", "" + ( winHeight - navHeight - footerHeight - 36 - 2 * treeSpacing ) + "px" );
.css( "height", "" + ( winHeight - navHeight - footerHeight - 36 - 2 * treeSpacing ) + "px" );
try {
$( "#tree" ).get( 0 ).updateScrollbar();
} catch ( err ) {};
};
$( window ).resize( function () {
@@ -227,15 +230,16 @@ var H5ai = function ( options, langs, pathCache ) {
// entries
$( "#table td" ).closest( "tr" ).each( function () {
var path = pathCache.getPathForTableRow( decodeURI( document.location.pathname ), this );
var path = pathCache.getPathForTableRow( document.location.pathname, this );
$ul.append( path.updateExtendedHtml() );
} );
$( "#table" ).remove();
$( "#extended" ).append( $ul );
// empty
if ( $ul.children( ".entry:not(.parentfolder)" ).size() === 0 ) {
$( "#extended" ).append( $( "<div class='empty'>empty</div>" ) );
$( "#extended" ).append( $( "<div class='empty l10n-empty'>empty</div>" ) );
};
// in case of floats
@@ -303,12 +307,9 @@ var H5ai = function ( options, langs, pathCache ) {
} else if ( browserLang.length > 2 && data[ browserLang.substr( 0, 2 ) ] !== undefined ) {
lang = browserLang.substr( 0, 2 );
};
if ( lang === "en" ) {
lang = undefined;
};
};
if ( data[ lang ] !== undefined ) {
if ( lang !== "en" && data[ lang ] !== undefined ) {
var selected = data[ lang ];
for ( key in selected ) {
$( ".l10n-" + key ).text( selected[key] );

View File

@@ -0,0 +1,11 @@
/* Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
*
* Version: 3.0.2
*
* Requires: 1.2.2+
*/
(function(c){var a=["DOMMouseScroll","mousewheel"];c.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var d=a.length;d;){this.addEventListener(a[--d],b,false)}}else{this.onmousewheel=b}},teardown:function(){if(this.removeEventListener){for(var d=a.length;d;){this.removeEventListener(a[--d],b,false)}}else{this.onmousewheel=null}}};c.fn.extend({mousewheel:function(d){return d?this.bind("mousewheel",d):this.trigger("mousewheel")},unmousewheel:function(d){return this.unbind("mousewheel",d)}});function b(f){var d=[].slice.call(arguments,1),g=0,e=true;f=c.event.fix(f||window.event);f.type="mousewheel";if(f.wheelDelta){g=f.wheelDelta/120}if(f.detail){g=-f.detail/3}d.unshift(f,g);return c.event.handle.apply(this,d)}})(jQuery);

View File

@@ -28,7 +28,6 @@ var PathCache = function () {
var path = this.objectToPath( obj );
cache[path.absHref] = path;
};
console.log( "loaded: ", cache );
return cache;
};
@@ -129,21 +128,21 @@ var Path = function ( pathCache, folder, tableRow ) {
this.icon16 = $img.attr( "src" );
this.alt = $img.attr( "alt" );
this.label = $a.text();
this.href = decodeURI( $a.attr("href") );
this.href = $a.attr("href"); //decodeURI( $a.attr("href") );
this.date = $tds.eq( 2 ).text();
this.size = $tds.eq( 3 ).text();
} else {
var splits = pathCache.splitPathname( folder );
this.parentFolder = splits[0];
this.label = splits[1];
this.href = splits[1];
this.label = decodeURI( splits[1] );
this.icon16 = "/h5ai/icons/16x16/folder.png";
this.alt = "[DIR]";
this.href = this.label;
this.date = "";
this.size = "";
if ( this.label === "/" ) {
this.label = document.domain + "/";
this.label = decodeURI( document.domain ) + "/";
};
};
@@ -155,14 +154,14 @@ var Path = function ( pathCache, folder, tableRow ) {
this.isFolder = ( this.alt === "[DIR]" );
this.isParentFolder = ( this.isFolder && this.label === "Parent Directory" );
this.absHref = this.isParentFolder ? this.href : this.parentFolder + this.href;
this.isCurrentFolder = ( this.absHref === decodeURI( document.location.pathname ) );
this.isCurrentFolder = ( this.absHref === document.location.pathname );
this.isDomain = ( this.absHref === "/" );
if ( this.isParentFolder && h5ai.config.setParentFolderLabels ) {
if ( this.isDomain ) {
this.label = decodeURI( document.domain );
} else {
this.label = pathCache.splitPathname( pathCache.splitPathname( this.parentFolder )[0] )[1].slice( 0, -1 );
this.label = decodeURI( pathCache.splitPathname( pathCache.splitPathname( this.parentFolder )[0] )[1].slice( 0, -1 ) );
};
};
@@ -228,20 +227,21 @@ var Path = function ( pathCache, folder, tableRow ) {
try {
$html.addClass( this.isFolder ? "folder" : "file" );
var $a = $( "<a href='" + this.absHref + "'><img src='/h5ai/images/crumb.png' alt='>' />" + this.label + "</a>" );
var $a = $( "<a><img src='/h5ai/images/crumb.png' alt='>' />" + this.label + "</a>" );
$a.attr( "href", this.absHref );
$a.click( $.proxy( function() { this.onClick( "crumb" ); }, this ) );
$a.hover( $.proxy( function() { this.onHoverIn( "crumb" ); }, this ), $.proxy( function() { this.onHoverOut( "crumb" ); }, this ) );
$html.append( $a );
if ( this.isDomain ) {
$html.addClass( "domain" );
$a.find( "img" ).attr( "src", "/h5ai/images/home.png" );
};
if ( this.isCurrentFolder ) {
$html.addClass( "current" );
};
if ( !isNaN( this.status ) ) {
if ( this.status === 200 ) {
$( "<img class='hint' src='/h5ai/images/page.png' alt='not listable' />" ).appendTo( $a );
@@ -250,7 +250,6 @@ var Path = function ( pathCache, folder, tableRow ) {
};
};
} catch( err ) {
console.log( "updateCrumbHtml failed", err );
$( "<span class='fail'>failed</span>" ).appendTo( $html );
};
@@ -269,7 +268,8 @@ var Path = function ( pathCache, folder, tableRow ) {
try {
$html.addClass( this.isFolder ? "folder" : "file" );
var $a = $( "<a href='" + this.href + "' />" ).appendTo( $html );
var $a = $( "<a />" ).appendTo( $html );
$a.attr( "href", this.absHref );
$a.click( $.proxy( function() { this.onClick( "extended" ); }, this ) );
$a.hover( $.proxy( function() { this.onHoverIn( "extended" ); }, this ), $.proxy( function() { this.onHoverOut( "extended" ); }, this ) );
@@ -297,7 +297,6 @@ var Path = function ( pathCache, folder, tableRow ) {
};
};
} catch( err ) {
console.log( "updateExtendedHtml failed", err );
$( "<span class='fail'>failed</span>" ).appendTo( $html );
};
@@ -317,10 +316,11 @@ var Path = function ( pathCache, folder, tableRow ) {
try {
$html.addClass( this.isFolder ? "folder" : "file" );
var $a = $( "<a href='" + this.absHref + "' />" )
var $a = $( "<a />" )
.appendTo( $html )
.append( $( "<span class='icon'><img src='" + this.icon16 + "' /></span>" ) )
.append( $( "<span class='label'>" + this.label + "</span>" ) );
$a.attr( "href", this.absHref );
$a.click( $.proxy( function() { this.onClick( "tree" ); }, this ) );
$a.hover( $.proxy( function() { this.onHoverIn( "tree" ); }, this ), $.proxy( function() { this.onHoverOut( "tree" ); }, this ) );
@@ -339,16 +339,25 @@ var Path = function ( pathCache, folder, tableRow ) {
this.status = status;
this.content = content;
this.treeOpen = true;
this.updateTreeHtml();
$( "#tree" ).get( 0 ).updateScrollbar( true );
this.updateTreeHtml( function() {
$( "#tree" ).get( 0 ).updateScrollbar();
} );
}, this ) );
} else if ( $indicator.hasClass( "open" ) ) {
this.treeOpen = false;
$indicator.removeClass( "open" );
$html.find( "> ul.content" ).slideUp();
$( "#tree" ).get( 0 ).updateScrollbar( true );
$html.find( "> ul.content" ).slideUp( function() {
$( "#tree" ).get( 0 ).updateScrollbar();
} );
} else {
this.treeOpen = true;
$indicator.addClass( "open" );
$html.find( "> ul.content" ).slideDown();
$( "#tree" ).get( 0 ).updateScrollbar( true );
$html.find( "> ul.content" ).slideDown( function() {
$( "#tree" ).get( 0 ).updateScrollbar();
} );
};
}, this ) );
$blank.replaceWith( $indicator );
@@ -389,7 +398,6 @@ var Path = function ( pathCache, folder, tableRow ) {
};
};
} catch( err ) {
console.log( "updateTreeHtml failed", err );
$( "<span class='fail'>failed</span>" ).appendTo( $html );
};

View File

@@ -38,11 +38,19 @@ var Tree = function ( pathCache, h5ai ) {
var $tree = $( "#tree" );
var $extended = $( "#extended" );
var shiftTree = function ( show ) {
if ( $tree.outerWidth() < $extended.offset().left || show === true ) {
$tree.stop().animate( { left: 0 } );
var shiftTree = function ( forceVisible, dontAnimate ) {
if ( $tree.outerWidth() < $extended.offset().left || forceVisible === true ) {
if ( dontAnimate === true ) {
$tree.stop().css( { left: 0 } );
} else {
$tree.stop().animate( { left: 0 } );
};
} else {
$tree.stop().animate( { left: 18 - $tree.outerWidth() } );
if ( dontAnimate === true ) {
$tree.stop().css( { left: 18 - $tree.outerWidth() } );
} else {
$tree.stop().animate( { left: 18 - $tree.outerWidth() } );
};
};
};
@@ -51,9 +59,11 @@ var Tree = function ( pathCache, h5ai ) {
shiftTree();
} );
this.fetchTree( decodeURI( document.location.pathname ), function( path ) {
$tree.append( path.updateTreeHtml() ).show();
shiftTree();
this.fetchTree( document.location.pathname, function( path ) {
$tree.append( path.updateTreeHtml() );
$tree.show();
scrollpanel( $tree );
shiftTree( false, true );
} );
};
@@ -151,4 +161,127 @@ var Tree = function ( pathCache, h5ai ) {
}
} );
};
var scrollpanel = function ( htmlElement ) {
var $element = $( htmlElement );
if ( $element.css( "position" ) === undefined || $element.css( "position" ) === "static" ) {
$element.css( "position", "relative" );
};
var $scrollbar = $( "<div class='scrollbar' />" );
var $drag = $( "<div class='drag' />" ).appendTo( $scrollbar );
$element
.wrapInner( "<div class='wrapper'><div class='content' /></div>" )
.append( $scrollbar );
var $wrapper = $element.find( "> .wrapper" );
var $content = $wrapper.find( "> .content" );
var mouseOffsetY = 0;
var updateId = undefined;
var update = function ( repeat ) {
if ( updateId !== undefined && !repeat ) {
clearInterval( updateId );
updateId = undefined;
} else if ( updateId === undefined && repeat ) {
updateId = setInterval( function() { update( true ); }, 50 );
};
$wrapper.css( "height", $element.height() );
var visibleHeight = $element.height();
var contentHeight = $content.outerHeight();
var scrollTop = $wrapper.scrollTop();
var scrollTopFrac = scrollTop / contentHeight;
var visVertFrac = Math.min( visibleHeight / contentHeight, 1 );
if ( visVertFrac < 1 ) {
$scrollbar
.fadeIn( 50 )
.css( {
height: $element.innerHeight() + $scrollbar.height() - $scrollbar.outerHeight( true )
} );
$drag
.css( {
top: $scrollbar.height() * scrollTopFrac,
height: $scrollbar.height() * visVertFrac
} );
} else {
$scrollbar.fadeOut( 50 );
};
};
var scroll = function ( event ) {
var clickFrac = ( event.pageY - $scrollbar.offset().top - mouseOffsetY ) / $scrollbar.height();
$wrapper.scrollTop( $content.outerHeight() * clickFrac );
update();
};
$element
.mousewheel( function ( event, delta) {
$wrapper.scrollTop( $wrapper.scrollTop() - 50 * delta );
update();
event.stopPropagation();
event.preventDefault();
} )
.scroll( update );
$element.get( 0 ).updateScrollbar = update;
$wrapper
.css( {
"padding-right": $scrollbar.outerWidth( true ),
height: $element.height(),
overflow: "hidden"
} );
$scrollbar
.css( {
position: "absolute",
top: 0,
right: 0,
overflow: "hidden"
} )
.mousedown( function ( event ) {
mouseOffsetY = $drag.outerHeight() / 2;
scroll( event );
$scrollbar.addClass( "dragOn" );
$( window )
.bind( "mousemove", scroll )
.one( "mouseup", function ( event ) {
$scrollbar.removeClass( "dragOn" );
$( window ).unbind( "mousemove", scroll );
scroll( event );
event.stopPropagation();
} );
event.stopPropagation();
} )
.attr( "unselectable", "on" )
.css( "-moz-user-select", "none" )
.each( function () {
this.onselectstart = function () {
return false;
};
} );
$drag
.css( {
position: "absolute",
left: 0,
width: "100%"
} )
.mousedown( function ( event ) {
mouseOffsetY = event.pageY - $drag.offset().top;
scroll( event );
$scrollbar.addClass( "dragOn" );
$( window )
.bind( "mousemove", scroll )
.one( "mouseup", function ( event ) {
$scrollbar.removeClass( "dragOn" );
$( window ).unbind( "mousemove", scroll );
scroll( event );
event.stopPropagation();
} );
event.stopPropagation();
} );
update();
};
};

View File

@@ -1,6 +1,7 @@
( function( $ ) {
// @include "inc/jquery.json.min.js"
// @include "inc/jquery.mousewheel.min.js"
// @include "inc/path.js"
// @include "inc/h5ai.js"
// @include "inc/tree.js"
@@ -23,15 +24,6 @@
click: $.proxy( h5ai.pathClick, h5ai )
};
$( ".l10n-footerUsing" ).click( function () {
console.log( "clean" );
pathCache.cache = {};
console.log( "store" );
pathCache.storeCache();
console.log( "load", pathCache.loadCache() );
} );
/*******************************
* init after dom load
*******************************/
@@ -39,6 +31,13 @@
$( function() {
h5ai.init();
tree.init();
} );
// just for testing, resets the local cache /////////
$( ".l10n-footerUsing" ).click( function () {
pathCache.cache = {};
pathCache.storeCache();
} );
/////////////////////////////////////////////////////
} );
} )( jQuery );

View File

@@ -80,7 +80,8 @@ h5aiLangs = {
columnLastModified: "Last modified",
columnSize: "Size",
footerUsing: "using",
parentDirectory: "Parent Directory"
parentDirectory: "Parent Directory",
empty: "empty"
},
"de": {
@@ -90,7 +91,8 @@ h5aiLangs = {
columnLastModified: "Geändert",
columnSize: "Größe",
footerUsing: "nutzt",
parentDirectory: "Übergeordnetes Verzeichnis"
parentDirectory: "Übergeordnetes Verzeichnis",
empty: "leer"
},
"fr": {
@@ -100,7 +102,8 @@ h5aiLangs = {
columnLastModified: "Dernière modification",
columnSize: "Taille",
footerUsing: "utilise",
parentDirectory: "Dossier parent"
parentDirectory: "Dossier parent",
empty: "vide"
},
"nl": {
@@ -110,7 +113,8 @@ h5aiLangs = {
columnLastModified: "Laatste wijziging",
columnSize: "Grootte",
footerUsing: "gebruikt",
parentDirectory: "Bovenliggende map"
parentDirectory: "Bovenliggende map",
empty: "lege"
},
"sv": {
@@ -120,7 +124,30 @@ h5aiLangs = {
columnLastModified: "Senast ändrad",
columnSize: "Filstorlek",
footerUsing: "använder",
parentDirectory: "Till överordnad mapp"
}
parentDirectory: "Till överordnad mapp",
empty: "tom"
},
"cs": {
viewDetails: "podrobnosti",
viewIcons: "ikony",
columnName: "Název",
columnLastModified: "Upraveno",
columnSize: "Velikost",
footerUsing: "používá",
parentDirectory: "Nadřazený adresář",
empty: "prázdný"
},
"sk": {
viewDetails: "podrobnosti",
viewIcons: "ikony",
columnName: "Názov",
columnLastModified: "Upravené",
columnSize: "Velkosť",
footerUsing: "používá",
parentDirectory: "Nadriadený priečinok",
empty: "prázdny"
}
};

View File

@@ -1,5 +1,5 @@
################################
# h5ai 0.9
# h5ai 0.11
# customized .htaccess
################################
@@ -8,7 +8,7 @@
# Options +FollowSymLinks
<IfModule mod_headers.c>
<IfModule headers_module>
################################
# cache images for 52 weeks
@@ -25,7 +25,13 @@
# style auto index
################################
<IfModule mod_autoindex.c>
################################
# IMPORTANT FOR XAMPP
# if you're running XAMPP you might need to replace the
# following line with
# <IfModule autoindex_color_module>
################################
<IfModule autoindex_module>
################################
# uncomment the following line to force directory listing
@@ -56,7 +62,7 @@
IndexOrderDefault Ascending Name
IndexOptions Type=text/html;h5ai=0.9
IndexOptions Type=text/html;h5ai=0.11
IndexOptions Charset=UTF-8
IndexOptions FancyIndexing
IndexOptions HTMLTable

File diff suppressed because one or more lines are too long

View File

@@ -11,7 +11,7 @@
<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://larsjung.de/h5ai" target="_blank" title="h5ai 0.9">h5ai 0.9</a>
<a href="http://larsjung.de/h5ai" target="_blank" title="h5ai project page">h5ai 0.11</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>

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>Directory index · styled with h5ai</title>
<meta name="h5ai-version" content="h5ai 0.9">
<meta name="h5ai-version" content="h5ai 0.11">
<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">

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
/*
* h5ai 0.9
* h5ai 0.11
* Options and localization
*/
@@ -80,7 +80,8 @@ h5aiLangs = {
columnLastModified: "Last modified",
columnSize: "Size",
footerUsing: "using",
parentDirectory: "Parent Directory"
parentDirectory: "Parent Directory",
empty: "empty"
},
"de": {
@@ -90,7 +91,8 @@ h5aiLangs = {
columnLastModified: "Geändert",
columnSize: "Größe",
footerUsing: "nutzt",
parentDirectory: "Übergeordnetes Verzeichnis"
parentDirectory: "Übergeordnetes Verzeichnis",
empty: "leer"
},
"fr": {
@@ -100,7 +102,8 @@ h5aiLangs = {
columnLastModified: "Dernière modification",
columnSize: "Taille",
footerUsing: "utilise",
parentDirectory: "Dossier parent"
parentDirectory: "Dossier parent",
empty: "vide"
},
"nl": {
@@ -110,7 +113,8 @@ h5aiLangs = {
columnLastModified: "Laatste wijziging",
columnSize: "Grootte",
footerUsing: "gebruikt",
parentDirectory: "Bovenliggende map"
parentDirectory: "Bovenliggende map",
empty: "lege"
},
"sv": {
@@ -120,7 +124,30 @@ h5aiLangs = {
columnLastModified: "Senast ändrad",
columnSize: "Filstorlek",
footerUsing: "använder",
parentDirectory: "Till överordnad mapp"
}
parentDirectory: "Till överordnad mapp",
empty: "tom"
},
"cs": {
viewDetails: "podrobnosti",
viewIcons: "ikony",
columnName: "Název",
columnLastModified: "Upraveno",
columnSize: "Velikost",
footerUsing: "používá",
parentDirectory: "Nadřazený adresář",
empty: "prázdný"
},
"sk": {
viewDetails: "podrobnosti",
viewIcons: "ikony",
columnName: "Názov",
columnLastModified: "Upravené",
columnSize: "Velkosť",
footerUsing: "používá",
parentDirectory: "Nadriadený priečinok",
empty: "prázdny"
}
};

Binary file not shown.