mirror of
https://github.com/lrsjng/h5ai.git
synced 2025-09-10 13:10:39 +02:00
Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
2e179df6e5 | ||
|
8aed077297 | ||
|
89fd74c4ab | ||
|
5708b2e38e | ||
|
2407cd50ce | ||
|
fbcb8cb5e8 | ||
|
d822eb63e2 |
19
LICENSE.txt
Normal file
19
LICENSE.txt
Normal 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.
|
74
README.md
74
README.md
@@ -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
|
[h5ai](http://larsjung.de/h5ai) is provided under the terms of the MIT License.
|
||||||
|
It uses
|
||||||
<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://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
|
|
||||||
[HTML5 Boilerplate](http://html5boilerplate.com),
|
[HTML5 Boilerplate](http://html5boilerplate.com),
|
||||||
[jQuery](http://jquery.com),
|
[jQuery](http://jquery.com),
|
||||||
[Modernizr](http://www.modernizr.com) and
|
[Modernizr](http://www.modernizr.com) and
|
||||||
@@ -47,6 +17,34 @@ please respect their rights.
|
|||||||
|
|
||||||
## Changelog
|
## 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
|
### v0.9
|
||||||
*2011-07-18*
|
*2011-07-18*
|
||||||
|
|
||||||
|
@@ -3,7 +3,7 @@ custom = true
|
|||||||
|
|
||||||
# project
|
# project
|
||||||
project.name = h5ai
|
project.name = h5ai
|
||||||
project.version = 0.9
|
project.version = 0.11
|
||||||
|
|
||||||
|
|
||||||
# src
|
# src
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
# Options +FollowSymLinks
|
# Options +FollowSymLinks
|
||||||
|
|
||||||
|
|
||||||
<IfModule mod_headers.c>
|
<IfModule headers_module>
|
||||||
|
|
||||||
################################
|
################################
|
||||||
# cache images for 52 weeks
|
# cache images for 52 weeks
|
||||||
@@ -25,7 +25,13 @@
|
|||||||
# style auto index
|
# 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
|
# uncomment the following line to force directory listing
|
||||||
|
@@ -1,17 +1,31 @@
|
|||||||
|
|
||||||
#tree {
|
#tree {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
left: -200px;
|
|
||||||
display: none;
|
display: none;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
font-size: 0.85em;
|
font-size: 0.85em;
|
||||||
padding: 16px 32px 16px 16px;
|
padding: 16px 16px 16px 16px;
|
||||||
background-color: rgb(241,241,241);
|
background-color: rgb(241,241,241);
|
||||||
border: 2px solid rgb(210,210,210);
|
border: 2px solid rgb(210,210,210);
|
||||||
border-left: none;
|
border-left: none;
|
||||||
.border-radius ( 0 15px 15px 0 );
|
.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 {
|
.entry {
|
||||||
.blank, .indicator {
|
.blank, .indicator {
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
<img class="techclass" src="/h5ai/images/html5-storage.png" alt="html5-storage" />
|
<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://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>
|
<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>
|
<a href="http://tiheum.deviantart.com/art/Faenza-Icons-173323228" target="_blank" title="icon theme for Gnome">Faenza icons</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
@@ -50,7 +50,7 @@ var H5ai = function ( options, langs, pathCache ) {
|
|||||||
|
|
||||||
this.init = function () {
|
this.init = function () {
|
||||||
|
|
||||||
document.title = document.domain + decodeURI( document.location.pathname );
|
document.title = decodeURI( document.domain + document.location.pathname );
|
||||||
|
|
||||||
this.applyViewmode();
|
this.applyViewmode();
|
||||||
this.initBreadcrumb();
|
this.initBreadcrumb();
|
||||||
@@ -132,7 +132,7 @@ var H5ai = function ( options, langs, pathCache ) {
|
|||||||
var path = pathCache.getPathForFolder( pathname );
|
var path = pathCache.getPathForFolder( pathname );
|
||||||
$ul.append( path.updateCrumbHtml() );
|
$ul.append( path.updateCrumbHtml() );
|
||||||
|
|
||||||
var pathnameParts = decodeURI( document.location.pathname ).split( "/" );
|
var pathnameParts = document.location.pathname.split( "/" );
|
||||||
for ( idx in pathnameParts ) {
|
for ( idx in pathnameParts ) {
|
||||||
var part = pathnameParts[idx];
|
var part = pathnameParts[idx];
|
||||||
if ( part !== "" ) {
|
if ( part !== "" ) {
|
||||||
@@ -165,7 +165,10 @@ var H5ai = function ( options, langs, pathCache ) {
|
|||||||
|
|
||||||
$( "#tree" )
|
$( "#tree" )
|
||||||
.css( "top", "" + ( navHeight + treeSpacing ) + "px" )
|
.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 () {
|
$( window ).resize( function () {
|
||||||
@@ -227,15 +230,16 @@ var H5ai = function ( options, langs, pathCache ) {
|
|||||||
|
|
||||||
// entries
|
// entries
|
||||||
$( "#table td" ).closest( "tr" ).each( function () {
|
$( "#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() );
|
$ul.append( path.updateExtendedHtml() );
|
||||||
} );
|
} );
|
||||||
|
$( "#table" ).remove();
|
||||||
|
|
||||||
$( "#extended" ).append( $ul );
|
$( "#extended" ).append( $ul );
|
||||||
|
|
||||||
// empty
|
// empty
|
||||||
if ( $ul.children( ".entry:not(.parentfolder)" ).size() === 0 ) {
|
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
|
// 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 ) {
|
} else if ( browserLang.length > 2 && data[ browserLang.substr( 0, 2 ) ] !== undefined ) {
|
||||||
lang = browserLang.substr( 0, 2 );
|
lang = browserLang.substr( 0, 2 );
|
||||||
};
|
};
|
||||||
if ( lang === "en" ) {
|
|
||||||
lang = undefined;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if ( data[ lang ] !== undefined ) {
|
if ( lang !== "en" && data[ lang ] !== undefined ) {
|
||||||
var selected = data[ lang ];
|
var selected = data[ lang ];
|
||||||
for ( key in selected ) {
|
for ( key in selected ) {
|
||||||
$( ".l10n-" + key ).text( selected[key] );
|
$( ".l10n-" + key ).text( selected[key] );
|
||||||
|
11
src/h5ai/js/inc/jquery.mousewheel.min.js
vendored
Normal file
11
src/h5ai/js/inc/jquery.mousewheel.min.js
vendored
Normal 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);
|
@@ -28,7 +28,6 @@ var PathCache = function () {
|
|||||||
var path = this.objectToPath( obj );
|
var path = this.objectToPath( obj );
|
||||||
cache[path.absHref] = path;
|
cache[path.absHref] = path;
|
||||||
};
|
};
|
||||||
console.log( "loaded: ", cache );
|
|
||||||
return cache;
|
return cache;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -129,21 +128,21 @@ var Path = function ( pathCache, folder, tableRow ) {
|
|||||||
this.icon16 = $img.attr( "src" );
|
this.icon16 = $img.attr( "src" );
|
||||||
this.alt = $img.attr( "alt" );
|
this.alt = $img.attr( "alt" );
|
||||||
this.label = $a.text();
|
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.date = $tds.eq( 2 ).text();
|
||||||
this.size = $tds.eq( 3 ).text();
|
this.size = $tds.eq( 3 ).text();
|
||||||
} else {
|
} else {
|
||||||
var splits = pathCache.splitPathname( folder );
|
var splits = pathCache.splitPathname( folder );
|
||||||
|
|
||||||
this.parentFolder = splits[0];
|
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.icon16 = "/h5ai/icons/16x16/folder.png";
|
||||||
this.alt = "[DIR]";
|
this.alt = "[DIR]";
|
||||||
this.href = this.label;
|
|
||||||
this.date = "";
|
this.date = "";
|
||||||
this.size = "";
|
this.size = "";
|
||||||
if ( this.label === "/" ) {
|
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.isFolder = ( this.alt === "[DIR]" );
|
||||||
this.isParentFolder = ( this.isFolder && this.label === "Parent Directory" );
|
this.isParentFolder = ( this.isFolder && this.label === "Parent Directory" );
|
||||||
this.absHref = this.isParentFolder ? this.href : this.parentFolder + this.href;
|
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 === "/" );
|
this.isDomain = ( this.absHref === "/" );
|
||||||
|
|
||||||
if ( this.isParentFolder && h5ai.config.setParentFolderLabels ) {
|
if ( this.isParentFolder && h5ai.config.setParentFolderLabels ) {
|
||||||
if ( this.isDomain ) {
|
if ( this.isDomain ) {
|
||||||
this.label = decodeURI( document.domain );
|
this.label = decodeURI( document.domain );
|
||||||
} else {
|
} 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 {
|
try {
|
||||||
$html.addClass( this.isFolder ? "folder" : "file" );
|
$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.click( $.proxy( function() { this.onClick( "crumb" ); }, this ) );
|
||||||
$a.hover( $.proxy( function() { this.onHoverIn( "crumb" ); }, this ), $.proxy( function() { this.onHoverOut( "crumb" ); }, this ) );
|
$a.hover( $.proxy( function() { this.onHoverIn( "crumb" ); }, this ), $.proxy( function() { this.onHoverOut( "crumb" ); }, this ) );
|
||||||
$html.append( $a );
|
$html.append( $a );
|
||||||
|
|
||||||
if ( this.isDomain ) {
|
if ( this.isDomain ) {
|
||||||
$html.addClass( "domain" );
|
$html.addClass( "domain" );
|
||||||
$a.find( "img" ).attr( "src", "/h5ai/images/home.png" );
|
$a.find( "img" ).attr( "src", "/h5ai/images/home.png" );
|
||||||
};
|
};
|
||||||
|
|
||||||
if ( this.isCurrentFolder ) {
|
if ( this.isCurrentFolder ) {
|
||||||
$html.addClass( "current" );
|
$html.addClass( "current" );
|
||||||
};
|
};
|
||||||
|
|
||||||
if ( !isNaN( this.status ) ) {
|
if ( !isNaN( this.status ) ) {
|
||||||
if ( this.status === 200 ) {
|
if ( this.status === 200 ) {
|
||||||
$( "<img class='hint' src='/h5ai/images/page.png' alt='not listable' />" ).appendTo( $a );
|
$( "<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 ) {
|
} catch( err ) {
|
||||||
console.log( "updateCrumbHtml failed", err );
|
|
||||||
$( "<span class='fail'>failed</span>" ).appendTo( $html );
|
$( "<span class='fail'>failed</span>" ).appendTo( $html );
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -269,7 +268,8 @@ var Path = function ( pathCache, folder, tableRow ) {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$html.addClass( this.isFolder ? "folder" : "file" );
|
$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.click( $.proxy( function() { this.onClick( "extended" ); }, this ) );
|
||||||
$a.hover( $.proxy( function() { this.onHoverIn( "extended" ); }, this ), $.proxy( function() { this.onHoverOut( "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 ) {
|
} catch( err ) {
|
||||||
console.log( "updateExtendedHtml failed", err );
|
|
||||||
$( "<span class='fail'>failed</span>" ).appendTo( $html );
|
$( "<span class='fail'>failed</span>" ).appendTo( $html );
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -317,10 +316,11 @@ var Path = function ( pathCache, folder, tableRow ) {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$html.addClass( this.isFolder ? "folder" : "file" );
|
$html.addClass( this.isFolder ? "folder" : "file" );
|
||||||
var $a = $( "<a href='" + this.absHref + "' />" )
|
var $a = $( "<a />" )
|
||||||
.appendTo( $html )
|
.appendTo( $html )
|
||||||
.append( $( "<span class='icon'><img src='" + this.icon16 + "' /></span>" ) )
|
.append( $( "<span class='icon'><img src='" + this.icon16 + "' /></span>" ) )
|
||||||
.append( $( "<span class='label'>" + this.label + "</span>" ) );
|
.append( $( "<span class='label'>" + this.label + "</span>" ) );
|
||||||
|
$a.attr( "href", this.absHref );
|
||||||
$a.click( $.proxy( function() { this.onClick( "tree" ); }, this ) );
|
$a.click( $.proxy( function() { this.onClick( "tree" ); }, this ) );
|
||||||
$a.hover( $.proxy( function() { this.onHoverIn( "tree" ); }, this ), $.proxy( function() { this.onHoverOut( "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.status = status;
|
||||||
this.content = content;
|
this.content = content;
|
||||||
this.treeOpen = true;
|
this.treeOpen = true;
|
||||||
this.updateTreeHtml();
|
$( "#tree" ).get( 0 ).updateScrollbar( true );
|
||||||
|
this.updateTreeHtml( function() {
|
||||||
|
$( "#tree" ).get( 0 ).updateScrollbar();
|
||||||
|
} );
|
||||||
}, this ) );
|
}, this ) );
|
||||||
} else if ( $indicator.hasClass( "open" ) ) {
|
} else if ( $indicator.hasClass( "open" ) ) {
|
||||||
this.treeOpen = false;
|
this.treeOpen = false;
|
||||||
$indicator.removeClass( "open" );
|
$indicator.removeClass( "open" );
|
||||||
$html.find( "> ul.content" ).slideUp();
|
$( "#tree" ).get( 0 ).updateScrollbar( true );
|
||||||
|
$html.find( "> ul.content" ).slideUp( function() {
|
||||||
|
$( "#tree" ).get( 0 ).updateScrollbar();
|
||||||
|
} );
|
||||||
} else {
|
} else {
|
||||||
this.treeOpen = true;
|
this.treeOpen = true;
|
||||||
$indicator.addClass( "open" );
|
$indicator.addClass( "open" );
|
||||||
$html.find( "> ul.content" ).slideDown();
|
$( "#tree" ).get( 0 ).updateScrollbar( true );
|
||||||
|
$html.find( "> ul.content" ).slideDown( function() {
|
||||||
|
$( "#tree" ).get( 0 ).updateScrollbar();
|
||||||
|
} );
|
||||||
};
|
};
|
||||||
}, this ) );
|
}, this ) );
|
||||||
$blank.replaceWith( $indicator );
|
$blank.replaceWith( $indicator );
|
||||||
@@ -389,7 +398,6 @@ var Path = function ( pathCache, folder, tableRow ) {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
} catch( err ) {
|
} catch( err ) {
|
||||||
console.log( "updateTreeHtml failed", err );
|
|
||||||
$( "<span class='fail'>failed</span>" ).appendTo( $html );
|
$( "<span class='fail'>failed</span>" ).appendTo( $html );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -38,11 +38,19 @@ var Tree = function ( pathCache, h5ai ) {
|
|||||||
|
|
||||||
var $tree = $( "#tree" );
|
var $tree = $( "#tree" );
|
||||||
var $extended = $( "#extended" );
|
var $extended = $( "#extended" );
|
||||||
var shiftTree = function ( show ) {
|
var shiftTree = function ( forceVisible, dontAnimate ) {
|
||||||
if ( $tree.outerWidth() < $extended.offset().left || show === true ) {
|
if ( $tree.outerWidth() < $extended.offset().left || forceVisible === true ) {
|
||||||
$tree.stop().animate( { left: 0 } );
|
if ( dontAnimate === true ) {
|
||||||
|
$tree.stop().css( { left: 0 } );
|
||||||
|
} else {
|
||||||
|
$tree.stop().animate( { left: 0 } );
|
||||||
|
};
|
||||||
} else {
|
} 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();
|
shiftTree();
|
||||||
} );
|
} );
|
||||||
|
|
||||||
this.fetchTree( decodeURI( document.location.pathname ), function( path ) {
|
this.fetchTree( document.location.pathname, function( path ) {
|
||||||
$tree.append( path.updateTreeHtml() ).show();
|
$tree.append( path.updateTreeHtml() );
|
||||||
shiftTree();
|
$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();
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
( function( $ ) {
|
( function( $ ) {
|
||||||
|
|
||||||
// @include "inc/jquery.json.min.js"
|
// @include "inc/jquery.json.min.js"
|
||||||
|
// @include "inc/jquery.mousewheel.min.js"
|
||||||
// @include "inc/path.js"
|
// @include "inc/path.js"
|
||||||
// @include "inc/h5ai.js"
|
// @include "inc/h5ai.js"
|
||||||
// @include "inc/tree.js"
|
// @include "inc/tree.js"
|
||||||
@@ -23,15 +24,6 @@
|
|||||||
click: $.proxy( h5ai.pathClick, h5ai )
|
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
|
* init after dom load
|
||||||
*******************************/
|
*******************************/
|
||||||
@@ -39,6 +31,13 @@
|
|||||||
$( function() {
|
$( function() {
|
||||||
h5ai.init();
|
h5ai.init();
|
||||||
tree.init();
|
tree.init();
|
||||||
} );
|
|
||||||
|
|
||||||
|
// just for testing, resets the local cache /////////
|
||||||
|
$( ".l10n-footerUsing" ).click( function () {
|
||||||
|
pathCache.cache = {};
|
||||||
|
pathCache.storeCache();
|
||||||
|
} );
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
} );
|
||||||
|
|
||||||
} )( jQuery );
|
} )( jQuery );
|
@@ -80,7 +80,8 @@ h5aiLangs = {
|
|||||||
columnLastModified: "Last modified",
|
columnLastModified: "Last modified",
|
||||||
columnSize: "Size",
|
columnSize: "Size",
|
||||||
footerUsing: "using",
|
footerUsing: "using",
|
||||||
parentDirectory: "Parent Directory"
|
parentDirectory: "Parent Directory",
|
||||||
|
empty: "empty"
|
||||||
},
|
},
|
||||||
|
|
||||||
"de": {
|
"de": {
|
||||||
@@ -90,7 +91,8 @@ h5aiLangs = {
|
|||||||
columnLastModified: "Geändert",
|
columnLastModified: "Geändert",
|
||||||
columnSize: "Größe",
|
columnSize: "Größe",
|
||||||
footerUsing: "nutzt",
|
footerUsing: "nutzt",
|
||||||
parentDirectory: "Übergeordnetes Verzeichnis"
|
parentDirectory: "Übergeordnetes Verzeichnis",
|
||||||
|
empty: "leer"
|
||||||
},
|
},
|
||||||
|
|
||||||
"fr": {
|
"fr": {
|
||||||
@@ -100,7 +102,8 @@ h5aiLangs = {
|
|||||||
columnLastModified: "Dernière modification",
|
columnLastModified: "Dernière modification",
|
||||||
columnSize: "Taille",
|
columnSize: "Taille",
|
||||||
footerUsing: "utilise",
|
footerUsing: "utilise",
|
||||||
parentDirectory: "Dossier parent"
|
parentDirectory: "Dossier parent",
|
||||||
|
empty: "vide"
|
||||||
},
|
},
|
||||||
|
|
||||||
"nl": {
|
"nl": {
|
||||||
@@ -110,7 +113,8 @@ h5aiLangs = {
|
|||||||
columnLastModified: "Laatste wijziging",
|
columnLastModified: "Laatste wijziging",
|
||||||
columnSize: "Grootte",
|
columnSize: "Grootte",
|
||||||
footerUsing: "gebruikt",
|
footerUsing: "gebruikt",
|
||||||
parentDirectory: "Bovenliggende map"
|
parentDirectory: "Bovenliggende map",
|
||||||
|
empty: "lege"
|
||||||
},
|
},
|
||||||
|
|
||||||
"sv": {
|
"sv": {
|
||||||
@@ -120,7 +124,30 @@ h5aiLangs = {
|
|||||||
columnLastModified: "Senast ändrad",
|
columnLastModified: "Senast ändrad",
|
||||||
columnSize: "Filstorlek",
|
columnSize: "Filstorlek",
|
||||||
footerUsing: "använder",
|
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"
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
################################
|
################################
|
||||||
# h5ai 0.9
|
# h5ai 0.11
|
||||||
# customized .htaccess
|
# customized .htaccess
|
||||||
################################
|
################################
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
# Options +FollowSymLinks
|
# Options +FollowSymLinks
|
||||||
|
|
||||||
|
|
||||||
<IfModule mod_headers.c>
|
<IfModule headers_module>
|
||||||
|
|
||||||
################################
|
################################
|
||||||
# cache images for 52 weeks
|
# cache images for 52 weeks
|
||||||
@@ -25,7 +25,13 @@
|
|||||||
# style auto index
|
# 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
|
# uncomment the following line to force directory listing
|
||||||
@@ -56,7 +62,7 @@
|
|||||||
|
|
||||||
IndexOrderDefault Ascending Name
|
IndexOrderDefault Ascending Name
|
||||||
|
|
||||||
IndexOptions Type=text/html;h5ai=0.9
|
IndexOptions Type=text/html;h5ai=0.11
|
||||||
IndexOptions Charset=UTF-8
|
IndexOptions Charset=UTF-8
|
||||||
IndexOptions FancyIndexing
|
IndexOptions FancyIndexing
|
||||||
IndexOptions HTMLTable
|
IndexOptions HTMLTable
|
||||||
|
File diff suppressed because one or more lines are too long
@@ -11,7 +11,7 @@
|
|||||||
<img class="techclass" src="/h5ai/images/html5-storage.png" alt="html5-storage" />
|
<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://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>
|
<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>
|
<a href="http://tiheum.deviantart.com/art/Faenza-Icons-173323228" target="_blank" title="icon theme for Gnome">Faenza icons</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>Directory index · styled with h5ai</title>
|
<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="description" content="Directory index styled with h5ai (http://larsjung.de/h5ai)">
|
||||||
<meta name="keywords" content="directory, index, autoindex, h5ai">
|
<meta name="keywords" content="directory, index, autoindex, h5ai">
|
||||||
<link rel="shortcut icon" type="image/png" href="/h5ai/images/h5ai-16x16.png">
|
<link rel="shortcut icon" type="image/png" href="/h5ai/images/h5ai-16x16.png">
|
||||||
|
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* h5ai 0.9
|
* h5ai 0.11
|
||||||
* Options and localization
|
* Options and localization
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -80,7 +80,8 @@ h5aiLangs = {
|
|||||||
columnLastModified: "Last modified",
|
columnLastModified: "Last modified",
|
||||||
columnSize: "Size",
|
columnSize: "Size",
|
||||||
footerUsing: "using",
|
footerUsing: "using",
|
||||||
parentDirectory: "Parent Directory"
|
parentDirectory: "Parent Directory",
|
||||||
|
empty: "empty"
|
||||||
},
|
},
|
||||||
|
|
||||||
"de": {
|
"de": {
|
||||||
@@ -90,7 +91,8 @@ h5aiLangs = {
|
|||||||
columnLastModified: "Geändert",
|
columnLastModified: "Geändert",
|
||||||
columnSize: "Größe",
|
columnSize: "Größe",
|
||||||
footerUsing: "nutzt",
|
footerUsing: "nutzt",
|
||||||
parentDirectory: "Übergeordnetes Verzeichnis"
|
parentDirectory: "Übergeordnetes Verzeichnis",
|
||||||
|
empty: "leer"
|
||||||
},
|
},
|
||||||
|
|
||||||
"fr": {
|
"fr": {
|
||||||
@@ -100,7 +102,8 @@ h5aiLangs = {
|
|||||||
columnLastModified: "Dernière modification",
|
columnLastModified: "Dernière modification",
|
||||||
columnSize: "Taille",
|
columnSize: "Taille",
|
||||||
footerUsing: "utilise",
|
footerUsing: "utilise",
|
||||||
parentDirectory: "Dossier parent"
|
parentDirectory: "Dossier parent",
|
||||||
|
empty: "vide"
|
||||||
},
|
},
|
||||||
|
|
||||||
"nl": {
|
"nl": {
|
||||||
@@ -110,7 +113,8 @@ h5aiLangs = {
|
|||||||
columnLastModified: "Laatste wijziging",
|
columnLastModified: "Laatste wijziging",
|
||||||
columnSize: "Grootte",
|
columnSize: "Grootte",
|
||||||
footerUsing: "gebruikt",
|
footerUsing: "gebruikt",
|
||||||
parentDirectory: "Bovenliggende map"
|
parentDirectory: "Bovenliggende map",
|
||||||
|
empty: "lege"
|
||||||
},
|
},
|
||||||
|
|
||||||
"sv": {
|
"sv": {
|
||||||
@@ -120,7 +124,30 @@ h5aiLangs = {
|
|||||||
columnLastModified: "Senast ändrad",
|
columnLastModified: "Senast ändrad",
|
||||||
columnSize: "Filstorlek",
|
columnSize: "Filstorlek",
|
||||||
footerUsing: "använder",
|
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"
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
BIN
tools/scripp.jar
BIN
tools/scripp.jar
Binary file not shown.
Reference in New Issue
Block a user