diff --git a/.gitignore b/.gitignore
index 206365b2..498f0cf8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,10 +4,8 @@ build
build.local.*
release
-
-# Eclipse
-.classpath
-.ant-targets-*
+# Sublime
+*.sublime-*
# Numerous always-ignore extensions
*.diff
@@ -20,29 +18,3 @@ release
*.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
-
diff --git a/LICENSE.txt b/LICENSE.txt
index f16e3a99..bab9d95b 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,4 +1,4 @@
-Copyright (c) 2011 Lars Jung, http://larsjung.de
+Copyright (c) 2012 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
diff --git a/README.md b/README.md
index 644e8af5..d0ea6294 100644
--- a/README.md
+++ b/README.md
@@ -23,11 +23,34 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* [jQuery](http://jquery.com) (MIT/GPL)
* [jQuery.mousewheel](http://github.com/brandonaaron/jquery-mousewheel) (MIT)
* [modernizr](http://www.modernizr.com) (MIT/BSD)
+* [qrcode](http://www.d-project.com/qrcode/index.html) (MIT)
## Changelog
-### v0.17 · *2011-11-28*
+
+### v0.18 - *2012-02-24*
+
+* adds optional QRCode display
+* adds optional filtering for displayed files and folders
+* updates design
+* improves zipped download
+* adds support for zipped download of htaccess restricted files
+* changes h5ai.htaccess
+* custom headers/footers are now optional and disabled by default
+* fixes problems with folder recognition in the JS version
+* fixes include problems in PHP version
+* fixes path problems on servers running on Windows in PHP version
+* fixes broken links in custom headers/footers while zipped download enabled
+* fixes problems with thumbnails for files with single or double quotes in filename
+* improves url hashes
+* updates year in `LICENSE.TXT`
+* updates es translation
+* adds zh-tw translation by [Yao Wei](http://github.com/medicalwei)
+* updates zh-cn translation
+
+
+### v0.17 - *2011-11-28*
* h5ai is now located in `_h5ai` to reduce collisions
* switches from HTML5 Boilerplate reset to normalization
@@ -43,7 +66,7 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* adds support for use with userdir (requires some manual changes)
-### v0.16 · *2011-11-02*
+### v0.16 - *2011-11-02*
* sorts translations in `options.js`
* improves HTML head sections
@@ -57,25 +80,25 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* image thumbs and zipped download is disabled by default now, but works fine if PHP is configured
-### v0.15.2 · *2011-09-18*
+### v0.15.2 - *2011-09-18*
* added it translation by [Salvo Gentile](http://github.com/SalvoGentile) and [Marco Patriarca](http://github.com/Fexys)
* switched build process from scripp to wepp
-### v0.15.1 · *2011-09-06*
+### v0.15.1 - *2011-09-06*
* fixed security issues with the zipped download feature
* made zipped download optional (but enabled by default)
-### v0.15 · *2011-09-04*
+### v0.15 - *2011-09-04*
* added zipped download for selected files
* cleaned and refactored
-### v0.14.1 · *2011-09-01*
+### v0.14.1 - *2011-09-01*
* display meta information in bottom bar (icon view)
* added zh-cn translation by [Dongsheng Cai](http://github.com/dongsheng)
@@ -83,18 +106,18 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* added ru translation by Богдан Илюхин
-### v0.14 · *2011-08-16*
+### v0.14 - *2011-08-16*
* added image thumbnails for PHP version
* new option `slideTree` to turn off auto slide in
-### v0.13.2 · *2011-08-12*
+### v0.13.2 - *2011-08-12*
* changes in `/h5ai/.htaccess` ... PHP configuration ...
-### v0.13.1 · *2011-08-12*
+### v0.13.1 - *2011-08-12*
* ~~hopefully fixed that PHP doesn't get interpreted~~ :/
* fixed initial tree display
@@ -103,7 +126,7 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* added lv translation by Sandis Veinbergs
-### v0.13 · *2011-08-06*
+### v0.13 - *2011-08-06*
* added PHP implementation! (should work with PHP 5.2+)
* added new options
@@ -117,42 +140,42 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* added bg translation by George Andonov
-### v0.12.3 · *2011-07-30*
+### v0.12.3 - *2011-07-30*
* added tr translation by [Batuhan Icoz](http://github.com/batuhanicoz)
-### v0.12.2 · *2011-07-30*
+### v0.12.2 - *2011-07-30*
* added es translation by Jose David Calderon Serrano
-### v0.12.1 · *2011-07-29*
+### v0.12.1 - *2011-07-29*
* fixed unchecked use of console.log
-### v0.12 · *2011-07-28*
+### v0.12 - *2011-07-28*
* improved performance
-### v0.11 · *2011-07-27*
+### v0.11 - *2011-07-27*
* changed license to MIT license, see `LICENSE.txt`
-### v0.10.2 · *2011-07-26*
+### v0.10.2 - *2011-07-26*
* improved tree scrollbar
-### v0.10.1 · *2011-07-24*
+### v0.10.1 - *2011-07-24*
* fixed problems with ' in links
-### v0.10 · *2011-07-24*
+### 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))
@@ -161,7 +184,7 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* added "empty" to localization (hope Google Translate did a good job here)
-### v0.9 · *2011-07-18*
+### v0.9 - *2011-07-18*
* linked hover states between crumb, extended view and tree
* fixed size of tree view (now there's a ugly scrollbar, hopefully will be fixed)
@@ -172,7 +195,7 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* added sv translation by Oscar Carlsson
-### v0.8 · *2011-07-08*
+### v0.8 - *2011-07-08*
* removed slashes from folder labels
* optionally rename parent folder entries to real folder names, see `options.js`
@@ -181,19 +204,19 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* refactored js a lot (again...)
-### v0.7 · *2011-07-07*
+### v0.7 - *2011-07-07*
* removed shadows
* smarter tree side bar
-### v0.6 · *2011-07-05*
+### v0.6 - *2011-07-05*
* refactored js
* added localization, see `options.js`
-### v0.5.3 · *2011-07-04*
+### v0.5.3 - *2011-07-04*
* refactored js
* added basic options support via `options.js`
@@ -201,24 +224,24 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* optional tree sidebar
-### v0.5.2 · *2011-07-02*
+### v0.5.2 - *2011-07-02*
* details view adjusts to window width
* linked icon for *.gz and *.bz2
-### v0.5.1 · *2011-07-01*
+### v0.5.1 - *2011-07-01*
* disabled tree sidebar for now, since it had unwanted side effects
-### v0.5 · *2011-07-01*
+### v0.5 - *2011-07-01*
* added tree sidebar
* some refactorings
-### v0.4 · *2011-06-27*
+### v0.4 - *2011-06-27*
* added better fallback, in case JavaScript is disabled
* rewrote js, fixed middle-button click etc. problems
@@ -227,20 +250,20 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* updated dot.access
-### v0.3.2 · *2011-06-24*
+### v0.3.2 - *2011-06-24*
* removed lib versions from file names
* added 'empty' indicator for icons view
-### v0.3.1 · *2011-06-24*
+### v0.3.1 - *2011-06-24*
* refactored js
* added `folderClick` and `fileClick` callback hooks
* fixed .emtpy style
-### v0.3 · *2011-06-23*
+### 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
@@ -248,20 +271,20 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* updated jQuery to version 1.6.1
-### v0.2.3 · *2011-06-17*
+### v0.2.3 - *2011-06-17*
* more refactoring in main.js
* ~~added custom js support, and global includes~~ *removed, only custom top and bottom sections supported*
-### v0.2.2 · *2011-06-16*
+### v0.2.2 - *2011-06-16*
* refactored a lot, added some comments
* included fixes from [NumEricR](http://github.com/NumEricR)
* added top/bottom message support, only basicly styled
-### v0.2.1 · *2011-06-16*
+### v0.2.1 - *2011-06-16*
* fixed croped filenames
* fixed missing .png extension in header
@@ -269,7 +292,7 @@ h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h
* added changelog
-### v0.2 · *2011-06-15*
+### v0.2 - *2011-06-15*
* added icon view
diff --git a/build.properties b/build.properties
index 93189df2..d4865527 100644
--- a/build.properties
+++ b/build.properties
@@ -3,7 +3,7 @@ custom = true
# project
project.name = h5ai
-project.version = 0.17
+project.version = 0.18
# src
@@ -16,8 +16,6 @@ release.dir = release
# tools
-tool.wepp = tools/wepp
+tool.wepp = wepp
tool.jslint = jslint
-tool.jshint = jshint
-tool.jsxint.file = ${build.dir}/_h5ai/js/main-js.js
diff --git a/build.xml b/build.xml
index 864063e9..eadb4674 100644
--- a/build.xml
+++ b/build.xml
@@ -1,78 +1,116 @@
-
+
+
+
+
+
+
+ Build: ${build.label}
+
-
-
-
-
-
-
- Build: ${build.label}
-
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
- JSLint "${tool.jsxint.file}"
-
-
-
-
+
+
+
+
+
+
+
+
-
- JSHint "${tool.jsxint.file}"
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JSLint @{files}
+
+
+
+
+
diff --git a/src/_h5ai/.htaccess b/src/_h5ai/.htaccess
index 467dfb32..be958da7 100644
--- a/src/_h5ai/.htaccess
+++ b/src/_h5ai/.htaccess
@@ -1,5 +1,7 @@
+Options -Indexes
+
AddType text/html .php
@@ -19,17 +21,17 @@ AddType text/html .php
# cache images, css and js for 52 weeks
-
- Header set Cache-Control "max-age=31449600, public"
-
-
- Header set Cache-Control "max-age=31449600, public"
-
-
- Header set Cache-Control "max-age=31449600, public"
-
-
- Header set Cache-Control "max-age=31449600, public"
-
+
+ Header set Cache-Control "max-age=31449600, public"
+
+
+ Header set Cache-Control "max-age=31449600, public"
+
+
+ Header set Cache-Control "max-age=31449600, public"
+
+
+ Header set Cache-Control "max-age=31449600, public"
+
diff --git a/src/_h5ai/config.js b/src/_h5ai/config.js
index 0a004027..5b7705b1 100644
--- a/src/_h5ai/config.js
+++ b/src/_h5ai/config.js
@@ -7,405 +7,455 @@
var H5AI_CONFIG = {
- "options": {
+ "options": {
- /*
- * The absolute links to webroot and h5ai.
- * Do not change this unless you know what you are doing.
- */
- "rootAbsHref": "/",
- "h5aiAbsHref": "/_h5ai/",
+ /*
+ * The absolute links to webroot and h5ai.
+ * Do not change this unless you know what you are doing.
+ */
+ "rootAbsHref": "/",
+ "h5aiAbsHref": "/_h5ai/",
- /*
- * Filenames of customized header and footer files to look for
- * in each folder.
- */
- "customHeader": "_h5ai.header.html",
- "customFooter": "_h5ai.footer.html",
+ /*
+ * Filenames of customized header and footer files to look for
+ * in each folder. For Example:
+ *
+ * "customHeader": "_h5ai.header.html",
+ * "customFooter": "_h5ai.footer.html",
+ *
+ * This is disabled by default.
+ */
+ "customHeader": null,
+ "customFooter": null,
- /*
- * An array of view modes the user may choose from. Currently there
- * are two possible values: "details" and "icons". The first value
- * indicates the default view mode. If only one value is given the
- * view mode is fixed and the selector buttons are hidden.
- * The user selected view mode is also stored local in modern browsers
- * so that it will be persistent.
- */
- "viewmodes": ["details", "icons"],
+ /*
+ * An array of view modes the user may choose from. Currently there
+ * are two possible values: "details" and "icons". The first value
+ * indicates the default view mode. If only one value is given the
+ * view mode is fixed and the selector buttons are hidden.
+ * The user selected view mode is also stored local in modern browsers
+ * so that it will be persistent.
+ */
+ "viewmodes": ["details", "icons"],
- /*
- * Default sort order is a two letter code. The first letter specifies
- * the column: "n" for "Name", "d" for "Date" or "s" for "Size". The
- * second letter specifies the sort order: "a" for "ascending" or "d"
- * for "descending".
- */
- "sortorder": "na",
+ /*
+ * Default sort order is a two letter code. The first letter specifies
+ * the column: "n" for "Name", "d" for "Date" or "s" for "Size". The
+ * second letter specifies the sort order: "a" for "ascending" or "d"
+ * for "descending".
+ */
+ "sortorder": "na",
- /*
- * Show a folder tree, boolean.
- * Note that this tree might have side effects as it sends HEAD requests
- * to the folders, and therefore will invoke index.php scripts. Use
- * folderStatus below to avoid such requests.
- * It might also affect performance significantly.
- */
- "showTree": true,
+ /*
+ * Show a folder tree, boolean.
+ * Note that this tree might have side effects as it sends HEAD requests
+ * to the folders, and therefore will invoke index.php scripts. Use
+ * folderStatus below to avoid such requests.
+ * It might also affect performance significantly.
+ */
+ "showTree": true,
- /*
- * Slide tree bar into viewport if there is enough space, boolean.
- */
- "slideTree": true,
+ /*
+ * Slide tree bar into viewport if there is enough space, boolean.
+ */
+ "slideTree": true,
- /*
- * Associative array of folders and their HTTP status codes to
- * avoid HEAD requests to that folders. The key (folder) must start
- * and end with a slash (/).
- * For example:
- * "/some/folder/": 200
- * will always return HTTP status 200 (OK), which will be interpreted
- * as a non auto indexed folder, that means a folder containing an
- * appropriate default index file.
- */
- "folderStatus": {},
+ /*
+ * Associative array of folders and their HTTP status codes to
+ * avoid HEAD requests to that folders. The key (folder) must start
+ * and end with a slash (/).
+ * For example:
+ * "/some/folder/": 200
+ * will always return HTTP status 200 (OK), which will be interpreted
+ * as a non auto indexed folder, that means a folder containing an
+ * appropriate default index file.
+ */
+ "folderStatus": {},
- /*
- * Localization, for example "en", "de" etc. - see h5aiLangs below for
- * possible values. Adjust it to your needs. If lang is not found in
- * h5aiLangs it defaults to "en".
- */
- "lang": "en",
+ /*
+ * Localization, for example "en", "de" etc. - see h5aiLangs below for
+ * possible values. Adjust it to your needs. If lang is not found in
+ * h5aiLangs it defaults to "en".
+ */
+ "lang": "en",
- /*
- * Try to use browser language, falls back to previous specified lang.
- */
- "useBrowserLang": true,
+ /*
+ * Try to use browser language, falls back to previous specified lang.
+ */
+ "useBrowserLang": true,
- /*
- * Set parent folder labels to real folder names.
- */
- "setParentFolderLabels": true,
+ /*
+ * Set parent folder labels to real folder names.
+ */
+ "setParentFolderLabels": true,
- /*
- * Link the hover effects between crumb, extended view and tree.
- */
- "linkHoverStates": true,
+ /*
+ * Link the hover effects between crumb, extended view and tree.
+ */
+ "linkHoverStates": true,
- /*
- * Date format in detailed view, for example: "yyyy-MM-dd HH:mm:ss"
- * Syntax as specified by date.js
- * http://code.google.com/p/datejs/wiki/FormatSpecifiers
- */
- "dateFormat": "yyyy-MM-dd HH:mm",
+ /*
+ * Date format in detailed view, for example: "yyyy-MM-dd HH:mm:ss"
+ * Syntax as specified by date.js
+ * http://code.google.com/p/datejs/wiki/FormatSpecifiers
+ */
+ "dateFormat": "yyyy-MM-dd HH:mm",
- /*
- * Requires PHP on the server.
- * Show thumbnails for image files.
- */
- "showThumbs": false,
+ /*
+ * Requires PHP on the server.
+ * Show thumbnails for image files.
+ */
+ "showThumbs": true,
+ "thumbTypes": ["bmp", "gif", "ico", "image", "jpg", "png", "tiff"],
- /*
- * Requires PHP on the server.
- * Enable zipped download of selected entries.
- */
- "zippedDownload": false
- },
+ /*
+ * Requires PHP on the server.
+ * Enable zipped download of selected entries.
+ */
+ "zippedDownload": false,
+
+ /*
+ * Show QRCodes on hovering files.
+ * Set this to the desired size in pixel or null to not display QRCodes.
+ * A good size to start with might be 150.
+ */
+ "qrCodesSize": null,
+
+ /*
+ * Allow filtering the displayed files and folders.
+ * Filters are ment to be JavaScript regular expressions.
+ */
+ "showFilter": false
+ },
- /*
- * File types mapped to file extensions.
- */
- "types": {
- "archive": [".tar.bz2", ".tar.gz", ".tgz"],
- "audio": [".aif", ".m4a", ".mid", ".mp3", ".mpa", ".ra", ".ogg", ".wav", ".wma"],
- "authors": ["authors"],
- "bin": [".class", ".o", ".so"],
- "blank": [],
- "bmp": [".bmp"],
- "c": [".c"],
- "calc": [".ods", ".ots", ".xlr", ".xls", ".xlsx"],
- "cd": [".cue", ".iso"],
- "copying": ["copying", "license"],
- "cpp": [".cpp"],
- "css": [".css", ".less"],
- "deb": [".deb"],
- "default": [],
- "doc": [".doc", ".docx", ".odm", ".odt", ".ott"],
- "draw": [".drw"],
- "eps": [".eps"],
- "exe": [".exe"],
- "folder": [],
- "folder-home": [],
- "folder-open": [],
- "folder-page": [],
- "folder-parent": [],
- "gif": [".gif"],
- "gzip": [".gz"],
- "h": [".h"],
- "hpp": [".hpp"],
- "html": [".htm", ".html", ".shtml"],
- "ico": [".ico"],
- "image": [".xpm"],
- "install": ["install"],
- "java": [".java"],
- "jpg": [".jpg", ".jpeg"],
- "js": [".js", ".json"],
- "log": [".log", "changelog"],
- "makefile": [".pom", "build.xml", "pom.xml"],
- "package": [],
- "pdf": [".pdf"],
- "php": [".php"],
- "playlist": [".m3u"],
- "png": [".png"],
- "pres": [".odp", ".otp", ".pps", ".ppt", ".pptx"],
- "psd": [".psd"],
- "py": [".py"],
- "rar": [".rar"],
- "rb": [".rb"],
- "readme": ["readme"],
- "rpm": [".rpm"],
- "rss": [".rss"],
- "rtf": [".rtf"],
- "script": [".conf", ".csh", ".ini", ".ksh", ".sh", ".shar", ".tcl"],
- "source": [],
- "sql": [],
- "tar": [".tar"],
- "tex": [".tex"],
- "text": [".markdown", ".md", ".text", ".txt"],
- "tiff": [".tiff"],
- "unknown": [],
- "vcal": [".vcal"],
- "video": [".avi", ".flv", ".mov", ".mp4", ".mpg", ".rm", ".swf", ".vob", ".wmv"],
- "xml": [".xml"],
- "zip": [".bz2", ".jar", ".war", ".z", ".Z", ".zip"]
- },
+ /*
+ * File types mapped to file extensions.
+ */
+ "types": {
+ "archive": [".tar.bz2", ".tar.gz", ".tgz"],
+ "audio": [".aif", ".m4a", ".mid", ".mp3", ".mpa", ".ra", ".ogg", ".wav", ".wma"],
+ "authors": ["authors"],
+ "bin": [".class", ".o", ".so"],
+ "blank": [],
+ "bmp": [".bmp"],
+ "c": [".c"],
+ "calc": [".ods", ".ots", ".xlr", ".xls", ".xlsx"],
+ "cd": [".cue", ".iso"],
+ "copying": ["copying", "license"],
+ "cpp": [".cpp"],
+ "css": [".css", ".less"],
+ "deb": [".deb"],
+ "default": [],
+ "doc": [".doc", ".docx", ".odm", ".odt", ".ott"],
+ "draw": [".drw"],
+ "eps": [".eps"],
+ "exe": [".exe"],
+ "folder": [],
+ "folder-home": [],
+ "folder-open": [],
+ "folder-page": [],
+ "folder-parent": [],
+ "gif": [".gif"],
+ "gzip": [".gz"],
+ "h": [".h"],
+ "hpp": [".hpp"],
+ "html": [".htm", ".html", ".shtml"],
+ "ico": [".ico"],
+ "image": [".xpm"],
+ "install": ["install"],
+ "java": [".java"],
+ "jpg": [".jpg", ".jpeg"],
+ "js": [".js", ".json"],
+ "log": [".log", "changelog"],
+ "makefile": [".pom", "build.xml", "pom.xml"],
+ "package": [],
+ "pdf": [".pdf"],
+ "php": [".php"],
+ "playlist": [".m3u"],
+ "png": [".png"],
+ "pres": [".odp", ".otp", ".pps", ".ppt", ".pptx"],
+ "psd": [".psd"],
+ "py": [".py"],
+ "rar": [".rar"],
+ "rb": [".rb"],
+ "readme": ["readme"],
+ "rpm": [".rpm"],
+ "rss": [".rss"],
+ "rtf": [".rtf"],
+ "script": [".conf", ".csh", ".ini", ".ksh", ".sh", ".shar", ".tcl"],
+ "source": [],
+ "sql": [],
+ "tar": [".tar"],
+ "tex": [".tex"],
+ "text": [".markdown", ".md", ".text", ".txt"],
+ "tiff": [".tiff"],
+ "unknown": [],
+ "vcal": [".vcal"],
+ "video": [".avi", ".flv", ".mov", ".mp4", ".mpg", ".rm", ".swf", ".vob", ".wmv"],
+ "xml": [".xml"],
+ "zip": [".bz2", ".jar", ".war", ".z", ".Z", ".zip"]
+ },
- /*
- * Available translations.
- */
- "langs": {
+ /*
+ * Available translations.
+ */
+ "langs": {
- "en": {
- "lang": "english",
- "details": "details",
- "icons": "icons",
- "name": "Name",
- "lastModified": "Last modified",
- "size": "Size",
- "parentDirectory": "Parent Directory",
- "empty": "empty",
- "folders": "folders",
- "files": "files",
- "download": "download"
- },
+ "en": {
+ "lang": "english",
+ "details": "details",
+ "icons": "icons",
+ "name": "Name",
+ "lastModified": "Last modified",
+ "size": "Size",
+ "parentDirectory": "Parent Directory",
+ "empty": "empty",
+ "folders": "folders",
+ "files": "files",
+ "download": "download",
+ "noMatch": "no match"
+ },
- "bg": {
- "lang": "български",
- "details": "детайли",
- "icons": "икони",
- "name": "Име",
- "lastModified": "Последна промяна",
- "size": "Размер",
- "parentDirectory": "Предходна директория",
- "empty": "празно",
- "folders": "папки",
- "files": "файлове",
- "download": "download"
- },
+ "bg": {
+ "lang": "български",
+ "details": "детайли",
+ "icons": "икони",
+ "name": "Име",
+ "lastModified": "Последна промяна",
+ "size": "Размер",
+ "parentDirectory": "Предходна директория",
+ "empty": "празно",
+ "folders": "папки",
+ "files": "файлове",
+ "download": "download",
+ "noMatch": "no match"
+ },
- "cs": {
- "lang": "čeština",
- "details": "podrobnosti",
- "icons": "ikony",
- "name": "Název",
- "lastModified": "Upraveno",
- "size": "Velikost",
- "parentDirectory": "Nadřazený adresář",
- "empty": "prázdný",
- "folders": "složek",
- "files": "souborů",
- "download": "download"
- },
+ "cs": {
+ "lang": "čeština",
+ "details": "podrobnosti",
+ "icons": "ikony",
+ "name": "Název",
+ "lastModified": "Upraveno",
+ "size": "Velikost",
+ "parentDirectory": "Nadřazený adresář",
+ "empty": "prázdný",
+ "folders": "složek",
+ "files": "souborů",
+ "download": "download",
+ "noMatch": "no match"
+ },
- "de": {
- "lang": "deutsch",
- "details": "Details",
- "icons": "Icons",
- "name": "Name",
- "lastModified": "Geändert",
- "size": "Größe",
- "parentDirectory": "Übergeordnetes Verzeichnis",
- "empty": "leer",
- "folders": "Ordner",
- "files": "Dateien",
- "download": "Download"
- },
+ "de": {
+ "lang": "deutsch",
+ "details": "Details",
+ "icons": "Icons",
+ "name": "Name",
+ "lastModified": "Geändert",
+ "size": "Größe",
+ "parentDirectory": "Übergeordnetes Verzeichnis",
+ "empty": "leer",
+ "folders": "Ordner",
+ "files": "Dateien",
+ "download": "Download",
+ "noMatch": "keine Treffer"
+ },
- "es": {
- "lang": "español",
- "details": "Detalles",
- "icons": "Íconos",
- "name": "Nombre",
- "lastModified": "Última modificación",
- "size": "Tamaño",
- "parentDirectory": "Directorio superior",
- "empty": "vacío",
- "folders": "folders",
- "files": "files",
- "download": "download"
- },
+ "es": {
+ "lang": "español",
+ "details": "Detalles",
+ "icons": "Íconos",
+ "name": "Nombre",
+ "lastModified": "Última modificación",
+ "size": "Tamaño",
+ "parentDirectory": "Directorio superior",
+ "empty": "vacío",
+ "folders": "Directorios",
+ "files": "Archivos",
+ "download": "Descargar",
+ "noMatch": "no match"
+ },
- "fr": {
- "lang": "français",
- "details": "détails",
- "icons": "icônes",
- "name": "Nom",
- "lastModified": "Dernière modification",
- "size": "Taille",
- "parentDirectory": "Dossier parent",
- "empty": "vide",
- "folders": "Répertoires",
- "files": "Fichiers",
- "download": "télécharger"
- },
+ "fr": {
+ "lang": "français",
+ "details": "détails",
+ "icons": "icônes",
+ "name": "Nom",
+ "lastModified": "Dernière modification",
+ "size": "Taille",
+ "parentDirectory": "Dossier parent",
+ "empty": "vide",
+ "folders": "Répertoires",
+ "files": "Fichiers",
+ "download": "télécharger",
+ "noMatch": "no match"
+ },
- "it": {
- "lang": "italiano",
- "details": "dettagli",
- "icons": "icone",
- "name": "Nome",
- "lastModified": "Ultima modifica",
- "size": "Dimensione",
- "parentDirectory": "Cartella Superiore",
- "empty": "vuota",
- "folders": "cartelle",
- "files": "file",
- "download": "download"
- },
+ "it": {
+ "lang": "italiano",
+ "details": "dettagli",
+ "icons": "icone",
+ "name": "Nome",
+ "lastModified": "Ultima modifica",
+ "size": "Dimensione",
+ "parentDirectory": "Cartella Superiore",
+ "empty": "vuota",
+ "folders": "cartelle",
+ "files": "file",
+ "download": "download",
+ "noMatch": "no match"
+ },
- "lv": {
- "lang": "latviešu",
- "details": "detaļas",
- "icons": "ikonas",
- "name": "Nosaukums",
- "lastModified": "Pēdējoreiz modificēts",
- "size": "Izmērs",
- "parentDirectory": "Vecākdirektorijs",
- "empty": "tukšs",
- "folders": "mapes",
- "files": "faili",
- "download": "lejupielādēt"
- },
+ "lv": {
+ "lang": "latviešu",
+ "details": "detaļas",
+ "icons": "ikonas",
+ "name": "Nosaukums",
+ "lastModified": "Pēdējoreiz modificēts",
+ "size": "Izmērs",
+ "parentDirectory": "Vecākdirektorijs",
+ "empty": "tukšs",
+ "folders": "mapes",
+ "files": "faili",
+ "download": "lejupielādēt",
+ "noMatch": "no match"
+ },
- "nl": {
- "lang": "nederlands",
- "details": "details",
- "icons": "iconen",
- "name": "Naam",
- "lastModified": "Laatste wijziging",
- "size": "Grootte",
- "parentDirectory": "Bovenliggende map",
- "empty": "lege",
- "folders": "folders",
- "files": "files",
- "download": "download"
- },
+ "nl": {
+ "lang": "nederlands",
+ "details": "details",
+ "icons": "iconen",
+ "name": "Naam",
+ "lastModified": "Laatste wijziging",
+ "size": "Grootte",
+ "parentDirectory": "Bovenliggende map",
+ "empty": "lege",
+ "folders": "folders",
+ "files": "files",
+ "download": "download",
+ "noMatch": "no match"
+ },
- "pl": {
- "lang": "polski",
- "details": "szczegóły",
- "icons": "ikony",
- "name": "Nazwa",
- "lastModified": "Ostatnia modyfikacja",
- "size": "Rozmiar",
- "parentDirectory": "Katalog nadrzędny",
- "empty": "pusty",
- "folders": "foldery",
- "files": "pliki",
- "download": "download"
- },
+ "pl": {
+ "lang": "polski",
+ "details": "szczegóły",
+ "icons": "ikony",
+ "name": "Nazwa",
+ "lastModified": "Ostatnia modyfikacja",
+ "size": "Rozmiar",
+ "parentDirectory": "Katalog nadrzędny",
+ "empty": "pusty",
+ "folders": "foldery",
+ "files": "pliki",
+ "download": "download",
+ "noMatch": "no match"
+ },
- "pt": {
- "lang": "português",
- "details": "detalhes",
- "icons": "ícones",
- "name": "Nome",
- "lastModified": "Última modificação",
- "size": "Tamanho",
- "parentDirectory": "Diretório superior",
- "empty": "vazio",
- "folders": "pastas",
- "files": "arquivos",
- "download": "download"
- },
+ "pt": {
+ "lang": "português",
+ "details": "detalhes",
+ "icons": "ícones",
+ "name": "Nome",
+ "lastModified": "Última modificação",
+ "size": "Tamanho",
+ "parentDirectory": "Diretório superior",
+ "empty": "vazio",
+ "folders": "pastas",
+ "files": "arquivos",
+ "download": "download",
+ "noMatch": "no match"
+ },
- "ru": {
- "lang": "русский",
- "details": "детали",
- "icons": "иконки",
- "name": "Имя",
- "lastModified": "Последние изменения",
- "size": "Размер",
- "parentDirectory": "Главная директория",
- "empty": "пусто",
- "folders": "папки",
- "files": "файлы",
- "download": "download"
- },
+ "ru": {
+ "lang": "русский",
+ "details": "детали",
+ "icons": "иконки",
+ "name": "Имя",
+ "lastModified": "Последние изменения",
+ "size": "Размер",
+ "parentDirectory": "Главная директория",
+ "empty": "пусто",
+ "folders": "папки",
+ "files": "файлы",
+ "download": "download",
+ "noMatch": "no match"
+ },
- "sk": {
- "lang": "slovenčina",
- "details": "podrobnosti",
- "icons": "ikony",
- "name": "Názov",
- "lastModified": "Upravené",
- "size": "Velkosť",
- "parentDirectory": "Nadriadený priečinok",
- "empty": "prázdny",
- "folders": "priečinkov",
- "files": "súborov",
- "download": "download"
- },
+ "sk": {
+ "lang": "slovenčina",
+ "details": "podrobnosti",
+ "icons": "ikony",
+ "name": "Názov",
+ "lastModified": "Upravené",
+ "size": "Velkosť",
+ "parentDirectory": "Nadriadený priečinok",
+ "empty": "prázdny",
+ "folders": "priečinkov",
+ "files": "súborov",
+ "download": "download",
+ "noMatch": "no match"
+ },
- "sv": {
- "lang": "svenska",
- "details": "detaljerad",
- "icons": "ikoner",
- "name": "Filnamn",
- "lastModified": "Senast ändrad",
- "size": "Filstorlek",
- "parentDirectory": "Till överordnad mapp",
- "empty": "tom",
- "folders": "folders",
- "files": "files",
- "download": "download"
- },
+ "sv": {
+ "lang": "svenska",
+ "details": "detaljerad",
+ "icons": "ikoner",
+ "name": "Filnamn",
+ "lastModified": "Senast ändrad",
+ "size": "Filstorlek",
+ "parentDirectory": "Till överordnad mapp",
+ "empty": "tom",
+ "folders": "folders",
+ "files": "files",
+ "download": "download",
+ "noMatch": "no match"
+ },
- "tr": {
- "lang": "türkçe",
- "details": "detaylar",
- "icons": "ikonlar",
- "name": "İsim",
- "lastModified": "Son Düzenleme",
- "size": "Boyut",
- "parentDirectory": "Üst Dizin",
- "empty": "boş",
- "folders": "klasörler",
- "files": "dosyalar",
- "download": "indir"
- },
+ "tr": {
+ "lang": "türkçe",
+ "details": "detaylar",
+ "icons": "ikonlar",
+ "name": "İsim",
+ "lastModified": "Son Düzenleme",
+ "size": "Boyut",
+ "parentDirectory": "Üst Dizin",
+ "empty": "boş",
+ "folders": "klasörler",
+ "files": "dosyalar",
+ "download": "indir",
+ "noMatch": "no match"
+ },
- "zh-cn": {
- "lang": "简体中文",
- "details": "详情",
- "icons": "图标",
- "name": "文件名",
- "lastModified": "上次修改",
- "size": "大小",
- "parentDirectory": "上层文件夹",
- "empty": "空文件夹",
- "folders": "文件夹",
- "files": "文件",
- "download": "download"
- }
- }
+ "zh-cn": {
+ "lang": "简体中文",
+ "details": "详情",
+ "icons": "图标",
+ "name": "文件名",
+ "lastModified": "上次修改",
+ "size": "大小",
+ "parentDirectory": "上层文件夹",
+ "empty": "空文件夹",
+ "folders": "文件夹",
+ "files": "文件",
+ "download": "下载",
+ "noMatch": "no match"
+ },
+
+ "zh-tw": {
+ "lang": "正體中文",
+ "details": "詳細資料",
+ "icons": "圖示",
+ "name": "檔名",
+ "lastModified": "上次修改",
+ "size": "大小",
+ "parentDirectory": "上層目錄",
+ "empty": "空資料夾",
+ "folders": "資料夾",
+ "files": "檔案",
+ "download": "下載",
+ "noMatch": "no match"
+ }
+ }
};
diff --git a/src/_h5ai/config.php b/src/_h5ai/config.php
new file mode 100644
index 00000000..8ab74296
--- /dev/null
+++ b/src/_h5ai/config.php
@@ -0,0 +1,29 @@
+ safe_dirname(safe_dirname(__FILE__)),
+
+ /*
+ * Files/folders that should not be listed. Specified
+ * by the complete filename or by a regular expression.
+ * http://www.php.net/manual/en/function.preg-match.php
+ */
+ "IGNORE" => array(),
+ "IGNORE_PATTERNS" => array("/^\\./", "/^_h5ai/")
+
+);
+
+?>
\ No newline at end of file
diff --git a/src/_h5ai/css/inc/content.less b/src/_h5ai/css/inc/content.less
new file mode 100644
index 00000000..cd84d554
--- /dev/null
+++ b/src/_h5ai/css/inc/content.less
@@ -0,0 +1,18 @@
+
+#content {
+ max-width: 960px;
+ 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;
+ }
+}
diff --git a/src/_h5ai/css/inc/context.less b/src/_h5ai/css/inc/context.less
new file mode 100644
index 00000000..62db2474
--- /dev/null
+++ b/src/_h5ai/css/inc/context.less
@@ -0,0 +1,22 @@
+
+#context {
+ position: fixed;
+ z-index: 1;
+ display: none;
+ right: 16px;
+ bottom: 50px;
+
+ background-color: #fff;
+ border: 2px solid #ddd;
+ padding: 8px;
+
+ span {
+ display: block;
+ }
+
+ .qrcode {
+ canvas {
+ display: block;
+ }
+ }
+}
diff --git a/src/_h5ai/css/inc/extended.less b/src/_h5ai/css/inc/extended.less
index 7eaa140d..5ef2e69e 100644
--- a/src/_h5ai/css/inc/extended.less
+++ b/src/_h5ai/css/inc/extended.less
@@ -1,280 +1,285 @@
#extended.details-view {
- display: none;
+ display: none;
- ul {
- margin: 0;
- padding: 0;
- list-style: none;
+ ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
- li {
- position: relative;
- white-space: nowrap;
- clear: both;
+ li {
+ position: relative;
+ white-space: nowrap;
+ clear: both;
- &.header {
- a, a:active, a:visited {
- padding-bottom: 18px;
- color: #555;
- text-decoration: none;
- opacity: 0.4;
- cursor: pointer;
- .transition(all 0.2s ease-in-out);
+ &.header {
+ a, a:active, a:visited {
+ padding-bottom: 18px;
+ color: #555;
+ text-decoration: none;
+ opacity: 0.4;
+ cursor: pointer;
+ .transition(all 0.2s ease-in-out);
- img.ascending, img.descending {
- position: relative;
- top: -2px;
- display: none;
- width: 12px;
- height: 12px;
- padding: 0 8px;
- }
- &:hover {
- color: #555;
- opacity: 0.9;
- }
- &.ascending img.ascending {
- display: inline;
- }
- &.descending img.descending {
- display: inline;
- }
- }
- }
- &.entry {
+ img.ascending, img.descending {
+ position: relative;
+ top: -2px;
+ display: none;
+ width: 12px;
+ height: 12px;
+ padding: 0 8px;
+ }
+ &:hover {
+ color: #555;
+ opacity: 0.9;
+ }
+ &.ascending img.ascending {
+ display: inline;
+ }
+ &.descending img.descending {
+ display: inline;
+ }
+ }
+ }
+ &.entry {
- a, a:active, a:visited {
- display: block;
- color: #555;
- text-decoration: none;
- cursor: pointer;
- border-bottom: 1px solid #ddd;
+ a, a:active, a:visited {
+ display: block;
+ color: #555;
+ text-decoration: none;
+ cursor: pointer;
+ border-bottom: 1px solid #ddd;
- &:hover, &.hover {
- background-color: #f6f6f6;
- color: #e80;
- }
- &.selected:not(.selecting), &.selecting:not(.selected) {
- border-color: rgba(240,100,0,0.2);
- background-color: rgba(240,100,0,0.2);
- }
- }
- &.error {
- a, a:active, a:visited {
- color: #aaa;
+ &:hover, &.hover {
+ background-color: #f6f6f6;
+ color: #e80;
+ }
+ &.selected:not(.selecting), &.selecting:not(.selected) {
+ border-color: rgba(240,100,0,0.2);
+ background-color: rgba(240,100,0,0.2);
+ }
+ }
+ &.error {
+ a, a:active, a:visited {
+ color: #aaa;
- .label {
- .hint {
- margin-left: 12px;
- font-size: 0.9em;
- color: #c55;
- }
- }
- &:hover, &.hover {
- opacity: 1;
- background-color: #f6f6f6;
- color: #e80;
- }
- }
- }
- &.folder-parent {
- .date, .size {
- display: none;
- }
- }
- &.folder {
- .size {
- display: none;
- }
- }
- }
- .icon, .label, .date, .size {
- padding: 6px;
- }
- .icon {
- display: inline-block;
- position: absolute;
- left: 0;
- top: -2px;
- width: 16px;
+ .label {
+ .hint {
+ margin-left: 12px;
+ font-size: 0.9em;
+ color: #c55;
+ }
+ }
+ &:hover, &.hover {
+ opacity: 1;
+ background-color: #f6f6f6;
+ color: #e80;
+ }
+ }
+ }
+ &.folder-parent {
+ .date, .size {
+ display: none;
+ }
+ }
+ &.folder {
+ .size {
+ display: none;
+ }
+ }
+ }
+ .icon, .label, .date, .size {
+ padding: 6px;
+ }
+ .icon {
+ display: inline-block;
+ position: absolute;
+ left: 0;
+ top: -2px;
+ width: 16px;
- img {
- width: 16px;
- height: 16px;
- &.thumb {
- border: 1px solid #eee;
- }
- }
- }
- .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;
- }
- &.entry.thumb .icon.small {
- overflow: hidden;
- padding: 5px;
+ img {
+ width: 16px;
+ height: 16px;
+ &.thumb {
+ border: 1px solid #eee;
+ }
+ }
+ }
+ .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;
+ }
+ &.entry.thumb .icon.small {
+ overflow: hidden;
+ padding: 5px;
- img {
- background-color: #eee;
- width: 16px;
- height: 16px;
- border: 1px solid #ddd;
- overflow: hidden;
- }
- }
- }
- }
- .empty {
- text-align: center;
- margin: 50px 0;
- color: #ddd;
- font-size: 5em;
- font-weight: bold;
- }
+ img {
+ background-color: #eee;
+ width: 16px;
+ height: 16px;
+ border: 1px solid #ddd;
+ overflow: hidden;
+ }
+ }
+ }
+ }
+ .empty, .no-match {
+ text-align: center;
+ margin: 50px 0;
+ color: #ddd;
+ font-size: 5em;
+ font-weight: bold;
+ }
+ .no-match {
+ display: none;
+ }
}
#selection-rect {
- display: none;
- position: absolute;
- left: 0;
- top: 0;
- z-index: 2;
- border: 1px dashed rgba(240,100,0,0.5);
- background-color: rgba(240,100,0,0.2);
+ display: none;
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 2;
+ border: 1px dashed rgba(240,100,0,0.5);
+ background-color: rgba(240,100,0,0.2);
}
#extended.icons-view {
- display: none;
- padding: 3px;
- border: 1px solid #eee;
- border-radius: 15px;
+ display: none;
+ padding: 3px;
- ul {
- margin: 0;
- padding: 0;
- list-style: none;
+ ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
- li {
- &.header {
- display: none;
- }
- &.entry {
- float: left;
+ li {
+ &.header {
+ display: none;
+ }
+ &.entry {
+ float: left;
- a, a:active, a:visited {
- display: block;
- margin: 8px;
- padding: 8px;
- width: 100px;
- height: 120px;
- float: left;
- text-align: center;
- text-decoration: none;
- overflow: hidden;
- border-radius: 5px;
- color: #555;
- cursor: pointer;
- border: 2px solid rgba(0,0,0,0);
+ a, a:active, a:visited {
+ display: block;
+ margin: 8px;
+ padding: 8px;
+ width: 100px;
+ height: 120px;
+ float: left;
+ text-align: center;
+ text-decoration: none;
+ overflow: hidden;
+ border-radius: 5px;
+ color: #555;
+ cursor: pointer;
+ border: 2px solid rgba(0,0,0,0);
- &:hover, &.hover {
- color: #e80;
- border-color: #eee;
- background-color: #f6f6f6;
- }
- &.selected:not(.selecting), &.selecting:not(.selected) {
- border-color: rgba(240,100,0,0.2);
- background-color: rgba(240,100,0,0.2);
- }
- .icon {
- display: block;
+ &:hover, &.hover {
+ color: #e80;
+ border-color: #eee;
+ background-color: #f6f6f6;
+ }
+ &.selected:not(.selecting), &.selecting:not(.selected) {
+ border-color: rgba(240,100,0,0.2);
+ background-color: rgba(240,100,0,0.2);
+ }
+ .icon {
+ display: block;
- img {
- min-width: 48px;
- min-height: 48px;
- margin-bottom: 8px;
- &.thumb {
- border: 1px solid #eee;
- }
- }
- }
- .icon.small {
- display: none;
- }
- .label {
- display: block;
- word-wrap: break-word;
- }
- .date, .size {
- display: none;
- }
- }
- &.error {
- a, a:active, a:visited {
- color: #aaa;
- text-decoration: none;
+ img {
+ min-width: 48px;
+ min-height: 48px;
+ margin-bottom: 8px;
+ &.thumb {
+ border: 1px solid #eee;
+ }
+ }
+ }
+ .icon.small {
+ display: none;
+ }
+ .label {
+ display: block;
+ word-wrap: break-word;
+ }
+ .date, .size {
+ display: none;
+ }
+ }
+ &.error {
+ a, a:active, a:visited {
+ color: #aaa;
+ text-decoration: none;
- .label {
- .hint {
- padding: 0 6px;
- font-size: 0.9em;
- color: #c55;
- }
- }
- &:hover, &.hover {
- color: #e80;
- border-color: #eee;
- background-color: #f6f6f6;
- }
- }
- }
- }
- &.entry.thumb .icon.big {
- width: 100px;
- height: 58px;
- overflow: hidden;
+ .label {
+ .hint {
+ padding: 0 6px;
+ font-size: 0.9em;
+ color: #c55;
+ }
+ }
+ &:hover, &.hover {
+ color: #e80;
+ border-color: #eee;
+ background-color: #f6f6f6;
+ }
+ }
+ }
+ }
+ &.entry.thumb .icon.big {
+ width: 100px;
+ height: 58px;
+ overflow: hidden;
- img {
- background-color: #eee;
- min-width: 46px;
- min-height: 46px;
- min-width: 12px;
- min-height: 12px;
- border: 1px solid #ddd;
- overflow: hidden;
- }
- }
- }
- }
- .empty {
- padding: 16px;
- height: 120px;
- text-align: center;
- color: #ddd;
- font-size: 5em;
- font-weight: bold;
- }
+ img {
+ background-color: #eee;
+ min-width: 46px;
+ min-height: 46px;
+ min-width: 12px;
+ min-height: 12px;
+ border: 1px solid #ddd;
+ overflow: hidden;
+ }
+ }
+ }
+ }
+ .empty, .no-match {
+ margin: 0 120px;
+ padding: 16px;
+ height: 120px;
+ text-align: center;
+ color: #ddd;
+ font-size: 5em;
+ font-weight: bold;
+ }
+ .no-match {
+ display: none;
+ }
}
diff --git a/src/_h5ai/css/inc/footer.less b/src/_h5ai/css/inc/footer.less
new file mode 100644
index 00000000..02495140
--- /dev/null
+++ b/src/_h5ai/css/inc/footer.less
@@ -0,0 +1,108 @@
+
+body > footer {
+ position: fixed;
+ z-index: 5;
+ width: 100%;
+ left: 0;
+ bottom: 0;
+ padding: 6px 0 8px 0;
+ .vert-gradient(rgb(241,241,241), rgb(228,228,228));
+ border-top: 1px solid rgb(210,210,210);
+
+ color: #999;
+ font-size: 0.85em;
+ text-align: center;
+
+ a, a:active, a:visited {
+ color: #555;
+ text-decoration: none;
+ .transition(all 0.2s ease-in-out);
+ opacity: 0.7;
+
+ &:hover {
+ color: #e80;
+ opacity: 1;
+ }
+ }
+ .left {
+ display: block;
+ padding: 0 8px;
+ float: left
+ }
+ .center {
+ display: block;
+ margin: 0 100px;
+ }
+ .right {
+ display: block;
+ padding: 0 8px;
+ float: right
+ }
+ .noJsMsg {
+ color: #c33;
+ margin-left: 16px;
+ }
+ .status {
+ .sep {
+ display: inline-block;
+ padding: 0 6px;
+ }
+ &.default {
+ }
+ &.dynamic {
+ display: none;
+ }
+ }
+ #langSelector {
+ position: relative;
+ cursor: pointer;
+
+ .langOptions {
+ position: absolute;
+ z-index: 2;
+ overflow: auto;
+ display: none;
+ right: 0;
+ top: 0;
+ max-height: 200px;
+ background-color: rgb(241,241,241);
+ border: 1px solid rgb(210,210,210);
+
+ > .scrollbar {
+ margin: 0;
+ width: 6px;
+ background-color: rgb(210,210,210);
+
+ .drag {
+ background-color: rgb(180,180,180);
+ }
+ &.dragOn .drag {
+ background-color: rgb(150,150,150);
+ }
+ }
+
+ ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ text-align: left;
+
+ li {
+ padding: 8px 24px 10px 24px;
+ white-space: nowrap;
+ border-top: 1px solid rgb(231,231,231);
+ .transition(all 0.2s ease-in-out);
+
+ &.current {
+ color: #333;
+ background-color: rgba(255,255,255,0.8);
+ }
+ &:hover {
+ color: #e80;
+ background-color: rgba(255,255,255,0.8);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/_h5ai/css/inc/main.less b/src/_h5ai/css/inc/main.less
deleted file mode 100644
index d1228985..00000000
--- a/src/_h5ai/css/inc/main.less
+++ /dev/null
@@ -1,237 +0,0 @@
-
-@import "h5bp-norm";
-@import "mixins";
-
-
-html.js {
- .hideOnJs {
- display: none;
- }
-}
-html.no-js {
- .hideOnNoJs {
- display: none;
- }
-}
-
-
-body {
- font-family: Ubuntu, sans-serif;
- font-size: 16px;
- color: #555;
- background-color: #fff;
- margin: 80px 30px;
-}
-
-
-
-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;
- }
- a, a:active, a:visited {
- color: #555;
- cursor: pointer;
- text-decoration: none;
- opacity: 0.7;
- .transition(all 0.2s ease-in-out);
-
- display: block;
- height: 30px;
- line-height: 30px;
- padding: 0 10px;
-
- &:hover, &.hover {
- color: #e80;
- background-color: rgba(255,255,255,0.5);
- opacity: 1.0;
- }
- }
- .current a {
- background-color: rgba(255,255,255,0.5);
- opacity: 1.0;
- }
- img {
- position: relative;
- top: -2px;
- width: 16px;
- height: 16px;
- }
- img + span {
- margin-left: 6px;
- }
- .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;
- }
- }
- .view {
- float: right;
- border-left: 1px solid rgb(231,231,231);
- }
- #download {
- display: none;
- float: right;
- border-left: 1px solid rgb(231,231,231);
- }
-}
-
-
-#content {
- max-width: 960px;
- 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 "table";
-@import "extended";
-@import "tree";
-
-
-body > footer {
- position: fixed;
- z-index: 1;
- width: 100%;
- left: 0;
- bottom: 0;
- padding: 6px 0 8px 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:active, a:visited {
- color: #555;
- text-decoration: none;
- .transition(all 0.2s ease-in-out);
- opacity: 0.7;
-
- &:hover {
- color: #e80;
- opacity: 1;
- }
- }
- .left {
- display: block;
- padding: 0 8px;
- float: left
- }
- .center {
- display: block;
- margin: 0 100px;
- }
- .right {
- display: block;
- padding: 0 8px;
- float: right
- }
- .noJsMsg {
- color: #c33;
- margin-left: 16px;
- }
- .status {
- .sep {
- display: inline-block;
- padding: 0 6px;
- }
- &.default {
- }
- &.dynamic {
- display: none;
- }
- }
- #langSelector {
- position: relative;
- cursor: pointer;
-
- .langOptions {
- position: absolute;
- z-index: 2;
- overflow: auto;
- display: none;
- right: 0;
- top: 0;
- max-height: 200px;
- background-color: rgb(241,241,241);
- border: 1px solid rgb(210,210,210);
-
- > .scrollbar {
- margin: 0;
- width: 6px;
- background-color: rgb(210,210,210);
-
- .drag {
- background-color: rgb(180,180,180);
- }
- &.dragOn .drag {
- background-color: rgb(150,150,150);
- }
- }
-
- ul {
- margin: 0;
- padding: 0;
- list-style: none;
- text-align: left;
-
- li {
- padding: 8px 24px 10px 24px;
- white-space: nowrap;
- border-top: 1px solid rgb(231,231,231);
- .transition(all 0.2s ease-in-out);
-
- &.current {
- color: #333;
- background-color: rgba(255,255,255,0.8);
- }
- &:hover {
- color: #e80;
- background-color: rgba(255,255,255,0.8);
- }
- }
- li:nth-child(3n+1) {
-
- }
- }
- }
- }
-}
-
-@import "responsive";
-
diff --git a/src/_h5ai/css/inc/mixins.less b/src/_h5ai/css/inc/mixins.less
index 7bc06916..a9691734 100644
--- a/src/_h5ai/css/inc/mixins.less
+++ b/src/_h5ai/css/inc/mixins.less
@@ -1,38 +1,59 @@
+
.border-radius (@radius) {
- -moz-border-radius: @radius;
- -webkit-border-radius: @radius;
- border-radius: @radius;
+ -webkit-border-radius: @radius; /* Saf3-4, iOS 1-3.2, Android <1.6 */
+ -moz-border-radius: @radius; /* FF1-3.6 */
+ border-radius: @radius; /* Opera 10.5, IE9, Saf5, Chrome, FF4, iOS 4, Android 2.1+ */
+}
+
+
+.background-clip () {
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
}
.box-shadow (@shadow) {
- -moz-box-shadow: @shadow;
- -webkit-box-shadow: @shadow;
- box-shadow: @shadow;
+ -webkit-box-shadow: @shadow; /* Saf3-4 */
+ -moz-box-shadow: @shadow; /* FF3.5 - 3.6 */
+ box-shadow: @shadow; /* Opera 10.5, IE9, FF4+, Chrome 10+ */
}
.transition (@transition) {
- -moz-transition: @transition;
- -ms-transition: @transition;
- -o-transition: @transition;
- -webkit-transition: @transition;
- transition: @transition;
+ -webkit-transition: @transition; /* Saf3.2+, Chrome */
+ -moz-transition: @transition; /* FF4+ */
+ -ms-transition: @transition; /* IE10? */
+ -o-transition: @transition; /* Opera 10.5+ */
+ transition: @transition;
}
.transform (@transform) {
- -moz-transform: @transform;
- -o-transform: @transform;
- -webkit-transform: @transform;
- transform: @transform;
+ -webkit-transform: @transform; /* Saf3.1+, Chrome */
+ -moz-transform: @transform; /* FF3.5+ */
+ -ms-transform: @transform; /* IE9 */
+ -o-transform: @transform; /* Opera 10.5 */
+ transform: @transform;
+ zoom: 1;
+}
+
+
+.vert-gradient (@top, @bottom) {
+ background-color: @top;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(@top), to(@bottom)); /* Saf4+, Chrome */
+ background-image: -webkit-linear-gradient(top, @top, @bottom); /* Chrome 10+, Saf5.1+, iOS 5+ */
+ background-image: -moz-linear-gradient(top, @top, @bottom); /* FF3.6 */
+ background-image: -ms-linear-gradient(top, @top, @bottom); /* IE10 */
+ background-image: -o-linear-gradient(top, @top, @bottom); /* Opera 11.10+ */
+ background-image: linear-gradient(top, @top, @bottom);
}
.background-size (@size) {
- -moz-background-size: @size;
- -webkit-background-size: @size;
- background-size: @size;
+ -webkit-background-size: @size; /* Saf3-4 */
+ -moz-background-size: @size; /* FF3.6 */
+ background-size: @size; /* Opera, IE9, Saf5, Chrome, FF4 */
}
diff --git a/src/_h5ai/css/inc/nav.less b/src/_h5ai/css/inc/nav.less
new file mode 100644
index 00000000..89c4f580
--- /dev/null
+++ b/src/_h5ai/css/inc/nav.less
@@ -0,0 +1,135 @@
+
+.nav-highlight {
+ background-color: rgba(255,255,255,0.5);
+ opacity: 1.0;
+}
+
+.nav-hover {
+ .nav-highlight;
+ color: #e80;
+}
+
+@nav-sep-border: 1px solid rgba(0,0,0,0.05);
+
+.nav-left {
+ float: left;
+ border-right: @nav-sep-border;
+}
+
+.nav-right {
+ float: right;
+ border-left: @nav-sep-border;
+}
+
+body > nav {
+ position: fixed;
+ z-index: 5;
+ width: 100%;
+ left: 0;
+ top: 0;
+ font-size: 0.85em;
+ .vert-gradient(rgb(241,241,241), rgb(228,228,228));
+ border-bottom: 1px solid rgb(210,210,210);
+
+ span.jsDisabledFallback {
+ display: block;
+ height: 30px;
+ line-height: 30px;
+ padding: 0 10px;
+ color: #999;
+ }
+ a, a:active, a:visited, span.element {
+ color: #555;
+ cursor: pointer;
+ text-decoration: none;
+ opacity: 0.7;
+ .transition(all 0.2s ease-in-out);
+
+ display: block;
+ height: 30px;
+ line-height: 30px;
+ padding: 0 10px;
+
+ &:hover, &.hover {
+ .nav-hover;
+ }
+ }
+ .current {
+ a, span.element {
+ .nav-highlight;
+ }
+ }
+ img {
+ position: relative;
+ top: -2px;
+ width: 16px;
+ height: 16px;
+ }
+ img + span, img + input {
+ margin-left: 6px;
+ }
+ .crumb {
+ .nav-left;
+ .hint {
+ margin-left: 8px;
+ font-style: italic;
+ color: #999;
+ }
+ img.hint {
+ width: 10px;
+ height: 10px;
+ }
+ }
+ .view {
+ .nav-right;
+ }
+ #download {
+ display: none;
+ .nav-right;
+ .transition(all 0.2s ease-in-out);
+
+ &.failed {
+ background-color: rgba(255,0,0,0.5);
+ }
+ }
+ #filter {
+ .nav-right;
+
+ input {
+ display: none;
+ border: none;
+ font-family: Ubuntu, sans-serif;
+ color: #555;
+ background-color: rgba(0,0,0,0);
+ width: 100px;
+ }
+
+ &.current {
+ input {
+ display: inline;
+ }
+ }
+ }
+}
+
+
+#download-auth {
+ display: none;
+ position: fixed;
+ z-index: 5;
+ left: 0;
+ top: 0;
+ font-size: 0.85em;
+ .vert-gradient(rgb(241,241,241), rgb(228,228,228));
+ border: 1px solid rgb(210,210,210);
+
+ input {
+ display: block;
+ margin: 4px 6px;
+ border: 1px solid rgb(210,210,210);
+ font-family: Ubuntu, sans-serif;
+ color: #555;
+ background-color: rgba(255,255,255,1);
+ width: 100px;
+ }
+}
diff --git a/src/_h5ai/css/inc/responsive.less b/src/_h5ai/css/inc/responsive.less
index 7b38e320..ffe47861 100644
--- a/src/_h5ai/css/inc/responsive.less
+++ b/src/_h5ai/css/inc/responsive.less
@@ -1,36 +1,36 @@
@media only screen and (max-width: 500px) {
body > nav {
- .view span {
- display: none;
- }
+ .view span {
+ display: none;
+ }
}
#extended.icons-view {
- padding: 0;
- border: none;
- margin: 0 -14px;
+ padding: 0;
+ border: none;
+ margin: 0 -14px;
}
}
@media only screen and (max-width: 350px) {
body > nav {
- .crumb {
- display: none;
- }
- .current {
- display: block;
- }
+ .crumb {
+ display: none;
+ }
+ .current {
+ display: block;
+ }
}
#extended.details-view {
- .header .label, .entry .label {
- margin-right: 110px;
- }
- .header .date, .entry .date {
- display: none;
- }
+ .header .label, .entry .label {
+ margin-right: 110px;
+ }
+ .header .date, .entry .date {
+ display: none;
+ }
}
body > footer {
- .center {
- display: none;
- }
+ .center {
+ display: none;
+ }
}
}
diff --git a/src/_h5ai/css/inc/table.less b/src/_h5ai/css/inc/table.less
index 22881893..cfd5241b 100644
--- a/src/_h5ai/css/inc/table.less
+++ b/src/_h5ai/css/inc/table.less
@@ -1,68 +1,68 @@
#table {
- table {
- display: block;
- width: 100%;
- border-collapse: collapse;
+ 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);
+ 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;
+ &: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: 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;
- }
- }
+ 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;
+ }
+ }
}
diff --git a/src/_h5ai/css/inc/tree.less b/src/_h5ai/css/inc/tree.less
index b35b488f..6bd2e477 100644
--- a/src/_h5ai/css/inc/tree.less
+++ b/src/_h5ai/css/inc/tree.less
@@ -1,130 +1,129 @@
#tree {
- display: none;
- position: fixed;
- left: 0;
- top: 82px;
- z-index: 1;
- overflow: auto;
- font-size: 0.85em;
- padding: 8px;
- background-color: rgb(241,241,241);
- border: 1px solid rgb(210,210,210);
- border-left: none;
- .border-radius(0 10px 10px 0);
+ display: none;
+ position: fixed;
+ left: 0;
+ top: 31px;
+ height: 100%;
+ z-index: 3;
+ overflow: auto;
+ font-size: 0.85em;
+ padding: 8px;
+ background-color: rgb(241,241,241);
+ border-right: 2px solid rgb(221,221,221);
- > .scrollbar {
- margin: 8px 8px 8px 0;
- width: 6px;
- background-color: rgb(210,210,210);
- .border-radius(3px);
+ > .scrollbar {
+ margin: 8px 8px 8px 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);
- }
- }
+ .drag {
+ background-color: rgb(180,180,180);
+ .border-radius(3px);
+ }
+ &.dragOn .drag {
+ background-color: rgb(150,150,150);
+ }
+ }
- .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;
+ .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:active, > a.visited {
- margin-left: 16px;
- padding: 4px 6px;
- border: 1px solid rgba(0,0,0,0);
- .border-radius(5px);
- display: block;
- color: #555;
- text-decoration: none;
- opacity: 0.7;
+ &: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:active, > a.visited {
+ margin-left: 16px;
+ padding: 4px 6px;
+ border: 1px solid rgba(0,0,0,0);
+ .border-radius(5px);
+ display: block;
+ color: #555;
+ text-decoration: none;
+ opacity: 0.7;
- &:hover, &.hover {
- color: #e80;
- 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-size: 0.9em;
- color: #ccc;
- img {
- width: 10px;
- height: 10px;
- vertical-align: baseline;
- }
- }
- }
- &.file {
- display: none;
- }
- &.current {
- > a, > a:active, > a:visited {
- border: 1px solid rgb(221,221,221);
- background-color: rgba(255,255,255,0.5);
- opacity: 1;
- }
- }
- &.error {
- > a, > a:active, > a:visited {
- color: #999;
- &:hover, &.hover {
- color: #e80;
- }
- }
- .hint {
- color: #c55;
- }
- }
- .content, ul.content {
- list-style: none;
- margin: 0;
- padding: 0 0 0 24px;
- }
- }
+ &:hover, &.hover {
+ color: #e80;
+ 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-size: 0.9em;
+ color: #ccc;
+ img {
+ width: 10px;
+ height: 10px;
+ vertical-align: baseline;
+ }
+ }
+ }
+ &.file {
+ display: none;
+ }
+ &.current {
+ > a, > a:active, > a:visited {
+ border: 1px solid rgb(221,221,221);
+ background-color: rgba(255,255,255,0.5);
+ opacity: 1;
+ }
+ }
+ &.error {
+ > a, > a:active, > a:visited {
+ color: #999;
+ &:hover, &.hover {
+ color: #e80;
+ }
+ }
+ .hint {
+ color: #c55;
+ }
+ }
+ .content, ul.content {
+ list-style: none;
+ margin: 0;
+ padding: 0 0 0 24px;
+ }
+ }
}
diff --git a/src/_h5ai/css/main-js.less b/src/_h5ai/css/main-js.less
deleted file mode 100644
index fee495b4..00000000
--- a/src/_h5ai/css/main-js.less
+++ /dev/null
@@ -1,3 +0,0 @@
-
-@import "inc/main";
-
diff --git a/src/_h5ai/css/main-php.less b/src/_h5ai/css/main-php.less
deleted file mode 100644
index c6f9e34e..00000000
--- a/src/_h5ai/css/main-php.less
+++ /dev/null
@@ -1,17 +0,0 @@
-
-@import "inc/main";
-
-
-#table {
- display: none;
-}
-
-#tree, #content > header, #content > footer {
- display: block;
-}
-
-html.no-js {
- #extended.details-view, #extended.icons-view {
- display: block;
- }
-}
diff --git a/src/_h5ai/css/main.less b/src/_h5ai/css/main.less
new file mode 100644
index 00000000..a803f9cc
--- /dev/null
+++ b/src/_h5ai/css/main.less
@@ -0,0 +1,58 @@
+
+@import "inc/h5bp-norm";
+@import "inc/mixins";
+
+
+body {
+ font-family: Ubuntu, sans-serif;
+ font-size: 16px;
+ color: #555;
+ background-color: #fff;
+ margin: 80px 30px;
+}
+
+
+@import "inc/nav";
+@import "inc/content";
+@import "inc/table";
+@import "inc/extended";
+@import "inc/tree";
+@import "inc/context";
+@import "inc/footer";
+@import "inc/responsive";
+
+
+html.js {
+ .hideOnJs {
+ display: none;
+ }
+}
+html.no-js {
+ .hideOnNoJs {
+ display: none;
+ }
+}
+html.h5ai-js {
+ #h5ai-reference:after {
+ content: " (js)";
+ }
+}
+html.h5ai-php {
+ #h5ai-reference:after {
+ content: " (php)";
+ }
+
+ #table {
+ display: none;
+ }
+
+ #tree, #content > header, #content > footer {
+ display: block;
+ }
+
+ html.no-js {
+ #extended.details-view, #extended.icons-view {
+ display: block;
+ }
+ }
+}
diff --git a/src/_h5ai/footer.html b/src/_h5ai/footer.html
index 2a2a0e40..e1f65ffe 100644
--- a/src/_h5ai/footer.html
+++ b/src/_h5ai/footer.html
@@ -1,34 +1,31 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+