Initial add

master
bkraul 2019-07-23 14:56:52 -05:00
commit 4aef6cb4f1
76 changed files with 11628 additions and 0 deletions

28
alpine/Dockerfile Normal file
View File

@ -0,0 +1,28 @@
FROM webdevops/php-nginx:alpine
MAINTAINER Belman Kraul <bkraul@belmankraul.com>
# set up initial vars
ENV \
ELFINDER_RELEASE="2.1.49" \
ELFINDER_USER="admin" \
ELFINDER_PASS="admin"
RUN set -x \
&& curl -L -O "https://github.com/Studio-42/elFinder/archive/${ELFINDER_RELEASE}.tar.gz" \
&& tar -xvf ${ELFINDER_RELEASE}.tar.gz --strip 1 -C /app \
&& rm -rf ${ELFINDER_RELEASE}.tar.gz \
&& rm -rf /app/*.html \
&& rm -ff /app/*.js \
&& chown -R ${APPLICATION_UID}:${APPLICATION_GID} /app \
&& rm -rf /app/files \
&& ln -s /data /app/files \
&& docker-run-bootstrap \
&& docker-image-cleanup
COPY ./custom/app/ /app/
RUN set -x \
&& chown -R ${APPLICATION_UID}:${APPLICATION_GID} /app
VOLUME /data

7
alpine/build Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
docker pull webdevops/php-nginx:alpine
docker build $1\
-t bkraul/elfinder:alpine \
-t bkraul/elfinder:alpine-2.1.49 \
.

View File

@ -0,0 +1,81 @@
<?php
session_start();
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] != true) {
header('Location: ./login.html');
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<title>elFinder 2.1.x</title>
<!-- Require JS (REQUIRED) -->
<!-- Rename "main.default.js" to "main.js" and edit it if you need configure elFInder options or any things -->
<script data-main="./main.js" src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js"></script>
<script>
define('elFinderConfig', {
// elFinder options (REQUIRED)
// Documentation for client options:
// https://github.com/Studio-42/elFinder/wiki/Client-configuration-options
defaultOpts : {
height: '100%',
resizable: false,
url : 'php/connector.minimal.php' // connector URL (REQUIRED)
,commandsOptions : {
edit : {
extraOptions : {
// set API key to enable Creative Cloud image editor
// see https://console.adobe.io/
creativeCloudApiKey : '',
// browsing manager URL for CKEditor, TinyMCE
// uses self location with the empty value
managerUrl : ''
}
}
,quicklook : {
// to enable CAD-Files and 3D-Models preview with sharecad.org
sharecadMimes : ['image/vnd.dwg', 'image/vnd.dxf', 'model/vnd.dwf', 'application/vnd.hp-hpgl', 'application/plt', 'application/step', 'model/iges', 'application/vnd.ms-pki.stl', 'application/sat', 'image/cgm', 'application/x-msmetafile'],
// to enable preview with Google Docs Viewer
googleDocsMimes : ['application/pdf', 'image/tiff', 'application/vnd.ms-office', 'application/msword', 'application/vnd.ms-word', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/postscript', 'application/rtf'],
// to enable preview with Microsoft Office Online Viewer
// these MIME types override "googleDocsMimes"
officeOnlineMimes : ['application/vnd.ms-office', 'application/msword', 'application/vnd.ms-word', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.presentation']
}
}
// bootCalback calls at before elFinder boot up
,bootCallback : function(fm, extraObj) {
/* any bind functions etc. */
fm.bind('init', function() {
// any your code
});
// for example set document.title dynamically.
var title = document.title;
fm.bind('open', function() {
var path = '',
cwd = fm.cwd();
if (cwd) {
path = fm.path(cwd.hash) || null;
}
document.title = path? path + ':' + title : title;
}).bind('destroy', function() {
document.title = title;
});
}
},
managers : {
// 'DOM Element ID': { /* elFinder options of this DOM Element */ }
'elfinder': {}
}
});
</script>
</head>
<body>
<!-- Element where elFinder will be created (REQUIRED) -->
<div id="elfinder"></div>
</body>
</html>

View File

@ -0,0 +1,51 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap Simple Login Form</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<style type="text/css">
.login-form {
width: 340px;
margin: 50px auto;
}
.login-form form {
margin-bottom: 15px;
background: #f7f7f7;
box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
padding: 30px;
}
.login-form h2 {
margin: 0 0 15px;
}
.form-control, .btn {
min-height: 38px;
border-radius: 2px;
}
.btn {
font-size: 15px;
font-weight: bold;
}
</style>
</head>
<body>
<div class="login-form">
<form action="session.php?mode=login" method="post">
<h2 class="text-center">Log In</h2>
<div class="form-group">
<input type="text" class="form-control" placeholder="Username" required="required" name="user">
</div>
<div class="form-group">
<input type="password" class="form-control" placeholder="Password" required="required" name="pass">
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block">Log in</button>
</div>
</form>
</div>
</body>
</html>

160
alpine/custom/app/main.js Normal file
View File

@ -0,0 +1,160 @@
/**
* elFinder client options and main script for RequireJS
*
* Rename "main.default.js" to "main.js" and edit it if you need configure elFInder options or any things. And use that in elfinder.html.
* e.g. `<script data-main="./main.js" src="./require.js"></script>`
**/
(function(){
"use strict";
var // jQuery and jQueryUI version
jqver = '3.3.1',
uiver = '1.12.1',
// Detect language (optional)
lang = (function() {
var locq = window.location.search,
fullLang, locm, lang;
if (locq && (locm = locq.match(/lang=([a-zA-Z_-]+)/))) {
// detection by url query (?lang=xx)
fullLang = locm[1];
} else {
// detection by browser language
fullLang = (navigator.browserLanguage || navigator.language || navigator.userLanguage);
}
lang = fullLang.substr(0,2);
if (lang === 'pt') lang = 'pt_BR';
else if (lang === 'ug') lang = 'ug_CN';
else if (lang === 'zh') lang = (fullLang.substr(0,5).toLowerCase() === 'zh-tw')? 'zh_TW' : 'zh_CN';
return lang;
})(),
// Start elFinder (REQUIRED)
start = function(elFinder, editors, config) {
// load jQueryUI CSS
elFinder.prototype.loadCss('//cdnjs.cloudflare.com/ajax/libs/jqueryui/'+uiver+'/themes/smoothness/jquery-ui.css');
$(function() {
var optEditors = {
commandsOptions: {
edit: {
editors: Array.isArray(editors)? editors : []
}
}
},
opts = {};
// Interpretation of "elFinderConfig"
if (config && config.managers) {
$.each(config.managers, function(id, mOpts) {
opts = Object.assign(opts, config.defaultOpts || {});
// editors marges to opts.commandOptions.edit
try {
mOpts.commandsOptions.edit.editors = mOpts.commandsOptions.edit.editors.concat(editors || []);
} catch(e) {
Object.assign(mOpts, optEditors);
}
// Make elFinder
$('#' + id).elfinder(
// 1st Arg - options
$.extend(true, { lang: lang }, opts, mOpts || {}),
// 2nd Arg - before boot up function
function(fm, extraObj) {
// `init` event callback function
fm.bind('init', function() {
// Optional for Japanese decoder "encoding-japanese"
if (fm.lang === 'ja') {
require(
[ 'encoding-japanese' ],
function(Encoding) {
if (Encoding && Encoding.convert) {
fm.registRawStringDecoder(function(s) {
return Encoding.convert(s, {to:'UNICODE',type:'string'});
});
}
}
);
}
});
}
);
});
} else {
alert('"elFinderConfig" object is wrong.');
}
});
},
// JavaScript loader (REQUIRED)
load = function() {
require(
[
'elfinder'
, 'extras/editors.default.min' // load text, image editors
, 'elFinderConfig'
// , 'extras/quicklook.googledocs.min' // optional preview for GoogleApps contents on the GoogleDrive volume
],
start,
function(error) {
alert(error.message);
}
);
},
// is IE8 or :? for determine the jQuery version to use (optional)
old = (typeof window.addEventListener === 'undefined' && typeof document.getElementsByClassName === 'undefined')
||
(!window.chrome && !document.unqueID && !window.opera && !window.sidebar && 'WebkitAppearance' in document.documentElement.style && document.body.style && typeof document.body.style.webkitFilter === 'undefined');
// config of RequireJS (REQUIRED)
require.config({
baseUrl : 'js',
paths : {
'jquery' : '//cdnjs.cloudflare.com/ajax/libs/jquery/'+(old? '1.12.4' : jqver)+'/jquery.min',
'jquery-ui': '//cdnjs.cloudflare.com/ajax/libs/jqueryui/'+uiver+'/jquery-ui.min',
'elfinder' : 'elfinder.min',
'encoding-japanese': '//cdn.rawgit.com/polygonplanet/encoding.js/1.0.26/encoding.min'
},
waitSeconds : 10 // optional
});
// check elFinderConfig and fallback
// This part don't used if you are using elfinder.html, see elfinder.html
if (! require.defined('elFinderConfig')) {
define('elFinderConfig', {
// elFinder options (REQUIRED)
// Documentation for client options:
// https://github.com/Studio-42/elFinder/wiki/Client-configuration-options
defaultOpts : {
url : 'php/connector.minimal.php' // connector URL (REQUIRED)
,commandsOptions : {
edit : {
extraOptions : {
// set API key to enable Creative Cloud image editor
// see https://console.adobe.io/
creativeCloudApiKey : '',
// browsing manager URL for CKEditor, TinyMCE
// uses self location with the empty value
managerUrl : ''
}
}
,quicklook : {
// to enable CAD-Files and 3D-Models preview with sharecad.org
sharecadMimes : ['image/vnd.dwg', 'image/vnd.dxf', 'model/vnd.dwf', 'application/vnd.hp-hpgl', 'application/plt', 'application/step', 'model/iges', 'application/vnd.ms-pki.stl', 'application/sat', 'image/cgm', 'application/x-msmetafile'],
// to enable preview with Google Docs Viewer
googleDocsMimes : ['application/pdf', 'image/tiff', 'application/vnd.ms-office', 'application/msword', 'application/vnd.ms-word', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/postscript', 'application/rtf'],
// to enable preview with Microsoft Office Online Viewer
// these MIME types override "googleDocsMimes"
officeOnlineMimes : ['application/vnd.ms-office', 'application/msword', 'application/vnd.ms-word', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.presentation']
}
}
},
managers : {
'elfinder': {},
}
});
}
// load JavaScripts (REQUIRED)
load();
})();

View File

@ -0,0 +1,152 @@
<?php
error_reporting(0); // Set E_ALL for debuging
// // To Enable(true) handling of PostScript files by ImageMagick
// // It is disabled by default as a countermeasure
// // of Ghostscript multiple -dSAFER sandbox bypass vulnerabilities
// // see https://www.kb.cert.org/vuls/id/332928
// define('ELFINDER_IMAGEMAGICK_PS', true);
// ===============================================
// load composer autoload before load elFinder autoload If you need composer
//require './vendor/autoload.php';
// elFinder autoload
require './autoload.php';
// ===============================================
// Enable FTP connector netmount
elFinder::$netDrivers['ftp'] = 'FTP';
// ===============================================
// // Required for Dropbox network mount
// // Installation by composer
// // `composer require kunalvarma05/dropbox-php-sdk`
// // Enable network mount
// elFinder::$netDrivers['dropbox2'] = 'Dropbox2';
// // Dropbox2 Netmount driver need next two settings. You can get at https://www.dropbox.com/developers/apps
// // AND reuire regist redirect url to "YOUR_CONNECTOR_URL?cmd=netmount&protocol=dropbox2&host=1"
// define('ELFINDER_DROPBOX_APPKEY', '');
// define('ELFINDER_DROPBOX_APPSECRET', '');
// ===============================================
// // Required for Google Drive network mount
// // Installation by composer
// // `composer require google/apiclient:^2.0`
// // Enable network mount
// elFinder::$netDrivers['googledrive'] = 'GoogleDrive';
// // GoogleDrive Netmount driver need next two settings. You can get at https://console.developers.google.com
// // AND reuire regist redirect url to "YOUR_CONNECTOR_URL?cmd=netmount&protocol=googledrive&host=1"
// define('ELFINDER_GOOGLEDRIVE_CLIENTID', '');
// define('ELFINDER_GOOGLEDRIVE_CLIENTSECRET', '');
// // Required case of without composer
// define('ELFINDER_GOOGLEDRIVE_GOOGLEAPICLIENT', '/path/to/google-api-php-client/vendor/autoload.php');
// ===============================================
// // Required for Google Drive network mount with Flysystem
// // Installation by composer
// // `composer require nao-pon/flysystem-google-drive:~1.1 nao-pon/elfinder-flysystem-driver-ext`
// // Enable network mount
// elFinder::$netDrivers['googledrive'] = 'FlysystemGoogleDriveNetmount';
// // GoogleDrive Netmount driver need next two settings. You can get at https://console.developers.google.com
// // AND reuire regist redirect url to "YOUR_CONNECTOR_URL?cmd=netmount&protocol=googledrive&host=1"
// define('ELFINDER_GOOGLEDRIVE_CLIENTID', '');
// define('ELFINDER_GOOGLEDRIVE_CLIENTSECRET', '');
// ===============================================
// // Required for One Drive network mount
// // * cURL PHP extension required
// // * HTTP server PATH_INFO supports required
// // Enable network mount
// elFinder::$netDrivers['onedrive'] = 'OneDrive';
// // GoogleDrive Netmount driver need next two settings. You can get at https://dev.onedrive.com
// // AND reuire regist redirect url to "YOUR_CONNECTOR_URL/netmount/onedrive/1"
// define('ELFINDER_ONEDRIVE_CLIENTID', '');
// define('ELFINDER_ONEDRIVE_CLIENTSECRET', '');
// ===============================================
// // Required for Box network mount
// // * cURL PHP extension required
// // Enable network mount
// elFinder::$netDrivers['box'] = 'Box';
// // Box Netmount driver need next two settings. You can get at https://developer.box.com
// // AND reuire regist redirect url to "YOUR_CONNECTOR_URL"
// define('ELFINDER_BOX_CLIENTID', '');
// define('ELFINDER_BOX_CLIENTSECRET', '');
// ===============================================
// // Zoho Office Editor APIKey
// // https://www.zoho.com/docs/help/office-apis.html
// define('ELFINDER_ZOHO_OFFICE_APIKEY', '');
// ===============================================
// // Online converter (online-convert.com) APIKey
// // https://apiv2.online-convert.com/docs/getting_started/api_key.html
// define('ELFINDER_ONLINE_CONVERT_APIKEY', '');
// ===============================================
// // Zip Archive editor
// // Installation by composer
// // `composer require nao-pon/elfinder-flysystem-ziparchive-netmount`
// define('ELFINDER_DISABLE_ZIPEDITOR', false); // set `true` to disable zip editor
// ===============================================
/**
* Simple function to demonstrate how to control file access using "accessControl" callback.
* This method will disable accessing files/folders starting from '.' (dot)
*
* @param string $attr attribute name (read|write|locked|hidden)
* @param string $path absolute file path
* @param string $data value of volume option `accessControlData`
* @param object $volume elFinder volume driver object
* @param bool|null $isDir path is directory (true: directory, false: file, null: unknown)
* @param string $relpath file path relative to volume root directory started with directory separator
* @return bool|null
**/
function access($attr, $path, $data, $volume, $isDir, $relpath) {
$basename = basename($path);
return $basename[0] === '.' // if file/folder begins with '.' (dot)
&& strlen($relpath) !== 1 // but with out volume root
? !($attr == 'read' || $attr == 'write') // set read+write to false, other (locked+hidden) set to true
: null; // else elFinder decide it itself
}
// Documentation for connector options:
// https://github.com/Studio-42/elFinder/wiki/Connector-configuration-options
$opts = array(
// 'debug' => true,
'roots' => array(
// Items volume
array(
'driver' => 'LocalFileSystem', // driver for accessing file system (REQUIRED)
'path' => '../files/', // path to files (REQUIRED)
'URL' => dirname($_SERVER['PHP_SELF']) . '/../files/', // URL to files (REQUIRED)
'trashHash' => 't1_Lw', // elFinder's hash of trash folder
'winHashFix' => DIRECTORY_SEPARATOR !== '/', // to make hash same to Linux one on windows too
'uploadDeny' => array('all'), // All Mimetypes not allowed to upload
'uploadAllow' => array('image/x-ms-bmp', 'image/gif', 'image/jpeg', 'image/png', 'image/x-icon', 'text/plain'), // Mimetype `image` and `text/plain` allowed to upload
'uploadOrder' => array('deny', 'allow'), // allowed Mimetype `image` and `text/plain` only
'accessControl' => 'access' // disable and hide dot starting files (OPTIONAL)
),
// Trash volume
array(
'id' => '1',
'driver' => 'Trash',
'path' => '../files/.trash/',
'tmbURL' => dirname($_SERVER['PHP_SELF']) . '/../files/.trash/.tmb/',
'winHashFix' => DIRECTORY_SEPARATOR !== '/', // to make hash same to Linux one on windows too
'uploadDeny' => array('all'), // Recomend the same settings as the original volume that uses the trash
'uploadAllow' => array('image/x-ms-bmp', 'image/gif', 'image/jpeg', 'image/png', 'image/x-icon', 'text/plain'), // Same as above
'uploadOrder' => array('deny', 'allow'), // Same as above
'accessControl' => 'access', // Same as above
)
)
);
// run elFinder
$connector = new elFinderConnector(new elFinder($opts));
$connector->run();

View File

@ -0,0 +1,21 @@
<?php
switch ($_GET['mode']) {
case 'login':
$user = $_POST['user'];
$pass = $_POST['pass'];
if ($user == getenv('ELFINDER_USER') && $pass == getenv('ELFINDER_PASS')) {
session_start();
$_SESSION['loggedin'] = true;
header('Location: index.php');
} else {
header('Location: login.html');
}
break;
case 'logout':
unset($_SESSION['loggedin']);
header('Location: login.html');
break;
default:
header('Location: login.html');
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -0,0 +1,195 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<font id="material" horiz-adv-x="1000" >
<font-face font-family="material" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="home" unicode="&#xe800;" d="M417-4v250h166v-250h209v333h125l-417 375-417-375h125v-333h209z" horiz-adv-x="1000" />
<glyph glyph-name="back" unicode="&#xe801;" d="M813 390h-475l218 218-56 55-312-313 312-312 54 54-219 218h478v80z" horiz-adv-x="1000" />
<glyph glyph-name="forward" unicode="&#xe802;" d="M500 663l-54-55 219-218h-477v-80h475l-219-218 56-54 313 312-313 313z" horiz-adv-x="1000" />
<glyph glyph-name="up" unicode="&#xe803;" d="M540 38h-82v472l-214-216-56 56 312 313 313-313-57-56-216 216v-472z" horiz-adv-x="1000" />
<glyph glyph-name="dir" unicode="&#xe804;" d="M417 683h-250c-46 0-84-37-84-83l0-500c0-46 38-83 84-83h666c46 0 84 37 84 83v417c0 46-38 83-84 83h-333l-83 83z" horiz-adv-x="1000" />
<glyph glyph-name="opendir" unicode="&#xe805;" d="M752 35h-589c-44 0-80 36-80 80v470c0 44 36 80 80 80h235l79-80h273c44 0 79-35 79-79l0 0h-666v-393l85 314h669l-90-333c-8-34-39-59-75-59z" horiz-adv-x="1000" />
<glyph glyph-name="reload" unicode="&#xe806;" d="M354 615l61-75h275c20 0 37-17 37-38v-189h-114l152-190 152 190h-115v189c0 63-52 115-114 115l-334-2 0 0z m-119-38l-152-189h115v-190c0-63 52-115 115-115h333l-61 75h-275c-20 0-37 17-37 38v189h115l-153 192z" horiz-adv-x="1000" />
<glyph glyph-name="open" unicode="&#xe807;" d="M833 100h-666v417h666m0 83h-333l-83 83h-250c-46 0-84-37-84-83v-500c0-46 38-83 84-83h666c46 0 84 37 84 83v417c0 46-38 83-84 83z" horiz-adv-x="1000" />
<glyph glyph-name="mkdir" unicode="&#xe808;" d="M833 600h-333l-83 83h-250c-46 0-84-37-84-83l0-500c0-46 38-83 84-83h666c46 0 84 37 84 83v417c0 46-38 83-84 83z m-41-333h-125v-125h-84v125h-125v83h125v125h84v-125h125v-83z" horiz-adv-x="1000" />
<glyph glyph-name="mkfile" unicode="&#xe809;" d="M542 475h229l-229 229v-229m-292 292h333l250-250v-500c0-46-37-84-83-84h-500c-46 0-83 38-83 84v666c0 46 37 84 83 84m208-542v125h-83v-125h-125v-83h125v-125h83v125h125v83h-125z" horiz-adv-x="1000" />
<glyph glyph-name="rm" unicode="&#xe80a;" d="M223 25c0-52 42-92 92-92h370c53 0 92 42 92 92v556h-554v-556z m602 696h-162l-46 46h-234l-45-46h-163v-92h648l2 92 0 0z" horiz-adv-x="1000" />
<glyph glyph-name="trash" unicode="&#xe80b;" d="M896 767l-133-759c-9-41-44-75-88-75h-350c-44 0-81 32-87 75l-134 759h792m-688-88l117-658h350l117 658h-584m161-571v175h175v-175h-175m175 213l-140 139 140 140 139-140-139-139z" horiz-adv-x="1000" />
<glyph glyph-name="restore" unicode="&#xe80c;" d="M560 706c-197 0-358-160-358-356h-119l159-158 158 158h-119c0 154 125 277 277 277s277-125 277-277-125-277-277-277c-60 0-114 21-160 52l-56-56c60-48 137-73 218-73 198 0 357 160 357 356s-161 354-357 354m80-356c0 44-36 79-80 79s-79-37-79-79 36-79 79-79 80 35 80 79z" horiz-adv-x="1000" />
<glyph glyph-name="copy" unicode="&#xe80d;" d="M671 767h-454c-42 0-75-34-75-75v-532h75v532h454v75z m112-152h-416c-42 0-75-34-75-75v-532c0-41 33-75 75-75h416c42 0 75 34 75 75v532c2 41-33 75-75 75z m0-607h-416v532h416v-532z" horiz-adv-x="1000" />
<glyph glyph-name="cut" unicode="&#xe80e;" d="M402 531c11 21 15 44 15 69 0 92-75 167-167 167s-167-75-167-167 75-167 167-167c25 0 48 7 69 15l98-98-98-98c-21 11-44 15-69 15-92 0-167-75-167-167s75-167 167-167 167 75 167 167c0 25-7 48-15 69l98 98 292-292h125v42l-515 514z m-152-14c-46 0-83 37-83 83s37 83 83 83 83-37 83-83-37-83-83-83z m0-500c-46 0-83 37-83 83s37 83 83 83 83-37 83-83-37-83-83-83z m250 312c-10 0-21 11-21 21s11 21 21 21 21-11 21-21-11-21-21-21z m292 396l-250-250 83-83 292 291v42h-125z" horiz-adv-x="1000" />
<glyph glyph-name="paste" unicode="&#xe80f;" d="M765 692h-159c-14 43-56 75-106 75s-92-32-106-75h-159c-41 0-75-34-75-75v-607c0-41 34-75 75-75h532c41 0 75 34 75 75v605c0 41-36 77-77 77z m-265 0c21 0 38-17 38-38s-17-39-38-39-37 16-37 37 16 40 37 40z m265-684h-530v607h75v-115h380v115h75v-607z" horiz-adv-x="1000" />
<glyph glyph-name="getfile" unicode="&#xe810;" d="M250 767l500-467-242-21 138-304-92-42-133 309-171-163v688" horiz-adv-x="1000" />
<glyph glyph-name="duplicate" unicode="&#xe811;" d="M850 510l-115 115c-2 2-6 4-10 4h-52v6c0 5-2 7-4 11l-115 114c-2 5-6 7-10 7h-356c-23 0-42-19-42-42v-617c0-23 19-41 42-41h139v-92c0-23 19-42 42-42h444c22 0 41 19 41 42v527c0 2-2 6-4 8z m-658-395v606h329v-92c0-8 8-16 17-16h89v-498h-435z m618-136h-437v92h260c23 0 42 19 42 42v472h29v-91c0-9 9-17 17-17h89v-498z m-118 117v-81c0-7 4-11 10-11h31c30 0 52 23 52 52 3 27-22 50-52 50h-31c-6 0-10-4-10-10z m23-13h18c17 0 30-12 30-29 0-14-13-27-30-27h-18v56z" horiz-adv-x="1000" />
<glyph glyph-name="rename" unicode="&#xe812;" d="M500 725v-83h83c23 0 42-19 42-42v-500c0-23-19-42-42-42h-83v-83h83c32 0 61 12 84 33 23-21 52-33 83-33h83v83h-83c-23 0-42 19-42 42v42h167 42v41 334 41h-42-167v42c0 23 19 42 42 42h83v83h-83c-31 0-60-12-83-33-23 21-52 33-84 33h-83z m-417-167v-41-334-41h42 375v83h-333v250h333v83h-375-42z m625-83h125v-250h-125v250z m-458-83v-84h208v84h-208z" horiz-adv-x="1000" />
<glyph glyph-name="edit" unicode="&#xe813;" d="M83 106v-173h173l513 513-173 173-513-513z m819 473c19 19 19 48 0 65l-108 108c-19 19-48 19-65 0l-85-85 173-173c2 0 85 85 85 85z" horiz-adv-x="1000" />
<glyph glyph-name="quicklook" unicode="&#xe814;" d="M500 633c-190 0-352-116-417-283 65-167 227-283 417-283s352 116 417 283c-65 167-227 283-417 283z m0-473c-104 0-190 86-190 190s86 190 190 190 190-86 190-190-86-190-190-190z m0 305c-62 0-115-50-115-115s50-115 115-115 115 50 115 115-52 115-115 115z" horiz-adv-x="1000" />
<glyph glyph-name="upload" unicode="&#xe815;" d="M352 129h294v294h196l-342 344-344-344h196v-294z m-196-98h686v-98h-686v98z" horiz-adv-x="1000" />
<glyph glyph-name="download" unicode="&#xe816;" d="M844 473h-196v294h-296v-294h-196l344-344 344 344z m-688-442v-98h686v98h-686z" horiz-adv-x="1000" />
<glyph glyph-name="info" unicode="&#xe817;" d="M458 142h84v250h-84v-250z m42 625c-231 0-417-186-417-417s186-417 417-417 417 188 417 417-188 417-417 417z m0-750c-183 0-333 150-333 333s150 333 333 333 333-150 333-333-150-333-333-333z m-42 458h84v83h-84v-83z" horiz-adv-x="1000" />
<glyph glyph-name="extract" unicode="&#xe818;" d="M896 665l-65 77c-12 14-31 25-54 25h-554c-21 0-42-11-54-25l-65-77c-12-17-21-38-21-59v-579c0-52 42-94 92-94h648c52 0 92 42 92 92v579c2 23-7 44-19 61z m-396-198l254-254h-162v-92h-186v92h-162l256 254z m-319 208l38 46h556l44-46h-638z" horiz-adv-x="1000" />
<glyph glyph-name="archive" unicode="&#xe819;" d="M896 665l-65 77c-12 14-31 25-54 25h-554c-21 0-42-11-54-25l-65-77c-12-17-21-38-21-59v-579c0-52 42-94 92-94h648c52 0 92 42 92 92v579c2 23-7 44-19 61z m-396-569l-254 254h162v92h186v-92h162l-256-254z m-319 579l38 46h556l44-46h-638z" horiz-adv-x="1000" />
<glyph glyph-name="view" unicode="&#xe81a;" d="M83 481h175v175h-175v-175z m0-218h175v175h-175v-175z m219 0h175v175h-175v-175z m221 0h175v175h-175v-175z m-221 218h175v175h-175v-175z m221 175v-175h175v175h-175z m219-393h175v175h-175v-175z m-659-219h175v175h-175v-175z m219 0h175v175h-175v-175z m221 0h175v175h-175v-175z m219 0h175v175h-175v-175z m0 612v-175h175v175h-175z" horiz-adv-x="1000" />
<glyph glyph-name="view-list" unicode="&#xe81b;" d="M83 252h196v196h-196v-196z m0-246h196v196h-196v-196z m0 492h196v196h-196v-196z m246-246h588v196h-588v-196z m0-246h588v196h-588v-196z m0 688v-196h588v196h-588z" horiz-adv-x="1000" />
<glyph glyph-name="help" unicode="&#xe81c;" d="M458 100h84v83h-84v-83m42 667c-229 0-417-188-417-417s188-417 417-417 417 188 417 417-188 417-417 417m0-750c-183 0-333 150-333 333s150 333 333 333 333-150 333-333-150-333-333-333m0 583c-92 0-167-75-167-167h84c0 46 37 84 83 84s83-38 83-84c0-83-125-73-125-208h84c0 94 125 104 125 208 0 92-75 167-167 167z" horiz-adv-x="1000" />
<glyph glyph-name="resize" unicode="&#xe81d;" d="M167 767c-46 0-84-38-84-84v-41h84v41h41v84h-41z m125 0v-84h83v84h-83z m166 0v-84h84v84h-84z m167 0v-84h83v84h-83z m167 0v-84h41v-41h84v41c0 46-38 84-84 84h-41z m-709-209v-83h84v83h-84z m750 0v-83h84v83h-84z m-500-41v-84h192l-210-208h-232v-83-125c0-46 38-84 84-84h208v84 148l208 210v-192h84v292 42h-42-292z m-250-125v-84h84v84h-84z m750 0v-84h84v84h-84z m0-167v-83h84v83h-84z m0-167v-41h-41v-84h41c46 0 84 38 84 84v41h-84z m-375-41v-84h84v84h-84z m167 0v-84h83v84h-83z" horiz-adv-x="1000" />
<glyph glyph-name="link" unicode="&#xe81e;" d="M163 350c0 71 58 129 129 129h166v79h-166c-115 0-209-93-209-208s94-208 209-208h166v79h-166c-71 0-129 58-129 129z m170-42h334v84h-334v-84z m375 250h-166v-79h166c71 0 130-58 130-129s-59-129-130-129h-166v-79h166c115 0 209 93 209 208s-94 208-209 208z" horiz-adv-x="1000" />
<glyph glyph-name="search" unicode="&#xe81f;" d="M679 242h-37l-13 12c46 54 75 125 75 202-2 171-139 311-310 311s-311-140-311-311 140-310 311-310c77 0 148 27 202 75l12-13v-37l238-238 71 71-238 238z m-285 0c-119 0-215 96-215 214s96 215 215 215 214-96 214-215-98-214-214-214z" horiz-adv-x="1000" />
<glyph glyph-name="sort" unicode="&#xe820;" d="M394 635l133 132 131-132h-264m264-570l-131-132-131 132h262m-277 191h-116l-32-110h-95l125 406h122l128-406h-100l-32 110m-104 67h92l-25 85-11 40-10 40h-2l-8-40-11-40-25-85m273-177v52l194 275v2h-175v77h294v-54l-190-271v-2h192v-77l-315-2 0 0z" horiz-adv-x="1000" />
<glyph glyph-name="rotate-r" unicode="&#xe821;" d="M658 567l-200 200v-136c-173-21-308-168-308-350s133-327 308-348v90c-125 21-220 129-220 260s95 238 220 259v-171l200 196z m192-240c-8 61-31 121-71 171l-62-63c23-33 37-70 46-108h87z m-304-304v-90c60 9 121 32 171 71l-63 63c-33-23-71-38-108-44z m171 106l62-62c40 52 65 110 71 171h-90c-4-38-20-75-43-109z" horiz-adv-x="1000" />
<glyph glyph-name="rotate-l" unicode="&#xe822;" d="M283 435l-62 63c-40-52-65-110-71-171h90c4 38 20 75 43 108z m-45-197h-88c8-61 31-121 71-171l62 62c-23 34-39 71-45 109z m45-234c52-39 111-62 171-71v90c-37 6-75 21-108 46 0-2-63-65-63-65z m259 627v136l-200-200 200-196v173c125-21 221-129 221-261s-96-239-221-260v-90c173 21 308 169 308 350s-133 327-308 348z" horiz-adv-x="1000" />
<glyph glyph-name="netmount" unicode="&#xe823;" d="M708 767c46 0 84-38 84-84v-416c0-46-38-84-84-84h-166v-83h41c23 0 42-19 42-42h292v-83h-292c0-23-19-42-42-42h-166c-23 0-42 19-42 42h-292v83h292c0 23 19 42 42 42h41v83h-166c-46 0-84 38-84 84v416c0 46 38 84 84 84h416z" horiz-adv-x="1000" />
<glyph glyph-name="netunmount" unicode="&#xe824;" d="M917 342c4 229-179 421-409 425-231 4-420-179-425-409-4-229 180-421 409-425s421 180 425 409z m-750 14c4 184 156 332 339 327 77-2 148-29 202-73l-475-458c-43 56-68 127-66 204z m125-266l475 458c43-56 68-129 66-206-4-184-154-332-339-327-77 4-148 31-202 75z" horiz-adv-x="1000" />
<glyph glyph-name="places" unicode="&#xe825;" d="M750 767h-500c-46 0-83-38-83-84v-666c0-46 37-84 83-84h500c46 0 83 38 83 84v666c0 46-37 84-83 84z m-500-84h208v-333l-104 63-104-63v333z" horiz-adv-x="1000" />
<glyph glyph-name="chmod" unicode="&#xe826;" d="M381 302l-298 83 55 167 291-119-19 334h186l-19-334 286 113 54-173-298-83 196-250-148-107-173 273-167-262-148 102 202 256z" horiz-adv-x="1000" />
<glyph glyph-name="accept" unicode="&#xe827;" d="M500 767c-231 0-417-186-417-417 0-229 186-417 417-417 229 0 417 188 417 417 0 231-188 417-417 417z m-83-625l-209 208 59 58 150-150 316 317 59-58-375-375z" horiz-adv-x="1000" />
<glyph glyph-name="menu" unicode="&#xe828;" d="M83 73h834v92h-834v-92z m0 231h834v92h-834v-92z m0 323v-92h834v92h-834z" horiz-adv-x="1000" />
<glyph glyph-name="colwidth" unicode="&#xe829;" d="M377 31h246v638h-246v-638z m-294 0h246v638h-246v-638z m588 638v-638h246v638h-246z" horiz-adv-x="1000" />
<glyph glyph-name="fullscreen" unicode="&#xe82a;" d="M202 231h-119v-298h298v119h-179v179z m-119 238h119v179h179v119h-298v-298z m715-417h-179v-119h298v298h-119v-179z m-179 715v-119h179v-179h119v298h-298z" horiz-adv-x="1000" />
<glyph glyph-name="unfullscreen" unicode="&#xe82b;" d="M83 113h180v-180h118v298h-298v-118z m180 475h-180v-119h298v298h-118c0 0 0-179 0-179z m356-655h119v180h179v118h-298v-298z m119 655v179h-119v-298h298v119c0 0-179 0-179 0z" horiz-adv-x="1000" />
<glyph glyph-name="empty" unicode="&#xe82c;" d="M813 463l-42-75-531 304 43 75 134-77 58 18 190-108 16-60 132-77m-628-442v525h221l302-175v-350c0-48-39-88-87-88h-348c-48 0-88 40-88 88z" horiz-adv-x="1000" />
<glyph glyph-name="undo" unicode="&#xe82d;" d="M375 767l-292-209 292-208v125h188c106 0 187-81 187-187s-81-188-187-188h-480v-167h480c195 0 354 159 354 355s-159 354-354 354h-188v125z" horiz-adv-x="1000" />
<glyph glyph-name="redo" unicode="&#xe82e;" d="M625 767v-125h-187c-196 0-355-159-355-354s159-355 355-355h479v167h-479c-107 0-188 81-188 188s81 187 188 187h187v-125l292 208-292 209z" horiz-adv-x="1000" />
<glyph glyph-name="preference" unicode="&#xe82f;" d="M810 310c3 13 3 28 3 42s-3 27-3 42l88 69c8 6 10 16 4 27l-83 143c-6 9-17 13-25 9l-104-42c-21 17-46 31-71 42l-15 108c-2 8-10 17-21 17h-166c-11 0-19-9-21-17l-17-110c-25-11-48-25-71-42l-104 42c-8 4-21 0-25-9l-83-143c-6-9-2-21 4-28l90-68c0-15-2-27-2-42s2-27 2-42l-88-68c-8-7-10-17-4-27l83-144c7-9 17-13 25-9l104 42c21-17 46-31 71-42l17-110c2-10 10-17 21-17h166c11 0 19 9 21 17l17 110c25 11 48 25 71 42l104-42c10-4 21 0 25 9l83 144c7 8 2 20-4 27l-92 70z m-310-106c-81 0-146 65-146 146s65 146 146 146 146-65 146-146-65-146-146-146z" horiz-adv-x="1000" />
<glyph glyph-name="mkdirin" unicode="&#xe830;" d="M583 100v125h-166v167h166v125l209-209m41 292h-333l-83 83h-250c-46 0-84-37-84-83v-500c0-46 38-83 84-83h666c46 0 84 37 84 83v417c0 46-38 83-84 83z" horiz-adv-x="1000" />
<glyph glyph-name="selectall" unicode="&#xe831;" d="M167 767c-46 0-84-38-84-84v-41h84v41h41v84h-41z m125 0v-84h83v84h-83z m166 0v-84h84v84h-84z m167 0v-84h83v84h-83z m167 0v-84h41v-41h84v41c0 46-38 84-84 84h-41z m-709-209v-83h84v83h-84z m209 0v-83h416v83h-416z m541 0v-83h84v83h-84z m-750-166v-84h84v84h-84z m209 0v-84h416v84h-416z m541 0v-84h84v84h-84z m-750-167v-83h84v83h-84z m209 0v-83h416v83h-416z m541 0v-83h84v83h-84z m-750-167v-41c0-46 38-84 84-84h41v84h-41v41h-84z m750 0v-41h-41v-84h41c46 0 84 38 84 84v41h-84z m-541-41v-84h83v84h-83z m166 0v-84h84v84h-84z m167 0v-84h83v84h-83z" horiz-adv-x="1000" />
<glyph glyph-name="selectnone" unicode="&#xe832;" d="M83 683c0 46 38 84 84 84h125v-84h-125v-125h-84v125m834 0v-125h-84v125h-125v84h125c46 0 84-38 84-84m-84-666v125h84v-125c0-46-38-84-84-84h-125v84h125m-750 0v125h84v-125h125v-84h-125c-46 0-84 38-84 84m334 750h166v-84h-166v84m0-750h166v-84h-166v84m416 416h84v-166h-84v166m-750 0h84v-166h-84v166z" horiz-adv-x="1000" />
<glyph glyph-name="selectinvert" unicode="&#xe833;" d="M175 767h92v-92h91v92h92v-92h92v92h91v-92h92v92h92v-92h100v-92h-92v-91h92v-92h-92v-92h92v-91h-92v-92h92v-92h-92v-100h-92v92h-91v-92h-92v92h-92v-92h-91v92h-92v-92h-100v92h-92v92h92v91h-92v92h92v92h-92v91h92v92h-92v100h92v92z" horiz-adv-x="1000" />
<glyph glyph-name="lock" unicode="&#xe834;" d="M500 131c44 0 79 36 79 79s-35 80-79 80-79-36-79-80 35-79 79-79z m238 359h-40v79c0 108-88 198-198 198s-198-90-198-198v-79h-39c-44 0-80-36-80-80v-395c0-44 36-80 80-80h477c43 0 79 36 79 80v395c-2 44-38 80-81 80z m-361 79c0 69 54 123 123 123s123-54 123-123v-79h-246v79z m361-556h-475v395h477v-395z" horiz-adv-x="1000" />
<glyph glyph-name="perms" unicode="&#xe835;" d="M738 490h-40v79c0 108-88 198-198 198s-198-90-198-198v-79h-39c-44 0-80-36-80-80v-395c0-44 36-80 80-80h477c43 0 79 36 79 80v395c-2 44-38 80-81 80z m-238-359c-44 0-79 36-79 79s35 80 79 80 79-36 79-80-35-79-79-79z m123 359h-246v79c0 69 54 123 123 123s123-54 123-123v-79z" horiz-adv-x="1000" />
<glyph glyph-name="unlocked" unicode="&#xe836;" d="M500 131c44 0 79 36 79 79s-35 80-79 80-79-36-79-80 35-79 79-79z m238 359h-40v79c0 108-88 198-198 198s-198-90-198-198h75c0 69 54 123 123 123s123-54 123-123v-79h-360c-44 0-80-36-80-80v-395c0-44 36-80 80-80h477c43 0 79 36 79 80v395c-2 44-38 80-81 80z m0-477h-475v395h477v-395z" horiz-adv-x="1000" />
<glyph glyph-name="symlink" unicode="&#xe837;" d="M917 373l-325 325v-185c-323-46-463-280-509-511 117 163 277 236 509 236v-190l325 325z" horiz-adv-x="1000" />
<glyph glyph-name="resizable" unicode="&#xe838;" d="M917-67h-167v167h167v-167m0 334h-167v166h167v-166m-334-334h-166v167h166v-167m0 334h-166v166h166v-166m-333-334h-167v167h167v-167m667 667h-167v167h167v-167z" horiz-adv-x="1000" />
<glyph glyph-name="close" unicode="&#xe839;" d="M917 683l-84 84-333-334-333 334-84-84 334-333-334-333 84-84 333 334 333-334 84 84-334 333 334 333z" horiz-adv-x="1000" />
<glyph glyph-name="plus" unicode="&#xe83a;" d="M917 290h-357v-357h-118v357h-359v118h357v359h118v-357h359v-120z" horiz-adv-x="1000" />
<glyph glyph-name="return" unicode="&#xe83b;" d="M513 494c-109 0-207-40-282-106l-146 145v-366h367l-148 150c56 48 129 77 209 77 143 0 266-94 308-225l96 31c-54 171-215 294-404 294z" horiz-adv-x="1000" />
<glyph glyph-name="minus" unicode="&#xe83c;" d="M917 292h-834v118h834v-118z" horiz-adv-x="1000" />
<glyph glyph-name="hdd" unicode="&#xe83d;" d="M167 767l-84-500h834l-84 500h-666z m-84-542v-292h834v292h-834z m84-83h41v-84h42v84h42v-84h41v84h42v-84h42v84h41v-84h42v84h42v-84h41v84h42v-84-41h-42-41-42-42-41-42-42-41-42-42-41v41 84z m604 0c35 0 62-27 62-63s-27-62-62-62-63 27-63 62 27 63 63 63z" horiz-adv-x="1000" />
<glyph glyph-name="sql" unicode="&#xe83e;" d="M500 767c-85 0-162-15-223-40-29-12-56-27-75-48s-35-48-35-79v-333-167c0-31 14-58 35-79s46-38 75-50c61-23 138-38 223-38s163 15 223 40c29 12 56 29 75 50s35 46 35 77v167 333c0 31-14 58-35 79s-46 36-75 48c-60 25-138 40-223 40z m0-84c75 0 144-14 190-33 23-10 39-21 50-29s10-17 10-21 0-10-10-19-27-21-50-29c-46-21-115-35-190-35s-144 14-190 33c-22 10-39 21-50 29s-10 17-10 21 0 10 10 19 28 21 50 29c46 21 115 35 190 35z m-250-195c8-5 17-11 27-15 61-25 138-40 223-40s163 15 223 40c10 4 19 10 27 15v-55c0-4-2-10-10-20s-27-21-50-30c-46-20-113-33-190-33s-144 13-190 33c-22 11-39 21-50 30s-10 16-10 20v55z m0-167c8-4 17-11 27-15 61-25 138-39 223-39s163 14 223 39c10 4 19 11 27 15v-54c0-4-2-11-10-21s-27-21-50-29c-46-21-113-34-190-34s-144 13-190 34c-22 10-39 21-50 29s-10 17-10 21v54z m0-167c8-4 17-10 27-14 61-25 138-40 223-40s163 15 223 40c10 4 19 10 27 14v-54c0-4-2-10-10-21s-27-21-50-29c-46-21-113-33-190-33s-144 12-190 33c-22 10-39 21-50 29s-10 17-10 21v54z" horiz-adv-x="1000" />
<glyph glyph-name="dropbox" unicode="&#xe83f;" d="M665 123l-165 125-160-125-94 56v-60l254-169 256 167v60l-91-54z m252 471l-246 156-171-140 256-150 161 134z m-834-269l252-150 165 127-242 154-175-131z m252 425l-252-162 175-132 242 154-165 140z m165-448l167-127 250 150-161 135-256-158z" horiz-adv-x="1000" />
<glyph glyph-name="googledrive" unicode="&#xe840;" d="M898 254l-267 463h-262l0 0 266-463h263z m-488-39l-131-232h506l132 232h-507l0 0z m-77 443l-250-443 132-232 254 444-136 231z" horiz-adv-x="1000" />
<glyph glyph-name="onedrive" unicode="&#xe841;" d="M544 602c-75 0-142-44-173-106-19 10-42 17-65 17-75 0-133-61-133-134 0-6 2-10 2-16-52-7-92-50-92-105 0-58 46-104 105-104h83c-4 15-8 29-8 44 0 58 37 108 89 127 11 88 88 156 177 156 54 0 104-23 138-64 12 4 27 6 41 6 11 0 19 0 30-2-7 102-90 181-194 181z m-15-148c-81 0-148-66-148-148v-2c-50-6-89-50-89-102 0-58 46-104 104-104h431c50 0 90 40 90 90s-40 89-90 89c0 67-54 119-119 119-18 0-35-4-52-13-27 42-73 71-127 71z" horiz-adv-x="1000" />
<glyph glyph-name="box" unicode="&#xe842;" d="M898 365c-38 93-113 139-213 145-14 3-20 7-25 19-12 36-35 67-66 90-104 79-265 29-306-94-3-8-13-17-21-21-29-14-63-23-88-41-81-59-114-165-83-257 33-98 123-162 227-162h175c60 0 123-2 185 0 67 2 125 25 169 73 65 71 83 156 46 248z m-100-244c-15-11-29-6-40 8-14 19-29 40-45 61-17-21-30-40-44-59-9-12-21-23-38-12s-16 25-8 41c-58-62-117-58-198 11-23-29-50-48-85-54-67-13-138 43-138 110v192c0 21 13 33 27 33 17 0 27-12 27-33v-84c32 19 63 23 94 17 31-8 56-25 75-54 4 2 6 6 8 8 50 59 125 63 182 11l8-9c-10 17-10 32 2 40 17 10 29 2 40-10 14-19 29-38 45-59 13 15 25 29 36 44 4 6 8 12 12 17 13 14 27 16 40 6 15-13 12-25 2-40-15-18-29-39-44-58-8-10-8-17 0-27 17-19 32-40 46-61 11-16 8-31-4-39z m-473 179c-37 0-67-29-67-65 0-37 27-64 65-64s65 27 67 62c0 38-27 67-65 67z m202 0c-37 0-67-29-67-65 0-37 30-64 67-64 38 0 67 27 67 62 0 36-31 67-67 67z m106-4c2-6 5-13 5-19 14-37 10-75-13-108 17 19 31 37 46 58 4 4 2 15-2 19-11 17-23 33-36 50z" horiz-adv-x="1000" />
<glyph glyph-name="help-circle" unicode="&#xe843;" d="M500 767c-231 0-417-186-417-417s186-417 417-417 417 188 417 417-188 417-417 417z m42-709h-84v84h84v-84z m85 323l-37-37c-30-31-48-56-48-119h-84v21c0 46 19 87 48 119l52 52c15 14 25 35 25 58 0 46-37 83-83 83s-83-37-83-83h-84c0 92 75 167 167 167s167-75 167-167c0-37-15-71-40-94z" horiz-adv-x="1000" />
<glyph glyph-name="move" unicode="&#xe844;" d="M425 465h152v114h115l-192 188-190-190h115v-112z m-40-40h-114v115l-188-190 190-190v115h115v150z m532-75l-190 190v-115h-114v-152h114v-115l190 192z m-342-115h-152v-114h-115l192-188 190 190h-115v112z" horiz-adv-x="1000" />
<glyph glyph-name="save" unicode="&#xe845;" d="M731 767h-556c-50 0-92-42-92-92v-648c0-52 42-94 92-94h648c52 0 92 42 92 92v556l-184 186z m-231-742c-77 0-140 63-140 140s63 139 140 139 140-62 140-139-63-140-140-140z m140 465h-465v185h463v-185z" horiz-adv-x="1000" />
<glyph glyph-name="loading" unicode="&#xe846;" d="M500 577v-114l152 152-152 152v-115c-167 0-302-135-302-302 0-60 17-115 48-160l56 56c-17 31-27 67-27 106-2 123 100 225 225 225z m256-67l-56-56c17-31 27-66 27-106 0-125-102-227-227-227v114l-152-152 152-150v115c167 0 302 135 302 302 0 60-17 115-46 160z" horiz-adv-x="1000" />
<glyph glyph-name="info-circle" unicode="&#xe847;" d="M500 767c-231 0-417-186-417-417s186-417 417-417 417 188 417 417-188 417-417 417z m42-625h-84v250h84v-250z m0 333h-84v83h84v-83z" horiz-adv-x="1000" />
<glyph glyph-name="prev" unicode="&#xe848;" d="M758 669l-100 98-416-417 416-417 98 98-316 319 318 319z" horiz-adv-x="1000" />
<glyph glyph-name="next" unicode="&#xe849;" d="M342 767l-98-98 316-319-318-319 98-98 416 417-414 417z" horiz-adv-x="1000" />
<glyph glyph-name="ql-fullscreen" unicode="&#xe84a;" d="M500 767l171-171-417-417-171 171v-417h417l-171 171 417 417 171-171v417h-417z" horiz-adv-x="1000" />
<glyph glyph-name="ql-fullscreen-off" unicode="&#xe84b;" d="M858 767l-177-177-118 118-59-354 354 59-118 118 177 177-59 59z m-362-421l-354-58 118-119-177-177 59-59 177 177 119-118 58 354z" horiz-adv-x="1000" />
<glyph glyph-name="close-circle" unicode="&#xe84c;" d="M500 767c231 0 417-186 417-417s-186-417-417-417-417 186-417 417 186 417 417 417m150-209l-150-150-150 150-58-58 150-150-150-150 58-58 150 150 150-150 58 58-150 150 150 150-58 58z" horiz-adv-x="1000" />
<glyph glyph-name="pin" unicode="&#xe84d;" d="M667 350v333h41v84h-416v-84h41v-333l-83-83v-84h217v-250h66v250h217v84l-83 83z" horiz-adv-x="1000" />
<glyph glyph-name="check" unicode="&#xe84e;" d="M348 167l-198 198-67-69 265-265 569 569-67 67-502-500z" horiz-adv-x="1000" />
<glyph glyph-name="arrowthick-1-s" unicode="&#xe84f;" d="M498-67l290 290-75 73-163-163-2 634h-104l2-634-163 159-73-75 288-284z" horiz-adv-x="1000" />
<glyph glyph-name="arrowthick-1-n" unicode="&#xe850;" d="M502 767l-289-290 72-73 165 163v-634h104v634l163-163 73 75-288 288z" horiz-adv-x="1000" />
<glyph glyph-name="caret-down" unicode="&#xe851;" d="M902 569c-10 10-23 14-37 14h-730c-14 0-27-4-37-14s-15-23-15-38c0-14 5-27 15-37l365-365c10-10 22-14 37-14s27 4 38 14l364 367c11 10 15 23 15 37 0 13-4 25-15 36z" horiz-adv-x="1000" />
<glyph glyph-name="caret-up" unicode="&#xe852;" d="M917 165c0 14-4 27-15 37l-364 367c-11 10-23 14-38 14s-27-4-37-14l-365-365c-10-10-15-21-15-37s5-27 15-38 23-14 37-14h730c14 0 27 4 37 14s15 23 15 36z" horiz-adv-x="1000" />
<glyph glyph-name="menu-resize" unicode="&#xe853;" d="M627 767c0-277 0-554 0-834-31 0-62 0-94 0 0 277 0 557 0 834 32 0 63 0 94 0z m-160 0c0-277 0-554 0-834-32 0-63 0-94 0 0 277 0 555 0 834 31 0 62 0 94 0z" horiz-adv-x="1000" />
<glyph glyph-name="arrow-circle" unicode="&#xe854;" d="M500 767c-229 0-417-188-417-417s188-417 417-417 417 188 417 417-188 417-417 417z m0-577l-260 260 60 60 200-200 200 200 60-60-260-260z" horiz-adv-x="1000" />
<glyph glyph-name="tn-error" unicode="&#xe855;" d="M500 767l-342-152v-227c0-211 146-407 342-455 196 48 342 244 342 455v227l-342 152z m38-257v-227h-75v227h75z m-38-385c-27 0-50 23-50 50 0 27 23 50 50 50l0 0c27 0 50-23 50-50l0 0c0-27-23-50-50-50" horiz-adv-x="1000" />
<glyph glyph-name="warning-alert" unicode="&#xe856;" d="M538 256h-75v152h75m0-304h-75v75h75m-455-189h834l-417 720-417-720z" horiz-adv-x="1000" />
<glyph glyph-name="caret-right" unicode="&#xe857;" d="M719 388l-365 364c-10 11-23 15-35 15-13 0-27-4-38-15s-14-23-14-37v-730c0-14 4-27 14-37s23-15 38-15c14 0 27 4 37 15l365 365c10 10 14 22 14 37 0 15-6 27-16 38z" horiz-adv-x="1000" />
<glyph glyph-name="caret-left" unicode="&#xe858;" d="M281 388l365 364c10 11 23 15 35 15 15 0 27-4 38-15s14-23 14-37v-730c0-14-4-27-14-37s-23-15-38-15-27 4-37 15l-363 365c-10 10-14 22-14 37 0 15 4 27 14 38z" horiz-adv-x="1000" />
<glyph glyph-name="logout" unicode="&#xe85a;" d="M546 767h-92v-463h92v463z m225-100l-67-67c73-60 119-150 119-250 0-179-146-325-325-325s-323 146-323 325c0 102 46 192 119 250l-65 67c-89-77-146-190-146-317 0-229 188-417 417-417s417 188 417 417c0 127-57 240-146 317z" horiz-adv-x="1000" />
<glyph glyph-name="opennew" unicode="&#xe85b;" d="M592 767v-92h166l-454-456 67-67 454 454v-166h92v327m-92-742h-650v650h325v92h-325c-50 0-92-42-92-92v-648c0-52 42-94 92-94h648c50 0 92 42 92 92v325h-92l2-325 0 0z" horiz-adv-x="1000" />
<glyph glyph-name="zip" unicode="&#xe85c;" d="M594 119h-94v91h-92v92h92v-92h92m2 280h-94v-92h92v-92h-92v92h-92v92h92v91h-92v94h92v-92h92m233 184h-648c-52 0-94-42-94-92v-648c0-52 42-94 94-94h648c50 0 92 42 92 92v650c0 50-42 92-92 92z" horiz-adv-x="1000" />
<glyph glyph-name="hide" unicode="&#xe85d;" d="M494 483l121-118c0 2 0 4 0 6 0 62-50 114-115 114-2-2-4-2-6-2m-163-31l59-58c-2-9-2-17-2-25 0-63 50-115 114-115 8 0 17 2 25 2l58-58c-25-13-54-21-83-21-104 0-189 86-189 190-3 31 6 60 18 85m-210 211l85-86 17-17c-63-50-113-114-142-189 65-167 227-283 417-283 58 0 115 10 167 31l16-17 111-110 48 48-671 670m331-152c104 0 190-85 190-189 0-25-5-48-15-69l110-110c57 48 103 110 130 179-65 166-227 283-417 283-52 0-104-10-152-27l81-81c25 10 48 14 73 14z" horiz-adv-x="1000" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 23 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">.st0{fill:#333333;}</style>
<path class="st0" d="M11.4,0.7c1.8,0.9,3.1,2.1,3.9,3.9l-1,0.5c-0.6-1.3-2-2.7-3.3-3.4">
<animate accumulate="none" additive="replace" attributeName="fill" begin="0s" calcMode="linear" dur="1s" fill="remove" repeatCount="indefinite" restart="always" values="#333;#eee;#333;#333">
</animate>
</path>
<path class="st0" d="M15.5,5.2c0.6,1.9,0.7,3.7,0,5.5l-1-0.4c0.5-1.4,0.5-3.3,0-4.8">
<animate accumulate="none" additive="replace" attributeName="fill" begin="0.125s" calcMode="linear" dur="1s" fill="remove" repeatCount="indefinite" restart="always" values="#333;#eee;#333;#333">
</animate>
</path>
<path class="st0" d="M15.2,11.4c-0.9,1.8-2.1,3.1-3.9,3.9l-0.5-1c1.3-0.6,2.7-2,3.3-3.4">
<animate accumulate="none" additive="replace" attributeName="fill" begin="0.250s" calcMode="linear" dur="1s" fill="remove" repeatCount="indefinite" restart="always" values="#333;#eee;#333;#333">
</animate>
</path>
<path class="st0" d="M10.7,15.5c-1.9,0.6-3.6,0.7-5.5,0l0.4-1.1c1.4,0.5,3.3,0.5,4.7,0">
<animate accumulate="none" additive="replace" attributeName="fill" begin="0.375s" calcMode="linear" dur="1s" fill="remove" repeatCount="indefinite" restart="always" values="#333;#eee;#333;#333">
</animate>
</path>
<path class="st0" d="M4.7,15.3c-1.8-0.9-3.1-2.1-3.9-3.9l1-0.5c0.6,1.3,2,2.7,3.3,3.4">
<animate accumulate="none" additive="replace" attributeName="fill" begin="0.500s" calcMode="linear" dur="1s" fill="remove" repeatCount="indefinite" restart="always" values="#333;#eee;#333;#333">
</animate>
</path>
<path class="st0" d="M0.5,10.8c-0.6-1.9-0.7-3.7,0-5.5l1.1,0.4c-0.5,1.4-0.5,3.3,0,4.8">
<animate accumulate="none" additive="replace" attributeName="fill" begin="0.625s" calcMode="linear" dur="1s" fill="remove" repeatCount="indefinite" restart="always" values="#333;#eee;#333;#333">
</animate>
</path>
<path class="st0" d="M0.7,4.7c0.9-1.8,2.1-3.1,3.9-3.9l0.5,1c-1.3,0.6-2.7,2-3.3,3.4">
<animate accumulate="none" additive="replace" attributeName="fill" begin="0.750s" calcMode="linear" dur="1s" fill="remove" repeatCount="indefinite" restart="always" values="#333;#eee;#333;#333">
</animate>
</path>
<path class="st0" d="M5.3,0.5c1.9-0.6,3.6-0.7,5.5,0l-0.4,1.1C9,1.1,7.1,1.1,5.7,1.6">
<animate accumulate="none" additive="replace" attributeName="fill" begin="0.875s" calcMode="linear" dur="1s" fill="remove" repeatCount="indefinite" restart="always" values="#333;#eee;#333;#333">
</animate>
</path>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
# Stylesheets
All CSS for your theme will be located here.
The `theme.css` file is the focal point for loading the styles. These could all have been in one file, but have been split up for the sake of more easily structuring and maintaining the codebase.
* **reset.css** : resets background and border of all elfinder elements so that you can skin from scratch without manually positioning the main elements yourself
* **main.css** : main UI elements (wrapper for the main elfinder div, global styles, etc..)
* **icons.css** : icons across the UI (e.g. file associations)
* **toolbar.css** : toolbar at the top of the elfinder container. Contains toolbar buttons and searchbar
* **navbar.css** : directory navigation on the left-hand panel
* **view-list.css** : defines the list view
* **view-thumbnail.css** : defines the thumbnail/tile view
* **contextmenu.css** : context menu shown when right-clicking on in the list/thumbnail view or navbar
* **dialog.css** : information dialogs/modal windows
* **statusbar.css** : footer; contains information about directory and currently selected files
Note that many of the styles have a large degree of selectivity. E.g:
```css
.elfinder .elfinder-navbar .elfinder-navbar-dir.ui-state-active:hover { /* */ }
```
This is to minimize the need for using `!important` flags to override the existing styles (particularly with respect to jQuery UI's CSS).
## Tips
* Use the `reset.css` style to reset the styles that you need to. Comment out selectors that you wish to remain untouched.
* If you need to reset a style outside of `reset.css`, the following normally suffices:
```css
background: none;
border: none;
```
* If you want to change the icons in a particular container, it is best to reset the icon's style from a general selector, then style each individual icon separately. For example:
```css
/* All toolbar icons */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon {
/* reset the style and set properties common to all toolbar icons */
}
/* mkfile toolbar icon */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-mkfile {
/* styles specific to the mkfile button (e.g. background-position) */
}
```
* Some styles have their `text-indent` property set to `-9999px` to keep the text out of view. If after styling you can't see the text (and you need to), change the `text-indent` property

View File

@ -0,0 +1,43 @@
/* contextmenu.css */
/* **Note** that the context menu is NOT inside the main elfinder div */
/* Context menu wrapper */
.elfinder-contextmenu,
.elfinder-contextmenu-sub,
.elfinder-button-menu {
font-size: 16px;
font-family: 'Open Sans', sans-serif;
background: #fff!important;
border: 1px solid #b5b5b5!important;
box-shadow: 0 0 5px #cdcdcd!important;
border-radius: 0;
padding: 3px 3px 0 3px;
}
/* Menu item */
.elfinder-contextmenu .elfinder-contextmenu-item,
.elfinder-button-menu .elfinder-button-menu-item {
margin: 0 0 3px 0;
}
/* Hovered menu item */
.elfinder-contextmenu .elfinder-contextmenu-item:hover,
.elfinder-button-menu .elfinder-button-menu-item:hover {
background: #dedddc;
color: #000;
}
/* Item icon */
.elfinder-contextmenu .elfinder-contextmenu-item .elfinder-contextmenu-icon {
/* */
}
/* Separator */
.elfinder-contextmenu .elfinder-contextmenu-separator {
background: #e2e3e4;
height: 1px;
margin: 1px;
}
.elfinder-contextmenu .elfinder-button-icon-open + span {
font-weight: bold;
}

View File

@ -0,0 +1,124 @@
/* dialog.css */
/* Dialog wrapper */
.elfinder .elfinder-dialog {
/* */
}
/* Dialog title */
.elfinder .elfinder-dialog .ui-dialog-titlebar {
padding: 3px 0 3px 6px;
height: 30px;
box-sizing: border-box;
}
/* Close button */
.elfinder .elfinder-dialog .ui-dialog-titlebar-close {
background: url('../images/close.png');
right: 0;
border-radius: 0;
margin-top: -15px;
webkit-transition: background 0.3s; /* Safari */
transition: background-image 0.3s;
height: 29px;
width: 45px;
}
.elfinder .elfinder-dialog .ui-dialog-titlebar-close:hover {
background: url('../images/close-hover.png');
}
.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button.elfinder-titlebar-button-right {
left: 1px;
top: 12px;
}
/* Dialog content */
.elfinder .elfinder-dialog .ui-dialog-content {
/* */
}
/* Tabs */
/* Tabs wrapper */
.elfinder .elfinder-dialog .ui-tabs-nav {
/* */
}
/* Normal tab */
.elfinder .elfinder-dialog .ui-tabs-nav .ui-state-default {
/* */
}
/* Current tab */
.elfinder .elfinder-dialog .ui-tabs-nav .ui-tabs-selected {
/* */
}
/* Active tab */
.elfinder .elfinder-dialog .ui-tabs-nav li:active {
/* */
}
.elfinder .ui-state-active {
background: #1979CA none repeat scroll 0 0;
/*background: #009688 none repeat scroll 0 0; */
}
/* Icons */
/* Dialog icon (e.g. for error messages) */
.elfinder .elfinder-dialog .elfinder-dialog-icon {
/* */
}
/* Error icon */
.elfinder .elfinder-dialog .elfinder-dialog-icon-error {
/* */
}
/* Confirmation icon */
.elfinder .elfinder-dialog .elfinder-dialog-icon-confirm {
/* */
}
/* Footer */
.elfinder .elfinder-dialog .ui-dialog-buttonpane {
/* */
}
/* Buttonset (wrapper) */
.elfinder .elfinder-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
/* */
}
/* Button */
.elfinder .elfinder-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
/* */
}
/* Styling specific types of dialogs */
/* Error */
.elfinder .elfinder-dialog-error {
/* */
}
/* Confirm */
.elfinder .elfinder-dialog-confirm {
/* */
}
/* File editing */
.elfinder .elfinder-dialog .elfinder-file-edit {
/* */
}
/* File information */
/* Title */
.elfinder .elfinder-dialog .elfinder-info-title {
/* */
}
/* Table */
.elfinder .elfinder-dialog .elfinder-info-tb {
/* */
}
/* File upload (including dropbox) */
.elfinder .elfinder-dialog .elfinder-upload-dropbox,
.elfinder .elfinder-dialog .elfinder-upload-dialog-or {
/* */
}

View File

@ -0,0 +1,101 @@
/* icons.css */
/* These are shown thoughought the UI, not just in the list/thumbnail view */
/* General icon settings (in main view panel) */
.elfinder-cwd-icon {
/* */
}
/* If you are using CSS sprites for your icons, set the background position
in each of the below styles */
/* Directory */
.elfinder-cwd-icon-directory {
background-color: transparent;
background-image: url('../images/16px/directory.png') !important;
background-position: center center;
height: 16px;
width: 16px;
}
/* Empty file */
.elfinder-cwd-icon-x-empty,
.elfinder-cwd-icon-inode {
/* */
}
/* (Rich) Text */
.elfinder-cwd-icon-text,
.elfinder-cwd-icon-rtf,
.elfinder-cwd-icon-rtfd {
/* */
}
/* PDF */
.elfinder-cwd-icon-pdf {
/* */
}
/* Microsoft Word */
.elfinder-cwd-icon-vnd-ms-word {
/* */
}
/* Microsoft PowerPoint */
.elfinder-cwd-icon-vnd-ms-powerpoint {
/* */
}
/* Microsoft Excel */
.elfinder-cwd-icon-ms-excel,
.elfinder-cwd-icon-vnd-ms-excel,
.elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12,
.elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12,
.elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12,
.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12 {
/* */
}
/* Audio */
.elfinder-cwd-icon-audio {
/* */
}
/* Video */
.elfinder-cwd-icon-video,
.elfinder-cwd-icon-flash-video {
/* */
}
/* Archives */
.elfinder-cwd-icon-zip,
.elfinder-cwd-icon-x-zip,
.elfinder-cwd-icon-x-xz,
.elfinder-cwd-icon-x-7z-compressed,
.elfinder-cwd-icon-x-gzip,
.elfinder-cwd-icon-x-tar,
.elfinder-cwd-icon-x-bzip,
.elfinder-cwd-icon-x-bzip2,
.elfinder-cwd-icon-x-rar {
/* */
}
/* Code/Scripts */
.elfinder-cwd-icon-javascript,
.elfinder-cwd-icon-x-javascript,
.elfinder-cwd-icon-x-perl,
.elfinder-cwd-icon-x-python,
.elfinder-cwd-icon-x-ruby,
.elfinder-cwd-icon-x-sh,
.elfinder-cwd-icon-x-shellscript,
.elfinder-cwd-icon-x-c,
.elfinder-cwd-icon-x-csrc,
.elfinder-cwd-icon-x-chdr,
.elfinder-cwd-icon-x-c--,
.elfinder-cwd-icon-x-c--src,
.elfinder-cwd-icon-x-c--hdr,
.elfinder-cwd-icon-x-java,
.elfinder-cwd-icon-x-java-source,
.elfinder-cwd-icon-x-php,
.elfinder-cwd-icon-xml {
/* */
}

View File

@ -0,0 +1,24 @@
/* main.css */
/* Container div for elFinder */
.elfinder,
.elfinder .elfinder-dialog,
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-menu {
background: #fff;
border: 1px solid #69bcee;
box-shadow: 0 0 5px #cdcdcd;
border-radius: 0;
}
/* Override styles in child elements of elFinder div */
/* Use for consistently setting text sizes and overriding general jQuery UI styles */
.elfinder * {
color: #000;
font-family: 'Open Sans', sans-serif;
}
/* Resizer */
/* Used if elFinder is resizable and on dialogs */
.elfinder .ui-icon-gripsmall-diagonal-se,
.elfinder-dialog .ui-icon-gripsmall-diagonal-se {
/* */
}

View File

@ -0,0 +1,72 @@
/* navbar.css */
/* Main wrapper for navbar */
.elfinder .elfinder-navbar {
border-right: 1px solid #e5e5e5;
}
/* Directories */
.elfinder .elfinder-navbar .elfinder-navbar-dir {
color: #000;
border-radius: 0;
}
/* Hovered directory */
.elfinder .elfinder-navbar .elfinder-navbar-dir:hover {
background: #e5f3ff;
}
/* Current/active directory (cwd) */
.elfinder .elfinder-navbar .elfinder-navbar-dir.ui-state-active {
background: #cce8ff;
border: 1px solid #99d1ff;
}
/* Howvered cwd */
.elfinder .elfinder-navbar .elfinder-navbar-dir.ui-state-active:hover {
/* */
}
/* Icons */
/* Arrow */
.elfinder .elfinder-navbar .elfinder-navbar-arrow {
/* */
background-image: url('../images/16px/arrow_right.png');
background-position: center center;
background-repeat: no-repeat;
}
/* Expanded directory arrow */
.elfinder .elfinder-navbar-expanded .elfinder-navbar-arrow {
/* */
background-image: url('../images/16px/arrow_down.png');
background-position: center center;
background-repeat: no-repeat;
}
/* All icons (directories) */
.elfinder .elfinder-navbar .elfinder-navbar-icon {
background-color: transparent;
background-image: url('../images/16px/directory.png') !important;
background-position: center center;
background-repeat: none;
height: 16px;
width: 16px;
}
/* Expanded directory */
.elfinder .elfinder-navbar-expanded.ui-state-active .elfinder-navbar-icon {
background-image: url('../images/16px/directory_opened.png') !important;
}
/* Root/volume */
.elfinder .elfinder-navbar-root > .elfinder-navbar-icon {
/* */
}
/* Root/volume expanded */
.elfinder .elfinder-navbar-root.elfinder-navbar-expanded > .elfinder-navbar-icon {
/* */
}
/* Resizable handle */
.elfinder .elfinder-navbar .ui-resizable-handle.ui-resizable-e {
/* */
}

View File

@ -0,0 +1,59 @@
/* reset.css */
/* Comment out/delete the reset rules where appropriate */
/* container */
.elfinder,
/* toolbar */
.elfinder .elfinder-toolbar,
.elfinder .elfinder-buttonset,
.elfinder .elfinder-button,
.elfinder .elfinder-toolbar-button-separator,
.elfinder .elfinder-toolbar input,
/* navbar */
.elfinder .elfinder-navbar,
.elfinder .elfinder-navbar *,
/* current working directory */
.elfinder .elfinder-cwd,
.elfinder .elfinder-cwd table tr td.ui-state-active,
.elfinder .elfinder-cwd table tr td.ui-state-hover,
.elfinder .elfinder-cwd table tr td.ui-state-selected,
.elfinder .elfinder-cwd table thead tr,
.elfinder .elfinder-cwd table tbody tr,
.elfinder .elfinder-cwd-file .ui-state-hover,
.elfinder .elfinder-cwd-file .elfinder-cwd-icon-directory,
.elfinder .elfinder-cwd-file .elfinder-cwd-filename,
.elfinder .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover,
/* general states */
.elfinder .ui-state-default,
.elfinder .ui-state-active,
.elfinder .ui-state-hover,
.elfinder .ui-selected,
/* ui-widgets (normally for dialogs) */
.elfinder .ui-widget,
.elfinder .ui-widget-header,
.elfinder .ui-widget-content,
/* icons */
.elfinder-button-icon,
.elfinder-navbar-icon,
.elfinder-cwd-icon-directory,
.elfinder .ui-icon,
/* statusbar */
.elfinder .elfinder-statusbar,
.elfinder .elfinder-statusbar *,
/* context menu (outside of elfinder div */
.elfinder-contextmenu,
.elfinder-contextmenu-sub,
.elfinder-contextmenu-item,
.elfinder-contextmenu-separator,
.elfinder-contextmenu .ui-state-hover {
background: none;
border: none;
}

View File

@ -0,0 +1,30 @@
/* statusbar.css */
/* Statusbar wrapper */
.elfinder .elfinder-statusbar {
/* */
}
/* File size */
.elfinder .elfinder-statusbar .elfinder-stat-size {
/* */
}
/* Current path (breadcrumb trail) */
.elfinder .elfinder-statusbar .elfinder-path {
/* */
}
/* Breadcrumb in current path */
.elfinder .elfinder-statusbar .elfinder-path a {
/* */
}
/* Name of selected file(s) */
.elfinder .elfinder-statusbar .elfinder-stat-selected {
/* */
}
/* Size of current file(s) */
.elfinder .elfinder-statusbar .elfinder-stat-size {
/* */
}

View File

@ -0,0 +1,35 @@
/**
* elFinder Theme Template
* @author lokothodida
*/
/* Reset */
@import url('reset.css');
/* Google Fonts */
@import url('//fonts.googleapis.com/css?family=Open+Sans:300');
/* Main features of the whole UI */
@import url('main.css');
/* Icons */
@import url('icons.css');
/* Toolbar (top panel) */
@import url('toolbar.css');
/* Navbar (left panel) */
@import url('navbar.css');
/* Views (List and Thumbnail) */
@import url('view-list.css');
@import url('view-thumbnail.css');
/* Context menu */
@import url('contextmenu.css');
/* (Modal) Dialogs */
@import url('dialog.css');
/* Status Bar */
@import url('statusbar.css');

View File

@ -0,0 +1,241 @@
/* toolbar.css */
/* Main toolbar wrapper */
.elfinder .elfinder-toolbar {
/* */
}
/* Buttonset wrapper */
.elfinder .elfinder-toolbar .elfinder-buttonset {
/* */
}
/* Buttonset wrapper for search field */
.elfinder .elfinder-button-search .elfinder-button-menu {
background: #fff !important;
}
/* Buttons */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button {
border: 1px solid transparent;
webkit-transition: background 0.3s, border 0.3s; /* Safari */
transition: background 0.3s, border 0.3s;
}
/* Hovered buttons */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button:hover {
background: #cce8ff;
border: 1px solid #99d1ff;
}
/* Hovered buttons in search field */
.elfinder .elfinder-button-search .elfinder-button-menu .ui-button:hover {
background: #cce8ff;
border: 0px solid #99d1ff;
}
/* Disabled buttons */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button.ui-state-disabled {
/* */
}
/* Buttonset separator */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-toolbar-button-separator {
/* */
}
/* Button icons */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon {
/* */
}
/* Searchbar */
.elfinder-toolbar .elfinder-button-search {
/* */
border: 1px solid #ccc;
margin-right: 5px;
border-radius: 0;
}
/* Searchbar icons (search and close) */
.elfinder-toolbar .elfinder-button-search .ui-icon {
/* */
}
.elfinder-toolbar .elfinder-button-search .ui-icon-search {
/* */
background-image: url('../images/16px/search.png');
}
.elfinder-toolbar .elfinder-button-search .ui-icon-close {
/* */
}
/* Commands */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon {
background-color: transparent;
background-position: center center;
height: 16px;
width: 16px;
}
/* Back */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-back {
background-image: url('../images/16px/back.png');
}
/* Forward */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-forward {
background-image: url('../images/16px/forward.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-reload {
background-image: url('../images/16px/reload.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-netmount {
background-image: url('../images/16px/netmount.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-home {
background-image: url('../images/16px/home.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-up {
background-image: url('../images/16px/up.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-mkdir {
background-image: url('../images/16px/directory.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-mkfile {
background-image: url('../images/16px/file.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-upload {
background-image: url('../images/16px/upload.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-open {
background-image: url('../images/16px/open.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-download {
background-image: url('../images/16px/download.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-getfile {
background-image: url('../images/16px/getfile.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-info {
background-image: url('../images/16px/info.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-quicklook {
background-image: url('../images/16px/preview.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-copy {
background-image: url('../images/16px/copy.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-cut {
background-image: url('../images/16px/cut.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-paste {
background-image: url('../images/16px/paste.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-view {
background-image: url('../images/16px/view.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-view-list {
background-image: url('../images/16px/view-list.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-help {
background-image: url('../images/16px/help.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-duplicate {
background-image: url('../images/16px/duplicate.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-rm {
background-image: url('../images/16px/rm.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-edit {
background-image: url('../images/16px/edit.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-rename {
background-image: url('../images/16px/rename.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-archive {
background-image: url('../images/16px/archive.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-resize {
background-image: url('../images/16px/resize.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-extract {
background-image: url('../images/16px/extract.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-sort {
background-image: url('../images/16px/sort.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-undo {
background-image: url('../images/16px/undo.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-redo {
background-image: url('../images/16px/redo.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-selectall {
background-image: url('../images/16px/select_all.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-selectnone {
background-image: url('../images/16px/deselect_all.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-selectinvert {
background-image: url('../images/16px/invert_selection.png');
}
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon-empty {
background-image: url('../images/16px/clear_folder.png');
}
/* Menus (e.g. for sorting) */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-menu {
/* */
}
/* Menu items */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-menu-item {
/* */
}
/* Selected items */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-menu-item-selected {
/* */
}
/* Hovered items */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-menu-item.ui-state-hover {
/* */
}
/* Menu item sorting ascending icon */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-menu-item-selected.elfinder-menu-item-sort-asc .elfinder-menu-item-sort-dir {
/* */
}
/* Menu item sorting descending icon */
.elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-menu-item-selected.elfinder-menu-item-sort-desc .elfinder-menu-item-sort-dir {
/* */
}

View File

@ -0,0 +1,92 @@
/* view-list.css */
/* Wrapper for list view */
.elfinder .elfinder-cwd-wrapper-list {
/* */
}
/* List view table */
.elfinder .elfinder-cwd-wrapper-list table {
/* */
}
/* Column headings */
.elfinder .elfinder-cwd-wrapper-list table thead tr td {
color: #43536a;
}
.elfinder .elfinder-cwd-wrapper-list table thead tr td:not(:last-child) {
border-right: 1px solid #e5e5e5;
}
/* Hovered column heading */
.elfinder .elfinder-cwd-wrapper-list table thead tr td.ui-state-hover,
.elfinder .elfinder-cwd-wrapper-list table thead tr td:hover {
background: #d0dded;
}
/* Actively sorted column heading */
.elfinder .elfinder-cwd-wrapper-list table thead tr td.ui-state-active {
border-right: 1px solid #e5e5e5;
}
/* Table heading icons (mainly the sorter) */
.elfinder .elfinder-cwd-wrapper-list table tr td .ui-icon {
/* */
}
/* Table heading sorter up */
.elfinder .elfinder-cwd-wrapper-list table tr.ui-state-default td .ui-icon-triangle-1-n:before {
/* */
}
/* Table heading sorter down */
.elfinder .elfinder-cwd-wrapper-list table tr.ui-state-default td .ui-icon-triangle-1-s:before {
/* */
}
/* Files */
/* File */
.elfinder .elfinder-cwd-wrapper-list .elfinder-cwd-file td {
border: 1px solid transparent;
}
.elfinder .elfinder-cwd-wrapper-list .elfinder-cwd-file td:not(:first-child) {
color: #9d9d9d;
}
/* Filename */
.elfinder .elfinder-cwd-wrapper-list .elfinder-cwd-file .elfinder-cwd-filename {
/* */
}
/* Hovered file */
.elfinder .elfinder-cwd-wrapper-list .elfinder-cwd-file:hover,
.elfinder .elfinder-cwd-wrapper-list .elfinder-cwd-file.ui-state-hover, /* fix for 2.x */
.elfinder .elfinder-cwd-wrapper-list .elfinder-cwd-file.ui-state-hover:hover { /* fix for 2.1 */
background: #e5f3ff;
border-color: #e5f3ff;
}
/* Selected file */
.elfinder .elfinder-cwd-wrapper-list .elfinder-cwd-file.ui-selected {
background: #cce8ff;
}
.elfinder .elfinder-cwd-wrapper-list .elfinder-cwd-file.ui-selected td {
border-top: 1px solid #99d1ff;
border-bottom: 1px solid #99d1ff;
}
.elfinder .elfinder-cwd-wrapper-list .elfinder-cwd-file.ui-selected td:first-child {
border-left: 1px solid #99d1ff;
}
.elfinder .elfinder-cwd-wrapper-list .elfinder-cwd-file.ui-selected td:last-child {
border-right: 1px solid #99d1ff;
}
/* Icons */
.elfinder .elfinder-cwd-wrapper-list .elfinder-cwd-file .elfinder-cwd-icon {
/* */
}

View File

@ -0,0 +1,41 @@
/* view-thumbnail.css */
/* Wrapper for thumbnail view */
.elfinder .elfinder-cwd-view-icons {
}
/* File wrapper */
.elfinder .elfinder-cwd-view-icons .elfinder-cwd-file {
width: 80px;
height: 80px;
border: 1px solid transparent;
border-radius: 0;
}
/* Hovered file */
.elfinder .elfinder-cwd-view-icons .elfinder-cwd-file.ui-state-hover {
background: #e5f3ff;
}
/* Selected file */
.elfinder .elfinder-cwd-view-icons .elfinder-cwd-file.ui-selected {
background: #cce8ff;
border: 1px solid #99d1ff;
}
/* File icon */
.elfinder .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-icon {
}
.elfinder .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-icon-directory,
.elfinder .elfinder-dialog .elfinder-cwd-icon-directory {
background-color: transparent;
background-image: url('../images/48px/directory.png') !important;
background-position: center center;
height: 48px;
width: 48px;
}
/* File name */
.elfinder .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename {
color: #000 !important;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 741 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,4 @@
# Images
Store all images for your elFinder skin in this directory.
It is best to group similar images into one file and use the files as CSS spritesheets.

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

View File

@ -0,0 +1,7 @@
# Scripts
Any extra (funky) Javascript that you want to load along with your
theme should be located here. This could be:
* Special configuration for elFinder under your theme
* Extra JavaScript libraries that your theme depends on
* Javascript hacks to the elFinder markup after the file browser has loaded (not recommended)

5
alpine/push Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
docker push bkraul/elfinder:alpine
docker push bkraul/elfinder:alpine-2.1.49