diff --git a/Dockerfile b/Dockerfile index dbcbc3a00..a45e41a45 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ COPY ./requirements /tmp/requirements RUN yum -y install epel-release && \ echo -e "[mysql]\nname=mysql\nbaseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el6/\ngpgcheck=0\nenabled=1" > /etc/yum.repos.d/mysql.repo RUN cd /tmp/requirements && yum -y install $(cat rpm_requirements.txt) -RUN cd /tmp/requirements && pip install --upgrade pip setuptools && \ +RUN cd /tmp/requirements && pip install --upgrade pip setuptools && pip install wheel && \ pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt || pip install -r requirements.txt RUN mkdir -p /root/.ssh/ && echo -e "Host *\n\tStrictHostKeyChecking no\n\tUserKnownHostsFile /dev/null" > /root/.ssh/config diff --git a/apps/assets/api/domain.py b/apps/assets/api/domain.py index e6f6c0550..b12f8ce2c 100644 --- a/apps/assets/api/domain.py +++ b/apps/assets/api/domain.py @@ -16,6 +16,8 @@ __all__ = ['DomainViewSet', 'GatewayViewSet', "GatewayTestConnectionApi"] class DomainViewSet(OrgBulkModelViewSet): model = Domain + filter_fields = ("name", ) + search_fields = filter_fields permission_classes = (IsOrgAdminOrAppUser,) serializer_class = serializers.DomainSerializer @@ -27,7 +29,7 @@ class DomainViewSet(OrgBulkModelViewSet): class GatewayViewSet(OrgBulkModelViewSet): model = Gateway - filter_fields = ("domain__name", "name", "username", "ip", "domain") + filter_fields = ("domain__name", "name", "username", "ip", "domain__id") search_fields = filter_fields permission_classes = (IsOrgAdmin,) serializer_class = serializers.GatewaySerializer diff --git a/apps/assets/models/domain.py b/apps/assets/models/domain.py index 99e677a07..b89c3b128 100644 --- a/apps/assets/models/domain.py +++ b/apps/assets/models/domain.py @@ -63,7 +63,7 @@ class Gateway(AssetUser): def test_connective(self, local_port=None): if local_port is None: local_port = self.port - if not re.match(r'\w+$', self.password): + if self.password and not re.match(r'\w+$', self.password): return False, _("Password should not contain special characters") client = paramiko.SSHClient() diff --git a/apps/ops/api/adhoc.py b/apps/ops/api/adhoc.py index e01e8ef16..1bf2b4901 100644 --- a/apps/ops/api/adhoc.py +++ b/apps/ops/api/adhoc.py @@ -20,6 +20,8 @@ __all__ = [ class TaskViewSet(viewsets.ModelViewSet): queryset = Task.objects.all() + filter_fields = ("name",) + search_fields = filter_fields serializer_class = TaskSerializer permission_classes = (IsOrgAdmin,) diff --git a/apps/orgs/models.py b/apps/orgs/models.py index 9f9e262cf..544e50712 100644 --- a/apps/orgs/models.py +++ b/apps/orgs/models.py @@ -130,6 +130,11 @@ class Organization(models.Model): return True return False + def can_user_by(self, user): + if self.get_org_users().filter(id=user.id): + return True + return False + def is_real(self): return self.id not in (self.DEFAULT_NAME, self.ROOT_ID, self.SYSTEM_ID) diff --git a/apps/static/plugins/elfinder/css/elfinder-bootstrap-theme.png b/apps/static/plugins/elfinder/css/elfinder-bootstrap-theme.png deleted file mode 100755 index 327f0308b..000000000 Binary files a/apps/static/plugins/elfinder/css/elfinder-bootstrap-theme.png and /dev/null differ diff --git a/apps/static/plugins/elfinder/css/elfinder.full.css b/apps/static/plugins/elfinder/css/elfinder.full.css deleted file mode 100755 index ad9e694f9..000000000 --- a/apps/static/plugins/elfinder/css/elfinder.full.css +++ /dev/null @@ -1,5200 +0,0 @@ -/*! - * elFinder - file manager for web - * Version 2.1.50 (2019-08-20) - * http://elfinder.org - * - * Copyright 2009-2019, Studio 42 - * Licensed under a 3-clauses BSD license - */ - -/* File: /css/commands.css */ -/******************************************************************/ -/* COMMANDS STYLES */ -/******************************************************************/ - -/********************** COMMAND "RESIZE" ****************************/ -.elfinder-resize-container { - margin-top: .3em; -} - -.elfinder-resize-type { - float: left; - margin-bottom: .4em; -} - -.elfinder-resize-control { - float: left; -} - -.elfinder-resize-control input[type=number] { - border: 1px solid #aaa; - text-align: right; - width: 4.5em; -} - -.elfinder-mobile .elfinder-resize-control input[type=number] { - width: 3.5em; -} - -.elfinder-resize-control input.elfinder-resize-bg { - text-align: center; - width: 5em; - direction: ltr; -} - -.elfinder-dialog-resize .elfinder-resize-control-panel { - margin-top: 10px; -} - -.elfinder-dialog-resize .elfinder-resize-imgrotate, -.elfinder-dialog-resize .elfinder-resize-pallet { - cursor: pointer; -} - -.elfinder-dialog-resize .elfinder-resize-picking { - cursor: crosshair; -} - -.elfinder-dialog-resize .elfinder-resize-grid8 + button { - padding-top: 2px; - padding-bottom: 2px; -} - -.elfinder-resize-preview { - width: 400px; - height: 400px; - padding: 10px; - background: #fff; - border: 1px solid #aaa; - float: right; - position: relative; - overflow: hidden; - text-align: left; - direction: ltr; -} - -.elfinder-resize-handle { - position: relative; -} - -.elfinder-resize-handle-hline, -.elfinder-resize-handle-vline { - position: absolute; - background-image: url("../img/crop.gif"); -} - -.elfinder-resize-handle-hline { - width: 100%; - height: 1px !important; - background-repeat: repeat-x; -} - -.elfinder-resize-handle-vline { - width: 1px !important; - height: 100%; - background-repeat: repeat-y; -} - -.elfinder-resize-handle-hline-top { - top: 0; - left: 0; -} - -.elfinder-resize-handle-hline-bottom { - bottom: 0; - left: 0; -} - -.elfinder-resize-handle-vline-left { - top: 0; - left: 0; -} - -.elfinder-resize-handle-vline-right { - top: 0; - right: 0; -} - -.elfinder-resize-handle-point { - position: absolute; - width: 8px; - height: 8px; - border: 1px solid #777; - background: transparent; -} - -.elfinder-resize-handle-point-n { - top: 0; - left: 50%; - margin-top: -5px; - margin-left: -5px; -} - -.elfinder-resize-handle-point-ne { - top: 0; - right: 0; - margin-top: -5px; - margin-right: -5px; -} - -.elfinder-resize-handle-point-e { - top: 50%; - right: 0; - margin-top: -5px; - margin-right: -5px; -} - -.elfinder-resize-handle-point-se { - bottom: 0; - right: 0; - margin-bottom: -5px; - margin-right: -5px; -} - -.elfinder-resize-handle-point-s { - bottom: 0; - left: 50%; - margin-bottom: -5px; - margin-left: -5px; -} - -.elfinder-resize-handle-point-sw { - bottom: 0; - left: 0; - margin-bottom: -5px; - margin-left: -5px; -} - -.elfinder-resize-handle-point-w { - top: 50%; - left: 0; - margin-top: -5px; - margin-left: -5px; -} - -.elfinder-resize-handle-point-nw { - top: 0; - left: 0; - margin-top: -5px; - margin-left: -5px; -} - -.elfinder-dialog.elfinder-dialog-resize .ui-resizable-e { - width: 10px; - height: 100%; -} - -.elfinder-dialog.elfinder-dialog-resize .ui-resizable-s { - width: 100%; - height: 10px; -} - -.elfinder-resize-loading { - position: absolute; - width: 200px; - height: 30px; - top: 50%; - margin-top: -25px; - left: 50%; - margin-left: -100px; - text-align: center; - background: url(../img/progress.gif) center bottom repeat-x; -} - -.elfinder-resize-row { - margin-bottom: 9px; - position: relative; -} - -.elfinder-resize-label { - float: left; - width: 80px; - padding-top: 3px; -} - -.elfinder-resize-checkbox-label { - border: 1px solid transparent; -} - -.elfinder-dialog-resize .elfinder-resize-whctrls { - margin: -20px 5px 0 5px; -} - -.elfinder-ltr .elfinder-dialog-resize .elfinder-resize-whctrls { - float: right; -} - -.elfinder-rtl .elfinder-dialog-resize .elfinder-resize-whctrls { - float: left; -} - -.elfinder-dialog-resize .ui-resizable-e, -.elfinder-dialog-resize .ui-resizable-w { - height: 100%; - width: 10px; -} - -.elfinder-dialog-resize .ui-resizable-s, -.elfinder-dialog-resize .ui-resizable-n { - width: 100%; - height: 10px; -} - -.elfinder-dialog-resize .ui-resizable-e { - margin-right: -7px; -} - -.elfinder-dialog-resize .ui-resizable-w { - margin-left: -7px; -} - -.elfinder-dialog-resize .ui-resizable-s { - margin-bottom: -7px; -} - -.elfinder-dialog-resize .ui-resizable-n { - margin-top: -7px; -} - -.elfinder-dialog-resize .ui-resizable-se, -.elfinder-dialog-resize .ui-resizable-sw, -.elfinder-dialog-resize .ui-resizable-ne, -.elfinder-dialog-resize .ui-resizable-nw { - width: 10px; - height: 10px; -} - -.elfinder-dialog-resize .ui-resizable-se { - background: transparent; - bottom: 0; - right: 0; - margin-right: -7px; - margin-bottom: -7px; -} - -.elfinder-dialog-resize .ui-resizable-sw { - margin-left: -7px; - margin-bottom: -7px; -} - -.elfinder-dialog-resize .ui-resizable-ne { - margin-right: -7px; - margin-top: -7px; -} - -.elfinder-dialog-resize .ui-resizable-nw { - margin-left: -7px; - margin-top: -7px; -} - -.elfinder-touch .elfinder-dialog-resize .ui-resizable-s, -.elfinder-touch .elfinder-dialog-resize .ui-resizable-n { - height: 20px; -} - -.elfinder-touch .elfinder-dialog-resize .ui-resizable-e, -.elfinder-touch .elfinder-dialog-resize .ui-resizable-w { - width: 20px; -} - -.elfinder-touch .elfinder-dialog-resize .ui-resizable-se, -.elfinder-touch .elfinder-dialog-resize .ui-resizable-sw, -.elfinder-touch .elfinder-dialog-resize .ui-resizable-ne, -.elfinder-touch .elfinder-dialog-resize .ui-resizable-nw { - width: 30px; - height: 30px; -} - -.elfinder-touch .elfinder-dialog-resize .elfinder-resize-preview .ui-resizable-se { - width: 30px; - height: 30px; - margin: 0; -} - -.elfinder-dialog-resize .ui-icon-grip-solid-vertical { - position: absolute; - top: 50%; - right: 0; - margin-top: -8px; - margin-right: -11px; -} - -.elfinder-dialog-resize .ui-icon-grip-solid-horizontal { - position: absolute; - left: 50%; - bottom: 0; - margin-left: -8px; - margin-bottom: -11px;; -} - -.elfinder-dialog-resize .elfinder-resize-row .ui-buttonset { - float: right; -} - -.elfinder-dialog-resize .elfinder-resize-degree input, -.elfinder-dialog-resize input.elfinder-resize-quality { - width: 3.5em; -} - -.elfinder-mobile .elfinder-dialog-resize .elfinder-resize-degree input, -.elfinder-mobile .elfinder-dialog-resize input.elfinder-resize-quality { - width: 2.5em; -} - -.elfinder-dialog-resize .elfinder-resize-degree button.ui-button { - padding: 6px 8px; -} - -.elfinder-dialog-resize button.ui-button span { - padding: 0; -} - -.elfinder-dialog-resize .elfinder-resize-jpgsize { - font-size: 90%; -} - -.ui-widget-content .elfinder-resize-container .elfinder-resize-rotate-slider { - width: 195px; - margin: 10px 7px; - background-color: #fafafa; -} - -.elfinder-dialog-resize .elfinder-resize-type span.ui-checkboxradio-icon { - display: none; -} - -.elfinder-resize-preset-container { - box-sizing: border-box; - border-radius: 5px; -} - -/********************** COMMAND "EDIT" ****************************/ -/* edit text file textarea */ -.elfinder-file-edit { - width: 100%; - height: 100%; - margin: 0; - padding: 2px; - border: 1px solid #ccc; - box-sizing: border-box; - resize: none; -} - -.elfinder-touch .elfinder-file-edit { - font-size: 16px; -} - -/* edit area */ -.elfinder-dialog-edit .ui-dialog-content.elfinder-edit-editor { - background-color: #fff; -} - -.elfinder-dialog-edit .ui-dialog-content.elfinder-edit-editor .elfinder-edit-imageeditor { - width: 100%; - height: 300px; - max-height: 100%; - text-align: center; -} - -.elfinder-dialog-edit .ui-dialog-content.elfinder-edit-editor .elfinder-edit-imageeditor * { - -webkit-user-select: none; - -moz-user-select: none; - -khtml-user-select: none; - user-select: none; -} - -.elfinder-edit-imageeditor .tui-image-editor-main-container .tui-image-editor-main { - top: 0; -} - -.elfinder-edit-imageeditor .tui-image-editor-main-container .tui-image-editor-header { - display: none; -} - -.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-crop .tui-image-editor-wrap, -.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-flip .tui-image-editor-wrap, -.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-rotate .tui-image-editor-wrap, -.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-draw .tui-image-editor-wrap, -.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-shape .tui-image-editor-wrap, -.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-icon .tui-image-editor-wrap, -.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-text .tui-image-editor-wrap, -.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-mask .tui-image-editor-wrap, -.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-filter .tui-image-editor-wrap { - height: calc(100% - 150px); -} - -/* bottom margen for softkeyboard on fullscreen mode */ -.elfinder-touch.elfinder-fullscreen-native textarea.elfinder-file-edit { - padding-bottom: 20em; - margin-bottom: -20em; -} - -.elfinder-dialog-edit .ui-dialog-buttonpane .elfinder-dialog-confirm-encoding { - font-size: 12px; -} - -.ui-dialog-buttonpane .ui-dialog-buttonset.elfinder-edit-extras { - margin: 0 1em 0 .2em; - float: left; -} - -.ui-dialog-buttonpane .ui-dialog-buttonset.elfinder-edit-extras-quality { - padding-top: 6px; -} - -.ui-dialog-buttonpane .ui-dialog-buttonset.elfinder-edit-extras select { - font-size: 12px; - margin-top: 8px; -} - -.elfinder-dialog-edit .ui-dialog-buttonpane .ui-icon { - cursor: pointer; -} - -.elfinder-edit-spinner { - position: absolute; - top: 50%; - text-align: center; - width: 100%; - font-size: 16pt; -} - -.elfinder-dialog-edit .elfinder-edit-spinner .elfinder-spinner, -.elfinder-dialog-edit .elfinder-edit-spinner .elfinder-spinner-text { - float: none; -} - -.elfinder-dialog-edit .elfinder-toast > div { - width: 280px; -} - -.elfinder-edit-onlineconvert-button { - display: inline-block; - width: 180px; - min-height: 30px; - vertical-align: top; -} -.elfinder-edit-onlineconvert-button button, -.elfinder-edit-onlineconvert-bottom-btn button { - cursor: pointer; -} -.elfinder-edit-onlineconvert-bottom-btn button.elfinder-button-ios-multiline { - -webkit-appearance: none; - border-radius: 16px; - color: #000; - text-align: center; - padding: 8px; - background-color: #eee; - background-image: -webkit-linear-gradient(top, hsl(0,0%,98%) 0%,hsl(0,0%,77%) 100%); - background-image: linear-gradient(to bottom, hsl(0,0%,98%) 0%,hsl(0,0%,77%) 100%); -} -.elfinder-edit-onlineconvert-button .elfinder-button-icon { - margin: 0 10px; - vertical-align: middle; - cursor: pointer; -} -.elfinder-edit-onlineconvert-bottom-btn { - text-align: center; - margin: 10px 0 0; -} - -.elfinder-edit-onlineconvert-link { - margin-top: 1em; - text-align: center; -} -.elfinder-edit-onlineconvert-link .elfinder-button-icon { - background-image: url("../img/editor-icons.png"); - background-repeat: no-repeat; - background-position: 0 -144px; - margin-bottom: -3px; -} -.elfinder-edit-onlineconvert-link a { - text-decoration: none; -} - -/********************** COMMAND "SORT" ****************************/ -/* for list table header sort triangle icon */ -div.elfinder-cwd-wrapper-list tr.ui-state-default td { - position: relative; -} - -div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon { - position: absolute; - top: 4px; - left: 0; - right: 0; - margin: auto 0px auto auto; -} - -.elfinder-touch div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon { - top: 7px; -} - -.elfinder-rtl div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon { - margin: auto auto auto 0px; -} - -/********************** COMMAND "HELP" ****************************/ -/* help dialog */ -.elfinder-help { - margin-bottom: .5em; - -webkit-overflow-scrolling: touch; -} - -/* fix tabs */ -.elfinder-help .ui-tabs-panel { - padding: .5em; - overflow: auto; - padding: 10px; -} - -.elfinder-dialog .ui-tabs .ui-tabs-nav li { - overflow: hidden; -} - -.elfinder-dialog .ui-tabs .ui-tabs-nav li a { - padding: .2em .8em; - display: inline-block; -} - -.elfinder-touch .elfinder-dialog .ui-tabs .ui-tabs-nav li a { - padding: .5em .5em; -} - -.elfinder-dialog .ui-tabs-active a { - background: inherit; -} - -.elfinder-help-shortcuts { - height: auto; - padding: 10px; - margin: 0; - box-sizing: border-box; -} - -.elfinder-help-shortcut { - white-space: nowrap; - clear: both; -} - -.elfinder-help-shortcut-pattern { - float: left; - width: 160px; -} - -.elfinder-help-logo { - width: 100px; - height: 96px; - float: left; - margin-right: 1em; - background: url('../img/logo.png') center center no-repeat; -} - -.elfinder-help h3 { - font-size: 1.5em; - margin: .2em 0 .3em 0; -} - -.elfinder-help-separator { - clear: both; - padding: .5em; -} - -.elfinder-help-link { - display: inline-block; - margin-right: 12px; - padding: 2px 0; - white-space: nowrap; -} - -.elfinder-rtl .elfinder-help-link { - margin-right: 0; - margin-left: 12px; -} - -.elfinder-help .ui-priority-secondary { - font-size: .9em; -} - -.elfinder-help .ui-priority-primary { - margin-bottom: 7px; -} - -.elfinder-help-team { - clear: both; - text-align: right; - border-bottom: 1px solid #ccc; - margin: .5em 0; - font-size: .9em; -} - -.elfinder-help-team div { - float: left; -} - -.elfinder-help-license { - font-size: .9em; -} - -.elfinder-help-disabled { - font-weight: bold; - text-align: center; - margin: 90px 0; -} - -.elfinder-help .elfinder-dont-panic { - display: block; - border: 1px solid transparent; - width: 200px; - height: 200px; - margin: 30px auto; - text-decoration: none; - text-align: center; - position: relative; - background: #d90004; - -moz-box-shadow: 5px 5px 9px #111; - -webkit-box-shadow: 5px 5px 9px #111; - box-shadow: 5px 5px 9px #111; - background: -moz-radial-gradient(80px 80px, circle farthest-corner, #d90004 35%, #960004 100%); - background: -webkit-gradient(radial, 80 80, 60, 80 80, 120, from(#d90004), to(#960004)); - -moz-border-radius: 100px; - -webkit-border-radius: 100px; - border-radius: 100px; - outline: none; -} - -.elfinder-help .elfinder-dont-panic span { - font-size: 3em; - font-weight: bold; - text-align: center; - color: #fff; - position: absolute; - left: 0; - top: 45px; -} - -ul.elfinder-help-integrations ul { - margin-bottom: 1em; - padding: 0; - margin: 0 1em 1em; -} - -ul.elfinder-help-integrations a { - text-decoration: none; -} - -ul.elfinder-help-integrations a:hover { - text-decoration: underline; -} - -.elfinder-help-debug { - height: 100%; - padding: 0; - margin: 0; - overflow: none; - border: none; -} - -.elfinder-help-debug .ui-tabs-panel { - padding: 0; - margin: 0; - overflow: auto; -} - -.elfinder-help-debug fieldset { - margin-bottom: 10px; - border-color: #778899; - border-radius: 10px; -} - -.elfinder-help-debug legend { - font-size: 1.2em; - font-weight: bold; - color: #2e8b57; -} - -.elfinder-help-debug dl { - margin: 0; -} - -.elfinder-help-debug dt { - color: #778899; -} - -.elfinder-help-debug dt:before { - content: "["; -} - -.elfinder-help-debug dt:after { - content: "]"; -} - -.elfinder-help-debug dd { - margin-left: 1em; -} - -.elfinder-help-debug dd span { - /*font-size: 1.2em;*/ -} - -/********************** COMMAND "PREFERENCE" ****************************/ -.elfinder-dialog .elfinder-preference .ui-tabs-nav { - margin-bottom: 1px; - height: auto; -} - -/* fix tabs */ -.elfinder-preference .ui-tabs-panel { - padding: 10px 10px 0; - overflow: auto; - box-sizing: border-box; - -webkit-overflow-scrolling: touch; -} - -.elfinder-preference a.ui-state-hover, -.elfinder-preference label.ui-state-hover { - border: none; -} - -.elfinder-preference dl { - width: 100%; - display: inline-block; - margin: .5em 0; -} - -.elfinder-preference dt { - display: block; - width: 200px; - clear: left; - float: left; - max-width: 50%; -} - -.elfinder-rtl .elfinder-preference dt { - clear: right; - float: right; -} - -.elfinder-preference dd { - margin-bottom: 1em; -} - -.elfinder-preference dt label { - cursor: pointer; -} - -.elfinder-preference dd label, -.elfinder-preference dd input[type=checkbox] { - white-space: nowrap; - display: inline-block; - cursor: pointer; -} - -.elfinder-preference dt.elfinder-preference-checkboxes { - width: 100%; - max-width: none; -} - -.elfinder-preference dd.elfinder-preference-checkboxes { - padding-top: 3ex; -} - -.elfinder-preference select { - max-width: 100%; -} - -.elfinder-preference dd.elfinder-preference-iconSize .ui-slider { - width: 50%; - max-width: 100px; - display: inline-block; - margin: 0 10px; -} - -.elfinder-preference button { - margin: 0 16px; -} - -.elfinder-preference button + button { - margin: 0 -10px; -} - -.elfinder-preference .elfinder-preference-taball .elfinder-reference-hide-taball { - display: none; -} - -.elfinder-preference-theme fieldset { - margin-bottom: 10px; -} - -.elfinder-preference-theme legend a { - font-size: 1.8em; - text-decoration: none; - cursor: pointer; -} - -.elfinder-preference-theme dt { - width: 20%; - word-break: break-all; -} - -.elfinder-preference-theme dt:after { - content: " :"; -} - -.elfinder-preference-theme dd { - margin-inline-start: 20%; -} - -.elfinder-preference img.elfinder-preference-theme-image { - display: block; - margin-left: auto; - margin-right: auto; - max-width: 90%; - max-height: 200px; - cursor: pointer; -} - -.elfinder-preference-theme-btn { - text-align: center; -} - -.elfinder-preference-theme button.elfinder-preference-theme-default { - display: inline; - margin: 0 10px; - font-size: 8pt; -} - -/********************** COMMAND "INFO" ****************************/ -.elfinder-rtl .elfinder-info-title .elfinder-cwd-icon:before { - right: 33px; - left: auto; -} - -.elfinder-info-title .elfinder-cwd-icon.elfinder-cwd-bgurl:after { - content: none; -} - -/********************** COMMAND "UPLOAD" ****************************/ -.elfinder-upload-dialog-wrapper .elfinder-upload-dirselect { - position: absolute; - bottom: 2px; - width: 16px; - height: 16px; - padding: 10px; - border: none; - overflow: hidden; - cursor: pointer; -} - -.elfinder-ltr .elfinder-upload-dialog-wrapper .elfinder-upload-dirselect { - left: 2px; -} - -.elfinder-rtl .elfinder-upload-dialog-wrapper .elfinder-upload-dirselect { - right: 2px; -} - -/********************** COMMAND "RM" ****************************/ -.elfinder-ltr .elfinder-rm-title .elfinder-cwd-icon:before { - left: 38px; -} - -.elfinder-rtl .elfinder-rm-title .elfinder-cwd-icon:before { - right: 86px; - left: auto; -} - -.elfinder-rm-title .elfinder-cwd-icon.elfinder-cwd-bgurl:after { - content: none; -} - -/********************** COMMAND "RENAME" ****************************/ -.elfinder-rename-batch div { - margin: 5px 8px; -} - -.elfinder-rename-batch .elfinder-rename-batch-name input { - width: 100%; - font-size: 1.6em; -} - -.elfinder-rename-batch-type { - text-align: center; -} - -.elfinder-rename-batch .elfinder-rename-batch-type label { - margin: 2px; - font-size: .9em; -} - -.elfinder-rename-batch-preview { - padding: 0 8px; - font-size: 1.1em; - min-height: 4ex; -} - - -/* File: /css/common.css */ -/*********************************************/ -/* COMMON ELFINDER STUFFS */ -/*********************************************/ - -/* for old jQuery UI */ -.ui-front { - z-index: 100; -} - -/* base container */ -div.elfinder { - padding: 0; - position: relative; - display: block; - visibility: visible; - font-size: 18px; - font-family: Verdana, Arial, Helvetica, sans-serif; -} - -/* prevent auto zoom on iOS */ -.elfinder-ios input, -.elfinder-ios select, -.elfinder-ios textarea { - font-size: 16px !important; -} - -/* full screen mode */ -.elfinder.elfinder-fullscreen > .ui-resizable-handle { - display: none; -} - -.elfinder-font-mono { - line-height: 2ex; -} - -/* in lazy execution status */ -.elfinder.elfinder-processing * { - cursor: progress !important -} - -.elfinder.elfinder-processing.elfinder-touch .elfinder-workzone:after { - position: absolute; - top: 0; - width: 100%; - height: 3px; - content: ''; - left: 0; - background-image: url(../img/progress.gif); - opacity: .6; - pointer-events: none; -} - -/* for disable select of Touch devices */ -.elfinder *:not(input):not(textarea):not(select):not([contenteditable=true]), -.elfinder-contextmenu *:not(input):not(textarea):not(select):not([contenteditable=true]) { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - /*-webkit-touch-callout:none;*/ - -webkit-user-select: none; - -moz-user-select: none; - -khtml-user-select: none; - user-select: none; -} - -.elfinder .overflow-scrolling-touch { - -webkit-overflow-scrolling: touch; -} - -/* right to left enviroment */ -.elfinder-rtl { - text-align: right; - direction: rtl; -} - -/* nav and cwd container */ -.elfinder-workzone { - padding: 0; - position: relative; - overflow: hidden; -} - -/* dir/file permissions and symlink markers */ -.elfinder-lock, -.elfinder-perms, -.elfinder-symlink { - position: absolute; - width: 16px; - height: 16px; - background-image: url(../img/toolbar.png); - background-repeat: no-repeat; - background-position: 0 -528px; -} - -.elfinder-symlink { -} - -/* noaccess */ -.elfinder-na .elfinder-perms { - background-position: 0 -96px; -} - -/* read only */ -.elfinder-ro .elfinder-perms { - background-position: 0 -64px; -} - -/* write only */ -.elfinder-wo .elfinder-perms { - background-position: 0 -80px; -} - -/* volume type group */ -.elfinder-group .elfinder-perms { - background-position: 0 0px; -} - -/* locked */ -.elfinder-lock { - background-position: 0 -656px; -} - -/* drag helper */ -.elfinder-drag-helper { - top: 0px; - left: 0px; - width: 70px; - height: 60px; - padding: 0 0 0 25px; - z-index: 100000; - will-change: left, top; -} - -.elfinder-drag-helper.html5-native { - position: absolute; - top: -1000px; - left: -1000px; -} - -/* drag helper status icon (default no-drop) */ -.elfinder-drag-helper-icon-status { - position: absolute; - width: 16px; - height: 16px; - left: 42px; - top: 60px; - background: url('../img/toolbar.png') 0 -96px no-repeat; - display: block; -} - -/* show "up-arrow" icon for move item */ -.elfinder-drag-helper-move .elfinder-drag-helper-icon-status { - background-position: 0 -720px; -} - -/* show "plus" icon when ctrl/shift pressed */ -.elfinder-drag-helper-plus .elfinder-drag-helper-icon-status { - background-position: 0 -544px; -} - -/* files num in drag helper */ -.elfinder-drag-num { - display: inline-box; - position: absolute; - top: 0; - left: 0; - width: auto; - height: 14px; - text-align: center; - padding: 1px 3px 1px 3px; - - font-weight: bold; - color: #fff; - background-color: red; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; -} - -/* icon in drag helper */ -.elfinder-drag-helper .elfinder-cwd-icon { - margin: 0 0 0 -24px; - float: left; -} - -/* transparent overlay */ -.elfinder-overlay { - position: absolute; - opacity: .2; - filter: Alpha(Opacity=20); -} - -/* panels under/below cwd (for search field etc) */ -.elfinder .elfinder-panel { - position: relative; - background-image: none; - padding: 7px 12px; -} - -/* for html5 drag and drop */ -[draggable=true] { - -khtml-user-drag: element; -} - -/* for place holder to content editable elements */ -.elfinder [contentEditable=true]:empty:not(:focus):before { - content: attr(data-ph); -} - -/* bottom tray */ -.elfinder div.elfinder-bottomtray { - position: fixed; - bottom: 0; - max-width: 100%; - opacity: .8; -} - -.elfinder.elfinder-ltr div.elfinder-bottomtray { - left: 0; -} - -.elfinder.elfinder-rtl div.elfinder-bottomtray { - right: 0; -} - -/* tooltip */ -.elfinder-ui-tooltip, -.elfinder .elfinder-ui-tooltip { - font-size: 14px; - padding: 2px 4px; -} - -/* File: /css/contextmenu.css */ -/* menu and submenu */ -.elfinder .elfinder-contextmenu, -.elfinder .elfinder-contextmenu-sub { - position: absolute; - border: 1px solid #aaa; - background: #fff; - color: #555; - padding: 4px 0; - top: 0; - left: 0; -} - -/* submenu */ -.elfinder .elfinder-contextmenu-sub { - top: 5px; -} - -/* submenu in rtl/ltr enviroment */ -.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-sub { - margin-left: -5px; -} - -.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-sub { - margin-right: -5px; -} - -/* menu item */ -.elfinder .elfinder-contextmenu-header { - margin-top: -4px; - padding: 0 .5em .2ex; - border: none; - text-align: center; -} - -.elfinder .elfinder-contextmenu-header span { - font-weight: normal; - font-size: 0.8em; - font-weight: bolder; -} - -.elfinder .elfinder-contextmenu-item { - position: relative; - display: block; - padding: 4px 30px; - text-decoration: none; - white-space: nowrap; - cursor: default; -} - -.elfinder .elfinder-contextmenu-item.ui-state-active { - border: none; -} - -.elfinder .elfinder-contextmenu-item .ui-icon { - width: 16px; - height: 16px; - position: absolute; - left: auto; - right: auto; - top: 50%; - margin-top: -8px; -} - -.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-item .ui-icon { - left: 2px; -} - -.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-item .ui-icon { - right: 2px; -} - -.elfinder-touch .elfinder-contextmenu-item { - padding: 12px 38px; -} - -/* root icon of each volume */ -.elfinder-navbar-root-local.elfinder-contextmenu-icon { - background-image: url("../img/volume_icon_local.svg"); - background-size: contain; -} - -.elfinder-navbar-root-trash.elfinder-contextmenu-icon { - background-image: url("../img/volume_icon_trash.svg"); - background-size: contain; -} - -.elfinder-navbar-root-ftp.elfinder-contextmenu-icon { - background-image: url("../img/volume_icon_ftp.svg"); - background-size: contain; -} - -.elfinder-navbar-root-sql.elfinder-contextmenu-icon { - background-image: url("../img/volume_icon_sql.svg"); - background-size: contain; -} - -.elfinder-navbar-root-dropbox.elfinder-contextmenu-icon { - background-image: url("../img/volume_icon_dropbox.svg"); - background-size: contain; -} - -.elfinder-navbar-root-googledrive.elfinder-contextmenu-icon { - background-image: url("../img/volume_icon_googledrive.svg"); - background-size: contain; -} - -.elfinder-navbar-root-onedrive.elfinder-contextmenu-icon { - background-image: url("../img/volume_icon_onedrive.svg"); - background-size: contain; -} - -.elfinder-navbar-root-box.elfinder-contextmenu-icon { - background-image: url("../img/volume_icon_box.svg"); - background-size: contain; -} - -.elfinder-navbar-root-zip.elfinder-contextmenu-icon { - background-image: url("../img/volume_icon_zip.svg"); - background-size: contain; -} - -.elfinder-navbar-root-network.elfinder-contextmenu-icon { - background-image: url("../img/volume_icon_network.svg"); - background-size: contain; -} - -/* text in item */ -.elfinder .elfinder-contextmenu .elfinder-contextmenu-item span { - display: block; -} - -/* submenu item in rtl/ltr enviroment */ -.elfinder .elfinder-contextmenu-sub .elfinder-contextmenu-item { - padding-left: 12px; - padding-right: 12px; -} - -.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-item { - text-align: left; -} - -.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-item { - text-align: right; -} - -.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-sub .elfinder-contextsubmenu-item-icon { - padding-left: 28px; -} - -.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-sub .elfinder-contextsubmenu-item-icon { - padding-right: 28px; -} - -.elfinder-touch .elfinder-contextmenu-ltr .elfinder-contextmenu-sub .elfinder-contextsubmenu-item-icon { - padding-left: 36px; -} - -.elfinder-touch .elfinder-contextmenu-rtl .elfinder-contextmenu-sub .elfinder-contextsubmenu-item-icon { - padding-right: 36px; -} - -/* command/submenu icon */ -.elfinder .elfinder-contextmenu-extra-icon, -.elfinder .elfinder-contextmenu-arrow, -.elfinder .elfinder-contextmenu-icon { - position: absolute; - top: 50%; - margin-top: -8px; - overflow: hidden; -} - -.elfinder-touch .elfinder-button-icon.elfinder-contextmenu-icon { - transform-origin: center center; -} - -/* command icon in rtl/ltr enviroment */ -.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-icon { - left: 8px; -} - -.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-icon { - right: 8px; -} - -.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-extra-icon { - right: 8px; -} - -.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-extra-icon { - left: 8px; -} - -/* arrow icon */ -.elfinder .elfinder-contextmenu-arrow { - width: 16px; - height: 16px; - background: url('../img/arrows-normal.png') 5px 4px no-repeat; -} - -/* arrow icon in rtl/ltr enviroment */ -.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-arrow { - right: 5px; -} - -.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-arrow { - left: 5px; - background-position: 0 -10px; -} - -/* command extra icon's , tag */ -.elfinder .elfinder-contextmenu-extra-icon a, -.elfinder .elfinder-contextmenu-extra-icon span { - position: relative; - width: 100%; - height: 100%; - margin: 0; - color: transparent !important; - text-decoration: none; - cursor: pointer; -} - -/* disable ui border/bg image on hover */ -.elfinder .elfinder-contextmenu .ui-state-hover { - border: 0 solid; - background-image: none; -} - -/* separator */ -.elfinder .elfinder-contextmenu-separator { - height: 0px; - border-top: 1px solid #ccc; - margin: 0 1px; -} - -/* for CSS style priority to ui-state-disabled - "background-image: none" */ -.elfinder .elfinder-contextmenu-item .elfinder-button-icon.ui-state-disabled { - background-image: url('../img/toolbar.png'); -} - -/* File: /css/cwd.css */ -/******************************************************************/ -/* CURRENT DIRECTORY STYLES */ -/******************************************************************/ -/* cwd container to avoid selectable on scrollbar */ -.elfinder-cwd-wrapper { - overflow: auto; - position: relative; - padding: 2px; - margin: 0; -} - -.elfinder-cwd-wrapper-list { - padding: 0; -} - -/* container */ -.elfinder-cwd { - position: absolute; - top: 0; - cursor: default; - padding: 0; - margin: 0; - -ms-touch-action: auto; - touch-action: auto; - min-width: 100%; -} - -.elfinder-ltr .elfinder-cwd { - left: 0; -} - -.elfinder-rtl .elfinder-cwd { - right: 0; -} - -.elfinder-cwd.elfinder-table-header-sticky { - position: -webkit-sticky; - position: -ms-sticky; - position: sticky; - top: 0; - left: auto; - right: auto; - width: -webkit-max-content; - width: -moz-max-content; - width: -ms-max-content; - width: max-content; - height: 0; - overflow: visible; -} - -.elfinder-cwd.elfinder-table-header-sticky table { - border-top: 2px solid; - padding-top: 0; -} - -.elfinder-cwd.elfinder-table-header-sticky td { - display: inline-block; -} - -.elfinder-droppable-active .elfinder-cwd.elfinder-table-header-sticky table { - border-top: 2px solid transparent; -} - -/* fixed table header container */ -.elfinder-cwd-fixheader .elfinder-cwd { - position: relative; -} - -/* container active on dropenter */ -.elfinder .elfinder-cwd-wrapper.elfinder-droppable-active { - outline: 2px solid #8cafed; - outline-offset: -2px; -} - -.elfinder-cwd-wrapper-empty .elfinder-cwd:after { - display: block; - position: absolute; - height: auto; - width: 90%; - width: calc(100% - 20px); - position: absolute; - top: 50%; - left: 50%; - -ms-transform: translateY(-50%) translateX(-50%); - -webkit-transform: translateY(-50%) translateX(-50%); - transform: translateY(-50%) translateX(-50%); - line-height: 1.5em; - text-align: center; - white-space: pre-wrap; - opacity: 0.6; - filter: Alpha(Opacity=60); - font-weight: bold; -} - -.elfinder-cwd-file .elfinder-cwd-select { - position: absolute; - top: 0px; - left: 0px; - background-color: transparent; - opacity: .4; - filter: Alpha(Opacity=40); -} - -.elfinder-mobile .elfinder-cwd-file .elfinder-cwd-select { - width: 30px; - height: 30px; -} - -.elfinder-cwd-file.ui-selected .elfinder-cwd-select { - opacity: .8; - filter: Alpha(Opacity=80); -} - -.elfinder-rtl .elfinder-cwd-file .elfinder-cwd-select { - left: auto; - right: 0px; -} - -.elfinder .elfinder-cwd-selectall { - position: absolute; - width: 30px; - height: 30px; - top: 0px; - opacity: .8; - filter: Alpha(Opacity=80); -} - -.elfinder .elfinder-workzone.elfinder-cwd-wrapper-empty .elfinder-cwd-selectall { - display: none; -} - -/************************** ICONS VIEW ********************************/ - -.elfinder-ltr .elfinder-workzone .elfinder-cwd-selectall { - text-align: right; - right: 18px; - left: auto; -} - -.elfinder-rtl .elfinder-workzone .elfinder-cwd-selectall { - text-align: left; - right: auto; - left: 18px; -} - -.elfinder-ltr.elfinder-mobile .elfinder-workzone .elfinder-cwd-selectall { - right: 0px; -} - -.elfinder-rtl.elfinder-mobile .elfinder-workzone .elfinder-cwd-selectall { - left: 0px; -} - -.elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-select.ui-state-hover { - background-color: transparent; -} - -/* file container */ -.elfinder-cwd-view-icons .elfinder-cwd-file { - width: 120px; - height: 90px; - padding-bottom: 2px; - cursor: default; - border: none; - position: relative; -} - -.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-active { - border: none; -} - -/* ltr/rtl enviroment */ -.elfinder-ltr .elfinder-cwd-view-icons .elfinder-cwd-file { - float: left; - margin: 0 3px 2px 0; -} - -.elfinder-rtl .elfinder-cwd-view-icons .elfinder-cwd-file { - float: right; - margin: 0 0 5px 3px; -} - -/* remove ui hover class border */ -.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-hover { - border: 0 solid; -} - -/* icon wrapper to create selected highlight around icon */ -.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper { - width: 52px; - height: 52px; - margin: 1px auto 1px auto; - padding: 2px; - position: relative; -} - -/*** Custom Icon Size size1 - size3 ***/ -/* type badge */ -.elfinder-cwd-size1 .elfinder-cwd-icon:before, -.elfinder-cwd-size2 .elfinder-cwd-icon:before, -.elfinder-cwd-size3 .elfinder-cwd-icon:before { - top: 3px; - display: block; -} - -/* size1 */ -.elfinder-cwd-size1.elfinder-cwd-view-icons .elfinder-cwd-file { - width: 120px; - height: 112px; -} - -.elfinder-cwd-size1.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper { - width: 74px; - height: 74px; -} - -.elfinder-cwd-size1 .elfinder-cwd-icon { - -ms-transform-origin: top center; - -ms-transform: scale(1.5); - -webkit-transform-origin: top center; - -webkit-transform: scale(1.5); - transform-origin: top center; - transform: scale(1.5); -} - -.elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl:before { - -ms-transform-origin: top left; - -ms-transform: scale(1.35) translate(-4px, 15%); - -webkit-transform-origin: top left; - -webkit-transform: scale(1.35) translate(-4px, 15%); - transform-origin: top left; - transform: scale(1.35) translate(-4px, 15%); -} - -.elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl:after { - -ms-transform: scale(1) translate(10px, -5px); - -webkit-transform: scale(1) translate(10px, -5px); - transform: scale(1) translate(10px, -5px); -} - -.elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl { - -ms-transform-origin: center center; - -ms-transform: scale(1); - -webkit-transform-origin: center center; - -webkit-transform: scale(1); - transform-origin: center center; - transform: scale(1); - width: 72px; - height: 72px; - -moz-border-radius: 6px; - -webkit-border-radius: 6px; - border-radius: 6px; -} - -/* size2 */ -.elfinder-cwd-size2.elfinder-cwd-view-icons .elfinder-cwd-file { - width: 140px; - height: 134px; -} - -.elfinder-cwd-size2.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper { - width: 98px; - height: 98px; -} - -.elfinder-cwd-size2 .elfinder-cwd-icon { - -ms-transform-origin: top center; - -ms-transform: scale(2); - -webkit-transform-origin: top center; - -webkit-transform: scale(2); - transform-origin: top center; - transform: scale(2); -} - -.elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl:before { - -ms-transform-origin: top left; - -ms-transform: scale(1.8) translate(-5px, 18%); - -webkit-transform-origin: top left; - -webkit-transform: scale(1.8) translate(-5px, 18%); - transform-origin: top left; - transform: scale(1.8) translate(-5px, 18%); -} - -.elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl:after { - -ms-transform: scale(1.1) translate(0px, 10px); - -webkit-transform: scale(1.1) translate(0px, 10px); - transform: scale(1.1) translate(0px, 10px); -} - -.elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl { - -ms-transform-origin: center center; - -ms-transform: scale(1); - -webkit-transform-origin: center center; - -webkit-transform: scale(1); - transform-origin: center center; - transform: scale(1); - width: 96px; - height: 96px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; -} - -/* size3 */ -.elfinder-cwd-size3.elfinder-cwd-view-icons .elfinder-cwd-file { - width: 174px; - height: 158px; -} - -.elfinder-cwd-size3.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper { - width: 122px; - height: 122px; -} - -.elfinder-cwd-size3 .elfinder-cwd-icon { - -ms-transform-origin: top center; - -ms-transform: scale(2.5); - -webkit-transform-origin: top center; - -webkit-transform: scale(2.5); - transform-origin: top center; - transform: scale(2.5); -} - -.elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl:before { - -ms-transform-origin: top left; - -ms-transform: scale(2.25) translate(-6px, 20%); - -webkit-transform-origin: top left; - -webkit-transform: scale(2.25) translate(-6px, 20%); - transform-origin: top left; - transform: scale(2.25) translate(-6px, 20%); -} - -.elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl:after { - -ms-transform: scale(1.2) translate(-9px, 22px); - -webkit-transform: scale(1.2) translate(-9px, 22px); - transform: scale(1.2) translate(-9px, 22px); -} - -.elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl { - -ms-transform-origin: center center; - -ms-transform: scale(1); - -webkit-transform-origin: center center; - -webkit-transform: scale(1); - transform-origin: center center; - transform: scale(1); - width: 120px; - height: 120px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; - border-radius: 10px; -} - -/* file name place */ -.elfinder-cwd-view-icons .elfinder-cwd-filename { - text-align: center; - max-height: 2.4em; - line-height: 1.2em; - white-space: pre-line; - overflow: hidden; - text-overflow: ellipsis; - -o-text-overflow: ellipsis; - margin: 3px 1px 0 1px; - padding: 1px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - /* for webkit CSS3 */ - word-break: break-word; - overflow-wrap: break-word; - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; -} - -/* permissions/symlink markers */ -.elfinder-cwd-view-icons .elfinder-perms { - bottom: 4px; - right: 2px; -} - -.elfinder-cwd-view-icons .elfinder-lock { - top: -3px; - right: -2px; -} - -.elfinder-cwd-view-icons .elfinder-symlink { - bottom: 6px; - left: 0px; -} - -/* icon/thumbnail */ -.elfinder-cwd-icon { - display: block; - width: 48px; - height: 48px; - margin: 0 auto; - background-image: url('../img/icons-big.svg'); - background-image: url('../img/icons-big.png') \9; - background-position: 0 0; - background-repeat: no-repeat; - -moz-background-clip: padding; - -webkit-background-clip: padding-box; - background-clip: padding-box; -} - -/* volume icon of root in folder */ -.elfinder-navbar-root-local .elfinder-cwd-icon, -.elfinder-cwd .elfinder-navbar-root-local.elfinder-droppable-active .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon { - background-image: url("../img/volume_icon_local.svg"); - background-image: url("../img/volume_icon_local.png") \9; - background-position: 0 0; - background-size: contain; -} - -.elfinder-cwd .elfinder-navbar-root-local.elfinder-droppable-active .elfinder-cwd-icon { - background-position: 1px -1px; -} - -.elfinder-navbar-root-trash .elfinder-cwd-icon, -.elfinder-cwd .elfinder-navbar-root-trash.elfinder-droppable-active .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon { - background-image: url("../img/volume_icon_trash.svg"); - background-image: url("../img/volume_icon_trash.png") \9; - background-position: 0 0; - background-size: contain; -} - -.elfinder-cwd .elfinder-navbar-root-trash.elfinder-droppable-active .elfinder-cwd-icon { - background-position: 1px -1px; -} - -.elfinder-navbar-root-ftp .elfinder-cwd-icon, -.elfinder-cwd .elfinder-navbar-root-ftp.elfinder-droppable-active .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon { - background-image: url("../img/volume_icon_ftp.svg"); - background-image: url("../img/volume_icon_ftp.png") \9; - background-position: 0 0; - background-size: contain; -} - -.elfinder-cwd .elfinder-navbar-root-ftp.elfinder-droppable-active .elfinder-cwd-icon { - background-position: 1px -1px; -} - -.elfinder-navbar-root-sql .elfinder-cwd-icon, -.elfinder-cwd .elfinder-navbar-root-sql.elfinder-droppable-active .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon { - background-image: url("../img/volume_icon_sql.svg"); - background-image: url("../img/volume_icon_sql.png") \9; - background-position: 0 0; - background-size: contain; -} - -.elfinder-cwd .elfinder-navbar-root-sql.elfinder-droppable-active .elfinder-cwd-icon { - background-position: 1px -1px; -} - -.elfinder-navbar-root-dropbox .elfinder-cwd-icon, -.elfinder-cwd .elfinder-navbar-root-dropbox.elfinder-droppable-active .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon { - background-image: url("../img/volume_icon_dropbox.svg"); - background-image: url("../img/volume_icon_dropbox.png") \9; - background-position: 0 0; - background-size: contain; -} - -.elfinder-cwd .elfinder-navbar-root-dropbox.elfinder-droppable-active .elfinder-cwd-icon { - background-position: 1px -1px; -} - -.elfinder-navbar-root-googledrive .elfinder-cwd-icon, -.elfinder-cwd .elfinder-navbar-root-googledrive.elfinder-droppable-active .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon { - background-image: url("../img/volume_icon_googledrive.svg"); - background-image: url("../img/volume_icon_googledrive.png") \9; - background-position: 0 0; - background-size: contain; -} - -.elfinder-navbar-root-onedrive .elfinder-cwd-icon, -.elfinder-cwd .elfinder-navbar-root-onedrive.elfinder-droppable-active .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon { - background-image: url("../img/volume_icon_onedrive.svg"); - background-image: url("../img/volume_icon_onedrive.png") \9; - background-position: 0 0; - background-size: contain; -} - -.elfinder-navbar-root-box .elfinder-cwd-icon, -.elfinder-cwd .elfinder-navbar-root-box.elfinder-droppable-active .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon { - background-image: url("../img/volume_icon_box.svg"); - background-image: url("../img/volume_icon_box.png") \9; - background-position: 0 0; - background-size: contain; -} - -.elfinder-navbar-root-zip .elfinder-cwd-icon, -.elfinder-cwd .elfinder-navbar-root-zip.elfinder-droppable-active .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon { - background-image: url("../img/volume_icon_zip.svg"); - background-image: url("../img/volume_icon_zip.png") \9; - background-position: 0 0; - background-size: contain; -} - -.elfinder-cwd .elfinder-navbar-root-googledrive.elfinder-droppable-active .elfinder-cwd-icon, -.elfinder-cwd .elfinder-navbar-root-onedrive.elfinder-droppable-active .elfinder-cwd-icon, -.elfinder-cwd .elfinder-navbar-root-box.elfinder-droppable-active .elfinder-cwd-icon { - background-position: 1px -1px; -} - -.elfinder-navbar-root-network .elfinder-cwd-icon, -.elfinder-cwd .elfinder-navbar-root-network.elfinder-droppable-active .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon { - background-image: url("../img/volume_icon_network.svg"); - background-image: url("../img/volume_icon_network.png") \9; - background-position: 0 0; - background-size: contain; -} - -.elfinder-cwd .elfinder-navbar-root-network.elfinder-droppable-active .elfinder-cwd-icon { - background-position: 1px -1px; -} - -/* type badge in "icons" view */ -.elfinder-cwd-icon:before { - content: none; - position: absolute; - left: 0px; - top: 5px; - min-width: 20px; - max-width: 84px; - text-align: center; - padding: 0px 4px 1px; - border-radius: 4px; - font-family: Verdana; - font-size: 10px; - line-height: 1.3em; - -webkit-transform: scale(0.9); - -moz-transform: scale(0.9); - -ms-transform: scale(0.9); - -o-transform: scale(0.9); - transform: scale(0.9); -} - -.elfinder-cwd-view-icons .elfinder-cwd-icon.elfinder-cwd-bgurl:before { - left: -10px; -} - -/* addtional type badge name */ -.elfinder-cwd-icon.elfinder-cwd-icon-mp2t:before { - content: 'ts' -} - -.elfinder-cwd-icon.elfinder-cwd-icon-dash-xml:before { - content: 'dash' -} - -.elfinder-cwd-icon.elfinder-cwd-icon-x-mpegurl:before { - content: 'hls' -} - -.elfinder-cwd-icon.elfinder-cwd-icon-x-c:before { - content: 'c++' -} - -/* thumbnail image */ -.elfinder-cwd-icon.elfinder-cwd-bgurl { - background-position: center center; - background-repeat: no-repeat; - -moz-background-size: contain; - background-size: contain; -} - -/* thumbnail self */ -.elfinder-cwd-icon.elfinder-cwd-bgurl.elfinder-cwd-bgself { - -moz-background-size: cover; - background-size: cover; -} - -/* thumbnail crop*/ -.elfinder-cwd-icon.elfinder-cwd-bgurl { - -moz-background-size: cover; - background-size: cover; -} - -.elfinder-cwd-icon.elfinder-cwd-bgurl:after { - content: ' '; -} - -.elfinder-cwd-bgurl:after { - position: relative; - display: inline-block; - top: 36px; - left: -38px; - width: 48px; - height: 48px; - background-image: url('../img/icons-big.svg'); - background-image: url('../img/icons-big.png') \9; - background-repeat: no-repeat; - background-size: auto !important; - opacity: .8; - filter: Alpha(Opacity=60); - -webkit-transform-origin: 54px -24px; - -webkit-transform: scale(.6); - -moz-transform-origin: 54px -24px; - -moz-transform: scale(.6); - -ms-transform-origin: 54px -24px; - -ms-transform: scale(.6); - -o-transform-origin: 54px -24px; - -o-transform: scale(.6); - transform-origin: 54px -24px; - transform: scale(.6); -} - -/* thumbnail image and draging icon */ -.elfinder-cwd-icon.elfinder-cwd-icon-drag { - width: 48px; - height: 48px; -} - -/* thumbnail image and draging icon overlay none */ -.elfinder-cwd-icon.elfinder-cwd-icon-drag:before, -.elfinder-cwd-icon.elfinder-cwd-icon-drag:after, -.elfinder-cwd-icon-image.elfinder-cwd-bgurl:after, -.elfinder-cwd-icon-directory.elfinder-cwd-bgurl:after { - content: none; -} - -/* "opened folder" icon on dragover */ -.elfinder-cwd .elfinder-droppable-active .elfinder-cwd-icon { - background-position: 0 -100px; -} - -.elfinder-cwd .elfinder-droppable-active { - outline: 2px solid #8cafed; - outline-offset: -2px; -} - -/* mimetypes icons */ -.elfinder-cwd-icon-directory { - background-position: 0 -50px; -} - -.elfinder-cwd-icon-application:after, -.elfinder-cwd-icon-application { - background-position: 0 -150px; -} - -.elfinder-cwd-icon-text:after, -.elfinder-cwd-icon-text { - background-position: 0 -1350px; -} - -.elfinder-cwd-icon-plain:after, -.elfinder-cwd-icon-plain, -.elfinder-cwd-icon-x-empty:after, -.elfinder-cwd-icon-x-empty { - background-position: 0 -200px; -} - -.elfinder-cwd-icon-image:after, -.elfinder-cwd-icon-vnd-adobe-photoshop:after, -.elfinder-cwd-icon-image, -.elfinder-cwd-icon-vnd-adobe-photoshop { - background-position: 0 -250px; -} - -.elfinder-cwd-icon-postscript:after, -.elfinder-cwd-icon-postscript { - background-position: 0 -1550px; -} - -.elfinder-cwd-icon-audio:after, -.elfinder-cwd-icon-audio { - background-position: 0 -300px; -} - -.elfinder-cwd-icon-video:after, -.elfinder-cwd-icon-video, -.elfinder-cwd-icon-flash-video, -.elfinder-cwd-icon-dash-xml, -.elfinder-cwd-icon-vnd-apple-mpegurl, -.elfinder-cwd-icon-x-mpegurl { - background-position: 0 -350px; -} - -.elfinder-cwd-icon-rtf:after, -.elfinder-cwd-icon-rtfd:after, -.elfinder-cwd-icon-rtf, -.elfinder-cwd-icon-rtfd { - background-position: 0 -400px; -} - -.elfinder-cwd-icon-pdf:after, -.elfinder-cwd-icon-pdf { - background-position: 0 -450px; -} - -.elfinder-cwd-icon-ms-excel, -.elfinder-cwd-icon-ms-excel:after, -.elfinder-cwd-icon-vnd-ms-excel, -.elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12:after, -.elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12:after, -.elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12:after, -.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12:after, -.elfinder-cwd-icon-vnd-ms-excel:after, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet:after, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template:after { - background-position: 0 -1450px -} - -.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet, -.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template, -.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template:after, -.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet:after { - background-position: 0 -1700px -} - -.elfinder-cwd-icon-vnd-ms-powerpoint, -.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12:after, -.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12:after, -.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12:after, -.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12:after, -.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12:after, -.elfinder-cwd-icon-vnd-ms-powerpoint:after, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation:after, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide:after, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slideshow, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slideshow:after, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-template, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-template:after { - background-position: 0 -1400px -} - -.elfinder-cwd-icon-vnd-oasis-opendocument-presentation, -.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template, -.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template:after, -.elfinder-cwd-icon-vnd-oasis-opendocument-presentation:after { - background-position: 0 -1650px -} - -.elfinder-cwd-icon-msword, -.elfinder-cwd-icon-msword:after, -.elfinder-cwd-icon-vnd-ms-word, -.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12:after, -.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12:after, -.elfinder-cwd-icon-vnd-ms-word:after, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-document, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-document:after, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-template, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-template:after { - background-position: 0 -1500px -} - -.elfinder-cwd-icon-vnd-oasis-opendocument-text, -.elfinder-cwd-icon-vnd-oasis-opendocument-text-master, -.elfinder-cwd-icon-vnd-oasis-opendocument-text-master:after, -.elfinder-cwd-icon-vnd-oasis-opendocument-text-template, -.elfinder-cwd-icon-vnd-oasis-opendocument-text-template:after, -.elfinder-cwd-icon-vnd-oasis-opendocument-text-web, -.elfinder-cwd-icon-vnd-oasis-opendocument-text-web:after, -.elfinder-cwd-icon-vnd-oasis-opendocument-text:after { - background-position: 0 -1750px -} - -.elfinder-cwd-icon-vnd-ms-office, -.elfinder-cwd-icon-vnd-ms-office:after { - background-position: 0 -500px -} - -.elfinder-cwd-icon-vnd-oasis-opendocument-chart, -.elfinder-cwd-icon-vnd-oasis-opendocument-chart:after, -.elfinder-cwd-icon-vnd-oasis-opendocument-database, -.elfinder-cwd-icon-vnd-oasis-opendocument-database:after, -.elfinder-cwd-icon-vnd-oasis-opendocument-formula, -.elfinder-cwd-icon-vnd-oasis-opendocument-formula:after, -.elfinder-cwd-icon-vnd-oasis-opendocument-graphics, -.elfinder-cwd-icon-vnd-oasis-opendocument-graphics-template, -.elfinder-cwd-icon-vnd-oasis-opendocument-graphics-template:after, -.elfinder-cwd-icon-vnd-oasis-opendocument-graphics:after, -.elfinder-cwd-icon-vnd-oasis-opendocument-image, -.elfinder-cwd-icon-vnd-oasis-opendocument-image:after, -.elfinder-cwd-icon-vnd-openofficeorg-extension, -.elfinder-cwd-icon-vnd-openofficeorg-extension:after { - background-position: 0 -1600px -} - -.elfinder-cwd-icon-html:after, -.elfinder-cwd-icon-html { - background-position: 0 -550px; -} - -.elfinder-cwd-icon-css:after, -.elfinder-cwd-icon-css { - background-position: 0 -600px; -} - -.elfinder-cwd-icon-javascript:after, -.elfinder-cwd-icon-x-javascript:after, -.elfinder-cwd-icon-javascript, -.elfinder-cwd-icon-x-javascript { - background-position: 0 -650px; -} - -.elfinder-cwd-icon-x-perl:after, -.elfinder-cwd-icon-x-perl { - background-position: 0 -700px; -} - -.elfinder-cwd-icon-x-python:after, -.elfinder-cwd-icon-x-python { - background-position: 0 -750px; -} - -.elfinder-cwd-icon-x-ruby:after, -.elfinder-cwd-icon-x-ruby { - background-position: 0 -800px; -} - -.elfinder-cwd-icon-x-sh:after, -.elfinder-cwd-icon-x-shellscript:after, -.elfinder-cwd-icon-x-sh, -.elfinder-cwd-icon-x-shellscript { - background-position: 0 -850px; -} - -.elfinder-cwd-icon-x-c:after, -.elfinder-cwd-icon-x-csrc:after, -.elfinder-cwd-icon-x-chdr:after, -.elfinder-cwd-icon-x-c--:after, -.elfinder-cwd-icon-x-c--src:after, -.elfinder-cwd-icon-x-c--hdr:after, -.elfinder-cwd-icon-x-java:after, -.elfinder-cwd-icon-x-java-source:after, -.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 { - background-position: 0 -900px; -} - -.elfinder-cwd-icon-x-php:after, -.elfinder-cwd-icon-x-php { - background-position: 0 -950px; -} - -.elfinder-cwd-icon-xml:after, -.elfinder-cwd-icon-xml { - background-position: 0 -1000px; -} - -.elfinder-cwd-icon-zip:after, -.elfinder-cwd-icon-x-zip:after, -.elfinder-cwd-icon-x-xz:after, -.elfinder-cwd-icon-x-7z-compressed:after, -.elfinder-cwd-icon-zip, -.elfinder-cwd-icon-x-zip, -.elfinder-cwd-icon-x-xz, -.elfinder-cwd-icon-x-7z-compressed { - background-position: 0 -1050px; -} - -.elfinder-cwd-icon-x-gzip:after, -.elfinder-cwd-icon-x-tar:after, -.elfinder-cwd-icon-x-gzip, -.elfinder-cwd-icon-x-tar { - background-position: 0 -1100px; -} - -.elfinder-cwd-icon-x-bzip:after, -.elfinder-cwd-icon-x-bzip2:after, -.elfinder-cwd-icon-x-bzip, -.elfinder-cwd-icon-x-bzip2 { - background-position: 0 -1150px; -} - -.elfinder-cwd-icon-x-rar:after, -.elfinder-cwd-icon-x-rar-compressed:after, -.elfinder-cwd-icon-x-rar, -.elfinder-cwd-icon-x-rar-compressed { - background-position: 0 -1200px; -} - -.elfinder-cwd-icon-x-shockwave-flash:after, -.elfinder-cwd-icon-x-shockwave-flash { - background-position: 0 -1250px; -} - -.elfinder-cwd-icon-group { - background-position: 0 -1300px; -} - -/* textfield inside icon */ -.elfinder-cwd-filename input { - width: 100%; - border: none; - margin: 0; - padding: 0; -} - -.elfinder-cwd-view-icons input { - text-align: center; -} - -.elfinder-cwd-view-icons textarea { - width: 100%; - border: 0px solid; - margin: 0; - padding: 0; - text-align: center; - overflow: hidden; - resize: none; -} - -.elfinder-cwd-view-icons { - text-align: center; -} - -/************************************ LIST VIEW ************************************/ - -/*.elfinder-cwd-view-list { padding:0 0 4px 0; }*/ - -.elfinder-cwd-wrapper.elfinder-cwd-fixheader .elfinder-cwd::after { - display: none; -} - -.elfinder-cwd table { - width: 100%; - border-collapse: separate; - border: 0 solid; - margin: 0 0 10px 0; - border-spacing: 0; - box-sizing: padding-box; - padding: 2px; - position: relative; -} - -.elfinder-cwd table td { - /* fix conflict with Bootstrap CSS */ - box-sizing: content-box; -} - -.elfinder-cwd-wrapper-list.elfinder-cwd-fixheader { - position: absolute; - overflow: hidden; -} - -.elfinder-cwd-wrapper-list.elfinder-cwd-fixheader:before { - content: ''; - position: absolute; - width: 100%; - top: 0; - height: 3px; - background-color: white; -} - -.elfinder-droppable-active + .elfinder-cwd-wrapper-list.elfinder-cwd-fixheader:before { - background-color: #8cafed; -} - -.elfinder .elfinder-workzone div.elfinder-cwd-fixheader table { - table-layout: fixed; -} - -.elfinder .elfinder-cwd table tbody.elfinder-cwd-fixheader { - position: relative; -} - -.elfinder-ltr .elfinder-cwd thead .elfinder-cwd-selectall { - text-align: left; - right: auto; - left: 0px; - padding-top: 3px; -} - -.elfinder-rtl .elfinder-cwd thead .elfinder-cwd-selectall { - text-align: right; - right: 0px; - left: auto; - padding-top: 3px; -} - -.elfinder-touch .elfinder-cwd thead .elfinder-cwd-selectall { - padding-top: 4px; -} - -.elfinder .elfinder-cwd table thead tr { - border-left: 0 solid; - border-top: 0 solid; - border-right: 0 solid; -} - -.elfinder .elfinder-cwd table thead td { - padding: 4px 14px; -} - -.elfinder-ltr .elfinder-cwd.elfinder-has-checkbox table thead td:first-child { - padding: 4px 14px 4px 22px; -} - -.elfinder-rtl .elfinder-cwd.elfinder-has-checkbox table thead td:first-child { - padding: 4px 22px 4px 14px; -} - -.elfinder-touch .elfinder-cwd table thead td, -.elfinder-touch .elfinder-cwd.elfinder-has-checkbox table thead td:first-child { - padding-top: 8px; - padding-bottom: 8px; -} - -.elfinder .elfinder-cwd table thead td.ui-state-active { - background: #ebf1f6; - background: -moz-linear-gradient(top, #ebf1f6 0%, #abd3ee 50%, #89c3eb 51%, #d5ebfb 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebf1f6), color-stop(50%, #abd3ee), color-stop(51%, #89c3eb), color-stop(100%, #d5ebfb)); - background: -webkit-linear-gradient(top, #ebf1f6 0%, #abd3ee 50%, #89c3eb 51%, #d5ebfb 100%); - background: -o-linear-gradient(top, #ebf1f6 0%, #abd3ee 50%, #89c3eb 51%, #d5ebfb 100%); - background: -ms-linear-gradient(top, #ebf1f6 0%, #abd3ee 50%, #89c3eb 51%, #d5ebfb 100%); - background: linear-gradient(to bottom, #ebf1f6 0%, #abd3ee 50%, #89c3eb 51%, #d5ebfb 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebf1f6', endColorstr='#d5ebfb', GradientType=0); -} - -.elfinder .elfinder-cwd table td { - padding: 4px 12px; - white-space: pre; - overflow: hidden; - text-align: right; - cursor: default; - border: 0 solid; -} - -.elfinder .elfinder-cwd table tbody td:first-child { - position: relative -} - -.elfinder .elfinder-cwd table td div { - box-sizing: content-box; -} - -tr.elfinder-cwd-file td .elfinder-cwd-select { - padding-top: 3px; -} - -.elfinder-mobile tr.elfinder-cwd-file td .elfinder-cwd-select { - width: 40px; -} - -.elfinder-touch tr.elfinder-cwd-file td .elfinder-cwd-select { - padding-top: 10px; -} - -.elfinder-touch .elfinder-cwd tr td { - padding: 10px 12px; -} - -.elfinder-touch .elfinder-cwd tr.elfinder-cwd-file td { - padding: 13px 12px; -} - -.elfinder-ltr .elfinder-cwd table td { - text-align: right; -} - -.elfinder-ltr .elfinder-cwd table td:first-child { - text-align: left; -} - -.elfinder-rtl .elfinder-cwd table td { - text-align: left; -} - -.elfinder-rtl .elfinder-cwd table td:first-child { - text-align: right; -} - -.elfinder-odd-row { - background: #eee; -} - -/* filename container */ -.elfinder-cwd-view-list .elfinder-cwd-file-wrapper { - width: 97%; - position: relative; -} - -/* filename container in ltr/rtl enviroment */ -.elfinder-ltr .elfinder-cwd-view-list.elfinder-has-checkbox .elfinder-cwd-file-wrapper { - margin-left: 8px; -} - -.elfinder-rtl .elfinder-cwd-view-list.elfinder-has-checkbox .elfinder-cwd-file-wrapper { - margin-right: 8px; -} - -.elfinder-ltr .elfinder-cwd-view-list .elfinder-cwd-filename { - padding-left: 23px; -} - -.elfinder-rtl .elfinder-cwd-view-list .elfinder-cwd-filename { - padding-right: 23px; -} - -/* premissions/symlink marker */ -.elfinder-cwd-view-list .elfinder-perms, -.elfinder-cwd-view-list .elfinder-lock, -.elfinder-cwd-view-list .elfinder-symlink { - margin-top: -6px; - opacity: .6; - filter: Alpha(Opacity=60); -} - -.elfinder-cwd-view-list .elfinder-perms { - bottom: -4px; -} - -.elfinder-cwd-view-list .elfinder-lock { - top: 0px; -} - -.elfinder-cwd-view-list .elfinder-symlink { - bottom: -4px; -} - -/* markers in ltr/rtl enviroment */ -.elfinder-ltr .elfinder-cwd-view-list .elfinder-perms { - left: 8px; -} - -.elfinder-rtl .elfinder-cwd-view-list .elfinder-perms { - right: -8px; -} - -.elfinder-ltr .elfinder-cwd-view-list .elfinder-lock { - left: 10px; -} - -.elfinder-rtl .elfinder-cwd-view-list .elfinder-lock { - right: -10px; -} - -.elfinder-ltr .elfinder-cwd-view-list .elfinder-symlink { - left: -7px; -} - -.elfinder-rtl .elfinder-cwd-view-list .elfinder-symlink { - right: 7px; -} - -/* file icon */ -.elfinder-cwd-view-list td .elfinder-cwd-icon { - width: 16px; - height: 16px; - position: absolute; - top: 50%; - margin-top: -8px; - background-image: url(../img/icons-small.png); -} - -/* icon in ltr/rtl enviroment */ -.elfinder-ltr .elfinder-cwd-view-list .elfinder-cwd-icon { - left: 0; -} - -.elfinder-rtl .elfinder-cwd-view-list .elfinder-cwd-icon { - right: 0; -} - -/* type badge, thumbnail image overlay */ -.elfinder-cwd-view-list .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-cwd-icon:after { - content: none; -} - -/* table header resize handle */ -.elfinder-cwd-view-list thead td .ui-resizable-handle { - height: 100%; - top: 6px; -} - -.elfinder-touch .elfinder-cwd-view-list thead td .ui-resizable-handle { - top: -4px; - margin: 10px; -} - -.elfinder-cwd-view-list thead td .ui-resizable-e { - right: -7px; -} - -.elfinder-cwd-view-list thead td .ui-resizable-w { - left: -7px; -} - -.elfinder-touch .elfinder-cwd-view-list thead td .ui-resizable-e { - right: -16px; -} - -.elfinder-touch .elfinder-cwd-view-list thead td .ui-resizable-w { - left: -16px; -} - -/* empty message */ -.elfinder-cwd-wrapper-empty .elfinder-cwd-view-list.elfinder-cwd:after { - margin-top: 0; -} - -/* overlay message board */ -.elfinder-cwd-message-board { - position: absolute; - position: -webkit-sticky; - position: sticky; - width: 100%; - height: calc(100% - 0.01px); /* for Firefox scroll problem */ - top: 0; - left: 0; - margin: 0; - padding: 0; - pointer-events: none; - background-color: transparent; -} - -/* overlay message board for trash */ -.elfinder-cwd-wrapper-trash .elfinder-cwd-message-board { - background-image: url(../img/trashmesh.png); -} - -.elfinder-cwd-message-board .elfinder-cwd-trash { - position: absolute; - bottom: 0; - font-size: 30px; - width: 100%; - text-align: right; - display: none; -} - -.elfinder-rtl .elfinder-cwd-message-board .elfinder-cwd-trash { - text-align: left; -} - -.elfinder-mobile .elfinder-cwd-message-board .elfinder-cwd-trash { - font-size: 20px; -} - -.elfinder-cwd-wrapper-trash .elfinder-cwd-message-board .elfinder-cwd-trash { - display: block; - opacity: .3; -} - -/* overlay message board for expires */ -.elfinder-cwd-message-board .elfinder-cwd-expires { - position: absolute; - bottom: 0; - font-size: 24px; - width: 100%; - text-align: right; - opacity: .25; -} - -.elfinder-rtl .elfinder-cwd-message-board .elfinder-cwd-expires { - text-align: left; -} - -.elfinder-mobile .elfinder-cwd-message-board .elfinder-cwd-expires { - font-size: 20px; -} - -/* File: /css/dialog.css */ -/*********************************************/ -/* DIALOGS STYLES */ -/*********************************************/ - -/* common dialogs class */ -.std42-dialog { - padding: 0; - position: absolute; - left: auto; - right: auto; - box-sizing: border-box; -} - -.std42-dialog.elfinder-dialog-minimized { - overFlow: hidden; - position: relative; - float: left; - width: auto; - cursor: pointer; -} - -.elfinder-rtl .std42-dialog.elfinder-dialog-minimized { - float: right; -} - -.std42-dialog input { - border: 1px solid; -} - -/* titlebar */ -.std42-dialog .ui-dialog-titlebar { - border-left: 0 solid transparent; - border-top: 0 solid transparent; - border-right: 0 solid transparent; - font-weight: normal; - padding: .2em 1em; -} - -.std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar { - padding: 0 .5em; - height: 20px; -} - -.elfinder-touch .std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar { - padding: .3em .5em; -} - -.std42-dialog.ui-draggable-disabled .ui-dialog-titlebar { - cursor: default; -} - -.std42-dialog .ui-dialog-titlebar .ui-widget-header { - border: none; - cursor: pointer; -} - -.std42-dialog .ui-dialog-titlebar span.elfinder-dialog-title { - display: inherit; - word-break: break-all; -} - -.std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar span.elfinder-dialog-title { - display: list-item; - display: -moz-inline-box; - white-space: nowrap; - word-break: normal; - overflow: hidden; - word-wrap: normal; - overflow-wrap: normal; - max-width: -webkit-calc(100% - 24px); - max-width: -moz-calc(100% - 24px); - max-width: calc(100% - 24px); -} - -.elfinder-touch .std42-dialog .ui-dialog-titlebar span.elfinder-dialog-title { - padding-top: .15em; -} - -.elfinder-touch .std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar span.elfinder-dialog-title { - max-width: -webkit-calc(100% - 36px); - max-width: -moz-calc(100% - 36px); - max-width: calc(100% - 36px); -} - -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button { - position: relative; - float: left; - top: 10px; - left: -10px; - right: 10px; - width: 20px; - height: 20px; - padding: 1px; - margin: -10px 1px 0 1px; - background-color: transparent; - background-image: none; -} - -.elfinder-touch .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button { - -moz-transform: scale(1.2); - zoom: 1.2; - padding-left: 6px; - padding-right: 6px; - height: 24px; -} - -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button-right { - float: right; -} - -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button.elfinder-titlebar-button-right { - left: 10px; - right: -10px; -} - -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon { - width: 17px; - height: 17px; - border-width: 1px; - opacity: .7; - filter: Alpha(Opacity=70); - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; -} - -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon { - opacity: .5; - filter: Alpha(Opacity=50); -} - -.std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon { - opacity: 1; - filter: Alpha(Opacity=100); -} - -.std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar select { - display: none; -} - -.elfinder-spinner { - width: 14px; - height: 14px; - background: url("../img/spinner-mini.gif") center center no-repeat; - margin: 0 5px; - display: inline-block; - vertical-align: middle; -} - -.elfinder-ltr .elfinder-spinner, -.elfinder-ltr .elfinder-spinner-text { - float: left; -} - -.elfinder-rtl .elfinder-spinner, -.elfinder-rtl .elfinder-spinner-text { - float: right; -} - - - -/* resize handle for touch devices */ -.elfinder-touch .std42-dialog.ui-dialog:not(ui-resizable-disabled) .ui-resizable-se { - width: 12px; - height: 12px; - -moz-transform-origin: bottom right; - -moz-transform: scale(1.5); - zoom: 1.5; - right: -7px; - bottom: -7px; - margin: 3px 7px 7px 3px; - background-position: -64px -224px; -} - -.elfinder-rtl .elfinder-dialog .ui-dialog-titlebar { - text-align: right; -} - -/* content */ -.std42-dialog .ui-dialog-content { - padding: .3em .5em; - box-sizing: border-box; -} - -.elfinder .std42-dialog .ui-dialog-content, -.elfinder .std42-dialog .ui-dialog-content * { - -webkit-user-select: auto; - -moz-user-select: text; - -khtml-user-select: text; - user-select: text; -} - -.elfinder .std42-dialog .ui-dialog-content label { - border: none; -} - -/* buttons */ -.std42-dialog .ui-dialog-buttonpane { - border: 0 solid; - margin: 0; - padding: .5em; - text-align: right; -} - -.elfinder-rtl .std42-dialog .ui-dialog-buttonpane { - text-align: left; -} - -.std42-dialog .ui-dialog-buttonpane button { - margin: .2em 0 0 .4em; - padding: .2em; - outline: 0px solid; -} - -.std42-dialog .ui-dialog-buttonpane button span { - padding: 2px 9px; -} - -.std42-dialog .ui-dialog-buttonpane button span.ui-icon { - padding: 2px; -} - -.elfinder-dialog .ui-resizable-e, -.elfinder-dialog .ui-resizable-s { - width: 0; - height: 0; -} - -.std42-dialog .ui-button input { - cursor: pointer; -} - -.std42-dialog select { - border: 1px solid #ccc; -} - -/* error/notify/confirm dialogs icon */ -.elfinder-dialog-icon { - position: absolute; - width: 32px; - height: 32px; - left: 10px; - top: 50%; - margin-top: -15px; - background: url("../img/dialogs.png") 0 0 no-repeat; -} - -.elfinder-rtl .elfinder-dialog-icon { - left: auto; - right: 10px; -} - -/*********************** ERROR DIALOG **************************/ - -.elfinder-dialog-error .ui-dialog-content, -.elfinder-dialog-confirm .ui-dialog-content { - padding-left: 56px; - min-height: 35px; -} - -.elfinder-rtl .elfinder-dialog-error .ui-dialog-content, -.elfinder-rtl .elfinder-dialog-confirm .ui-dialog-content { - padding-left: 0; - padding-right: 56px; -} - -.elfinder-dialog-error .elfinder-err-var { - word-break: break-all; -} - -/*********************** NOTIFY DIALOG **************************/ - -.elfinder-dialog-notify { - top : 36px; - width : 280px; -} - -.elfinder-ltr .elfinder-dialog-notify { - right : 12px; -} - -.elfinder-rtl .elfinder-dialog-notify { - left : 12px; -} - -.elfinder-dialog-notify .ui-dialog-titlebar { - height: 5px; -} - -.elfinder-dialog-notify .ui-dialog-titlebar-close { - display: none; -} - -.elfinder-dialog-notify .ui-dialog-content { - padding: 0; -} - -/* one notification container */ -.elfinder-notify { - border-bottom: 1px solid #ccc; - position: relative; - padding: .5em; - - text-align: center; - overflow: hidden; -} - -.elfinder-ltr .elfinder-notify { - padding-left: 36px; -} - -.elfinder-rtl .elfinder-notify { - padding-right: 36px; -} - -.elfinder-notify:last-child { - border: 0 solid; -} - -/* progressbar */ -.elfinder-notify-progressbar { - width: 180px; - height: 8px; - border: 1px solid #aaa; - background: #f5f5f5; - margin: 5px auto; - overflow: hidden; -} - -.elfinder-notify-progress { - width: 100%; - height: 8px; - background: url(../img/progress.gif) center center repeat-x; -} - -.elfinder-notify-progressbar, .elfinder-notify-progress { - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; -} - -/* icons */ -.elfinder-dialog-icon-open, -.elfinder-dialog-icon-readdir, -.elfinder-dialog-icon-file { - background-position: 0 -225px; -} - -.elfinder-dialog-icon-reload { - background-position: 0 -225px; -} - -.elfinder-dialog-icon-mkdir { - background-position: 0 -64px; -} - -.elfinder-dialog-icon-mkfile { - background-position: 0 -96px; -} - -.elfinder-dialog-icon-copy, -.elfinder-dialog-icon-prepare, -.elfinder-dialog-icon-move { - background-position: 0 -128px; -} - -.elfinder-dialog-icon-upload { - background-position: 0 -160px; -} - -.elfinder-dialog-icon-chunkmerge { - background-position: 0 -160px; -} - -.elfinder-dialog-icon-rm { - background-position: 0 -192px; -} - -.elfinder-dialog-icon-download { - background-position: 0 -260px; -} - -.elfinder-dialog-icon-save { - background-position: 0 -295px; -} - -.elfinder-dialog-icon-rename, -.elfinder-dialog-icon-chkcontent { - background-position: 0 -330px; -} - -.elfinder-dialog-icon-zipdl, -.elfinder-dialog-icon-archive, -.elfinder-dialog-icon-extract { - background-position: 0 -365px; -} - -.elfinder-dialog-icon-search { - background-position: 0 -402px; -} - -.elfinder-dialog-icon-resize, -.elfinder-dialog-icon-loadimg, -.elfinder-dialog-icon-netmount, -.elfinder-dialog-icon-netunmount, -.elfinder-dialog-icon-chmod, -.elfinder-dialog-icon-preupload, -.elfinder-dialog-icon-url, -.elfinder-dialog-icon-dim { - background-position: 0 -434px; -} - -/*********************** CONFIRM DIALOG **************************/ - -.elfinder-dialog-confirm-applyall, -.elfinder-dialog-confirm-encoding { - padding: 0 1em; - margin: 0; -} - -.elfinder-ltr .elfinder-dialog-confirm-applyall, -.elfinder-ltr .elfinder-dialog-confirm-encoding { - text-align: left; -} - -.elfinder-rtl .elfinder-dialog-confirm-applyall, -.elfinder-rtl .elfinder-dialog-confirm-encoding { - text-align: right; -} - -.elfinder-dialog-confirm .elfinder-dialog-icon { - background-position: 0 -32px; -} - -.elfinder-dialog-confirm .ui-dialog-buttonset { - width: auto; -} - -/*********************** FILE INFO DIALOG **************************/ - -.elfinder-info-title .elfinder-cwd-icon { - float: left; - width: 48px; - height: 48px; - margin-right: 1em; -} - -.elfinder-rtl .elfinder-info-title .elfinder-cwd-icon { - float: right; - margin-right: 0; - margin-left: 1em; -} - -.elfinder-info-title strong { - display: block; - padding: .3em 0 .5em 0; -} - -.elfinder-info-tb { - min-width: 200px; - border: 0 solid; - margin: 1em .2em 1em .2em; - width: 100%; -} - -.elfinder-info-tb td { - white-space: pre-wrap; - padding: 2px; -} - -.elfinder-info-tb td.elfinder-info-label { - white-space: nowrap; -} - -.elfinder-info-tb td.elfinder-info-hash { - display: inline-block; - word-break: break-all; - max-width: 32ch; -} - -.elfinder-ltr .elfinder-info-tb tr td:first-child { - text-align: right; -} - -.elfinder-ltr .elfinder-info-tb span { - float: left; -} - -.elfinder-rtl .elfinder-info-tb tr td:first-child { - text-align: left; -} - -.elfinder-rtl .elfinder-info-tb span { - float: right; -} - -.elfinder-info-tb a { - outline: none; - text-decoration: underline; -} - -.elfinder-info-tb a:hover { - text-decoration: none; -} - -.elfinder-netmount-tb { - margin: 0 auto; -} - -.elfinder-netmount-tb select, -.elfinder-netmount-tb .elfinder-button-icon { - cursor: pointer; -} - -button.elfinder-info-button { - margin: -3.5px 0; - cursor: pointer; -} - -/*********************** UPLOAD DIALOG **************************/ - -.elfinder-upload-dropbox { - display: table-cell; - text-align: center; - vertical-align: middle; - padding: 0.5em; - border: 3px dashed #aaa; - width: 9999px; - height: 80px; - overflow: hidden; - word-break: keep-all; -} - -.elfinder-upload-dropbox.ui-state-hover { - background: #dfdfdf; - border: 3px dashed #555; -} - -.elfinder-upload-dialog-or { - margin: .3em 0; - text-align: center; -} - -.elfinder-upload-dialog-wrapper { - text-align: center; -} - -.elfinder-upload-dialog-wrapper .ui-button { - position: relative; - overflow: hidden; -} - -.elfinder-upload-dialog-wrapper .ui-button form { - position: absolute; - right: 0; - top: 0; - width: 100%; - opacity: 0; - filter: Alpha(Opacity=0); -} - -.elfinder-upload-dialog-wrapper .ui-button form input { - padding: 50px 0 0; - font-size: 3em; - width: 100%; -} - -/* dialog for elFinder itself */ -.dialogelfinder .dialogelfinder-drag { - border-left: 0 solid; - border-top: 0 solid; - border-right: 0 solid; - font-weight: normal; - padding: 2px 12px; - cursor: move; - position: relative; - text-align: left; -} - -.elfinder-rtl .dialogelfinder-drag { - text-align: right; -} - -.dialogelfinder-drag-close { - position: absolute; - top: 50%; - margin-top: -8px; -} - -.elfinder-ltr .dialogelfinder-drag-close { - right: 12px; -} - -.elfinder-rtl .dialogelfinder-drag-close { - left: 12px; -} - -/*********************** RM CONFIRM **************************/ -.elfinder-rm-title { - margin-bottom: .5ex; -} - -.elfinder-rm-title .elfinder-cwd-icon { - float: left; - width: 48px; - height: 48px; - margin-right: 1em; -} - -.elfinder-rtl .elfinder-rm-title .elfinder-cwd-icon { - float: right; - margin-right: 0; - margin-left: 1em; -} - -.elfinder-rm-title strong { - display: block; - /*word-wrap: break-word;*/ - white-space: pre-wrap; - word-break: normal; - overflow: hidden; - text-overflow: ellipsis; -} - -.elfinder-rm-title + br { - display: none; -} - -/* File: /css/fonts.css */ -.elfinder-font-mono { - font-family: "Ricty Diminished", "Myrica M", Consolas, "Courier New", Courier, Monaco, monospace; - font-size: 1.1em; -} - -.elfinder-contextmenu .elfinder-contextmenu-item span { - font-size: .72em; -} - -.elfinder-cwd-view-icons .elfinder-cwd-filename { - font-size: .7em; -} - -.elfinder-cwd-view-list td { - font-size: .7em; -} - -.std42-dialog .ui-dialog-titlebar { - font-size: .82em; -} - -.std42-dialog .ui-dialog-content { - font-size: .72em; -} - -.std42-dialog .ui-dialog-buttonpane { - font-size: .76em; -} - -.elfinder-info-tb { - font-size: .9em; -} - -.elfinder-upload-dropbox { - font-size: 1.2em; -} - -.elfinder-upload-dialog-or { - font-size: 1.2em; -} - -.dialogelfinder .dialogelfinder-drag { - font-size: .9em; -} - -.elfinder .elfinder-navbar { - font-size: .72em; -} - -.elfinder-place-drag .elfinder-navbar-dir { - font-size: .9em; -} - -.elfinder-quicklook-title { - font-size: .7em; - font-weight: normal; -} - -.elfinder-quicklook-info-data { - font-size: .72em; -} - -.elfinder-quicklook-preview-text-wrapper { - font-size: .9em; -} - -.elfinder-button-menu-item { - font-size: .72em; -} - -.elfinder-button-search input { - font-size: .8em; -} - -.elfinder-statusbar div { - font-size: .7em; -} - -.elfinder-drag-num { - font-size: 12px; -} - -.elfinder-toast { - font-size: .76em; -} - - -/* File: /css/navbar.css */ -/*********************************************/ -/* NAVIGATION PANEL */ -/*********************************************/ - -/* container */ -.elfinder .elfinder-navbar { - /*box-sizing: border-box;*/ - width: 230px; - padding: 3px 5px; - background-image: none; - border-top: 0 solid; - border-bottom: 0 solid; - overflow: auto; - position: relative; -} - -.elfinder .elfinder-navdock { - box-sizing: border-box; - width: 230px; - height: auto; - position: absolute; - bottom: 0; - overflow: auto; -} - -.elfinder-navdock .ui-resizable-n { - top: 0; - height: 20px; -} - -/* ltr/rtl enviroment */ -.elfinder-ltr .elfinder-navbar { - float: left; - border-left: 0 solid; -} - -.elfinder-rtl .elfinder-navbar { - float: right; - border-right: 0 solid; -} - -.elfinder-ltr .ui-resizable-e { - margin-left: 10px; -} - -/* folders tree container */ -.elfinder-tree { - display: table; - width: 100%; - margin: 0 0 .5em 0; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -/* one folder wrapper */ -.elfinder-navbar-wrapper, .elfinder-place-wrapper { -} - -/* folder */ -.elfinder-navbar-dir { - position: relative; - display: block; - white-space: nowrap; - padding: 3px 12px; - margin: 0; - outline: 0px solid; - border: 1px solid transparent; - cursor: default; -} - -.elfinder-touch .elfinder-navbar-dir { - padding: 12px 12px; -} - -/* ltr/rtl enviroment */ -.elfinder-ltr .elfinder-navbar-dir { - padding-left: 35px; -} - -.elfinder-rtl .elfinder-navbar-dir { - padding-right: 35px; -} - -/* arrow before icon */ -.elfinder-navbar-arrow { - width: 12px; - height: 14px; - position: absolute; - display: none; - top: 50%; - margin-top: -8px; - background-image: url("../img/arrows-normal.png"); - background-repeat: no-repeat; - /* border:1px solid #111;*/ -} - -.elfinder-ltr .elfinder-navbar-arrow { - left: 0; -} - -.elfinder-rtl .elfinder-navbar-arrow { - right: 0; -} - -.elfinder-touch .elfinder-navbar-arrow { - -moz-transform-origin: top left; - -moz-transform: scale(1.4); - zoom: 1.4; - margin-bottom: 7px; -} - -.elfinder-ltr.elfinder-touch .elfinder-navbar-arrow { - left: -3px; - margin-right: 20px; -} - -.elfinder-rtl.elfinder-touch .elfinder-navbar-arrow { - right: -3px; - margin-left: 20px; -} - -.ui-state-active .elfinder-navbar-arrow { - background-image: url("../img/arrows-active.png"); -} - -/* collapsed/expanded arrow view */ -.elfinder-navbar-collapsed .elfinder-navbar-arrow { - display: block; -} - -.elfinder-subtree-chksubdir .elfinder-navbar-arrow { - opacity: .25; - filter: Alpha(Opacity=25); -} - -/* arrow ltr/rtl enviroment */ -.elfinder-ltr .elfinder-navbar-collapsed .elfinder-navbar-arrow { - background-position: 0 4px; -} - -.elfinder-rtl .elfinder-navbar-collapsed .elfinder-navbar-arrow { - background-position: 0 -10px; -} - -.elfinder-ltr .elfinder-navbar-expanded .elfinder-navbar-arrow, -.elfinder-rtl .elfinder-navbar-expanded .elfinder-navbar-arrow { - background-position: 0 -21px; -} - -/* folder icon */ -.elfinder-navbar-icon { - width: 16px; - height: 16px; - position: absolute; - top: 50%; - margin-top: -8px; - background-image: url("../img/toolbar.png"); - background-repeat: no-repeat; - background-position: 0 -16px; -} - -/* ltr/rtl enviroment */ -.elfinder-ltr .elfinder-navbar-icon { - left: 14px; -} - -.elfinder-rtl .elfinder-navbar-icon { - right: 14px; -} - -/* places icon */ -.elfinder-places .elfinder-navbar-root .elfinder-navbar-icon { - background-position: 0 -704px; -} - -/* root folder */ -.elfinder-tree .elfinder-navbar-root-local .elfinder-navbar-icon, -.elfinder-tree .elfinder-navbar-root-trash .elfinder-navbar-icon, -.elfinder-tree .elfinder-navbar-root-ftp .elfinder-navbar-icon, -.elfinder-tree .elfinder-navbar-root-sql .elfinder-navbar-icon, -.elfinder-tree .elfinder-navbar-root-dropbox .elfinder-navbar-icon, -.elfinder-tree .elfinder-navbar-root-googledrive .elfinder-navbar-icon, -.elfinder-tree .elfinder-navbar-root-onedrive .elfinder-navbar-icon, -.elfinder-tree .elfinder-navbar-root-box .elfinder-navbar-icon, -.elfinder-tree .elfinder-navbar-root-zip .elfinder-navbar-icon, -.elfinder-tree .elfinder-navbar-root-network .elfinder-navbar-icon { - background-position: 0 0; - background-size: contain; -} - -/* root icon of each volume "\9" for IE8 trick */ -.elfinder-tree .elfinder-navbar-root-local .elfinder-navbar-icon { - background-image: url("../img/volume_icon_local.svg"); - background-image: url("../img/volume_icon_local.png") \9; -} - -.elfinder-tree .elfinder-navbar-root-trash .elfinder-navbar-icon { - background-image: url("../img/volume_icon_trash.svg"); - background-image: url("../img/volume_icon_trash.png") \9; -} - -.elfinder-tree .elfinder-navbar-root-ftp .elfinder-navbar-icon { - background-image: url("../img/volume_icon_ftp.svg"); - background-image: url("../img/volume_icon_ftp.png") \9; -} - -.elfinder-tree .elfinder-navbar-root-sql .elfinder-navbar-icon { - background-image: url("../img/volume_icon_sql.svg"); - background-image: url("../img/volume_icon_sql.png") \9; -} - -.elfinder-tree .elfinder-navbar-root-dropbox .elfinder-navbar-icon { - background-image: url("../img/volume_icon_dropbox.svg"); - background-image: url("../img/volume_icon_dropbox.png") \9; -} - -.elfinder-tree .elfinder-navbar-root-googledrive .elfinder-navbar-icon { - background-image: url("../img/volume_icon_googledrive.svg"); - background-image: url("../img/volume_icon_googledrive.png") \9; -} - -.elfinder-tree .elfinder-navbar-root-onedrive .elfinder-navbar-icon { - background-image: url("../img/volume_icon_onedrive.svg"); - background-image: url("../img/volume_icon_onedrive.png") \9; -} - -.elfinder-tree .elfinder-navbar-root-box .elfinder-navbar-icon { - background-image: url("../img/volume_icon_box.svg"); - background-image: url("../img/volume_icon_box.png") \9; -} - -.elfinder-tree .elfinder-navbar-root-zip .elfinder-navbar-icon { - background-image: url("../img/volume_icon_zip.svg"); - background-image: url("../img/volume_icon_zip.png") \9; -} - -.elfinder-tree .elfinder-navbar-root-network .elfinder-navbar-icon { - background-image: url("../img/volume_icon_network.svg"); - background-image: url("../img/volume_icon_network.png") \9; -} - -/* icon in active/hove/dropactive state */ -.ui-state-active .elfinder-navbar-icon, -.elfinder-droppable-active .elfinder-navbar-icon, -.ui-state-hover .elfinder-navbar-icon { - background-position: 0 -32px; -} - -/* ltr/rtl enviroment */ -.elfinder-ltr .elfinder-navbar-subtree { - margin-left: 12px; -} - -.elfinder-rtl .elfinder-navbar-subtree { - margin-right: 12px; -} - -/* spinner */ -.elfinder-tree .elfinder-spinner { - position: absolute; - top: 50%; - margin: -7px 0 0; -} - -/* spinner ltr/rtl enviroment */ -.elfinder-ltr .elfinder-tree .elfinder-spinner { - left: 0; - margin-left: -2px; -} - -.elfinder-rtl .elfinder-tree .elfinder-spinner { - right: 0; - margin-right: -2px; -} - -/* marker */ -.elfinder-navbar .elfinder-perms, -.elfinder-navbar .elfinder-lock, -.elfinder-navbar .elfinder-symlink { - opacity: .6; - filter: Alpha(Opacity=60); -} - -/* permissions marker */ -.elfinder-navbar .elfinder-perms { - bottom: -1px; - margin-top: -8px; -} - -/* locked marker */ -.elfinder-navbar .elfinder-lock { - top: -2px; -} - -/* permissions/symlink markers ltr/rtl enviroment */ -.elfinder-ltr .elfinder-navbar .elfinder-perms { - left: 20px; - transform: scale(0.8); -} - -.elfinder-rtl .elfinder-navbar .elfinder-perms { - right: 20px; - transform: scale(0.8); -} - -.elfinder-ltr .elfinder-navbar .elfinder-lock { - left: 20px; - transform: scale(0.8); -} - -.elfinder-rtl .elfinder-navbar .elfinder-lock { - right: 20px; - transform: scale(0.8); -} - -.elfinder-ltr .elfinder-navbar .elfinder-symlink { - left: 8px; - transform: scale(0.8); -} - -.elfinder-rtl .elfinder-navbar .elfinder-symlink { - right: 8px; - transform: scale(0.8); -} - -/* navbar input */ -.elfinder-navbar input { - width: 100%; - border: 0px solid; - margin: 0; - padding: 0; -} - -/* resizable */ -.elfinder-navbar .ui-resizable-handle { - width: 12px; - background: transparent url('../img/resize.png') center center no-repeat; -} - -.elfinder-nav-handle-icon { - position: absolute; - top: 50%; - margin: -8px 2px 0 2px; - opacity: .5; - filter: Alpha(Opacity=50); -} - -/* pager button */ -.elfinder-navbar-pager { - width: 100%; - box-sizing: border-box; - padding-top: 3px; - padding-bottom: 3px; -} - -.elfinder-touch .elfinder-navbar-pager { - padding-top: 10px; - padding-bottom: 10px; -} - -.elfinder-places { - border: none; - margin: 0; - padding: 0; -} - -.elfinder-places.elfinder-droppable-active { - /*border:1px solid #8cafed;*/ -} - -/* navbar swipe handle */ -.elfinder-navbar-swipe-handle { - position: absolute; - top: 0px; - height: 100%; - width: 50px; - pointer-events: none; -} - -.elfinder-ltr .elfinder-navbar-swipe-handle { - left: 0px; - background: linear-gradient(to right, - rgba(221, 228, 235, 1) 0, - rgba(221, 228, 235, 0.8) 5px, - rgba(216, 223, 230, 0.3) 8px, - rgba(0, 0, 0, 0.1) 95%, - rgba(0, 0, 0, 0) 100%); -} - -.elfinder-rtl .elfinder-navbar-swipe-handle { - right: 0px; - background: linear-gradient(to left, - rgba(221, 228, 235, 1) 0, - rgba(221, 228, 235, 0.8) 5px, - rgba(216, 223, 230, 0.3) 8px, - rgba(0, 0, 0, 0.1) 95%, - rgba(0, 0, 0, 0) 100%); -} - -/* File: /css/places.css */ -/*********************************************/ -/* PLACES STYLES */ -/*********************************************/ -/* root extra icon */ -.elfinder-navbar-root .elfinder-places-root-icon { - position: absolute; - top: 50%; - margin-top: -9px; - cursor: pointer; -} - -.elfinder-ltr .elfinder-places-root-icon { - right: 10px; -} - -.elfinder-rtl .elfinder-places-root-icon { - left: 10px; -} - -.elfinder-navbar-expanded .elfinder-places-root-icon { - display: block; -} - -/* dragging helper base */ -.elfinder-place-drag { - font-size: 0.8em; -} - -/* File: /css/quicklook.css */ -/* quicklook window */ -.elfinder-quicklook { - position: absolute; - background: url("../img/quicklook-bg.png"); - overflow: hidden; - -moz-border-radius: 7px; - -webkit-border-radius: 7px; - border-radius: 7px; - padding: 20px 0 40px 0; -} - -.elfinder-navdock .elfinder-quicklook { - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; - font-size: 90%; - overflow: auto; -} - -.elfinder-quicklook.elfinder-touch { - padding: 30px 0 40px 0; -} - -.elfinder-quicklook .ui-resizable-se { - width: 14px; - height: 14px; - right: 5px; - bottom: 3px; - background: url("../img/toolbar.png") 0 -496px no-repeat; -} - -.elfinder-quicklook.elfinder-touch .ui-resizable-se { - -moz-transform-origin: bottom right; - -moz-transform: scale(1.5); - zoom: 1.5; -} - -/* quicklook fullscreen window */ -.elfinder-quicklook.elfinder-quicklook-fullscreen { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - margin: 0; - box-sizing: border-box; - width: 100%; - height: 100%; - object-fit: contain; - border-radius: 0; - -moz-border-radius: 0; - -webkit-border-radius: 0; - -webkit-background-clip: padding-box; - padding: 0; - background: #000; - display: block; -} - -/* hide titlebar in fullscreen mode */ -.elfinder-quicklook-fullscreen .elfinder-quicklook-titlebar, -.elfinder-quicklook-fullscreen.elfinder-quicklook .ui-resizable-handle { - display: none; -} - -/* hide preview border in fullscreen mode */ -.elfinder-quicklook-fullscreen .elfinder-quicklook-preview { - border: 0 solid; -} - -/*.elfinder-quicklook-fullscreen iframe { - height: 100%; -}*/ - -.elfinder-quicklook-cover { - width: 100%; - height: 100%; - top: 0; - left: 0; - position: absolute; -} - -.elfinder-quicklook-cover.elfinder-quicklook-coverbg { - /* background need to catch mouse event over browser plugin (eg PDF preview) */ - background-color: #fff; - opacity: 0.000001; - filter: Alpha(Opacity=0.0001); -} - -/* quicklook titlebar */ -.elfinder-quicklook-titlebar { - text-align: center; - background: #777; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 20px; - -moz-border-radius-topleft: 7px; - -webkit-border-top-left-radius: 7px; - border-top-left-radius: 7px; - -moz-border-radius-topright: 7px; - -webkit-border-top-right-radius: 7px; - border-top-right-radius: 7px; - border: none; - line-height: 1.2; -} - -.elfinder-navdock .elfinder-quicklook-titlebar { - -moz-border-radius-topleft: 0; - -webkit-border-top-left-radius: 0; - border-top-left-radius: 0; - -moz-border-radius-topright: 0; - -webkit-border-top-right-radius: 0; - border-top-right-radius: 0; - cursor: default; -} - -.elfinder-touch .elfinder-quicklook-titlebar { - height: 30px; -} - -/* window title */ -.elfinder-quicklook-title { - display: inline-block; - white-space: nowrap; - overflow: hidden; -} - -.elfinder-touch .elfinder-quicklook-title { - padding: 8px 0; -} - -/* icon "close" in titlebar */ -.elfinder-quicklook-titlebar-icon { - position: absolute; - left: 4px; - top: 50%; - margin-top: -8px; - height: 16px; - border: none; -} -.elfinder-touch .elfinder-quicklook-titlebar-icon { - height: 22px; -} - -.elfinder-quicklook-titlebar-icon .ui-icon { - position: relative; - margin: -9px 3px 0px 0px; - cursor: pointer; - border-radius: 10px; - border: 1px solid; - opacity: .7; - filter: Alpha(Opacity=70); -} - -.elfinder-quicklook-titlebar-icon .ui-icon.ui-icon-closethick { - padding-left: 1px; -} - -.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon { - opacity: .6; - filter: Alpha(Opacity=60); -} - -.elfinder-touch .elfinder-quicklook-titlebar-icon .ui-icon { - margin-top: -5px; -} - -.elfinder-quicklook-titlebar-icon.elfinder-titlebar-button-right { - left: auto; - right: 4px; - direction: rtl; -} - -.elfinder-quicklook-titlebar-icon.elfinder-titlebar-button-right .ui-icon { - margin: -9px 0px 0px 3px; -} - -.elfinder-touch .elfinder-quicklook-titlebar .ui-icon { - -moz-transform-origin: center center; - -moz-transform: scale(1.2); - zoom: 1.2; -} - -.elfinder-touch .elfinder-quicklook-titlebar-icon .ui-icon { - margin-right: 10px; -} - -.elfinder-touch .elfinder-quicklook-titlebar-icon.elfinder-titlebar-button-right .ui-icon { - margin-left: 10px; -} - -/* main part of quicklook window */ -.elfinder-quicklook-preview { - overflow: hidden; - position: relative; - border: 0 solid; - border-left: 1px solid transparent; - border-right: 1px solid transparent; - height: 100%; -} - -.elfinder-navdock .elfinder-quicklook-preview { - border-left: 0; - border-right: 0; -} - -.elfinder-quicklook-preview.elfinder-overflow-auto { - overflow: auto; - -webkit-overflow-scrolling: touch; -} - -/* wrapper for file info/icon */ -.elfinder-quicklook-info-wrapper { - display: table; - position: absolute; - width: 100%; - height: 100%; - height: calc(100% - 80px); - left: 0; - top: 20px; -} - -.elfinder-navdock .elfinder-quicklook-info-wrapper { - height: calc(100% - 20px); -} - -/* file info */ -.elfinder-quicklook-info { - display: table-cell; - vertical-align: middle; -} - -.elfinder-ltr .elfinder-quicklook-info { - padding: 0 12px 0 112px; -} - -.elfinder-rtl .elfinder-quicklook-info { - padding: 0 112px 0 12px; -} - -.elfinder-ltr .elfinder-navdock .elfinder-quicklook-info { - padding: 0 0 0 80px; -} - -.elfinder-rtl .elfinder-navdock .elfinder-quicklook-info { - padding: 0 80px 0 0; -} - -/* file name in info */ -.elfinder-quicklook-info .elfinder-quicklook-info-data:first-child { - color: #fff; - font-weight: bold; - padding-bottom: .5em; -} - -/* other data in info */ -.elfinder-quicklook-info-data { - clear: both; - padding-bottom: .2em; - color: #fff; -} - -/* file icon */ -.elfinder-quicklook .elfinder-cwd-icon { - position: absolute; - left: 32px; - top: 50%; - margin-top: -20px; -} - -.elfinder-navdock .elfinder-quicklook .elfinder-cwd-icon { - left: 16px; -} - -.elfinder-rtl .elfinder-quicklook .elfinder-cwd-icon { - left: auto; - right: 32px; -} - -.elfinder-rtl .elfinder-navdock .elfinder-quicklook .elfinder-cwd-icon { - right: 6px; -} - -.elfinder-quicklook .elfinder-cwd-icon:before { - top: -10px; -} - -.elfinder-ltr .elfinder-quicklook .elfinder-cwd-icon:before { - left: -20px; -} - -.elfinder-ltr .elfinder-navdock .elfinder-quicklook .elfinder-cwd-icon:before { - left: -14px; -} - -.elfinder-ltr .elfinder-quicklook .elfinder-cwd-icon:after { - left: -20px; -} - -.elfinder-ltr .elfinder-navdock .elfinder-quicklook .elfinder-cwd-icon:after { - left: -12px; -} - -.elfinder-rtl .elfinder-quicklook .elfinder-cwd-icon:before { - left: auto; - right: 40px; -} - -.elfinder-rtl .elfinder-quicklook .elfinder-cwd-icon:after { - left: auto; - right: 46px; -} - -/* image in preview */ -.elfinder-quicklook-preview img { - display: block; - margin: 0 auto; -} - -/* navigation bar on quicklook window bottom */ -.elfinder-quicklook-navbar { - position: absolute; - left: 50%; - bottom: 4px; - width: 140px; - height: 32px; - padding: 0px; - margin-left: -70px; - border: 1px solid transparent; - border-radius: 19px; - -moz-border-radius: 19px; - -webkit-border-radius: 19px; -} - -/* navigation bar in fullscreen mode */ -.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar { - width: 188px; - margin-left: -94px; - padding: 5px; - border: 1px solid #eee; - background: #000; - opacity: 0.4; - filter: Alpha(Opacity=40); -} - -/* show close icon in fullscreen mode */ -.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar-icon-close, -.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar-separator { - display: inline; -} - -/* icons in navbar */ -.elfinder-quicklook-navbar-icon { - width: 32px; - height: 32px; - margin: 0 7px; - float: left; - background: url("../img/quicklook-icons.png") 0 0 no-repeat; - -} - -/* fullscreen icon */ -.elfinder-quicklook-navbar-icon-fullscreen { - background-position: 0 -64px; -} - -/* exit fullscreen icon */ -.elfinder-quicklook-navbar-icon-fullscreen-off { - background-position: 0 -96px; -} - -/* prev file icon */ -.elfinder-quicklook-navbar-icon-prev { - background-position: 0 0; -} - -/* next file icon */ -.elfinder-quicklook-navbar-icon-next { - background-position: 0 -32px; -} - -/* close icon */ -.elfinder-quicklook-navbar-icon-close { - background-position: 0 -128px; - display: none; -} - -/* icons separator */ -.elfinder-quicklook-navbar-separator { - width: 1px; - height: 32px; - float: left; - border-left: 1px solid #fff; - display: none; -} - -/* text files preview wrapper */ -.elfinder-quicklook-preview-text-wrapper { - width: 100%; - height: 100%; - background: #fff; - color: #222; - overflow: auto; - -webkit-overflow-scrolling: touch; -} - -/* archive files preview wrapper */ -.elfinder-quicklook-preview-archive-wrapper { - width: 100%; - height: 100%; - background: #fff; - color: #222; - font-size: 90%; - overflow: auto; - -webkit-overflow-scrolling: touch -} - -/* archive files preview header */ -.elfinder-quicklook-preview-archive-wrapper strong { - padding: 0 5px; -} - -/* text preview */ -pre.elfinder-quicklook-preview-text, -pre.elfinder-quicklook-preview-text.prettyprint { - width: auto; - height: auto; - margin: 0; - padding: 3px 9px; - border: none; - -o-tab-size: 4; - -moz-tab-size: 4; - tab-size: 4; -} - -.elfinder-quicklook-preview-charsleft hr { - border: none; - border-top: dashed 1px; -} - -.elfinder-quicklook-preview-charsleft span { - font-size: 90%; - font-style: italic; - cursor: pointer; -} - -/* html/pdf preview */ -.elfinder-quicklook-preview-html, -.elfinder-quicklook-preview-pdf, -.elfinder-quicklook-preview-iframe { - width: 100%; - height: 100%; - background: #fff; - margin: 0; - border: none; - display: block; -} - -/* swf preview container */ -.elfinder-quicklook-preview-flash { - width: 100%; - height: 100%; -} - -/* audio preview container */ -.elfinder-quicklook-preview-audio { - width: 100%; - position: absolute; - bottom: 0; - left: 0; -} - -/* audio preview using embed */ -embed.elfinder-quicklook-preview-audio { - height: 30px; - background: transparent; -} - -/* video preview container */ -.elfinder-quicklook-preview-video { - width: 100%; - height: 100%; -} - -/* allow user select */ -.elfinder .elfinder-quicklook .elfinder-quicklook-info *, -.elfinder .elfinder-quicklook .elfinder-quicklook-preview * { - -webkit-user-select: auto; - -moz-user-select: text; - -khtml-user-select: text; - user-select: text; -} - -/* File: /css/statusbar.css */ -/******************************************************************/ -/* STATUSBAR STYLES */ -/******************************************************************/ - -/* statusbar container */ -.elfinder-statusbar { - display: flex; - justify-content: space-between; - cursor: default; - text-align: center; - font-weight: normal; - padding: .2em .5em; - border-right: 0 solid transparent; - border-bottom: 0 solid transparent; - border-left: 0 solid transparent; -} - -.elfinder-statusbar:before, -.elfinder-statusbar:after { - display: none; -} - -.elfinder-statusbar span { - vertical-align: bottom; - overflow: hidden; - text-overflow: ellipsis; - -o-text-overflow: ellipsis; -} - -.elfinder-statusbar span.elfinder-path-other { - flex-shrink: 0; - text-overflow: clip; - -o-text-overflow: clip; -} - -.elfinder-statusbar span.ui-state-hover, -.elfinder-statusbar span.ui-state-active { - border: none; -} - -.elfinder-statusbar span.elfinder-path-cwd { - cursor: default; -} - -/* path in statusbar */ -.elfinder-path { - display: flex; - order: 1; - flex-grow: 1; - cursor: pointer; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - -o-text-overflow: ellipsis; - max-width: 30%\9; -} - -.elfinder-ltr .elfinder-path { - text-align: left; - float: left\9; -} - -.elfinder-rtl .elfinder-path { - text-align: right; - float: right\9; -} - -/* path in workzone (case of swipe to navbar close) */ -.elfinder-workzone-path { - position: relative; -} - -.elfinder-workzone-path .elfinder-path { - position: relative; - font-size: .75em; - font-weight: normal; - float: none; - max-width: none; - overflow: hidden; - overflow-x: hidden; - text-overflow: initial; - -o-text-overflow: initial; -} - -.elfinder-mobile .elfinder-workzone-path .elfinder-path { - overflow: auto; - overflow-x: scroll; -} - -.elfinder-ltr .elfinder-workzone-path .elfinder-path { - margin-left: 24px; -} - -.elfinder-rtl .elfinder-workzone-path .elfinder-path { - margin-right: 24px; -} - -.elfinder-workzone-path .elfinder-path span { - display: inline-block; - padding: 5px 3px; -} - -.elfinder-workzone-path .elfinder-path span.elfinder-path-cwd { - font-weight: bold; -} - -.elfinder-workzone-path .elfinder-path span.ui-state-hover, -.elfinder-workzone-path .elfinder-path span.ui-state-active { - border: none; -} - -.elfinder-workzone-path .elfinder-path-roots { - position: absolute; - top: 0; - width: 24px; - height: 20px; - padding: 2px; - border: none; - overflow: hidden; -} - -.elfinder-ltr .elfinder-workzone-path .elfinder-path-roots { - left: 0; -} - -.elfinder-rtl .elfinder-workzone-path .elfinder-path-roots { - right: 0; -} - -/* total/selected size in statusbar */ -.elfinder-stat-size { - order: 3; - flex-grow: 1; - overflow: hidden; - white-space: nowrap; -} - -.elfinder-ltr .elfinder-stat-size { - text-align: right; - float: right\9; -} - -.elfinder-rtl .elfinder-stat-size { - text-align: left; - float: left\9; -} - -/* info of current selected item */ -.elfinder-stat-selected { - order: 2; - margin: 0 .5em; - white-space: nowrap; - overflow: hidden; -} - -/* File: /css/toast.css */ -/* - * CSS for Toastr - * Copyright 2012-2015 - * Authors: John Papa, Hans Fjällemark, and Tim Ferrell. - * All Rights Reserved. - * Use, reproduction, distribution, and modification of this code is subject to the terms and - * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php - * - * ARIA Support: Greta Krafsig - * - * Project: https://github.com/CodeSeven/toastr - */ - -.elfinder .elfinder-toast { - position: absolute; - top: 12px; - right: 12px; - max-width: 90%; - cursor: default; -} - -.elfinder .elfinder-toast > div { - position: relative; - pointer-events: auto; - overflow: hidden; - margin: 0 0 6px; - padding: 8px 16px 8px 50px; - -moz-border-radius: 3px 3px 3px 3px; - -webkit-border-radius: 3px 3px 3px 3px; - border-radius: 3px 3px 3px 3px; - background-position: 15px center; - background-repeat: no-repeat; - -moz-box-shadow: 0 0 12px #999999; - -webkit-box-shadow: 0 0 12px #999999; - box-shadow: 0 0 12px #999999; - color: #FFFFFF; - opacity: 0.9; - filter: alpha(opacity=90); - background-color: #030303; - text-align: center; -} - -.elfinder .elfinder-toast > .toast-info { - background-color: #2F96B4; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important; -} - -.elfinder .elfinder-toast > .toast-error { - background-color: #BD362F; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important; -} - -.elfinder .elfinder-toast > .toast-success { - background-color: #51A351; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important; -} - -.elfinder .elfinder-toast > .toast-warning { - background-color: #F89406; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important; -} - -.elfinder .elfinder-toast > div button.ui-button { - background-image: none; - margin-top: 8px; - padding: .5em .8em; -} - -.elfinder .elfinder-toast > .toast-success button.ui-button { - background-color: green; - color: #FFF; -} - -.elfinder .elfinder-toast > .toast-success button.ui-button.ui-state-hover { - background-color: #add6ad; - color: #254b25; -} - -.elfinder .elfinder-toast > .toast-info button.ui-button { - background-color: #046580; - color: #FFF; -} - -.elfinder .elfinder-toast > .toast-info button.ui-button.ui-state-hover { - background-color: #7DC6DB; - color: #046580; -} - -.elfinder .elfinder-toast > .toast-warning button.ui-button { - background-color: #dd8c1a; - color: #FFF; -} - -.elfinder .elfinder-toast > .toast-warning button.ui-button.ui-state-hover { - background-color: #e7ae5e; - color: #422a07; -} - -/* File: /css/toolbar.css */ -/*********************************************/ -/* TOOLBAR STYLES */ -/*********************************************/ -/* toolbar container */ -.elfinder-toolbar { - padding: 4px 0 3px 0; - border-left: 0 solid transparent; - border-top: 0 solid transparent; - border-right: 0 solid transparent; - max-height: 50%; - overflow-y: auto; -} - -/* container for button's group */ -.elfinder-buttonset { - margin: 1px 4px; - float: left; - background: transparent; - padding: 0; - overflow: hidden; -} - -/*.elfinder-buttonset:first-child { margin:0; }*/ - -/* button */ -.elfinder .elfinder-button { - min-width: 16px; - height: 16px; - margin: 0; - padding: 4px; - float: left; - overflow: hidden; - position: relative; - border: 0 solid; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - line-height: 1; - cursor: default; -} - -.elfinder-rtl .elfinder-button { - float: right; -} - -.elfinder-touch .elfinder-button { - min-width: 20px; - height: 20px; -} - -.elfinder .ui-icon-search { - cursor: pointer; -} - -/* separator between buttons, required for berder between button with ui color */ -.elfinder-toolbar-button-separator { - float: left; - padding: 0; - height: 24px; - border-top: 0 solid; - border-right: 0 solid; - border-bottom: 0 solid; - width: 0; -} - -.elfinder-rtl .elfinder-toolbar-button-separator { - float: right; -} - -.elfinder-touch .elfinder-toolbar-button-separator { - height: 28px; -} - -/* change icon opacity^ not button */ -.elfinder .elfinder-button.ui-state-disabled { - opacity: 1; - filter: Alpha(Opacity=100); -} - -.elfinder .elfinder-button.ui-state-disabled .elfinder-button-icon, -.elfinder .elfinder-button.ui-state-disabled .elfinder-button-text { - opacity: .4; - filter: Alpha(Opacity=40); -} - -/* rtl enviroment */ -.elfinder-rtl .elfinder-buttonset { - float: right; -} - -/* icon inside button */ -.elfinder-button-icon { - width: 16px; - height: 16px; - /*display:block;*/ - display: inline-block; - background: url('../img/toolbar.png') no-repeat; -} - -.elfinder-button-text { - position: relative; - display: inline-block; - top: -4px; - margin: 0 2px; - font-size: 12px; -} - -.elfinder-touch .elfinder-button-icon { - transform: scale(1.25); - transform-origin: top left; -} - -.elfinder-rtl.elfinder-touch .elfinder-button-icon { - transform-origin: top right; -} - -.elfinder-touch .elfinder-button-text { - transform: translate(3px, 3px); - top: -5px; -} - -.elfinder-rtl.elfinder-touch .elfinder-button-text { - transform: translate(-3px, 3px); -} - -.elfinder-touch .elfinder-button-icon.elfinder-contextmenu-extra-icon { - transform: scale(2); - transform-origin: 12px 8px; -} - -.elfinder-rtl.elfinder-touch .elfinder-button-icon.elfinder-contextmenu-extra-icon { - transform-origin: 4px 8px; -} - -/* buttons icons */ -.elfinder-button-icon-home { - background-position: 0 0; -} - -.elfinder-button-icon-back { - background-position: 0 -112px; -} - -.elfinder-button-icon-forward { - background-position: 0 -128px; -} - -.elfinder-button-icon-up { - background-position: 0 -144px; -} - -.elfinder-button-icon-dir { - background-position: 0 -16px; -} - -.elfinder-button-icon-opendir { - background-position: 0 -32px; -} - -.elfinder-button-icon-reload { - background-position: 0 -160px; -} - -.elfinder-button-icon-open { - background-position: 0 -176px; -} - -.elfinder-button-icon-mkdir { - background-position: 0 -192px; -} - -.elfinder-button-icon-mkfile { - background-position: 0 -208px; -} - -.elfinder-button-icon-rm { - background-position: 0 -832px; -} - -.elfinder-button-icon-trash { - background-position: 0 -224px; -} - -.elfinder-button-icon-restore { - background-position: 0 -816px; -} - -.elfinder-button-icon-copy { - background-position: 0 -240px; -} - -.elfinder-button-icon-cut { - background-position: 0 -256px; -} - -.elfinder-button-icon-paste { - background-position: 0 -272px; -} - -.elfinder-button-icon-getfile { - background-position: 0 -288px; -} - -.elfinder-button-icon-duplicate { - background-position: 0 -304px; -} - -.elfinder-button-icon-rename { - background-position: 0 -320px; -} - -.elfinder-button-icon-edit { - background-position: 0 -336px; -} - -.elfinder-button-icon-quicklook { - background-position: 0 -352px; -} - -.elfinder-button-icon-upload { - background-position: 0 -368px; -} - -.elfinder-button-icon-download { - background-position: 0 -384px; -} - -.elfinder-button-icon-info { - background-position: 0 -400px; -} - -.elfinder-button-icon-extract { - background-position: 0 -416px; -} - -.elfinder-button-icon-archive { - background-position: 0 -432px; -} - -.elfinder-button-icon-view { - background-position: 0 -448px; -} - -.elfinder-button-icon-view-list { - background-position: 0 -464px; -} - -.elfinder-button-icon-help { - background-position: 0 -480px; -} - -.elfinder-button-icon-resize { - background-position: 0 -512px; -} - -.elfinder-button-icon-link { - background-position: 0 -528px; -} - -.elfinder-button-icon-search { - background-position: 0 -561px; -} - -.elfinder-button-icon-sort { - background-position: 0 -577px; -} - -.elfinder-button-icon-rotate-r { - background-position: 0 -625px; -} - -.elfinder-button-icon-rotate-l { - background-position: 0 -641px; -} - -.elfinder-button-icon-netmount { - background-position: 0 -688px; -} - -.elfinder-button-icon-netunmount { - background-position: 0 -96px; -} - -.elfinder-button-icon-places { - background-position: 0 -704px; -} - -.elfinder-button-icon-chmod { - background-position: 0 -48px; -} - -.elfinder-button-icon-accept { - background-position: 0 -736px; -} - -.elfinder-button-icon-menu { - background-position: 0 -752px; -} - -.elfinder-button-icon-colwidth { - background-position: 0 -768px; -} - -.elfinder-button-icon-fullscreen { - background-position: 0 -784px; -} - -.elfinder-button-icon-unfullscreen { - background-position: 0 -800px; -} - -.elfinder-button-icon-empty { - background-position: 0 -848px; -} - -.elfinder-button-icon-undo { - background-position: 0 -864px; -} - -.elfinder-button-icon-redo { - background-position: 0 -880px; -} - -.elfinder-button-icon-preference { - background-position: 0 -896px; -} - -.elfinder-button-icon-mkdirin { - background-position: 0 -912px; -} - -.elfinder-button-icon-selectall { - background-position: 0 -928px; -} - -.elfinder-button-icon-selectnone { - background-position: 0 -944px; -} - -.elfinder-button-icon-selectinvert { - background-position: 0 -960px; -} - -.elfinder-button-icon-opennew { - background-position: 0 -976px; -} - -.elfinder-button-icon-hide { - background-position: 0 -992px; -} - -.elfinder-button-icon-text { - background-position: 0 -1008px; -} - -/* button icon mirroring for rtl */ -.elfinder-rtl .elfinder-button-icon-back, -.elfinder-rtl .elfinder-button-icon-forward, -.elfinder-rtl .elfinder-button-icon-getfile, -.elfinder-rtl .elfinder-button-icon-help, -.elfinder-rtl .elfinder-button-icon-redo, -.elfinder-rtl .elfinder-button-icon-rename, -.elfinder-rtl .elfinder-button-icon-search, -.elfinder-rtl .elfinder-button-icon-undo, -.elfinder-rtl .elfinder-button-icon-view-list, -.elfinder-rtl .ui-icon-search { - -ms-transform: scale(-1, 1); - -webkit-transform: scale(-1, 1); - transform: scale(-1, 1); -} - -.elfinder-rtl.elfinder-touch .elfinder-button-icon-back, -.elfinder-rtl.elfinder-touch .elfinder-button-icon-forward, -.elfinder-rtl.elfinder-touch .elfinder-button-icon-getfile, -.elfinder-rtl.elfinder-touch .elfinder-button-icon-help, -.elfinder-rtl.elfinder-touch .elfinder-button-icon-redo, -.elfinder-rtl.elfinder-touch .elfinder-button-icon-rename, -.elfinder-rtl.elfinder-touch .elfinder-button-icon-search, -.elfinder-rtl.elfinder-touch .elfinder-button-icon-undo, -.elfinder-rtl.elfinder-touch .elfinder-button-icon-view-list, -.elfinder-rtl.elfinder-touch .ui-icon-search { - -ms-transform: scale(-1.25, 1.25) translateX(16px); - -webkit-transform: scale(-1.25, 1.25) translateX(16px); - transform: scale(-1.25, 1.25) translateX(16px); -} - -/* button with dropdown menu*/ -.elfinder .elfinder-menubutton { - overflow: visible; -} - -/* button with spinner icon */ -.elfinder-button-icon-spinner { - background: url("../img/spinner-mini.gif") center center no-repeat; -} - -/* menu */ -.elfinder-button-menu { - position: absolute; - margin-top: 24px; - padding: 3px 0; - overflow-y: auto; -} - -.elfinder-touch .elfinder-button-menu { - margin-top: 30px; -} - -/* menu item */ -.elfinder-button-menu-item { - white-space: nowrap; - cursor: default; - padding: 5px 19px; - position: relative; -} - -.elfinder-touch .elfinder-button-menu-item { - padding: 12px 19px -} - -/* fix hover ui class */ -.elfinder-button-menu .ui-state-hover { - border: 0 solid; -} - -.elfinder-button-menu-item-separated { - border-top: 1px solid #ccc; -} - -.elfinder-button-menu-item .ui-icon { - width: 16px; - height: 16px; - position: absolute; - left: 2px; - top: 50%; - margin-top: -8px; - display: none; -} - -.elfinder-button-menu-item-selected .ui-icon { - display: block; -} - -.elfinder-button-menu-item-selected-asc .ui-icon-arrowthick-1-s { - display: none; -} - -.elfinder-button-menu-item-selected-desc .ui-icon-arrowthick-1-n { - display: none; -} - -/* hack for upload button */ -.elfinder-button form { - position: absolute; - top: 0; - right: 0; - opacity: 0; - filter: Alpha(Opacity=0); - cursor: pointer; -} - -.elfinder .elfinder-button form input { - background: transparent; - cursor: default; -} - -/* search "button" */ -.elfinder .elfinder-button-search { - border: 0 solid; - background: transparent; - padding: 0; - margin: 1px 4px; - height: auto; - min-height: 26px; - width: 70px; - overflow: visible; -} - -.elfinder .elfinder-button-search.ui-state-active { - width: 220px; -} - -/* search "pull down menu" */ -.elfinder .elfinder-button-search-menu { - font-size: 8pt; - text-align: center; - width: auto; - min-width: 180px; - position: absolute; - top: 30px; - padding-right: 5px; - padding-left: 5px; -} - -.elfinder-ltr .elfinder-button-search-menu { - right: 22px; - left: auto; -} - -.elfinder-rtl .elfinder-button-search-menu { - right: auto; - left: 22px; -} - -.elfinder-touch .elfinder-button-search-menu { - top: 34px; -} - -.elfinder .elfinder-button-search-menu div { - margin-left: auto; - margin-right: auto; - margin-top: 5px; - margin-bottom: 5px; - display: table; -} - -.elfinder .elfinder-button-search-menu div .ui-state-hover { - border: 1px solid; -} - -/* ltr/rte enviroment */ -.elfinder-ltr .elfinder-button-search { - float: right; - margin-right: 10px; -} - -.elfinder-rtl .elfinder-button-search { - float: left; - margin-left: 10px; -} - -.elfinder-rtl .ui-controlgroup > .ui-controlgroup-item { - float: right; -} - -/* search text field */ -.elfinder-button-search input[type=text] { - box-sizing: border-box; - width: 100%; - height: 26px; - padding: 0 20px; - line-height: 22px; - border: 0 solid; - border: 1px solid #aaa; - -moz-border-radius: 12px; - -webkit-border-radius: 12px; - border-radius: 12px; - outline: 0px solid; -} - -.elfinder-button-search input::-ms-clear { - display: none; -} - -.elfinder-touch .elfinder-button-search input { - height: 30px; - line-height: 28px; -} - -.elfinder-rtl .elfinder-button-search input { - direction: rtl; -} - -/* icons */ -.elfinder-button-search .ui-icon { - position: absolute; - height: 18px; - top: 50%; - margin: -8px 4px 0 4px; - opacity: .6; - filter: Alpha(Opacity=60); -} - -.elfinder-button-search-menu .ui-checkboxradio-icon { - display: none; -} - -/* search/close icons */ -.elfinder-ltr .elfinder-button-search .ui-icon-search { - left: 0; -} - -.elfinder-rtl .elfinder-button-search .ui-icon-search { - right: 0; -} - -.elfinder-ltr .elfinder-button-search .ui-icon-close { - right: 0; -} - -.elfinder-rtl .elfinder-button-search .ui-icon-close { - left: 0; -} - -/* toolbar swipe handle */ -.elfinder-toolbar-swipe-handle { - position: absolute; - top: 0px; - left: 0px; - height: 50px; - width: 100%; - pointer-events: none; - background: linear-gradient(to bottom, - rgba(221, 228, 235, 1) 0, - rgba(221, 228, 235, 0.8) 2px, - rgba(216, 223, 230, 0.3) 5px, - rgba(0, 0, 0, 0.1) 95%, - rgba(0, 0, 0, 0) 100%); -} - diff --git a/apps/static/plugins/elfinder/css/elfinder.min.css b/apps/static/plugins/elfinder/css/elfinder.min.css deleted file mode 100755 index cc026d33b..000000000 --- a/apps/static/plugins/elfinder/css/elfinder.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * elFinder - file manager for web - * Version 2.1.50 (2019-08-20) - * http://elfinder.org - * - * Copyright 2009-2019, Studio 42 - * Licensed under a 3-clauses BSD license - */ -.elfinder-resize-container{margin-top:.3em}.elfinder-resize-type{float:left;margin-bottom:.4em}.elfinder-resize-control{float:left}.elfinder-resize-control input[type=number]{border:1px solid #aaa;text-align:right;width:4.5em}.elfinder-resize-control input.elfinder-resize-bg{text-align:center;width:5em;direction:ltr}.elfinder-dialog-resize .elfinder-resize-control-panel{margin-top:10px}.elfinder-dialog-resize .elfinder-resize-imgrotate,.elfinder-dialog-resize .elfinder-resize-pallet{cursor:pointer}.elfinder-dialog-resize .elfinder-resize-picking{cursor:crosshair}.elfinder-dialog-resize .elfinder-resize-grid8+button{padding-top:2px;padding-bottom:2px}.elfinder-resize-preview{width:400px;height:400px;padding:10px;background:#fff;border:1px solid #aaa;float:right;position:relative;overflow:hidden;text-align:left;direction:ltr}.elfinder-resize-handle,div.elfinder-cwd-wrapper-list tr.ui-state-default td{position:relative}.elfinder-resize-handle-hline,.elfinder-resize-handle-vline{position:absolute;background-image:url(../img/crop.gif)}.elfinder-resize-handle-hline{width:100%;height:1px!important;background-repeat:repeat-x}.elfinder-resize-handle-vline{width:1px!important;height:100%;background-repeat:repeat-y}.elfinder-resize-handle-hline-top{top:0;left:0}.elfinder-resize-handle-hline-bottom{bottom:0;left:0}.elfinder-resize-handle-vline-left{top:0;left:0}.elfinder-resize-handle-vline-right{top:0;right:0}.elfinder-resize-handle-point{position:absolute;width:8px;height:8px;border:1px solid #777;background:0 0}.elfinder-resize-handle-point-n{top:0;left:50%;margin-top:-5px;margin-left:-5px}.elfinder-resize-handle-point-e,.elfinder-resize-handle-point-ne{top:0;right:0;margin-top:-5px;margin-right:-5px}.elfinder-resize-handle-point-e{top:50%}.elfinder-resize-handle-point-se{bottom:0;right:0;margin-bottom:-5px;margin-right:-5px}.elfinder-resize-handle-point-s,.elfinder-resize-handle-point-sw{bottom:0;left:50%;margin-bottom:-5px;margin-left:-5px}.elfinder-resize-handle-point-sw{left:0}.elfinder-resize-handle-point-nw,.elfinder-resize-handle-point-w{top:50%;left:0;margin-top:-5px;margin-left:-5px}.elfinder-resize-handle-point-nw{top:0}.elfinder-dialog.elfinder-dialog-resize .ui-resizable-e{width:10px;height:100%}.elfinder-dialog.elfinder-dialog-resize .ui-resizable-s{width:100%;height:10px}.elfinder-resize-loading{position:absolute;width:200px;height:30px;top:50%;margin-top:-25px;left:50%;margin-left:-100px;text-align:center;background:url(../img/progress.gif) center bottom repeat-x}.elfinder-resize-row{margin-bottom:9px;position:relative}.elfinder-resize-label{float:left;width:80px;padding-top:3px}.elfinder-resize-checkbox-label{border:1px solid transparent}.elfinder-dialog-resize .elfinder-resize-whctrls{margin:-20px 5px 0}.elfinder-ltr .elfinder-dialog-resize .elfinder-resize-whctrls{float:right}.elfinder-help-team div,.elfinder-rtl .elfinder-dialog-resize .elfinder-resize-whctrls{float:left}.elfinder-dialog-resize .ui-resizable-e,.elfinder-dialog-resize .ui-resizable-w{height:100%;width:10px}.elfinder-dialog-resize .ui-resizable-n,.elfinder-dialog-resize .ui-resizable-s{width:100%;height:10px}.elfinder-dialog-resize .ui-resizable-e{margin-right:-7px}.elfinder-dialog-resize .ui-resizable-w{margin-left:-7px}.elfinder-dialog-resize .ui-resizable-s{margin-bottom:-7px}.elfinder-dialog-resize .ui-resizable-n{margin-top:-7px}.elfinder-dialog-resize .ui-resizable-ne,.elfinder-dialog-resize .ui-resizable-nw,.elfinder-dialog-resize .ui-resizable-se,.elfinder-dialog-resize .ui-resizable-sw{width:10px;height:10px}.elfinder-dialog-resize .ui-resizable-se{background:0 0;bottom:0;right:0;margin-right:-7px;margin-bottom:-7px}.elfinder-dialog-resize .ui-resizable-sw{margin-left:-7px;margin-bottom:-7px}.elfinder-dialog-resize .ui-resizable-ne{margin-right:-7px;margin-top:-7px}.elfinder-dialog-resize .ui-resizable-nw{margin-left:-7px;margin-top:-7px}.elfinder-touch .elfinder-dialog-resize .ui-resizable-n,.elfinder-touch .elfinder-dialog-resize .ui-resizable-s{height:20px}.elfinder-touch .elfinder-dialog-resize .ui-resizable-e,.elfinder-touch .elfinder-dialog-resize .ui-resizable-w{width:20px}.elfinder-touch .elfinder-dialog-resize .ui-resizable-ne,.elfinder-touch .elfinder-dialog-resize .ui-resizable-nw,.elfinder-touch .elfinder-dialog-resize .ui-resizable-se,.elfinder-touch .elfinder-dialog-resize .ui-resizable-sw{width:30px;height:30px}.elfinder-touch .elfinder-dialog-resize .elfinder-resize-preview .ui-resizable-se{width:30px;height:30px;margin:0}.elfinder-dialog-resize .ui-icon-grip-solid-vertical{position:absolute;top:50%;right:0;margin-top:-8px;margin-right:-11px}.elfinder-dialog-resize .ui-icon-grip-solid-horizontal{position:absolute;left:50%;bottom:0;margin-left:-8px;margin-bottom:-11px}.elfinder-dialog-resize .elfinder-resize-row .ui-buttonset{float:right}.elfinder-dialog-resize .elfinder-resize-degree input,.elfinder-dialog-resize input.elfinder-resize-quality,.elfinder-mobile .elfinder-resize-control input[type=number]{width:3.5em}.elfinder-mobile .elfinder-dialog-resize .elfinder-resize-degree input,.elfinder-mobile .elfinder-dialog-resize input.elfinder-resize-quality{width:2.5em}.elfinder-dialog-resize .elfinder-resize-degree button.ui-button{padding:6px 8px}.elfinder-dialog-resize button.ui-button span{padding:0}.elfinder-dialog-resize .elfinder-resize-jpgsize{font-size:90%}.ui-widget-content .elfinder-resize-container .elfinder-resize-rotate-slider{width:195px;margin:10px 7px;background-color:#fafafa}.elfinder-dialog-resize .elfinder-resize-type span.ui-checkboxradio-icon{display:none}.elfinder-resize-preset-container{box-sizing:border-box;border-radius:5px}.elfinder-file-edit{width:100%;height:100%;margin:0;padding:2px;border:1px solid #ccc;box-sizing:border-box;resize:none}.elfinder-touch .elfinder-file-edit{font-size:16px}.elfinder-dialog-edit .ui-dialog-content.elfinder-edit-editor{background-color:#fff}.elfinder-dialog-edit .ui-dialog-content.elfinder-edit-editor .elfinder-edit-imageeditor{width:100%;height:300px;max-height:100%;text-align:center}.elfinder-dialog-edit .ui-dialog-content.elfinder-edit-editor .elfinder-edit-imageeditor *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;user-select:none}.elfinder-edit-imageeditor .tui-image-editor-main-container .tui-image-editor-main{top:0}.elfinder-edit-imageeditor .tui-image-editor-main-container .tui-image-editor-header{display:none}.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-crop .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-draw .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-filter .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-flip .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-icon .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-mask .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-rotate .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-shape .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-text .tui-image-editor-wrap{height:calc(100% - 150px)}.elfinder-touch.elfinder-fullscreen-native textarea.elfinder-file-edit{padding-bottom:20em;margin-bottom:-20em}.elfinder-dialog-edit .ui-dialog-buttonpane .elfinder-dialog-confirm-encoding{font-size:12px}.ui-dialog-buttonpane .ui-dialog-buttonset.elfinder-edit-extras{margin:0 1em 0 .2em;float:left}.ui-dialog-buttonpane .ui-dialog-buttonset.elfinder-edit-extras-quality{padding-top:6px}.ui-dialog-buttonpane .ui-dialog-buttonset.elfinder-edit-extras select{font-size:12px;margin-top:8px}.elfinder-dialog-edit .ui-dialog-buttonpane .ui-icon,.elfinder-edit-onlineconvert-bottom-btn button,.elfinder-edit-onlineconvert-button button,.elfinder-preference dt label{cursor:pointer}.elfinder-edit-spinner{position:absolute;top:50%;text-align:center;width:100%;font-size:16pt}.elfinder-dialog-edit .elfinder-edit-spinner .elfinder-spinner,.elfinder-dialog-edit .elfinder-edit-spinner .elfinder-spinner-text{float:none}.elfinder-dialog-edit .elfinder-toast>div{width:280px}.elfinder-edit-onlineconvert-button{display:inline-block;width:180px;min-height:30px;vertical-align:top}.elfinder-edit-onlineconvert-bottom-btn button.elfinder-button-ios-multiline{-webkit-appearance:none;border-radius:16px;color:#000;text-align:center;padding:8px;background-color:#eee;background-image:-webkit-linear-gradient(top,#fafafa 0%,#c4c4c4 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#c4c4c4 100%)}.elfinder-edit-onlineconvert-button .elfinder-button-icon{margin:0 10px;vertical-align:middle;cursor:pointer}.elfinder-edit-onlineconvert-bottom-btn{text-align:center;margin:10px 0 0}.elfinder-edit-onlineconvert-link{margin-top:1em;text-align:center}.elfinder-edit-onlineconvert-link .elfinder-button-icon{background-image:url(../img/editor-icons.png);background-repeat:no-repeat;background-position:0 -144px;margin-bottom:-3px}.elfinder-edit-onlineconvert-link a,ul.elfinder-help-integrations a{text-decoration:none}div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon{position:absolute;top:4px;left:0;right:0;margin:auto 0 auto auto}.elfinder-touch div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon{top:7px}.elfinder-rtl div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon{margin:auto auto auto 0}.elfinder-help{margin-bottom:.5em;-webkit-overflow-scrolling:touch}.elfinder-help .ui-tabs-panel{overflow:auto;padding:10px}.elfinder-dialog .ui-tabs .ui-tabs-nav li{overflow:hidden}.elfinder-dialog .ui-tabs .ui-tabs-nav li a{padding:.2em .8em;display:inline-block}.elfinder-touch .elfinder-dialog .ui-tabs .ui-tabs-nav li a{padding:.5em}.elfinder-dialog .ui-tabs-active a{background:inherit}.elfinder-help-shortcuts{height:auto;padding:10px;margin:0;box-sizing:border-box}.elfinder-help-shortcut{white-space:nowrap;clear:both}.elfinder-help-shortcut-pattern{float:left;width:160px}.elfinder-help-logo{width:100px;height:96px;float:left;margin-right:1em;background:url(../img/logo.png) center center no-repeat}.elfinder-help h3{font-size:1.5em;margin:.2em 0 .3em}.elfinder-help-separator{clear:both;padding:.5em}.elfinder-help-link{display:inline-block;margin-right:12px;padding:2px 0;white-space:nowrap}.elfinder-rtl .elfinder-help-link{margin-right:0;margin-left:12px}.elfinder-help .ui-priority-secondary{font-size:.9em}.elfinder-help .ui-priority-primary{margin-bottom:7px}.elfinder-help-team{clear:both;text-align:right;border-bottom:1px solid #ccc;margin:.5em 0;font-size:.9em}.elfinder-help-license{font-size:.9em}.elfinder-help-disabled{font-weight:700;text-align:center;margin:90px 0}.elfinder-help .elfinder-dont-panic{display:block;border:1px solid transparent;width:200px;height:200px;margin:30px auto;text-decoration:none;text-align:center;position:relative;background:#d90004;-moz-box-shadow:5px 5px 9px #111;-webkit-box-shadow:5px 5px 9px #111;box-shadow:5px 5px 9px #111;background:-moz-radial-gradient(80px 80px,circle farthest-corner,#d90004 35%,#960004 100%);background:-webkit-gradient(radial,80 80,60,80 80,120,from(#d90004),to(#960004));-moz-border-radius:100px;-webkit-border-radius:100px;border-radius:100px;outline:none}.elfinder-help .elfinder-dont-panic span{font-size:3em;font-weight:700;text-align:center;color:#fff;position:absolute;left:0;top:45px}ul.elfinder-help-integrations ul{padding:0;margin:0 1em 1em}ul.elfinder-help-integrations a:hover{text-decoration:underline}.elfinder-help-debug{height:100%;padding:0;margin:0;overflow:none;border:none}.elfinder-help-debug .ui-tabs-panel{padding:0;margin:0;overflow:auto}.elfinder-help-debug fieldset{margin-bottom:10px;border-color:#789;border-radius:10px}.elfinder-help-debug legend{font-size:1.2em;font-weight:700;color:#2e8b57}.elfinder-help-debug dl{margin:0}.elfinder-help-debug dt{color:#789}.elfinder-help-debug dt:before{content:"["}.elfinder-help-debug dt:after{content:"]"}.elfinder-help-debug dd{margin-left:1em}.elfinder-dialog .elfinder-preference .ui-tabs-nav{margin-bottom:1px;height:auto}.elfinder-preference .ui-tabs-panel{padding:10px 10px 0;overflow:auto;box-sizing:border-box;-webkit-overflow-scrolling:touch}.elfinder-preference a.ui-state-hover,.elfinder-preference label.ui-state-hover{border:none}.elfinder-preference dl{width:100%;display:inline-block;margin:.5em 0}.elfinder-preference dt{display:block;width:200px;clear:left;float:left;max-width:50%}.elfinder-rtl .elfinder-preference dt{clear:right;float:right}.elfinder-preference dd{margin-bottom:1em}.elfinder-preference dd input[type=checkbox],.elfinder-preference dd label{white-space:nowrap;display:inline-block;cursor:pointer}.elfinder-preference dt.elfinder-preference-checkboxes{width:100%;max-width:none}.elfinder-preference dd.elfinder-preference-checkboxes{padding-top:3ex}.elfinder-preference select{max-width:100%}.elfinder-preference dd.elfinder-preference-iconSize .ui-slider{width:50%;max-width:100px;display:inline-block;margin:0 10px}.elfinder-preference button{margin:0 16px}.elfinder-preference button+button{margin:0 -10px}.elfinder-preference .elfinder-preference-taball .elfinder-reference-hide-taball{display:none}.elfinder-preference-theme fieldset{margin-bottom:10px}.elfinder-preference-theme legend a{font-size:1.8em;text-decoration:none;cursor:pointer}.elfinder-preference-theme dt{width:20%;word-break:break-all}.elfinder-preference-theme dt:after{content:" :"}.elfinder-preference-theme dd{margin-inline-start:20%}.elfinder-preference img.elfinder-preference-theme-image{display:block;margin-left:auto;margin-right:auto;max-width:90%;max-height:200px;cursor:pointer}.elfinder-preference-theme-btn,.elfinder-rename-batch-type{text-align:center}.elfinder-preference-theme button.elfinder-preference-theme-default{display:inline;margin:0 10px;font-size:8pt}.elfinder-rtl .elfinder-info-title .elfinder-cwd-icon:before{right:33px;left:auto}.elfinder-info-title .elfinder-cwd-icon.elfinder-cwd-bgurl:after{content:none}.elfinder-upload-dialog-wrapper .elfinder-upload-dirselect{position:absolute;bottom:2px;width:16px;height:16px;padding:10px;border:none;overflow:hidden;cursor:pointer}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-item .ui-icon,.elfinder-ltr .elfinder-upload-dialog-wrapper .elfinder-upload-dirselect{left:2px}.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-item .ui-icon,.elfinder-rtl .elfinder-upload-dialog-wrapper .elfinder-upload-dirselect{right:2px}.elfinder-ltr .elfinder-rm-title .elfinder-cwd-icon:before{left:38px}.elfinder-rtl .elfinder-rm-title .elfinder-cwd-icon:before{right:86px;left:auto}.elfinder-rm-title .elfinder-cwd-icon.elfinder-cwd-bgurl:after{content:none}.elfinder-rename-batch div{margin:5px 8px}.elfinder-rename-batch .elfinder-rename-batch-name input{width:100%;font-size:1.6em}.elfinder-rename-batch .elfinder-rename-batch-type label{margin:2px;font-size:.9em}.elfinder-rename-batch-preview{padding:0 8px;font-size:1.1em;min-height:4ex}.ui-front{z-index:100}div.elfinder{padding:0;position:relative;display:block;visibility:visible;font-size:18px;font-family:Verdana,Arial,Helvetica,sans-serif}.elfinder-ios input,.elfinder-ios select,.elfinder-ios textarea{font-size:16px!important}.elfinder.elfinder-fullscreen>.ui-resizable-handle{display:none}.elfinder-font-mono{line-height:2ex}.elfinder.elfinder-processing *{cursor:progress!important}.elfinder.elfinder-processing.elfinder-touch .elfinder-workzone:after{position:absolute;top:0;width:100%;height:3px;content:'';left:0;background-image:url(../img/progress.gif);opacity:.6;pointer-events:none}.elfinder :not(input):not(textarea):not(select):not([contenteditable=true]),.elfinder-contextmenu :not(input):not(textarea):not(select):not([contenteditable=true]){-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;user-select:none}.elfinder .overflow-scrolling-touch{-webkit-overflow-scrolling:touch}.elfinder-rtl{text-align:right;direction:rtl}.elfinder-workzone{padding:0;position:relative;overflow:hidden}.elfinder-lock,.elfinder-perms,.elfinder-symlink{position:absolute;width:16px;height:16px;background-image:url(../img/toolbar.png);background-repeat:no-repeat}.elfinder-perms,.elfinder-symlink{background-position:0 -528px}.elfinder-na .elfinder-perms{background-position:0 -96px}.elfinder-ro .elfinder-perms{background-position:0 -64px}.elfinder-wo .elfinder-perms{background-position:0 -80px}.elfinder-group .elfinder-perms{background-position:0 0}.elfinder-lock{background-position:0 -656px}.elfinder-drag-helper{top:0;left:0;width:70px;height:60px;padding:0 0 0 25px;z-index:100000;will-change:left,top}.elfinder-drag-helper.html5-native{position:absolute;top:-1000px;left:-1000px}.elfinder-drag-helper-icon-status{position:absolute;width:16px;height:16px;left:42px;top:60px;background:url(../img/toolbar.png) 0 -96px no-repeat;display:block}.elfinder-drag-helper-move .elfinder-drag-helper-icon-status{background-position:0 -720px}.elfinder-drag-helper-plus .elfinder-drag-helper-icon-status{background-position:0 -544px}.elfinder-drag-num{display:inline-box;position:absolute;top:0;left:0;width:auto;height:14px;text-align:center;padding:1px 3px;font-weight:700;color:#fff;background-color:red;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.elfinder-drag-helper .elfinder-cwd-icon{margin:0 0 0 -24px;float:left}.elfinder-overlay{position:absolute;opacity:.2;filter:Alpha(Opacity=20)}.elfinder .elfinder-panel{position:relative;background-image:none;padding:7px 12px}[draggable=true]{-khtml-user-drag:element}.elfinder [contentEditable=true]:empty:not(:focus):before{content:attr(data-ph)}.elfinder div.elfinder-bottomtray{position:fixed;bottom:0;max-width:100%;opacity:.8}.elfinder.elfinder-ltr div.elfinder-bottomtray{left:0}.elfinder.elfinder-rtl div.elfinder-bottomtray{right:0}.elfinder .elfinder-ui-tooltip,.elfinder-ui-tooltip{font-size:14px;padding:2px 4px}.elfinder .elfinder-contextmenu,.elfinder .elfinder-contextmenu-sub{position:absolute;border:1px solid #aaa;background:#fff;color:#555;padding:4px 0;top:0;left:0}.elfinder .elfinder-contextmenu-sub{top:5px}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-sub{margin-left:-5px}.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-sub{margin-right:-5px}.elfinder .elfinder-contextmenu-header{margin-top:-4px;padding:0 .5em .2ex;border:none;text-align:center}.elfinder .elfinder-contextmenu-header span{font-size:.8em;font-weight:bolder}.elfinder .elfinder-contextmenu-item{position:relative;display:block;padding:4px 30px;text-decoration:none;white-space:nowrap;cursor:default}.elfinder .elfinder-contextmenu-item.ui-state-active{border:none}.elfinder .elfinder-contextmenu-item .ui-icon{width:16px;height:16px;position:absolute;left:auto;right:auto;top:50%;margin-top:-8px}.elfinder-touch .elfinder-contextmenu-item{padding:12px 38px}.elfinder-navbar-root-local.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_local.svg);background-size:contain}.elfinder-navbar-root-trash.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_trash.svg);background-size:contain}.elfinder-navbar-root-ftp.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_ftp.svg);background-size:contain}.elfinder-navbar-root-sql.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_sql.svg);background-size:contain}.elfinder-navbar-root-dropbox.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_dropbox.svg);background-size:contain}.elfinder-navbar-root-googledrive.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_googledrive.svg);background-size:contain}.elfinder-navbar-root-onedrive.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_onedrive.svg);background-size:contain}.elfinder-navbar-root-box.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_box.svg);background-size:contain}.elfinder-navbar-root-zip.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_zip.svg);background-size:contain}.elfinder-navbar-root-network.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_network.svg);background-size:contain}.elfinder .elfinder-contextmenu .elfinder-contextmenu-item span{display:block}.elfinder .elfinder-contextmenu-sub .elfinder-contextmenu-item{padding-left:12px;padding-right:12px}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-item{text-align:left}.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-item{text-align:right}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-sub .elfinder-contextsubmenu-item-icon{padding-left:28px}.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-sub .elfinder-contextsubmenu-item-icon{padding-right:28px}.elfinder-touch .elfinder-contextmenu-ltr .elfinder-contextmenu-sub .elfinder-contextsubmenu-item-icon{padding-left:36px}.elfinder-touch .elfinder-contextmenu-rtl .elfinder-contextmenu-sub .elfinder-contextsubmenu-item-icon{padding-right:36px}.elfinder .elfinder-contextmenu-arrow,.elfinder .elfinder-contextmenu-extra-icon,.elfinder .elfinder-contextmenu-icon{position:absolute;top:50%;margin-top:-8px;overflow:hidden}.elfinder-touch .elfinder-button-icon.elfinder-contextmenu-icon{transform-origin:center center}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-icon{left:8px}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-extra-icon,.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-icon{right:8px}.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-extra-icon{left:8px}.elfinder .elfinder-contextmenu-arrow{width:16px;height:16px;background:url(../img/arrows-normal.png) 5px 4px no-repeat}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-arrow{right:5px}.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-arrow{left:5px;background-position:0 -10px}.elfinder .elfinder-contextmenu-extra-icon a,.elfinder .elfinder-contextmenu-extra-icon span{position:relative;width:100%;height:100%;margin:0;color:transparent!important;text-decoration:none;cursor:pointer}.elfinder .elfinder-contextmenu .ui-state-hover{border:0 solid;background-image:none}.elfinder .elfinder-contextmenu-separator{height:0;border-top:1px solid #ccc;margin:0 1px}.elfinder .elfinder-contextmenu-item .elfinder-button-icon.ui-state-disabled{background-image:url(../img/toolbar.png)}.elfinder-cwd-wrapper{overflow:auto;position:relative;padding:2px;margin:0}.elfinder-cwd-wrapper-list{padding:0}.elfinder-cwd{position:absolute;top:0;cursor:default;padding:0;margin:0;-ms-touch-action:auto;touch-action:auto;min-width:100%}.elfinder-ltr .elfinder-cwd{left:0}.elfinder-rtl .elfinder-cwd{right:0}.elfinder-cwd.elfinder-table-header-sticky{position:-webkit-sticky;position:-ms-sticky;position:sticky;top:0;left:auto;right:auto;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:max-content;height:0;overflow:visible}.elfinder-cwd.elfinder-table-header-sticky table{border-top:2px solid;padding-top:0}.elfinder-cwd.elfinder-table-header-sticky td{display:inline-block}.elfinder-droppable-active .elfinder-cwd.elfinder-table-header-sticky table{border-top:2px solid transparent}.elfinder .elfinder-cwd table tbody.elfinder-cwd-fixheader,.elfinder-cwd-fixheader .elfinder-cwd{position:relative}.elfinder .elfinder-cwd-wrapper.elfinder-droppable-active{outline:2px solid #8cafed;outline-offset:-2px}.elfinder-cwd-wrapper-empty .elfinder-cwd:after{display:block;height:auto;width:90%;width:calc(100% - 20px);position:absolute;top:50%;left:50%;-ms-transform:translateY(-50%) translateX(-50%);-webkit-transform:translateY(-50%) translateX(-50%);transform:translateY(-50%) translateX(-50%);line-height:1.5em;text-align:center;white-space:pre-wrap;opacity:.6;filter:Alpha(Opacity=60);font-weight:700}.elfinder-cwd-file .elfinder-cwd-select{position:absolute;top:0;left:0;background-color:transparent;opacity:.4;filter:Alpha(Opacity=40)}.elfinder-mobile .elfinder-cwd-file .elfinder-cwd-select{width:30px;height:30px}.elfinder .elfinder-cwd-selectall,.elfinder-cwd-file.ui-selected .elfinder-cwd-select{opacity:.8;filter:Alpha(Opacity=80)}.elfinder-rtl .elfinder-cwd-file .elfinder-cwd-select{left:auto;right:0}.elfinder .elfinder-cwd-selectall{position:absolute;width:30px;height:30px;top:0}.elfinder .elfinder-workzone.elfinder-cwd-wrapper-empty .elfinder-cwd-selectall{display:none}.elfinder-ltr .elfinder-workzone .elfinder-cwd-selectall{text-align:right;right:18px;left:auto}.elfinder-rtl .elfinder-workzone .elfinder-cwd-selectall{text-align:left;right:auto;left:18px}.elfinder-ltr.elfinder-mobile .elfinder-workzone .elfinder-cwd-selectall{right:0}.elfinder-rtl.elfinder-mobile .elfinder-workzone .elfinder-cwd-selectall{left:0}.elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-select.ui-state-hover{background-color:transparent}.elfinder-cwd-view-icons .elfinder-cwd-file{width:120px;height:90px;padding-bottom:2px;cursor:default;border:none;position:relative}.elfinder .std42-dialog .ui-dialog-content label,.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-active{border:none}.elfinder-ltr .elfinder-cwd-view-icons .elfinder-cwd-file{float:left;margin:0 3px 2px 0}.elfinder-rtl .elfinder-cwd-view-icons .elfinder-cwd-file{float:right;margin:0 0 5px 3px}.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-hover{border:0 solid}.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper{width:52px;height:52px;margin:1px auto;padding:2px;position:relative}.elfinder-cwd-size1 .elfinder-cwd-icon:before,.elfinder-cwd-size2 .elfinder-cwd-icon:before,.elfinder-cwd-size3 .elfinder-cwd-icon:before{top:3px;display:block}.elfinder-cwd-size1.elfinder-cwd-view-icons .elfinder-cwd-file{width:120px;height:112px}.elfinder-cwd-size1.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper{width:74px;height:74px}.elfinder-cwd-size1 .elfinder-cwd-icon,.elfinder-cwd-size2 .elfinder-cwd-icon,.elfinder-cwd-size3 .elfinder-cwd-icon{-ms-transform-origin:top center;-ms-transform:scale(1.5);-webkit-transform-origin:top center;-webkit-transform:scale(1.5);transform-origin:top center;transform:scale(1.5)}.elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl:before{-ms-transform-origin:top left;-ms-transform:scale(1.35) translate(-4px,15%);-webkit-transform-origin:top left;-webkit-transform:scale(1.35) translate(-4px,15%);transform-origin:top left;transform:scale(1.35) translate(-4px,15%)}.elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl:after{-ms-transform:scale(1) translate(10px,-5px);-webkit-transform:scale(1) translate(10px,-5px);transform:scale(1) translate(10px,-5px)}.elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl{-ms-transform-origin:center center;-ms-transform:scale(1);-webkit-transform-origin:center center;-webkit-transform:scale(1);transform-origin:center center;transform:scale(1);width:72px;height:72px;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px}.elfinder-cwd-size2.elfinder-cwd-view-icons .elfinder-cwd-file{width:140px;height:134px}.elfinder-cwd-size2.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper{width:98px;height:98px}.elfinder-cwd-size2 .elfinder-cwd-icon,.elfinder-cwd-size3 .elfinder-cwd-icon{-ms-transform:scale(2);-webkit-transform:scale(2);transform:scale(2)}.elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl:before{-ms-transform-origin:top left;-ms-transform:scale(1.8) translate(-5px,18%);-webkit-transform-origin:top left;-webkit-transform:scale(1.8) translate(-5px,18%);transform-origin:top left;transform:scale(1.8) translate(-5px,18%)}.elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl:after{-ms-transform:scale(1.1) translate(0,10px);-webkit-transform:scale(1.1) translate(0,10px);transform:scale(1.1) translate(0,10px)}.elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl{-ms-transform-origin:center center;-ms-transform:scale(1);-webkit-transform-origin:center center;-webkit-transform:scale(1);transform-origin:center center;transform:scale(1);width:96px;height:96px;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.elfinder-cwd-size3.elfinder-cwd-view-icons .elfinder-cwd-file{width:174px;height:158px}.elfinder-cwd-size3.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper{width:122px;height:122px}.elfinder-cwd-size3 .elfinder-cwd-icon{-ms-transform:scale(2.5);-webkit-transform:scale(2.5);transform:scale(2.5)}.elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl:before{-ms-transform-origin:top left;-ms-transform:scale(2.25) translate(-6px,20%);-webkit-transform-origin:top left;-webkit-transform:scale(2.25) translate(-6px,20%);transform-origin:top left;transform:scale(2.25) translate(-6px,20%)}.elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl:after{-ms-transform:scale(1.2) translate(-9px,22px);-webkit-transform:scale(1.2) translate(-9px,22px);transform:scale(1.2) translate(-9px,22px)}.elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl{-ms-transform-origin:center center;-ms-transform:scale(1);-webkit-transform-origin:center center;-webkit-transform:scale(1);transform-origin:center center;transform:scale(1);width:120px;height:120px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px}.elfinder-cwd-view-icons .elfinder-cwd-filename{text-align:center;max-height:2.4em;line-height:1.2em;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;margin:3px 1px 0;padding:1px;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;word-break:break-word;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.elfinder-cwd-view-icons .elfinder-perms{bottom:4px;right:2px}.elfinder-cwd-view-icons .elfinder-lock{top:-3px;right:-2px}.elfinder-cwd-view-icons .elfinder-symlink{bottom:6px;left:0}.elfinder-cwd-icon{display:block;width:48px;height:48px;margin:0 auto;background-image:url(../img/icons-big.svg);background-image:url(../img/icons-big.png) \9;background-position:0 0;background-repeat:no-repeat;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box}.elfinder-cwd .elfinder-navbar-root-local.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon,.elfinder-navbar-root-local .elfinder-cwd-icon{background-image:url(../img/volume_icon_local.svg);background-image:url(../img/volume_icon_local.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-local.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd .elfinder-navbar-root-trash.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon,.elfinder-navbar-root-trash .elfinder-cwd-icon{background-image:url(../img/volume_icon_trash.svg);background-image:url(../img/volume_icon_trash.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-trash.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd .elfinder-navbar-root-ftp.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon,.elfinder-navbar-root-ftp .elfinder-cwd-icon{background-image:url(../img/volume_icon_ftp.svg);background-image:url(../img/volume_icon_ftp.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-ftp.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd .elfinder-navbar-root-sql.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon,.elfinder-navbar-root-sql .elfinder-cwd-icon{background-image:url(../img/volume_icon_sql.svg);background-image:url(../img/volume_icon_sql.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-sql.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd .elfinder-navbar-root-dropbox.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon,.elfinder-navbar-root-dropbox .elfinder-cwd-icon{background-image:url(../img/volume_icon_dropbox.svg);background-image:url(../img/volume_icon_dropbox.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-dropbox.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon,.elfinder-navbar-root-googledrive .elfinder-cwd-icon{background-position:0 0}.elfinder-cwd .elfinder-navbar-root-googledrive.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon,.elfinder-navbar-root-googledrive .elfinder-cwd-icon{background-image:url(../img/volume_icon_googledrive.svg);background-image:url(../img/volume_icon_googledrive.png) \9;background-size:contain}.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon,.elfinder-navbar-root-onedrive .elfinder-cwd-icon{background-position:0 0}.elfinder-cwd .elfinder-navbar-root-onedrive.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon,.elfinder-navbar-root-onedrive .elfinder-cwd-icon{background-image:url(../img/volume_icon_onedrive.svg);background-image:url(../img/volume_icon_onedrive.png) \9;background-size:contain}.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon,.elfinder-navbar-root-box .elfinder-cwd-icon{background-position:0 0}.elfinder-cwd .elfinder-navbar-root-box.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon,.elfinder-navbar-root-box .elfinder-cwd-icon{background-image:url(../img/volume_icon_box.svg);background-image:url(../img/volume_icon_box.png) \9;background-size:contain}.elfinder-cwd .elfinder-navbar-root-zip.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon,.elfinder-navbar-root-zip .elfinder-cwd-icon{background-image:url(../img/volume_icon_zip.svg);background-image:url(../img/volume_icon_zip.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-box.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd .elfinder-navbar-root-googledrive.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd .elfinder-navbar-root-onedrive.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd .elfinder-navbar-root-network.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon,.elfinder-navbar-root-network .elfinder-cwd-icon{background-image:url(../img/volume_icon_network.svg);background-image:url(../img/volume_icon_network.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-network.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd-icon:before{content:none;position:absolute;left:0;top:5px;min-width:20px;max-width:84px;text-align:center;padding:0 4px 1px;border-radius:4px;font-family:Verdana;font-size:10px;line-height:1.3em;-webkit-transform:scale(.9);-moz-transform:scale(.9);-ms-transform:scale(.9);-o-transform:scale(.9);transform:scale(.9)}.elfinder-cwd-view-icons .elfinder-cwd-icon.elfinder-cwd-bgurl:before{left:-10px}.elfinder-cwd-icon.elfinder-cwd-icon-mp2t:before{content:'ts'}.elfinder-cwd-icon.elfinder-cwd-icon-dash-xml:before{content:'dash'}.elfinder-cwd-icon.elfinder-cwd-icon-x-mpegurl:before{content:'hls'}.elfinder-cwd-icon.elfinder-cwd-icon-x-c:before{content:'c++'}.elfinder-cwd-icon.elfinder-cwd-bgurl{background-position:center center;background-repeat:no-repeat}.elfinder-cwd-icon.elfinder-cwd-bgurl,.elfinder-cwd-icon.elfinder-cwd-bgurl.elfinder-cwd-bgself{-moz-background-size:cover;background-size:cover}.elfinder-cwd-icon.elfinder-cwd-bgurl:after{content:' '}.elfinder-cwd-bgurl:after{position:relative;display:inline-block;top:36px;left:-38px;width:48px;height:48px;background-image:url(../img/icons-big.svg);background-image:url(../img/icons-big.png) \9;background-repeat:no-repeat;background-size:auto!important;opacity:.8;filter:Alpha(Opacity=60);-webkit-transform-origin:54px -24px;-webkit-transform:scale(.6);-moz-transform-origin:54px -24px;-moz-transform:scale(.6);-ms-transform-origin:54px -24px;-ms-transform:scale(.6);-o-transform-origin:54px -24px;-o-transform:scale(.6);transform-origin:54px -24px;transform:scale(.6)}.elfinder-cwd-icon.elfinder-cwd-icon-drag{width:48px;height:48px}.elfinder-cwd-icon-directory.elfinder-cwd-bgurl:after,.elfinder-cwd-icon-image.elfinder-cwd-bgurl:after,.elfinder-cwd-icon.elfinder-cwd-icon-drag:after,.elfinder-cwd-icon.elfinder-cwd-icon-drag:before{content:none}.elfinder-cwd .elfinder-droppable-active .elfinder-cwd-icon{background-position:0 -100px}.elfinder-cwd .elfinder-droppable-active{outline:2px solid #8cafed;outline-offset:-2px}.elfinder-cwd-icon-directory{background-position:0 -50px}.elfinder-cwd-icon-application,.elfinder-cwd-icon-application:after{background-position:0 -150px}.elfinder-cwd-icon-text,.elfinder-cwd-icon-text:after{background-position:0 -1350px}.elfinder-cwd-icon-plain,.elfinder-cwd-icon-plain:after,.elfinder-cwd-icon-x-empty,.elfinder-cwd-icon-x-empty:after{background-position:0 -200px}.elfinder-cwd-icon-image,.elfinder-cwd-icon-image:after,.elfinder-cwd-icon-vnd-adobe-photoshop,.elfinder-cwd-icon-vnd-adobe-photoshop:after{background-position:0 -250px}.elfinder-cwd-icon-postscript,.elfinder-cwd-icon-postscript:after{background-position:0 -1550px}.elfinder-cwd-icon-audio,.elfinder-cwd-icon-audio:after{background-position:0 -300px}.elfinder-cwd-icon-dash-xml,.elfinder-cwd-icon-flash-video,.elfinder-cwd-icon-video,.elfinder-cwd-icon-video:after,.elfinder-cwd-icon-vnd-apple-mpegurl,.elfinder-cwd-icon-x-mpegurl{background-position:0 -350px}.elfinder-cwd-icon-rtf,.elfinder-cwd-icon-rtf:after,.elfinder-cwd-icon-rtfd,.elfinder-cwd-icon-rtfd:after{background-position:0 -400px}.elfinder-cwd-icon-pdf,.elfinder-cwd-icon-pdf:after{background-position:0 -450px}.elfinder-cwd-icon-ms-excel,.elfinder-cwd-icon-ms-excel:after,.elfinder-cwd-icon-vnd-ms-excel,.elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-excel:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template:after{background-position:0 -1450px}.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet,.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template,.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template:after,.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet:after{background-position:0 -1700px}.elfinder-cwd-icon-vnd-ms-powerpoint,.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-powerpoint:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slideshow,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slideshow:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-template,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-template:after{background-position:0 -1400px}.elfinder-cwd-icon-vnd-oasis-opendocument-presentation,.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template,.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template:after,.elfinder-cwd-icon-vnd-oasis-opendocument-presentation:after{background-position:0 -1650px}.elfinder-cwd-icon-msword,.elfinder-cwd-icon-msword:after,.elfinder-cwd-icon-vnd-ms-word,.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-word:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-document,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-document:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-template,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-template:after{background-position:0 -1500px}.elfinder-cwd-icon-vnd-oasis-opendocument-text,.elfinder-cwd-icon-vnd-oasis-opendocument-text-master,.elfinder-cwd-icon-vnd-oasis-opendocument-text-master:after,.elfinder-cwd-icon-vnd-oasis-opendocument-text-template,.elfinder-cwd-icon-vnd-oasis-opendocument-text-template:after,.elfinder-cwd-icon-vnd-oasis-opendocument-text-web,.elfinder-cwd-icon-vnd-oasis-opendocument-text-web:after,.elfinder-cwd-icon-vnd-oasis-opendocument-text:after{background-position:0 -1750px}.elfinder-cwd-icon-vnd-ms-office,.elfinder-cwd-icon-vnd-ms-office:after{background-position:0 -500px}.elfinder-cwd-icon-vnd-oasis-opendocument-chart,.elfinder-cwd-icon-vnd-oasis-opendocument-chart:after,.elfinder-cwd-icon-vnd-oasis-opendocument-database,.elfinder-cwd-icon-vnd-oasis-opendocument-database:after,.elfinder-cwd-icon-vnd-oasis-opendocument-formula,.elfinder-cwd-icon-vnd-oasis-opendocument-formula:after,.elfinder-cwd-icon-vnd-oasis-opendocument-graphics,.elfinder-cwd-icon-vnd-oasis-opendocument-graphics-template,.elfinder-cwd-icon-vnd-oasis-opendocument-graphics-template:after,.elfinder-cwd-icon-vnd-oasis-opendocument-graphics:after,.elfinder-cwd-icon-vnd-oasis-opendocument-image,.elfinder-cwd-icon-vnd-oasis-opendocument-image:after,.elfinder-cwd-icon-vnd-openofficeorg-extension,.elfinder-cwd-icon-vnd-openofficeorg-extension:after{background-position:0 -1600px}.elfinder-cwd-icon-html,.elfinder-cwd-icon-html:after{background-position:0 -550px}.elfinder-cwd-icon-css,.elfinder-cwd-icon-css:after{background-position:0 -600px}.elfinder-cwd-icon-javascript,.elfinder-cwd-icon-javascript:after,.elfinder-cwd-icon-x-javascript,.elfinder-cwd-icon-x-javascript:after{background-position:0 -650px}.elfinder-cwd-icon-x-perl,.elfinder-cwd-icon-x-perl:after{background-position:0 -700px}.elfinder-cwd-icon-x-python,.elfinder-cwd-icon-x-python:after{background-position:0 -750px}.elfinder-cwd-icon-x-ruby,.elfinder-cwd-icon-x-ruby:after{background-position:0 -800px}.elfinder-cwd-icon-x-sh,.elfinder-cwd-icon-x-sh:after,.elfinder-cwd-icon-x-shellscript,.elfinder-cwd-icon-x-shellscript:after{background-position:0 -850px}.elfinder-cwd-icon-x-c,.elfinder-cwd-icon-x-c--,.elfinder-cwd-icon-x-c--:after,.elfinder-cwd-icon-x-c--hdr,.elfinder-cwd-icon-x-c--hdr:after,.elfinder-cwd-icon-x-c--src,.elfinder-cwd-icon-x-c--src:after,.elfinder-cwd-icon-x-c:after,.elfinder-cwd-icon-x-chdr,.elfinder-cwd-icon-x-chdr:after,.elfinder-cwd-icon-x-csrc,.elfinder-cwd-icon-x-csrc:after,.elfinder-cwd-icon-x-java,.elfinder-cwd-icon-x-java-source,.elfinder-cwd-icon-x-java-source:after,.elfinder-cwd-icon-x-java:after{background-position:0 -900px}.elfinder-cwd-icon-x-php,.elfinder-cwd-icon-x-php:after{background-position:0 -950px}.elfinder-cwd-icon-xml,.elfinder-cwd-icon-xml:after{background-position:0 -1000px}.elfinder-cwd-icon-x-7z-compressed,.elfinder-cwd-icon-x-7z-compressed:after,.elfinder-cwd-icon-x-xz,.elfinder-cwd-icon-x-xz:after,.elfinder-cwd-icon-x-zip,.elfinder-cwd-icon-x-zip:after,.elfinder-cwd-icon-zip,.elfinder-cwd-icon-zip:after{background-position:0 -1050px}.elfinder-cwd-icon-x-gzip,.elfinder-cwd-icon-x-gzip:after,.elfinder-cwd-icon-x-tar,.elfinder-cwd-icon-x-tar:after{background-position:0 -1100px}.elfinder-cwd-icon-x-bzip,.elfinder-cwd-icon-x-bzip2,.elfinder-cwd-icon-x-bzip2:after,.elfinder-cwd-icon-x-bzip:after{background-position:0 -1150px}.elfinder-cwd-icon-x-rar,.elfinder-cwd-icon-x-rar-compressed,.elfinder-cwd-icon-x-rar-compressed:after,.elfinder-cwd-icon-x-rar:after{background-position:0 -1200px}.elfinder-cwd-icon-x-shockwave-flash,.elfinder-cwd-icon-x-shockwave-flash:after{background-position:0 -1250px}.elfinder-cwd-icon-group{background-position:0 -1300px}.elfinder-cwd-filename input{width:100%;border:none;margin:0;padding:0}.elfinder-cwd-view-icons,.elfinder-cwd-view-icons input{text-align:center}.elfinder-cwd-view-icons textarea{width:100%;border:0 solid;margin:0;padding:0;text-align:center;overflow:hidden;resize:none}.elfinder-cwd-wrapper.elfinder-cwd-fixheader .elfinder-cwd::after,.std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar select{display:none}.elfinder-cwd table{width:100%;border-collapse:separate;border:0 solid;margin:0 0 10px;border-spacing:0;box-sizing:padding-box;padding:2px;position:relative}.elfinder .elfinder-cwd table td div,.elfinder-cwd table td{box-sizing:content-box}.elfinder-cwd-wrapper-list.elfinder-cwd-fixheader{position:absolute;overflow:hidden}.elfinder-cwd-wrapper-list.elfinder-cwd-fixheader:before{content:'';position:absolute;width:100%;top:0;height:3px;background-color:#fff}.elfinder-droppable-active+.elfinder-cwd-wrapper-list.elfinder-cwd-fixheader:before{background-color:#8cafed}.elfinder .elfinder-workzone div.elfinder-cwd-fixheader table{table-layout:fixed}.elfinder-ltr .elfinder-cwd thead .elfinder-cwd-selectall{text-align:left;right:auto;left:0;padding-top:3px}.elfinder-rtl .elfinder-cwd thead .elfinder-cwd-selectall{text-align:right;right:0;left:auto;padding-top:3px}.elfinder-touch .elfinder-cwd thead .elfinder-cwd-selectall{padding-top:4px}.elfinder .elfinder-cwd table thead tr{border-left:0 solid;border-top:0 solid;border-right:0 solid}.elfinder .elfinder-cwd table thead td{padding:4px 14px}.elfinder-ltr .elfinder-cwd.elfinder-has-checkbox table thead td:first-child{padding:4px 14px 4px 22px}.elfinder-rtl .elfinder-cwd.elfinder-has-checkbox table thead td:first-child{padding:4px 22px 4px 14px}.elfinder-touch .elfinder-cwd table thead td,.elfinder-touch .elfinder-cwd.elfinder-has-checkbox table thead td:first-child{padding-top:8px;padding-bottom:8px}.elfinder .elfinder-cwd table thead td.ui-state-active{background:#ebf1f6;background:-moz-linear-gradient(top,#ebf1f6 0%,#abd3ee 50%,#89c3eb 51%,#d5ebfb 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebf1f6),color-stop(50%,#abd3ee),color-stop(51%,#89c3eb),color-stop(100%,#d5ebfb));background:-webkit-linear-gradient(top,#ebf1f6 0%,#abd3ee 50%,#89c3eb 51%,#d5ebfb 100%);background:-o-linear-gradient(top,#ebf1f6 0%,#abd3ee 50%,#89c3eb 51%,#d5ebfb 100%);background:-ms-linear-gradient(top,#ebf1f6 0%,#abd3ee 50%,#89c3eb 51%,#d5ebfb 100%);background:linear-gradient(to bottom,#ebf1f6 0%,#abd3ee 50%,#89c3eb 51%,#d5ebfb 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebf1f6', endColorstr='#d5ebfb', GradientType=0)}.elfinder .elfinder-cwd table td{padding:4px 12px;white-space:pre;overflow:hidden;text-align:right;cursor:default;border:0 solid}.elfinder .elfinder-cwd table tbody td:first-child{position:relative}tr.elfinder-cwd-file td .elfinder-cwd-select{padding-top:3px}.elfinder-mobile tr.elfinder-cwd-file td .elfinder-cwd-select{width:40px}.elfinder-touch tr.elfinder-cwd-file td .elfinder-cwd-select{padding-top:10px}.elfinder-touch .elfinder-cwd tr td{padding:10px 12px}.elfinder-touch .elfinder-cwd tr.elfinder-cwd-file td{padding:13px 12px}.elfinder-ltr .elfinder-cwd table td{text-align:right}.elfinder-ltr .elfinder-cwd table td:first-child{text-align:left}.elfinder-rtl .elfinder-cwd table td{text-align:left}.elfinder-ltr .elfinder-info-tb tr td:first-child,.elfinder-rtl .elfinder-cwd table td:first-child{text-align:right}.elfinder-odd-row{background:#eee}.elfinder-cwd-view-list .elfinder-cwd-file-wrapper{width:97%;position:relative}.elfinder-ltr .elfinder-cwd-view-list.elfinder-has-checkbox .elfinder-cwd-file-wrapper{margin-left:8px}.elfinder-rtl .elfinder-cwd-view-list.elfinder-has-checkbox .elfinder-cwd-file-wrapper{margin-right:8px}.elfinder-ltr .elfinder-cwd-view-list .elfinder-cwd-filename{padding-left:23px}.elfinder-rtl .elfinder-cwd-view-list .elfinder-cwd-filename{padding-right:23px}.elfinder-cwd-view-list .elfinder-lock,.elfinder-cwd-view-list .elfinder-perms,.elfinder-cwd-view-list .elfinder-symlink{margin-top:-6px;opacity:.6;filter:Alpha(Opacity=60)}.elfinder-cwd-view-list .elfinder-perms{bottom:-4px}.elfinder-cwd-view-list .elfinder-lock{top:0}.elfinder-cwd-view-list .elfinder-symlink{bottom:-4px}.elfinder-ltr .elfinder-cwd-view-list .elfinder-perms{left:8px}.elfinder-rtl .elfinder-cwd-view-list .elfinder-perms{right:-8px}.elfinder-ltr .elfinder-cwd-view-list .elfinder-lock{left:10px}.elfinder-rtl .elfinder-cwd-view-list .elfinder-lock{right:-10px}.elfinder-ltr .elfinder-cwd-view-list .elfinder-symlink{left:-7px}.elfinder-rtl .elfinder-cwd-view-list .elfinder-symlink{right:7px}.elfinder-cwd-view-list td .elfinder-cwd-icon{width:16px;height:16px;position:absolute;top:50%;margin-top:-8px;background-image:url(../img/icons-small.png)}.elfinder-ltr .elfinder-cwd-view-list .elfinder-cwd-icon{left:0}.elfinder-rtl .elfinder-cwd-view-list .elfinder-cwd-icon{right:0}.elfinder-cwd-view-list .elfinder-cwd-icon:after,.elfinder-cwd-view-list .elfinder-cwd-icon:before{content:none}.elfinder-cwd-view-list thead td .ui-resizable-handle{height:100%;top:6px}.elfinder-touch .elfinder-cwd-view-list thead td .ui-resizable-handle{top:-4px;margin:10px}.elfinder-cwd-view-list thead td .ui-resizable-e{right:-7px}.elfinder-cwd-view-list thead td .ui-resizable-w{left:-7px}.elfinder-touch .elfinder-cwd-view-list thead td .ui-resizable-e{right:-16px}.elfinder-touch .elfinder-cwd-view-list thead td .ui-resizable-w{left:-16px}.elfinder-cwd-wrapper-empty .elfinder-cwd-view-list.elfinder-cwd:after{margin-top:0}.elfinder-cwd-message-board{position:-webkit-sticky;position:sticky;width:100%;height:calc(100% - .01px);top:0;left:0;margin:0;padding:0;pointer-events:none;background-color:transparent}.elfinder-cwd-wrapper-trash .elfinder-cwd-message-board{background-image:url(../img/trashmesh.png)}.elfinder-cwd-message-board .elfinder-cwd-trash{position:absolute;bottom:0;font-size:30px;width:100%;text-align:right;display:none}.elfinder-rtl .elfinder-cwd-message-board .elfinder-cwd-trash{text-align:left}.elfinder-mobile .elfinder-cwd-message-board .elfinder-cwd-trash{font-size:20px}.elfinder-cwd-wrapper-trash .elfinder-cwd-message-board .elfinder-cwd-trash{display:block;opacity:.3}.elfinder-cwd-message-board .elfinder-cwd-expires{position:absolute;bottom:0;font-size:24px;width:100%;text-align:right;opacity:.25}.elfinder-rtl .elfinder-cwd-message-board .elfinder-cwd-expires{text-align:left}.elfinder-mobile .elfinder-cwd-message-board .elfinder-cwd-expires{font-size:20px}.std42-dialog{padding:0;position:absolute;left:auto;right:auto;box-sizing:border-box}.std42-dialog.elfinder-dialog-minimized{overFlow:hidden;position:relative;float:left;width:auto;cursor:pointer}.elfinder-rtl .std42-dialog.elfinder-dialog-minimized{float:right}.std42-dialog input{border:1px solid}.std42-dialog .ui-dialog-titlebar{border-left:0 solid transparent;border-top:0 solid transparent;border-right:0 solid transparent;font-weight:400;padding:.2em 1em}.std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar{padding:0 .5em;height:20px}.elfinder-touch .std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar{padding:.3em .5em}.std42-dialog.ui-draggable-disabled .ui-dialog-titlebar{cursor:default}.std42-dialog .ui-dialog-titlebar .ui-widget-header{border:none;cursor:pointer}.std42-dialog .ui-dialog-titlebar span.elfinder-dialog-title{display:inherit;word-break:break-all}.std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar span.elfinder-dialog-title{display:list-item;display:-moz-inline-box;white-space:nowrap;word-break:normal;overflow:hidden;word-wrap:normal;overflow-wrap:normal;max-width:-webkit-calc(100% - 24px);max-width:-moz-calc(100% - 24px);max-width:calc(100% - 24px)}.elfinder-touch .std42-dialog .ui-dialog-titlebar span.elfinder-dialog-title{padding-top:.15em}.elfinder-touch .std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar span.elfinder-dialog-title{max-width:-webkit-calc(100% - 36px);max-width:-moz-calc(100% - 36px);max-width:calc(100% - 36px)}.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button{position:relative;float:left;top:10px;left:-10px;right:10px;width:20px;height:20px;padding:1px;margin:-10px 1px 0;background-color:transparent;background-image:none}.elfinder-touch .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button{-moz-transform:scale(1.2);zoom:1.2;padding-left:6px;padding-right:6px;height:24px}.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button-right{float:right}.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button.elfinder-titlebar-button-right{left:10px;right:-10px}.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon{width:17px;height:17px;border-width:1px;opacity:.7;filter:Alpha(Opacity=70);-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon{opacity:.5;filter:Alpha(Opacity=50)}.std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon{opacity:1;filter:Alpha(Opacity=100)}.elfinder-spinner{width:14px;height:14px;background:url(../img/spinner-mini.gif) center center no-repeat;margin:0 5px;display:inline-block;vertical-align:middle}.elfinder-ltr .elfinder-info-tb span,.elfinder-ltr .elfinder-spinner,.elfinder-ltr .elfinder-spinner-text{float:left}.elfinder-rtl .elfinder-info-tb span,.elfinder-rtl .elfinder-spinner,.elfinder-rtl .elfinder-spinner-text{float:right}.elfinder-touch .std42-dialog.ui-dialog:not(ui-resizable-disabled) .ui-resizable-se{width:12px;height:12px;-moz-transform-origin:bottom right;-moz-transform:scale(1.5);zoom:1.5;right:-7px;bottom:-7px;margin:3px 7px 7px 3px;background-position:-64px -224px}.elfinder-rtl .elfinder-dialog .ui-dialog-titlebar{text-align:right}.std42-dialog .ui-dialog-content{padding:.3em .5em;box-sizing:border-box}.elfinder .std42-dialog .ui-dialog-content,.elfinder .std42-dialog .ui-dialog-content *{-webkit-user-select:auto;-moz-user-select:text;-khtml-user-select:text;user-select:text}.std42-dialog .ui-dialog-buttonpane{border:0 solid;margin:0;padding:.5em;text-align:right}.elfinder-rtl .std42-dialog .ui-dialog-buttonpane{text-align:left}.std42-dialog .ui-dialog-buttonpane button{margin:.2em 0 0 .4em;padding:.2em;outline:0 solid}.std42-dialog .ui-dialog-buttonpane button span{padding:2px 9px}.std42-dialog .ui-dialog-buttonpane button span.ui-icon{padding:2px}.elfinder-dialog .ui-resizable-e,.elfinder-dialog .ui-resizable-s{width:0;height:0}.std42-dialog .ui-button input{cursor:pointer}.std42-dialog select{border:1px solid #ccc}.elfinder-dialog-icon{position:absolute;width:32px;height:32px;left:10px;top:50%;margin-top:-15px;background:url(../img/dialogs.png) 0 0 no-repeat}.elfinder-rtl .elfinder-dialog-icon{left:auto;right:10px}.elfinder-dialog-confirm .ui-dialog-content,.elfinder-dialog-error .ui-dialog-content{padding-left:56px;min-height:35px}.elfinder-rtl .elfinder-dialog-confirm .ui-dialog-content,.elfinder-rtl .elfinder-dialog-error .ui-dialog-content{padding-left:0;padding-right:56px}.elfinder-dialog-error .elfinder-err-var{word-break:break-all}.elfinder-dialog-notify{top:36px;width:280px}.elfinder-ltr .elfinder-dialog-notify{right:12px}.elfinder-rtl .elfinder-dialog-notify{left:12px}.elfinder-dialog-notify .ui-dialog-titlebar{height:5px}.elfinder-dialog-notify .ui-dialog-titlebar-close,.elfinder-rm-title+br{display:none}.elfinder-dialog-notify .ui-dialog-content{padding:0}.elfinder-notify{border-bottom:1px solid #ccc;position:relative;padding:.5em;text-align:center;overflow:hidden}.elfinder-ltr .elfinder-notify{padding-left:36px}.elfinder-rtl .elfinder-notify{padding-right:36px}.elfinder-notify:last-child{border:0 solid}.elfinder-notify-progressbar{width:180px;height:8px;border:1px solid #aaa;background:#f5f5f5;margin:5px auto;overflow:hidden}.elfinder-notify-progress{width:100%;height:8px;background:url(../img/progress.gif) center center repeat-x}.elfinder-notify-progress,.elfinder-notify-progressbar{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.elfinder-dialog-icon-file,.elfinder-dialog-icon-open,.elfinder-dialog-icon-readdir,.elfinder-dialog-icon-reload{background-position:0 -225px}.elfinder-dialog-icon-mkdir{background-position:0 -64px}.elfinder-dialog-icon-mkfile{background-position:0 -96px}.elfinder-dialog-icon-copy,.elfinder-dialog-icon-move,.elfinder-dialog-icon-prepare{background-position:0 -128px}.elfinder-dialog-icon-chunkmerge,.elfinder-dialog-icon-upload{background-position:0 -160px}.elfinder-dialog-icon-rm{background-position:0 -192px}.elfinder-dialog-icon-download{background-position:0 -260px}.elfinder-dialog-icon-save{background-position:0 -295px}.elfinder-dialog-icon-chkcontent,.elfinder-dialog-icon-rename{background-position:0 -330px}.elfinder-dialog-icon-archive,.elfinder-dialog-icon-extract,.elfinder-dialog-icon-zipdl{background-position:0 -365px}.elfinder-dialog-icon-search{background-position:0 -402px}.elfinder-dialog-icon-chmod,.elfinder-dialog-icon-dim,.elfinder-dialog-icon-loadimg,.elfinder-dialog-icon-netmount,.elfinder-dialog-icon-netunmount,.elfinder-dialog-icon-preupload,.elfinder-dialog-icon-resize,.elfinder-dialog-icon-url{background-position:0 -434px}.elfinder-dialog-confirm-applyall,.elfinder-dialog-confirm-encoding{padding:0 1em;margin:0}.elfinder-ltr .elfinder-dialog-confirm-applyall,.elfinder-ltr .elfinder-dialog-confirm-encoding{text-align:left}.elfinder-rtl .elfinder-dialog-confirm-applyall,.elfinder-rtl .elfinder-dialog-confirm-encoding{text-align:right}.elfinder-dialog-confirm .elfinder-dialog-icon{background-position:0 -32px}.elfinder-dialog-confirm .ui-dialog-buttonset{width:auto}.elfinder-info-title .elfinder-cwd-icon{float:left;width:48px;height:48px;margin-right:1em}.elfinder-rtl .elfinder-info-title .elfinder-cwd-icon,.elfinder-rtl .elfinder-rm-title .elfinder-cwd-icon{float:right;margin-right:0;margin-left:1em}.elfinder-info-title strong{display:block;padding:.3em 0 .5em}.elfinder-info-tb{min-width:200px;border:0 solid;margin:1em .2em;width:100%}.elfinder-info-tb td{white-space:pre-wrap;padding:2px}.elfinder-info-tb td.elfinder-info-label{white-space:nowrap}.elfinder-info-tb td.elfinder-info-hash{display:inline-block;word-break:break-all;max-width:32ch}.elfinder-rtl .elfinder-info-tb tr td:first-child{text-align:left}.elfinder-info-tb a{outline:none;text-decoration:underline}.elfinder-info-tb a:hover{text-decoration:none}.elfinder-netmount-tb{margin:0 auto}.elfinder-netmount-tb .elfinder-button-icon,.elfinder-netmount-tb select{cursor:pointer}button.elfinder-info-button{margin:-3.5px 0;cursor:pointer}.elfinder-upload-dropbox{display:table-cell;text-align:center;vertical-align:middle;padding:.5em;border:3px dashed #aaa;width:9999px;height:80px;overflow:hidden;word-break:keep-all}.elfinder-upload-dropbox.ui-state-hover{background:#dfdfdf;border:3px dashed #555}.elfinder-upload-dialog-or{margin:.3em 0;text-align:center}.elfinder-upload-dialog-wrapper{text-align:center}.elfinder-upload-dialog-wrapper .ui-button{position:relative;overflow:hidden}.elfinder-upload-dialog-wrapper .ui-button form{position:absolute;right:0;top:0;width:100%;opacity:0;filter:Alpha(Opacity=0)}.elfinder-upload-dialog-wrapper .ui-button form input{padding:50px 0 0;font-size:3em;width:100%}.dialogelfinder .dialogelfinder-drag{border-left:0 solid;border-top:0 solid;border-right:0 solid;font-weight:400;padding:2px 12px;cursor:move;position:relative;text-align:left}.elfinder-rtl .dialogelfinder-drag{text-align:right}.dialogelfinder-drag-close{position:absolute;top:50%;margin-top:-8px}.elfinder-ltr .dialogelfinder-drag-close{right:12px}.elfinder-rtl .dialogelfinder-drag-close{left:12px}.elfinder-rm-title{margin-bottom:.5ex}.elfinder-rm-title .elfinder-cwd-icon{float:left;width:48px;height:48px;margin-right:1em}.elfinder-rm-title strong{display:block;white-space:pre-wrap;word-break:normal;overflow:hidden;text-overflow:ellipsis}.elfinder-font-mono{font-family:"Ricty Diminished","Myrica M",Consolas,"Courier New",Courier,Monaco,monospace;font-size:1.1em}.elfinder-contextmenu .elfinder-contextmenu-item span{font-size:.72em}.elfinder-cwd-view-icons .elfinder-cwd-filename,.elfinder-cwd-view-list td,.elfinder-statusbar div{font-size:.7em}.std42-dialog .ui-dialog-titlebar{font-size:.82em}.std42-dialog .ui-dialog-content{font-size:.72em}.std42-dialog .ui-dialog-buttonpane{font-size:.76em}.dialogelfinder .dialogelfinder-drag,.elfinder-info-tb{font-size:.9em}.elfinder-upload-dialog-or,.elfinder-upload-dropbox{font-size:1.2em}.elfinder .elfinder-navbar{font-size:.72em}.elfinder-place-drag .elfinder-navbar-dir{font-size:.9em}.elfinder-quicklook-title{font-size:.7em;font-weight:400}.elfinder-quicklook-info-data{font-size:.72em}.elfinder-quicklook-preview-text-wrapper{font-size:.9em}.elfinder-button-menu-item{font-size:.72em}.elfinder-button-search input{font-size:.8em}.elfinder-drag-num{font-size:12px}.elfinder-toast{font-size:.76em}.elfinder .elfinder-navbar{width:230px;padding:3px 5px;background-image:none;border-top:0 solid;border-bottom:0 solid;overflow:auto;position:relative}.elfinder .elfinder-navdock{box-sizing:border-box;width:230px;height:auto;position:absolute;bottom:0;overflow:auto}.elfinder-navdock .ui-resizable-n{top:0;height:20px}.elfinder-ltr .elfinder-navbar{float:left;border-left:0 solid}.elfinder-rtl .elfinder-navbar{float:right;border-right:0 solid}.elfinder-ltr .ui-resizable-e,.elfinder-touch .elfinder-quicklook-titlebar-icon.elfinder-titlebar-button-right .ui-icon{margin-left:10px}.elfinder-tree{display:table;width:100%;margin:0 0 .5em;-webkit-tap-highlight-color:rgba(0,0,0,0)}.elfinder-navbar-dir{position:relative;display:block;white-space:nowrap;padding:3px 12px;margin:0;outline:0 solid;border:1px solid transparent;cursor:default}.elfinder-touch .elfinder-navbar-dir{padding:12px}.elfinder-ltr .elfinder-navbar-dir{padding-left:35px}.elfinder-rtl .elfinder-navbar-dir{padding-right:35px}.elfinder-navbar-arrow,.elfinder-navbar-icon{position:absolute;top:50%;margin-top:-8px;background-repeat:no-repeat}.elfinder-navbar-arrow{display:none;width:12px;height:14px;background-image:url(../img/arrows-normal.png)}.elfinder-ltr .elfinder-navbar-arrow{left:0}.elfinder-rtl .elfinder-navbar-arrow{right:0}.elfinder-touch .elfinder-navbar-arrow{-moz-transform-origin:top left;-moz-transform:scale(1.4);zoom:1.4;margin-bottom:7px}.elfinder-ltr.elfinder-touch .elfinder-navbar-arrow{left:-3px;margin-right:20px}.elfinder-rtl.elfinder-touch .elfinder-navbar-arrow{right:-3px;margin-left:20px}.ui-state-active .elfinder-navbar-arrow{background-image:url(../img/arrows-active.png)}.elfinder-navbar-collapsed .elfinder-navbar-arrow{display:block}.elfinder-subtree-chksubdir .elfinder-navbar-arrow{opacity:.25;filter:Alpha(Opacity=25)}.elfinder-ltr .elfinder-navbar-collapsed .elfinder-navbar-arrow{background-position:0 4px}.elfinder-rtl .elfinder-navbar-collapsed .elfinder-navbar-arrow{background-position:0 -10px}.elfinder-ltr .elfinder-navbar-expanded .elfinder-navbar-arrow,.elfinder-rtl .elfinder-navbar-expanded .elfinder-navbar-arrow{background-position:0 -21px}.elfinder-navbar-icon{width:16px;height:16px;background-image:url(../img/toolbar.png);background-position:0 -16px}.elfinder-ltr .elfinder-navbar-icon{left:14px}.elfinder-rtl .elfinder-navbar-icon{right:14px}.elfinder-places .elfinder-navbar-root .elfinder-navbar-icon{background-position:0 -704px}.elfinder-tree .elfinder-navbar-root-box .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-dropbox .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-ftp .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-googledrive .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-local .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-network .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-onedrive .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-sql .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-trash .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-zip .elfinder-navbar-icon{background-position:0 0;background-size:contain}.elfinder-tree .elfinder-navbar-root-local .elfinder-navbar-icon{background-image:url(../img/volume_icon_local.svg);background-image:url(../img/volume_icon_local.png) \9}.elfinder-tree .elfinder-navbar-root-trash .elfinder-navbar-icon{background-image:url(../img/volume_icon_trash.svg);background-image:url(../img/volume_icon_trash.png) \9}.elfinder-tree .elfinder-navbar-root-ftp .elfinder-navbar-icon{background-image:url(../img/volume_icon_ftp.svg);background-image:url(../img/volume_icon_ftp.png) \9}.elfinder-tree .elfinder-navbar-root-sql .elfinder-navbar-icon{background-image:url(../img/volume_icon_sql.svg);background-image:url(../img/volume_icon_sql.png) \9}.elfinder-tree .elfinder-navbar-root-dropbox .elfinder-navbar-icon{background-image:url(../img/volume_icon_dropbox.svg);background-image:url(../img/volume_icon_dropbox.png) \9}.elfinder-tree .elfinder-navbar-root-googledrive .elfinder-navbar-icon{background-image:url(../img/volume_icon_googledrive.svg);background-image:url(../img/volume_icon_googledrive.png) \9}.elfinder-tree .elfinder-navbar-root-onedrive .elfinder-navbar-icon{background-image:url(../img/volume_icon_onedrive.svg);background-image:url(../img/volume_icon_onedrive.png) \9}.elfinder-tree .elfinder-navbar-root-box .elfinder-navbar-icon{background-image:url(../img/volume_icon_box.svg);background-image:url(../img/volume_icon_box.png) \9}.elfinder-tree .elfinder-navbar-root-zip .elfinder-navbar-icon{background-image:url(../img/volume_icon_zip.svg);background-image:url(../img/volume_icon_zip.png) \9}.elfinder-tree .elfinder-navbar-root-network .elfinder-navbar-icon{background-image:url(../img/volume_icon_network.svg);background-image:url(../img/volume_icon_network.png) \9}.elfinder-droppable-active .elfinder-navbar-icon,.ui-state-active .elfinder-navbar-icon,.ui-state-hover .elfinder-navbar-icon{background-position:0 -32px}.elfinder-ltr .elfinder-navbar-subtree{margin-left:12px}.elfinder-rtl .elfinder-navbar-subtree{margin-right:12px}.elfinder-tree .elfinder-spinner{position:absolute;top:50%;margin:-7px 0 0}.elfinder-ltr .elfinder-tree .elfinder-spinner{left:0;margin-left:-2px}.elfinder-rtl .elfinder-tree .elfinder-spinner{right:0;margin-right:-2px}.elfinder-navbar .elfinder-lock,.elfinder-navbar .elfinder-perms,.elfinder-navbar .elfinder-symlink{opacity:.6;filter:Alpha(Opacity=60)}.elfinder-navbar .elfinder-perms{bottom:-1px;margin-top:-8px}.elfinder-navbar .elfinder-lock{top:-2px}.elfinder-ltr .elfinder-navbar .elfinder-perms{left:20px;transform:scale(.8)}.elfinder-rtl .elfinder-navbar .elfinder-perms{right:20px;transform:scale(.8)}.elfinder-ltr .elfinder-navbar .elfinder-lock{left:20px;transform:scale(.8)}.elfinder-rtl .elfinder-navbar .elfinder-lock{right:20px;transform:scale(.8)}.elfinder-ltr .elfinder-navbar .elfinder-symlink{left:8px;transform:scale(.8)}.elfinder-rtl .elfinder-navbar .elfinder-symlink{right:8px;transform:scale(.8)}.elfinder-navbar input{width:100%;border:0 solid;margin:0;padding:0}.elfinder-navbar .ui-resizable-handle{width:12px;background:url(../img/resize.png) center center no-repeat}.elfinder-nav-handle-icon{position:absolute;top:50%;margin:-8px 2px 0;opacity:.5;filter:Alpha(Opacity=50)}.elfinder-navbar-pager{width:100%;box-sizing:border-box;padding-top:3px;padding-bottom:3px}.elfinder-touch .elfinder-navbar-pager{padding-top:10px;padding-bottom:10px}.elfinder-places{border:none;margin:0;padding:0}.elfinder-navbar-swipe-handle{position:absolute;top:0;height:100%;width:50px;pointer-events:none}.elfinder-ltr .elfinder-navbar-swipe-handle{left:0;background:linear-gradient(to right,#dde4eb 0,rgba(221,228,235,.8) 5px,rgba(216,223,230,.3) 8px,rgba(0,0,0,.1) 95%,rgba(0,0,0,0) 100%)}.elfinder-rtl .elfinder-navbar-swipe-handle{right:0;background:linear-gradient(to left,#dde4eb 0,rgba(221,228,235,.8) 5px,rgba(216,223,230,.3) 8px,rgba(0,0,0,.1) 95%,rgba(0,0,0,0) 100%)}.elfinder-navbar-root .elfinder-places-root-icon{position:absolute;top:50%;margin-top:-9px;cursor:pointer}.elfinder-ltr .elfinder-places-root-icon{right:10px}.elfinder-rtl .elfinder-places-root-icon{left:10px}.elfinder-navbar-expanded .elfinder-places-root-icon{display:block}.elfinder-place-drag{font-size:.8em}.elfinder-quicklook{position:absolute;background:url(../img/quicklook-bg.png);overflow:hidden;-moz-border-radius:7px;-webkit-border-radius:7px;border-radius:7px;padding:20px 0 40px}.elfinder-navdock .elfinder-quicklook{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;font-size:90%;overflow:auto}.elfinder-quicklook.elfinder-touch{padding:30px 0 40px}.elfinder-quicklook .ui-resizable-se{width:14px;height:14px;right:5px;bottom:3px;background:url(../img/toolbar.png) 0 -496px no-repeat}.elfinder-quicklook.elfinder-touch .ui-resizable-se{-moz-transform-origin:bottom right;-moz-transform:scale(1.5);zoom:1.5}.elfinder-quicklook.elfinder-quicklook-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;margin:0;box-sizing:border-box;width:100%;height:100%;object-fit:contain;border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;-webkit-background-clip:padding-box;padding:0;background:#000;display:block}.elfinder-quicklook-fullscreen .elfinder-quicklook-titlebar,.elfinder-quicklook-fullscreen.elfinder-quicklook .ui-resizable-handle,.elfinder-statusbar:after,.elfinder-statusbar:before{display:none}.elfinder-quicklook-fullscreen .elfinder-quicklook-preview{border:0 solid}.elfinder-quicklook-cover,.elfinder-quicklook-titlebar{width:100%;height:100%;top:0;left:0;position:absolute}.elfinder-quicklook-cover.elfinder-quicklook-coverbg{background-color:#fff;opacity:.000001;filter:Alpha(Opacity=.0001)}.elfinder-quicklook-titlebar{text-align:center;background:#777;height:20px;-moz-border-radius-topleft:7px;-webkit-border-top-left-radius:7px;border-top-left-radius:7px;-moz-border-radius-topright:7px;-webkit-border-top-right-radius:7px;border-top-right-radius:7px;border:none;line-height:1.2}.elfinder-navdock .elfinder-quicklook-titlebar{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;cursor:default}.elfinder-touch .elfinder-quicklook-titlebar{height:30px}.elfinder-quicklook-title{display:inline-block;white-space:nowrap;overflow:hidden}.elfinder-touch .elfinder-quicklook-title{padding:8px 0}.elfinder-quicklook-titlebar-icon{position:absolute;left:4px;top:50%;margin-top:-8px;height:16px;border:none}.elfinder-touch .elfinder-quicklook-titlebar-icon{height:22px}.elfinder-quicklook-titlebar-icon .ui-icon{position:relative;margin:-9px 3px 0 0;cursor:pointer;border-radius:10px;border:1px solid;opacity:.7;filter:Alpha(Opacity=70)}.elfinder-quicklook-titlebar-icon .ui-icon.ui-icon-closethick{padding-left:1px}.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon{opacity:.6;filter:Alpha(Opacity=60)}.elfinder-touch .elfinder-quicklook-titlebar-icon .ui-icon{margin-top:-5px}.elfinder-quicklook-titlebar-icon.elfinder-titlebar-button-right{left:auto;right:4px;direction:rtl}.elfinder-quicklook-titlebar-icon.elfinder-titlebar-button-right .ui-icon{margin:-9px 0 0 3px}.elfinder-touch .elfinder-quicklook-titlebar .ui-icon{-moz-transform-origin:center center;-moz-transform:scale(1.2);zoom:1.2}.elfinder-touch .elfinder-quicklook-titlebar-icon .ui-icon{margin-right:10px}.elfinder-quicklook-preview{overflow:hidden;position:relative;border:0 solid;border-left:1px solid transparent;border-right:1px solid transparent;height:100%}.elfinder-navdock .elfinder-quicklook-preview{border-left:0;border-right:0}.elfinder-quicklook-preview.elfinder-overflow-auto{overflow:auto;-webkit-overflow-scrolling:touch}.elfinder-quicklook-info-wrapper{display:table;position:absolute;width:100%;height:100%;height:calc(100% - 80px);left:0;top:20px}.elfinder-navdock .elfinder-quicklook-info-wrapper{height:calc(100% - 20px)}.elfinder-quicklook-info{display:table-cell;vertical-align:middle}.elfinder-ltr .elfinder-quicklook-info{padding:0 12px 0 112px}.elfinder-rtl .elfinder-quicklook-info{padding:0 112px 0 12px}.elfinder-ltr .elfinder-navdock .elfinder-quicklook-info{padding:0 0 0 80px}.elfinder-rtl .elfinder-navdock .elfinder-quicklook-info{padding:0 80px 0 0}.elfinder-quicklook-info .elfinder-quicklook-info-data:first-child{color:#fff;font-weight:700;padding-bottom:.5em}.elfinder-quicklook-info-data{clear:both;padding-bottom:.2em;color:#fff}.elfinder-quicklook .elfinder-cwd-icon{position:absolute;left:32px;top:50%;margin-top:-20px}.elfinder-navdock .elfinder-quicklook .elfinder-cwd-icon{left:16px}.elfinder-rtl .elfinder-quicklook .elfinder-cwd-icon{left:auto;right:32px}.elfinder-rtl .elfinder-navdock .elfinder-quicklook .elfinder-cwd-icon{right:6px}.elfinder-quicklook .elfinder-cwd-icon:before{top:-10px}.elfinder-ltr .elfinder-quicklook .elfinder-cwd-icon:after,.elfinder-ltr .elfinder-quicklook .elfinder-cwd-icon:before{left:-20px}.elfinder-ltr .elfinder-navdock .elfinder-quicklook .elfinder-cwd-icon:before{left:-14px}.elfinder-ltr .elfinder-navdock .elfinder-quicklook .elfinder-cwd-icon:after{left:-12px}.elfinder-rtl .elfinder-quicklook .elfinder-cwd-icon:before{left:auto;right:40px}.elfinder-rtl .elfinder-quicklook .elfinder-cwd-icon:after{left:auto;right:46px}.elfinder-quicklook-preview img{display:block;margin:0 auto}.elfinder-quicklook-navbar{position:absolute;left:50%;bottom:4px;width:140px;height:32px;padding:0;margin-left:-70px;border:1px solid transparent;border-radius:19px;-moz-border-radius:19px;-webkit-border-radius:19px}.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar{width:188px;margin-left:-94px;padding:5px;border:1px solid #eee;background:#000;opacity:.4;filter:Alpha(Opacity=40)}.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar-icon-close,.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar-separator{display:inline}.elfinder-quicklook-navbar-icon{width:32px;height:32px;margin:0 7px;float:left;background:url(../img/quicklook-icons.png) 0 0 no-repeat}.elfinder-quicklook-navbar-icon-fullscreen{background-position:0 -64px}.elfinder-quicklook-navbar-icon-fullscreen-off{background-position:0 -96px}.elfinder-quicklook-navbar-icon-prev{background-position:0 0}.elfinder-quicklook-navbar-icon-next{background-position:0 -32px}.elfinder-quicklook-navbar-icon-close{background-position:0 -128px;display:none}.elfinder-quicklook-navbar-separator{width:1px;height:32px;float:left;border-left:1px solid #fff;display:none}.elfinder-quicklook-preview-archive-wrapper,.elfinder-quicklook-preview-text-wrapper{width:100%;height:100%;background:#fff;color:#222;overflow:auto;-webkit-overflow-scrolling:touch}.elfinder-quicklook-preview-archive-wrapper{font-size:90%}.elfinder-quicklook-preview-archive-wrapper strong{padding:0 5px}pre.elfinder-quicklook-preview-text,pre.elfinder-quicklook-preview-text.prettyprint{width:auto;height:auto;margin:0;padding:3px 9px;border:none;-o-tab-size:4;-moz-tab-size:4;tab-size:4}.elfinder-quicklook-preview-charsleft hr{border:none;border-top:dashed 1px}.elfinder-quicklook-preview-charsleft span{font-size:90%;font-style:italic;cursor:pointer}.elfinder-quicklook-preview-html,.elfinder-quicklook-preview-iframe,.elfinder-quicklook-preview-pdf{width:100%;height:100%;background:#fff;margin:0;border:none;display:block}.elfinder-quicklook-preview-flash{width:100%;height:100%}.elfinder-quicklook-preview-audio{width:100%;position:absolute;bottom:0;left:0}embed.elfinder-quicklook-preview-audio{height:30px;background:0 0}.elfinder-quicklook-preview-video{width:100%;height:100%}.elfinder .elfinder-quicklook .elfinder-quicklook-info *,.elfinder .elfinder-quicklook .elfinder-quicklook-preview *{-webkit-user-select:auto;-moz-user-select:text;-khtml-user-select:text;user-select:text}.elfinder-statusbar{display:flex;justify-content:space-between;cursor:default;text-align:center;font-weight:400;padding:.2em .5em;border-right:0 solid transparent;border-bottom:0 solid transparent;border-left:0 solid transparent}.elfinder-path,.elfinder-statusbar span{overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.elfinder-statusbar span{vertical-align:bottom}.elfinder-statusbar span.elfinder-path-other{flex-shrink:0;text-overflow:clip;-o-text-overflow:clip}.elfinder-statusbar span.ui-state-active,.elfinder-statusbar span.ui-state-hover{border:none}.elfinder-statusbar span.elfinder-path-cwd{cursor:default}.elfinder-path{display:flex;order:1;flex-grow:1;cursor:pointer;white-space:nowrap;max-width:30%\9}.elfinder-ltr .elfinder-path{text-align:left;float:left\9}.elfinder-rtl .elfinder-path{text-align:right;float:right\9}.elfinder-workzone-path{position:relative}.elfinder-workzone-path .elfinder-path{position:relative;font-size:.75em;font-weight:400;float:none;max-width:none;overflow:hidden;overflow-x:hidden;text-overflow:initial;-o-text-overflow:initial}.elfinder-mobile .elfinder-workzone-path .elfinder-path{overflow:auto;overflow-x:scroll}.elfinder-ltr .elfinder-workzone-path .elfinder-path{margin-left:24px}.elfinder-rtl .elfinder-workzone-path .elfinder-path{margin-right:24px}.elfinder-workzone-path .elfinder-path span{display:inline-block;padding:5px 3px}.elfinder-workzone-path .elfinder-path span.elfinder-path-cwd{font-weight:700}.elfinder-workzone-path .elfinder-path span.ui-state-active,.elfinder-workzone-path .elfinder-path span.ui-state-hover{border:none}.elfinder-workzone-path .elfinder-path-roots{position:absolute;top:0;width:24px;height:20px;padding:2px;border:none;overflow:hidden}.elfinder-ltr .elfinder-workzone-path .elfinder-path-roots{left:0}.elfinder-rtl .elfinder-workzone-path .elfinder-path-roots{right:0}.elfinder-stat-size{order:3;flex-grow:1;overflow:hidden;white-space:nowrap}.elfinder-ltr .elfinder-stat-size{text-align:right;float:right\9}.elfinder-rtl .elfinder-stat-size{text-align:left;float:left\9}.elfinder-stat-selected{order:2;margin:0 .5em;white-space:nowrap;overflow:hidden}.elfinder .elfinder-toast{position:absolute;top:12px;right:12px;max-width:90%;cursor:default}.elfinder .elfinder-toast>div{position:relative;pointer-events:auto;overflow:hidden;margin:0 0 6px;padding:8px 16px 8px 50px;-moz-border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;border-radius:3px 3px 3px 3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:.9;filter:alpha(opacity=90);background-color:#030303;text-align:center}.elfinder .elfinder-toast>.toast-info{background-color:#2f96b4;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}.elfinder .elfinder-toast>.toast-error{background-color:#bd362f;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}.elfinder .elfinder-toast>.toast-success{background-color:#51a351;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}.elfinder .elfinder-toast>.toast-warning{background-color:#f89406;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}.elfinder .elfinder-toast>div button.ui-button{background-image:none;margin-top:8px;padding:.5em .8em}.elfinder .elfinder-toast>.toast-success button.ui-button{background-color:green;color:#fff}.elfinder .elfinder-toast>.toast-success button.ui-button.ui-state-hover{background-color:#add6ad;color:#254b25}.elfinder .elfinder-toast>.toast-info button.ui-button{background-color:#046580;color:#fff}.elfinder .elfinder-toast>.toast-info button.ui-button.ui-state-hover{background-color:#7dc6db;color:#046580}.elfinder .elfinder-toast>.toast-warning button.ui-button{background-color:#dd8c1a;color:#fff}.elfinder .elfinder-toast>.toast-warning button.ui-button.ui-state-hover{background-color:#e7ae5e;color:#422a07}.elfinder-toolbar{padding:4px 0 3px;border-left:0 solid transparent;border-top:0 solid transparent;border-right:0 solid transparent;max-height:50%;overflow-y:auto}.elfinder-buttonset{margin:1px 4px;float:left;background:0 0;padding:0;overflow:hidden}.elfinder .elfinder-button{min-width:16px;height:16px;margin:0;padding:4px;float:left;overflow:hidden;position:relative;border:0 solid;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;line-height:1;cursor:default}.elfinder-rtl .elfinder-button{float:right}.elfinder-touch .elfinder-button{min-width:20px;height:20px}.elfinder .ui-icon-search{cursor:pointer}.elfinder-toolbar-button-separator{float:left;padding:0;height:24px;border-top:0 solid;border-right:0 solid;border-bottom:0 solid;width:0}.elfinder-rtl .elfinder-toolbar-button-separator{float:right}.elfinder-touch .elfinder-toolbar-button-separator{height:28px}.elfinder .elfinder-button.ui-state-disabled{opacity:1;filter:Alpha(Opacity=100)}.elfinder .elfinder-button.ui-state-disabled .elfinder-button-icon,.elfinder .elfinder-button.ui-state-disabled .elfinder-button-text{opacity:.4;filter:Alpha(Opacity=40)}.elfinder-rtl .elfinder-buttonset{float:right}.elfinder-button-icon{width:16px;height:16px;display:inline-block;background:url(../img/toolbar.png) no-repeat}.elfinder-button-text{position:relative;display:inline-block;top:-4px;margin:0 2px;font-size:12px}.elfinder-touch .elfinder-button-icon{transform:scale(1.25);transform-origin:top left}.elfinder-rtl.elfinder-touch .elfinder-button-icon{transform-origin:top right}.elfinder-touch .elfinder-button-text{transform:translate(3px,3px);top:-5px}.elfinder-rtl.elfinder-touch .elfinder-button-text{transform:translate(-3px,3px)}.elfinder-touch .elfinder-button-icon.elfinder-contextmenu-extra-icon{transform:scale(2);transform-origin:12px 8px}.elfinder-rtl.elfinder-touch .elfinder-button-icon.elfinder-contextmenu-extra-icon{transform-origin:4px 8px}.elfinder-button-icon-home{background-position:0 0}.elfinder-button-icon-back{background-position:0 -112px}.elfinder-button-icon-forward{background-position:0 -128px}.elfinder-button-icon-up{background-position:0 -144px}.elfinder-button-icon-dir{background-position:0 -16px}.elfinder-button-icon-opendir{background-position:0 -32px}.elfinder-button-icon-reload{background-position:0 -160px}.elfinder-button-icon-open{background-position:0 -176px}.elfinder-button-icon-mkdir{background-position:0 -192px}.elfinder-button-icon-mkfile{background-position:0 -208px}.elfinder-button-icon-rm{background-position:0 -832px}.elfinder-button-icon-trash{background-position:0 -224px}.elfinder-button-icon-restore{background-position:0 -816px}.elfinder-button-icon-copy{background-position:0 -240px}.elfinder-button-icon-cut{background-position:0 -256px}.elfinder-button-icon-paste{background-position:0 -272px}.elfinder-button-icon-getfile{background-position:0 -288px}.elfinder-button-icon-duplicate{background-position:0 -304px}.elfinder-button-icon-rename{background-position:0 -320px}.elfinder-button-icon-edit{background-position:0 -336px}.elfinder-button-icon-quicklook{background-position:0 -352px}.elfinder-button-icon-upload{background-position:0 -368px}.elfinder-button-icon-download{background-position:0 -384px}.elfinder-button-icon-info{background-position:0 -400px}.elfinder-button-icon-extract{background-position:0 -416px}.elfinder-button-icon-archive{background-position:0 -432px}.elfinder-button-icon-view{background-position:0 -448px}.elfinder-button-icon-view-list{background-position:0 -464px}.elfinder-button-icon-help{background-position:0 -480px}.elfinder-button-icon-resize{background-position:0 -512px}.elfinder-button-icon-link{background-position:0 -528px}.elfinder-button-icon-search{background-position:0 -561px}.elfinder-button-icon-sort{background-position:0 -577px}.elfinder-button-icon-rotate-r{background-position:0 -625px}.elfinder-button-icon-rotate-l{background-position:0 -641px}.elfinder-button-icon-netmount{background-position:0 -688px}.elfinder-button-icon-netunmount{background-position:0 -96px}.elfinder-button-icon-places{background-position:0 -704px}.elfinder-button-icon-chmod{background-position:0 -48px}.elfinder-button-icon-accept{background-position:0 -736px}.elfinder-button-icon-menu{background-position:0 -752px}.elfinder-button-icon-colwidth{background-position:0 -768px}.elfinder-button-icon-fullscreen{background-position:0 -784px}.elfinder-button-icon-unfullscreen{background-position:0 -800px}.elfinder-button-icon-empty{background-position:0 -848px}.elfinder-button-icon-undo{background-position:0 -864px}.elfinder-button-icon-redo{background-position:0 -880px}.elfinder-button-icon-preference{background-position:0 -896px}.elfinder-button-icon-mkdirin{background-position:0 -912px}.elfinder-button-icon-selectall{background-position:0 -928px}.elfinder-button-icon-selectnone{background-position:0 -944px}.elfinder-button-icon-selectinvert{background-position:0 -960px}.elfinder-button-icon-opennew{background-position:0 -976px}.elfinder-button-icon-hide{background-position:0 -992px}.elfinder-button-icon-text{background-position:0 -1008px}.elfinder-rtl .elfinder-button-icon-back,.elfinder-rtl .elfinder-button-icon-forward,.elfinder-rtl .elfinder-button-icon-getfile,.elfinder-rtl .elfinder-button-icon-help,.elfinder-rtl .elfinder-button-icon-redo,.elfinder-rtl .elfinder-button-icon-rename,.elfinder-rtl .elfinder-button-icon-search,.elfinder-rtl .elfinder-button-icon-undo,.elfinder-rtl .elfinder-button-icon-view-list,.elfinder-rtl .ui-icon-search{-ms-transform:scale(-1,1);-webkit-transform:scale(-1,1);transform:scale(-1,1)}.elfinder-rtl.elfinder-touch .elfinder-button-icon-back,.elfinder-rtl.elfinder-touch .elfinder-button-icon-forward,.elfinder-rtl.elfinder-touch .elfinder-button-icon-getfile,.elfinder-rtl.elfinder-touch .elfinder-button-icon-help,.elfinder-rtl.elfinder-touch .elfinder-button-icon-redo,.elfinder-rtl.elfinder-touch .elfinder-button-icon-rename,.elfinder-rtl.elfinder-touch .elfinder-button-icon-search,.elfinder-rtl.elfinder-touch .elfinder-button-icon-undo,.elfinder-rtl.elfinder-touch .elfinder-button-icon-view-list,.elfinder-rtl.elfinder-touch .ui-icon-search{-ms-transform:scale(-1.25,1.25) translateX(16px);-webkit-transform:scale(-1.25,1.25) translateX(16px);transform:scale(-1.25,1.25) translateX(16px)}.elfinder .elfinder-menubutton{overflow:visible}.elfinder-button-icon-spinner{background:url(../img/spinner-mini.gif) center center no-repeat}.elfinder-button-menu{position:absolute;margin-top:24px;padding:3px 0;overflow-y:auto}.elfinder-touch .elfinder-button-menu{margin-top:30px}.elfinder-button-menu-item{white-space:nowrap;cursor:default;padding:5px 19px;position:relative}.elfinder-touch .elfinder-button-menu-item{padding:12px 19px}.elfinder-button-menu .ui-state-hover{border:0 solid}.elfinder-button-menu-item-separated{border-top:1px solid #ccc}.elfinder-button-menu-item .ui-icon{width:16px;height:16px;position:absolute;left:2px;top:50%;margin-top:-8px;display:none}.elfinder-button-menu-item-selected .ui-icon{display:block}.elfinder-button-menu-item-selected-asc .ui-icon-arrowthick-1-s,.elfinder-button-menu-item-selected-desc .ui-icon-arrowthick-1-n{display:none}.elfinder-button form{position:absolute;top:0;right:0;opacity:0;filter:Alpha(Opacity=0);cursor:pointer}.elfinder .elfinder-button form input{background:0 0;cursor:default}.elfinder .elfinder-button-search{border:0 solid;background:0 0;padding:0;margin:1px 4px;height:auto;min-height:26px;width:70px;overflow:visible}.elfinder .elfinder-button-search.ui-state-active{width:220px}.elfinder .elfinder-button-search-menu{font-size:8pt;text-align:center;width:auto;min-width:180px;position:absolute;top:30px;padding-right:5px;padding-left:5px}.elfinder-ltr .elfinder-button-search-menu{right:22px;left:auto}.elfinder-rtl .elfinder-button-search-menu{right:auto;left:22px}.elfinder-touch .elfinder-button-search-menu{top:34px}.elfinder .elfinder-button-search-menu div{margin:5px auto;display:table}.elfinder .elfinder-button-search-menu div .ui-state-hover{border:1px solid}.elfinder-ltr .elfinder-button-search{float:right;margin-right:10px}.elfinder-rtl .elfinder-button-search{float:left;margin-left:10px}.elfinder-rtl .ui-controlgroup>.ui-controlgroup-item{float:right}.elfinder-button-search input[type=text]{box-sizing:border-box;width:100%;height:26px;padding:0 20px;line-height:22px;border:1px solid #aaa;-moz-border-radius:12px;-webkit-border-radius:12px;border-radius:12px;outline:0 solid}.elfinder-button-search input::-ms-clear{display:none}.elfinder-touch .elfinder-button-search input{height:30px;line-height:28px}.elfinder-rtl .elfinder-button-search input{direction:rtl}.elfinder-button-search .ui-icon{position:absolute;height:18px;top:50%;margin:-8px 4px 0;opacity:.6;filter:Alpha(Opacity=60)}.elfinder-button-search-menu .ui-checkboxradio-icon{display:none}.elfinder-ltr .elfinder-button-search .ui-icon-search{left:0}.elfinder-ltr .elfinder-button-search .ui-icon-close,.elfinder-rtl .elfinder-button-search .ui-icon-search{right:0}.elfinder-rtl .elfinder-button-search .ui-icon-close{left:0}.elfinder-toolbar-swipe-handle{position:absolute;top:0;left:0;height:50px;width:100%;pointer-events:none;background:linear-gradient(to bottom,#dde4eb 0,rgba(221,228,235,.8) 2px,rgba(216,223,230,.3) 5px,rgba(0,0,0,.1) 95%,rgba(0,0,0,0) 100%)} \ No newline at end of file diff --git a/apps/static/plugins/elfinder/css/jquery-ui-1.12.1.min.css b/apps/static/plugins/elfinder/css/jquery-ui-1.12.1.min.css deleted file mode 100644 index 776e2595a..000000000 --- a/apps/static/plugins/elfinder/css/jquery-ui-1.12.1.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! jQuery UI - v1.12.1 - 2016-09-14 -* http://jqueryui.com -* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6 -* Copyright jQuery Foundation and other contributors; Licensed MIT */ - -.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cc0000_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.003;filter:Alpha(Opacity=.3)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666} \ No newline at end of file diff --git a/apps/static/plugins/elfinder/css/theme-gray.css b/apps/static/plugins/elfinder/css/theme-gray.css deleted file mode 100644 index 5876df536..000000000 --- a/apps/static/plugins/elfinder/css/theme-gray.css +++ /dev/null @@ -1,1590 +0,0 @@ -@font-face { - font-family: 'Noto Sans'; - font-style: italic; - font-weight: 400; - src: local('Noto Sans Italic'), local('NotoSans-Italic'), url(https://fonts.gstatic.com/s/notosans/v7/o-0OIpQlx3QUlC5A4PNr4DRF.ttf) format('truetype'); -} -@font-face { - font-family: 'Noto Sans'; - font-style: italic; - font-weight: 700; - src: local('Noto Sans Bold Italic'), local('NotoSans-BoldItalic'), url(https://fonts.gstatic.com/s/notosans/v7/o-0TIpQlx3QUlC5A4PNr4Az5ZtyE.ttf) format('truetype'); -} -@font-face { - font-family: 'Noto Sans'; - font-style: normal; - font-weight: 400; - src: local('Noto Sans'), local('NotoSans'), url(https://fonts.gstatic.com/s/notosans/v7/o-0IIpQlx3QUlC5A4PNb4g.ttf) format('truetype'); -} -@font-face { - font-family: 'Noto Sans'; - font-style: normal; - font-weight: 700; - src: local('Noto Sans Bold'), local('NotoSans-Bold'), url(https://fonts.gstatic.com/s/notosans/v7/o-0NIpQlx3QUlC5A4PNjXhFlYw.ttf) format('truetype'); -} -.elfinder { - color: #546e7a; - font-family: "Noto Sans", sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.elfinder.ui-widget.ui-widget-content { - font-family: "Noto Sans", sans-serif; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); - -webkit-border-radius: 0; - border-radius: 0; - border: 0; -} -.elfinder * { - outline: 0 !important; -} -/** - * Input & Select - */ -input.elfinder-tabstop, -input.elfinder-tabstop.ui-state-hover, -select.elfinder-tabstop, -select.elfinder-tabstop.ui-state-hover { - padding: 5px; - color: #666; - background: #fff; - -webkit-border-radius: 3px; - border-radius: 3px; - font-weight: normal; - border-color: #888; - -webkit-box-shadow: none !important; - box-shadow: none !important; -} -/** - * Loading - */ -.elfinder-info-spinner, -.elfinder-navbar-spinner, -.elfinder-button-icon-spinner { - background: url("../images/loading.svg") center center no-repeat !important; - width: 16px; - height: 16px; -} -/** - * Progress Bar - */ -@-webkit-keyframes progress-animation { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} -@-moz-keyframes progress-animation { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} -@-o-keyframes progress-animation { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} -@keyframes progress-animation { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} -.elfinder-notify-progressbar { - border: 0; -} -.elfinder-notify-progress, -.elfinder-notify-progressbar { - -webkit-border-radius: 0; - border-radius: 0; -} -.elfinder-notify-progress, -.elfinder-resize-spinner { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 1rem 1rem; - -o-background-size: 1rem 1rem; - background-size: 1rem 1rem; - -webkit-animation: progress-animation 1s linear infinite; - -moz-animation: progress-animation 1s linear infinite; - -o-animation: progress-animation 1s linear infinite; - animation: progress-animation 1s linear infinite; - background-color: #0275d8; - height: 1rem; -} -/** - * Quick Look - */ -.elfinder-quicklook { - background: #232323; - -webkit-border-radius: 2px; - border-radius: 2px; -} -.elfinder-quicklook-titlebar { - background: inherit; -} -.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar { - border: inherit; - opacity: inherit; - -webkit-border-radius: 4px; - border-radius: 4px; - background: rgba(66, 66, 66, 0.73); -} -.elfinder .elfinder-navdock { - border: 0; -} -.std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover .ui-icon, -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon, -.elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-close:hover, -.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-close, -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize:hover .ui-icon, -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize .ui-icon, -.elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-minimize:hover, -.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-minimize, -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full:hover .ui-icon, -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full .ui-icon, -.elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-full:hover, -.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-full { - background-image: none; -} -/** - * Toast Notification - */ -.elfinder .elfinder-toast > div { - background-color: #323232 !important; - color: #d6d6d6; - -webkit-box-shadow: none; - box-shadow: none; - opacity: inherit; - padding: 10px 60px; -} -.elfinder .elfinder-toast > div button.ui-button { - color: #fff; -} -.elfinder .elfinder-toast > .toast-info button.ui-button { - background-color: #3498db; -} -.elfinder .elfinder-toast > .toast-error button.ui-button { - background-color: #f44336; -} -.elfinder .elfinder-toast > .toast-success button.ui-button { - background-color: #4caf50; -} -.elfinder .elfinder-toast > .toast-warning button.ui-button { - background-color: #ff9800; -} -.elfinder-toast-msg { - font-family: "Noto Sans", sans-serif; - font-size: 17px; -} -/** - * For Ace Editor - */ -#ace_settingsmenu { - font-family: "Noto Sans", sans-serif; - -webkit-box-shadow: 0 1px 30px rgba(0, 0, 0, 0.6) !important; - box-shadow: 0 1px 30px rgba(0, 0, 0, 0.6) !important; - background-color: #1d2736 !important; - color: #e6e6e6 !important; -} -#ace_settingsmenu, -#kbshortcutmenu { - padding: 0; -} -.ace_optionsMenuEntry { - padding: 5px 10px; -} -.ace_optionsMenuEntry:hover { - background-color: #111721; -} -.ace_optionsMenuEntry label { - font-size: 13px; -} -#ace_settingsmenu input[type="text"], -#ace_settingsmenu select { - margin: 1px 2px 2px; - padding: 2px 5px; - -webkit-border-radius: 3px; - border-radius: 3px; - border: 0; - background: rgba(9, 53, 121, 0.75); - color: white; -} -/** - * Icons - * Webfont is generated by Fontello http://fontello.com - */ -@font-face { - font-family: material; - src: url("../icons/material.eot?7028746"); - src: url("../icons/material.eot?7028746#iefix") format("embedded-opentype"), url("../icons/material.woff2?7028746") format("woff2"), url("../icons/material.woff?7028746") format("woff"), url("../icons/material.ttf?7028746") format("truetype"), url("../icons/material.svg?7028746#material") format("svg"); - font-weight: normal; - font-style: normal; -} -@media screen and (-webkit-min-device-pixel-ratio: 0) { - @font-face { - font-family: material; - src: url("../icons/material.svg?7028746#material") format("svg"); - } -} -.ui-icon, -.elfinder-button-icon, -.ui-widget-header .ui-icon, -.ui-widget-content .ui-icon { - font: normal normal normal 14px/1 material; - background-image: inherit; - text-indent: inherit; -} -.ui-button-icon-only .ui-icon { - font: normal normal normal 14px/1 material; - background-image: inherit !important; - text-indent: 0; - font-size: 16px; -} -.elfinder-toolbar .elfinder-button-icon { - font-size: 20px; - color: #ddd; - margin-top: -2px; -} -.elfinder-button-icon { - background: inherit; -} -.elfinder-button-icon-home:before { - content: '\e800'; -} -.elfinder-button-icon-back:before { - content: '\e801'; -} -.elfinder-button-icon-forward:before { - content: '\e802'; -} -.elfinder-button-icon-up:before { - content: '\e803'; -} -.elfinder-button-icon-dir:before { - content: '\e804'; -} -.elfinder-button-icon-opendir:before { - content: '\e805'; -} -.elfinder-button-icon-reload:before { - content: '\e806'; -} -.elfinder-button-icon-open:before { - content: '\e807'; -} -.elfinder-button-icon-mkdir:before { - content: '\e808'; -} -.elfinder-button-icon-mkfile:before { - content: '\e809'; -} -.elfinder-button-icon-rm:before { - content: '\e80a'; -} -.elfinder-button-icon-trash:before { - content: '\e80b'; -} -.elfinder-button-icon-restore:before { - content: '\e80c'; -} -.elfinder-button-icon-copy:before { - content: '\e80d'; -} -.elfinder-button-icon-cut:before { - content: '\e80e'; -} -.elfinder-button-icon-paste:before { - content: '\e80f'; -} -.elfinder-button-icon-getfile:before { - content: '\e810'; -} -.elfinder-button-icon-duplicate:before { - content: '\e811'; -} -.elfinder-button-icon-rename:before { - content: '\e812'; -} -.elfinder-button-icon-edit:before { - content: '\e813'; -} -.elfinder-button-icon-quicklook:before { - content: '\e814'; -} -.elfinder-button-icon-upload:before { - content: '\e815'; -} -.elfinder-button-icon-download:before { - content: '\e816'; -} -.elfinder-button-icon-info:before { - content: '\e817'; -} -.elfinder-button-icon-extract:before { - content: '\e818'; -} -.elfinder-button-icon-archive:before { - content: '\e819'; -} -.elfinder-button-icon-view:before { - content: '\e81a'; -} -.elfinder-button-icon-view-list:before { - content: '\e81b'; -} -.elfinder-button-icon-help:before { - content: '\e81c'; -} -.elfinder-button-icon-resize:before { - content: '\e81d'; -} -.elfinder-button-icon-link:before { - content: '\e81e'; -} -.elfinder-button-icon-search:before { - content: '\e81f'; -} -.elfinder-button-icon-sort:before { - content: '\e820'; -} -.elfinder-button-icon-rotate-r:before { - content: '\e821'; -} -.elfinder-button-icon-rotate-l:before { - content: '\e822'; -} -.elfinder-button-icon-netmount:before { - content: '\e823'; -} -.elfinder-button-icon-netunmount:before { - content: '\e824'; -} -.elfinder-button-icon-places:before { - content: '\e825'; -} -.elfinder-button-icon-chmod:before { - content: '\e826'; -} -.elfinder-button-icon-accept:before { - content: '\e827'; -} -.elfinder-button-icon-menu:before { - content: '\e828'; -} -.elfinder-button-icon-colwidth:before { - content: '\e829'; -} -.elfinder-button-icon-fullscreen:before { - content: '\e82a'; -} -.elfinder-button-icon-unfullscreen:before { - content: '\e82b'; -} -.elfinder-button-icon-empty:before { - content: '\e82c'; -} -.elfinder-button-icon-undo:before { - content: '\e82d'; -} -.elfinder-button-icon-redo:before { - content: '\e82e'; -} -.elfinder-button-icon-preference:before { - content: '\e82f'; -} -.elfinder-button-icon-mkdirin:before { - content: '\e830'; -} -.elfinder-button-icon-selectall:before { - content: '\e831'; -} -.elfinder-button-icon-selectnone:before { - content: '\e832'; -} -.elfinder-button-icon-selectinvert:before { - content: '\e833'; -} -.elfinder-button-icon-theme:before { - content: '\e859'; -} -.elfinder-button-icon-logout:before { - content: '\e85a'; -} -.elfinder-button-icon-opennew:before { - content: '\e85b'; -} -.elfinder-button-search .ui-icon.ui-icon-search { - font-size: 17px; -} -.elfinder-button-search .ui-icon:hover { - opacity: 1; -} -.elfinder-navbar-icon { - font: normal normal normal 16px/1 material; - background-image: inherit !important; -} -.elfinder-navbar-icon:before { - content: '\e804'; -} -.elfinder-droppable-active .elfinder-navbar-icon:before, -.ui-state-active .elfinder-navbar-icon:before, -.ui-state-hover .elfinder-navbar-icon:before { - content: '\e805'; -} -.elfinder-navbar-root-local .elfinder-navbar-icon:before { - content: '\e83d'; -} -.elfinder-navbar-root-ftp .elfinder-navbar-icon:before { - content: '\e823'; -} -.elfinder-navbar-root-sql .elfinder-navbar-icon:before { - content: '\e83e'; -} -.elfinder-navbar-root-dropbox .elfinder-navbar-icon:before { - content: '\e83f'; -} -.elfinder-navbar-root-googledrive .elfinder-navbar-icon:before { - content: '\e840'; -} -.elfinder-navbar-root-onedrive .elfinder-navbar-icon:before { - content: '\e841'; -} -.elfinder-navbar-root-box .elfinder-navbar-icon:before { - content: '\e842'; -} -.elfinder-navbar-root-trash .elfinder-navbar-icon:before { - content: '\e80b'; -} -.elfinder-navbar-root-zip .elfinder-navbar-icon:before { - content: '\e85c'; -} -.elfinder-navbar-root-network .elfinder-navbar-icon:before { - content: '\e823'; -} -.elfinder-places .elfinder-navbar-root .elfinder-navbar-icon:before { - content: '\e825'; -} -.elfinder-navbar-arrow { - background-image: inherit !important; - font: normal normal normal 14px/1 material; - font-size: 10px; - padding-top: 3px; - padding-left: 2px; - color: #a9a9a9; -} -.ui-state-active .elfinder-navbar-arrow { - color: #fff; -} -.elfinder-ltr .elfinder-navbar-collapsed .elfinder-navbar-arrow:before { - content: '\e857'; -} -.elfinder-rtl .elfinder-navbar-collapsed .elfinder-navbar-arrow:before { - content: '\e858'; -} -.elfinder-ltr .elfinder-navbar-expanded .elfinder-navbar-arrow:before, -.elfinder-rtl .elfinder-navbar-expanded .elfinder-navbar-arrow:before { - content: '\e851'; -} -div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon { - font-size: 8px; - margin-top: 5px; - margin-right: 5px; -} -div.elfinder-cwd-wrapper-list .ui-icon-grip-dotted-vertical { - margin: 1px; - float: right; -} -.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon, -.elfinder-navbar-root-local .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon, -.elfinder-navbar-root-ftp .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon, -.elfinder-navbar-root-sql .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon, -.elfinder-navbar-root-dropbox .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon, -.elfinder-navbar-root-googledrive .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon, -.elfinder-navbar-root-onedrive .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon, -.elfinder-navbar-root-box .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon, -.elfinder-navbar-root-trash .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon, -.elfinder-navbar-root-zip .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon, -.elfinder-navbar-root-network .elfinder-cwd-icon { - background-image: inherit; -} -.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon:before, -.elfinder-navbar-root-local .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon:before, -.elfinder-navbar-root-ftp .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon:before, -.elfinder-navbar-root-sql .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon:before, -.elfinder-navbar-root-dropbox .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon:before, -.elfinder-navbar-root-googledrive .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon:before, -.elfinder-navbar-root-onedrive .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon:before, -.elfinder-navbar-root-box .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon:before, -.elfinder-navbar-root-trash .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon:before, -.elfinder-navbar-root-zip .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon:before, -.elfinder-navbar-root-network .elfinder-cwd-icon:before { - font-family: material; - background-color: transparent; - color: #525252; - font-size: 55px; - position: relative; - top: -10px !important; - padding: 0; - display: contents !important; -} -.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon:before, -.elfinder-navbar-root-local .elfinder-cwd-icon:before { - content: '\e83d'; -} -.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon:before, -.elfinder-navbar-root-ftp .elfinder-cwd-icon:before { - content: '\e823'; -} -.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon:before, -.elfinder-navbar-root-sql .elfinder-cwd-icon:before { - content: '\e83e'; -} -.elfinder-cwd-view-list .elfinder-navbar-roor-dropbox td .elfinder-cwd-icon:before, -.elfinder-navbar-roor-dropbox .elfinder-cwd-icon:before { - content: '\e83f'; -} -.elfinder-cwd-view-list .elfinder-navbar-roor-googledrive td .elfinder-cwd-icon:before, -.elfinder-navbar-roor-googledrive .elfinder-cwd-icon:before { - content: '\e840'; -} -.elfinder-cwd-view-list .elfinder-navbar-roor-onedrive td .elfinder-cwd-icon:before, -.elfinder-navbar-roor-onedrive .elfinder-cwd-icon:before { - content: '\e841'; -} -.elfinder-cwd-view-list .elfinder-navbar-roor-box td .elfinder-cwd-icon:before, -.elfinder-navbar-roor-box .elfinder-cwd-icon:before { - content: '\e842'; -} -.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon:before, -.elfinder-navbar-root-trash .elfinder-cwd-icon:before { - content: '\e80b'; -} -.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon:before, -.elfinder-navbar-root-zip .elfinder-cwd-icon:before { - content: '\e85c'; -} -.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon:before, -.elfinder-navbar-root-network .elfinder-cwd-icon:before { - content: '\e823'; -} -.elfinder-dialog-icon { - font: normal normal normal 14px/1 material; - background: inherit; - color: #524949; - font-size: 37px; -} -.elfinder-dialog-icon:before { - content: '\e843'; -} -.elfinder-dialog-icon-mkdir:before { - content: '\e808'; -} -.elfinder-dialog-icon-mkfile:before { - content: '\e809'; -} -.elfinder-dialog-icon-copy:before { - content: '\e80d'; -} -.elfinder-dialog-icon-prepare:before, -.elfinder-dialog-icon-move:before { - content: '\e844'; -} -.elfinder-dialog-icon-upload:before, -.elfinder-dialog-icon-chunkmerge:before { - content: '\e815'; -} -.elfinder-dialog-icon-rm:before { - content: '\e80a'; -} -.elfinder-dialog-icon-open:before, -.elfinder-dialog-icon-readdir:before, -.elfinder-dialog-icon-file:before { - content: '\e807'; -} -.elfinder-dialog-icon-reload:before { - content: '\e806'; -} -.elfinder-dialog-icon-download:before { - content: '\e816'; -} -.elfinder-dialog-icon-save:before { - content: '\e845'; -} -.elfinder-dialog-icon-rename:before { - content: '\e812'; -} -.elfinder-dialog-icon-zipdl:before, -.elfinder-dialog-icon-archive:before { - content: '\e819'; -} -.elfinder-dialog-icon-extract:before { - content: '\e818'; -} -.elfinder-dialog-icon-search:before { - content: '\e81f'; -} -.elfinder-dialog-icon-loadimg:before { - content: '\e846'; -} -.elfinder-dialog-icon-url:before { - content: '\e81e'; -} -.elfinder-dialog-icon-resize:before { - content: '\e81d'; -} -.elfinder-dialog-icon-netmount:before { - content: '\e823'; -} -.elfinder-dialog-icon-netunmount:before { - content: '\e824'; -} -.elfinder-dialog-icon-chmod:before { - content: '\e826'; -} -.elfinder-dialog-icon-preupload:before, -.elfinder-dialog-icon-dim:before { - content: '\e847'; -} -.elfinder-contextmenu .elfinder-contextmenu-item span.elfinder-contextmenu-icon { - font-size: 16px; -} -.elfinder-contextmenu .elfinder-contextmenu-item .elfinder-contextsubmenu-item .ui-icon { - font-size: 15px; -} -.elfinder-contextmenu .elfinder-contextmenu-item .elfinder-button-icon-link:before { - content: '\e837'; -} -.elfinder .elfinder-contextmenu-extra-icon { - margin-top: -6px; -} -.elfinder .elfinder-contextmenu-extra-icon a { - padding: 5px; - margin: -16px; -} -.elfinder-button-icon-link:before { - content: '\e81e' !important; -} -.elfinder .elfinder-contextmenu-arrow { - font: normal normal normal 14px/1 material; - background-image: inherit; - font-size: 10px !important; - padding-top: 3px; -} -.elfinder .elfinder-contextmenu-arrow:before { - content: '\e857'; -} -.elfinder-contextmenu .ui-state-hover .elfinder-contextmenu-arrow { - background-image: inherit; -} -.elfinder-quicklook .ui-resizable-se { - background: inherit; -} -.elfinder-quicklook-navbar-icon { - background: transparent; - font: normal normal normal 14px/1 material; - font-size: 32px; - color: #fff; -} -.elfinder-quicklook-titlebar-icon { - margin-top: -8px; -} -.elfinder-quicklook-titlebar-icon .ui-icon { - border: 0; - opacity: .8; - font-size: 15px; - padding: 1px; -} -.elfinder-quicklook-titlebar .ui-icon-circle-close, -.elfinder-quicklook .ui-icon-gripsmall-diagonal-se { - color: #f1f1f1; -} -.elfinder-quicklook-navbar-icon-prev:before { - content: '\e848'; -} -.elfinder-quicklook-navbar-icon-next:before { - content: '\e849'; -} -.elfinder-quicklook-navbar-icon-fullscreen:before { - content: '\e84a'; -} -.elfinder-quicklook-navbar-icon-fullscreen-off:before { - content: '\e84b'; -} -.elfinder-quicklook-navbar-icon-close:before { - content: '\e84c'; -} -.ui-button-icon { - background-image: inherit; -} -.ui-icon-search:before { - content: '\e81f'; -} -.ui-icon-closethick:before, -.ui-icon-close:before { - content: '\e839'; -} -.ui-icon-circle-close:before { - content: '\e84c'; -} -.ui-icon-gear:before { - content: '\e82f'; -} -.ui-icon-gripsmall-diagonal-se:before { - content: '\e838'; -} -.ui-icon-locked:before { - content: '\e834'; -} -.ui-icon-unlocked:before { - content: '\e836'; -} -.ui-icon-arrowrefresh-1-n:before { - content: '\e821'; -} -.ui-icon-plusthick:before { - content: '\e83a'; -} -.ui-icon-arrowreturnthick-1-s:before { - content: '\e83b'; -} -.ui-icon-minusthick:before { - content: '\e83c'; -} -.ui-icon-pin-s:before { - content: '\e84d'; -} -.ui-icon-check:before { - content: '\e84e'; -} -.ui-icon-arrowthick-1-s:before { - content: '\e84f'; -} -.ui-icon-arrowthick-1-n:before { - content: '\e850'; -} -.ui-icon-triangle-1-s:before { - content: '\e851'; -} -.ui-icon-triangle-1-n:before { - content: '\e852'; -} -.ui-icon-grip-dotted-vertical:before { - content: '\e853'; -} -.elfinder-lock, -.elfinder-perms, -.elfinder-symlink { - background-image: inherit; - font: normal normal normal 18px/1 material; - color: #4d4d4d; -} -.elfinder-na .elfinder-perms:before { - content: '\e824'; -} -.elfinder-ro .elfinder-perms:before { - content: '\e835'; -} -.elfinder-wo .elfinder-perms:before { - content: '\e854'; -} -.elfinder-group .elfinder-perms:before { - content: '\e800'; -} -.elfinder-lock:before { - content: '\e834'; -} -.elfinder-symlink:before { - content: '\e837'; -} -.elfinder .elfinder-toast > div { - font: normal normal normal 14px/1 material; -} -.elfinder .elfinder-toast > div:before { - font-size: 45px; - position: absolute; - left: 5px; - top: 15px; -} -.elfinder .elfinder-toast > .toast-info, -.elfinder .elfinder-toast > .toast-error, -.elfinder .elfinder-toast > .toast-success, -.elfinder .elfinder-toast > .toast-warning { - background-image: inherit !important; -} -.elfinder .elfinder-toast > .toast-info:before { - content: '\e817'; - color: #3498db; -} -.elfinder .elfinder-toast > .toast-error:before { - content: '\e855'; - color: #f44336; -} -.elfinder .elfinder-toast > .toast-success:before { - content: '\e84e'; - color: #4caf50; -} -.elfinder .elfinder-toast > .toast-warning:before { - content: '\e856'; - color: #ff9800; -} -.elfinder-drag-helper-icon-status { - font: normal normal normal 14px/1 material; - background: inherit; -} -.elfinder-drag-helper-icon-status:before { - content: '\e824'; -} -.elfinder-drag-helper-move .elfinder-drag-helper-icon-status { - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - -moz-transform: rotate(180deg); - -o-transform: rotate(180deg); - transform: rotate(180deg); -} -.elfinder-drag-helper-move .elfinder-drag-helper-icon-status:before { - content: '\e854'; -} -.elfinder-drag-helper-plus .elfinder-drag-helper-icon-status { - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - -moz-transform: rotate(90deg); - -o-transform: rotate(90deg); - transform: rotate(90deg); -} -.elfinder-drag-helper-plus .elfinder-drag-helper-icon-status:before { - content: '\e84c'; -} -/** - * MIME Types - */ -.elfinder-cwd-view-list td .elfinder-cwd-icon { - background-image: url("../images/icons-small.png"); -} -.elfinder-cwd-icon { - background: url("../images/icons-big.png") 0 0 no-repeat; -} -.elfinder-cwd-icon:before { - font-size: 10px; - position: relative; - top: 27px; - left: inherit; - padding: 1px; - background-color: transparent; -} -.elfinder-info-title .elfinder-cwd-icon:before { - top: 32px; - display: block; - margin: 0 auto; -} -.elfinder-info-title .elfinder-cwd-icon.elfinder-cwd-bgurl:before { - background-color: #313131 !important; -} -.elfinder-cwd-view-icons .elfinder-cwd-icon.elfinder-cwd-bgurl:before { - left: inherit; - background-color: #313131; -} -.elfinder-quicklook .elfinder-cwd-icon:before { - top: 33px; - left: 50% !important; - position: relative; - display: block; - -webkit-transform: translateX(-50%); - -ms-transform: translateX(-50%); - -moz-transform: translateX(-50%); - -o-transform: translateX(-50%); - transform: translateX(-50%); -} -.elfinder-cwd-icon-zip:before, -.elfinder-cwd-icon-x-zip:before { - content: 'zip' !important; -} -.elfinder-cwd-icon-x-xz:before { - content: 'xz' !important; -} -.elfinder-cwd-icon-x-7z-compressed:before { - content: '7z' !important; -} -.elfinder-cwd-icon-x-gzip:before { - content: 'gzip' !important; -} -.elfinder-cwd-icon-x-tar:before { - content: 'tar' !important; -} -.elfinder-cwd-icon-x-bzip:before, -.elfinder-cwd-icon-x-bzip2:before { - content: 'bzip' !important; -} -.elfinder-cwd-icon-x-rar:before, -.elfinder-cwd-icon-x-rar-compressed:before { - content: 'rar' !important; -} -.elfinder-cwd-icon-directory { - background-position: 0 -50px; -} -.elfinder-cwd-icon-application { - background-position: 0 -150px; -} -.elfinder-cwd-icon-text { - background-position: 0 -200px; -} -.elfinder-cwd-icon-plain, -.elfinder-cwd-icon-x-empty { - background-position: 0 -250px; -} -.elfinder-cwd-icon-image { - background-position: 0 -300px; -} -.elfinder-cwd-icon-vnd-adobe-photoshop { - background-position: 0 -350px; -} -.elfinder-cwd-icon-vnd-adobe-photoshop:before { - content: none !important; -} -.elfinder-cwd-icon-postscript { - background-position: 0 -400px; -} -.elfinder-cwd-icon-audio { - background-position: 0 -450px; -} -.elfinder-cwd-icon-video, -.elfinder-cwd-icon-flash-video, -.elfinder-cwd-icon-dash-xml, -.elfinder-cwd-icon-vnd-apple-mpegurl, -.elfinder-cwd-icon-x-mpegurl { - background-position: 0 -500px; -} -.elfinder-cwd-icon-rtf, -.elfinder-cwd-icon-rtfd { - background-position: 0 -550px; -} -.elfinder-cwd-icon-pdf { - background-position: 0 -600px; -} -.elfinder-cwd-icon-x-msaccess { - background-position: 0 -650px; -} -.elfinder-cwd-icon-x-msaccess:before { - content: none !important; -} -.elfinder-cwd-icon-msword, -.elfinder-cwd-icon-vnd-ms-word, -.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12 { - background-position: 0 -700px; -} -.elfinder-cwd-icon-msword:before, -.elfinder-cwd-icon-vnd-ms-word:before, -.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12:before { - content: none !important; -} -.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 { - background-position: 0 -750px; -} -.elfinder-cwd-icon-ms-excel:before, -.elfinder-cwd-icon-vnd-ms-excel:before, -.elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12:before { - content: none !important; -} -.elfinder-cwd-icon-vnd-ms-powerpoint, -.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12 { - background-position: 0 -800px; -} -.elfinder-cwd-icon-vnd-ms-powerpoint:before, -.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12:before { - content: none !important; -} -.elfinder-cwd-icon-vnd-ms-office, -.elfinder-cwd-icon-vnd-oasis-opendocument-chart, -.elfinder-cwd-icon-vnd-oasis-opendocument-database, -.elfinder-cwd-icon-vnd-oasis-opendocument-formula, -.elfinder-cwd-icon-vnd-oasis-opendocument-graphics, -.elfinder-cwd-icon-vnd-oasis-opendocument-graphics-template, -.elfinder-cwd-icon-vnd-oasis-opendocument-image, -.elfinder-cwd-icon-vnd-oasis-opendocument-presentation, -.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template, -.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet, -.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template, -.elfinder-cwd-icon-vnd-oasis-opendocument-text, -.elfinder-cwd-icon-vnd-oasis-opendocument-text-master, -.elfinder-cwd-icon-vnd-oasis-opendocument-text-template, -.elfinder-cwd-icon-vnd-oasis-opendocument-text-web, -.elfinder-cwd-icon-vnd-openofficeorg-extension, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slideshow, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-template, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-document, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-template { - background-position: 0 -850px; -} -.elfinder-cwd-icon-html { - background-position: 0 -900px; -} -.elfinder-cwd-icon-css { - background-position: 0 -950px; -} -.elfinder-cwd-icon-javascript, -.elfinder-cwd-icon-x-javascript { - background-position: 0 -1000px; -} -.elfinder-cwd-icon-x-perl { - background-position: 0 -1050px; -} -.elfinder-cwd-icon-x-python:after, -.elfinder-cwd-icon-x-python { - background-position: 0 -1100px; -} -.elfinder-cwd-icon-x-ruby { - background-position: 0 -1150px; -} -.elfinder-cwd-icon-x-sh, -.elfinder-cwd-icon-x-shellscript { - background-position: 0 -1200px; -} -.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 { - background-position: 0 -1250px; -} -.elfinder-cwd-icon-x-jar, -.elfinder-cwd-icon-x-java, -.elfinder-cwd-icon-x-java-source { - background-position: 0 -1300px; -} -.elfinder-cwd-icon-x-jar:before, -.elfinder-cwd-icon-x-java:before, -.elfinder-cwd-icon-x-java-source:before { - content: none !important; -} -.elfinder-cwd-icon-x-php { - background-position: 0 -1350px; -} -.elfinder-cwd-icon-xml:after, -.elfinder-cwd-icon-xml { - background-position: 0 -1400px; -} -.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, -.elfinder-cwd-icon-x-rar-compressed { - background-position: 0 -1450px; -} -.elfinder-cwd-icon-x-shockwave-flash { - background-position: 0 -1500px; -} -.elfinder-cwd-icon-group { - background-position: 0 -1550px; -} -.elfinder-cwd-icon-json { - background-position: 0 -1600px; -} -.elfinder-cwd-icon-json:before { - content: none !important; -} -.elfinder-cwd-icon-markdown, -.elfinder-cwd-icon-x-markdown { - background-position: 0 -1650px; -} -.elfinder-cwd-icon-markdown:before, -.elfinder-cwd-icon-x-markdown:before { - content: none !important; -} -.elfinder-cwd-icon-sql { - background-position: 0 -1700px; -} -.elfinder-cwd-icon-sql:before { - content: none !important; -} -.elfinder-cwd-icon-svg, -.elfinder-cwd-icon-svg-xml { - background-position: 0 -1750px; -} -.elfinder-cwd-icon-svg:before, -.elfinder-cwd-icon-svg-xml:before { - content: none !important; -} -/** - * Toolbar - */ -.elfinder-toolbar { - background: #3b4047; - -webkit-border-radius: 0; - border-radius: 0; - border: 0; - padding: 5px 0; -} -.elfinder-buttonset { - -webkit-border-radius: 0; - border-radius: 0; - border: 0; - margin: 0 5px; - height: 24px; -} -.elfinder .elfinder-button { - background: transparent; - -webkit-border-radius: 0; - border-radius: 0; - cursor: pointer; - color: #efefef; -} -.elfinder-toolbar-button-separator { - border: 0; -} -.elfinder-button-menu { - -webkit-border-radius: 2px; - border-radius: 2px; - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); - box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); - border: none; - margin-top: 5px; -} -.elfinder-button-menu-item { - color: #666; - padding: 6px 19px; -} -.elfinder-button-menu-item.ui-state-hover { - color: #141414; - background-color: #f5f4f4; -} -.elfinder-button-menu-item-separated { - border-top: 1px solid #e5e5e5; -} -.elfinder-button-menu-item-separated.ui-state-hover { - border-top: 1px solid #e5e5e5; -} -.elfinder .elfinder-button-search { - margin: 0 10px; - min-height: inherit; - overflow: hidden; -} -.elfinder .elfinder-button-search input { - background: rgba(40, 42, 45, 0.79); - -webkit-border-radius: 2px; - border-radius: 2px; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - border: 0; - margin: 0; - padding: 0 23px; - height: 24px; - color: #fff; -} -.elfinder .elfinder-button-search .elfinder-button-menu { - margin-top: 4px; - border: none; - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); -} -/** - * Navbar - */ -.elfinder .elfinder-navbar { - background: #535e64; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); - border: none; -} -.elfinder-navbar-dir { - color: #e6e6e6; - cursor: pointer; - -webkit-border-radius: 2px; - border-radius: 2px; - padding: 5px; - border: none; -} -.elfinder-navbar-dir.ui-state-hover, -.elfinder-navbar-dir.ui-state-active.ui-state-hover { - background: #3c4448; - color: #e6e6e6; - border: none; -} -.elfinder-navbar .ui-state-active, -.elfinder-disabled .elfinder-navbar .ui-state-active { - background: #41494e; - border: none; -} -/** - * Workzone - */ -.elfinder-workzone { - background: #cdcfd4; -} -.elfinder-cwd-file { - color: #555; -} -.elfinder-cwd-file.ui-state-hover, -.elfinder-cwd-file.ui-selected.ui-state-hover { - background: #4c5961; - color: #ddd; -} -.elfinder-cwd-file.ui-selected { - background: #455158; - /*color: #555;*/ - color: #ddd; - width: 120px !important; -} -.elfinder-cwd-filename input, -.elfinder-cwd-filename textarea { - padding: 2px; - -webkit-border-radius: 2px !important; - border-radius: 2px !important; - width: 100px !important; - background: #fff; - color: #222; -} -.elfinder-cwd-filename input:focus, -.elfinder-cwd-filename textarea:focus { - outline: none; - border: 1px solid #555; -} -.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-hover, -.elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover, -.elfinder-disabled .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover, -.elfinder-disabled .elfinder-cwd table td.ui-state-hover, -.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-active { - background: transparent; - color: #ddd; -} -.elfinder-cwd table { - padding: 0; -} -.elfinder-cwd table tr:nth-child(odd) { - /*background-color: transparent;*/ -} -.elfinder-cwd table tr:nth-child(odd).ui-state-hover { - /*background-color: #4c5961;*/ -} -#elfinder-elfinder-cwd-thead td { - background: #353b42; - color: #ddd; -} -#elfinder-elfinder-cwd-thead td.ui-state-hover, -#elfinder-elfinder-cwd-thead td.ui-state-active { - background: #30363c; -} -#elfinder-elfinder-cwd-thead td.ui-state-active.ui-state-hover { - background: #2e333a; -} -.ui-selectable-helper { - border: 1px solid #3b4047; - background-color: rgba(104, 111, 121, 0.5); -} -.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash { - background-color: #e4e4e4; -} -.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file { - color: #333; -} -.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-state-hover, -.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-selected.ui-state-hover { - background: #4c5961; - color: #ddd; -} -.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-selected { - background: #455158; - color: #555; -} -/** - * Status Bar - */ -.elfinder .elfinder-statusbar { - background: #3b4047; - -webkit-border-radius: 0; - border-radius: 0; - border: 0; - color: #cfd2d4; -} -.elfinder-path, -.elfinder-stat-size { - margin: 0 15px; -} -/** - * Buttons - */ -.ui-button, -.ui-button:active, -.ui-button.ui-state-default { - display: inline-block; - font-weight: normal; - text-align: center; - vertical-align: middle; - cursor: pointer; - white-space: nowrap; - -webkit-border-radius: 3px; - border-radius: 3px; - text-transform: uppercase; - -webkit-box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.4); - box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.4); - -webkit-transition: all 0.4s; - -o-transition: all 0.4s; - -moz-transition: all 0.4s; - transition: all 0.4s; - background: #fff; - color: #222; - border: none; -} -.ui-button .ui-icon, -.ui-button:active .ui-icon, -.ui-button.ui-state-default .ui-icon { - color: #222; -} -.ui-button:hover, -a.ui-button:active, -.ui-button:active, -.ui-button:focus, -.ui-button.ui-state-hover, -.ui-button.ui-state-active { - background: #3498db; - color: #fff; - border: none; -} -.ui-button:hover .ui-icon, -a.ui-button:active .ui-icon, -.ui-button:active .ui-icon, -.ui-button:focus .ui-icon, -.ui-button.ui-state-hover .ui-icon, -.ui-button.ui-state-active .ui-icon { - color: #fff; -} -.ui-button.ui-state-active:hover { - background: #217dbb; - color: #fff; - border: none; -} -.ui-button:focus { - outline: none !important; -} -.ui-controlgroup-horizontal .ui-button { - -webkit-border-radius: 0; - border-radius: 0; - border: 0; -} -/** - * Context Menu - */ -.elfinder .elfinder-contextmenu, -.elfinder .elfinder-contextmenu-sub { - -webkit-border-radius: 2px; - border-radius: 2px; - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); - box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); - border: none; -} -.elfinder .elfinder-contextmenu-separator, -.elfinder .elfinder-contextmenu-sub-separator { - border-top: 1px solid #e5e5e5; -} -.elfinder .elfinder-contextmenu-item { - color: #666; - padding: 5px 30px; -} -.elfinder .elfinder-contextmenu-item.ui-state-hover { - background-color: #f5f4f4; - color: #141414; -} -.elfinder .elfinder-contextmenu-item.ui-state-active { - background-color: #2196f3; - color: #fff; -} -/** - * Dialogs - */ -.elfinder .elfinder-dialog { - -webkit-border-radius: 0; - border-radius: 0; - border: 0; - -webkit-box-shadow: 0 1px 30px rgba(0, 0, 0, 0.6); - box-shadow: 0 1px 30px rgba(0, 0, 0, 0.6); -} -.elfinder .elfinder-dialog .ui-dialog-content[id*="edit-elfinder-elfinder-"] { - padding: 0; -} -.elfinder .elfinder-dialog .ui-tabs { - -webkit-border-radius: 0; - border-radius: 0; - border: 0; -} -.elfinder .elfinder-dialog .ui-tabs-nav { - -webkit-border-radius: 0; - border-radius: 0; - border: 0; - background: transparent; - border-bottom: 1px solid #ddd; -} -.elfinder .elfinder-dialog .ui-tabs-nav li { - border: 0; - font-weight: normal; - background: transparent; - margin: 0; - padding: 3px 0; -} -.elfinder .elfinder-dialog .ui-tabs-nav li.ui-tabs-active { - padding-bottom: 7px; -} -.elfinder .elfinder-dialog .ui-tabs-nav .ui-tabs-selected a, -.elfinder .elfinder-dialog .ui-tabs-nav .ui-state-active a, -.elfinder .elfinder-dialog .ui-tabs-nav li:hover a { - -webkit-box-shadow: inset 0 -2px 0 #3498db; - box-shadow: inset 0 -2px 0 #3498db; - color: #3498db; -} -.elfinder .elfinder-dialog .ui-tabs .elfinder-tabstop.ui-state-hover { - background: transparent; - -webkit-box-shadow: inset 0 -2px 0 #3498db; - box-shadow: inset 0 -2px 0 #3498db; - color: #3498db; -} -.elfinder .elfinder-dialog label.ui-state-hover { - background: transparent; -} -.std42-dialog .ui-dialog-titlebar { - background: #353b44; - -webkit-border-radius: 0; - border-radius: 0; - border: 0; -} -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon { - border-color: inherit; - -webkit-transition: 0.2s ease-out; - -o-transition: 0.2s ease-out; - -moz-transition: 0.2s ease-out; - transition: 0.2s ease-out; - opacity: 0.8; - color: #fff; - width: auto; - height: auto; - font-size: 12px; - padding: 3px; -} -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon, -.std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover .ui-icon { - background-color: #f44336; -} -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full .ui-icon, -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full:hover .ui-icon { - background-color: #4caf50; -} -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize .ui-icon, -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize:hover .ui-icon { - background-color: #ff9800; -} -.elfinder-dialog-title { - color: #f1f1f1; - -} - -.ui-dialog-buttonpane { - background: #fff; -} - -.std42-dialog .ui-dialog-content { - background: #fff; -} -.ui-widget-content { - font-family: "Noto Sans", sans-serif; - color: #546e7a; -} -.std42-dialog .ui-dialog-buttonpane button { - margin: 2px; - padding: .4em .5em; -} -.std42-dialog .ui-dialog-buttonpane button span.ui-icon { - padding: 0; -} -.elfinder-upload-dialog-wrapper .elfinder-upload-dirselect { - width: inherit; - height: inherit; - padding: .4em; - margin-left: 5px; - color: #222; -} -.elfinder-upload-dialog-wrapper .elfinder-upload-dirselect.ui-state-hover { - background: #888; - color: #fff; - outline: none; - -webkit-border-radius: 2px; - border-radius: 2px; -} -.elfinder-upload-dialog-wrapper .ui-button { - padding: .4em 3px; - margin: 0 2px; -} -.elfinder-upload-dialog-wrapper .ui-button { - margin-left: 19px; - margin-right: -15px; -} -.elfinder-upload-dropbox { - border: 2px dashed #bbb; -} -.elfinder-upload-dropbox:focus { - outline: none; -} -.elfinder-upload-dropbox.ui-state-hover { - background: #f1f1f1; - border: 2px dashed #bbb; -} -.elfinder-help *, -.elfinder-help a { - color: #546e7a; -} diff --git a/apps/static/plugins/elfinder/css/theme-gray.min.css b/apps/static/plugins/elfinder/css/theme-gray.min.css deleted file mode 100644 index a182ae0cc..000000000 --- a/apps/static/plugins/elfinder/css/theme-gray.min.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:'Noto Sans';font-style:italic;font-weight:400;src:local('Noto Sans Italic'), local('NotoSans-Italic'), url(https://fonts.gstatic.com/s/notosans/v7/o-0OIpQlx3QUlC5A4PNr4DRF.ttf) format('truetype')}@font-face{font-family:'Noto Sans';font-style:italic;font-weight:700;src:local('Noto Sans Bold Italic'), local('NotoSans-BoldItalic'), url(https://fonts.gstatic.com/s/notosans/v7/o-0TIpQlx3QUlC5A4PNr4Az5ZtyE.ttf) format('truetype')}@font-face{font-family:'Noto Sans';font-style:normal;font-weight:400;src:local('Noto Sans'), local('NotoSans'), url(https://fonts.gstatic.com/s/notosans/v7/o-0IIpQlx3QUlC5A4PNb4g.ttf) format('truetype')}@font-face{font-family:'Noto Sans';font-style:normal;font-weight:700;src:local('Noto Sans Bold'), local('NotoSans-Bold'), url(https://fonts.gstatic.com/s/notosans/v7/o-0NIpQlx3QUlC5A4PNjXhFlYw.ttf) format('truetype')}.elfinder{color:#546e7a;font-family:"Noto Sans", sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.elfinder.ui-widget.ui-widget-content{font-family:"Noto Sans", sans-serif;-webkit-box-shadow:0 1px 8px rgba(0, 0, 0, 0.6);box-shadow:0 1px 8px rgba(0, 0, 0, 0.6);-webkit-border-radius:0;border-radius:0;border:0}.elfinder *{outline:0!important}input.elfinder-tabstop,input.elfinder-tabstop.ui-state-hover,select.elfinder-tabstop,select.elfinder-tabstop.ui-state-hover{padding:5px;color:#666;background:#fff;-webkit-border-radius:3px;border-radius:3px;font-weight:normal;border-color:#888;-webkit-box-shadow:none!important;box-shadow:none!important}.elfinder-button-icon-spinner,.elfinder-info-spinner,.elfinder-navbar-spinner{background:url("../images/loading.svg") center center no-repeat!important;width:16px;height:16px}@-webkit-keyframes progress-animation{0%{background-position:1rem 0}to{background-position:0 0}}@-moz-keyframes progress-animation{0%{background-position:1rem 0}to{background-position:0 0}}@-o-keyframes progress-animation{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-animation{0%{background-position:1rem 0}to{background-position:0 0}}.elfinder-notify-progressbar{border:0}.elfinder-notify-progress,.elfinder-notify-progressbar{-webkit-border-radius:0;border-radius:0}.elfinder-notify-progress,.elfinder-resize-spinner{background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:1rem 1rem;-o-background-size:1rem 1rem;background-size:1rem 1rem;-webkit-animation:progress-animation 1s linear infinite;-moz-animation:progress-animation 1s linear infinite;-o-animation:progress-animation 1s linear infinite;animation:progress-animation 1s linear infinite;background-color:#0275d8;height:1rem}.elfinder-quicklook{background:#232323;-webkit-border-radius:2px;border-radius:2px}.elfinder-quicklook-titlebar{background:inherit}.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar{border:inherit;opacity:inherit;-webkit-border-radius:4px;border-radius:4px;background:rgba(66, 66, 66, 0.73)}.elfinder .elfinder-navdock{border:0}.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-close,.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-full,.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-minimize,.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full .ui-icon,.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize .ui-icon,.elfinder-mobile .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon,.elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-close:hover,.elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-full:hover,.elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-minimize:hover,.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full:hover .ui-icon,.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize:hover .ui-icon,.std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover .ui-icon{background-image:none}.elfinder .elfinder-toast>div{background-color:#323232!important;color:#d6d6d6;-webkit-box-shadow:none;box-shadow:none;opacity:inherit;padding:10px 60px}.elfinder .elfinder-toast>div button.ui-button{color:#fff}.elfinder .elfinder-toast>.toast-info button.ui-button{background-color:#3498db}.elfinder .elfinder-toast>.toast-error button.ui-button{background-color:#f44336}.elfinder .elfinder-toast>.toast-success button.ui-button{background-color:#4caf50}.elfinder .elfinder-toast>.toast-warning button.ui-button{background-color:#ff9800}.elfinder-toast-msg{font-family:"Noto Sans", sans-serif;font-size:17px}#ace_settingsmenu{font-family:"Noto Sans", sans-serif;-webkit-box-shadow:0 1px 30px rgba(0, 0, 0, 0.6)!important;box-shadow:0 1px 30px rgba(0, 0, 0, 0.6)!important;background-color:#1d2736!important;color:#e6e6e6!important}#ace_settingsmenu,#kbshortcutmenu{padding:0}.ace_optionsMenuEntry{padding:5px 10px}.ace_optionsMenuEntry:hover{background-color:#111721}.ace_optionsMenuEntry label{font-size:13px}#ace_settingsmenu input[type=text],#ace_settingsmenu select{margin:1px 2px 2px;padding:2px 5px;-webkit-border-radius:3px;border-radius:3px;border:0;background:rgba(9, 53, 121, 0.75);color:white}@font-face{font-family:material;src:url("../icons/material.eot?7028746");src:url("../icons/material.eot?7028746#iefix") format("embedded-opentype"), url("../icons/material.woff2?7028746") format("woff2"), url("../icons/material.woff?7028746") format("woff"), url("../icons/material.ttf?7028746") format("truetype"), url("../icons/material.svg?7028746#material") format("svg");font-weight:normal;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio:0){@font-face{font-family:material;src:url("../icons/material.svg?7028746#material") format("svg")}}.elfinder-button-icon,.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon{font:normal normal normal 14px/1 material;background-image:inherit;text-indent:inherit}.ui-button-icon-only .ui-icon{font:normal normal normal 14px/1 material;background-image:inherit!important;text-indent:0;font-size:16px}.elfinder-toolbar .elfinder-button-icon{font-size:20px;color:#ddd;margin-top:-2px}.elfinder-button-icon{background:inherit}.elfinder-button-icon-home:before{content:'\e800'}.elfinder-button-icon-back:before{content:'\e801'}.elfinder-button-icon-forward:before{content:'\e802'}.elfinder-button-icon-up:before{content:'\e803'}.elfinder-button-icon-dir:before{content:'\e804'}.elfinder-button-icon-opendir:before{content:'\e805'}.elfinder-button-icon-reload:before{content:'\e806'}.elfinder-button-icon-open:before{content:'\e807'}.elfinder-button-icon-mkdir:before{content:'\e808'}.elfinder-button-icon-mkfile:before{content:'\e809'}.elfinder-button-icon-rm:before{content:'\e80a'}.elfinder-button-icon-trash:before{content:'\e80b'}.elfinder-button-icon-restore:before{content:'\e80c'}.elfinder-button-icon-copy:before{content:'\e80d'}.elfinder-button-icon-cut:before{content:'\e80e'}.elfinder-button-icon-paste:before{content:'\e80f'}.elfinder-button-icon-getfile:before{content:'\e810'}.elfinder-button-icon-duplicate:before{content:'\e811'}.elfinder-button-icon-rename:before{content:'\e812'}.elfinder-button-icon-edit:before{content:'\e813'}.elfinder-button-icon-quicklook:before{content:'\e814'}.elfinder-button-icon-upload:before{content:'\e815'}.elfinder-button-icon-download:before{content:'\e816'}.elfinder-button-icon-info:before{content:'\e817'}.elfinder-button-icon-extract:before{content:'\e818'}.elfinder-button-icon-archive:before{content:'\e819'}.elfinder-button-icon-view:before{content:'\e81a'}.elfinder-button-icon-view-list:before{content:'\e81b'}.elfinder-button-icon-help:before{content:'\e81c'}.elfinder-button-icon-resize:before{content:'\e81d'}.elfinder-button-icon-link:before{content:'\e81e'}.elfinder-button-icon-search:before{content:'\e81f'}.elfinder-button-icon-sort:before{content:'\e820'}.elfinder-button-icon-rotate-r:before{content:'\e821'}.elfinder-button-icon-rotate-l:before{content:'\e822'}.elfinder-button-icon-netmount:before{content:'\e823'}.elfinder-button-icon-netunmount:before{content:'\e824'}.elfinder-button-icon-places:before{content:'\e825'}.elfinder-button-icon-chmod:before{content:'\e826'}.elfinder-button-icon-accept:before{content:'\e827'}.elfinder-button-icon-menu:before{content:'\e828'}.elfinder-button-icon-colwidth:before{content:'\e829'}.elfinder-button-icon-fullscreen:before{content:'\e82a'}.elfinder-button-icon-unfullscreen:before{content:'\e82b'}.elfinder-button-icon-empty:before{content:'\e82c'}.elfinder-button-icon-undo:before{content:'\e82d'}.elfinder-button-icon-redo:before{content:'\e82e'}.elfinder-button-icon-preference:before{content:'\e82f'}.elfinder-button-icon-mkdirin:before{content:'\e830'}.elfinder-button-icon-selectall:before{content:'\e831'}.elfinder-button-icon-selectnone:before{content:'\e832'}.elfinder-button-icon-selectinvert:before{content:'\e833'}.elfinder-button-icon-theme:before{content:'\e859'}.elfinder-button-icon-logout:before{content:'\e85a'}.elfinder-button-icon-opennew:before{content:'\e85b'}.elfinder-button-search .ui-icon.ui-icon-search{font-size:17px}.elfinder-button-search .ui-icon:hover{opacity:1}.elfinder-navbar-icon{font:normal normal normal 16px/1 material;background-image:inherit!important}.elfinder-navbar-icon:before{content:'\e804'}.elfinder-droppable-active .elfinder-navbar-icon:before,.ui-state-active .elfinder-navbar-icon:before,.ui-state-hover .elfinder-navbar-icon:before{content:'\e805'}.elfinder-navbar-root-local .elfinder-navbar-icon:before{content:'\e83d'}.elfinder-navbar-root-ftp .elfinder-navbar-icon:before{content:'\e823'}.elfinder-navbar-root-sql .elfinder-navbar-icon:before{content:'\e83e'}.elfinder-navbar-root-dropbox .elfinder-navbar-icon:before{content:'\e83f'}.elfinder-navbar-root-googledrive .elfinder-navbar-icon:before{content:'\e840'}.elfinder-navbar-root-onedrive .elfinder-navbar-icon:before{content:'\e841'}.elfinder-navbar-root-box .elfinder-navbar-icon:before{content:'\e842'}.elfinder-navbar-root-trash .elfinder-navbar-icon:before{content:'\e80b'}.elfinder-navbar-root-zip .elfinder-navbar-icon:before{content:'\e85c'}.elfinder-navbar-root-network .elfinder-navbar-icon:before{content:'\e823'}.elfinder-places .elfinder-navbar-root .elfinder-navbar-icon:before{content:'\e825'}.elfinder-navbar-arrow{background-image:inherit!important;font:normal normal normal 14px/1 material;font-size:10px;padding-top:3px;padding-left:2px;color:#a9a9a9}.ui-state-active .elfinder-navbar-arrow{color:#fff}.elfinder-ltr .elfinder-navbar-collapsed .elfinder-navbar-arrow:before{content:'\e857'}.elfinder-rtl .elfinder-navbar-collapsed .elfinder-navbar-arrow:before{content:'\e858'}.elfinder-ltr .elfinder-navbar-expanded .elfinder-navbar-arrow:before,.elfinder-rtl .elfinder-navbar-expanded .elfinder-navbar-arrow:before{content:'\e851'}div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon{font-size:8px;margin-top:5px;margin-right:5px}div.elfinder-cwd-wrapper-list .ui-icon-grip-dotted-vertical{margin:2px}.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon,.elfinder-navbar-root-box .elfinder-cwd-icon,.elfinder-navbar-root-dropbox .elfinder-cwd-icon,.elfinder-navbar-root-ftp .elfinder-cwd-icon,.elfinder-navbar-root-googledrive .elfinder-cwd-icon,.elfinder-navbar-root-local .elfinder-cwd-icon,.elfinder-navbar-root-network .elfinder-cwd-icon,.elfinder-navbar-root-onedrive .elfinder-cwd-icon,.elfinder-navbar-root-sql .elfinder-cwd-icon,.elfinder-navbar-root-trash .elfinder-cwd-icon,.elfinder-navbar-root-zip .elfinder-cwd-icon{background-image:inherit}.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon:before,.elfinder-navbar-root-box .elfinder-cwd-icon:before,.elfinder-navbar-root-dropbox .elfinder-cwd-icon:before,.elfinder-navbar-root-ftp .elfinder-cwd-icon:before,.elfinder-navbar-root-googledrive .elfinder-cwd-icon:before,.elfinder-navbar-root-local .elfinder-cwd-icon:before,.elfinder-navbar-root-network .elfinder-cwd-icon:before,.elfinder-navbar-root-onedrive .elfinder-cwd-icon:before,.elfinder-navbar-root-sql .elfinder-cwd-icon:before,.elfinder-navbar-root-trash .elfinder-cwd-icon:before,.elfinder-navbar-root-zip .elfinder-cwd-icon:before{font-family:material;background-color:transparent;color:#525252;font-size:55px;position:relative;top:-10px!important;padding:0;display:contents!important}.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon:before,.elfinder-navbar-root-local .elfinder-cwd-icon:before{content:'\e83d'}.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon:before,.elfinder-navbar-root-ftp .elfinder-cwd-icon:before{content:'\e823'}.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon:before,.elfinder-navbar-root-sql .elfinder-cwd-icon:before{content:'\e83e'}.elfinder-cwd-view-list .elfinder-navbar-roor-dropbox td .elfinder-cwd-icon:before,.elfinder-navbar-roor-dropbox .elfinder-cwd-icon:before{content:'\e83f'}.elfinder-cwd-view-list .elfinder-navbar-roor-googledrive td .elfinder-cwd-icon:before,.elfinder-navbar-roor-googledrive .elfinder-cwd-icon:before{content:'\e840'}.elfinder-cwd-view-list .elfinder-navbar-roor-onedrive td .elfinder-cwd-icon:before,.elfinder-navbar-roor-onedrive .elfinder-cwd-icon:before{content:'\e841'}.elfinder-cwd-view-list .elfinder-navbar-roor-box td .elfinder-cwd-icon:before,.elfinder-navbar-roor-box .elfinder-cwd-icon:before{content:'\e842'}.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon:before,.elfinder-navbar-root-trash .elfinder-cwd-icon:before{content:'\e80b'}.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon:before,.elfinder-navbar-root-zip .elfinder-cwd-icon:before{content:'\e85c'}.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon:before,.elfinder-navbar-root-network .elfinder-cwd-icon:before{content:'\e823'}.elfinder-dialog-icon{font:normal normal normal 14px/1 material;background:inherit;color:#524949;font-size:37px}.elfinder-dialog-icon:before{content:'\e843'}.elfinder-dialog-icon-mkdir:before{content:'\e808'}.elfinder-dialog-icon-mkfile:before{content:'\e809'}.elfinder-dialog-icon-copy:before{content:'\e80d'}.elfinder-dialog-icon-move:before,.elfinder-dialog-icon-prepare:before{content:'\e844'}.elfinder-dialog-icon-chunkmerge:before,.elfinder-dialog-icon-upload:before{content:'\e815'}.elfinder-dialog-icon-rm:before{content:'\e80a'}.elfinder-dialog-icon-file:before,.elfinder-dialog-icon-open:before,.elfinder-dialog-icon-readdir:before{content:'\e807'}.elfinder-dialog-icon-reload:before{content:'\e806'}.elfinder-dialog-icon-download:before{content:'\e816'}.elfinder-dialog-icon-save:before{content:'\e845'}.elfinder-dialog-icon-rename:before{content:'\e812'}.elfinder-dialog-icon-archive:before,.elfinder-dialog-icon-zipdl:before{content:'\e819'}.elfinder-dialog-icon-extract:before{content:'\e818'}.elfinder-dialog-icon-search:before{content:'\e81f'}.elfinder-dialog-icon-loadimg:before{content:'\e846'}.elfinder-dialog-icon-url:before{content:'\e81e'}.elfinder-dialog-icon-resize:before{content:'\e81d'}.elfinder-dialog-icon-netmount:before{content:'\e823'}.elfinder-dialog-icon-netunmount:before{content:'\e824'}.elfinder-dialog-icon-chmod:before{content:'\e826'}.elfinder-dialog-icon-dim:before,.elfinder-dialog-icon-preupload:before{content:'\e847'}.elfinder-contextmenu .elfinder-contextmenu-item span.elfinder-contextmenu-icon{font-size:16px}.elfinder-contextmenu .elfinder-contextmenu-item .elfinder-contextsubmenu-item .ui-icon{font-size:15px}.elfinder-contextmenu .elfinder-contextmenu-item .elfinder-button-icon-link:before{content:'\e837'}.elfinder .elfinder-contextmenu-extra-icon{margin-top:-6px}.elfinder .elfinder-contextmenu-extra-icon a{padding:5px;margin:-16px}.elfinder-button-icon-link:before{content:'\e81e'!important}.elfinder .elfinder-contextmenu-arrow{font:normal normal normal 14px/1 material;background-image:inherit;font-size:10px!important;padding-top:3px}.elfinder .elfinder-contextmenu-arrow:before{content:'\e857'}.elfinder-contextmenu .ui-state-hover .elfinder-contextmenu-arrow{background-image:inherit}.elfinder-quicklook .ui-resizable-se{background:inherit}.elfinder-quicklook-navbar-icon{background:transparent;font:normal normal normal 14px/1 material;font-size:32px;color:#fff}.elfinder-quicklook-titlebar-icon{margin-top:-8px}.elfinder-quicklook-titlebar-icon .ui-icon{border:0;opacity:.8;font-size:15px;padding:1px}.elfinder-quicklook-titlebar .ui-icon-circle-close,.elfinder-quicklook .ui-icon-gripsmall-diagonal-se{color:#f1f1f1}.elfinder-quicklook-navbar-icon-prev:before{content:'\e848'}.elfinder-quicklook-navbar-icon-next:before{content:'\e849'}.elfinder-quicklook-navbar-icon-fullscreen:before{content:'\e84a'}.elfinder-quicklook-navbar-icon-fullscreen-off:before{content:'\e84b'}.elfinder-quicklook-navbar-icon-close:before{content:'\e84c'}.ui-button-icon{background-image:inherit}.ui-icon-search:before{content:'\e81f'}.ui-icon-close:before,.ui-icon-closethick:before{content:'\e839'}.ui-icon-circle-close:before{content:'\e84c'}.ui-icon-gear:before{content:'\e82f'}.ui-icon-gripsmall-diagonal-se:before{content:'\e838'}.ui-icon-locked:before{content:'\e834'}.ui-icon-unlocked:before{content:'\e836'}.ui-icon-arrowrefresh-1-n:before{content:'\e821'}.ui-icon-plusthick:before{content:'\e83a'}.ui-icon-arrowreturnthick-1-s:before{content:'\e83b'}.ui-icon-minusthick:before{content:'\e83c'}.ui-icon-pin-s:before{content:'\e84d'}.ui-icon-check:before{content:'\e84e'}.ui-icon-arrowthick-1-s:before{content:'\e84f'}.ui-icon-arrowthick-1-n:before{content:'\e850'}.ui-icon-triangle-1-s:before{content:'\e851'}.ui-icon-triangle-1-n:before{content:'\e852'}.ui-icon-grip-dotted-vertical:before{content:'\e853'}.elfinder-lock,.elfinder-perms,.elfinder-symlink{background-image:inherit;font:normal normal normal 18px/1 material;color:#4d4d4d}.elfinder-na .elfinder-perms:before{content:'\e824'}.elfinder-ro .elfinder-perms:before{content:'\e835'}.elfinder-wo .elfinder-perms:before{content:'\e854'}.elfinder-group .elfinder-perms:before{content:'\e800'}.elfinder-lock:before{content:'\e834'}.elfinder-symlink:before{content:'\e837'}.elfinder .elfinder-toast>div{font:normal normal normal 14px/1 material}.elfinder .elfinder-toast>div:before{font-size:45px;position:absolute;left:5px;top:15px}.elfinder .elfinder-toast>.toast-error,.elfinder .elfinder-toast>.toast-info,.elfinder .elfinder-toast>.toast-success,.elfinder .elfinder-toast>.toast-warning{background-image:inherit!important}.elfinder .elfinder-toast>.toast-info:before{content:'\e817';color:#3498db}.elfinder .elfinder-toast>.toast-error:before{content:'\e855';color:#f44336}.elfinder .elfinder-toast>.toast-success:before{content:'\e84e';color:#4caf50}.elfinder .elfinder-toast>.toast-warning:before{content:'\e856';color:#ff9800}.elfinder-drag-helper-icon-status{font:normal normal normal 14px/1 material;background:inherit}.elfinder-drag-helper-icon-status:before{content:'\e824'}.elfinder-drag-helper-move .elfinder-drag-helper-icon-status{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.elfinder-drag-helper-move .elfinder-drag-helper-icon-status:before{content:'\e854'}.elfinder-drag-helper-plus .elfinder-drag-helper-icon-status{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.elfinder-drag-helper-plus .elfinder-drag-helper-icon-status:before{content:'\e84c'}.elfinder-cwd-view-list td .elfinder-cwd-icon{background-image:url("../images/icons-small.png")}.elfinder-cwd-icon{background:url("../images/icons-big.png") 0 0 no-repeat}.elfinder-cwd-icon:before{font-size:10px;position:relative;top:27px;left:inherit;padding:1px;background-color:transparent}.elfinder-info-title .elfinder-cwd-icon:before{top:32px;display:block;margin:0 auto}.elfinder-info-title .elfinder-cwd-icon.elfinder-cwd-bgurl:before{background-color:#313131!important}.elfinder-cwd-view-icons .elfinder-cwd-icon.elfinder-cwd-bgurl:before{left:inherit;background-color:#313131}.elfinder-quicklook .elfinder-cwd-icon:before{top:33px;left:50%!important;position:relative;display:block;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);-moz-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%)}.elfinder-cwd-icon-x-zip:before,.elfinder-cwd-icon-zip:before{content:'zip'!important}.elfinder-cwd-icon-x-xz:before{content:'xz'!important}.elfinder-cwd-icon-x-7z-compressed:before{content:'7z'!important}.elfinder-cwd-icon-x-gzip:before{content:'gzip'!important}.elfinder-cwd-icon-x-tar:before{content:'tar'!important}.elfinder-cwd-icon-x-bzip2:before,.elfinder-cwd-icon-x-bzip:before{content:'bzip'!important}.elfinder-cwd-icon-x-rar-compressed:before,.elfinder-cwd-icon-x-rar:before{content:'rar'!important}.elfinder-cwd-icon-directory{background-position:0 -50px}.elfinder-cwd-icon-application{background-position:0 -150px}.elfinder-cwd-icon-text{background-position:0 -200px}.elfinder-cwd-icon-plain,.elfinder-cwd-icon-x-empty{background-position:0 -250px}.elfinder-cwd-icon-image{background-position:0 -300px}.elfinder-cwd-icon-vnd-adobe-photoshop{background-position:0 -350px}.elfinder-cwd-icon-vnd-adobe-photoshop:before{content:none!important}.elfinder-cwd-icon-postscript{background-position:0 -400px}.elfinder-cwd-icon-audio{background-position:0 -450px}.elfinder-cwd-icon-dash-xml,.elfinder-cwd-icon-flash-video,.elfinder-cwd-icon-video,.elfinder-cwd-icon-vnd-apple-mpegurl,.elfinder-cwd-icon-x-mpegurl{background-position:0 -500px}.elfinder-cwd-icon-rtf,.elfinder-cwd-icon-rtfd{background-position:0 -550px}.elfinder-cwd-icon-pdf{background-position:0 -600px}.elfinder-cwd-icon-x-msaccess{background-position:0 -650px}.elfinder-cwd-icon-x-msaccess:before{content:none!important}.elfinder-cwd-icon-msword,.elfinder-cwd-icon-vnd-ms-word,.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12{background-position:0 -700px}.elfinder-cwd-icon-msword:before,.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-word:before{content:none!important}.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{background-position:0 -750px}.elfinder-cwd-icon-ms-excel:before,.elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-excel:before{content:none!important}.elfinder-cwd-icon-vnd-ms-powerpoint,.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12{background-position:0 -800px}.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-powerpoint:before{content:none!important}.elfinder-cwd-icon-vnd-ms-office,.elfinder-cwd-icon-vnd-oasis-opendocument-chart,.elfinder-cwd-icon-vnd-oasis-opendocument-database,.elfinder-cwd-icon-vnd-oasis-opendocument-formula,.elfinder-cwd-icon-vnd-oasis-opendocument-graphics,.elfinder-cwd-icon-vnd-oasis-opendocument-graphics-template,.elfinder-cwd-icon-vnd-oasis-opendocument-image,.elfinder-cwd-icon-vnd-oasis-opendocument-presentation,.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template,.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet,.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template,.elfinder-cwd-icon-vnd-oasis-opendocument-text,.elfinder-cwd-icon-vnd-oasis-opendocument-text-master,.elfinder-cwd-icon-vnd-oasis-opendocument-text-template,.elfinder-cwd-icon-vnd-oasis-opendocument-text-web,.elfinder-cwd-icon-vnd-openofficeorg-extension,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slideshow,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-template,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-document,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-template{background-position:0 -850px}.elfinder-cwd-icon-html{background-position:0 -900px}.elfinder-cwd-icon-css{background-position:0 -950px}.elfinder-cwd-icon-javascript,.elfinder-cwd-icon-x-javascript{background-position:0 -1000px}.elfinder-cwd-icon-x-perl{background-position:0 -1050px}.elfinder-cwd-icon-x-python,.elfinder-cwd-icon-x-python:after{background-position:0 -1100px}.elfinder-cwd-icon-x-ruby{background-position:0 -1150px}.elfinder-cwd-icon-x-sh,.elfinder-cwd-icon-x-shellscript{background-position:0 -1200px}.elfinder-cwd-icon-x-c,.elfinder-cwd-icon-x-c--,.elfinder-cwd-icon-x-c--hdr,.elfinder-cwd-icon-x-c--src,.elfinder-cwd-icon-x-chdr,.elfinder-cwd-icon-x-csrc{background-position:0 -1250px}.elfinder-cwd-icon-x-jar,.elfinder-cwd-icon-x-java,.elfinder-cwd-icon-x-java-source{background-position:0 -1300px}.elfinder-cwd-icon-x-jar:before,.elfinder-cwd-icon-x-java-source:before,.elfinder-cwd-icon-x-java:before{content:none!important}.elfinder-cwd-icon-x-php{background-position:0 -1350px}.elfinder-cwd-icon-xml,.elfinder-cwd-icon-xml:after{background-position:0 -1400px}.elfinder-cwd-icon-x-7z-compressed,.elfinder-cwd-icon-x-bzip,.elfinder-cwd-icon-x-bzip2,.elfinder-cwd-icon-x-gzip,.elfinder-cwd-icon-x-rar,.elfinder-cwd-icon-x-rar-compressed,.elfinder-cwd-icon-x-tar,.elfinder-cwd-icon-x-xz,.elfinder-cwd-icon-x-zip,.elfinder-cwd-icon-zip{background-position:0 -1450px}.elfinder-cwd-icon-x-shockwave-flash{background-position:0 -1500px}.elfinder-cwd-icon-group{background-position:0 -1550px}.elfinder-cwd-icon-json{background-position:0 -1600px}.elfinder-cwd-icon-json:before{content:none!important}.elfinder-cwd-icon-markdown,.elfinder-cwd-icon-x-markdown{background-position:0 -1650px}.elfinder-cwd-icon-markdown:before,.elfinder-cwd-icon-x-markdown:before{content:none!important}.elfinder-cwd-icon-sql{background-position:0 -1700px}.elfinder-cwd-icon-sql:before{content:none!important}.elfinder-cwd-icon-svg,.elfinder-cwd-icon-svg-xml{background-position:0 -1750px}.elfinder-cwd-icon-svg-xml:before,.elfinder-cwd-icon-svg:before{content:none!important}.elfinder-toolbar{background:#3b4047;-webkit-border-radius:0;border-radius:0;border:0;padding:5px 0}.elfinder-buttonset{-webkit-border-radius:0;border-radius:0;border:0;margin:0 5px;height:24px}.elfinder .elfinder-button{background:transparent;-webkit-border-radius:0;border-radius:0;cursor:pointer;color:#efefef}.elfinder-toolbar-button-separator{border:0}.elfinder-button-menu{-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 1px 6px rgba(0, 0, 0, 0.3);box-shadow:0 1px 6px rgba(0, 0, 0, 0.3);border:none;margin-top:5px}.elfinder-button-menu-item{color:#666;padding:6px 19px}.elfinder-button-menu-item.ui-state-hover{color:#141414;background-color:#f5f4f4}.elfinder-button-menu-item-separated{border-top:1px solid #e5e5e5}.elfinder-button-menu-item-separated.ui-state-hover{border-top:1px solid #e5e5e5}.elfinder .elfinder-button-search{margin:0 10px;min-height:inherit;overflow:hidden}.elfinder .elfinder-button-search input{background:rgba(40, 42, 45, 0.79);-webkit-border-radius:2px;border-radius:2px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;border:0;margin:0;padding:0 23px;height:24px;color:#fff}.elfinder .elfinder-button-search .elfinder-button-menu{margin-top:4px;border:none;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.5);box-shadow:0 1px 3px rgba(0, 0, 0, 0.5)}.elfinder .elfinder-navbar{background:#535e64;-webkit-box-shadow:0 1px 8px rgba(0, 0, 0, 0.6);box-shadow:0 1px 8px rgba(0, 0, 0, 0.6);border:none}.elfinder-navbar-dir{color:#e6e6e6;cursor:pointer;-webkit-border-radius:2px;border-radius:2px;padding:5px;border:none}.elfinder-navbar-dir.ui-state-active.ui-state-hover,.elfinder-navbar-dir.ui-state-hover{background:#3c4448;color:#e6e6e6;border:none}.elfinder-disabled .elfinder-navbar .ui-state-active,.elfinder-navbar .ui-state-active{background:#41494e;border:none}.elfinder-workzone{background:#cdcfd4}.elfinder-cwd-file{color:#555}.elfinder-cwd-file.ui-selected.ui-state-hover,.elfinder-cwd-file.ui-state-hover{background:#4c5961;color:#ddd}.elfinder-cwd-file.ui-selected{background:#455158;color:#555;width:120px!important}.elfinder-cwd-filename input,.elfinder-cwd-filename textarea{padding:2px;-webkit-border-radius:2px!important;border-radius:2px!important;width:100px!important;background:#fff;color:#222}.elfinder-cwd-filename input:focus,.elfinder-cwd-filename textarea:focus{outline:none;border:1px solid #555}.elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover,.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-active,.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-hover,.elfinder-disabled .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover,.elfinder-disabled .elfinder-cwd table td.ui-state-hover{background:transparent;color:#ddd}.elfinder-cwd table{padding:0}.elfinder-cwd table tr:nth-child(odd){background-color:transparent}.elfinder-cwd table tr:nth-child(odd).ui-state-hover{background-color:#4c5961}#elfinder-elfinder-cwd-thead td{background:#353b42;color:#ddd}#elfinder-elfinder-cwd-thead td.ui-state-active,#elfinder-elfinder-cwd-thead td.ui-state-hover{background:#30363c}#elfinder-elfinder-cwd-thead td.ui-state-active.ui-state-hover{background:#2e333a}.ui-selectable-helper{border:1px solid #3b4047;background-color:rgba(104, 111, 121, 0.5)}.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash{background-color:#e4e4e4}.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file{color:#333}.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-selected.ui-state-hover,.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-state-hover{background:#4c5961;color:#ddd}.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-selected{background:#455158;color:#555}.elfinder .elfinder-statusbar{background:#3b4047;-webkit-border-radius:0;border-radius:0;border:0;color:#cfd2d4}.elfinder-path,.elfinder-stat-size{margin:0 15px}.ui-button,.ui-button.ui-state-default,.ui-button:active{display:inline-block;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;white-space:nowrap;-webkit-border-radius:3px;border-radius:3px;text-transform:uppercase;-webkit-box-shadow:1px 1px 4px rgba(0, 0, 0, 0.4);box-shadow:1px 1px 4px rgba(0, 0, 0, 0.4);-webkit-transition:all 0.4s;-o-transition:all 0.4s;-moz-transition:all 0.4s;transition:all 0.4s;background:#fff;color:#222;border:none}.ui-button .ui-icon,.ui-button.ui-state-default .ui-icon,.ui-button:active .ui-icon{color:#222}.ui-button.ui-state-active,.ui-button.ui-state-hover,.ui-button:active,.ui-button:focus,.ui-button:hover,a.ui-button:active{background:#3498db;color:#fff;border:none}.ui-button.ui-state-active .ui-icon,.ui-button.ui-state-hover .ui-icon,.ui-button:active .ui-icon,.ui-button:focus .ui-icon,.ui-button:hover .ui-icon,a.ui-button:active .ui-icon{color:#fff}.ui-button.ui-state-active:hover{background:#217dbb;color:#fff;border:none}.ui-button:focus{outline:none!important}.ui-controlgroup-horizontal .ui-button{-webkit-border-radius:0;border-radius:0;border:0}.elfinder .elfinder-contextmenu,.elfinder .elfinder-contextmenu-sub{-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 1px 6px rgba(0, 0, 0, 0.3);box-shadow:0 1px 6px rgba(0, 0, 0, 0.3);border:none}.elfinder .elfinder-contextmenu-separator,.elfinder .elfinder-contextmenu-sub-separator{border-top:1px solid #e5e5e5}.elfinder .elfinder-contextmenu-item{color:#666;padding:5px 30px}.elfinder .elfinder-contextmenu-item.ui-state-hover{background-color:#f5f4f4;color:#141414}.elfinder .elfinder-contextmenu-item.ui-state-active{background-color:#2196f3;color:#fff}.elfinder .elfinder-dialog{-webkit-border-radius:0;border-radius:0;border:0;-webkit-box-shadow:0 1px 30px rgba(0, 0, 0, 0.6);box-shadow:0 1px 30px rgba(0, 0, 0, 0.6)}.elfinder .elfinder-dialog .ui-dialog-content[id*=edit-elfinder-elfinder-]{padding:0}.elfinder .elfinder-dialog .ui-tabs{-webkit-border-radius:0;border-radius:0;border:0}.elfinder .elfinder-dialog .ui-tabs-nav{-webkit-border-radius:0;border-radius:0;border:0;background:transparent;border-bottom:1px solid #ddd}.elfinder .elfinder-dialog .ui-tabs-nav li{border:0;font-weight:normal;background:transparent;margin:0;padding:3px 0}.elfinder .elfinder-dialog .ui-tabs-nav li.ui-tabs-active{padding-bottom:7px}.elfinder .elfinder-dialog .ui-tabs-nav .ui-state-active a,.elfinder .elfinder-dialog .ui-tabs-nav .ui-tabs-selected a,.elfinder .elfinder-dialog .ui-tabs-nav li:hover a{-webkit-box-shadow:inset 0 -2px 0 #3498db;box-shadow:inset 0 -2px 0 #3498db;color:#3498db}.elfinder .elfinder-dialog .ui-tabs .elfinder-tabstop.ui-state-hover{background:transparent;-webkit-box-shadow:inset 0 -2px 0 #3498db;box-shadow:inset 0 -2px 0 #3498db;color:#3498db}.elfinder .elfinder-dialog label.ui-state-hover{background:transparent}.std42-dialog .ui-dialog-titlebar{background:#353b44;-webkit-border-radius:0;border-radius:0;border:0}.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon{border-color:inherit;-webkit-transition:0.2s ease-out;-o-transition:0.2s ease-out;-moz-transition:0.2s ease-out;transition:0.2s ease-out;opacity:0.8;color:#fff;width:auto;height:auto;font-size:12px;padding:3px}.elfinder-mobile .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon,.std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover .ui-icon{background-color:#f44336}.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full .ui-icon,.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full:hover .ui-icon{background-color:#4caf50}.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize .ui-icon,.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize:hover .ui-icon{background-color:#ff9800}.elfinder-dialog-title{color:#f1f1f1}.std42-dialog .ui-dialog-content{background:#fff}.ui-widget-content{font-family:"Noto Sans", sans-serif;color:#546e7a}.std42-dialog .ui-dialog-buttonpane button{margin:2px;padding:.4em .5em}.std42-dialog .ui-dialog-buttonpane button span.ui-icon{padding:0}.elfinder-upload-dialog-wrapper .elfinder-upload-dirselect{width:inherit;height:inherit;padding:.4em;margin-left:5px;color:#222}.elfinder-upload-dialog-wrapper .elfinder-upload-dirselect.ui-state-hover{background:#888;color:#fff;outline:none;-webkit-border-radius:2px;border-radius:2px}.elfinder-upload-dialog-wrapper .ui-button{padding:.4em 3px;margin:0 2px}.elfinder-upload-dialog-wrapper .ui-button{margin-left:19px;margin-right:-15px}.elfinder-upload-dropbox{border:2px dashed #bbb}.elfinder-upload-dropbox:focus{outline:none}.elfinder-upload-dropbox.ui-state-hover{background:#f1f1f1;border:2px dashed #bbb}.elfinder-help *,.elfinder-help a{color:#546e7a} \ No newline at end of file diff --git a/apps/static/plugins/elfinder/css/theme.css b/apps/static/plugins/elfinder/css/theme.css deleted file mode 100755 index bbefe6749..000000000 --- a/apps/static/plugins/elfinder/css/theme.css +++ /dev/null @@ -1,1582 +0,0 @@ -@font-face { - font-family: 'Noto Sans'; - font-style: italic; - font-weight: 400; - src: local('Noto Sans Italic'), local('NotoSans-Italic'), url(https://fonts.gstatic.com/s/notosans/v7/o-0OIpQlx3QUlC5A4PNr4DRF.ttf) format('truetype'); -} -@font-face { - font-family: 'Noto Sans'; - font-style: italic; - font-weight: 700; - src: local('Noto Sans Bold Italic'), local('NotoSans-BoldItalic'), url(https://fonts.gstatic.com/s/notosans/v7/o-0TIpQlx3QUlC5A4PNr4Az5ZtyE.ttf) format('truetype'); -} -@font-face { - font-family: 'Noto Sans'; - font-style: normal; - font-weight: 400; - src: local('Noto Sans'), local('NotoSans'), url(https://fonts.gstatic.com/s/notosans/v7/o-0IIpQlx3QUlC5A4PNb4g.ttf) format('truetype'); -} -@font-face { - font-family: 'Noto Sans'; - font-style: normal; - font-weight: 700; - src: local('Noto Sans Bold'), local('NotoSans-Bold'), url(https://fonts.gstatic.com/s/notosans/v7/o-0NIpQlx3QUlC5A4PNjXhFlYw.ttf) format('truetype'); -} -.elfinder { - color: #546e7a; - font-family: "Noto Sans", sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.elfinder.ui-widget.ui-widget-content { - font-family: "Noto Sans", sans-serif; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); - -webkit-border-radius: 0; - border-radius: 0; - border: 0; -} -.elfinder * { - outline: 0 !important; -} -/** - * Input & Select - */ -input.elfinder-tabstop, -input.elfinder-tabstop.ui-state-hover, -select.elfinder-tabstop, -select.elfinder-tabstop.ui-state-hover { - padding: 5px; - color: #666; - background: #fff; - -webkit-border-radius: 3px; - border-radius: 3px; - font-weight: normal; - border-color: #888; - -webkit-box-shadow: none !important; - box-shadow: none !important; -} -/** - * Loading - */ -.elfinder-info-spinner, -.elfinder-navbar-spinner, -.elfinder-button-icon-spinner { - background: url("../images/loading.svg") center center no-repeat !important; - width: 16px; - height: 16px; -} -/** - * Progress Bar - */ -@-webkit-keyframes progress-animation { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} -@-moz-keyframes progress-animation { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} -@-o-keyframes progress-animation { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} -@keyframes progress-animation { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} -.elfinder-notify-progressbar { - border: 0; -} -.elfinder-notify-progress, -.elfinder-notify-progressbar { - -webkit-border-radius: 0; - border-radius: 0; -} -.elfinder-notify-progress, -.elfinder-resize-spinner { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 1rem 1rem; - -o-background-size: 1rem 1rem; - background-size: 1rem 1rem; - -webkit-animation: progress-animation 1s linear infinite; - -moz-animation: progress-animation 1s linear infinite; - -o-animation: progress-animation 1s linear infinite; - animation: progress-animation 1s linear infinite; - background-color: #0275d8; - height: 1rem; -} -/** - * Quick Look - */ -.elfinder-quicklook { - background: #232323; - -webkit-border-radius: 2px; - border-radius: 2px; -} -.elfinder-quicklook-titlebar { - background: inherit; -} -.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar { - border: inherit; - opacity: inherit; - -webkit-border-radius: 4px; - border-radius: 4px; - background: rgba(66, 66, 66, 0.73); -} -.elfinder .elfinder-navdock { - border: 0; -} -.std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover .ui-icon, -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon, -.elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-close:hover, -.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-close, -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize:hover .ui-icon, -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize .ui-icon, -.elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-minimize:hover, -.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-minimize, -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full:hover .ui-icon, -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full .ui-icon, -.elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-full:hover, -.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-full { - background-image: none; -} -/** - * Toast Notification - */ -.elfinder .elfinder-toast > div { - background-color: #323232 !important; - color: #d6d6d6; - -webkit-box-shadow: none; - box-shadow: none; - opacity: inherit; - padding: 10px 60px; -} -.elfinder .elfinder-toast > div button.ui-button { - color: #fff; -} -.elfinder .elfinder-toast > .toast-info button.ui-button { - background-color: #3498db; -} -.elfinder .elfinder-toast > .toast-error button.ui-button { - background-color: #f44336; -} -.elfinder .elfinder-toast > .toast-success button.ui-button { - background-color: #4caf50; -} -.elfinder .elfinder-toast > .toast-warning button.ui-button { - background-color: #ff9800; -} -.elfinder-toast-msg { - font-family: "Noto Sans", sans-serif; - font-size: 17px; -} -/** - * For Ace Editor - */ -#ace_settingsmenu { - font-family: "Noto Sans", sans-serif; - -webkit-box-shadow: 0 1px 30px rgba(0, 0, 0, 0.6) !important; - box-shadow: 0 1px 30px rgba(0, 0, 0, 0.6) !important; - background-color: #1d2736 !important; - color: #e6e6e6 !important; -} -#ace_settingsmenu, -#kbshortcutmenu { - padding: 0; -} -.ace_optionsMenuEntry { - padding: 5px 10px; -} -.ace_optionsMenuEntry:hover { - background-color: #111721; -} -.ace_optionsMenuEntry label { - font-size: 13px; -} -#ace_settingsmenu input[type="text"], -#ace_settingsmenu select { - margin: 1px 2px 2px; - padding: 2px 5px; - -webkit-border-radius: 3px; - border-radius: 3px; - border: 0; - background: rgba(9, 53, 121, 0.75); - color: white; -} -/** - * Icons - * Webfont is generated by Fontello http://fontello.com - */ -@font-face { - font-family: material; - src: url("../icons/material.eot?7028746"); - src: url("../icons/material.eot?7028746#iefix") format("embedded-opentype"), url("../icons/material.woff2?7028746") format("woff2"), url("../icons/material.woff?7028746") format("woff"), url("../icons/material.ttf?7028746") format("truetype"), url("../icons/material.svg?7028746#material") format("svg"); - font-weight: normal; - font-style: normal; -} -@media screen and (-webkit-min-device-pixel-ratio: 0) { - @font-face { - font-family: material; - src: url("../icons/material.svg?7028746#material") format("svg"); - } -} -.ui-icon, -.elfinder-button-icon, -.ui-widget-header .ui-icon, -.ui-widget-content .ui-icon { - font: normal normal normal 14px/1 material; - background-image: inherit; - text-indent: inherit; -} -.ui-button-icon-only .ui-icon { - font: normal normal normal 14px/1 material; - background-image: inherit !important; - text-indent: 0; - font-size: 16px; -} -.elfinder-toolbar .elfinder-button-icon { - font-size: 20px; - color: #ddd; - margin-top: -2px; -} -.elfinder-button-icon { - background: inherit; -} -.elfinder-button-icon-home:before { - content: '\e800'; -} -.elfinder-button-icon-back:before { - content: '\e801'; -} -.elfinder-button-icon-forward:before { - content: '\e802'; -} -.elfinder-button-icon-up:before { - content: '\e803'; -} -.elfinder-button-icon-dir:before { - content: '\e804'; -} -.elfinder-button-icon-opendir:before { - content: '\e805'; -} -.elfinder-button-icon-reload:before { - content: '\e806'; -} -.elfinder-button-icon-open:before { - content: '\e807'; -} -.elfinder-button-icon-mkdir:before { - content: '\e808'; -} -.elfinder-button-icon-mkfile:before { - content: '\e809'; -} -.elfinder-button-icon-rm:before { - content: '\e80a'; -} -.elfinder-button-icon-trash:before { - content: '\e80b'; -} -.elfinder-button-icon-restore:before { - content: '\e80c'; -} -.elfinder-button-icon-copy:before { - content: '\e80d'; -} -.elfinder-button-icon-cut:before { - content: '\e80e'; -} -.elfinder-button-icon-paste:before { - content: '\e80f'; -} -.elfinder-button-icon-getfile:before { - content: '\e810'; -} -.elfinder-button-icon-duplicate:before { - content: '\e811'; -} -.elfinder-button-icon-rename:before { - content: '\e812'; -} -.elfinder-button-icon-edit:before { - content: '\e813'; -} -.elfinder-button-icon-quicklook:before { - content: '\e814'; -} -.elfinder-button-icon-upload:before { - content: '\e815'; -} -.elfinder-button-icon-download:before { - content: '\e816'; -} -.elfinder-button-icon-info:before { - content: '\e817'; -} -.elfinder-button-icon-extract:before { - content: '\e818'; -} -.elfinder-button-icon-archive:before { - content: '\e819'; -} -.elfinder-button-icon-view:before { - content: '\e81a'; -} -.elfinder-button-icon-view-list:before { - content: '\e81b'; -} -.elfinder-button-icon-help:before { - content: '\e81c'; -} -.elfinder-button-icon-resize:before { - content: '\e81d'; -} -.elfinder-button-icon-link:before { - content: '\e81e'; -} -.elfinder-button-icon-search:before { - content: '\e81f'; -} -.elfinder-button-icon-sort:before { - content: '\e820'; -} -.elfinder-button-icon-rotate-r:before { - content: '\e821'; -} -.elfinder-button-icon-rotate-l:before { - content: '\e822'; -} -.elfinder-button-icon-netmount:before { - content: '\e823'; -} -.elfinder-button-icon-netunmount:before { - content: '\e824'; -} -.elfinder-button-icon-places:before { - content: '\e825'; -} -.elfinder-button-icon-chmod:before { - content: '\e826'; -} -.elfinder-button-icon-accept:before { - content: '\e827'; -} -.elfinder-button-icon-menu:before { - content: '\e828'; -} -.elfinder-button-icon-colwidth:before { - content: '\e829'; -} -.elfinder-button-icon-fullscreen:before { - content: '\e82a'; -} -.elfinder-button-icon-unfullscreen:before { - content: '\e82b'; -} -.elfinder-button-icon-empty:before { - content: '\e82c'; -} -.elfinder-button-icon-undo:before { - content: '\e82d'; -} -.elfinder-button-icon-redo:before { - content: '\e82e'; -} -.elfinder-button-icon-preference:before { - content: '\e82f'; -} -.elfinder-button-icon-mkdirin:before { - content: '\e830'; -} -.elfinder-button-icon-selectall:before { - content: '\e831'; -} -.elfinder-button-icon-selectnone:before { - content: '\e832'; -} -.elfinder-button-icon-selectinvert:before { - content: '\e833'; -} -.elfinder-button-icon-theme:before { - content: '\e859'; -} -.elfinder-button-icon-logout:before { - content: '\e85a'; -} -.elfinder-button-icon-opennew:before { - content: '\e85b'; -} -.elfinder-button-search .ui-icon.ui-icon-search { - font-size: 17px; -} -.elfinder-button-search .ui-icon:hover { - opacity: 1; -} -.elfinder-navbar-icon { - font: normal normal normal 16px/1 material; - background-image: inherit !important; -} -.elfinder-navbar-icon:before { - content: '\e804'; -} -.elfinder-droppable-active .elfinder-navbar-icon:before, -.ui-state-active .elfinder-navbar-icon:before, -.ui-state-hover .elfinder-navbar-icon:before { - content: '\e805'; -} -.elfinder-navbar-root-local .elfinder-navbar-icon:before { - content: '\e83d'; -} -.elfinder-navbar-root-ftp .elfinder-navbar-icon:before { - content: '\e823'; -} -.elfinder-navbar-root-sql .elfinder-navbar-icon:before { - content: '\e83e'; -} -.elfinder-navbar-root-dropbox .elfinder-navbar-icon:before { - content: '\e83f'; -} -.elfinder-navbar-root-googledrive .elfinder-navbar-icon:before { - content: '\e840'; -} -.elfinder-navbar-root-onedrive .elfinder-navbar-icon:before { - content: '\e841'; -} -.elfinder-navbar-root-box .elfinder-navbar-icon:before { - content: '\e842'; -} -.elfinder-navbar-root-trash .elfinder-navbar-icon:before { - content: '\e80b'; -} -.elfinder-navbar-root-zip .elfinder-navbar-icon:before { - content: '\e85c'; -} -.elfinder-navbar-root-network .elfinder-navbar-icon:before { - content: '\e823'; -} -.elfinder-places .elfinder-navbar-root .elfinder-navbar-icon:before { - content: '\e825'; -} -.elfinder-navbar-arrow { - background-image: inherit !important; - font: normal normal normal 14px/1 material; - font-size: 10px; - padding-top: 3px; - padding-left: 2px; - color: #a9a9a9; -} -.ui-state-active .elfinder-navbar-arrow { - color: #fff; -} -.elfinder-ltr .elfinder-navbar-collapsed .elfinder-navbar-arrow:before { - content: '\e857'; -} -.elfinder-rtl .elfinder-navbar-collapsed .elfinder-navbar-arrow:before { - content: '\e858'; -} -.elfinder-ltr .elfinder-navbar-expanded .elfinder-navbar-arrow:before, -.elfinder-rtl .elfinder-navbar-expanded .elfinder-navbar-arrow:before { - content: '\e851'; -} -div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon { - font-size: 8px; - margin-top: 5px; - margin-right: 5px; -} -div.elfinder-cwd-wrapper-list .ui-icon-grip-dotted-vertical { - margin: 2px; -} -.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon, -.elfinder-navbar-root-local .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon, -.elfinder-navbar-root-ftp .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon, -.elfinder-navbar-root-sql .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon, -.elfinder-navbar-root-dropbox .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon, -.elfinder-navbar-root-googledrive .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon, -.elfinder-navbar-root-onedrive .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon, -.elfinder-navbar-root-box .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon, -.elfinder-navbar-root-trash .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon, -.elfinder-navbar-root-zip .elfinder-cwd-icon, -.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon, -.elfinder-navbar-root-network .elfinder-cwd-icon { - background-image: inherit; -} -.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon:before, -.elfinder-navbar-root-local .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon:before, -.elfinder-navbar-root-ftp .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon:before, -.elfinder-navbar-root-sql .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon:before, -.elfinder-navbar-root-dropbox .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon:before, -.elfinder-navbar-root-googledrive .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon:before, -.elfinder-navbar-root-onedrive .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon:before, -.elfinder-navbar-root-box .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon:before, -.elfinder-navbar-root-trash .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon:before, -.elfinder-navbar-root-zip .elfinder-cwd-icon:before, -.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon:before, -.elfinder-navbar-root-network .elfinder-cwd-icon:before { - font-family: material; - background-color: transparent; - color: #525252; - font-size: 55px; - position: relative; - top: -10px !important; - padding: 0; - display: contents !important; -} -.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon:before, -.elfinder-navbar-root-local .elfinder-cwd-icon:before { - content: '\e83d'; -} -.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon:before, -.elfinder-navbar-root-ftp .elfinder-cwd-icon:before { - content: '\e823'; -} -.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon:before, -.elfinder-navbar-root-sql .elfinder-cwd-icon:before { - content: '\e83e'; -} -.elfinder-cwd-view-list .elfinder-navbar-roor-dropbox td .elfinder-cwd-icon:before, -.elfinder-navbar-roor-dropbox .elfinder-cwd-icon:before { - content: '\e83f'; -} -.elfinder-cwd-view-list .elfinder-navbar-roor-googledrive td .elfinder-cwd-icon:before, -.elfinder-navbar-roor-googledrive .elfinder-cwd-icon:before { - content: '\e840'; -} -.elfinder-cwd-view-list .elfinder-navbar-roor-onedrive td .elfinder-cwd-icon:before, -.elfinder-navbar-roor-onedrive .elfinder-cwd-icon:before { - content: '\e841'; -} -.elfinder-cwd-view-list .elfinder-navbar-roor-box td .elfinder-cwd-icon:before, -.elfinder-navbar-roor-box .elfinder-cwd-icon:before { - content: '\e842'; -} -.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon:before, -.elfinder-navbar-root-trash .elfinder-cwd-icon:before { - content: '\e80b'; -} -.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon:before, -.elfinder-navbar-root-zip .elfinder-cwd-icon:before { - content: '\e85c'; -} -.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon:before, -.elfinder-navbar-root-network .elfinder-cwd-icon:before { - content: '\e823'; -} -.elfinder-dialog-icon { - font: normal normal normal 14px/1 material; - background: inherit; - color: #524949; - font-size: 37px; -} -.elfinder-dialog-icon:before { - content: '\e843'; -} -.elfinder-dialog-icon-mkdir:before { - content: '\e808'; -} -.elfinder-dialog-icon-mkfile:before { - content: '\e809'; -} -.elfinder-dialog-icon-copy:before { - content: '\e80d'; -} -.elfinder-dialog-icon-prepare:before, -.elfinder-dialog-icon-move:before { - content: '\e844'; -} -.elfinder-dialog-icon-upload:before, -.elfinder-dialog-icon-chunkmerge:before { - content: '\e815'; -} -.elfinder-dialog-icon-rm:before { - content: '\e80a'; -} -.elfinder-dialog-icon-open:before, -.elfinder-dialog-icon-readdir:before, -.elfinder-dialog-icon-file:before { - content: '\e807'; -} -.elfinder-dialog-icon-reload:before { - content: '\e806'; -} -.elfinder-dialog-icon-download:before { - content: '\e816'; -} -.elfinder-dialog-icon-save:before { - content: '\e845'; -} -.elfinder-dialog-icon-rename:before { - content: '\e812'; -} -.elfinder-dialog-icon-zipdl:before, -.elfinder-dialog-icon-archive:before { - content: '\e819'; -} -.elfinder-dialog-icon-extract:before { - content: '\e818'; -} -.elfinder-dialog-icon-search:before { - content: '\e81f'; -} -.elfinder-dialog-icon-loadimg:before { - content: '\e846'; -} -.elfinder-dialog-icon-url:before { - content: '\e81e'; -} -.elfinder-dialog-icon-resize:before { - content: '\e81d'; -} -.elfinder-dialog-icon-netmount:before { - content: '\e823'; -} -.elfinder-dialog-icon-netunmount:before { - content: '\e824'; -} -.elfinder-dialog-icon-chmod:before { - content: '\e826'; -} -.elfinder-dialog-icon-preupload:before, -.elfinder-dialog-icon-dim:before { - content: '\e847'; -} -.elfinder-contextmenu .elfinder-contextmenu-item span.elfinder-contextmenu-icon { - font-size: 16px; -} -.elfinder-contextmenu .elfinder-contextmenu-item .elfinder-contextsubmenu-item .ui-icon { - font-size: 15px; -} -.elfinder-contextmenu .elfinder-contextmenu-item .elfinder-button-icon-link:before { - content: '\e837'; -} -.elfinder .elfinder-contextmenu-extra-icon { - margin-top: -6px; -} -.elfinder .elfinder-contextmenu-extra-icon a { - padding: 5px; - margin: -16px; -} -.elfinder-button-icon-link:before { - content: '\e81e' !important; -} -.elfinder .elfinder-contextmenu-arrow { - font: normal normal normal 14px/1 material; - background-image: inherit; - font-size: 10px !important; - padding-top: 3px; -} -.elfinder .elfinder-contextmenu-arrow:before { - content: '\e857'; -} -.elfinder-contextmenu .ui-state-hover .elfinder-contextmenu-arrow { - background-image: inherit; -} -.elfinder-quicklook .ui-resizable-se { - background: inherit; -} -.elfinder-quicklook-navbar-icon { - background: transparent; - font: normal normal normal 14px/1 material; - font-size: 32px; - color: #fff; -} -.elfinder-quicklook-titlebar-icon { - margin-top: -8px; -} -.elfinder-quicklook-titlebar-icon .ui-icon { - border: 0; - opacity: .8; - font-size: 15px; - padding: 1px; -} -.elfinder-quicklook-titlebar .ui-icon-circle-close, -.elfinder-quicklook .ui-icon-gripsmall-diagonal-se { - color: #f1f1f1; -} -.elfinder-quicklook-navbar-icon-prev:before { - content: '\e848'; -} -.elfinder-quicklook-navbar-icon-next:before { - content: '\e849'; -} -.elfinder-quicklook-navbar-icon-fullscreen:before { - content: '\e84a'; -} -.elfinder-quicklook-navbar-icon-fullscreen-off:before { - content: '\e84b'; -} -.elfinder-quicklook-navbar-icon-close:before { - content: '\e84c'; -} -.ui-button-icon { - background-image: inherit; -} -.ui-icon-search:before { - content: '\e81f'; -} -.ui-icon-closethick:before, -.ui-icon-close:before { - content: '\e839'; -} -.ui-icon-circle-close:before { - content: '\e84c'; -} -.ui-icon-gear:before { - content: '\e82f'; -} -.ui-icon-gripsmall-diagonal-se:before { - content: '\e838'; -} -.ui-icon-locked:before { - content: '\e834'; -} -.ui-icon-unlocked:before { - content: '\e836'; -} -.ui-icon-arrowrefresh-1-n:before { - content: '\e821'; -} -.ui-icon-plusthick:before { - content: '\e83a'; -} -.ui-icon-arrowreturnthick-1-s:before { - content: '\e83b'; -} -.ui-icon-minusthick:before { - content: '\e83c'; -} -.ui-icon-pin-s:before { - content: '\e84d'; -} -.ui-icon-check:before { - content: '\e84e'; -} -.ui-icon-arrowthick-1-s:before { - content: '\e84f'; -} -.ui-icon-arrowthick-1-n:before { - content: '\e850'; -} -.ui-icon-triangle-1-s:before { - content: '\e851'; -} -.ui-icon-triangle-1-n:before { - content: '\e852'; -} -.ui-icon-grip-dotted-vertical:before { - content: '\e853'; -} -.elfinder-lock, -.elfinder-perms, -.elfinder-symlink { - background-image: inherit; - font: normal normal normal 18px/1 material; - color: #4d4d4d; -} -.elfinder-na .elfinder-perms:before { - content: '\e824'; -} -.elfinder-ro .elfinder-perms:before { - content: '\e835'; -} -.elfinder-wo .elfinder-perms:before { - content: '\e854'; -} -.elfinder-group .elfinder-perms:before { - content: '\e800'; -} -.elfinder-lock:before { - content: '\e834'; -} -.elfinder-symlink:before { - content: '\e837'; -} -.elfinder .elfinder-toast > div { - font: normal normal normal 14px/1 material; -} -.elfinder .elfinder-toast > div:before { - font-size: 45px; - position: absolute; - left: 5px; - top: 15px; -} -.elfinder .elfinder-toast > .toast-info, -.elfinder .elfinder-toast > .toast-error, -.elfinder .elfinder-toast > .toast-success, -.elfinder .elfinder-toast > .toast-warning { - background-image: inherit !important; -} -.elfinder .elfinder-toast > .toast-info:before { - content: '\e817'; - color: #3498db; -} -.elfinder .elfinder-toast > .toast-error:before { - content: '\e855'; - color: #f44336; -} -.elfinder .elfinder-toast > .toast-success:before { - content: '\e84e'; - color: #4caf50; -} -.elfinder .elfinder-toast > .toast-warning:before { - content: '\e856'; - color: #ff9800; -} -.elfinder-drag-helper-icon-status { - font: normal normal normal 14px/1 material; - background: inherit; -} -.elfinder-drag-helper-icon-status:before { - content: '\e824'; -} -.elfinder-drag-helper-move .elfinder-drag-helper-icon-status { - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - -moz-transform: rotate(180deg); - -o-transform: rotate(180deg); - transform: rotate(180deg); -} -.elfinder-drag-helper-move .elfinder-drag-helper-icon-status:before { - content: '\e854'; -} -.elfinder-drag-helper-plus .elfinder-drag-helper-icon-status { - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - -moz-transform: rotate(90deg); - -o-transform: rotate(90deg); - transform: rotate(90deg); -} -.elfinder-drag-helper-plus .elfinder-drag-helper-icon-status:before { - content: '\e84c'; -} -/** - * MIME Types - */ -.elfinder-cwd-view-list td .elfinder-cwd-icon { - background-image: url("../images/icons-small.png"); -} -.elfinder-cwd-icon { - background: url("../images/icons-big.png") 0 0 no-repeat; -} -.elfinder-cwd-icon:before { - font-size: 10px; - position: relative; - top: 27px; - left: inherit; - padding: 1px; - background-color: transparent; -} -.elfinder-info-title .elfinder-cwd-icon:before { - top: 32px; - display: block; - margin: 0 auto; -} -.elfinder-info-title .elfinder-cwd-icon.elfinder-cwd-bgurl:before { - background-color: #313131 !important; -} -.elfinder-cwd-view-icons .elfinder-cwd-icon.elfinder-cwd-bgurl:before { - left: inherit; - background-color: #313131; -} -.elfinder-quicklook .elfinder-cwd-icon:before { - top: 33px; - left: 50% !important; - position: relative; - display: block; - -webkit-transform: translateX(-50%); - -ms-transform: translateX(-50%); - -moz-transform: translateX(-50%); - -o-transform: translateX(-50%); - transform: translateX(-50%); -} -.elfinder-cwd-icon-zip:before, -.elfinder-cwd-icon-x-zip:before { - content: 'zip' !important; -} -.elfinder-cwd-icon-x-xz:before { - content: 'xz' !important; -} -.elfinder-cwd-icon-x-7z-compressed:before { - content: '7z' !important; -} -.elfinder-cwd-icon-x-gzip:before { - content: 'gzip' !important; -} -.elfinder-cwd-icon-x-tar:before { - content: 'tar' !important; -} -.elfinder-cwd-icon-x-bzip:before, -.elfinder-cwd-icon-x-bzip2:before { - content: 'bzip' !important; -} -.elfinder-cwd-icon-x-rar:before, -.elfinder-cwd-icon-x-rar-compressed:before { - content: 'rar' !important; -} -.elfinder-cwd-icon-directory { - background-position: 0 -50px; -} -.elfinder-cwd-icon-application { - background-position: 0 -150px; -} -.elfinder-cwd-icon-text { - background-position: 0 -200px; -} -.elfinder-cwd-icon-plain, -.elfinder-cwd-icon-x-empty { - background-position: 0 -250px; -} -.elfinder-cwd-icon-image { - background-position: 0 -300px; -} -.elfinder-cwd-icon-vnd-adobe-photoshop { - background-position: 0 -350px; -} -.elfinder-cwd-icon-vnd-adobe-photoshop:before { - content: none !important; -} -.elfinder-cwd-icon-postscript { - background-position: 0 -400px; -} -.elfinder-cwd-icon-audio { - background-position: 0 -450px; -} -.elfinder-cwd-icon-video, -.elfinder-cwd-icon-flash-video, -.elfinder-cwd-icon-dash-xml, -.elfinder-cwd-icon-vnd-apple-mpegurl, -.elfinder-cwd-icon-x-mpegurl { - background-position: 0 -500px; -} -.elfinder-cwd-icon-rtf, -.elfinder-cwd-icon-rtfd { - background-position: 0 -550px; -} -.elfinder-cwd-icon-pdf { - background-position: 0 -600px; -} -.elfinder-cwd-icon-x-msaccess { - background-position: 0 -650px; -} -.elfinder-cwd-icon-x-msaccess:before { - content: none !important; -} -.elfinder-cwd-icon-msword, -.elfinder-cwd-icon-vnd-ms-word, -.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12 { - background-position: 0 -700px; -} -.elfinder-cwd-icon-msword:before, -.elfinder-cwd-icon-vnd-ms-word:before, -.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12:before { - content: none !important; -} -.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 { - background-position: 0 -750px; -} -.elfinder-cwd-icon-ms-excel:before, -.elfinder-cwd-icon-vnd-ms-excel:before, -.elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12:before { - content: none !important; -} -.elfinder-cwd-icon-vnd-ms-powerpoint, -.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12, -.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12 { - background-position: 0 -800px; -} -.elfinder-cwd-icon-vnd-ms-powerpoint:before, -.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12:before, -.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12:before { - content: none !important; -} -.elfinder-cwd-icon-vnd-ms-office, -.elfinder-cwd-icon-vnd-oasis-opendocument-chart, -.elfinder-cwd-icon-vnd-oasis-opendocument-database, -.elfinder-cwd-icon-vnd-oasis-opendocument-formula, -.elfinder-cwd-icon-vnd-oasis-opendocument-graphics, -.elfinder-cwd-icon-vnd-oasis-opendocument-graphics-template, -.elfinder-cwd-icon-vnd-oasis-opendocument-image, -.elfinder-cwd-icon-vnd-oasis-opendocument-presentation, -.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template, -.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet, -.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template, -.elfinder-cwd-icon-vnd-oasis-opendocument-text, -.elfinder-cwd-icon-vnd-oasis-opendocument-text-master, -.elfinder-cwd-icon-vnd-oasis-opendocument-text-template, -.elfinder-cwd-icon-vnd-oasis-opendocument-text-web, -.elfinder-cwd-icon-vnd-openofficeorg-extension, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slideshow, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-template, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-document, -.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-template { - background-position: 0 -850px; -} -.elfinder-cwd-icon-html { - background-position: 0 -900px; -} -.elfinder-cwd-icon-css { - background-position: 0 -950px; -} -.elfinder-cwd-icon-javascript, -.elfinder-cwd-icon-x-javascript { - background-position: 0 -1000px; -} -.elfinder-cwd-icon-x-perl { - background-position: 0 -1050px; -} -.elfinder-cwd-icon-x-python:after, -.elfinder-cwd-icon-x-python { - background-position: 0 -1100px; -} -.elfinder-cwd-icon-x-ruby { - background-position: 0 -1150px; -} -.elfinder-cwd-icon-x-sh, -.elfinder-cwd-icon-x-shellscript { - background-position: 0 -1200px; -} -.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 { - background-position: 0 -1250px; -} -.elfinder-cwd-icon-x-jar, -.elfinder-cwd-icon-x-java, -.elfinder-cwd-icon-x-java-source { - background-position: 0 -1300px; -} -.elfinder-cwd-icon-x-jar:before, -.elfinder-cwd-icon-x-java:before, -.elfinder-cwd-icon-x-java-source:before { - content: none !important; -} -.elfinder-cwd-icon-x-php { - background-position: 0 -1350px; -} -.elfinder-cwd-icon-xml:after, -.elfinder-cwd-icon-xml { - background-position: 0 -1400px; -} -.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, -.elfinder-cwd-icon-x-rar-compressed { - background-position: 0 -1450px; -} -.elfinder-cwd-icon-x-shockwave-flash { - background-position: 0 -1500px; -} -.elfinder-cwd-icon-group { - background-position: 0 -1550px; -} -.elfinder-cwd-icon-json { - background-position: 0 -1600px; -} -.elfinder-cwd-icon-json:before { - content: none !important; -} -.elfinder-cwd-icon-markdown, -.elfinder-cwd-icon-x-markdown { - background-position: 0 -1650px; -} -.elfinder-cwd-icon-markdown:before, -.elfinder-cwd-icon-x-markdown:before { - content: none !important; -} -.elfinder-cwd-icon-sql { - background-position: 0 -1700px; -} -.elfinder-cwd-icon-sql:before { - content: none !important; -} -.elfinder-cwd-icon-svg, -.elfinder-cwd-icon-svg-xml { - background-position: 0 -1750px; -} -.elfinder-cwd-icon-svg:before, -.elfinder-cwd-icon-svg-xml:before { - content: none !important; -} -/** - * Toolbar - */ -.elfinder-toolbar { - background: #061325; - -webkit-border-radius: 0; - border-radius: 0; - border: 0; - padding: 5px 0; -} -.elfinder-buttonset { - -webkit-border-radius: 0; - border-radius: 0; - border: 0; - margin: 0 5px; - height: 24px; -} -.elfinder .elfinder-button { - background: transparent; - -webkit-border-radius: 0; - border-radius: 0; - cursor: pointer; - color: #efefef; -} -.elfinder-toolbar-button-separator { - border: 0; -} -.elfinder-button-menu { - -webkit-border-radius: 2px; - border-radius: 2px; - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); - box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); - border: none; - margin-top: 5px; -} -.elfinder-button-menu-item { - color: #666; - padding: 6px 19px; -} -.elfinder-button-menu-item.ui-state-hover { - color: #141414; - background-color: #f5f4f4; -} -.elfinder-button-menu-item-separated { - border-top: 1px solid #e5e5e5; -} -.elfinder-button-menu-item-separated.ui-state-hover { - border-top: 1px solid #e5e5e5; -} -.elfinder .elfinder-button-search { - margin: 0 10px; - min-height: inherit; - overflow: hidden; -} -.elfinder .elfinder-button-search input { - background: rgba(22, 43, 76, 0.75); - -webkit-border-radius: 2px; - border-radius: 2px; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - border: 0; - margin: 0; - padding: 0 23px; - height: 24px; - color: #fff; -} -.elfinder .elfinder-button-search .elfinder-button-menu { - margin-top: 4px; - border: none; - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); -} -/** - * Navbar - */ -.elfinder .elfinder-navbar { - background: #2a384d; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); - border: none; -} -.elfinder-navbar-dir { - color: #e6e6e6; - cursor: pointer; - -webkit-border-radius: 2px; - border-radius: 2px; - padding: 5px; - border: none; -} -.elfinder-navbar-dir.ui-state-hover, -.elfinder-navbar-dir.ui-state-active.ui-state-hover { - background: #17202c; - color: #e6e6e6; - border: none; -} -.elfinder-navbar .ui-state-active, -.elfinder-disabled .elfinder-navbar .ui-state-active { - background: #1b2533; - border: none; -} -/** - * Workzone - */ -.elfinder-workzone { - background: #0e1827; -} -.elfinder-cwd-file { - color: #ddd; -} -.elfinder-cwd-file.ui-state-hover, -.elfinder-cwd-file.ui-selected.ui-state-hover { - background: #1a283c; - color: #ddd; -} -.elfinder-cwd-file.ui-selected { - background: #152131; - color: #ddd; - width: 120px !important; -} -.elfinder-cwd-filename input, -.elfinder-cwd-filename textarea { - padding: 2px; - -webkit-border-radius: 2px !important; - border-radius: 2px !important; - width: 100px !important; - background: #fff; - color: #222; -} -.elfinder-cwd-filename input:focus, -.elfinder-cwd-filename textarea:focus { - outline: none; - border: 1px solid #555; -} -.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-hover, -.elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover, -.elfinder-disabled .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover, -.elfinder-disabled .elfinder-cwd table td.ui-state-hover, -.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-active { - background: transparent; - color: #ddd; -} -.elfinder-cwd table { - padding: 0; -} -.elfinder-cwd table tr:nth-child(odd) { - background-color: transparent; -} -.elfinder-cwd table tr:nth-child(odd).ui-state-hover { - background-color: #1a283c; -} -#elfinder-elfinder-cwd-thead td { - background: #010e21; - color: #ddd; -} -#elfinder-elfinder-cwd-thead td.ui-state-hover, -#elfinder-elfinder-cwd-thead td.ui-state-active { - background: #010a17; -} -#elfinder-elfinder-cwd-thead td.ui-state-active.ui-state-hover { - background: #010812; -} -.ui-selectable-helper { - border: 1px solid #022861; - background-color: rgba(3, 62, 150, 0.38); -} -.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash { - background-color: #e4e4e4; -} -.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file { - color: #333; -} -.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-state-hover, -.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-selected.ui-state-hover { - background: #1a283c; - color: #ddd; -} -.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-selected { - background: #152131; - color: #ddd; -} -/** - * Status Bar - */ -.elfinder .elfinder-statusbar { - background: #061325; - -webkit-border-radius: 0; - border-radius: 0; - border: 0; - color: #cfd2d4; -} -.elfinder-path, -.elfinder-stat-size { - margin: 0 15px; -} -/** - * Buttons - */ -.ui-button, -.ui-button:active, -.ui-button.ui-state-default { - display: inline-block; - font-weight: normal; - text-align: center; - vertical-align: middle; - cursor: pointer; - white-space: nowrap; - -webkit-border-radius: 3px; - border-radius: 3px; - text-transform: uppercase; - -webkit-box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.4); - box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.4); - -webkit-transition: all 0.4s; - -o-transition: all 0.4s; - -moz-transition: all 0.4s; - transition: all 0.4s; - background: #fff; - color: #222; - border: none; -} -.ui-button .ui-icon, -.ui-button:active .ui-icon, -.ui-button.ui-state-default .ui-icon { - color: #222; -} -.ui-button:hover, -a.ui-button:active, -.ui-button:active, -.ui-button:focus, -.ui-button.ui-state-hover, -.ui-button.ui-state-active { - background: #3498db; - color: #fff; - border: none; -} -.ui-button:hover .ui-icon, -a.ui-button:active .ui-icon, -.ui-button:active .ui-icon, -.ui-button:focus .ui-icon, -.ui-button.ui-state-hover .ui-icon, -.ui-button.ui-state-active .ui-icon { - color: #fff; -} -.ui-button.ui-state-active:hover { - background: #217dbb; - color: #fff; - border: none; -} -.ui-button:focus { - outline: none !important; -} -.ui-controlgroup-horizontal .ui-button { - -webkit-border-radius: 0; - border-radius: 0; - border: 0; -} -/** - * Context Menu - */ -.elfinder .elfinder-contextmenu, -.elfinder .elfinder-contextmenu-sub { - -webkit-border-radius: 2px; - border-radius: 2px; - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); - box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); - border: none; -} -.elfinder .elfinder-contextmenu-separator, -.elfinder .elfinder-contextmenu-sub-separator { - border-top: 1px solid #e5e5e5; -} -.elfinder .elfinder-contextmenu-item { - color: #666; - padding: 5px 30px; -} -.elfinder .elfinder-contextmenu-item.ui-state-hover { - background-color: #f5f4f4; - color: #141414; -} -.elfinder .elfinder-contextmenu-item.ui-state-active { - background-color: #2196f3; - color: #fff; -} -/** - * Dialogs - */ -.elfinder .elfinder-dialog { - -webkit-border-radius: 0; - border-radius: 0; - border: 0; - -webkit-box-shadow: 0 1px 30px rgba(0, 0, 0, 0.6); - box-shadow: 0 1px 30px rgba(0, 0, 0, 0.6); -} -.elfinder .elfinder-dialog .ui-dialog-content[id*="edit-elfinder-elfinder-"] { - padding: 0; -} -.elfinder .elfinder-dialog .ui-tabs { - -webkit-border-radius: 0; - border-radius: 0; - border: 0; -} -.elfinder .elfinder-dialog .ui-tabs-nav { - -webkit-border-radius: 0; - border-radius: 0; - border: 0; - background: transparent; - border-bottom: 1px solid #ddd; -} -.elfinder .elfinder-dialog .ui-tabs-nav li { - border: 0; - font-weight: normal; - background: transparent; - margin: 0; - padding: 3px 0; -} -.elfinder .elfinder-dialog .ui-tabs-nav li.ui-tabs-active { - padding-bottom: 7px; -} -.elfinder .elfinder-dialog .ui-tabs-nav .ui-tabs-selected a, -.elfinder .elfinder-dialog .ui-tabs-nav .ui-state-active a, -.elfinder .elfinder-dialog .ui-tabs-nav li:hover a { - -webkit-box-shadow: inset 0 -2px 0 #3498db; - box-shadow: inset 0 -2px 0 #3498db; - color: #3498db; -} -.elfinder .elfinder-dialog .ui-tabs .elfinder-tabstop.ui-state-hover { - background: transparent; - -webkit-box-shadow: inset 0 -2px 0 #3498db; - box-shadow: inset 0 -2px 0 #3498db; - color: #3498db; -} -.elfinder .elfinder-dialog label.ui-state-hover { - background: transparent; -} -.std42-dialog .ui-dialog-titlebar { - background: #0f1f2f; - -webkit-border-radius: 0; - border-radius: 0; - border: 0; -} -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon { - border-color: inherit; - -webkit-transition: 0.2s ease-out; - -o-transition: 0.2s ease-out; - -moz-transition: 0.2s ease-out; - transition: 0.2s ease-out; - opacity: 0.8; - color: #fff; - width: auto; - height: auto; - font-size: 12px; - padding: 3px; -} -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon, -.std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover .ui-icon { - background-color: #f44336; -} -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full .ui-icon, -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full:hover .ui-icon { - background-color: #4caf50; -} -.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize .ui-icon, -.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize:hover .ui-icon { - background-color: #ff9800; -} -.elfinder-dialog-title { - color: #f1f1f1; -} -.std42-dialog .ui-dialog-content { - background: #fff; -} -.ui-widget-content { - font-family: "Noto Sans", sans-serif; - color: #546e7a; -} -.std42-dialog .ui-dialog-buttonpane button { - margin: 2px; - padding: .4em .5em; -} -.std42-dialog .ui-dialog-buttonpane button span.ui-icon { - padding: 0; -} -.elfinder-upload-dialog-wrapper .elfinder-upload-dirselect { - width: inherit; - height: inherit; - padding: .4em; - margin-left: 5px; - color: #222; -} -.elfinder-upload-dialog-wrapper .elfinder-upload-dirselect.ui-state-hover { - background: #888; - color: #fff; - outline: none; - -webkit-border-radius: 2px; - border-radius: 2px; -} -.elfinder-upload-dialog-wrapper .ui-button { - padding: .4em 3px; - margin: 0 2px; -} -.elfinder-upload-dialog-wrapper .ui-button { - margin-left: 19px; - margin-right: -15px; -} -.elfinder-upload-dropbox { - border: 2px dashed #bbb; -} -.elfinder-upload-dropbox:focus { - outline: none; -} -.elfinder-upload-dropbox.ui-state-hover { - background: #f1f1f1; - border: 2px dashed #bbb; -} -.elfinder-help *, -.elfinder-help a { - color: #546e7a; -} diff --git a/apps/static/plugins/elfinder/css/theme.min.css b/apps/static/plugins/elfinder/css/theme.min.css deleted file mode 100644 index b37ddd3ec..000000000 --- a/apps/static/plugins/elfinder/css/theme.min.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:'Noto Sans';font-style:italic;font-weight:400;src:local('Noto Sans Italic'), local('NotoSans-Italic'), url(https://fonts.gstatic.com/s/notosans/v7/o-0OIpQlx3QUlC5A4PNr4DRF.ttf) format('truetype')}@font-face{font-family:'Noto Sans';font-style:italic;font-weight:700;src:local('Noto Sans Bold Italic'), local('NotoSans-BoldItalic'), url(https://fonts.gstatic.com/s/notosans/v7/o-0TIpQlx3QUlC5A4PNr4Az5ZtyE.ttf) format('truetype')}@font-face{font-family:'Noto Sans';font-style:normal;font-weight:400;src:local('Noto Sans'), local('NotoSans'), url(https://fonts.gstatic.com/s/notosans/v7/o-0IIpQlx3QUlC5A4PNb4g.ttf) format('truetype')}@font-face{font-family:'Noto Sans';font-style:normal;font-weight:700;src:local('Noto Sans Bold'), local('NotoSans-Bold'), url(https://fonts.gstatic.com/s/notosans/v7/o-0NIpQlx3QUlC5A4PNjXhFlYw.ttf) format('truetype')}.elfinder{color:#546e7a;font-family:"Noto Sans", sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.elfinder.ui-widget.ui-widget-content{font-family:"Noto Sans", sans-serif;-webkit-box-shadow:0 1px 8px rgba(0, 0, 0, 0.6);box-shadow:0 1px 8px rgba(0, 0, 0, 0.6);-webkit-border-radius:0;border-radius:0;border:0}.elfinder *{outline:0!important}input.elfinder-tabstop,input.elfinder-tabstop.ui-state-hover,select.elfinder-tabstop,select.elfinder-tabstop.ui-state-hover{padding:5px;color:#666;background:#fff;-webkit-border-radius:3px;border-radius:3px;font-weight:normal;border-color:#888;-webkit-box-shadow:none!important;box-shadow:none!important}.elfinder-button-icon-spinner,.elfinder-info-spinner,.elfinder-navbar-spinner{background:url("../images/loading.svg") center center no-repeat!important;width:16px;height:16px}@-webkit-keyframes progress-animation{0%{background-position:1rem 0}to{background-position:0 0}}@-moz-keyframes progress-animation{0%{background-position:1rem 0}to{background-position:0 0}}@-o-keyframes progress-animation{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-animation{0%{background-position:1rem 0}to{background-position:0 0}}.elfinder-notify-progressbar{border:0}.elfinder-notify-progress,.elfinder-notify-progressbar{-webkit-border-radius:0;border-radius:0}.elfinder-notify-progress,.elfinder-resize-spinner{background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:1rem 1rem;-o-background-size:1rem 1rem;background-size:1rem 1rem;-webkit-animation:progress-animation 1s linear infinite;-moz-animation:progress-animation 1s linear infinite;-o-animation:progress-animation 1s linear infinite;animation:progress-animation 1s linear infinite;background-color:#0275d8;height:1rem}.elfinder-quicklook{background:#232323;-webkit-border-radius:2px;border-radius:2px}.elfinder-quicklook-titlebar{background:inherit}.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar{border:inherit;opacity:inherit;-webkit-border-radius:4px;border-radius:4px;background:rgba(66, 66, 66, 0.73)}.elfinder .elfinder-navdock{border:0}.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-close,.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-full,.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-minimize,.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full .ui-icon,.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize .ui-icon,.elfinder-mobile .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon,.elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-close:hover,.elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-full:hover,.elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-minimize:hover,.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full:hover .ui-icon,.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize:hover .ui-icon,.std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover .ui-icon{background-image:none}.elfinder .elfinder-toast>div{background-color:#323232!important;color:#d6d6d6;-webkit-box-shadow:none;box-shadow:none;opacity:inherit;padding:10px 60px}.elfinder .elfinder-toast>div button.ui-button{color:#fff}.elfinder .elfinder-toast>.toast-info button.ui-button{background-color:#3498db}.elfinder .elfinder-toast>.toast-error button.ui-button{background-color:#f44336}.elfinder .elfinder-toast>.toast-success button.ui-button{background-color:#4caf50}.elfinder .elfinder-toast>.toast-warning button.ui-button{background-color:#ff9800}.elfinder-toast-msg{font-family:"Noto Sans", sans-serif;font-size:17px}#ace_settingsmenu{font-family:"Noto Sans", sans-serif;-webkit-box-shadow:0 1px 30px rgba(0, 0, 0, 0.6)!important;box-shadow:0 1px 30px rgba(0, 0, 0, 0.6)!important;background-color:#1d2736!important;color:#e6e6e6!important}#ace_settingsmenu,#kbshortcutmenu{padding:0}.ace_optionsMenuEntry{padding:5px 10px}.ace_optionsMenuEntry:hover{background-color:#111721}.ace_optionsMenuEntry label{font-size:13px}#ace_settingsmenu input[type=text],#ace_settingsmenu select{margin:1px 2px 2px;padding:2px 5px;-webkit-border-radius:3px;border-radius:3px;border:0;background:rgba(9, 53, 121, 0.75);color:white}@font-face{font-family:material;src:url("../icons/material.eot?7028746");src:url("../icons/material.eot?7028746#iefix") format("embedded-opentype"), url("../icons/material.woff2?7028746") format("woff2"), url("../icons/material.woff?7028746") format("woff"), url("../icons/material.ttf?7028746") format("truetype"), url("../icons/material.svg?7028746#material") format("svg");font-weight:normal;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio:0){@font-face{font-family:material;src:url("../icons/material.svg?7028746#material") format("svg")}}.elfinder-button-icon,.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon{font:normal normal normal 14px/1 material;background-image:inherit;text-indent:inherit}.ui-button-icon-only .ui-icon{font:normal normal normal 14px/1 material;background-image:inherit!important;text-indent:0;font-size:16px}.elfinder-toolbar .elfinder-button-icon{font-size:20px;color:#ddd;margin-top:-2px}.elfinder-button-icon{background:inherit}.elfinder-button-icon-home:before{content:'\e800'}.elfinder-button-icon-back:before{content:'\e801'}.elfinder-button-icon-forward:before{content:'\e802'}.elfinder-button-icon-up:before{content:'\e803'}.elfinder-button-icon-dir:before{content:'\e804'}.elfinder-button-icon-opendir:before{content:'\e805'}.elfinder-button-icon-reload:before{content:'\e806'}.elfinder-button-icon-open:before{content:'\e807'}.elfinder-button-icon-mkdir:before{content:'\e808'}.elfinder-button-icon-mkfile:before{content:'\e809'}.elfinder-button-icon-rm:before{content:'\e80a'}.elfinder-button-icon-trash:before{content:'\e80b'}.elfinder-button-icon-restore:before{content:'\e80c'}.elfinder-button-icon-copy:before{content:'\e80d'}.elfinder-button-icon-cut:before{content:'\e80e'}.elfinder-button-icon-paste:before{content:'\e80f'}.elfinder-button-icon-getfile:before{content:'\e810'}.elfinder-button-icon-duplicate:before{content:'\e811'}.elfinder-button-icon-rename:before{content:'\e812'}.elfinder-button-icon-edit:before{content:'\e813'}.elfinder-button-icon-quicklook:before{content:'\e814'}.elfinder-button-icon-upload:before{content:'\e815'}.elfinder-button-icon-download:before{content:'\e816'}.elfinder-button-icon-info:before{content:'\e817'}.elfinder-button-icon-extract:before{content:'\e818'}.elfinder-button-icon-archive:before{content:'\e819'}.elfinder-button-icon-view:before{content:'\e81a'}.elfinder-button-icon-view-list:before{content:'\e81b'}.elfinder-button-icon-help:before{content:'\e81c'}.elfinder-button-icon-resize:before{content:'\e81d'}.elfinder-button-icon-link:before{content:'\e81e'}.elfinder-button-icon-search:before{content:'\e81f'}.elfinder-button-icon-sort:before{content:'\e820'}.elfinder-button-icon-rotate-r:before{content:'\e821'}.elfinder-button-icon-rotate-l:before{content:'\e822'}.elfinder-button-icon-netmount:before{content:'\e823'}.elfinder-button-icon-netunmount:before{content:'\e824'}.elfinder-button-icon-places:before{content:'\e825'}.elfinder-button-icon-chmod:before{content:'\e826'}.elfinder-button-icon-accept:before{content:'\e827'}.elfinder-button-icon-menu:before{content:'\e828'}.elfinder-button-icon-colwidth:before{content:'\e829'}.elfinder-button-icon-fullscreen:before{content:'\e82a'}.elfinder-button-icon-unfullscreen:before{content:'\e82b'}.elfinder-button-icon-empty:before{content:'\e82c'}.elfinder-button-icon-undo:before{content:'\e82d'}.elfinder-button-icon-redo:before{content:'\e82e'}.elfinder-button-icon-preference:before{content:'\e82f'}.elfinder-button-icon-mkdirin:before{content:'\e830'}.elfinder-button-icon-selectall:before{content:'\e831'}.elfinder-button-icon-selectnone:before{content:'\e832'}.elfinder-button-icon-selectinvert:before{content:'\e833'}.elfinder-button-icon-theme:before{content:'\e859'}.elfinder-button-icon-logout:before{content:'\e85a'}.elfinder-button-icon-opennew:before{content:'\e85b'}.elfinder-button-search .ui-icon.ui-icon-search{font-size:17px}.elfinder-button-search .ui-icon:hover{opacity:1}.elfinder-navbar-icon{font:normal normal normal 16px/1 material;background-image:inherit!important}.elfinder-navbar-icon:before{content:'\e804'}.elfinder-droppable-active .elfinder-navbar-icon:before,.ui-state-active .elfinder-navbar-icon:before,.ui-state-hover .elfinder-navbar-icon:before{content:'\e805'}.elfinder-navbar-root-local .elfinder-navbar-icon:before{content:'\e83d'}.elfinder-navbar-root-ftp .elfinder-navbar-icon:before{content:'\e823'}.elfinder-navbar-root-sql .elfinder-navbar-icon:before{content:'\e83e'}.elfinder-navbar-root-dropbox .elfinder-navbar-icon:before{content:'\e83f'}.elfinder-navbar-root-googledrive .elfinder-navbar-icon:before{content:'\e840'}.elfinder-navbar-root-onedrive .elfinder-navbar-icon:before{content:'\e841'}.elfinder-navbar-root-box .elfinder-navbar-icon:before{content:'\e842'}.elfinder-navbar-root-trash .elfinder-navbar-icon:before{content:'\e80b'}.elfinder-navbar-root-zip .elfinder-navbar-icon:before{content:'\e85c'}.elfinder-navbar-root-network .elfinder-navbar-icon:before{content:'\e823'}.elfinder-places .elfinder-navbar-root .elfinder-navbar-icon:before{content:'\e825'}.elfinder-navbar-arrow{background-image:inherit!important;font:normal normal normal 14px/1 material;font-size:10px;padding-top:3px;padding-left:2px;color:#a9a9a9}.ui-state-active .elfinder-navbar-arrow{color:#fff}.elfinder-ltr .elfinder-navbar-collapsed .elfinder-navbar-arrow:before{content:'\e857'}.elfinder-rtl .elfinder-navbar-collapsed .elfinder-navbar-arrow:before{content:'\e858'}.elfinder-ltr .elfinder-navbar-expanded .elfinder-navbar-arrow:before,.elfinder-rtl .elfinder-navbar-expanded .elfinder-navbar-arrow:before{content:'\e851'}div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon{font-size:8px;margin-top:5px;margin-right:5px}div.elfinder-cwd-wrapper-list .ui-icon-grip-dotted-vertical{margin:2px}.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon,.elfinder-navbar-root-box .elfinder-cwd-icon,.elfinder-navbar-root-dropbox .elfinder-cwd-icon,.elfinder-navbar-root-ftp .elfinder-cwd-icon,.elfinder-navbar-root-googledrive .elfinder-cwd-icon,.elfinder-navbar-root-local .elfinder-cwd-icon,.elfinder-navbar-root-network .elfinder-cwd-icon,.elfinder-navbar-root-onedrive .elfinder-cwd-icon,.elfinder-navbar-root-sql .elfinder-cwd-icon,.elfinder-navbar-root-trash .elfinder-cwd-icon,.elfinder-navbar-root-zip .elfinder-cwd-icon{background-image:inherit}.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon:before,.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon:before,.elfinder-navbar-root-box .elfinder-cwd-icon:before,.elfinder-navbar-root-dropbox .elfinder-cwd-icon:before,.elfinder-navbar-root-ftp .elfinder-cwd-icon:before,.elfinder-navbar-root-googledrive .elfinder-cwd-icon:before,.elfinder-navbar-root-local .elfinder-cwd-icon:before,.elfinder-navbar-root-network .elfinder-cwd-icon:before,.elfinder-navbar-root-onedrive .elfinder-cwd-icon:before,.elfinder-navbar-root-sql .elfinder-cwd-icon:before,.elfinder-navbar-root-trash .elfinder-cwd-icon:before,.elfinder-navbar-root-zip .elfinder-cwd-icon:before{font-family:material;background-color:transparent;color:#525252;font-size:55px;position:relative;top:-10px!important;padding:0;display:contents!important}.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon:before,.elfinder-navbar-root-local .elfinder-cwd-icon:before{content:'\e83d'}.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon:before,.elfinder-navbar-root-ftp .elfinder-cwd-icon:before{content:'\e823'}.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon:before,.elfinder-navbar-root-sql .elfinder-cwd-icon:before{content:'\e83e'}.elfinder-cwd-view-list .elfinder-navbar-roor-dropbox td .elfinder-cwd-icon:before,.elfinder-navbar-roor-dropbox .elfinder-cwd-icon:before{content:'\e83f'}.elfinder-cwd-view-list .elfinder-navbar-roor-googledrive td .elfinder-cwd-icon:before,.elfinder-navbar-roor-googledrive .elfinder-cwd-icon:before{content:'\e840'}.elfinder-cwd-view-list .elfinder-navbar-roor-onedrive td .elfinder-cwd-icon:before,.elfinder-navbar-roor-onedrive .elfinder-cwd-icon:before{content:'\e841'}.elfinder-cwd-view-list .elfinder-navbar-roor-box td .elfinder-cwd-icon:before,.elfinder-navbar-roor-box .elfinder-cwd-icon:before{content:'\e842'}.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon:before,.elfinder-navbar-root-trash .elfinder-cwd-icon:before{content:'\e80b'}.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon:before,.elfinder-navbar-root-zip .elfinder-cwd-icon:before{content:'\e85c'}.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon:before,.elfinder-navbar-root-network .elfinder-cwd-icon:before{content:'\e823'}.elfinder-dialog-icon{font:normal normal normal 14px/1 material;background:inherit;color:#524949;font-size:37px}.elfinder-dialog-icon:before{content:'\e843'}.elfinder-dialog-icon-mkdir:before{content:'\e808'}.elfinder-dialog-icon-mkfile:before{content:'\e809'}.elfinder-dialog-icon-copy:before{content:'\e80d'}.elfinder-dialog-icon-move:before,.elfinder-dialog-icon-prepare:before{content:'\e844'}.elfinder-dialog-icon-chunkmerge:before,.elfinder-dialog-icon-upload:before{content:'\e815'}.elfinder-dialog-icon-rm:before{content:'\e80a'}.elfinder-dialog-icon-file:before,.elfinder-dialog-icon-open:before,.elfinder-dialog-icon-readdir:before{content:'\e807'}.elfinder-dialog-icon-reload:before{content:'\e806'}.elfinder-dialog-icon-download:before{content:'\e816'}.elfinder-dialog-icon-save:before{content:'\e845'}.elfinder-dialog-icon-rename:before{content:'\e812'}.elfinder-dialog-icon-archive:before,.elfinder-dialog-icon-zipdl:before{content:'\e819'}.elfinder-dialog-icon-extract:before{content:'\e818'}.elfinder-dialog-icon-search:before{content:'\e81f'}.elfinder-dialog-icon-loadimg:before{content:'\e846'}.elfinder-dialog-icon-url:before{content:'\e81e'}.elfinder-dialog-icon-resize:before{content:'\e81d'}.elfinder-dialog-icon-netmount:before{content:'\e823'}.elfinder-dialog-icon-netunmount:before{content:'\e824'}.elfinder-dialog-icon-chmod:before{content:'\e826'}.elfinder-dialog-icon-dim:before,.elfinder-dialog-icon-preupload:before{content:'\e847'}.elfinder-contextmenu .elfinder-contextmenu-item span.elfinder-contextmenu-icon{font-size:16px}.elfinder-contextmenu .elfinder-contextmenu-item .elfinder-contextsubmenu-item .ui-icon{font-size:15px}.elfinder-contextmenu .elfinder-contextmenu-item .elfinder-button-icon-link:before{content:'\e837'}.elfinder .elfinder-contextmenu-extra-icon{margin-top:-6px}.elfinder .elfinder-contextmenu-extra-icon a{padding:5px;margin:-16px}.elfinder-button-icon-link:before{content:'\e81e'!important}.elfinder .elfinder-contextmenu-arrow{font:normal normal normal 14px/1 material;background-image:inherit;font-size:10px!important;padding-top:3px}.elfinder .elfinder-contextmenu-arrow:before{content:'\e857'}.elfinder-contextmenu .ui-state-hover .elfinder-contextmenu-arrow{background-image:inherit}.elfinder-quicklook .ui-resizable-se{background:inherit}.elfinder-quicklook-navbar-icon{background:transparent;font:normal normal normal 14px/1 material;font-size:32px;color:#fff}.elfinder-quicklook-titlebar-icon{margin-top:-8px}.elfinder-quicklook-titlebar-icon .ui-icon{border:0;opacity:.8;font-size:15px;padding:1px}.elfinder-quicklook-titlebar .ui-icon-circle-close,.elfinder-quicklook .ui-icon-gripsmall-diagonal-se{color:#f1f1f1}.elfinder-quicklook-navbar-icon-prev:before{content:'\e848'}.elfinder-quicklook-navbar-icon-next:before{content:'\e849'}.elfinder-quicklook-navbar-icon-fullscreen:before{content:'\e84a'}.elfinder-quicklook-navbar-icon-fullscreen-off:before{content:'\e84b'}.elfinder-quicklook-navbar-icon-close:before{content:'\e84c'}.ui-button-icon{background-image:inherit}.ui-icon-search:before{content:'\e81f'}.ui-icon-close:before,.ui-icon-closethick:before{content:'\e839'}.ui-icon-circle-close:before{content:'\e84c'}.ui-icon-gear:before{content:'\e82f'}.ui-icon-gripsmall-diagonal-se:before{content:'\e838'}.ui-icon-locked:before{content:'\e834'}.ui-icon-unlocked:before{content:'\e836'}.ui-icon-arrowrefresh-1-n:before{content:'\e821'}.ui-icon-plusthick:before{content:'\e83a'}.ui-icon-arrowreturnthick-1-s:before{content:'\e83b'}.ui-icon-minusthick:before{content:'\e83c'}.ui-icon-pin-s:before{content:'\e84d'}.ui-icon-check:before{content:'\e84e'}.ui-icon-arrowthick-1-s:before{content:'\e84f'}.ui-icon-arrowthick-1-n:before{content:'\e850'}.ui-icon-triangle-1-s:before{content:'\e851'}.ui-icon-triangle-1-n:before{content:'\e852'}.ui-icon-grip-dotted-vertical:before{content:'\e853'}.elfinder-lock,.elfinder-perms,.elfinder-symlink{background-image:inherit;font:normal normal normal 18px/1 material;color:#4d4d4d}.elfinder-na .elfinder-perms:before{content:'\e824'}.elfinder-ro .elfinder-perms:before{content:'\e835'}.elfinder-wo .elfinder-perms:before{content:'\e854'}.elfinder-group .elfinder-perms:before{content:'\e800'}.elfinder-lock:before{content:'\e834'}.elfinder-symlink:before{content:'\e837'}.elfinder .elfinder-toast>div{font:normal normal normal 14px/1 material}.elfinder .elfinder-toast>div:before{font-size:45px;position:absolute;left:5px;top:15px}.elfinder .elfinder-toast>.toast-error,.elfinder .elfinder-toast>.toast-info,.elfinder .elfinder-toast>.toast-success,.elfinder .elfinder-toast>.toast-warning{background-image:inherit!important}.elfinder .elfinder-toast>.toast-info:before{content:'\e817';color:#3498db}.elfinder .elfinder-toast>.toast-error:before{content:'\e855';color:#f44336}.elfinder .elfinder-toast>.toast-success:before{content:'\e84e';color:#4caf50}.elfinder .elfinder-toast>.toast-warning:before{content:'\e856';color:#ff9800}.elfinder-drag-helper-icon-status{font:normal normal normal 14px/1 material;background:inherit}.elfinder-drag-helper-icon-status:before{content:'\e824'}.elfinder-drag-helper-move .elfinder-drag-helper-icon-status{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.elfinder-drag-helper-move .elfinder-drag-helper-icon-status:before{content:'\e854'}.elfinder-drag-helper-plus .elfinder-drag-helper-icon-status{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.elfinder-drag-helper-plus .elfinder-drag-helper-icon-status:before{content:'\e84c'}.elfinder-cwd-view-list td .elfinder-cwd-icon{background-image:url("../images/icons-small.png")}.elfinder-cwd-icon{background:url("../images/icons-big.png") 0 0 no-repeat}.elfinder-cwd-icon:before{font-size:10px;position:relative;top:27px;left:inherit;padding:1px;background-color:transparent}.elfinder-info-title .elfinder-cwd-icon:before{top:32px;display:block;margin:0 auto}.elfinder-info-title .elfinder-cwd-icon.elfinder-cwd-bgurl:before{background-color:#313131!important}.elfinder-cwd-view-icons .elfinder-cwd-icon.elfinder-cwd-bgurl:before{left:inherit;background-color:#313131}.elfinder-quicklook .elfinder-cwd-icon:before{top:33px;left:50%!important;position:relative;display:block;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);-moz-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%)}.elfinder-cwd-icon-x-zip:before,.elfinder-cwd-icon-zip:before{content:'zip'!important}.elfinder-cwd-icon-x-xz:before{content:'xz'!important}.elfinder-cwd-icon-x-7z-compressed:before{content:'7z'!important}.elfinder-cwd-icon-x-gzip:before{content:'gzip'!important}.elfinder-cwd-icon-x-tar:before{content:'tar'!important}.elfinder-cwd-icon-x-bzip2:before,.elfinder-cwd-icon-x-bzip:before{content:'bzip'!important}.elfinder-cwd-icon-x-rar-compressed:before,.elfinder-cwd-icon-x-rar:before{content:'rar'!important}.elfinder-cwd-icon-directory{background-position:0 -50px}.elfinder-cwd-icon-application{background-position:0 -150px}.elfinder-cwd-icon-text{background-position:0 -200px}.elfinder-cwd-icon-plain,.elfinder-cwd-icon-x-empty{background-position:0 -250px}.elfinder-cwd-icon-image{background-position:0 -300px}.elfinder-cwd-icon-vnd-adobe-photoshop{background-position:0 -350px}.elfinder-cwd-icon-vnd-adobe-photoshop:before{content:none!important}.elfinder-cwd-icon-postscript{background-position:0 -400px}.elfinder-cwd-icon-audio{background-position:0 -450px}.elfinder-cwd-icon-dash-xml,.elfinder-cwd-icon-flash-video,.elfinder-cwd-icon-video,.elfinder-cwd-icon-vnd-apple-mpegurl,.elfinder-cwd-icon-x-mpegurl{background-position:0 -500px}.elfinder-cwd-icon-rtf,.elfinder-cwd-icon-rtfd{background-position:0 -550px}.elfinder-cwd-icon-pdf{background-position:0 -600px}.elfinder-cwd-icon-x-msaccess{background-position:0 -650px}.elfinder-cwd-icon-x-msaccess:before{content:none!important}.elfinder-cwd-icon-msword,.elfinder-cwd-icon-vnd-ms-word,.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12{background-position:0 -700px}.elfinder-cwd-icon-msword:before,.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-word:before{content:none!important}.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{background-position:0 -750px}.elfinder-cwd-icon-ms-excel:before,.elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-excel:before{content:none!important}.elfinder-cwd-icon-vnd-ms-powerpoint,.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12{background-position:0 -800px}.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12:before,.elfinder-cwd-icon-vnd-ms-powerpoint:before{content:none!important}.elfinder-cwd-icon-vnd-ms-office,.elfinder-cwd-icon-vnd-oasis-opendocument-chart,.elfinder-cwd-icon-vnd-oasis-opendocument-database,.elfinder-cwd-icon-vnd-oasis-opendocument-formula,.elfinder-cwd-icon-vnd-oasis-opendocument-graphics,.elfinder-cwd-icon-vnd-oasis-opendocument-graphics-template,.elfinder-cwd-icon-vnd-oasis-opendocument-image,.elfinder-cwd-icon-vnd-oasis-opendocument-presentation,.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template,.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet,.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template,.elfinder-cwd-icon-vnd-oasis-opendocument-text,.elfinder-cwd-icon-vnd-oasis-opendocument-text-master,.elfinder-cwd-icon-vnd-oasis-opendocument-text-template,.elfinder-cwd-icon-vnd-oasis-opendocument-text-web,.elfinder-cwd-icon-vnd-openofficeorg-extension,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slideshow,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-template,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-document,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-template{background-position:0 -850px}.elfinder-cwd-icon-html{background-position:0 -900px}.elfinder-cwd-icon-css{background-position:0 -950px}.elfinder-cwd-icon-javascript,.elfinder-cwd-icon-x-javascript{background-position:0 -1000px}.elfinder-cwd-icon-x-perl{background-position:0 -1050px}.elfinder-cwd-icon-x-python,.elfinder-cwd-icon-x-python:after{background-position:0 -1100px}.elfinder-cwd-icon-x-ruby{background-position:0 -1150px}.elfinder-cwd-icon-x-sh,.elfinder-cwd-icon-x-shellscript{background-position:0 -1200px}.elfinder-cwd-icon-x-c,.elfinder-cwd-icon-x-c--,.elfinder-cwd-icon-x-c--hdr,.elfinder-cwd-icon-x-c--src,.elfinder-cwd-icon-x-chdr,.elfinder-cwd-icon-x-csrc{background-position:0 -1250px}.elfinder-cwd-icon-x-jar,.elfinder-cwd-icon-x-java,.elfinder-cwd-icon-x-java-source{background-position:0 -1300px}.elfinder-cwd-icon-x-jar:before,.elfinder-cwd-icon-x-java-source:before,.elfinder-cwd-icon-x-java:before{content:none!important}.elfinder-cwd-icon-x-php{background-position:0 -1350px}.elfinder-cwd-icon-xml,.elfinder-cwd-icon-xml:after{background-position:0 -1400px}.elfinder-cwd-icon-x-7z-compressed,.elfinder-cwd-icon-x-bzip,.elfinder-cwd-icon-x-bzip2,.elfinder-cwd-icon-x-gzip,.elfinder-cwd-icon-x-rar,.elfinder-cwd-icon-x-rar-compressed,.elfinder-cwd-icon-x-tar,.elfinder-cwd-icon-x-xz,.elfinder-cwd-icon-x-zip,.elfinder-cwd-icon-zip{background-position:0 -1450px}.elfinder-cwd-icon-x-shockwave-flash{background-position:0 -1500px}.elfinder-cwd-icon-group{background-position:0 -1550px}.elfinder-cwd-icon-json{background-position:0 -1600px}.elfinder-cwd-icon-json:before{content:none!important}.elfinder-cwd-icon-markdown,.elfinder-cwd-icon-x-markdown{background-position:0 -1650px}.elfinder-cwd-icon-markdown:before,.elfinder-cwd-icon-x-markdown:before{content:none!important}.elfinder-cwd-icon-sql{background-position:0 -1700px}.elfinder-cwd-icon-sql:before{content:none!important}.elfinder-cwd-icon-svg,.elfinder-cwd-icon-svg-xml{background-position:0 -1750px}.elfinder-cwd-icon-svg-xml:before,.elfinder-cwd-icon-svg:before{content:none!important}.elfinder-toolbar{background:#061325;-webkit-border-radius:0;border-radius:0;border:0;padding:5px 0}.elfinder-buttonset{-webkit-border-radius:0;border-radius:0;border:0;margin:0 5px;height:24px}.elfinder .elfinder-button{background:transparent;-webkit-border-radius:0;border-radius:0;cursor:pointer;color:#efefef}.elfinder-toolbar-button-separator{border:0}.elfinder-button-menu{-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 1px 6px rgba(0, 0, 0, 0.3);box-shadow:0 1px 6px rgba(0, 0, 0, 0.3);border:none;margin-top:5px}.elfinder-button-menu-item{color:#666;padding:6px 19px}.elfinder-button-menu-item.ui-state-hover{color:#141414;background-color:#f5f4f4}.elfinder-button-menu-item-separated{border-top:1px solid #e5e5e5}.elfinder-button-menu-item-separated.ui-state-hover{border-top:1px solid #e5e5e5}.elfinder .elfinder-button-search{margin:0 10px;min-height:inherit;overflow:hidden}.elfinder .elfinder-button-search input{background:rgba(22, 43, 76, 0.75);-webkit-border-radius:2px;border-radius:2px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;border:0;margin:0;padding:0 23px;height:24px;color:#fff}.elfinder .elfinder-button-search .elfinder-button-menu{margin-top:4px;border:none;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.5);box-shadow:0 1px 3px rgba(0, 0, 0, 0.5)}.elfinder .elfinder-navbar{background:#2a384d;-webkit-box-shadow:0 1px 8px rgba(0, 0, 0, 0.6);box-shadow:0 1px 8px rgba(0, 0, 0, 0.6);border:none}.elfinder-navbar-dir{color:#e6e6e6;cursor:pointer;-webkit-border-radius:2px;border-radius:2px;padding:5px;border:none}.elfinder-navbar-dir.ui-state-active.ui-state-hover,.elfinder-navbar-dir.ui-state-hover{background:#17202c;color:#e6e6e6;border:none}.elfinder-disabled .elfinder-navbar .ui-state-active,.elfinder-navbar .ui-state-active{background:#1b2533;border:none}.elfinder-workzone{background:#0e1827}.elfinder-cwd-file{color:#ddd}.elfinder-cwd-file.ui-selected.ui-state-hover,.elfinder-cwd-file.ui-state-hover{background:#1a283c;color:#ddd}.elfinder-cwd-file.ui-selected{background:#152131;color:#ddd;width:120px!important}.elfinder-cwd-filename input,.elfinder-cwd-filename textarea{padding:2px;-webkit-border-radius:2px!important;border-radius:2px!important;width:100px!important;background:#fff;color:#222}.elfinder-cwd-filename input:focus,.elfinder-cwd-filename textarea:focus{outline:none;border:1px solid #555}.elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover,.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-active,.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-hover,.elfinder-disabled .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover,.elfinder-disabled .elfinder-cwd table td.ui-state-hover{background:transparent;color:#ddd}.elfinder-cwd table{padding:0}.elfinder-cwd table tr:nth-child(odd){background-color:transparent}.elfinder-cwd table tr:nth-child(odd).ui-state-hover{background-color:#1a283c}#elfinder-elfinder-cwd-thead td{background:#010e21;color:#ddd}#elfinder-elfinder-cwd-thead td.ui-state-active,#elfinder-elfinder-cwd-thead td.ui-state-hover{background:#010a17}#elfinder-elfinder-cwd-thead td.ui-state-active.ui-state-hover{background:#010812}.ui-selectable-helper{border:1px solid #022861;background-color:rgba(3, 62, 150, 0.38)}.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash{background-color:#e4e4e4}.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file{color:#333}.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-selected.ui-state-hover,.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-state-hover{background:#1a283c;color:#ddd}.elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-selected{background:#152131;color:#ddd}.elfinder .elfinder-statusbar{background:#061325;-webkit-border-radius:0;border-radius:0;border:0;color:#cfd2d4}.elfinder-path,.elfinder-stat-size{margin:0 15px}.ui-button,.ui-button.ui-state-default,.ui-button:active{display:inline-block;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;white-space:nowrap;-webkit-border-radius:3px;border-radius:3px;text-transform:uppercase;-webkit-box-shadow:1px 1px 4px rgba(0, 0, 0, 0.4);box-shadow:1px 1px 4px rgba(0, 0, 0, 0.4);-webkit-transition:all 0.4s;-o-transition:all 0.4s;-moz-transition:all 0.4s;transition:all 0.4s;background:#fff;color:#222;border:none}.ui-button .ui-icon,.ui-button.ui-state-default .ui-icon,.ui-button:active .ui-icon{color:#222}.ui-button.ui-state-active,.ui-button.ui-state-hover,.ui-button:active,.ui-button:focus,.ui-button:hover,a.ui-button:active{background:#3498db;color:#fff;border:none}.ui-button.ui-state-active .ui-icon,.ui-button.ui-state-hover .ui-icon,.ui-button:active .ui-icon,.ui-button:focus .ui-icon,.ui-button:hover .ui-icon,a.ui-button:active .ui-icon{color:#fff}.ui-button.ui-state-active:hover{background:#217dbb;color:#fff;border:none}.ui-button:focus{outline:none!important}.ui-controlgroup-horizontal .ui-button{-webkit-border-radius:0;border-radius:0;border:0}.elfinder .elfinder-contextmenu,.elfinder .elfinder-contextmenu-sub{-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 1px 6px rgba(0, 0, 0, 0.3);box-shadow:0 1px 6px rgba(0, 0, 0, 0.3);border:none}.elfinder .elfinder-contextmenu-separator,.elfinder .elfinder-contextmenu-sub-separator{border-top:1px solid #e5e5e5}.elfinder .elfinder-contextmenu-item{color:#666;padding:5px 30px}.elfinder .elfinder-contextmenu-item.ui-state-hover{background-color:#f5f4f4;color:#141414}.elfinder .elfinder-contextmenu-item.ui-state-active{background-color:#2196f3;color:#fff}.elfinder .elfinder-dialog{-webkit-border-radius:0;border-radius:0;border:0;-webkit-box-shadow:0 1px 30px rgba(0, 0, 0, 0.6);box-shadow:0 1px 30px rgba(0, 0, 0, 0.6)}.elfinder .elfinder-dialog .ui-dialog-content[id*=edit-elfinder-elfinder-]{padding:0}.elfinder .elfinder-dialog .ui-tabs{-webkit-border-radius:0;border-radius:0;border:0}.elfinder .elfinder-dialog .ui-tabs-nav{-webkit-border-radius:0;border-radius:0;border:0;background:transparent;border-bottom:1px solid #ddd}.elfinder .elfinder-dialog .ui-tabs-nav li{border:0;font-weight:normal;background:transparent;margin:0;padding:3px 0}.elfinder .elfinder-dialog .ui-tabs-nav li.ui-tabs-active{padding-bottom:7px}.elfinder .elfinder-dialog .ui-tabs-nav .ui-state-active a,.elfinder .elfinder-dialog .ui-tabs-nav .ui-tabs-selected a,.elfinder .elfinder-dialog .ui-tabs-nav li:hover a{-webkit-box-shadow:inset 0 -2px 0 #3498db;box-shadow:inset 0 -2px 0 #3498db;color:#3498db}.elfinder .elfinder-dialog .ui-tabs .elfinder-tabstop.ui-state-hover{background:transparent;-webkit-box-shadow:inset 0 -2px 0 #3498db;box-shadow:inset 0 -2px 0 #3498db;color:#3498db}.elfinder .elfinder-dialog label.ui-state-hover{background:transparent}.std42-dialog .ui-dialog-titlebar{background:#0f1f2f;-webkit-border-radius:0;border-radius:0;border:0}.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon{border-color:inherit;-webkit-transition:0.2s ease-out;-o-transition:0.2s ease-out;-moz-transition:0.2s ease-out;transition:0.2s ease-out;opacity:0.8;color:#fff;width:auto;height:auto;font-size:12px;padding:3px}.elfinder-mobile .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon,.std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover .ui-icon{background-color:#f44336}.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full .ui-icon,.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full:hover .ui-icon{background-color:#4caf50}.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize .ui-icon,.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize:hover .ui-icon{background-color:#ff9800}.elfinder-dialog-title{color:#f1f1f1}.std42-dialog .ui-dialog-content{background:#fff}.ui-widget-content{font-family:"Noto Sans", sans-serif;color:#546e7a}.std42-dialog .ui-dialog-buttonpane button{margin:2px;padding:.4em .5em}.std42-dialog .ui-dialog-buttonpane button span.ui-icon{padding:0}.elfinder-upload-dialog-wrapper .elfinder-upload-dirselect{width:inherit;height:inherit;padding:.4em;margin-left:5px;color:#222}.elfinder-upload-dialog-wrapper .elfinder-upload-dirselect.ui-state-hover{background:#888;color:#fff;outline:none;-webkit-border-radius:2px;border-radius:2px}.elfinder-upload-dialog-wrapper .ui-button{padding:.4em 3px;margin:0 2px}.elfinder-upload-dialog-wrapper .ui-button{margin-left:19px;margin-right:-15px}.elfinder-upload-dropbox{border:2px dashed #bbb}.elfinder-upload-dropbox:focus{outline:none}.elfinder-upload-dropbox.ui-state-hover{background:#f1f1f1;border:2px dashed #bbb}.elfinder-help *,.elfinder-help a{color:#546e7a} \ No newline at end of file diff --git a/apps/static/plugins/elfinder/elfinder.full.js b/apps/static/plugins/elfinder/elfinder.full.js deleted file mode 100755 index 44c0048d2..000000000 --- a/apps/static/plugins/elfinder/elfinder.full.js +++ /dev/null @@ -1,34764 +0,0 @@ -/*! - * elFinder - file manager for web - * Version 2.1.50 (2019-08-20) - * http://elfinder.org - * - * Copyright 2009-2019, Studio 42 - * Licensed under a 3-clauses BSD license - */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD - define(['jquery','jquery-ui'], factory); - } else if (typeof exports !== 'undefined') { - // CommonJS - var $, ui; - try { - $ = require('jquery'); - ui = require('jquery-ui'); - } catch (e) {} - module.exports = factory($, ui); - } else { - // Browser globals (Note: root is window) - factory(root.jQuery, root.jQuery.ui, true); - } -}(this, function($, _ui, toGlobal) { -toGlobal = toGlobal || false; - - -/* - * File: /js/elFinder.js - */ - -/** - * @class elFinder - file manager for web - * - * @author Dmitry (dio) Levashov - **/ -var elFinder = function(elm, opts, bootCallback) { - //this.time('load'); - var self = this, - - /** - * Objects array of jQuery.Deferred that calls before elFinder boot up - * - * @type Array - */ - dfrdsBeforeBootup = [], - - /** - * Plugin name to check for conflicts with bootstrap etc - * - * @type Array - **/ - conflictChecks = ['button', 'tooltip'], - - /** - * Node on which elfinder creating - * - * @type jQuery - **/ - node = $(elm), - - /** - * Object of events originally registered in this node - * - * @type Object - */ - prevEvents = $.extend(true, {}, $._data(node.get(0), 'events')), - - /** - * Store node contents. - * - * @see this.destroy - * @type jQuery - **/ - prevContent = $('
').append(node.contents()).attr('class', node.attr('class') || '').attr('style', node.attr('style') || ''), - - /** - * Instance ID. Required to get/set cookie - * - * @type String - **/ - id = node.attr('id') || node.attr('id', 'elfauto' + $('.elfinder').length).attr('id'), - - /** - * Events namespace - * - * @type String - **/ - namespace = 'elfinder-' + id, - - /** - * Mousedown event - * - * @type String - **/ - mousedown = 'mousedown.'+namespace, - - /** - * Keydown event - * - * @type String - **/ - keydown = 'keydown.'+namespace, - - /** - * Keypress event - * - * @type String - **/ - keypress = 'keypress.'+namespace, - - /** - * Keypup event - * - * @type String - **/ - keyup = 'keyup.'+namespace, - - /** - * Is shortcuts/commands enabled - * - * @type Boolean - **/ - enabled = false, - - /** - * Store enabled value before ajax request - * - * @type Boolean - **/ - prevEnabled = false, - - /** - * List of build-in events which mapped into methods with same names - * - * @type Array - **/ - events = ['enable', 'disable', 'load', 'open', 'reload', 'select', 'add', 'remove', 'change', 'dblclick', 'getfile', 'lockfiles', 'unlockfiles', 'selectfiles', 'unselectfiles', 'dragstart', 'dragstop', 'search', 'searchend', 'viewchange'], - - /** - * Rules to validate data from backend - * - * @type Object - **/ - rules = {}, - - /** - * Current working directory hash - * - * @type String - **/ - cwd = '', - - /** - * Current working directory options default - * - * @type Object - **/ - cwdOptionsDefault = { - path : '', - url : '', - tmbUrl : '', - disabled : [], - separator : '/', - archives : [], - extract : [], - copyOverwrite : true, - uploadOverwrite : true, - uploadMaxSize : 0, - jpgQuality : 100, - tmbCrop : false, - tmb : false // old API - }, - - /** - * Current working directory options - * - * @type Object - **/ - cwdOptions = {}, - - /** - * Files/dirs cache - * - * @type Object - **/ - files = {}, - - /** - * Hidden Files/dirs cache - * - * @type Object - **/ - hiddenFiles = {}, - - /** - * Files/dirs hash cache of each dirs - * - * @type Object - **/ - ownFiles = {}, - - /** - * Selected files hashes - * - * @type Array - **/ - selected = [], - - /** - * Events listeners - * - * @type Object - **/ - listeners = {}, - - /** - * Shortcuts - * - * @type Object - **/ - shortcuts = {}, - - /** - * Buffer for copied files - * - * @type Array - **/ - clipboard = [], - - /** - * Copied/cuted files hashes - * Prevent from remove its from cache. - * Required for dispaly correct files names in error messages - * - * @type Object - **/ - remember = {}, - - /** - * Queue for 'open' requests - * - * @type Array - **/ - queue = [], - - /** - * Queue for only cwd requests e.g. `tmb` - * - * @type Array - **/ - cwdQueue = [], - - /** - * Commands prototype - * - * @type Object - **/ - base = new self.command(self), - - /** - * elFinder node width - * - * @type String - * @default "auto" - **/ - width = 'auto', - - /** - * elFinder node height - * Number: pixcel or String: Number + "%" - * - * @type Number | String - * @default 400 - **/ - height = 400, - - /** - * Base node object or selector - * Element which is the reference of the height percentage - * - * @type Object|String - * @default null | $(window) (if height is percentage) - **/ - heightBase = null, - - /** - * MIME type list(Associative array) handled as a text file - * - * @type Object|null - */ - textMimes = null, - - /** - * elfinder path for sound played on remove - * @type String - * @default ./sounds/ - **/ - soundPath = 'sounds/', - - /** - * JSON.stringify of previous fm.sorters - * @type String - */ - prevSorterStr = '', - - /** - * Map table of file extention to MIME-Type - * @type Object - */ - extToMimeTable, - - /** - * Disabled page unload function - * @type Boolean - */ - diableUnloadCheck = false, - - beeper = $(document.createElement('audio')).hide().appendTo('body')[0], - - syncInterval, - autoSyncStop = 0, - - uiCmdMapPrev = '', - - gcJobRes = null, - - open = function(data) { - // NOTES: Do not touch data object - - var volumeid, contextmenu, emptyDirs = {}, stayDirs = {}, - rmClass, hashes, calc, gc, collapsed, prevcwd, sorterStr; - - if (self.api >= 2.1) { - // support volume driver option `uiCmdMap` - self.commandMap = (data.options.uiCmdMap && Object.keys(data.options.uiCmdMap).length)? data.options.uiCmdMap : {}; - if (uiCmdMapPrev !== JSON.stringify(self.commandMap)) { - uiCmdMapPrev = JSON.stringify(self.commandMap); - } - } else { - self.options.sync = 0; - } - - if (data.init) { - // init - reset cache - files = {}; - ownFiles = {}; - } else { - // remove only files from prev cwd - // and collapsed directory (included 100+ directories) to empty for perfomance tune in DnD - prevcwd = cwd; - rmClass = 'elfinder-subtree-loaded ' + self.res('class', 'navexpand'); - collapsed = self.res('class', 'navcollapse'); - hashes = Object.keys(files); - calc = function(i) { - if (!files[i]) { - return true; - } - - var isDir = (files[i].mime === 'directory'), - phash = files[i].phash, - pnav; - - if ( - (!isDir - || emptyDirs[phash] - || (!stayDirs[phash] - && self.navHash2Elm(files[i].hash).is(':hidden') - && self.navHash2Elm(phash).next('.elfinder-navbar-subtree').children().length > 100 - ) - ) - && (isDir || phash !== cwd) - && ! remember[i] - ) { - if (isDir && !emptyDirs[phash]) { - emptyDirs[phash] = true; - self.navHash2Elm(phash) - .removeClass(rmClass) - .next('.elfinder-navbar-subtree').empty(); - } - deleteCache(files[i]); - } else if (isDir) { - stayDirs[phash] = true; - } - }; - gc = function() { - if (hashes.length) { - gcJobRes && gcJobRes._abort(); - gcJobRes = self.asyncJob(calc, hashes, { - interval : 20, - numPerOnce : 100 - }).done(function() { - var hd = self.storage('hide') || {items: {}}; - if (Object.keys(hiddenFiles).length) { - $.each(hiddenFiles, function(h) { - if (!hd.items[h]) { - delete hiddenFiles[h]; - } - }); - } - }); - } - }; - - self.trigger('filesgc').one('filesgc', function() { - hashes = []; - }); - - self.one('opendone', function() { - if (prevcwd !== cwd) { - if (! node.data('lazycnt')) { - gc(); - } else { - self.one('lazydone', gc); - } - } - }); - } - - self.sorters = {}; - cwd = data.cwd.hash; - cache(data.files); - if (!files[cwd]) { - cache([data.cwd]); - } - - // trigger event 'sorterupdate' - sorterStr = JSON.stringify(self.sorters); - if (prevSorterStr !== sorterStr) { - self.trigger('sorterupdate'); - prevSorterStr = sorterStr; - } - - self.lastDir(cwd); - - self.autoSync(); - }, - - /** - * Store info about files/dirs in "files" object. - * - * @param Array files - * @param String data type - * @return void - **/ - cache = function(data, type) { - var defsorter = { name: true, perm: true, date: true, size: true, kind: true }, - sorterChk = !self.sorters._checked, - l = data.length, - setSorter = function(file) { - var f = file || {}, - sorters = []; - $.each(self.sortRules, function(key) { - if (defsorter[key] || typeof f[key] !== 'undefined' || (key === 'mode' && typeof f.perm !== 'undefined')) { - sorters.push(key); - } - }); - self.sorters = self.arrayFlip(sorters, true); - self.sorters._checked = true; - }, - keeps = ['sizeInfo'], - changedParents = {}, - hideData = self.storage('hide') || {}, - hides = hideData.items || {}, - f, i, keepProp, parents, hidden; - - for (i = 0; i < l; i++) { - f = Object.assign({}, data[i]); - hidden = (!hideData.show && hides[f.hash])? true : false; - if (f.name && f.hash && f.mime) { - if (!hidden) { - if (sorterChk && f.phash === cwd) { - setSorter(f); - sorterChk = false; - } - - if (f.phash && (type === 'add' || type === 'change')) { - if (parents = self.parents(f.phash)) { - $.each(parents, function() { - changedParents[this] = true; - }); - } - } - } - - if (files[f.hash]) { - $.each(keeps, function() { - if(files[f.hash][this] && ! f[this]) { - f[this] = files[f.hash][this]; - } - }); - if (f.sizeInfo && !f.size) { - f.size = f.sizeInfo.size; - } - deleteCache(files[f.hash], true); - } - if (hides[f.hash]) { - hiddenFiles[f.hash] = f; - } - if (hidden) { - l--; - data.splice(i--, 1); - } else { - files[f.hash] = f; - if (f.mime === 'directory' && !ownFiles[f.hash]) { - ownFiles[f.hash] = {}; - } - if (f.phash) { - if (!ownFiles[f.phash]) { - ownFiles[f.phash] = {}; - } - ownFiles[f.phash][f.hash] = true; - } - } - } - } - // delete sizeInfo cache - $.each(Object.keys(changedParents), function() { - var target = files[this]; - if (target && target.sizeInfo) { - delete target.sizeInfo; - } - }); - - // for empty folder - sorterChk && setSorter(); - }, - - /** - * Delete file object from files caches - * - * @param Array removed hashes - * @return void - */ - remove = function(removed) { - var l = removed.length, - roots = {}, - rm = function(hash) { - var file = files[hash], i; - if (file) { - if (file.mime === 'directory') { - if (roots[hash]) { - delete self.roots[roots[hash]]; - } - // restore stats of deleted root parent directory - $.each(self.leafRoots, function(phash, roots) { - var idx, pdir; - if ((idx = $.inArray(hash, roots))!== -1) { - if (roots.length === 1) { - if ((pdir = Object.assign({}, files[phash])) && pdir._realStats) { - $.each(pdir._realStats, function(k, v) { - pdir[k] = v; - }); - remove(files[phash]._realStats); - self.change({ changed: [pdir] }); - } - delete self.leafRoots[phash]; - } else { - self.leafRoots[phash].splice(idx, 1); - } - } - }); - if (self.searchStatus.state < 2) { - $.each(files, function(h, f) { - f.phash == hash && rm(h); - }); - } - } - if (file.phash) { - if (parents = self.parents(file.phash)) { - $.each(parents, function() { - changedParents[this] = true; - }); - } - } - deleteCache(files[hash]); - } - }, - changedParents = {}, - parents; - - $.each(self.roots, function(k, v) { - roots[v] = k; - }); - while (l--) { - rm(removed[l]); - } - // delete sizeInfo cache - $.each(Object.keys(changedParents), function() { - var target = files[this]; - if (target && target.sizeInfo) { - delete target.sizeInfo; - } - }); - }, - - /** - * Update file object in files caches - * - * @param Array changed file objects - * @return void - */ - change = function(changed) { - $.each(changed, function(i, file) { - var hash = file.hash; - if (files[hash]) { - $.each(Object.keys(files[hash]), function(i, v){ - if (typeof file[v] === 'undefined') { - delete files[hash][v]; - } - }); - } - files[hash] = files[hash] ? Object.assign(files[hash], file) : file; - }); - }, - - /** - * Delete cache data of files, ownFiles and self.optionsByHashes - * - * @param Object file - * @param Boolean update - * @return void - */ - deleteCache = function(file, update) { - var hash = file.hash, - phash = file.phash; - - if (phash && ownFiles[phash]) { - delete ownFiles[phash][hash]; - } - if (!update) { - ownFiles[hash] && delete ownFiles[hash]; - self.optionsByHashes[hash] && delete self.optionsByHashes[hash]; - } - delete files[hash]; - }, - - /** - * Maximum number of concurrent connections on request - * - * @type Number - */ - requestMaxConn, - - /** - * Current number of connections - * - * @type Number - */ - requestCnt = 0, - - /** - * Queue waiting for connection - * - * @type Array - */ - requestQueue = [], - - /** - * Flag to cancel the `open` command waiting for connection - * - * @type Boolean - */ - requestQueueSkipOpen = false, - - /** - * Exec shortcut - * - * @param jQuery.Event keydown/keypress event - * @return void - */ - execShortcut = function(e) { - var code = e.keyCode, - ctrlKey = !!(e.ctrlKey || e.metaKey), - isMousedown = e.type === 'mousedown', - ddm; - - !isMousedown && (self.keyState.keyCode = code); - self.keyState.ctrlKey = ctrlKey; - self.keyState.shiftKey = e.shiftKey; - self.keyState.metaKey = e.metaKey; - self.keyState.altKey = e.altKey; - if (isMousedown) { - return; - } else if (e.type === 'keyup') { - self.keyState.keyCode = null; - return; - } - - if (enabled) { - - $.each(shortcuts, function(i, shortcut) { - if (shortcut.type == e.type - && shortcut.keyCode == code - && shortcut.shiftKey == e.shiftKey - && shortcut.ctrlKey == ctrlKey - && shortcut.altKey == e.altKey) { - e.preventDefault(); - e.stopPropagation(); - shortcut.callback(e, self); - self.debug('shortcut-exec', i+' : '+shortcut.description); - } - }); - - // prevent tab out of elfinder - if (code == $.ui.keyCode.TAB && !$(e.target).is(':input')) { - e.preventDefault(); - } - - // cancel any actions by [Esc] key - if (e.type === 'keydown' && code == $.ui.keyCode.ESCAPE) { - // copy or cut - if (! node.find('.ui-widget:visible').length) { - self.clipboard().length && self.clipboard([]); - } - // dragging - if ($.ui.ddmanager) { - ddm = $.ui.ddmanager.current; - ddm && ddm.helper && ddm.cancel(); - } - // button menus - self.toHide(node.find('.ui-widget.elfinder-button-menu.elfinder-frontmost:visible')); - // trigger keydownEsc - self.trigger('keydownEsc', e); - } - - } - }, - date = new Date(), - utc, - i18n, - inFrame = (window.parent !== window), - parentIframe = (function() { - var pifm, ifms; - if (inFrame) { - try { - ifms = $('iframe', window.parent.document); - if (ifms.length) { - $.each(ifms, function(i, ifm) { - if (ifm.contentWindow === window) { - pifm = $(ifm); - return false; - } - }); - } - } catch(e) {} - } - return pifm; - })(), - /** - * elFinder boot up function - * - * @type Function - */ - bootUp, - /** - * Original function of XMLHttpRequest.prototype.send - * - * @type Function - */ - savedXhrSend; - - // opts must be an object - if (!opts) { - opts = {}; - } - - // set UA.Angle, UA.Rotated for mobile devices - if (self.UA.Mobile) { - $(window).on('orientationchange.'+namespace, function() { - var a = ((screen && screen.orientation && screen.orientation.angle) || window.orientation || 0) + 0; - if (a === -90) { - a = 270; - } - self.UA.Angle = a; - self.UA.Rotated = a % 180 === 0? false : true; - }).trigger('orientationchange.'+namespace); - } - - // check opt.bootCallback - if (opts.bootCallback && typeof opts.bootCallback === 'function') { - (function() { - var func = bootCallback, - opFunc = opts.bootCallback; - bootCallback = function(fm, extraObj) { - func && typeof func === 'function' && func.call(this, fm, extraObj); - opFunc.call(this, fm, extraObj); - }; - })(); - } - delete opts.bootCallback; - - /** - * Protocol version - * - * @type String - **/ - this.api = null; - - /** - * elFinder use new api - * - * @type Boolean - **/ - this.newAPI = false; - - /** - * elFinder use old api - * - * @type Boolean - **/ - this.oldAPI = false; - - /** - * Net drivers names - * - * @type Array - **/ - this.netDrivers = []; - - /** - * Base URL of elfFinder library starting from Manager HTML - * - * @type String - */ - this.baseUrl = ''; - - /** - * Base URL of i18n js files - * baseUrl + "js/i18n/" when empty value - * - * @type String - */ - this.i18nBaseUrl = ''; - - /** - * Is elFinder CSS loaded - * - * @type Boolean - */ - this.cssloaded = false; - - /** - * Current theme object - * - * @type Object|Null - */ - this.theme = null; - - this.mimesCanMakeEmpty = {}; - - /** - * Callback function at boot up that option specified at elFinder starting - * - * @type Function - */ - this.bootCallback; - - /** - * Callback function at reload(restart) elFinder - * - * @type Function - */ - this.reloadCallback; - - /** - * ID. Required to create unique cookie name - * - * @type String - **/ - this.id = id; - - /** - * Method to store/fetch data - * - * @type Function - **/ - this.storage = (function() { - try { - if ('localStorage' in window && window.localStorage !== null) { - if (self.UA.Safari) { - // check for Mac/iOS safari private browsing mode - window.localStorage.setItem('elfstoragecheck', 1); - window.localStorage.removeItem('elfstoragecheck'); - } - return self.localStorage; - } else { - return self.cookie; - } - } catch (e) { - return self.cookie; - } - })(); - - /** - * Set pause page unload check function or Get state - * - * @param Boolean state To set state - * @param Boolean keep Keep disabled - * @return Boolean|void - */ - this.pauseUnloadCheck = function(state, keep) { - if (typeof state === 'undefined') { - return diableUnloadCheck; - } else { - diableUnloadCheck = !!state; - if (state && !keep) { - requestAnimationFrame(function() { - diableUnloadCheck = false; - }); - } - } - }; - - /** - * Configuration options - * - * @type Object - **/ - //this.options = $.extend(true, {}, this._options, opts); - this.options = Object.assign({}, this._options); - - // for old type configuration - if (opts.uiOptions) { - if (opts.uiOptions.toolbar && Array.isArray(opts.uiOptions.toolbar)) { - if ($.isPlainObject(opts.uiOptions.toolbar[opts.uiOptions.toolbar.length - 1])) { - self.options.uiOptions.toolbarExtra = Object.assign(self.options.uiOptions.toolbarExtra || {}, opts.uiOptions.toolbar.pop()); - } - } - } - - // Overwrite if opts value is an array - (function() { - var arrOv = function(obj, base) { - if ($.isPlainObject(obj)) { - $.each(obj, function(k, v) { - if ($.isPlainObject(v)) { - if (!base[k]) { - base[k] = {}; - } - arrOv(v, base[k]); - } else { - base[k] = v; - } - }); - } - }; - arrOv(opts, self.options); - })(); - - // join toolbarExtra to toolbar - this.options.uiOptions.toolbar.push(this.options.uiOptions.toolbarExtra); - delete this.options.uiOptions.toolbarExtra; - - /** - * Arrays that has to unbind events - * - * @type Object - */ - this.toUnbindEvents = {}; - - /** - * Attach listener to events - * To bind to multiply events at once, separate events names by space - * - * @param String event(s) name(s) - * @param Object event handler or {done: handler} - * @param Boolean priority first - * @return elFinder - */ - this.bind = function(event, callback, priorityFirst) { - var i, len; - - if (callback && (typeof callback === 'function' || typeof callback.done === 'function')) { - event = ('' + event).toLowerCase().replace(/^\s+|\s+$/g, '').split(/\s+/); - - len = event.length; - for (i = 0; i < len; i++) { - if (listeners[event[i]] === void(0)) { - listeners[event[i]] = []; - } - listeners[event[i]][priorityFirst? 'unshift' : 'push'](callback); - } - } - return this; - }; - - /** - * Remove event listener if exists - * To un-bind to multiply events at once, separate events names by space - * - * @param String event(s) name(s) - * @param Function callback - * @return elFinder - */ - this.unbind = function(event, callback) { - var i, len, l, ci; - - event = ('' + event).toLowerCase().split(/\s+/); - - len = event.length; - for (i = 0; i < len; i++) { - if (l = listeners[event[i]]) { - ci = $.inArray(callback, l); - ci > -1 && l.splice(ci, 1); - } - } - - callback = null; - return this; - }; - - /** - * Fire event - send notification to all event listeners - * In the callback `this` becames an event object - * - * @param String event type - * @param Object data to send across event - * @param Boolean allow modify data (call by reference of data) default: true - * @return elFinder - */ - this.trigger = function(evType, data, allowModify) { - var type = evType.toLowerCase(), - isopen = (type === 'open'), - dataIsObj = (typeof data === 'object'), - handlers = listeners[type] || [], - dones = [], - i, l, jst, event; - - this.debug('event-'+type, data); - - if (! dataIsObj || typeof allowModify === 'undefined') { - allowModify = true; - } - if (l = handlers.length) { - event = $.Event(type); - if (data) { - data._getEvent = function() { - return event; - }; - } - if (allowModify) { - event.data = data; - } - - for (i = 0; i < l; i++) { - if (! handlers[i]) { - // probably un-binded this handler - continue; - } - - // handler is $.Deferred(), call all functions upon completion - if (handlers[i].done) { - dones.push(handlers[i].done); - continue; - } - - // set `event.data` only callback has argument - if (handlers[i].length) { - if (!allowModify) { - // to avoid data modifications. remember about "sharing" passing arguments in js :) - if (typeof jst === 'undefined') { - try { - jst = JSON.stringify(data); - } catch(e) { - jst = false; - } - } - event.data = jst? JSON.parse(jst) : data; - } - } - - try { - if (handlers[i].call(event, event, this) === false || event.isDefaultPrevented()) { - this.debug('event-stoped', event.type); - break; - } - } catch (ex) { - window.console && window.console.log && window.console.log(ex); - } - - } - - // call done functions - if (l = dones.length) { - for (i = 0; i < l; i++) { - try { - if (dones[i].call(event, event, this) === false || event.isDefaultPrevented()) { - this.debug('event-stoped', event.type + '(done)'); - break; - } - } catch (ex) { - window.console && window.console.log && window.console.log(ex); - } - } - } - - if (this.toUnbindEvents[type] && this.toUnbindEvents[type].length) { - $.each(this.toUnbindEvents[type], function(i, v) { - self.unbind(v.type, v.callback); - }); - delete this.toUnbindEvents[type]; - } - } - return this; - }; - - /** - * Get event listeners - * - * @param String event type - * @return Array listed event functions - */ - this.getListeners = function(event) { - return event? listeners[event.toLowerCase()] : listeners; - }; - - // set fm.baseUrl - this.baseUrl = (function() { - var myTag, base, baseUrl; - - if (self.options.baseUrl) { - return self.options.baseUrl; - } else { - baseUrl = ''; - myTag = null; - $('head > script').each(function() { - if (this.src && this.src.match(/js\/elfinder(?:-[a-z0-9_-]+)?\.(?:min|full)\.js$/i)) { - myTag = $(this); - return false; - } - }); - if (myTag) { - baseUrl = myTag.attr('src').replace(/js\/[^\/]+$/, ''); - if (! baseUrl.match(/^(https?\/\/|\/)/)) { - // check tag - if (base = $('head > base[href]').attr('href')) { - baseUrl = base.replace(/\/$/, '') + '/' + baseUrl; - } - } - } - if (baseUrl !== '') { - self.options.baseUrl = baseUrl; - } else { - if (! self.options.baseUrl) { - self.options.baseUrl = './'; - } - baseUrl = self.options.baseUrl; - } - return baseUrl; - } - })(); - - this.i18nBaseUrl = (this.options.i18nBaseUrl || this.baseUrl + 'js/i18n').replace(/\/$/, '') + '/'; - - this.options.maxErrorDialogs = Math.max(1, parseInt(this.options.maxErrorDialogs || 5)); - - // set dispInlineRegex - cwdOptionsDefault.dispInlineRegex = this.options.dispInlineRegex; - - // auto load required CSS - if (this.options.cssAutoLoad) { - (function() { - var baseUrl = self.baseUrl, - myCss = $('head > link[href$="css/elfinder.min.css"],link[href$="css/elfinder.full.css"]:first').length, - rmTag = function() { - if (node.data('cssautoloadHide')) { - node.data('cssautoloadHide').remove(); - node.removeData('cssautoloadHide'); - } - }, - loaded = function() { - if (!self.cssloaded) { - rmTag(); - self.cssloaded = true; - self.trigger('cssloaded'); - } - }; - - if (! myCss) { - // to request CSS auto loading - self.cssloaded = null; - } - - // additional CSS files - if (Array.isArray(self.options.cssAutoLoad)) { - if (!self.options.themes.default) { - // set as default theme - self.options.themes = Object.assign({ - 'default' : { - 'name': 'default', - 'cssurls': self.options.cssAutoLoad - } - }, self.options.themes); - if (!self.options.theme) { - self.options.theme = 'default'; - } - } else { - if (self.cssloaded === true) { - self.loadCss(self.options.cssAutoLoad); - } else { - self.bind('cssloaded', function() { - self.loadCss(self.options.cssAutoLoad); - }); - } - } - } - - // try to load main css - if (self.cssloaded === null) { - // hide elFinder node while css loading - node.addClass('elfinder') - .data('cssautoloadHide', $('')); - $('head').append(node.data('cssautoloadHide')); - - // set default theme - if (!self.options.themes.default) { - self.options.themes = Object.assign({ - 'default' : { - 'name': 'default', - 'cssurls': 'css/theme.css', - 'author': 'elFinder Project', - 'license': '3-clauses BSD' - } - }, self.options.themes); - if (!self.options.theme) { - self.options.theme = 'default'; - } - } - - // Delay 'visibility' check it required for browsers such as Safari - requestAnimationFrame(function() { - if (node.css('visibility') === 'hidden') { - // load CSS - self.loadCss([baseUrl+'css/elfinder.min.css'], { - dfd: $.Deferred().done(function() { - loaded(); - }).fail(function() { - rmTag(); - if (!self.cssloaded) { - self.cssloaded = false; - self.bind('init', function() { - if (!self.cssloaded) { - self.error(['errRead', 'CSS (elfinder.min)']); - } - }); - } - }) - }); - } else { - loaded(); - } - }); - } - })(); - } - - // load theme if exists - (function() { - var theme, - themes = self.options.themes, - ids = Object.keys(themes || {}); - if (ids.length) { - theme = self.storage('theme') || self.options.theme; - if (!themes[theme]) { - theme = ids[0]; - } - if (self.cssloaded) { - self.changeTheme(theme); - } else { - self.bind('cssloaded', function() { - self.changeTheme(theme); - }); - } - } - })(); - - /** - * Volume option to set the properties of the root Stat - * - * @type Object - */ - this.optionProperties = { - icon: void(0), - csscls: void(0), - tmbUrl: void(0), - uiCmdMap: {}, - netkey: void(0), - disabled: [] - }; - - if (! inFrame && ! this.options.enableAlways && $('body').children().length === 2) { // only node and beeper - this.options.enableAlways = true; - } - - // make options.debug - if (this.options.debug === true) { - this.options.debug = 'all'; - } else if (Array.isArray(this.options.debug)) { - (function() { - var d = {}; - $.each(self.options.debug, function() { - d[this] = true; - }); - self.options.debug = d; - })(); - } else { - this.options.debug = false; - } - - /** - * Original functions evacuated by conflict check - * - * @type Object - */ - this.noConflicts = {}; - - /** - * Check and save conflicts with bootstrap etc - * - * @type Function - */ - this.noConflict = function() { - $.each(conflictChecks, function(i, p) { - if ($.fn[p] && typeof $.fn[p].noConflict === 'function') { - self.noConflicts[p] = $.fn[p].noConflict(); - } - }); - }; - // do check conflict - this.noConflict(); - - /** - * Is elFinder over CORS - * - * @type Boolean - **/ - this.isCORS = false; - - // configure for CORS - (function(){ - if (typeof self.options.cors !== 'undefined' && self.options.cors !== null) { - self.isCORS = self.options.cors? true : false; - } else { - var parseUrl = document.createElement('a'), - parseUploadUrl, - selfProtocol = window.location.protocol, - portReg = function(protocol) { - protocol = (!protocol || protocol === ':')? selfProtocol : protocol; - return protocol === 'https:'? /\:443$/ : /\:80$/; - }, - selfHost = window.location.host.replace(portReg(selfProtocol), ''); - parseUrl.href = opts.url; - if (opts.urlUpload && (opts.urlUpload !== opts.url)) { - parseUploadUrl = document.createElement('a'); - parseUploadUrl.href = opts.urlUpload; - } - if (selfHost !== parseUrl.host.replace(portReg(parseUrl.protocol), '') - || (parseUrl.protocol !== ':'&& parseUrl.protocol !== '' && (selfProtocol !== parseUrl.protocol)) - || (parseUploadUrl && - (selfHost !== parseUploadUrl.host.replace(portReg(parseUploadUrl.protocol), '') - || (parseUploadUrl.protocol !== ':' && parseUploadUrl.protocol !== '' && (selfProtocol !== parseUploadUrl.protocol)) - ) - ) - ) { - self.isCORS = true; - } - } - if (self.isCORS) { - if (!$.isPlainObject(self.options.customHeaders)) { - self.options.customHeaders = {}; - } - if (!$.isPlainObject(self.options.xhrFields)) { - self.options.xhrFields = {}; - } - self.options.requestType = 'post'; - self.options.customHeaders['X-Requested-With'] = 'XMLHttpRequest'; - self.options.xhrFields['withCredentials'] = true; - } - })(); - - /** - * Ajax request type - * - * @type String - * @default "get" - **/ - this.requestType = /^(get|post)$/i.test(this.options.requestType) ? this.options.requestType.toLowerCase() : 'get'; - - // set `requestMaxConn` by option - requestMaxConn = Math.max(parseInt(this.options.requestMaxConn), 1); - - /** - * Custom data that given as options - * - * @type Object - * @default {} - */ - this.optsCustomData = $.isPlainObject(this.options.customData) ? this.options.customData : {}; - - /** - * Any data to send across every ajax request - * - * @type Object - * @default {} - **/ - this.customData = Object.assign({}, this.optsCustomData); - - /** - * Previous custom data from connector - * - * @type Object|null - */ - this.prevCustomData = null; - - /** - * Any custom headers to send across every ajax request - * - * @type Object - * @default {} - */ - this.customHeaders = $.isPlainObject(this.options.customHeaders) ? this.options.customHeaders : {}; - - /** - * Any custom xhrFields to send across every ajax request - * - * @type Object - * @default {} - */ - this.xhrFields = $.isPlainObject(this.options.xhrFields) ? this.options.xhrFields : {}; - - /** - * Replace XMLHttpRequest.prototype.send to extended function for 3rd party libs XHR request etc. - * - * @type Function - */ - this.replaceXhrSend = function() { - if (! savedXhrSend) { - savedXhrSend = XMLHttpRequest.prototype.send; - } - XMLHttpRequest.prototype.send = function() { - var xhr = this; - // set request headers - if (self.customHeaders) { - $.each(self.customHeaders, function(key) { - xhr.setRequestHeader(key, this); - }); - } - // set xhrFields - if (self.xhrFields) { - $.each(self.xhrFields, function(key) { - if (key in xhr) { - xhr[key] = this; - } - }); - } - return savedXhrSend.apply(this, arguments); - }; - }; - - /** - * Restore saved original XMLHttpRequest.prototype.send - * - * @type Function - */ - this.restoreXhrSend = function() { - savedXhrSend && (XMLHttpRequest.prototype.send = savedXhrSend); - }; - - /** - * command names for into queue for only cwd requests - * these commands aborts before `open` request - * - * @type Array - * @default ['tmb', 'parents'] - */ - this.abortCmdsOnOpen = this.options.abortCmdsOnOpen || ['tmb', 'parents']; - - /** - * ui.nav id prefix - * - * @type String - */ - this.navPrefix = 'nav' + (elFinder.prototype.uniqueid? elFinder.prototype.uniqueid : '') + '-'; - - /** - * ui.cwd id prefix - * - * @type String - */ - this.cwdPrefix = elFinder.prototype.uniqueid? ('cwd' + elFinder.prototype.uniqueid + '-') : ''; - - // Increment elFinder.prototype.uniqueid - ++elFinder.prototype.uniqueid; - - /** - * URL to upload files - * - * @type String - **/ - this.uploadURL = opts.urlUpload || opts.url; - - /** - * Events namespace - * - * @type String - **/ - this.namespace = namespace; - - /** - * Today timestamp - * - * @type Number - **/ - this.today = (new Date(date.getFullYear(), date.getMonth(), date.getDate())).getTime()/1000; - - /** - * Yesterday timestamp - * - * @type Number - **/ - this.yesterday = this.today - 86400; - - utc = this.options.UTCDate ? 'UTC' : ''; - - this.getHours = 'get'+utc+'Hours'; - this.getMinutes = 'get'+utc+'Minutes'; - this.getSeconds = 'get'+utc+'Seconds'; - this.getDate = 'get'+utc+'Date'; - this.getDay = 'get'+utc+'Day'; - this.getMonth = 'get'+utc+'Month'; - this.getFullYear = 'get'+utc+'FullYear'; - - /** - * elFinder node z-index (auto detect on elFinder load) - * - * @type null | Number - **/ - this.zIndex; - - /** - * Current search status - * - * @type Object - */ - this.searchStatus = { - state : 0, // 0: search ended, 1: search started, 2: in search result - query : '', - target : '', - mime : '', - mixed : false, // in multi volumes search: false or Array that target volume ids - ininc : false // in incremental search - }; - - /** - * Interface language - * - * @type String - * @default "en" - **/ - this.lang = this.storage('lang') || this.options.lang; - if (this.lang === 'jp') { - this.lang = this.options.lang = 'ja'; - } - - this.viewType = this.storage('view') || this.options.defaultView || 'icons'; - - this.sortType = this.storage('sortType') || this.options.sortType || 'name'; - - this.sortOrder = this.storage('sortOrder') || this.options.sortOrder || 'asc'; - - this.sortStickFolders = this.storage('sortStickFolders'); - if (this.sortStickFolders === null) { - this.sortStickFolders = !!this.options.sortStickFolders; - } else { - this.sortStickFolders = !!this.sortStickFolders; - } - - this.sortAlsoTreeview = this.storage('sortAlsoTreeview'); - if (this.sortAlsoTreeview === null || this.options.sortAlsoTreeview === null) { - this.sortAlsoTreeview = !!this.options.sortAlsoTreeview; - } else { - this.sortAlsoTreeview = !!this.sortAlsoTreeview; - } - - this.sortRules = $.extend(true, {}, this._sortRules, this.options.sortRules); - - $.each(this.sortRules, function(name, method) { - if (typeof method != 'function') { - delete self.sortRules[name]; - } - }); - - this.compare = $.proxy(this.compare, this); - - /** - * Delay in ms before open notification dialog - * - * @type Number - * @default 500 - **/ - this.notifyDelay = this.options.notifyDelay > 0 ? parseInt(this.options.notifyDelay) : 500; - - /** - * Dragging UI Helper object - * - * @type jQuery | null - **/ - this.draggingUiHelper = null; - - /** - * Base droppable options - * - * @type Object - **/ - this.droppable = { - greedy : true, - tolerance : 'pointer', - accept : '.elfinder-cwd-file-wrapper,.elfinder-navbar-dir,.elfinder-cwd-file,.elfinder-cwd-filename', - hoverClass : this.res('class', 'adroppable'), - classes : { // Deprecated hoverClass jQueryUI>=1.12.0 - 'ui-droppable-hover': this.res('class', 'adroppable') - }, - autoDisable: true, // elFinder original, see jquery.elfinder.js - drop : function(e, ui) { - var dst = $(this), - targets = $.grep(ui.helper.data('files')||[], function(h) { return h? true : false; }), - result = [], - dups = [], - faults = [], - isCopy = ui.helper.hasClass('elfinder-drag-helper-plus'), - c = 'class', - cnt, hash, i, h; - - if (typeof e.button === 'undefined' || ui.helper.data('namespace') !== namespace || ! self.insideWorkzone(e.pageX, e.pageY)) { - return false; - } - if (dst.hasClass(self.res(c, 'cwdfile'))) { - hash = self.cwdId2Hash(dst.attr('id')); - } else if (dst.hasClass(self.res(c, 'navdir'))) { - hash = self.navId2Hash(dst.attr('id')); - } else { - hash = cwd; - } - - cnt = targets.length; - - while (cnt--) { - h = targets[cnt]; - // ignore drop into itself or in own location - if (h != hash && files[h].phash != hash) { - result.push(h); - } else { - ((isCopy && h !== hash && files[hash].write)? dups : faults).push(h); - } - } - - if (faults.length) { - return false; - } - - ui.helper.data('droped', true); - - if (dups.length) { - ui.helper.hide(); - self.exec('duplicate', dups, {_userAction: true}); - } - - if (result.length) { - ui.helper.hide(); - self.clipboard(result, !isCopy); - self.exec('paste', hash, {_userAction: true}, hash).always(function(){ - self.clipboard([]); - self.trigger('unlockfiles', {files : targets}); - }); - self.trigger('drop', {files : targets}); - } - } - }; - - /** - * Return true if filemanager is active - * - * @return Boolean - **/ - this.enabled = function() { - return enabled && this.visible(); - }; - - /** - * Return true if filemanager is visible - * - * @return Boolean - **/ - this.visible = function() { - return node[0].elfinder && node.is(':visible'); - }; - - /** - * Return file is root? - * - * @param Object target file object - * @return Boolean - */ - this.isRoot = function(file) { - return (file.isroot || ! file.phash)? true : false; - }; - - /** - * Return root dir hash for current working directory - * - * @param String target hash - * @param Boolean include fake parent (optional) - * @return String - */ - this.root = function(hash, fake) { - hash = hash || cwd; - var dir, i; - - if (! fake) { - $.each(self.roots, function(id, rhash) { - if (hash.indexOf(id) === 0) { - dir = rhash; - return false; - } - }); - if (dir) { - return dir; - } - } - - dir = files[hash]; - while (dir && dir.phash && (fake || ! dir.isroot)) { - dir = files[dir.phash]; - } - if (dir) { - return dir.hash; - } - - while (i in files && files.hasOwnProperty(i)) { - dir = files[i]; - if (dir.mime === 'directory' && !dir.phash && dir.read) { - return dir.hash; - } - } - - return ''; - }; - - /** - * Return current working directory info - * - * @return Object - */ - this.cwd = function() { - return files[cwd] || {}; - }; - - /** - * Return required cwd option - * - * @param String option name - * @param String target hash (optional) - * @return mixed - */ - this.option = function(name, target) { - var res, item; - target = target || cwd; - if (self.optionsByHashes[target] && typeof self.optionsByHashes[target][name] !== 'undefined') { - return self.optionsByHashes[target][name]; - } - if (self.hasVolOptions && cwd !== target && (!(item = self.file(target)) || item.phash !== cwd)) { - res = ''; - $.each(self.volOptions, function(id, opt) { - if (target.indexOf(id) === 0) { - res = opt[name] || ''; - return false; - } - }); - return res; - } else { - return cwdOptions[name] || ''; - } - }; - - /** - * Return disabled commands by each folder - * - * @param Array target hashes - * @return Array - */ - this.getDisabledCmds = function(targets, flip) { - var disabled = {'hidden': true}; - if (! Array.isArray(targets)) { - targets = [ targets ]; - } - $.each(targets, function(i, h) { - var disCmds = self.option('disabledFlip', h); - if (disCmds) { - Object.assign(disabled, disCmds); - } - }); - return flip? disabled : Object.keys(disabled); - }; - - /** - * Return file data from current dir or tree by it's hash - * - * @param String file hash - * @return Object - */ - this.file = function(hash, alsoHidden) { - return hash? (files[hash] || (alsoHidden? hiddenFiles[hash] : void(0))) : void(0); - }; - - /** - * Return all cached files - * - * @param String parent hash - * @return Object - */ - this.files = function(phash) { - var items = {}; - if (phash) { - if (!ownFiles[phash]) { - return {}; - } - $.each(ownFiles[phash], function(h) { - if (files[h]) { - items[h] = files[h]; - } else { - delete ownFiles[phash][h]; - } - }); - return Object.assign({}, items); - } - return Object.assign({}, files); - }; - - /** - * Return list of file parents hashes include file hash - * - * @param String file hash - * @return Array - */ - this.parents = function(hash) { - var parents = [], - dir; - - while (hash && (dir = this.file(hash))) { - parents.unshift(dir.hash); - hash = dir.phash; - } - return parents; - }; - - this.path2array = function(hash, i18) { - var file, - path = []; - - while (hash) { - if ((file = files[hash]) && file.hash) { - path.unshift(i18 && file.i18 ? file.i18 : file.name); - hash = file.isroot? null : file.phash; - } else { - path = []; - break; - } - } - - return path; - }; - - /** - * Return file path or Get path async with jQuery.Deferred - * - * @param Object file - * @param Boolean i18 - * @param Object asyncOpt - * @return String|jQuery.Deferred - */ - this.path = function(hash, i18, asyncOpt) { - var path = files[hash] && files[hash].path - ? files[hash].path - : this.path2array(hash, i18).join(cwdOptions.separator); - if (! asyncOpt || ! files[hash]) { - return path; - } else { - asyncOpt = Object.assign({notify: {type : 'parents', cnt : 1, hideCnt : true}}, asyncOpt); - - var dfd = $.Deferred(), - notify = asyncOpt.notify, - noreq = false, - req = function() { - self.request({ - data : {cmd : 'parents', target : files[hash].phash}, - notify : notify, - preventFail : true - }) - .done(done) - .fail(function() { - dfd.reject(); - }); - }, - done = function() { - self.one('parentsdone', function() { - path = self.path(hash, i18); - if (path === '' && noreq) { - //retry with request - noreq = false; - req(); - } else { - if (notify) { - clearTimeout(ntftm); - notify.cnt = -(parseInt(notify.cnt || 0)); - self.notify(notify); - } - dfd.resolve(path); - } - }); - }, - ntftm; - - if (path) { - return dfd.resolve(path); - } else { - if (self.ui['tree']) { - // try as no request - if (notify) { - ntftm = setTimeout(function() { - self.notify(notify); - }, self.notifyDelay); - } - noreq = true; - done(true); - } else { - req(); - } - return dfd; - } - } - }; - - /** - * Return file url if set - * - * @param String file hash - * @param Object Options - * @return String|Object of jQuery Deferred - */ - this.url = function(hash, o) { - var file = files[hash], - opts = o || {}, - async = opts.async || false, - temp = opts.temporary || false, - onetm = (opts.onetime && self.option('onetimeUrl', hash)) || false, - absurl = opts.absurl || false, - dfrd = (async || onetm)? $.Deferred() : null, - filter = function(url) { - if (url && absurl) { - url = self.convAbsUrl(url); - } - return url; - }, - getUrl = function(url) { - if (url) { - return filter(url); - } - if (file.url) { - return filter(file.url); - } - - if (typeof baseUrl === 'undefined') { - baseUrl = self.option('url', (!self.isRoot(file) && file.phash) || file.hash); - } - - if (baseUrl) { - return filter(baseUrl + $.map(self.path2array(hash), function(n) { return encodeURIComponent(n); }).slice(1).join('/')); - } - - var params = Object.assign({}, self.customData, { - cmd: 'file', - target: file.hash - }); - if (self.oldAPI) { - params.cmd = 'open'; - params.current = file.phash; - } - return filter(self.options.url + (self.options.url.indexOf('?') === -1 ? '?' : '&') + $.param(params, true)); - }, - baseUrl, res; - - if (!file || !file.read) { - return async? dfrd.resolve('') : ''; - } - - if (onetm) { - async = true; - this.request({ - data : { cmd : 'url', target : hash, options : { onetime: 1 } }, - preventDefault : true, - options: {async: async}, - notify: {type : 'file', cnt : 1, hideCnt : true} - }).done(function(data) { - dfrd.resolve(filter(data.url || '')); - }).fail(function() { - dfrd.resolve(''); - }); - } else { - if (file.url == '1' || (temp && !file.url && !(baseUrl = self.option('url', (!self.isRoot(file) && file.phash) || file.hash)))) { - this.request({ - data : { cmd : 'url', target : hash, options : { temporary: temp? 1 : 0 } }, - preventDefault : true, - options: {async: async}, - notify: async? {type : temp? 'file' : 'url', cnt : 1, hideCnt : true} : {} - }) - .done(function(data) { - file.url = data.url || ''; - }) - .fail(function() { - file.url = ''; - }) - .always(function() { - var url; - if (file.url && temp) { - url = file.url; - file.url = '1'; // restore - } - if (async) { - dfrd.resolve(getUrl(url)); - } else { - return getUrl(url); - } - }); - } else { - if (async) { - dfrd.resolve(getUrl()); - } else { - return getUrl(); - } - } - } - if (async) { - return dfrd; - } - }; - - /** - * Return file url for the extarnal service - * - * @param String hash The hash - * @param Object options The options - * @return Object jQuery Deferred - */ - this.forExternalUrl = function(hash, options) { - var onetime = self.option('onetimeUrl', hash), - opts = { - async: true, - absurl: true - }; - - opts[onetime? 'onetime' : 'temporary'] = true; - return self.url(hash, Object.assign({}, options, opts)); - }; - - /** - * Return file url for open in elFinder - * - * @param String file hash - * @param Boolean for download link - * @return String - */ - this.openUrl = function(hash, download) { - var file = files[hash], - url = ''; - - if (!file || !file.read) { - return ''; - } - - if (!download) { - if (file.url) { - if (file.url != 1) { - url = file.url; - } - } else if (cwdOptions.url && file.hash.indexOf(self.cwd().volumeid) === 0) { - url = cwdOptions.url + $.map(this.path2array(hash), function(n) { return encodeURIComponent(n); }).slice(1).join('/'); - } - if (url) { - url += (url.match(/\?/)? '&' : '?') + '_'.repeat((url.match(/[\?&](_+)t=/g) || ['&t=']).sort().shift().match(/[\?&](_*)t=/)[1].length + 1) + 't=' + (file.ts || parseInt(+new Date()/1000)); - return url; - } - } - - url = this.options.url; - url = url + (url.indexOf('?') === -1 ? '?' : '&') - + (this.oldAPI ? 'cmd=open¤t='+file.phash : 'cmd=file') - + '&target=' + file.hash - + '&_t=' + (file.ts || parseInt(+new Date()/1000)); - - if (download) { - url += '&download=1'; - } - - $.each(this.customData, function(key, val) { - url += '&' + encodeURIComponent(key) + '=' + encodeURIComponent(val); - }); - - return url; - }; - - /** - * Return thumbnail url - * - * @param Object file object - * @return String - */ - this.tmb = function(file) { - var tmbUrl, tmbCrop, - cls = 'elfinder-cwd-bgurl', - url = ''; - - if ($.isPlainObject(file)) { - if (self.searchStatus.state && file.hash.indexOf(self.cwd().volumeid) !== 0) { - tmbUrl = self.option('tmbUrl', file.hash); - tmbCrop = self.option('tmbCrop', file.hash); - } else { - tmbUrl = cwdOptions['tmbUrl']; - tmbCrop = cwdOptions['tmbCrop']; - } - if (tmbCrop) { - cls += ' elfinder-cwd-bgurl-crop'; - } - if (tmbUrl === 'self' && file.mime.indexOf('image/') === 0) { - url = self.openUrl(file.hash); - cls += ' elfinder-cwd-bgself'; - } else if ((self.oldAPI || tmbUrl) && file && file.tmb && file.tmb != 1) { - url = tmbUrl + file.tmb; - } else if (self.newAPI && file && file.tmb && file.tmb != 1) { - url = file.tmb; - } - if (url) { - if (file.ts && tmbUrl !== 'self') { - url += (url.match(/\?/)? '&' : '?') + '_t=' + file.ts; - } - return { url: url, className: cls }; - } - } - - return false; - }; - - /** - * Return selected files hashes - * - * @return Array - **/ - this.selected = function() { - return selected.slice(0); - }; - - /** - * Return selected files info - * - * @return Array - */ - this.selectedFiles = function() { - return $.map(selected, function(hash) { return files[hash] ? Object.assign({}, files[hash]) : null; }); - }; - - /** - * Return true if file with required name existsin required folder - * - * @param String file name - * @param String parent folder hash - * @return Boolean - */ - this.fileByName = function(name, phash) { - var hash; - - for (hash in files) { - if (files.hasOwnProperty(hash) && files[hash].phash == phash && files[hash].name == name) { - return files[hash]; - } - } - }; - - /** - * Valid data for required command based on rules - * - * @param String command name - * @param Object cammand's data - * @return Boolean - */ - this.validResponse = function(cmd, data) { - return data.error || this.rules[this.rules[cmd] ? cmd : 'defaults'](data); - }; - - /** - * Return bytes from ini formated size - * - * @param String ini formated size - * @return Integer - */ - this.returnBytes = function(val) { - var last; - if (isNaN(val)) { - if (! val) { - val = ''; - } - // for ex. 1mb, 1KB - val = val.replace(/b$/i, ''); - last = val.charAt(val.length - 1).toLowerCase(); - val = val.replace(/[tgmk]$/i, ''); - if (last == 't') { - val = val * 1024 * 1024 * 1024 * 1024; - } else if (last == 'g') { - val = val * 1024 * 1024 * 1024; - } else if (last == 'm') { - val = val * 1024 * 1024; - } else if (last == 'k') { - val = val * 1024; - } - val = isNaN(val)? 0 : parseInt(val); - } else { - val = parseInt(val); - if (val < 1) val = 0; - } - return val; - }; - - /** - * Process ajax request. - * Fired events : - * @todo - * @example - * @todo - * @return $.Deferred - */ - this.request = function(opts) { - var self = this, - o = this.options, - dfrd = $.Deferred(), - // request ID - reqId = (+ new Date()).toString(16) + Math.floor(1000 * Math.random()).toString(16), - // request data - data = Object.assign({}, self.customData, {mimes : o.onlyMimes}, opts.data || opts), - // command name - cmd = data.cmd, - // request type is binary - isBinary = (opts.options || {}).dataType === 'binary', - // current cmd is "open" - isOpen = (!opts.asNotOpen && cmd === 'open'), - // call default fail callback (display error dialog) ? - deffail = !(isBinary || opts.preventDefault || opts.preventFail), - // call default success callback ? - defdone = !(isBinary || opts.preventDefault || opts.preventDone), - // options for notify dialog - notify = Object.assign({}, opts.notify), - // make cancel button - cancel = !!opts.cancel, - // do not normalize data - return as is - raw = isBinary || !!opts.raw, - // sync files on request fail - syncOnFail = opts.syncOnFail, - // use lazy() - lazy = !!opts.lazy, - // prepare function before done() - prepare = opts.prepare, - // navigate option object when cmd done - navigate = opts.navigate, - // open notify dialog timeout - timeout, - // use browser cache - useCache = (opts.options || {}).cache, - // request options - options = Object.assign({ - url : o.url, - async : true, - type : this.requestType, - dataType : 'json', - cache : (self.api >= 2.1029), // api >= 2.1029 has unique request ID - data : data, - headers : this.customHeaders, - xhrFields: this.xhrFields - }, opts.options || {}), - /** - * Default success handler. - * Call default data handlers and fire event with command name. - * - * @param Object normalized response data - * @return void - **/ - done = function(data) { - data.warning && self.error(data.warning); - - if (isOpen) { - open(data); - } else { - self.updateCache(data); - } - - data.changed && data.changed.length && change(data.changed); - - self.lazy(function() { - // fire some event to update cache/ui - data.removed && data.removed.length && self.remove(data); - data.added && data.added.length && self.add(data); - data.changed && data.changed.length && self.change(data); - }).then(function() { - // fire event with command name - return self.lazy(function() { - self.trigger(cmd, data, false); - }); - }).then(function() { - // fire event with command name + 'done' - return self.lazy(function() { - self.trigger(cmd + 'done'); - }); - }).then(function() { - // make toast message - if (data.toasts && Array.isArray(data.toasts)) { - $.each(data.toasts, function() { - this.msg && self.toast(this); - }); - } - // force update content - data.sync && self.sync(); - }); - }, - /** - * Request error handler. Reject dfrd with correct error message. - * - * @param jqxhr request object - * @param String request status - * @return void - **/ - error = function(xhr, status) { - var error, data, - d = self.options.debug; - - switch (status) { - case 'abort': - error = xhr.quiet ? '' : ['errConnect', 'errAbort']; - break; - case 'timeout': - error = ['errConnect', 'errTimeout']; - break; - case 'parsererror': - error = ['errResponse', 'errDataNotJSON']; - if (xhr.responseText) { - if (! cwd || (d && (d === 'all' || d['backend-error']))) { - error.push(xhr.responseText); - } - } - break; - default: - if (xhr.responseText) { - // check responseText, Is that JSON? - try { - data = JSON.parse(xhr.responseText); - if (data && data.error) { - error = data.error; - } - } catch(e) {} - } - if (! error) { - if (xhr.status == 403) { - error = ['errConnect', 'errAccess', 'HTTP error ' + xhr.status]; - } else if (xhr.status == 404) { - error = ['errConnect', 'errNotFound', 'HTTP error ' + xhr.status]; - } else if (xhr.status >= 500) { - error = ['errResponse', 'errServerError', 'HTTP error ' + xhr.status]; - } else { - if (xhr.status == 414 && options.type === 'get') { - // retry by POST method - options.type = 'post'; - self.abortXHR(xhr); - dfrd.xhr = xhr = self.transport.send(options).fail(error).done(success); - return; - } - error = xhr.quiet ? '' : ['errConnect', 'HTTP error ' + xhr.status]; - } - } - } - - self.trigger(cmd + 'done'); - dfrd.reject({error: error}, xhr, status); - }, - /** - * Request success handler. Valid response data and reject/resolve dfrd. - * - * @param Object response data - * @param String request status - * @return void - **/ - success = function(response) { - var d = self.options.debug; - - // Set currrent request command name - self.currentReqCmd = cmd; - - if (response.debug && (!d || d !== 'all')) { - if (!d) { - d = self.options.debug = {}; - } - d['backend-error'] = true; - d['warning'] = true; - } - - if (raw) { - self.abortXHR(xhr); - response && response.debug && self.debug('backend-debug', response); - return dfrd.resolve(response); - } - - if (!response) { - return dfrd.reject({error :['errResponse', 'errDataEmpty']}, xhr, response); - } else if (!$.isPlainObject(response)) { - return dfrd.reject({error :['errResponse', 'errDataNotJSON']}, xhr, response); - } else if (response.error) { - if (isOpen) { - // check leafRoots - $.each(self.leafRoots, function(phash, roots) { - self.leafRoots[phash] = $.grep(roots, function(h) { return h !== data.target; }); - }); - } - return dfrd.reject({error :response.error}, xhr, response); - } - - var resolve = function() { - var pushLeafRoots = function(name) { - if (self.leafRoots[data.target] && response[name]) { - $.each(self.leafRoots[data.target], function(i, h) { - var root; - if (root = self.file(h)) { - response[name].push(root); - } - }); - } - }, - setTextMimes = function() { - self.textMimes = {}; - $.each(self.res('mimes', 'text'), function() { - self.textMimes[this.toLowerCase()] = true; - }); - }, - actionTarget; - - if (isOpen) { - pushLeafRoots('files'); - } else if (cmd === 'tree') { - pushLeafRoots('tree'); - } - - response = self.normalize(response); - - if (!self.validResponse(cmd, response)) { - return dfrd.reject({error :(response.norError || 'errResponse')}, xhr, response); - } - - if (isOpen) { - if (!self.api) { - self.api = response.api || 1; - if (self.api == '2.0' && typeof response.options.uploadMaxSize !== 'undefined') { - self.api = '2.1'; - } - self.newAPI = self.api >= 2; - self.oldAPI = !self.newAPI; - } - - if (response.textMimes && Array.isArray(response.textMimes)) { - self.resources.mimes.text = response.textMimes; - setTextMimes(); - } - !self.textMimes && setTextMimes(); - - if (response.options) { - cwdOptions = Object.assign({}, cwdOptionsDefault, response.options); - } - - if (response.netDrivers) { - self.netDrivers = response.netDrivers; - } - - if (response.maxTargets) { - self.maxTargets = response.maxTargets; - } - - if (!!data.init) { - self.uplMaxSize = self.returnBytes(response.uplMaxSize); - self.uplMaxFile = !!response.uplMaxFile? Math.min(parseInt(response.uplMaxFile), 50) : 20; - } - } - - if (typeof prepare === 'function') { - prepare(response); - } - - if (navigate) { - actionTarget = navigate.target || 'added'; - if (response[actionTarget] && response[actionTarget].length) { - self.one(cmd + 'done', function() { - var targets = response[actionTarget], - newItems = self.findCwdNodes(targets), - inCwdHashes = function() { - var cwdHash = self.cwd().hash; - return $.map(targets, function(f) { return (f.phash && cwdHash === f.phash)? f.hash : null; }); - }, - hashes = inCwdHashes(), - makeToast = function(t) { - var node = void(0), - data = t.action? t.action.data : void(0), - cmd, msg, done; - if ((data || hashes.length) && t.action && (msg = t.action.msg) && (cmd = t.action.cmd) && (!t.action.cwdNot || t.action.cwdNot !== self.cwd().hash)) { - done = t.action.done; - data = t.action.data; - node = $('
') - .append( - $('') - .on('mouseenter mouseleave', function(e) { - $(this).toggleClass('ui-state-hover', e.type == 'mouseenter'); - }) - .on('click', function() { - self.exec(cmd, data || hashes, {_userAction: true, _currentType: 'toast', _currentNode: $(this) }); - if (done) { - self.one(cmd+'done', function() { - if (typeof done === 'function') { - done(); - } else if (done === 'select') { - self.trigger('selectfiles', {files : inCwdHashes()}); - } - }); - } - }) - ); - } - delete t.action; - t.extNode = node; - return t; - }; - - if (! navigate.toast) { - navigate.toast = {}; - } - - !navigate.noselect && self.trigger('selectfiles', {files : self.searchStatus.state > 1 ? $.map(targets, function(f) { return f.hash; }) : hashes}); - - if (newItems.length) { - if (!navigate.noscroll) { - newItems.first().trigger('scrolltoview', {blink : false}); - self.resources.blink(newItems, 'lookme'); - } - if ($.isPlainObject(navigate.toast.incwd)) { - self.toast(makeToast(navigate.toast.incwd)); - } - } else { - if ($.isPlainObject(navigate.toast.inbuffer)) { - self.toast(makeToast(navigate.toast.inbuffer)); - } - } - }); - } - } - - dfrd.resolve(response); - - response.debug && self.debug('backend-debug', response); - }; - self.abortXHR(xhr); - lazy? self.lazy(resolve) : resolve(); - }, - xhr, _xhr, - xhrAbort = function(e) { - if (xhr && xhr.state() === 'pending') { - self.abortXHR(xhr, { quiet: true , abort: true }); - if (!e || (e.type !== 'unload' && e.type !== 'destroy')) { - self.autoSync(); - } - } - }, - abort = function(e){ - self.trigger(cmd + 'done'); - if (e.type == 'autosync') { - if (e.data.action != 'stop') return; - } else if (e.type != 'unload' && e.type != 'destroy' && e.type != 'openxhrabort') { - if (!e.data.added || !e.data.added.length) { - return; - } - } - xhrAbort(e); - }, - request = function(mode) { - var queueAbort = function() { - syncOnFail = false; - dfrd.reject(); - }; - - if (mode) { - if (mode === 'cmd') { - return cmd; - } - } - - if (isOpen) { - if (requestQueueSkipOpen) { - return dfrd.reject(); - } - requestQueueSkipOpen = true; - } - - dfrd.always(function() { - delete options.headers['X-elFinderReqid']; - }).fail(function(error, xhr, response) { - var errData = { - cmd: cmd, - err: error, - xhr: xhr, - rc: response - }, errMsg; - - // unset this cmd queue when user canceling - // see notify : function - `cancel.reject(0);` - if (error === 0) { - if (requestQueue.length) { - requestQueue = $.grep(requestQueue, function(req) { - return (req('cmd') === cmd) ? false : true; - }); - } - } - // trigger "requestError" event - self.trigger('requestError', errData); - if (errData._getEvent && errData._getEvent().isDefaultPrevented()) { - deffail = false; - syncOnFail = false; - if (error) { - error.error = ''; - } - } - // abort xhr - xhrAbort(); - if (isOpen) { - openDir = self.file(data.target); - openDir && openDir.volumeid && self.isRoot(openDir) && delete self.volumeExpires[openDir.volumeid]; - } - self.trigger(cmd + 'fail', response); - errMsg = (typeof error === 'object')? error.error : error; - if (errMsg) { - deffail ? self.error(errMsg) : self.debug('error', self.i18n(errMsg)); - } - syncOnFail && self.sync(); - }); - - if (!cmd) { - syncOnFail = false; - return dfrd.reject({error :'errCmdReq'}); - } - - if (self.maxTargets && data.targets && data.targets.length > self.maxTargets) { - syncOnFail = false; - return dfrd.reject({error :['errMaxTargets', self.maxTargets]}); - } - - defdone && dfrd.done(done); - - // quiet abort not completed "open" requests - if (isOpen) { - while ((_xhr = queue.pop())) { - _xhr.queueAbort(); - } - if (cwd !== data.target) { - while ((_xhr = cwdQueue.pop())) { - _xhr.queueAbort(); - } - } - } - - // trigger abort autoSync for commands to add the item - if ($.inArray(cmd, (self.cmdsToAdd + ' autosync').split(' ')) !== -1) { - if (cmd !== 'autosync') { - self.autoSync('stop'); - dfrd.always(function() { - self.autoSync(); - }); - } - self.trigger('openxhrabort'); - } - - delete options.preventFail; - - if (self.api >= 2.1029) { - if (useCache) { - options.headers['X-elFinderReqid'] = reqId; - } else { - Object.assign(options.data, { reqid : reqId }); - } - } - - // function for set value of this syncOnFail - dfrd.syncOnFail = function(state) { - syncOnFail = !!state; - }; - - requestCnt++; - - dfrd.xhr = xhr = self.transport.send(options).always(function() { - // set responseURL from native xhr object - if (options._xhr && typeof options._xhr.responseURL !== 'undefined') { - xhr.responseURL = options._xhr.responseURL || ''; - } - --requestCnt; - if (requestQueue.length) { - requestQueue.shift()(); - } else { - requestQueueSkipOpen = false; - } - }).fail(error).done(success); - - if (self.api >= 2.1029) { - xhr._requestId = reqId; - } - - if (isOpen || (data.compare && cmd === 'info')) { - // regist function queueAbort - xhr.queueAbort = queueAbort; - // add autoSync xhr into queue - queue.unshift(xhr); - // bind abort() - data.compare && self.bind(self.cmdsToAdd + ' autosync openxhrabort', abort); - dfrd.always(function() { - var ndx = $.inArray(xhr, queue); - data.compare && self.unbind(self.cmdsToAdd + ' autosync openxhrabort', abort); - ndx !== -1 && queue.splice(ndx, 1); - }); - } else if ($.inArray(cmd, self.abortCmdsOnOpen) !== -1) { - // regist function queueAbort - xhr.queueAbort = queueAbort; - // add "open" xhr, only cwd xhr into queue - cwdQueue.unshift(xhr); - dfrd.always(function() { - var ndx = $.inArray(xhr, cwdQueue); - ndx !== -1 && cwdQueue.splice(ndx, 1); - }); - } - - // abort pending xhr on window unload or elFinder destroy - self.bind('unload destroy', abort); - dfrd.always(function() { - self.unbind('unload destroy', abort); - }); - - return dfrd; - }, - queueingRequest = function() { - // show notify - if (notify.type && notify.cnt) { - if (cancel) { - notify.cancel = dfrd; - opts.eachCancel && (notify.id = +new Date()); - } - timeout = setTimeout(function() { - self.notify(notify); - dfrd.always(function() { - notify.cnt = -(parseInt(notify.cnt)||0); - self.notify(notify); - }); - }, self.notifyDelay); - - dfrd.always(function() { - clearTimeout(timeout); - }); - } - // queueing - if (isOpen) { - requestQueueSkipOpen = false; - } - if (requestCnt < requestMaxConn) { - // do request - return request(); - } else { - if (isOpen) { - requestQueue.unshift(request); - } else { - requestQueue.push(request); - } - return dfrd; - } - }, - bindData = {opts: opts, result: true}, - openDir; - - // prevent request initial request is completed - if (!self.api && !data.init) { - syncOnFail = false; - return dfrd.reject(); - } - - // trigger "request.cmd" that callback be able to cancel request by substituting "false" for "event.data.result" - self.trigger('request.' + cmd, bindData, true); - - if (! bindData.result) { - self.trigger(cmd + 'done'); - return dfrd.reject(); - } else if (typeof bindData.result === 'object' && bindData.result.promise) { - bindData.result - .done(queueingRequest) - .fail(function() { - self.trigger(cmd + 'done'); - dfrd.reject(); - }); - return dfrd; - } - - return queueingRequest(); - }; - - /** - * Call cache() - * Store info about files/dirs in "files" object. - * - * @param Array files - * @return void - */ - this.cache = function(dataArray) { - if (! Array.isArray(dataArray)) { - dataArray = [ dataArray ]; - } - cache(dataArray); - }; - - /** - * Update file object caches by respose data object - * - * @param Object respose data object - * @return void - */ - this.updateCache = function(data) { - if ($.isPlainObject(data)) { - data.files && data.files.length && cache(data.files, 'files'); - data.tree && data.tree.length && cache(data.tree, 'tree'); - data.removed && data.removed.length && remove(data.removed); - data.added && data.added.length && cache(data.added, 'add'); - data.changed && data.changed.length && change(data.changed, 'change'); - } - }; - - /** - * Compare current files cache with new files and return diff - * - * @param Array new files - * @param String target folder hash - * @param Array exclude properties to compare - * @return Object - */ - this.diff = function(incoming, onlydir, excludeProps) { - var raw = {}, - added = [], - removed = [], - changed = [], - excludes = null, - isChanged = function(hash) { - var l = changed.length; - - while (l--) { - if (changed[l].hash == hash) { - return true; - } - } - }; - - $.each(incoming, function(i, f) { - raw[f.hash] = f; - }); - - // make excludes object - if (excludeProps && excludeProps.length) { - excludes = {}; - $.each(excludeProps, function() { - excludes[this] = true; - }); - } - - // find removed - $.each(files, function(hash, f) { - if (! raw[hash] && (! onlydir || f.phash === onlydir)) { - removed.push(hash); - } - }); - - // compare files - $.each(raw, function(hash, file) { - var origin = files[hash], - orgKeys = {}, - chkKeyLen; - - if (!origin) { - added.push(file); - } else { - // make orgKeys object - $.each(Object.keys(origin), function() { - orgKeys[this] = true; - }); - $.each(file, function(prop) { - delete orgKeys[prop]; - if (! excludes || ! excludes[prop]) { - if (file[prop] !== origin[prop]) { - changed.push(file); - orgKeys = {}; - return false; - } - } - }); - chkKeyLen = Object.keys(orgKeys).length; - if (chkKeyLen !== 0) { - if (excludes) { - $.each(orgKeys, function(prop) { - if (excludes[prop]) { - --chkKeyLen; - } - }); - } - (chkKeyLen !== 0) && changed.push(file); - } - } - }); - - // parents of removed dirs mark as changed (required for tree correct work) - $.each(removed, function(i, hash) { - var file = files[hash], - phash = file.phash; - - if (phash - && file.mime == 'directory' - && $.inArray(phash, removed) === -1 - && raw[phash] - && !isChanged(phash)) { - changed.push(raw[phash]); - } - }); - - return { - added : added, - removed : removed, - changed : changed - }; - }; - - /** - * Sync content - * - * @return jQuery.Deferred - */ - this.sync = function(onlydir, polling) { - this.autoSync('stop'); - var self = this, - compare = function(){ - var c = '', cnt = 0, mtime = 0; - if (onlydir && polling) { - $.each(files, function(h, f) { - if (f.phash && f.phash === onlydir) { - ++cnt; - mtime = Math.max(mtime, f.ts); - } - c = cnt+':'+mtime; - }); - } - return c; - }, - comp = compare(), - dfrd = $.Deferred().done(function() { self.trigger('sync'); }), - opts = [this.request({ - data : {cmd : 'open', reload : 1, target : cwd, tree : (! onlydir && this.ui.tree) ? 1 : 0, compare : comp}, - preventDefault : true - })], - exParents = function() { - var parents = [], - curRoot = self.file(self.root(cwd)), - curId = curRoot? curRoot.volumeid : null, - phash = self.cwd().phash, - isroot,pdir; - - while(phash) { - if (pdir = self.file(phash)) { - if (phash.indexOf(curId) !== 0) { - parents.push( {target: phash, cmd: 'tree'} ); - if (! self.isRoot(pdir)) { - parents.push( {target: phash, cmd: 'parents'} ); - } - curRoot = self.file(self.root(phash)); - curId = curRoot? curRoot.volumeid : null; - } - phash = pdir.phash; - } else { - phash = null; - } - } - return parents; - }; - - if (! onlydir && self.api >= 2) { - (cwd !== this.root()) && opts.push(this.request({ - data : {cmd : 'parents', target : cwd}, - preventDefault : true - })); - $.each(exParents(), function(i, data) { - opts.push(self.request({ - data : {cmd : data.cmd, target : data.target}, - preventDefault : true - })); - }); - } - $.when.apply($, opts) - .fail(function(error, xhr) { - if (! polling || $.inArray('errOpen', error) !== -1) { - dfrd.reject(error); - self.parseError(error) && self.request({ - data : {cmd : 'open', target : (self.lastDir('') || self.root()), tree : 1, init : 1}, - notify : {type : 'open', cnt : 1, hideCnt : true} - }); - } else { - dfrd.reject((error && xhr.status != 0)? error : void 0); - } - }) - .done(function(odata) { - var pdata, argLen, i; - - if (odata.cwd.compare) { - if (comp === odata.cwd.compare) { - return dfrd.reject(); - } - } - - // for 2nd and more requests - pdata = {tree : []}; - - // results marge of 2nd and more requests - argLen = arguments.length; - if (argLen > 1) { - for(i = 1; i < argLen; i++) { - if (arguments[i].tree && arguments[i].tree.length) { - pdata.tree.push.apply(pdata.tree, arguments[i].tree); - } - } - } - - if (self.api < 2.1) { - if (! pdata.tree) { - pdata.tree = []; - } - pdata.tree.push(odata.cwd); - } - - // data normalize - odata = self.normalize(odata); - if (!self.validResponse('open', odata)) { - return dfrd.reject((odata.norError || 'errResponse')); - } - pdata = self.normalize(pdata); - if (!self.validResponse('tree', pdata)) { - return dfrd.reject((pdata.norError || 'errResponse')); - } - - var diff = self.diff(odata.files.concat(pdata && pdata.tree ? pdata.tree : []), onlydir); - - diff.added.push(odata.cwd); - - self.updateCache(diff); - - // trigger events - diff.removed.length && self.remove(diff); - diff.added.length && self.add(diff); - diff.changed.length && self.change(diff); - return dfrd.resolve(diff); - }) - .always(function() { - self.autoSync(); - }); - - return dfrd; - }; - - this.upload = function(files) { - return this.transport.upload(files, this); - }; - - /** - * Bind keybord shortcut to keydown event - * - * @example - * elfinder.shortcut({ - * pattern : 'ctrl+a', - * description : 'Select all files', - * callback : function(e) { ... }, - * keypress : true|false (bind to keypress instead of keydown) - * }) - * - * @param Object shortcut config - * @return elFinder - */ - this.shortcut = function(s) { - var patterns, pattern, code, i, parts; - - if (this.options.allowShortcuts && s.pattern && $.isFunction(s.callback)) { - patterns = s.pattern.toUpperCase().split(/\s+/); - - for (i= 0; i < patterns.length; i++) { - pattern = patterns[i]; - parts = pattern.split('+'); - code = (code = parts.pop()).length == 1 - ? (code > 0 ? code : code.charCodeAt(0)) - : (code > 0 ? code : $.ui.keyCode[code]); - - if (code && !shortcuts[pattern]) { - shortcuts[pattern] = { - keyCode : code, - altKey : $.inArray('ALT', parts) != -1, - ctrlKey : $.inArray('CTRL', parts) != -1, - shiftKey : $.inArray('SHIFT', parts) != -1, - type : s.type || 'keydown', - callback : s.callback, - description : s.description, - pattern : pattern - }; - } - } - } - return this; - }; - - /** - * Registered shortcuts - * - * @type Object - **/ - this.shortcuts = function() { - var ret = []; - - $.each(shortcuts, function(i, s) { - ret.push([s.pattern, self.i18n(s.description)]); - }); - return ret; - }; - - /** - * Get/set clipboard content. - * Return new clipboard content. - * - * @example - * this.clipboard([]) - clean clipboard - * this.clipboard([{...}, {...}], true) - put 2 files in clipboard and mark it as cutted - * - * @param Array new files hashes - * @param Boolean cut files? - * @return Array - */ - this.clipboard = function(hashes, cut) { - var map = function() { return $.map(clipboard, function(f) { return f.hash; }); }; - - if (hashes !== void(0)) { - clipboard.length && this.trigger('unlockfiles', {files : map()}); - remember = {}; - - clipboard = $.map(hashes||[], function(hash) { - var file = files[hash]; - if (file) { - - remember[hash] = true; - - return { - hash : hash, - phash : file.phash, - name : file.name, - mime : file.mime, - read : file.read, - locked : file.locked, - cut : !!cut - }; - } - return null; - }); - this.trigger('changeclipboard', {clipboard : clipboard.slice(0, clipboard.length)}); - cut && this.trigger('lockfiles', {files : map()}); - } - - // return copy of clipboard instead of refrence - return clipboard.slice(0, clipboard.length); - }; - - /** - * Return true if command enabled - * - * @param String command name - * @param String|void hash for check of own volume's disabled cmds - * @return Boolean - */ - this.isCommandEnabled = function(name, dstHash) { - var disabled, cmd, - cvid = self.cwd().volumeid || ''; - - // In serach results use selected item hash to check - if (!dstHash && self.searchStatus.state > 1 && self.selected().length) { - dstHash = self.selected()[0]; - } - if (dstHash && (! cvid || dstHash.indexOf(cvid) !== 0)) { - disabled = self.option('disabledFlip', dstHash); - //if (! disabled) { - // disabled = {}; - //} - } else { - disabled = cwdOptions.disabledFlip/* || {}*/; - } - cmd = this._commands[name]; - return cmd ? (cmd.alwaysEnabled || !disabled[name]) : false; - }; - - /** - * Exec command and return result; - * - * @param String command name - * @param String|Array usualy files hashes - * @param String|Array command options - * @param String|void hash for enabled check of own volume's disabled cmds - * @return $.Deferred - */ - this.exec = function(cmd, files, opts, dstHash) { - var dfrd, resType; - - // apply commandMap for keyboard shortcut - if (!dstHash && this.commandMap[cmd] && this.commandMap[cmd] !== 'hidden') { - cmd = this.commandMap[cmd]; - } - - if (cmd === 'open') { - if (this.searchStatus.state || this.searchStatus.ininc) { - this.trigger('searchend', { noupdate: true }); - } - this.autoSync('stop'); - } - if (!dstHash && files) { - if ($.isArray(files)) { - if (files.length) { - dstHash = files[0]; - } - } else { - dstHash = files; - } - } - dfrd = this._commands[cmd] && this.isCommandEnabled(cmd, dstHash) - ? this._commands[cmd].exec(files, opts) - : $.Deferred().reject('errUnknownCmd'); - - resType = typeof dfrd; - if (!(resType === 'object' && dfrd.promise)) { - self.debug('warning', '"cmd.exec()" should be returned "$.Deferred" but cmd "' + cmd + '" returned "' + resType + '"'); - dfrd = $.Deferred().resolve(); - } - - this.trigger('exec', { dfrd : dfrd, cmd : cmd, files : files, opts : opts, dstHash : dstHash }); - return dfrd; - }; - - /** - * Create and return dialog. - * - * @param String|DOMElement dialog content - * @param Object dialog options - * @return jQuery - */ - this.dialog = function(content, options) { - var dialog = $('
').append(content).appendTo(node).elfinderdialog(options, self), - dnode = dialog.closest('.ui-dialog'), - resize = function(){ - ! dialog.data('draged') && dialog.is(':visible') && dialog.elfinderdialog('posInit'); - }; - if (dnode.length) { - self.bind('resize', resize); - dnode.on('remove', function() { - self.unbind('resize', resize); - }); - } - return dialog; - }; - - /** - * Create and return toast. - * - * @param Object toast options - see ui/toast.js - * @return jQuery - */ - this.toast = function(options) { - return $('
').appendTo(this.ui.toast).elfindertoast(options || {}, this); - }; - - /** - * Return UI widget or node - * - * @param String ui name - * @return jQuery - */ - this.getUI = function(ui) { - return ui? (this.ui[ui] || $()) : node; - }; - - /** - * Return elFinder.command instance or instances array - * - * @param String command name - * @return Object | Array - */ - this.getCommand = function(name) { - return name === void(0) ? this._commands : this._commands[name]; - }; - - /** - * Resize elfinder node - * - * @param String|Number width - * @param String|Number height - * @return void - */ - this.resize = function(w, h) { - var getMargin = function() { - var m = node.outerHeight(true) - node.innerHeight(), - p = node; - - while(p.get(0) !== heightBase.get(0)) { - p = p.parent(); - m += p.outerHeight(true) - p.innerHeight(); - if (! p.parent().length) { - // reached the document - break; - } - } - return m; - }, - fit = ! node.hasClass('ui-resizable'), - prv = node.data('resizeSize') || {w: 0, h: 0}, - mt, size = {}; - - if (heightBase && heightBase.data('resizeTm')) { - clearTimeout(heightBase.data('resizeTm')); - } - - if (typeof h === 'string') { - if (mt = h.match(/^([0-9.]+)%$/)) { - // setup heightBase - if (! heightBase || ! heightBase.length) { - heightBase = $(window); - } - if (! heightBase.data('marginToMyNode')) { - heightBase.data('marginToMyNode', getMargin()); - } - if (! heightBase.data('fitToBaseFunc')) { - heightBase.data('fitToBaseFunc', function(e) { - var tm = heightBase.data('resizeTm'); - e.preventDefault(); - e.stopPropagation(); - tm && cancelAnimationFrame(tm); - if (! node.hasClass('elfinder-fullscreen') && (!self.UA.Mobile || heightBase.data('rotated') !== self.UA.Rotated)) { - heightBase.data('rotated', self.UA.Rotated); - heightBase.data('resizeTm', requestAnimationFrame(function() { - self.restoreSize(); - })); - } - }); - } - if (typeof heightBase.data('rotated') === 'undefined') { - heightBase.data('rotated', self.UA.Rotated); - } - h = heightBase.height() * (mt[1] / 100) - heightBase.data('marginToMyNode'); - - heightBase.off('resize.' + self.namespace, heightBase.data('fitToBaseFunc')); - fit && heightBase.on('resize.' + self.namespace, heightBase.data('fitToBaseFunc')); - } - } - - node.css({ width : w, height : parseInt(h) }); - size.w = Math.round(node.width()); - size.h = Math.round(node.height()); - node.data('resizeSize', size); - if (size.w !== prv.w || size.h !== prv.h) { - node.trigger('resize'); - this.trigger('resize', {width : size.w, height : size.h}); - } - }; - - /** - * Restore elfinder node size - * - * @return elFinder - */ - this.restoreSize = function() { - this.resize(width, height); - }; - - this.show = function() { - node.show(); - this.enable().trigger('show'); - }; - - this.hide = function() { - if (this.options.enableAlways) { - prevEnabled = enabled; - enabled = false; - } - this.disable(); - this.trigger('hide'); - node.hide(); - }; - - /** - * Lazy execution function - * - * @param Object function - * @param Number delay - * @param Object options - * @return Object jQuery.Deferred - */ - this.lazy = function(func, delay, opts) { - var busy = function(state) { - var cnt = node.data('lazycnt'), - repaint; - - if (state) { - repaint = node.data('lazyrepaint')? false : opts.repaint; - if (! cnt) { - node.data('lazycnt', 1) - .addClass('elfinder-processing'); - } else { - node.data('lazycnt', ++cnt); - } - if (repaint) { - node.data('lazyrepaint', true).css('display'); // force repaint - } - } else { - if (cnt && cnt > 1) { - node.data('lazycnt', --cnt); - } else { - repaint = node.data('lazyrepaint'); - node.data('lazycnt', 0) - .removeData('lazyrepaint') - .removeClass('elfinder-processing'); - repaint && node.css('display'); // force repaint; - self.trigger('lazydone'); - } - } - }, - dfd = $.Deferred(), - callFunc = function() { - dfd.resolve(func.call(dfd)); - busy(false); - }; - - delay = delay || 0; - opts = opts || {}; - busy(true); - - if (delay) { - setTimeout(callFunc, delay); - } else { - requestAnimationFrame(callFunc); - } - - return dfd; - }; - - /** - * Destroy this elFinder instance - * - * @return void - **/ - this.destroy = function() { - if (node && node[0].elfinder) { - node.hasClass('elfinder-fullscreen') && self.toggleFullscreen(node); - this.options.syncStart = false; - this.autoSync('forcestop'); - this.trigger('destroy').disable(); - clipboard = []; - selected = []; - listeners = {}; - shortcuts = {}; - $(window).off('.' + namespace); - $(document).off('.' + namespace); - self.trigger = function(){}; - $(beeper).remove(); - node.off() - .removeData() - .empty() - .append(prevContent.contents()) - .attr('class', prevContent.attr('class')) - .attr('style', prevContent.attr('style')); - delete node[0].elfinder; - // restore kept events - $.each(prevEvents, function(n, arr) { - $.each(arr, function(i, o) { - node.on(o.type + (o.namespace? '.'+o.namespace : ''), o.selector, o.handler); - }); - }); - } - }; - - /** - * Start or stop auto sync - * - * @param String|Bool stop - * @return void - */ - this.autoSync = function(mode) { - var sync; - if (self.options.sync >= 1000) { - if (syncInterval) { - clearTimeout(syncInterval); - syncInterval = null; - self.trigger('autosync', {action : 'stop'}); - } - - if (mode === 'stop') { - ++autoSyncStop; - } else { - autoSyncStop = Math.max(0, --autoSyncStop); - } - - if (autoSyncStop || mode === 'forcestop' || ! self.options.syncStart) { - return; - } - - // run interval sync - sync = function(start){ - var timeout; - if (cwdOptions.syncMinMs && (start || syncInterval)) { - start && self.trigger('autosync', {action : 'start'}); - timeout = Math.max(self.options.sync, cwdOptions.syncMinMs); - syncInterval && clearTimeout(syncInterval); - syncInterval = setTimeout(function() { - var dosync = true, hash = cwd, cts; - if (cwdOptions.syncChkAsTs && files[hash] && (cts = files[hash].ts)) { - self.request({ - data : {cmd : 'info', targets : [hash], compare : cts, reload : 1}, - preventDefault : true - }) - .done(function(data){ - var ts; - dosync = true; - if (data.compare) { - ts = data.compare; - if (ts == cts) { - dosync = false; - } - } - if (dosync) { - self.sync(hash).always(function(){ - if (ts) { - // update ts for cache clear etc. - files[hash].ts = ts; - } - sync(); - }); - } else { - sync(); - } - }) - .fail(function(error, xhr){ - var err = self.parseError(error); - if (err && xhr.status != 0) { - self.error(err); - if (Array.isArray(err) && $.inArray('errOpen', err) !== -1) { - self.request({ - data : {cmd : 'open', target : (self.lastDir('') || self.root()), tree : 1, init : 1}, - notify : {type : 'open', cnt : 1, hideCnt : true} - }); - } - } else { - syncInterval = setTimeout(function() { - sync(); - }, timeout); - } - }); - } else { - self.sync(cwd, true).always(function(){ - sync(); - }); - } - }, timeout); - } - }; - sync(true); - } - }; - - /** - * Return bool is inside work zone of specific point - * - * @param Number event.pageX - * @param Number event.pageY - * @return Bool - */ - this.insideWorkzone = function(x, y, margin) { - var rectangle = this.getUI('workzone').data('rectangle'); - - margin = margin || 1; - if (x < rectangle.left + margin - || x > rectangle.left + rectangle.width + margin - || y < rectangle.top + margin - || y > rectangle.top + rectangle.height + margin) { - return false; - } - return true; - }; - - /** - * Target ui node move to last of children of elFinder node fot to show front - * - * @param Object target Target jQuery node object - */ - this.toFront = function(target) { - var nodes = node.children('.ui-front').removeClass('elfinder-frontmost'), - lastnode = nodes.last(); - nodes.css('z-index', ''); - $(target).addClass('ui-front elfinder-frontmost').css('z-index', lastnode.css('z-index') + 1); - }; - - /** - * Remove class 'elfinder-frontmost' and hide() to target ui node - * - * @param Object target Target jQuery node object - * @param Boolean nohide Do not hide - */ - this.toHide =function(target, nohide) { - var tgt = $(target), - last; - - !nohide && tgt.hide(); - if (tgt.hasClass('elfinder-frontmost')) { - tgt.removeClass('elfinder-frontmost'); - last = node.children('.ui-front:visible:not(.elfinder-frontmost)').last(); - if (last.length) { - requestAnimationFrame(function() { - if (!node.children('.elfinder-frontmost:visible').length) { - self.toFront(last); - last.trigger('frontmost'); - } - }); - } - } - }; - - /** - * Return css object for maximize - * - * @return Object - */ - this.getMaximizeCss = function() { - return { - width : '100%', - height : '100%', - margin : 0, - top : 0, - left : 0, - display : 'block', - position: 'fixed', - zIndex : Math.max(self.zIndex? (self.zIndex + 1) : 0 , 1000), - maxWidth : '', - maxHeight: '' - }; - }; - - // Closure for togglefullscreen - (function() { - // check is in iframe - if (inFrame && self.UA.Fullscreen) { - self.UA.Fullscreen = false; - if (parentIframe && typeof parentIframe.attr('allowfullscreen') !== 'undefined') { - self.UA.Fullscreen = true; - } - } - - var orgStyle, bodyOvf, resizeTm, fullElm, exitFull, toFull, funcObj, - cls = 'elfinder-fullscreen', - clsN = 'elfinder-fullscreen-native', - checkDialog = function() { - var t = 0, - l = 0; - $.each(node.children('.ui-dialog,.ui-draggable'), function(i, d) { - var $d = $(d), - pos = $d.position(); - - if (pos.top < 0) { - $d.css('top', t); - t += 20; - } - if (pos.left < 0) { - $d.css('left', l); - l += 20; - } - }); - }, - setFuncObj = function() { - var useFullscreen = self.storage('useFullscreen'); - funcObj = self.UA.Fullscreen && (useFullscreen? useFullscreen > 0 : self.options.commandsOptions.fullscreen.mode === 'screen') ? { - // native full screen mode - - fullElm: function() { - return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement || null; - }, - - exitFull: function() { - if (document.exitFullscreen) { - return document.exitFullscreen(); - } else if (document.webkitExitFullscreen) { - return document.webkitExitFullscreen(); - } else if (document.mozCancelFullScreen) { - return document.mozCancelFullScreen(); - } else if (document.msExitFullscreen) { - return document.msExitFullscreen(); - } - }, - - toFull: function(elem) { - if (elem.requestFullscreen) { - return elem.requestFullscreen(); - } else if (elem.webkitRequestFullscreen) { - return elem.webkitRequestFullscreen(); - } else if (elem.mozRequestFullScreen) { - return elem.mozRequestFullScreen(); - } else if (elem.msRequestFullscreen) { - return elem.msRequestFullscreen(); - } - return false; - } - } : { - // node element maximize mode - - fullElm: function() { - var full; - if (node.hasClass(cls)) { - return node.get(0); - } else { - full = node.find('.' + cls); - if (full.length) { - return full.get(0); - } - } - return null; - }, - - exitFull: function() { - var elm; - - $(window).off('resize.' + namespace, resize); - if (bodyOvf !== void(0)) { - $('body').css('overflow', bodyOvf); - } - bodyOvf = void(0); - - if (orgStyle) { - elm = orgStyle.elm; - restoreStyle(elm); - $(elm).trigger('resize', {fullscreen: 'off'}); - } - - $(window).trigger('resize'); - }, - - toFull: function(elem) { - bodyOvf = $('body').css('overflow') || ''; - $('body').css('overflow', 'hidden'); - - $(elem).css(self.getMaximizeCss()) - .addClass(cls) - .trigger('resize', {fullscreen: 'on'}); - - checkDialog(); - - $(window).on('resize.' + namespace, resize).trigger('resize'); - - return true; - } - }; - }, - restoreStyle = function(elem) { - if (orgStyle && orgStyle.elm == elem) { - $(elem).removeClass(cls + ' ' + clsN).attr('style', orgStyle.style); - orgStyle = null; - } - }, - resize = function(e) { - var elm; - if (e.target === window) { - resizeTm && cancelAnimationFrame(resizeTm); - resizeTm = requestAnimationFrame(function() { - if (elm = funcObj.fullElm()) { - $(elm).trigger('resize', {fullscreen: 'on'}); - } - }); - } - }; - - setFuncObj(); - - $(document).on('fullscreenchange.' + namespace + ' webkitfullscreenchange.' + namespace + ' mozfullscreenchange.' + namespace + ' MSFullscreenChange.' + namespace, function(e){ - if (self.UA.Fullscreen) { - var elm = funcObj.fullElm(), - win = $(window); - - resizeTm && cancelAnimationFrame(resizeTm); - if (elm === null) { - win.off('resize.' + namespace, resize); - if (orgStyle) { - elm = orgStyle.elm; - restoreStyle(elm); - $(elm).trigger('resize', {fullscreen: 'off'}); - } - } else { - $(elm).addClass(cls + ' ' + clsN) - .attr('style', 'width:100%; height:100%; margin:0; padding:0;') - .trigger('resize', {fullscreen: 'on'}); - win.on('resize.' + namespace, resize); - checkDialog(); - } - win.trigger('resize'); - } - }); - - /** - * Toggle Full Scrren Mode - * - * @param Object target - * @param Bool full - * @return Object | Null DOM node object of current full scrren - */ - self.toggleFullscreen = function(target, full) { - var elm = $(target).get(0), - curElm = null; - - curElm = funcObj.fullElm(); - if (curElm) { - if (curElm == elm) { - if (full === true) { - return curElm; - } - } else { - if (full === false) { - return curElm; - } - } - funcObj.exitFull(); - return null; - } else { - if (full === false) { - return null; - } - } - - setFuncObj(); - orgStyle = {elm: elm, style: $(elm).attr('style')}; - if (funcObj.toFull(elm) !== false) { - return elm; - } else { - orgStyle = null; - return null; - } - }; - })(); - - // Closure for toggleMaximize - (function(){ - var cls = 'elfinder-maximized', - resizeTm, - resize = function(e) { - if (e.target === window && e.data && e.data.elm) { - var elm = e.data.elm; - resizeTm && cancelAnimationFrame(resizeTm); - resizeTm = requestAnimationFrame(function() { - elm.trigger('resize', {maximize: 'on'}); - }); - } - }, - exitMax = function(elm) { - $(window).off('resize.' + namespace, resize); - $('body').css('overflow', elm.data('bodyOvf')); - elm.removeClass(cls) - .attr('style', elm.data('orgStyle')) - .removeData('bodyOvf') - .removeData('orgStyle'); - elm.trigger('resize', {maximize: 'off'}); - }, - toMax = function(elm) { - elm.data('bodyOvf', $('body').css('overflow') || '') - .data('orgStyle', elm.attr('style')) - .addClass(cls) - .css(self.getMaximizeCss()); - $('body').css('overflow', 'hidden'); - $(window).on('resize.' + namespace, {elm: elm}, resize); - elm.trigger('resize', {maximize: 'on'}); - }; - - /** - * Toggle Maximize target node - * - * @param Object target - * @param Bool max - * @return void - */ - self.toggleMaximize = function(target, max) { - var elm = $(target), - maximized = elm.hasClass(cls); - - if (maximized) { - if (max === true) { - return; - } - exitMax(elm); - } else { - if (max === false) { - return; - } - toMax(elm); - } - }; - })(); - - /************* init stuffs ****************/ - Object.assign($.ui.keyCode, { - 'F1' : 112, - 'F2' : 113, - 'F3' : 114, - 'F4' : 115, - 'F5' : 116, - 'F6' : 117, - 'F7' : 118, - 'F8' : 119, - 'F9' : 120, - 'F10' : 121, - 'F11' : 122, - 'F12' : 123, - 'DIG0' : 48, - 'DIG1' : 49, - 'DIG2' : 50, - 'DIG3' : 51, - 'DIG4' : 52, - 'DIG5' : 53, - 'DIG6' : 54, - 'DIG7' : 55, - 'DIG8' : 56, - 'DIG9' : 57, - 'NUM0' : 96, - 'NUM1' : 97, - 'NUM2' : 98, - 'NUM3' : 99, - 'NUM4' : 100, - 'NUM5' : 101, - 'NUM6' : 102, - 'NUM7' : 103, - 'NUM8' : 104, - 'NUM9' : 105, - 'CONTEXTMENU' : 93, - 'DOT' : 190 - }); - - this.dragUpload = false; - this.xhrUpload = (typeof XMLHttpRequestUpload != 'undefined' || typeof XMLHttpRequestEventTarget != 'undefined') && typeof File != 'undefined' && typeof FormData != 'undefined'; - - // configure transport object - this.transport = {}; - - if (typeof(this.options.transport) == 'object') { - this.transport = this.options.transport; - if (typeof(this.transport.init) == 'function') { - this.transport.init(this); - } - } - - if (typeof(this.transport.send) != 'function') { - this.transport.send = function(opts) { - if (!self.UA.IE) { - // keep native xhr object for handling property responseURL - opts._xhr = new XMLHttpRequest(); - opts.xhr = function() { return opts._xhr; }; - } - return $.ajax(opts); - }; - } - - if (this.transport.upload == 'iframe') { - this.transport.upload = $.proxy(this.uploads.iframe, this); - } else if (typeof(this.transport.upload) == 'function') { - this.dragUpload = !!this.options.dragUploadAllow; - } else if (this.xhrUpload && !!this.options.dragUploadAllow) { - this.transport.upload = $.proxy(this.uploads.xhr, this); - this.dragUpload = true; - } else { - this.transport.upload = $.proxy(this.uploads.iframe, this); - } - - /** - * Decoding 'raw' string converted to unicode - * - * @param String str - * @return String - */ - this.decodeRawString = function(str) { - var charCodes = function(str) { - var i, len, arr; - for (i=0,len=str.length,arr=[]; i= 0xd800 && c <= 0xdbff) { - scalars.push((c & 1023) + 64 << 10 | arr[++i] & 1023); - } else { - scalars.push(c); - } - } - return scalars; - }, - decodeUTF8 = function(arr) { - var i, len, c, str, char = String.fromCharCode; - for (i=0,len=arr.length,str=""; c=arr[i],i= 0xc2) { - str += char((c&31)<<6 | arr[++i]&63); - } else if (c <= 0xef && c >= 0xe0) { - str += char((c&15)<<12 | (arr[++i]&63)<<6 | arr[++i]&63); - } else if (c <= 0xf7 && c >= 0xf0) { - str += char( - 0xd800 | ((c&7)<<8 | (arr[++i]&63)<<2 | arr[++i]>>>4&3) - 64, - 0xdc00 | (arr[i++]&15)<<6 | arr[i]&63 - ); - } else { - str += char(0xfffd); - } - } - return str; - }; - - return decodeUTF8(scalarValues(str)); - }; - - /** - * Gets target file contents by file.hash - * - * @param String hash The hash - * @param String responseType 'blob' or 'arraybuffer' (default) - * @return arraybuffer|blob The contents. - */ - this.getContents = function(hash, responseType) { - var self = this, - dfd = $.Deferred(), - type = responseType || 'arraybuffer', - url, req; - - dfd.fail(function() { - req && req.state() === 'pending' && req.reject(); - }); - - url = self.openUrl(hash); - if (!self.isSameOrigin(url)) { - url = self.openUrl(hash, true); - } - req = self.request({ - data : {cmd : 'get'}, - options : { - url: url, - type: 'get', - cache : true, - dataType : 'binary', - responseType : type, - processData: false - } - }) - .fail(function() { - dfd.reject(); - }) - .done(function(data) { - dfd.resolve(data); - }); - - return dfd; - }; - - this.getMimetype = function(name, orgMime) { - var mime = orgMime, - ext, m; - m = (name + '').match(/\.([^.]+)$/); - if (m && (ext = m[1])) { - if (!extToMimeTable) { - extToMimeTable = self.arrayFlip(self.mimeTypes); - } - if (!(mime = extToMimeTable[ext.toLowerCase()])) { - mime = orgMime; - } - } - return mime; - }; - - /** - * Supported check hash algorisms - * - * @type Array - */ - self.hashCheckers = []; - - /** - * Closure of getContentsHashes() - */ - (function(self) { - var hashLibs = { - check : true - }, - md5Calc = function(arr) { - var spark = new hashLibs.SparkMD5.ArrayBuffer(), - job; - - job = self.asyncJob(function(buf) { - spark.append(buf); - }, arr).done(function() { - job._md5 = spark.end(); - }); - - return job; - }, - shaCalc = function(arr, length) { - var sha, job; - - try { - sha = new hashLibs.jsSHA('SHA' + (length.substr(0, 1) === '3'? length : ('-' + length)), 'ARRAYBUFFER'); - job = self.asyncJob(function(buf) { - sha.update(buf); - }, arr).done(function() { - job._sha = sha.getHash('HEX'); - }); - } catch(e) { - job = $.Deferred.reject(); - } - - return job; - }; - - // make fm.hashCheckers - if (self.options.cdns.sparkmd5) { - self.hashCheckers.push('md5'); - } - if (self.options.cdns.jssha) { - self.hashCheckers = self.hashCheckers.concat(['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512', 'shake128', 'shake256']); - } - - /** - * Gets the contents hashes. - * - * @param String target target file.hash - * @param Object needHashes need hash lib names - * @return Object hashes with lib name as key - */ - self.getContentsHashes = function(target, needHashes) { - var dfd = $.Deferred(), - needs = self.arrayFlip(needHashes || ['md5'], true), - libs = [], - jobs = [], - res = {}, - req; - - dfd.fail(function() { - req && req.reject(); - }); - - if (hashLibs.check) { - - delete hashLibs.check; - - // load SparkMD5 - var libsmd5 = $.Deferred(); - if (window.ArrayBuffer && self.options.cdns.sparkmd5) { - libs.push(libsmd5); - self.loadScript([self.options.cdns.sparkmd5], - function(res) { - var SparkMD5 = res || window.SparkMD5; - window.SparkMD5 && delete window.SparkMD5; - libsmd5.resolve(); - if (SparkMD5) { - hashLibs.SparkMD5 = SparkMD5; - } - }, - { - tryRequire: true, - error: function() { - libsmd5.reject(); - } - } - ); - } - - // load jsSha - var libssha = $.Deferred(); - if (window.ArrayBuffer && self.options.cdns.jssha) { - libs.push(libssha); - self.loadScript([self.options.cdns.jssha], - function(res) { - var jsSHA = res || window.jsSHA; - window.jsSHA && delete window.jsSHA; - libssha.resolve(); - if (jsSHA) { - hashLibs.jsSHA = jsSHA; - } - }, - { - tryRequire: true, - error: function() { - libssha.reject(); - } - } - ); - } - } - - $.when.apply(null, libs).always(function() { - if (Object.keys(hashLibs).length) { - req = self.getContents(target).done(function(arrayBuffer) { - var arr = (arrayBuffer instanceof ArrayBuffer && arrayBuffer.byteLength > 0)? self.sliceArrayBuffer(arrayBuffer, 1048576) : false, - i; - - if (needs.md5 && hashLibs.SparkMD5) { - jobs.push(function() { - var job = md5Calc(arr).done(function() { - var f; - res.md5 = job._md5; - if (f = self.file(target)) { - f.md5 = job._md5; - } - dfd.notify(res); - }); - dfd.fail(function() { - job.reject(); - }); - return job; - }); - } - if (hashLibs.jsSHA) { - $.each(['1', '224', '256', '384', '512', '3-224', '3-256', '3-384', '3-512', 'ke128', 'ke256'], function(i, v) { - if (needs['sha' + v]) { - jobs.push(function() { - var job = shaCalc(arr, v).done(function() { - var f; - res['sha' + v] = job._sha; - if (f = self.file(target)) { - f['sha' + v] = job._sha; - } - dfd.notify(res); - }); - return job; - }); - } - }); - } - if (jobs.length) { - self.sequence(jobs).always(function() { - dfd.resolve(res); - }); - } else { - dfd.reject(); - } - }).fail(function() { - dfd.reject(); - }); - } else { - dfd.reject(); - } - }); - - return dfd; - }; - })(this); - - /** - * Parse error value to display - * - * @param Mixed error - * @return Mixed parsed error - */ - this.parseError = function(error) { - var arg = error; - if ($.isPlainObject(arg)) { - arg = arg.error; - } - return arg; - }; - - /** - * Alias for this.trigger('error', {error : 'message'}) - * - * @param String error message - * @return elFinder - **/ - this.error = function() { - var arg = arguments[0], - opts = arguments[1] || null, - err; - if (arguments.length == 1 && typeof(arg) === 'function') { - return self.bind('error', arg); - } else { - err = this.parseError(arg); - return (err === true || !err)? this : self.trigger('error', {error: err, opts : opts}); - } - }; - - // create bind/trigger aliases for build-in events - $.each(events, function(i, name) { - self[name] = function() { - var arg = arguments[0]; - return arguments.length == 1 && typeof(arg) == 'function' - ? self.bind(name, arg) - : self.trigger(name, $.isPlainObject(arg) ? arg : {}); - }; - }); - - // bind core event handlers - this - .enable(function() { - if (!enabled && self.api && self.visible() && self.ui.overlay.is(':hidden') && ! node.children('.elfinder-dialog.' + self.res('class', 'editing') + ':visible').length) { - enabled = true; - document.activeElement && document.activeElement.blur(); - node.removeClass('elfinder-disabled'); - } - }) - .disable(function() { - prevEnabled = enabled; - enabled = false; - node.addClass('elfinder-disabled'); - }) - .open(function() { - selected = []; - }) - .select(function(e) { - var cnt = 0, - unselects = []; - selected = $.grep(e.data.selected || e.data.value|| [], function(hash) { - if (unselects.length || (self.maxTargets && ++cnt > self.maxTargets)) { - unselects.push(hash); - return false; - } else { - return files[hash] ? true : false; - } - }); - if (unselects.length) { - self.trigger('unselectfiles', {files: unselects, inselect: true}); - self.toast({mode: 'warning', msg: self.i18n(['errMaxTargets', self.maxTargets])}); - } - }) - .error(function(e) { - var opts = { - cssClass : 'elfinder-dialog-error', - title : self.i18n('error'), - resizable : false, - destroyOnClose : true, - buttons : {} - }, - node = self.getUI(), - cnt = node.children('.elfinder-dialog-error').length, - last, counter; - - if (cnt < self.options.maxErrorDialogs) { - opts.buttons[self.i18n(self.i18n('btnClose'))] = function() { $(this).elfinderdialog('close'); }; - - if (e.data.opts && $.isPlainObject(e.data.opts)) { - Object.assign(opts, e.data.opts); - } - - self.dialog(''+self.i18n(e.data.error), opts); - } else { - last = node.children('.elfinder-dialog-error:last').children('.ui-dialog-content:first'); - counter = last.children('.elfinder-error-counter'); - if (counter.length) { - counter.data('cnt', parseInt(counter.data('cnt')) + 1).html(self.i18n(['moreErrors', counter.data('cnt')])); - } else { - counter = $(''+ self.i18n(['moreErrors', 1]) +'').data('cnt', 1); - last.append('
', counter); - } - } - }) - .bind('tmb', function(e) { - $.each(e.data.images||[], function(hash, tmb) { - if (files[hash]) { - files[hash].tmb = tmb; - } - }); - }) - .bind('searchstart', function(e) { - Object.assign(self.searchStatus, e.data); - self.searchStatus.state = 1; - }) - .bind('search', function(e) { - self.searchStatus.state = 2; - }) - .bind('searchend', function() { - self.searchStatus.state = 0; - self.searchStatus.ininc = false; - self.searchStatus.mixed = false; - }) - .bind('canMakeEmptyFile', function(e) { - var data = e.data, - obj = {}; - if (data && Array.isArray(data.mimes)) { - if (!data.unshift) { - obj = self.mimesCanMakeEmpty; - } - $.each(data.mimes, function() { - if (!obj[this]) { - obj[this] = self.mimeTypes[this]; - } - }); - if (data.unshift) { - self.mimesCanMakeEmpty = Object.assign(obj, self.mimesCanMakeEmpty); - } - } - }) - .bind('themechange', function() { - requestAnimationFrame(function() { - self.trigger('uiresize'); - }); - }) - ; - - // We listen and emit a sound on delete according to option - if (true === this.options.sound) { - this.bind('playsound', function(e) { - var play = beeper.canPlayType && beeper.canPlayType('audio/wav; codecs="1"'), - file = e.data && e.data.soundFile; - - play && file && play != '' && play != 'no' && $(beeper).html('')[0].play(); - }); - } - - // bind external event handlers - $.each(this.options.handlers, function(event, callback) { - self.bind(event, callback); - }); - - /** - * History object. Store visited folders - * - * @type Object - **/ - this.history = new this.history(this); - - /** - * Root hashed - * - * @type Object - */ - this.roots = {}; - - /** - * leaf roots - * - * @type Object - */ - this.leafRoots = {}; - - this.volumeExpires = {}; - - /** - * Loaded commands - * - * @type Object - **/ - this._commands = {}; - - if (!Array.isArray(this.options.commands)) { - this.options.commands = []; - } - - if ($.inArray('*', this.options.commands) !== -1) { - this.options.commands = Object.keys(this.commands); - } - - /** - * UI command map of cwd volume ( That volume driver option `uiCmdMap` ) - * - * @type Object - **/ - this.commandMap = {}; - - /** - * cwd options of each volume - * key: volumeid - * val: options object - * - * @type Object - */ - this.volOptions = {}; - - /** - * Has volOptions data - * - * @type Boolean - */ - this.hasVolOptions = false; - - /** - * Hash of trash holders - * key: trash folder hash - * val: source volume hash - * - * @type Object - */ - this.trashes = {}; - - /** - * cwd options of each folder/file - * key: hash - * val: options object - * - * @type Object - */ - this.optionsByHashes = {}; - - /** - * UI Auto Hide Functions - * Each auto hide function mast be call to `fm.trigger('uiautohide')` at end of process - * - * @type Array - **/ - this.uiAutoHide = []; - - // trigger `uiautohide` - this.one('open', function() { - if (self.uiAutoHide.length) { - setTimeout(function() { - self.trigger('uiautohide'); - }, 500); - } - }); - - // Auto Hide Functions sequential processing start - this.bind('uiautohide', function() { - if (self.uiAutoHide.length) { - self.uiAutoHide.shift()(); - } - }); - - if (this.options.width) { - width = this.options.width; - } - - if (this.options.height) { - height = this.options.height; - } - - if (this.options.heightBase) { - heightBase = $(this.options.heightBase); - } - - if (this.options.soundPath) { - soundPath = this.options.soundPath.replace(/\/+$/, '') + '/'; - } else { - soundPath = this.baseUrl + soundPath; - } - - self.one('opendone', function() { - var tm; - // attach events to document - $(document) - // disable elfinder on click outside elfinder - .on('click.'+namespace, function(e) { enabled && ! self.options.enableAlways && !$(e.target).closest(node).length && self.disable(); }) - // exec shortcuts - .on(keydown+' '+keypress+' '+keyup+' '+mousedown, execShortcut); - - // attach events to window - self.options.useBrowserHistory && $(window) - .on('popstate.' + namespace, function(ev) { - var state = ev.originalEvent.state || {}, - hasThash = state.thash? true : false, - dialog = node.find('.elfinder-frontmost:visible'), - input = node.find('.elfinder-navbar-dir,.elfinder-cwd-filename').find('input,textarea'), - onOpen, toast; - if (!hasThash) { - state = { thash: self.cwd().hash }; - // scroll to elFinder node - $('html,body').animate({ scrollTop: node.offset().top }); - } - if (dialog.length || input.length) { - history.pushState(state, null, location.pathname + location.search + '#elf_' + state.thash); - if (dialog.length) { - if (!dialog.hasClass(self.res('class', 'preventback'))) { - if (dialog.hasClass('elfinder-contextmenu')) { - $(document).trigger($.Event('keydown', { keyCode: $.ui.keyCode.ESCAPE, ctrlKey : false, shiftKey : false, altKey : false, metaKey : false })); - } else if (dialog.hasClass('elfinder-dialog')) { - dialog.elfinderdialog('close'); - } else { - dialog.trigger('close'); - } - } - } else { - input.trigger($.Event('keydown', { keyCode: $.ui.keyCode.ESCAPE, ctrlKey : false, shiftKey : false, altKey : false, metaKey : false })); - } - } else { - if (hasThash) { - !$.isEmptyObject(self.files()) && self.request({ - data : {cmd : 'open', target : state.thash, onhistory : 1}, - notify : {type : 'open', cnt : 1, hideCnt : true}, - syncOnFail : true - }); - } else { - onOpen = function() { - toast.trigger('click'); - }; - self.one('open', onOpen, true); - toast = self.toast({ - msg: self.i18n('pressAgainToExit'), - onHidden: function() { - self.unbind('open', onOpen); - history.pushState(state, null, location.pathname + location.search + '#elf_' + state.thash); - } - }); - } - } - }); - - $(window).on('resize.' + namespace, function(e){ - if (e.target === this) { - tm && cancelAnimationFrame(tm); - tm = requestAnimationFrame(function() { - var prv = node.data('resizeSize') || {w: 0, h: 0}, - size = {w: Math.round(node.width()), h: Math.round(node.height())}; - node.data('resizeSize', size); - if (size.w !== prv.w || size.h !== prv.h) { - node.trigger('resize'); - self.trigger('resize', {width : size.w, height : size.h}); - } - }); - } - }) - .on('beforeunload.' + namespace,function(e){ - var msg, cnt; - if (!self.pauseUnloadCheck()) { - if (node.is(':visible')) { - if (self.ui.notify.children().length && $.inArray('hasNotifyDialog', self.options.windowCloseConfirm) !== -1) { - msg = self.i18n('ntfsmth'); - } else if (node.find('.'+self.res('class', 'editing')).length && $.inArray('editingFile', self.options.windowCloseConfirm) !== -1) { - msg = self.i18n('editingFile'); - } else if ((cnt = Object.keys(self.selected()).length) && $.inArray('hasSelectedItem', self.options.windowCloseConfirm) !== -1) { - msg = self.i18n('hasSelected', ''+cnt); - } else if ((cnt = Object.keys(self.clipboard()).length) && $.inArray('hasClipboardData', self.options.windowCloseConfirm) !== -1) { - msg = self.i18n('hasClipboard', ''+cnt); - } - if (msg) { - e.returnValue = msg; - return msg; - } - } - self.trigger('unload'); - } - }); - - // bind window onmessage for CORS - $(window).on('message.' + namespace, function(e){ - var res = e.originalEvent || null, - obj, data; - if (res && self.uploadURL.indexOf(res.origin) === 0) { - try { - obj = JSON.parse(res.data); - data = obj.data || null; - if (data) { - if (data.error) { - if (obj.bind) { - self.trigger(obj.bind+'fail', data); - } - self.error(data.error); - } else { - data.warning && self.error(data.warning); - self.updateCache(data); - data.removed && data.removed.length && self.remove(data); - data.added && data.added.length && self.add(data); - data.changed && data.changed.length && self.change(data); - if (obj.bind) { - self.trigger(obj.bind, data); - self.trigger(obj.bind+'done'); - } - data.sync && self.sync(); - } - } - } catch (e) { - self.sync(); - } - } - }); - - // elFinder enable always - if (self.options.enableAlways) { - $(window).on('focus.' + namespace, function(e){ - (e.target === this) && self.enable(); - }); - if (inFrame) { - $(window.top).on('focus.' + namespace, function() { - if (self.enable() && (! parentIframe || parentIframe.is(':visible'))) { - requestAnimationFrame(function() { - $(window).trigger('focus'); - }); - } - }); - } - } else if (inFrame) { - $(window).on('blur.' + namespace, function(e){ - enabled && e.target === this && self.disable(); - }); - } - - // return focus to the window on click (elFInder in the frame) - if (inFrame) { - node.on('click', function(e) { - $(window).trigger('focus'); - }); - } - - // elFinder to enable by mouse over - if (self.options.enableByMouseOver) { - node.on('mouseenter touchstart', function(e) { - (inFrame) && $(window).trigger('focus'); - ! self.enabled() && self.enable(); - }); - } - - // When the browser tab turn to foreground/background - $(window).on('visibilitychange.' + namespace, function(e) { - var background = document.hidden || document.webkitHidden || document.msHidden; - // AutoSync turn On/Off - if (self.options.syncStart) { - self.autoSync(background? 'stop' : void(0)); - } - }); - }); - - // store instance in node - node[0].elfinder = this; - - // auto load language file - dfrdsBeforeBootup.push((function() { - var lang = self.lang, - langJs = self.i18nBaseUrl + 'elfinder.' + lang + '.js', - dfd = $.Deferred().done(function() { - if (self.i18[lang]) { - self.lang = lang; - } - self.trigger('i18load'); - i18n = self.lang === 'en' - ? self.i18['en'] - : $.extend(true, {}, self.i18['en'], self.i18[self.lang]); - }); - - if (!self.i18[lang]) { - self.lang = 'en'; - if (self.hasRequire) { - require([langJs], function() { - dfd.resolve(); - }, function() { - dfd.resolve(); - }); - } else { - self.loadScript([langJs], function() { - dfd.resolve(); - }, { - loadType: 'tag', - error : function() { - dfd.resolve(); - } - }); - } - } else { - dfd.resolve(); - } - return dfd; - })()); - - // elFinder boot up function - bootUp = function() { - var columnNames; - - /** - * i18 messages - * - * @type Object - **/ - self.messages = i18n.messages; - - // check jquery ui - if (!($.fn.selectable && $.fn.draggable && $.fn.droppable && $.fn.resizable && $.fn.button && $.fn.slider)) { - return alert(self.i18n('errJqui')); - } - - // check node - if (!node.length) { - return alert(self.i18n('errNode')); - } - // check connector url - if (!self.options.url) { - return alert(self.i18n('errURL')); - } - - // column key/name map for fm.getColumnName() - columnNames = Object.assign({ - name : self.i18n('name'), - perm : self.i18n('perms'), - date : self.i18n('modify'), - size : self.i18n('size'), - kind : self.i18n('kind'), - modestr : self.i18n('mode'), - modeoct : self.i18n('mode'), - modeboth : self.i18n('mode') - }, self.options.uiOptions.cwd.listView.columnsCustomName); - - /** - * Gets the column name of cwd list view - * - * @param String key The key - * @return String The column name. - */ - self.getColumnName = function(key) { - return columnNames[key] || self.i18n(key); - }; - - /** - * Interface direction - * - * @type String - * @default "ltr" - **/ - self.direction = i18n.direction; - - /** - * Date/time format - * - * @type String - * @default "m.d.Y" - **/ - self.dateFormat = self.options.dateFormat || i18n.dateFormat; - - /** - * Date format like "Yesterday 10:20:12" - * - * @type String - * @default "{day} {time}" - **/ - self.fancyFormat = self.options.fancyDateFormat || i18n.fancyDateFormat; - - /** - * Date format for if upload file has not original unique name - * e.g. Clipboard image data, Image data taken with iOS - * - * @type String - * @default "ymd-His" - **/ - self.nonameDateFormat = (self.options.nonameDateFormat || i18n.nonameDateFormat).replace(/[\/\\]/g, '_'); - - /** - * Css classes - * - * @type String - **/ - self.cssClass = 'ui-helper-reset ui-helper-clearfix ui-widget ui-widget-content ui-corner-all elfinder elfinder-' - +(self.direction == 'rtl' ? 'rtl' : 'ltr') - +(self.UA.Touch? (' elfinder-touch' + (self.options.resizable ? ' touch-punch' : '')) : '') - +(self.UA.Mobile? ' elfinder-mobile' : '') - +(self.UA.iOS? ' elfinder-ios' : '') - +' '+self.options.cssClass; - - // prepare node - node.addClass(self.cssClass) - .on(mousedown, function() { - !enabled && self.enable(); - }); - - // draggable closure - (function() { - var ltr, wzRect, wzBottom, wzBottom2, nodeStyle, - keyEvt = keydown + 'draggable' + ' keyup.' + namespace + 'draggable'; - - /** - * Base draggable options - * - * @type Object - **/ - self.draggable = { - appendTo : node, - addClasses : false, - distance : 4, - revert : true, - refreshPositions : false, - cursor : 'crosshair', - cursorAt : {left : 50, top : 47}, - scroll : false, - start : function(e, ui) { - var helper = ui.helper, - targets = $.grep(helper.data('files')||[], function(h) { - if (h) { - remember[h] = true; - return true; - } - return false; - }), - locked = false, - cnt, h; - - // fix node size - nodeStyle = node.attr('style'); - node.width(node.width()).height(node.height()); - - // set var for drag() - ltr = (self.direction === 'ltr'); - wzRect = self.getUI('workzone').data('rectangle'); - wzBottom = wzRect.top + wzRect.height; - wzBottom2 = wzBottom - self.getUI('navdock').outerHeight(true); - - self.draggingUiHelper = helper; - cnt = targets.length; - while (cnt--) { - h = targets[cnt]; - if (files[h].locked) { - locked = true; - helper.data('locked', true); - break; - } - } - !locked && self.trigger('lockfiles', {files : targets}); - - helper.data('autoScrTm', setInterval(function() { - if (helper.data('autoScr')) { - self.autoScroll[helper.data('autoScr')](helper.data('autoScrVal')); - } - }, 50)); - }, - drag : function(e, ui) { - var helper = ui.helper, - autoScr, autoUp, bottom; - - if ((autoUp = wzRect.top > e.pageY) || wzBottom2 < e.pageY) { - if (wzRect.cwdEdge > e.pageX) { - autoScr = (ltr? 'navbar' : 'cwd') + (autoUp? 'Up' : 'Down'); - } else { - autoScr = (ltr? 'cwd' : 'navbar') + (autoUp? 'Up' : 'Down'); - } - if (!autoUp) { - if (autoScr.substr(0, 3) === 'cwd') { - if (wzBottom < e.pageY) { - bottom = wzBottom; - } else { - autoScr = null; - } - } else { - bottom = wzBottom2; - } - } - if (autoScr) { - helper.data('autoScr', autoScr); - helper.data('autoScrVal', Math.pow((autoUp? wzRect.top - e.pageY : e.pageY - bottom), 1.3)); - } - } - if (! autoScr) { - if (helper.data('autoScr')) { - helper.data('refreshPositions', 1).data('autoScr', null); - } - } - if (helper.data('refreshPositions') && $(this).elfUiWidgetInstance('draggable')) { - if (helper.data('refreshPositions') > 0) { - $(this).draggable('option', { refreshPositions : true, elfRefresh : true }); - helper.data('refreshPositions', -1); - } else { - $(this).draggable('option', { refreshPositions : false, elfRefresh : false }); - helper.data('refreshPositions', null); - } - } - }, - stop : function(e, ui) { - var helper = ui.helper, - files; - - $(document).off(keyEvt); - $(this).elfUiWidgetInstance('draggable') && $(this).draggable('option', { refreshPositions : false }); - self.draggingUiHelper = null; - self.trigger('focus').trigger('dragstop'); - if (! helper.data('droped')) { - files = $.grep(helper.data('files')||[], function(h) { return h? true : false ;}); - self.trigger('unlockfiles', {files : files}); - self.trigger('selectfiles', {files : self.selected()}); - } - self.enable(); - - // restore node style - node.attr('style', nodeStyle); - - helper.data('autoScrTm') && clearInterval(helper.data('autoScrTm')); - }, - helper : function(e, ui) { - var element = this.id ? $(this) : $(this).parents('[id]:first'), - helper = $('
'), - icon = function(f) { - var mime = f.mime, i, tmb = self.tmb(f); - i = '
'; - if (tmb) { - i = $(i).addClass(tmb.className).css('background-image', "url('"+tmb.url+"')").get(0).outerHTML; - } else if (f.icon) { - i = $(i).css(self.getIconStyle(f, true)).get(0).outerHTML; - } - if (f.csscls) { - i = '
' + i + '
'; - } - return i; - }, - hashes, l, ctr; - - self.draggingUiHelper && self.draggingUiHelper.stop(true, true); - - self.trigger('dragstart', {target : element[0], originalEvent : e}, true); - - hashes = element.hasClass(self.res('class', 'cwdfile')) - ? self.selected() - : [self.navId2Hash(element.attr('id'))]; - - helper.append(icon(files[hashes[0]])).data('files', hashes).data('locked', false).data('droped', false).data('namespace', namespace).data('dropover', 0); - - if ((l = hashes.length) > 1) { - helper.append(icon(files[hashes[l-1]]) + ''+l+''); - } - - $(document).on(keyEvt, function(e){ - var chk = (e.shiftKey||e.ctrlKey||e.metaKey); - if (ctr !== chk) { - ctr = chk; - if (helper.is(':visible') && helper.data('dropover') && ! helper.data('droped')) { - helper.toggleClass('elfinder-drag-helper-plus', helper.data('locked')? true : ctr); - self.trigger(ctr? 'unlockfiles' : 'lockfiles', {files : hashes, helper: helper}); - } - } - }); - - return helper; - } - }; - })(); - - // in getFileCallback set - change default actions on double click/enter/ctrl+enter - if (self.commands.getfile) { - if (typeof(self.options.getFileCallback) == 'function') { - self.bind('dblclick', function(e) { - e.preventDefault(); - self.exec('getfile').fail(function() { - self.exec('open', e.data && e.data.file? [ e.data.file ]: void(0)); - }); - }); - self.shortcut({ - pattern : 'enter', - description : self.i18n('cmdgetfile'), - callback : function() { self.exec('getfile').fail(function() { self.exec(self.OS == 'mac' ? 'rename' : 'open'); }); } - }) - .shortcut({ - pattern : 'ctrl+enter', - description : self.i18n(self.OS == 'mac' ? 'cmdrename' : 'cmdopen'), - callback : function() { self.exec(self.OS == 'mac' ? 'rename' : 'open'); } - }); - } else { - self.options.getFileCallback = null; - } - } - - // load commands - $.each(self.commands, function(name, cmd) { - var proto = Object.assign({}, cmd.prototype), - extendsCmd, opts; - if ($.isFunction(cmd) && !self._commands[name] && (cmd.prototype.forceLoad || $.inArray(name, self.options.commands) !== -1)) { - extendsCmd = cmd.prototype.extendsCmd || ''; - if (extendsCmd) { - if ($.isFunction(self.commands[extendsCmd])) { - cmd.prototype = Object.assign({}, base, new self.commands[extendsCmd](), cmd.prototype); - } else { - return true; - } - } else { - cmd.prototype = Object.assign({}, base, cmd.prototype); - } - self._commands[name] = new cmd(); - cmd.prototype = proto; - opts = self.options.commandsOptions[name] || {}; - if (extendsCmd && self.options.commandsOptions[extendsCmd]) { - opts = $.extend(true, {}, self.options.commandsOptions[extendsCmd], opts); - } - self._commands[name].setup(name, opts); - // setup linked commands - if (self._commands[name].linkedCmds.length) { - $.each(self._commands[name].linkedCmds, function(i, n) { - var lcmd = self.commands[n]; - if ($.isFunction(lcmd) && !self._commands[n]) { - lcmd.prototype = base; - self._commands[n] = new lcmd(); - self._commands[n].setup(n, self.options.commandsOptions[n]||{}); - } - }); - } - } - }); - - /** - * UI nodes - * - * @type Object - **/ - self.ui = { - // container for nav panel and current folder container - workzone : $('
').appendTo(node).elfinderworkzone(self), - // container for folders tree / places - navbar : $('
').appendTo(node).elfindernavbar(self, self.options.uiOptions.navbar || {}), - // container for for preview etc at below the navbar - navdock : $('
').appendTo(node).elfindernavdock(self, self.options.uiOptions.navdock || {}), - // contextmenu - contextmenu : $('
').appendTo(node).elfindercontextmenu(self), - // overlay - overlay : $('
').appendTo(node).elfinderoverlay({ - show : function() { self.disable(); }, - hide : function() { prevEnabled && self.enable(); } - }), - // current folder container - cwd : $('
').appendTo(node).elfindercwd(self, self.options.uiOptions.cwd || {}), - // notification dialog window - notify : self.dialog('', { - cssClass : 'elfinder-dialog-notify', - position : self.options.notifyDialog.position, - absolute : true, - resizable : false, - autoOpen : false, - closeOnEscape : false, - title : ' ', - width : self.options.notifyDialog.width? parseInt(self.options.notifyDialog.width) : null, - minHeight : null - }), - statusbar : $('
').hide().appendTo(node), - toast : $('
').appendTo(node), - bottomtray : $('
').appendTo(node) - }; - - self.trigger('uiready'); - - // load required ui - $.each(self.options.ui || [], function(i, ui) { - var name = 'elfinder'+ui, - opts = self.options.uiOptions[ui] || {}; - - if (!self.ui[ui] && $.fn[name]) { - // regist to self.ui before make instance - self.ui[ui] = $('<'+(opts.tag || 'div')+'/>').appendTo(node); - self.ui[ui][name](self, opts); - } - }); - - // update size - self.resize(width, height); - - // make node resizable - if (self.options.resizable) { - node.resizable({ - resize : function(e, ui) { - self.resize(ui.size.width, ui.size.height); - }, - handles : 'se', - minWidth : 300, - minHeight : 200 - }); - if (self.UA.Touch) { - node.addClass('touch-punch'); - } - } - - (function() { - var navbar = self.getUI('navbar'), - cwd = self.getUI('cwd').parent(); - - self.autoScroll = { - navbarUp : function(v) { - navbar.scrollTop(Math.max(0, navbar.scrollTop() - v)); - }, - navbarDown : function(v) { - navbar.scrollTop(navbar.scrollTop() + v); - }, - cwdUp : function(v) { - cwd.scrollTop(Math.max(0, cwd.scrollTop() - v)); - }, - cwdDown : function(v) { - cwd.scrollTop(cwd.scrollTop() + v); - } - }; - })(); - - // Swipe on the touch devices to show/hide of toolbar or navbar - if (self.UA.Touch) { - (function() { - var lastX, lastY, nodeOffset, nodeWidth, nodeTop, navbarW, toolbarH, - navbar = self.getUI('navbar'), - toolbar = self.getUI('toolbar'), - moveEv = 'touchmove.stopscroll', - moveTm, - moveUpOn = function(e) { - var touches = e.originalEvent.touches || [{}], - y = touches[0].pageY || null; - if (!lastY || y < lastY) { - e.preventDefault(); - moveTm && clearTimeout(moveTm); - } - }, - moveDownOn = function(e) { - e.preventDefault(); - moveTm && clearTimeout(moveTm); - }, - moveOff = function() { - moveTm = setTimeout(function() { - node.off(moveEv); - }, 100); - }, - handleW, handleH = 50; - - navbar = navbar.children().length? navbar : null; - toolbar = toolbar.length? toolbar : null; - node.on('touchstart touchmove touchend', function(e) { - if (e.type === 'touchend') { - lastX = false; - lastY = false; - moveOff(); - return; - } - - var touches = e.originalEvent.touches || [{}], - x = touches[0].pageX || null, - y = touches[0].pageY || null, - ltr = (self.direction === 'ltr'), - navbarMode, treeWidth, swipeX, moveX, toolbarT, mode; - - if (x === null || y === null || (e.type === 'touchstart' && touches.length > 1)) { - return; - } - - if (e.type === 'touchstart') { - nodeOffset = node.offset(); - nodeWidth = node.width(); - if (navbar) { - lastX = false; - if (navbar.is(':hidden')) { - if (! handleW) { - handleW = Math.max(50, nodeWidth / 10); - } - if ((ltr? (x - nodeOffset.left) : (nodeWidth + nodeOffset.left - x)) < handleW) { - lastX = x; - } - } else if (! e.originalEvent._preventSwipeX) { - navbarW = navbar.width(); - if (ltr) { - swipeX = (x < nodeOffset.left + navbarW); - } else { - swipeX = (x > nodeOffset.left + nodeWidth - navbarW); - } - if (swipeX) { - handleW = Math.max(50, nodeWidth / 10); - lastX = x; - } else { - lastX = false; - } - } - } - if (toolbar) { - lastY = false; - if (! e.originalEvent._preventSwipeY) { - toolbarH = toolbar.height(); - nodeTop = nodeOffset.top; - if (y - nodeTop < (toolbar.is(':hidden')? handleH : (toolbarH + 30))) { - lastY = y; - node.on(moveEv, toolbar.is(':hidden')? moveDownOn: moveUpOn); - } - } - } - } else { - if (navbar && lastX !== false) { - navbarMode = (ltr? (lastX > x) : (lastX < x))? 'navhide' : 'navshow'; - moveX = Math.abs(lastX - x); - if (navbarMode === 'navhide' && moveX > navbarW * 0.6 - || (moveX > (navbarMode === 'navhide'? navbarW / 3 : 45) - && (navbarMode === 'navshow' - || (ltr? x < nodeOffset.left + 20 : x > nodeOffset.left + nodeWidth - 20) - )) - ) { - self.getUI('navbar').trigger(navbarMode, {handleW: handleW}); - lastX = false; - } - } - if (toolbar && lastY !== false ) { - toolbarT = toolbar.offset().top; - if (Math.abs(lastY - y) > Math.min(45, toolbarH / 3)) { - mode = (lastY > y)? 'slideUp' : 'slideDown'; - if (mode === 'slideDown' || toolbarT + 20 > y) { - if (toolbar.is(mode === 'slideDown' ? ':hidden' : ':visible')) { - toolbar.stop(true, true).trigger('toggle', {duration: 100, handleH: handleH}); - } - lastY = false; - } - } - } - } - }); - })(); - } - - if (self.dragUpload) { - // add event listener for HTML5 DnD upload - (function() { - var isin = function(e) { - return (e.target.nodeName !== 'TEXTAREA' && e.target.nodeName !== 'INPUT' && $(e.target).closest('div.ui-dialog-content').length === 0); - }, - ent = 'native-drag-enter', - disable = 'native-drag-disable', - c = 'class', - navdir = self.res(c, 'navdir'), - droppable = self.res(c, 'droppable'), - dropover = self.res(c, 'adroppable'), - arrow = self.res(c, 'navarrow'), - clDropActive = self.res(c, 'adroppable'), - wz = self.getUI('workzone'), - ltr = (self.direction === 'ltr'), - clearTm = function() { - autoScrTm && cancelAnimationFrame(autoScrTm); - autoScrTm = null; - }, - wzRect, autoScrFn, autoScrTm; - - node.on('dragenter', function(e) { - clearTm(); - if (isin(e)) { - e.preventDefault(); - e.stopPropagation(); - wzRect = wz.data('rectangle'); - } - }) - .on('dragleave', function(e) { - clearTm(); - if (isin(e)) { - e.preventDefault(); - e.stopPropagation(); - } - }) - .on('dragover', function(e) { - var autoUp; - if (isin(e)) { - e.preventDefault(); - e.stopPropagation(); - e.originalEvent.dataTransfer.dropEffect = 'none'; - if (! autoScrTm) { - autoScrTm = requestAnimationFrame(function() { - var wzBottom = wzRect.top + wzRect.height, - wzBottom2 = wzBottom - self.getUI('navdock').outerHeight(true), - fn; - if ((autoUp = e.pageY < wzRect.top) || e.pageY > wzBottom2 ) { - if (wzRect.cwdEdge > e.pageX) { - fn = (ltr? 'navbar' : 'cwd') + (autoUp? 'Up' : 'Down'); - } else { - fn = (ltr? 'cwd' : 'navbar') + (autoUp? 'Up' : 'Down'); - } - if (!autoUp) { - if (fn.substr(0, 3) === 'cwd') { - if (wzBottom < e.pageY) { - wzBottom2 = wzBottom; - } else { - fn = ''; - } - } - } - fn && self.autoScroll[fn](Math.pow((autoUp? wzRect.top - e.pageY : e.pageY - wzBottom2), 1.3)); - } - autoScrTm = null; - }); - } - } else { - clearTm(); - } - }) - .on('drop', function(e) { - clearTm(); - if (isin(e)) { - e.stopPropagation(); - e.preventDefault(); - } - }); - - node.on('dragenter', '.native-droppable', function(e){ - if (e.originalEvent.dataTransfer) { - var $elm = $(e.currentTarget), - id = e.currentTarget.id || null, - cwd = null, - elfFrom; - if (!id) { // target is cwd - cwd = self.cwd(); - $elm.data(disable, false); - try { - $.each(e.originalEvent.dataTransfer.types, function(i, v){ - if (v.substr(0, 13) === 'elfinderfrom:') { - elfFrom = v.substr(13).toLowerCase(); - } - }); - } catch(e) {} - } - if (!cwd || (cwd.write && (!elfFrom || elfFrom !== (window.location.href + cwd.hash).toLowerCase()))) { - e.preventDefault(); - e.stopPropagation(); - $elm.data(ent, true); - $elm.addClass(clDropActive); - } else { - $elm.data(disable, true); - } - } - }) - .on('dragleave', '.native-droppable', function(e){ - if (e.originalEvent.dataTransfer) { - var $elm = $(e.currentTarget); - e.preventDefault(); - e.stopPropagation(); - if ($elm.data(ent)) { - $elm.data(ent, false); - } else { - $elm.removeClass(clDropActive); - } - } - }) - .on('dragover', '.native-droppable', function(e){ - if (e.originalEvent.dataTransfer) { - var $elm = $(e.currentTarget); - e.preventDefault(); - e.stopPropagation(); - e.originalEvent.dataTransfer.dropEffect = $elm.data(disable)? 'none' : 'copy'; - $elm.data(ent, false); - } - }) - .on('drop', '.native-droppable', function(e){ - if (e.originalEvent && e.originalEvent.dataTransfer) { - var $elm = $(e.currentTarget), - id; - e.preventDefault(); - e.stopPropagation(); - $elm.removeClass(clDropActive); - if (e.currentTarget.id) { - id = $elm.hasClass(navdir)? self.navId2Hash(e.currentTarget.id) : self.cwdId2Hash(e.currentTarget.id); - } else { - id = self.cwd().hash; - } - e.originalEvent._target = id; - self.exec('upload', {dropEvt: e.originalEvent, target: id}, void 0, id); - } - }); - })(); - } - - // trigger event cssloaded if cssAutoLoad disabled - if (self.cssloaded === false) { - self.cssloaded = true; - self.trigger('cssloaded'); - } - - // calculate elFinder node z-index - self.zIndexCalc(); - - // send initial request and start to pray >_< - self.trigger('init') - .request({ - data : {cmd : 'open', target : self.startDir(), init : 1, tree : 1}, - preventDone : true, - notify : {type : 'open', cnt : 1, hideCnt : true}, - freeze : true - }) - .fail(function() { - self.trigger('fail').disable().lastDir(''); - listeners = {}; - shortcuts = {}; - $(document).add(node).off('.'+namespace); - self.trigger = function() { }; - }) - .done(function(data) { - var trashDisable = function(th) { - var src = self.file(self.trashes[th]), - d = self.options.debug, - error; - - if (src && src.volumeid) { - delete self.volOptions[src.volumeid].trashHash; - } - self.trashes[th] = false; - self.debug('backend-error', 'Trash hash "'+th+'" was not found or not writable.'); - }, - toChkTh = {}; - - // regist rawStringDecoder - if (self.options.rawStringDecoder) { - self.registRawStringDecoder(self.options.rawStringDecoder); - } - - // re-calculate elFinder node z-index - self.zIndexCalc(); - - self.load().debug('api', self.api); - // update ui's size after init - node.trigger('resize'); - // initial open - open(data); - self.trigger('open', data, false); - self.trigger('opendone'); - - if (inFrame && self.options.enableAlways) { - $(window).trigger('focus'); - } - - // check self.trashes - $.each(self.trashes, function(th) { - var dir = self.file(th), - src; - if (! dir) { - toChkTh[th] = true; - } else if (dir.mime !== 'directory' || ! dir.write) { - trashDisable(th); - } - }); - if (Object.keys(toChkTh).length) { - self.request({ - data : {cmd : 'info', targets : Object.keys(toChkTh)}, - preventDefault : true - }).done(function(data) { - if (data && data.files) { - $.each(data.files, function(i, dir) { - if (dir.mime === 'directory' && dir.write) { - delete toChkTh[dir.hash]; - } - }); - } - }).always(function() { - $.each(toChkTh, trashDisable); - }); - } - // to enable / disable - self[self.options.enableAlways? 'enable' : 'disable'](); - }); - - // self.timeEnd('load'); - // End of bootUp() - }; - - // call bootCallback function with elFinder instance, extraObject - { dfrdsBeforeBootup: dfrdsBeforeBootup } - if (bootCallback && typeof bootCallback === 'function') { - self.bootCallback = bootCallback; - bootCallback.call(node.get(0), self, { dfrdsBeforeBootup: dfrdsBeforeBootup }); - } - - // call dfrdsBeforeBootup functions then boot up elFinder - $.when.apply(null, dfrdsBeforeBootup).done(function() { - bootUp(); - }).fail(function(error) { - self.error(error); - }); -}; - -//register elFinder to global scope -if (typeof toGlobal === 'undefined' || toGlobal) { - window.elFinder = elFinder; -} - -/** - * Prototype - * - * @type Object - */ -elFinder.prototype = { - - uniqueid : 0, - - res : function(type, id) { - return this.resources[type] && this.resources[type][id]; - }, - - /** - * User os. Required to bind native shortcuts for open/rename - * - * @type String - **/ - OS : navigator.userAgent.indexOf('Mac') !== -1 ? 'mac' : navigator.userAgent.indexOf('Win') !== -1 ? 'win' : 'other', - - /** - * User browser UA. - * jQuery.browser: version deprecated: 1.3, removed: 1.9 - * - * @type Object - **/ - UA : (function(){ - var self = this, - webkit = !document.unqueID && !window.opera && !window.sidebar && window.localStorage && 'WebkitAppearance' in document.documentElement.style, - chrome = webkit && window.chrome, - /*setRotated = function() { - var a = ((screen && screen.orientation && screen.orientation.angle) || window.orientation || 0) + 0; - if (a === -90) { - a = 270; - } - UA.Angle = a; - UA.Rotated = a % 180 === 0? false : true; - },*/ - UA = { - // Browser IE <= IE 6 - ltIE6 : typeof window.addEventListener == "undefined" && typeof document.documentElement.style.maxHeight == "undefined", - // Browser IE <= IE 7 - ltIE7 : typeof window.addEventListener == "undefined" && typeof document.querySelectorAll == "undefined", - // Browser IE <= IE 8 - ltIE8 : typeof window.addEventListener == "undefined" && typeof document.getElementsByClassName == "undefined", - // Browser IE <= IE 9 - ltIE9 : document.uniqueID && document.documentMode <= 9, - // Browser IE <= IE 10 - ltIE10 : document.uniqueID && document.documentMode <= 10, - // Browser IE >= IE 11 - gtIE11 : document.uniqueID && document.documentMode >= 11, - IE : document.uniqueID, - Firefox : window.sidebar, - Opera : window.opera, - Webkit : webkit, - Chrome : chrome, - Edge : (chrome && window.msCredentials)? true : false, - Safari : webkit && !window.chrome, - Mobile : typeof window.orientation != "undefined", - Touch : typeof window.ontouchstart != "undefined", - iOS : navigator.platform.match(/^iP(?:[ao]d|hone)/), - Fullscreen : (typeof (document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen) !== 'undefined'), - Angle : 0, - Rotated : false, - CSS : (function() { - var aStyle = document.createElement('a').style, - pStyle = document.createElement('p').style, - css; - css = 'position:sticky;position:-webkit-sticky;'; - css += 'width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:max-content;'; - aStyle.cssText = css; - return { - positionSticky : aStyle.position.indexOf('sticky')!==-1, - widthMaxContent : aStyle.width.indexOf('max-content')!==-1, - flex : typeof pStyle.flex !== 'undefined' - }; - })() - }; - return UA; - })(), - - /** - * Has RequireJS? - * - * @type Boolean - */ - hasRequire : (typeof define === 'function' && define.amd), - - /** - * Current request command - * - * @type String - */ - currentReqCmd : '', - - /** - * Current keyboard state - * - * @type Object - */ - keyState : {}, - - /** - * Internationalization object - * - * @type Object - */ - i18 : { - en : { - translator : '', - language : 'English', - direction : 'ltr', - dateFormat : 'd.m.Y H:i', - fancyDateFormat : '$1 H:i', - nonameDateFormat : 'ymd-His', - messages : {} - }, - months : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], - monthsShort : ['msJan', 'msFeb', 'msMar', 'msApr', 'msMay', 'msJun', 'msJul', 'msAug', 'msSep', 'msOct', 'msNov', 'msDec'], - - days : ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], - daysShort : ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] - }, - - /** - * File mimetype to kind mapping - * - * @type Object - */ - kinds : { - 'unknown' : 'Unknown', - 'directory' : 'Folder', - 'group' : 'Selects', - 'symlink' : 'Alias', - 'symlink-broken' : 'AliasBroken', - 'application/x-empty' : 'TextPlain', - 'application/postscript' : 'Postscript', - 'application/vnd.ms-office' : 'MsOffice', - 'application/msword' : 'MsWord', - 'application/vnd.ms-word' : 'MsWord', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' : 'MsWord', - 'application/vnd.ms-word.document.macroEnabled.12' : 'MsWord', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.template' : 'MsWord', - 'application/vnd.ms-word.template.macroEnabled.12' : 'MsWord', - 'application/vnd.ms-excel' : 'MsExcel', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' : 'MsExcel', - 'application/vnd.ms-excel.sheet.macroEnabled.12' : 'MsExcel', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.template' : 'MsExcel', - 'application/vnd.ms-excel.template.macroEnabled.12' : 'MsExcel', - 'application/vnd.ms-excel.sheet.binary.macroEnabled.12' : 'MsExcel', - 'application/vnd.ms-excel.addin.macroEnabled.12' : 'MsExcel', - 'application/vnd.ms-powerpoint' : 'MsPP', - 'application/vnd.openxmlformats-officedocument.presentationml.presentation' : 'MsPP', - 'application/vnd.ms-powerpoint.presentation.macroEnabled.12' : 'MsPP', - 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' : 'MsPP', - 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12' : 'MsPP', - 'application/vnd.openxmlformats-officedocument.presentationml.template' : 'MsPP', - 'application/vnd.ms-powerpoint.template.macroEnabled.12' : 'MsPP', - 'application/vnd.ms-powerpoint.addin.macroEnabled.12' : 'MsPP', - 'application/vnd.openxmlformats-officedocument.presentationml.slide' : 'MsPP', - 'application/vnd.ms-powerpoint.slide.macroEnabled.12' : 'MsPP', - 'application/pdf' : 'PDF', - 'application/xml' : 'XML', - 'application/vnd.oasis.opendocument.text' : 'OO', - 'application/vnd.oasis.opendocument.text-template' : 'OO', - 'application/vnd.oasis.opendocument.text-web' : 'OO', - 'application/vnd.oasis.opendocument.text-master' : 'OO', - 'application/vnd.oasis.opendocument.graphics' : 'OO', - 'application/vnd.oasis.opendocument.graphics-template' : 'OO', - 'application/vnd.oasis.opendocument.presentation' : 'OO', - 'application/vnd.oasis.opendocument.presentation-template' : 'OO', - 'application/vnd.oasis.opendocument.spreadsheet' : 'OO', - 'application/vnd.oasis.opendocument.spreadsheet-template' : 'OO', - 'application/vnd.oasis.opendocument.chart' : 'OO', - 'application/vnd.oasis.opendocument.formula' : 'OO', - 'application/vnd.oasis.opendocument.database' : 'OO', - 'application/vnd.oasis.opendocument.image' : 'OO', - 'application/vnd.openofficeorg.extension' : 'OO', - 'application/x-shockwave-flash' : 'AppFlash', - 'application/flash-video' : 'Flash video', - 'application/x-bittorrent' : 'Torrent', - 'application/javascript' : 'JS', - 'application/rtf' : 'RTF', - 'application/rtfd' : 'RTF', - 'application/x-font-ttf' : 'TTF', - 'application/x-font-otf' : 'OTF', - 'application/x-rpm' : 'RPM', - 'application/x-web-config' : 'TextPlain', - 'application/xhtml+xml' : 'HTML', - 'application/docbook+xml' : 'DOCBOOK', - 'application/x-awk' : 'AWK', - 'application/x-gzip' : 'GZIP', - 'application/x-bzip2' : 'BZIP', - 'application/x-xz' : 'XZ', - 'application/zip' : 'ZIP', - 'application/x-zip' : 'ZIP', - 'application/x-rar' : 'RAR', - 'application/x-tar' : 'TAR', - 'application/x-7z-compressed' : '7z', - 'application/x-jar' : 'JAR', - 'text/plain' : 'TextPlain', - 'text/x-php' : 'PHP', - 'text/html' : 'HTML', - 'text/javascript' : 'JS', - 'text/css' : 'CSS', - 'text/rtf' : 'RTF', - 'text/rtfd' : 'RTF', - 'text/x-c' : 'C', - 'text/x-csrc' : 'C', - 'text/x-chdr' : 'CHeader', - 'text/x-c++' : 'CPP', - 'text/x-c++src' : 'CPP', - 'text/x-c++hdr' : 'CPPHeader', - 'text/x-shellscript' : 'Shell', - 'application/x-csh' : 'Shell', - 'text/x-python' : 'Python', - 'text/x-java' : 'Java', - 'text/x-java-source' : 'Java', - 'text/x-ruby' : 'Ruby', - 'text/x-perl' : 'Perl', - 'text/x-sql' : 'SQL', - 'text/xml' : 'XML', - 'text/x-comma-separated-values' : 'CSV', - 'text/x-markdown' : 'Markdown', - 'image/x-ms-bmp' : 'BMP', - 'image/jpeg' : 'JPEG', - 'image/gif' : 'GIF', - 'image/png' : 'PNG', - 'image/tiff' : 'TIFF', - 'image/x-targa' : 'TGA', - 'image/vnd.adobe.photoshop' : 'PSD', - 'image/xbm' : 'XBITMAP', - 'image/pxm' : 'PXM', - 'audio/mpeg' : 'AudioMPEG', - 'audio/midi' : 'AudioMIDI', - 'audio/ogg' : 'AudioOGG', - 'audio/mp4' : 'AudioMPEG4', - 'audio/x-m4a' : 'AudioMPEG4', - 'audio/wav' : 'AudioWAV', - 'audio/x-mp3-playlist' : 'AudioPlaylist', - 'video/x-dv' : 'VideoDV', - 'video/mp4' : 'VideoMPEG4', - 'video/mpeg' : 'VideoMPEG', - 'video/x-msvideo' : 'VideoAVI', - 'video/quicktime' : 'VideoMOV', - 'video/x-ms-wmv' : 'VideoWM', - 'video/x-flv' : 'VideoFlash', - 'video/x-matroska' : 'VideoMKV', - 'video/ogg' : 'VideoOGG' - }, - - /** - * File mimetype to file extention mapping - * - * @type Object - * @see elFinder.mimetypes.js - */ - mimeTypes : {}, - - /** - * Ajax request data validation rules - * - * @type Object - */ - rules : { - defaults : function(data) { - if (!data - || (data.added && !Array.isArray(data.added)) - || (data.removed && !Array.isArray(data.removed)) - || (data.changed && !Array.isArray(data.changed))) { - return false; - } - return true; - }, - open : function(data) { return data && data.cwd && data.files && $.isPlainObject(data.cwd) && Array.isArray(data.files); }, - tree : function(data) { return data && data.tree && Array.isArray(data.tree); }, - parents : function(data) { return data && data.tree && Array.isArray(data.tree); }, - tmb : function(data) { return data && data.images && ($.isPlainObject(data.images) || Array.isArray(data.images)); }, - upload : function(data) { return data && ($.isPlainObject(data.added) || Array.isArray(data.added));}, - search : function(data) { return data && data.files && Array.isArray(data.files); } - }, - - /** - * Commands costructors - * - * @type Object - */ - commands : {}, - - /** - * Commands to add the item (space delimited) - * - * @type String - */ - cmdsToAdd : 'archive duplicate extract mkdir mkfile paste rm upload', - - parseUploadData : function(text) { - var self = this, - data; - - if (!$.trim(text)) { - return {error : ['errResponse', 'errDataEmpty']}; - } - - try { - data = JSON.parse(text); - } catch (e) { - return {error : ['errResponse', 'errDataNotJSON']}; - } - - data = self.normalize(data); - if (!self.validResponse('upload', data)) { - return {error : (data.norError || ['errResponse'])}; - } - data.removed = $.merge((data.removed || []), $.map(data.added || [], function(f) { return self.file(f.hash)? f.hash : null; })); - return data; - - }, - - iframeCnt : 0, - - uploads : { - // xhr muiti uploading flag - xhrUploading: false, - - // Timer of request fail to sync - failSyncTm: null, - - // current chunkfail requesting chunk - chunkfailReq: {}, - - // check file/dir exists - checkExists: function(files, target, fm, isDir) { - var dfrd = $.Deferred(), - names, renames = [], hashes = {}, chkFiles = [], - cancel = function() { - var i = files.length; - while (--i > -1) { - files[i]._remove = true; - } - }, - resolve = function() { - dfrd.resolve(renames, hashes); - }, - check = function() { - var existed = [], exists = [], i, c, - pathStr = target !== fm.cwd().hash? fm.path(target, true) + fm.option('separator', target) : '', - confirm = function(ndx) { - var last = ndx == exists.length-1, - opts = { - cssClass : 'elfinder-confirm-upload', - title : fm.i18n('cmdupload'), - text : ['errExists', pathStr + exists[ndx].name, 'confirmRepl'], - all : !last, - accept : { - label : 'btnYes', - callback : function(all) { - !last && !all - ? confirm(++ndx) - : resolve(); - } - }, - reject : { - label : 'btnNo', - callback : function(all) { - var i; - - if (all) { - i = exists.length; - while (ndx < i--) { - files[exists[i].i]._remove = true; - } - } else { - files[exists[ndx].i]._remove = true; - } - - !last && !all - ? confirm(++ndx) - : resolve(); - } - }, - cancel : { - label : 'btnCancel', - callback : function() { - cancel(); - resolve(); - } - }, - buttons : [ - { - label : 'btnBackup', - cssClass : 'elfinder-confirm-btn-backup', - callback : function(all) { - var i; - if (all) { - i = exists.length; - while (ndx < i--) { - renames.push(exists[i].name); - } - } else { - renames.push(exists[ndx].name); - } - !last && !all - ? confirm(++ndx) - : resolve(); - } - } - ] - }; - - if (!isDir) { - opts.buttons.push({ - label : 'btnRename' + (last? '' : 'All'), - cssClass : 'elfinder-confirm-btn-rename', - callback : function() { - renames = null; - resolve(); - } - }); - } - if (fm.iframeCnt > 0) { - delete opts.reject; - } - fm.confirm(opts); - }; - - if (! fm.file(target).read) { - // for dropbox type - resolve(); - return; - } - - names = $.map(files, function(file, i) { return file.name && (!fm.UA.iOS || file.name !== 'image.jpg')? {i: i, name: file.name} : null ;}); - - fm.request({ - data : {cmd : 'ls', target : target, intersect : $.map(names, function(item) { return item.name;})}, - notify : {type : 'preupload', cnt : 1, hideCnt : true}, - preventDefault : true - }) - .done(function(data) { - var existedArr, cwdItems; - if (data) { - if (data.error) { - cancel(); - } else { - if (fm.options.overwriteUploadConfirm && fm.option('uploadOverwrite', target)) { - if (data.list) { - if (Array.isArray(data.list)) { - existed = data.list || []; - } else { - existedArr = []; - existed = $.map(data.list, function(n) { - if (typeof n === 'string') { - return n; - } else { - // support to >=2.1.11 plugin Normalizer, Sanitizer - existedArr = existedArr.concat(n); - return false; - } - }); - if (existedArr.length) { - existed = existed.concat(existedArr); - } - hashes = data.list; - } - exists = $.grep(names, function(name){ - return $.inArray(name.name, existed) !== -1 ? true : false ; - }); - if (exists.length && existed.length && target == fm.cwd().hash) { - cwdItems = $.map(fm.files(target), function(file) { return file.name; } ); - if ($.grep(existed, function(n) { - return $.inArray(n, cwdItems) === -1? true : false; - }).length){ - fm.sync(); - } - } - } - } - } - } - if (exists.length > 0) { - confirm(0); - } else { - resolve(); - } - }) - .fail(function(error) { - cancel(); - resolve(); - error && fm.error(error); - }); - }; - if (fm.api >= 2.1 && typeof files[0] == 'object') { - check(); - } else { - resolve(); - } - return dfrd; - }, - - // check droped contents - checkFile : function(data, fm, target) { - if (!!data.checked || data.type == 'files') { - return data.files; - } else if (data.type == 'data') { - var dfrd = $.Deferred(), - scanDfd = $.Deferred(), - files = [], - paths = [], - dirctorys = [], - processing = 0, - items, - mkdirs = [], - cancel = false, - toArray = function(list) { - return Array.prototype.slice.call(list || [], 0); - }, - doScan = function(items) { - var entry, readEntries, - excludes = fm.options.folderUploadExclude[fm.OS] || null, - length = items.length, - check = function() { - if (--processing < 1 && scanDfd.state() === 'pending') { - scanDfd.resolve(); - } - }, - pushItem = function(file) { - if (! excludes || ! file.name.match(excludes)) { - paths.push(entry.fullPath || ''); - files.push(file); - } - check(); - }, - readEntries = function(dirReader) { - var entries = [], - read = function() { - dirReader.readEntries(function(results) { - if (cancel || !results.length) { - for (var i = 0; i < entries.length; i++) { - if (cancel) { - scanDfd.reject(); - break; - } - doScan([entries[i]]); - } - check(); - } else { - entries = entries.concat(toArray(results)); - read(); - } - }, check); - }; - read(); - }; - - processing++; - for (var i = 0; i < length; i++) { - if (cancel) { - scanDfd.reject(); - break; - } - entry = items[i]; - if (entry) { - if (entry.isFile) { - processing++; - entry.file(pushItem, check); - } else if (entry.isDirectory) { - if (fm.api >= 2.1) { - processing++; - mkdirs.push(entry.fullPath); - readEntries(entry.createReader()); // Start reading dirs. - } - } - } - } - check(); - return scanDfd; - }, hasDirs; - - items = $.map(data.files.items, function(item){ - return item.getAsEntry? item.getAsEntry() : item.webkitGetAsEntry(); - }); - $.each(items, function(i, item) { - if (item.isDirectory) { - hasDirs = true; - return false; - } - }); - if (items.length > 0) { - fm.uploads.checkExists(items, target, fm, hasDirs).done(function(renames, hashes){ - var dfds = []; - if (fm.options.overwriteUploadConfirm && fm.option('uploadOverwrite', target)) { - if (renames === null) { - data.overwrite = 0; - renames = []; - } - items = $.grep(items, function(item){ - var i, bak, hash, dfd, hi; - if (item.isDirectory && renames.length) { - i = $.inArray(item.name, renames); - if (i !== -1) { - renames.splice(i, 1); - bak = fm.uniqueName(item.name + fm.options.backupSuffix , null, ''); - $.each(hashes, function(h, name) { - if (item.name == name) { - hash = h; - return false; - } - }); - if (! hash) { - hash = fm.fileByName(item.name, target).hash; - } - fm.lockfiles({files : [hash]}); - dfd = fm.request({ - data : {cmd : 'rename', target : hash, name : bak}, - notify : {type : 'rename', cnt : 1} - }) - .fail(function() { - item._remove = true; - fm.sync(); - }) - .always(function() { - fm.unlockfiles({files : [hash]}); - }); - dfds.push(dfd); - } - } - return !item._remove? true : false; - }); - } - $.when.apply($, dfds).done(function(){ - var notifyto, msg, - id = +new Date(); - - if (items.length > 0) { - msg = fm.escape(items[0].name); - if (items.length > 1) { - msg += ' ... ' + items.length + fm.i18n('items'); - } - notifyto = setTimeout(function() { - fm.notify({ - type : 'readdir', - id : id, - cnt : 1, - hideCnt: true, - msg : fm.i18n('ntfreaddir') + ' (' + msg + ')', - cancel: function() { - cancel = true; - } - }); - }, fm.options.notifyDelay); - doScan(items).done(function() { - notifyto && clearTimeout(notifyto); - fm.notify({type : 'readdir', id: id, cnt : -1}); - if (cancel) { - dfrd.reject(); - } else { - dfrd.resolve([files, paths, renames, hashes, mkdirs]); - } - }).fail(function() { - dfrd.reject(); - }); - } else { - dfrd.reject(); - } - }); - }); - return dfrd.promise(); - } else { - return dfrd.reject(); - } - } else { - var ret = []; - var check = []; - var str = data.files[0]; - if (data.type == 'html') { - var tmp = $("").append($.parseHTML(str.replace(/ src=/ig, ' _elfsrc='))), - atag; - $('img[_elfsrc]', tmp).each(function(){ - var url, purl, - self = $(this), - pa = self.closest('a'); - if (pa && pa.attr('href') && pa.attr('href').match(/\.(?:jpe?g|gif|bmp|png)/i)) { - purl = pa.attr('href'); - } - url = self.attr('_elfsrc'); - if (url) { - if (purl) { - $.inArray(purl, ret) == -1 && ret.push(purl); - $.inArray(url, check) == -1 && check.push(url); - } else { - $.inArray(url, ret) == -1 && ret.push(url); - } - } - // Probably it's clipboard data - if (ret.length === 1 && ret[0].match(/^data:image\/png/)) { - data.clipdata = true; - } - }); - atag = $('a[href]', tmp); - atag.each(function(){ - var text, loc, - parseUrl = function(url) { - var a = document.createElement('a'); - a.href = url; - return a; - }; - if (text = $(this).text()) { - loc = parseUrl($(this).attr('href')); - if (loc.href && loc.href.match(/^(?:ht|f)tp/i) && (atag.length === 1 || ! loc.pathname.match(/(?:\.html?|\/[^\/.]*)$/i) || $.trim(text).match(/\.[a-z0-9-]{1,10}$/i))) { - if ($.inArray(loc.href, ret) == -1 && $.inArray(loc.href, check) == -1) ret.push(loc.href); - } - } - }); - } else { - var regex, m, url; - regex = /((?:ht|f)tps?:\/\/[-_.!~*\'()a-z0-9;/?:\@&=+\$,%#\*\[\]]+)/ig; - while (m = regex.exec(str)) { - url = m[1].replace(/&/g, '&'); - if ($.inArray(url, ret) == -1) ret.push(url); - } - } - return ret; - } - }, - - // upload transport using XMLHttpRequest - xhr : function(data, fm) { - var self = fm ? fm : this, - node = self.getUI(), - xhr = new XMLHttpRequest(), - notifyto = null, notifyto2 = null, - dataChecked = data.checked, - isDataType = (data.isDataType || data.type == 'data'), - target = (data.target || self.cwd().hash), - dropEvt = (data.dropEvt || null), - extraData = data.extraData || null, - chunkEnable = (self.option('uploadMaxConn', target) != -1), - multiMax = Math.min(5, Math.max(1, self.option('uploadMaxConn', target))), - retryWait = 10000, // 10 sec - retryMax = 30, // 10 sec * 30 = 300 secs (Max 5 mins) - retry = 0, - getFile = function(files) { - var dfd = $.Deferred(), - file; - if (files.promise) { - files.always(function(f) { - dfd.resolve(Array.isArray(f) && f.length? (isDataType? f[0][0] : f[0]) : {}); - }); - } else { - dfd.resolve(files.length? (isDataType? files[0][0] : files[0]) : {}); - } - return dfd; - }, - dfrd = $.Deferred() - .fail(function(err) { - var error = self.parseError(err), - userAbort; - if (error === 'userabort') { - userAbort = true; - error = void 0; - } - if (files && (self.uploads.xhrUploading || userAbort)) { - // send request om fail - getFile(files).done(function(file) { - if (!userAbort) { - triggerError(error, file); - } - if (! file._cid) { - // send sync request - self.uploads.failSyncTm && clearTimeout(self.uploads.failSyncTm); - self.uploads.failSyncTm = setTimeout(function() { - self.sync(target); - }, 1000); - } else if (! self.uploads.chunkfailReq[file._cid]) { - // send chunkfail request - self.uploads.chunkfailReq[file._cid] = true; - setTimeout(function() { - fm.request({ - data : { - cmd: 'upload', - target: target, - chunk: file._chunk, - cid: file._cid, - upload: ['chunkfail'], - mimes: 'chunkfail' - }, - options : { - type: 'post', - url: self.uploadURL - }, - preventDefault: true - }).always(function() { - delete self.uploads.chunkfailReq[file._chunk]; - }); - }, 1000); - } - }); - } else { - triggerError(error); - } - !userAbort && self.sync(); - self.uploads.xhrUploading = false; - files = null; - }) - .done(function(data) { - self.uploads.xhrUploading = false; - files = null; - if (data) { - self.currentReqCmd = 'upload'; - data.warning && triggerError(data.warning); - self.updateCache(data); - data.removed && data.removed.length && self.remove(data); - data.added && data.added.length && self.add(data); - data.changed && data.changed.length && self.change(data); - self.trigger('upload', data, false); - self.trigger('uploaddone'); - if (data.toasts && Array.isArray(data.toasts)) { - $.each(data.toasts, function() { - this.msg && self.toast(this); - }); - } - data.sync && self.sync(); - data.debug && fm.debug('backend-debug', data); - } - }) - .always(function() { - self.abortXHR(xhr); - // unregist fnAbort function - node.off('uploadabort', fnAbort); - $(window).off('unload', fnAbort); - notifyto && clearTimeout(notifyto); - notifyto2 && clearTimeout(notifyto2); - dataChecked && !data.multiupload && checkNotify() && self.notify({type : 'upload', cnt : -cnt, progress : 0, size : 0}); - chunkMerge && notifyElm.children('.elfinder-notify-chunkmerge').length && self.notify({type : 'chunkmerge', cnt : -1}); - }), - formData = new FormData(), - files = data.input ? data.input.files : self.uploads.checkFile(data, self, target), - cnt = data.checked? (isDataType? files[0].length : files.length) : files.length, - loaded = 0, - prev = 0, - filesize = 0, - notify = false, - notifyElm = self.ui.notify, - cancelBtn = true, - abort = false, - checkNotify = function() { - if (!notify && (ntfUpload = notifyElm.children('.elfinder-notify-upload')).length) { - notify = true; - } - return notify; - }, - fnAbort = function(e, error) { - abort = true; - self.abortXHR(xhr, { quiet: true, abort: true }); - dfrd.reject(error); - if (checkNotify()) { - self.notify({type : 'upload', cnt : ntfUpload.data('cnt') * -1, progress : 0, size : 0}); - } - }, - cancelToggle = function(show) { - ntfUpload.children('.elfinder-notify-cancel')[show? 'show':'hide'](); - }, - startNotify = function(size) { - if (!size) size = filesize; - return setTimeout(function() { - notify = true; - self.notify({type : 'upload', cnt : cnt, progress : loaded - prev, size : size, - cancel: function() { - node.trigger('uploadabort', 'userabort'); - } - }); - ntfUpload = notifyElm.children('.elfinder-notify-upload'); - prev = loaded; - if (data.multiupload) { - cancelBtn && cancelToggle(true); - } else { - cancelToggle(cancelBtn && loaded < size); - } - }, self.options.notifyDelay); - }, - doRetry = function() { - if (retry++ <= retryMax) { - if (checkNotify() && prev) { - self.notify({type : 'upload', cnt : 0, progress : 0, size : prev}); - } - self.abortXHR(xhr, { quiet: true }); - prev = loaded = 0; - setTimeout(function() { - var reqId; - if (! abort) { - xhr.open('POST', self.uploadURL, true); - if (self.api >= 2.1029) { - reqId = (+ new Date()).toString(16) + Math.floor(1000 * Math.random()).toString(16); - (typeof formData['delete'] === 'function') && formData['delete']('reqid'); - formData.append('reqid', reqId); - xhr._requestId = reqId; - } - xhr.send(formData); - } - }, retryWait); - } else { - node.trigger('uploadabort', ['errAbort', 'errTimeout']); - } - }, - progress = function() { - var node; - if (notify) { - dfrd.notifyWith(ntfUpload, [{ - cnt: ntfUpload.data('cnt'), - progress: ntfUpload.data('progress'), - total: ntfUpload.data('total') - }]); - } - }, - triggerError = function(err, file, unite) { - err && self.trigger('xhruploadfail', { error: err, file: file }); - if (unite) { - if (err) { - if (errCnt < self.options.maxErrorDialogs) { - if (Array.isArray(err)) { - errors = errors.concat(err); - } else { - errors.push(err); - } - } - errCnt++; - } - } else { - if (err) { - self.error(err); - } else { - if (errors.length) { - if (errCnt >= self.options.maxErrorDialogs) { - errors = errors.concat('moreErrors', errCnt - self.options.maxErrorDialogs); - } - self.error(errors); - } - errors = []; - errCnt = 0; - } - } - }, - errors = [], - errCnt = 0, - renames = (data.renames || null), - hashes = (data.hashes || null), - chunkMerge = false, - ntfUpload = $(); - - // regist fnAbort function - node.one('uploadabort', fnAbort); - $(window).one('unload.' + fm.namespace, fnAbort); - - !chunkMerge && (prev = loaded); - - if (!isDataType && !cnt) { - return dfrd.reject(['errUploadNoFiles']); - } - - xhr.addEventListener('error', function() { - if (xhr.status == 0) { - if (abort) { - dfrd.reject(); - } else { - // ff bug while send zero sized file - // for safari - send directory - if (!isDataType && data.files && $.grep(data.files, function(f){return ! f.type && f.size === (self.UA.Safari? 1802 : 0)? true : false;}).length) { - dfrd.reject(['errAbort', 'errFolderUpload']); - } else if (data.input && $.grep(data.input.files, function(f){return ! f.type && f.size === (self.UA.Safari? 1802 : 0)? true : false;}).length) { - dfrd.reject(['errUploadNoFiles']); - } else { - doRetry(); - } - } - } else { - node.trigger('uploadabort', 'errConnect'); - } - }, false); - - xhr.addEventListener('load', function(e) { - var status = xhr.status, res, curr = 0, error = '', errData, errObj; - - if (status >= 400) { - if (status > 500) { - error = 'errResponse'; - } else { - error = ['errResponse', 'errServerError']; - } - } else { - if (!xhr.responseText) { - error = ['errResponse', 'errDataEmpty']; - } - } - - if (error) { - node.trigger('uploadabort'); - getFile(files || {}).done(function(file) { - return dfrd.reject(file._cid? null : error); - }); - } - - loaded = filesize; - - if (checkNotify() && (curr = loaded - prev)) { - self.notify({type : 'upload', cnt : 0, progress : curr, size : 0}); - progress(); - } - - res = self.parseUploadData(xhr.responseText); - - // chunked upload commit - if (res._chunkmerged) { - formData = new FormData(); - var _file = [{_chunkmerged: res._chunkmerged, _name: res._name, _mtime: res._mtime}]; - chunkMerge = true; - node.off('uploadabort', fnAbort); - notifyto2 = setTimeout(function() { - self.notify({type : 'chunkmerge', cnt : 1}); - }, self.options.notifyDelay); - isDataType? send(_file, files[1]) : send(_file); - return; - } - - res._multiupload = data.multiupload? true : false; - if (res.error) { - errData = { - cmd: 'upload', - err: res, - xhr: xhr, - rc: xhr.status - }; - self.trigger('uploadfail', res); - // trigger "requestError" event - self.trigger('requestError', errData); - if (errData._getEvent && errData._getEvent().isDefaultPrevented()) { - res.error = ''; - } - if (res._chunkfailure || res._multiupload) { - abort = true; - self.uploads.xhrUploading = false; - notifyto && clearTimeout(notifyto); - if (ntfUpload.length) { - self.notify({type : 'upload', cnt : -cnt, progress : 0, size : 0}); - dfrd.reject(res); - } else { - // for multi connection - dfrd.reject(); - } - } else { - dfrd.reject(res); - } - } else { - dfrd.resolve(res); - } - }, false); - - xhr.upload.addEventListener('loadstart', function(e) { - if (!chunkMerge && e.lengthComputable) { - loaded = e.loaded; - retry && (loaded = 0); - filesize = e.total; - if (!loaded) { - loaded = parseInt(filesize * 0.05); - } - if (checkNotify()) { - self.notify({type : 'upload', cnt : 0, progress : loaded - prev, size : data.multiupload? 0 : filesize}); - prev = loaded; - progress(); - } - } - }, false); - - xhr.upload.addEventListener('progress', function(e) { - var curr; - - if (e.lengthComputable && !chunkMerge && xhr.readyState < 2) { - - loaded = e.loaded; - - // to avoid strange bug in safari (not in chrome) with drag&drop. - // bug: macos finder opened in any folder, - // reset safari cache (option+command+e), reload elfinder page, - // drop file from finder - // on first attempt request starts (progress callback called ones) but never ends. - // any next drop - successfull. - if (!data.checked && loaded > 0 && !notifyto) { - notifyto = startNotify(xhr._totalSize - loaded); - } - - if (!filesize) { - filesize = e.total; - if (!loaded) { - loaded = parseInt(filesize * 0.05); - } - } - - curr = loaded - prev; - if (checkNotify() && (curr/e.total) >= 0.05) { - self.notify({type : 'upload', cnt : 0, progress : curr, size : 0}); - prev = loaded; - progress(); - } - - if (! data.multiupload && loaded >= filesize) { - cancelBtn = false; - cancelToggle(false); - } - } - }, false); - - var send = function(files, paths){ - var size = 0, - fcnt = 1, - sfiles = [], - c = 0, - total = cnt, - maxFileSize, - totalSize = 0, - chunked = [], - chunkID = new Date().getTime().toString().substr(-9), // for take care of the 32bit backend system - BYTES_PER_CHUNK = Math.min((fm.uplMaxSize? fm.uplMaxSize : 2097152) - 8190, fm.options.uploadMaxChunkSize), // uplMaxSize margin 8kb or options.uploadMaxChunkSize - blobSlice = chunkEnable? false : '', - blobSize, blobMtime, blobName, i, start, end, chunks, blob, chunk, added, done, last, failChunk, - multi = function(files, num){ - var sfiles = [], cid, sfilesLen = 0, cancelChk; - if (!abort) { - while(files.length && sfiles.length < num) { - sfiles.push(files.shift()); - } - sfilesLen = sfiles.length; - if (sfilesLen) { - cancelChk = sfilesLen; - for (var i=0; i < sfilesLen; i++) { - if (abort) { - break; - } - cid = isDataType? (sfiles[i][0][0]._cid || null) : (sfiles[i][0]._cid || null); - if (!!failChunk[cid]) { - last--; - continue; - } - fm.exec('upload', { - type: data.type, - isDataType: isDataType, - files: sfiles[i], - checked: true, - target: target, - dropEvt: dropEvt, - renames: renames, - hashes: hashes, - multiupload: true, - overwrite: data.overwrite === 0? 0 : void 0, - clipdata: data.clipdata - }, void 0, target) - .fail(function(error) { - if (error && error === 'No such command') { - abort = true; - fm.error(['errUpload', 'errPerm']); - } - if (cid) { - failChunk[cid] = true; - } - }) - .always(function(e) { - if (e && e.added) added = $.merge(added, e.added); - if (last <= ++done) { - fm.trigger('multiupload', {added: added}); - notifyto && clearTimeout(notifyto); - if (checkNotify()) { - self.notify({type : 'upload', cnt : -cnt, progress : 0, size : 0}); - } - } - if (files.length) { - multi(files, 1); // Next one - } else { - if (--cancelChk <= 1) { - cancelBtn = false; - cancelToggle(false); - } - } - }); - } - } - } - if (sfiles.length < 1 || abort) { - if (abort) { - notifyto && clearTimeout(notifyto); - if (cid) { - failChunk[cid] = true; - } - dfrd.reject(); - } else { - dfrd.resolve(); - self.uploads.xhrUploading = false; - } - } - }, - check = function(){ - if (!self.uploads.xhrUploading) { - self.uploads.xhrUploading = true; - multi(sfiles, multiMax); // Max connection: 3 - } else { - setTimeout(check, 100); - } - }, - reqId, err; - - if (! dataChecked && (isDataType || data.type == 'files')) { - if (! (maxFileSize = fm.option('uploadMaxSize', target))) { - maxFileSize = 0; - } - for (i=0; i < files.length; i++) { - try { - blob = files[i]; - blobSize = blob.size; - if (blobSlice === false) { - blobSlice = ''; - if (self.api >= 2.1) { - if ('slice' in blob) { - blobSlice = 'slice'; - } else if ('mozSlice' in blob) { - blobSlice = 'mozSlice'; - } else if ('webkitSlice' in blob) { - blobSlice = 'webkitSlice'; - } - } - } - } catch(e) { - cnt--; - total--; - continue; - } - - // file size check - if ((maxFileSize && blobSize > maxFileSize) || (!blobSlice && fm.uplMaxSize && blobSize > fm.uplMaxSize)) { - triggerError(['errUploadFile', blob.name, 'errUploadFileSize'], blob, true); - cnt--; - total--; - continue; - } - - // file mime check - if (blob.type && ! self.uploadMimeCheck(blob.type, target)) { - triggerError(['errUploadFile', blob.name, 'errUploadMime', '(' + blob.type + ')'], blob, true); - cnt--; - total--; - continue; - } - - if (blobSlice && blobSize > BYTES_PER_CHUNK) { - start = 0; - end = BYTES_PER_CHUNK; - chunks = -1; - total = Math.floor((blobSize - 1) / BYTES_PER_CHUNK); - blobMtime = blob.lastModified? Math.round(blob.lastModified/1000) : 0; - blobName = data.clipdata? fm.date(fm.nonameDateFormat) + '.png' : blob.name; - - totalSize += blobSize; - chunked[chunkID] = 0; - while(start < blobSize) { - chunk = blob[blobSlice](start, end); - chunk._chunk = blobName + '.' + (++chunks) + '_' + total + '.part'; - chunk._cid = chunkID; - chunk._range = start + ',' + chunk.size + ',' + blobSize; - chunk._mtime = blobMtime; - chunked[chunkID]++; - - if (size) { - c++; - } - if (typeof sfiles[c] == 'undefined') { - sfiles[c] = []; - if (isDataType) { - sfiles[c][0] = []; - sfiles[c][1] = []; - } - } - size = BYTES_PER_CHUNK; - fcnt = 1; - if (isDataType) { - sfiles[c][0].push(chunk); - sfiles[c][1].push(paths[i]); - } else { - sfiles[c].push(chunk); - } - - start = end; - end = start + BYTES_PER_CHUNK; - } - if (chunk == null) { - triggerError(['errUploadFile', blob.name, 'errUploadFileSize'], blob, true); - cnt--; - total--; - } else { - total += chunks; - size = 0; - fcnt = 1; - c++; - } - continue; - } - if ((fm.uplMaxSize && size + blobSize > fm.uplMaxSize) || fcnt > fm.uplMaxFile) { - size = 0; - fcnt = 1; - c++; - } - if (typeof sfiles[c] == 'undefined') { - sfiles[c] = []; - if (isDataType) { - sfiles[c][0] = []; - sfiles[c][1] = []; - } - } - if (isDataType) { - sfiles[c][0].push(blob); - sfiles[c][1].push(paths[i]); - } else { - sfiles[c].push(blob); - } - size += blobSize; - totalSize += blobSize; - fcnt++; - } - - if (errors.length) { - triggerError(); - } - - if (sfiles.length == 0) { - // no data - data.checked = true; - return false; - } - - if (sfiles.length > 1) { - // multi upload - notifyto = startNotify(totalSize); - added = []; - done = 0; - last = sfiles.length; - failChunk = []; - check(); - return true; - } - - // single upload - if (isDataType) { - files = sfiles[0][0]; - paths = sfiles[0][1]; - } else { - files = sfiles[0]; - } - } - - if (!dataChecked) { - if (!fm.UA.Safari || !data.files) { - notifyto = startNotify(totalSize); - } else { - xhr._totalSize = totalSize; - } - } - - dataChecked = true; - - if (! files.length) { - dfrd.reject(['errUploadNoFiles']); - } - - xhr.open('POST', self.uploadURL, true); - - // set request headers - if (fm.customHeaders) { - $.each(fm.customHeaders, function(key) { - xhr.setRequestHeader(key, this); - }); - } - - // set xhrFields - if (fm.xhrFields) { - $.each(fm.xhrFields, function(key) { - if (key in xhr) { - xhr[key] = this; - } - }); - } - - if (self.api >= 2.1029) { - // request ID - reqId = (+ new Date()).toString(16) + Math.floor(1000 * Math.random()).toString(16); - formData.append('reqid', reqId); - xhr._requestId = reqId; - } - formData.append('cmd', 'upload'); - formData.append(self.newAPI ? 'target' : 'current', target); - if (renames && renames.length) { - $.each(renames, function(i, v) { - formData.append('renames[]', v); - }); - formData.append('suffix', fm.options.backupSuffix); - } - if (hashes) { - $.each(hashes, function(i, v) { - formData.append('hashes['+ i +']', v); - }); - } - $.each(self.customData, function(key, val) { - formData.append(key, val); - }); - $.each(self.options.onlyMimes, function(i, mime) { - formData.append('mimes[]', mime); - }); - - $.each(files, function(i, file) { - var name; - if (file._chunkmerged) { - formData.append('chunk', file._chunkmerged); - formData.append('upload[]', file._name); - formData.append('mtime[]', file._mtime); - data.clipdata && formData.append('overwrite', 0); - } else { - if (file._chunkfail) { - formData.append('upload[]', 'chunkfail'); - formData.append('mimes', 'chunkfail'); - } else { - if (data.clipdata) { - if (!file._chunk) { - data.overwrite = 0; - name = fm.date(fm.nonameDateFormat) + '.png'; - } - } else { - if (file.name) { - name = file.name; - if (fm.UA.iOS) { - if (name.match(/^image\.jpe?g$/i)) { - data.overwrite = 0; - name = fm.date(fm.nonameDateFormat) + '.jpg'; - } else if (name.match(/^capturedvideo\.mov$/i)) { - data.overwrite = 0; - name = fm.date(fm.nonameDateFormat) + '.mov'; - } - } - } - } - name? formData.append('upload[]', file, name) : formData.append('upload[]', file); - } - if (file._chunk) { - formData.append('chunk', file._chunk); - formData.append('cid' , file._cid); - formData.append('range', file._range); - formData.append('mtime[]', file._mtime); - } else { - formData.append('mtime[]', file.lastModified? Math.round(file.lastModified/1000) : 0); - } - } - }); - - if (isDataType) { - $.each(paths, function(i, path) { - formData.append('upload_path[]', path); - }); - } - - if (data.overwrite === 0) { - formData.append('overwrite', 0); - } - - // send int value that which meta key was pressed when dropped as `dropWith` - if (dropEvt) { - formData.append('dropWith', parseInt( - (dropEvt.altKey ? '1' : '0')+ - (dropEvt.ctrlKey ? '1' : '0')+ - (dropEvt.metaKey ? '1' : '0')+ - (dropEvt.shiftKey? '1' : '0'), 2)); - } - - // set extraData on current request - if (extraData) { - $.each(extraData, function(key, val) { - formData.append(key, val); - }); - } - - xhr.send(formData); - - return true; - }; - - if (! isDataType) { - if (files.length > 0) { - if (! data.clipdata && renames == null) { - var mkdirs = [], - paths = [], - excludes = fm.options.folderUploadExclude[fm.OS] || null; - $.each(files, function(i, file) { - var relPath = file.webkitRelativePath || file.relativePath || '', - idx, rootDir; - if (! relPath) { - return false; - } - if (excludes && file.name.match(excludes)) { - file._remove = true; - relPath = void(0); - } else { - // add '/' as prefix to make same to folder uploading with DnD, see #2607 - relPath = '/' + relPath.replace(/\/[^\/]*$/, '').replace(/^\//, ''); - if (relPath && $.inArray(relPath, mkdirs) === -1) { - mkdirs.push(relPath); - // checking the root directory to supports see #2378 - idx = relPath.substr(1).indexOf('/'); - if (idx !== -1 && (rootDir = relPath.substr(0, idx + 1)) && $.inArray(rootDir, mkdirs) === -1) { - mkdirs.unshift(rootDir); - } - } - } - paths.push(relPath); - }); - renames = []; - hashes = {}; - if (mkdirs.length) { - (function() { - var checkDirs = $.map(mkdirs, function(name) { return name.substr(1).indexOf('/') === -1 ? {name: name.substr(1)} : null;}), - cancelDirs = []; - fm.uploads.checkExists(checkDirs, target, fm, true).done( - function(res, res2) { - var dfds = [], dfd, bak, hash; - if (fm.options.overwriteUploadConfirm && fm.option('uploadOverwrite', target)) { - cancelDirs = $.map(checkDirs, function(dir) { return dir._remove? dir.name : null ;} ); - checkDirs = $.grep(checkDirs, function(dir) { return !dir._remove? true : false ;} ); - } - if (cancelDirs.length) { - $.each(paths.concat(), function(i, path) { - if ($.inArray(path, cancelDirs) === 0) { - files[i]._remove = true; - paths[i] = void(0); - } - }); - } - files = $.grep(files, function(file) { return file._remove? false : true; }); - paths = $.grep(paths, function(path) { return path === void 0 ? false : true; }); - if (checkDirs.length) { - dfd = $.Deferred(); - if (res.length) { - $.each(res, function(i, existName) { - // backup - bak = fm.uniqueName(existName + fm.options.backupSuffix , null, ''); - $.each(res2, function(h, name) { - if (res[0] == name) { - hash = h; - return false; - } - }); - if (! hash) { - hash = fm.fileByName(res[0], target).hash; - } - fm.lockfiles({files : [hash]}); - dfds.push( - fm.request({ - data : {cmd : 'rename', target : hash, name : bak}, - notify : {type : 'rename', cnt : 1} - }) - .fail(function(error) { - dfrd.reject(error); - fm.sync(); - }) - .always(function() { - fm.unlockfiles({files : [hash]}); - }) - ); - }); - } else { - dfds.push(null); - } - - $.when.apply($, dfds).done(function() { - // ensure directories - fm.request({ - data : {cmd : 'mkdir', target : target, dirs : mkdirs}, - notify : {type : 'mkdir', cnt : mkdirs.length}, - preventFail: true - }) - .fail(function(error) { - error = error || ['errUnknown']; - if (error[0] === 'errCmdParams') { - multiMax = 1; - } else { - multiMax = 0; - dfrd.reject(error); - } - }) - .done(function(data) { - var rm = false; - if (!data.hashes) { - data.hashes = {}; - } - paths = $.map(paths.concat(), function(p, i) { - if (p === '/') { - return target; - } else { - if (data.hashes[p]) { - return data.hashes[p]; - } else { - rm = true; - files[i]._remove = true; - return null; - } - } - }); - if (rm) { - files = $.grep(files, function(file) { return file._remove? false : true; }); - } - }) - .always(function(data) { - if (multiMax) { - isDataType = true; - if (! send(files, paths)) { - dfrd.reject(); - } - } - }); - }); - } else { - dfrd.reject(); - } - } - ); - })(); - } else { - fm.uploads.checkExists(files, target, fm).done( - function(res, res2){ - if (fm.options.overwriteUploadConfirm && fm.option('uploadOverwrite', target)) { - hashes = res2; - if (res === null) { - data.overwrite = 0; - } else { - renames = res; - } - files = $.grep(files, function(file){return !file._remove? true : false ;}); - } - cnt = files.length; - if (cnt > 0) { - if (! send(files)) { - dfrd.reject(); - } - } else { - dfrd.reject(); - } - } - ); - } - } else { - if (! send(files)) { - dfrd.reject(); - } - } - } else { - dfrd.reject(); - } - } else { - if (dataChecked) { - send(files[0], files[1]); - } else { - files.done(function(result) { // result: [files, paths, renames, hashes, mkdirs] - renames = []; - cnt = result[0].length; - if (cnt) { - if (result[4] && result[4].length) { - // ensure directories - fm.request({ - data : {cmd : 'mkdir', target : target, dirs : result[4]}, - notify : {type : 'mkdir', cnt : result[4].length}, - preventFail: true - }) - .fail(function(error) { - error = error || ['errUnknown']; - if (error[0] === 'errCmdParams') { - multiMax = 1; - } else { - multiMax = 0; - dfrd.reject(error); - } - }) - .done(function(data) { - var rm = false; - if (!data.hashes) { - data.hashes = {}; - } - result[1] = $.map(result[1], function(p, i) { - p = p.replace(/\/[^\/]*$/, ''); - if (p === '') { - return target; - } else { - if (data.hashes[p]) { - return data.hashes[p]; - } else { - rm = true; - result[0][i]._remove = true; - return null; - } - } - }); - if (rm) { - result[0] = $.grep(result[0], function(file) { return file._remove? false : true; }); - } - }) - .always(function(data) { - if (multiMax) { - renames = result[2]; - hashes = result[3]; - send(result[0], result[1]); - } - }); - return; - } else { - result[1] = $.map(result[1], function() { return target; }); - } - renames = result[2]; - hashes = result[3]; - send(result[0], result[1]); - } else { - dfrd.reject(['errUploadNoFiles']); - } - }).fail(function(){ - dfrd.reject(); - }); - } - } - - return dfrd; - }, - - // upload transport using iframe - iframe : function(data, fm) { - var self = fm ? fm : this, - input = data.input? data.input : false, - files = !input ? self.uploads.checkFile(data, self) : false, - dfrd = $.Deferred() - .fail(function(error) { - error && self.error(error); - }), - name = 'iframe-'+fm.namespace+(++self.iframeCnt), - form = $('
'), - msie = this.UA.IE, - // clear timeouts, close notification dialog, remove form/iframe - onload = function() { - abortto && clearTimeout(abortto); - notifyto && clearTimeout(notifyto); - notify && self.notify({type : 'upload', cnt : -cnt}); - - setTimeout(function() { - msie && $('', - // setup on elFinder bootup - setup : function(opts, fm) { - if (fm.UA.IE || fm.UA.Mobile) { - this.disabled = true; - } - }, - // Initialization of editing node (this: this editors HTML node) - init : function(id, file, dum, fm) { - var orig = 'https://www.photopea.com', - ifm = $(this).hide() - //.css('box-sizing', 'border-box') - .on('load', function() { - //spnr.remove(); - ifm.show(); - }) - .on('error', function() { - spnr.remove(); - ifm.show(); - }), - editor = this.editor, - confObj = editor.confObj, - spnr = $('
') - .html('' + fm.i18n('nowLoading') + '') - .appendTo(ifm.parent()), - saveMimes = fm.arrayFlip(confObj.info.canMakeEmpty), - getType = function(mime) { - var ext = getExtention(mime, fm), - extmime = ext2mime[ext]; - - if (!confObj.mimesFlip[extmime]) { - ext = ''; - } else if (ext === 'jpeg') { - ext = 'jpg'; - } - if (!ext || !!saveMimes[ext]) { - ext = 'psd'; - extmime = ext2mime[ext]; - ifm.closest('.ui-dialog').trigger('changeType', { - extention: ext, - mime : extmime, - keepEditor: true - }); - } - return ext; - }, - mime = file.mime, - liveMsg, type, quty; - - if (!confObj.mimesFlip) { - confObj.mimesFlip = fm.arrayFlip(confObj.mimes, true); - } - if (!confObj.liveMsg) { - confObj.liveMsg = function(ifm, spnr, file) { - var url = fm.openUrl(file.hash); - if (!fm.isSameOrigin(url)) { - url = fm.openUrl(file.hash, true); - } - var wnd = ifm.get(0).contentWindow, - phase = 0, - data = null, - dfdIni = $.Deferred().done(function() { - spnr.remove(); - phase = 1; - wnd.postMessage(data, '*'); - }), - dfdGet; - - this.load = function() { - return fm.request({ - data : {cmd : 'get'}, - options : { - url: url, - type: 'get', - cache : true, - dataType : 'binary', - responseType :'arraybuffer', - processData: false - } - }) - .done(function(d) { - data = d; - }); - }; - - this.receive = function(e) { - var ev = e.originalEvent, - state; - if (ev.origin === orig && ev.source === wnd) { - if (ev.data === 'done') { - if (phase === 0) { - dfdIni.resolve(); - } else if (phase === 1) { - phase = 2; - ifm.trigger('contentsloaded'); - } else { - if (dfdGet && dfdGet.state() === 'pending') { - dfdGet.reject('errDataEmpty'); - } - } - } else { - if (dfdGet && dfdGet.state() === 'pending') { - if (typeof ev.data === 'object') { - dfdGet.resolve('data:' + mime + ';base64,' + fm.arrayBufferToBase64(ev.data)); - } else { - dfdGet.reject('errDataEmpty'); - } - } - } - } - }; - - this.getContent = function() { - var type, q; - if (phase > 1) { - dfdGet && dfdGet.state() === 'pending' && dfdGet.reject(); - dfdGet = null; - dfdGet = $.Deferred(); - if (phase === 2) { - phase = 3; - dfdGet.resolve('data:' + mime + ';base64,' + fm.arrayBufferToBase64(data)); - data = null; - return dfdGet; - } - if (ifm.data('mime')) { - mime = ifm.data('mime'); - type = getType(mime); - } - if (q = ifm.data('quality')) { - type += ':' + (q / 100); - } - wnd.postMessage('app.activeDocument.saveToOE("' + type + '")', orig); - return dfdGet; - } - }; - }; - } - - ifm.parent().css('padding', 0); - type = getType(file.mime); - liveMsg = editor.liveMsg = new confObj.liveMsg(ifm, spnr, file); - $(window).on('message.' + fm.namespace, liveMsg.receive); - liveMsg.load().done(function() { - var d = JSON.stringify({ - files : [], - environment : { - lang: fm.lang.replace(/_/g, '-') - } - }); - ifm.attr('src', orig + '/#' + encodeURI(d)); - }).fail(function(err) { - err && fm.error(err); - editor.initFail = true; - }); - - // jpeg quality controls - if (file.mime === 'image/jpeg' || file.mime === 'image/webp') { - ifm.data('quality', fm.storage('jpgQuality') || fm.option('jpgQuality')); - quty = $('') - .attr('min', '1') - .attr('max', '100') - .attr('title', '1 - 100') - .on('change', function() { - var q = quty.val(); - ifm.data('quality', q); - }) - .val(ifm.data('quality')); - $('
') - .append( - $('').html(fm.i18n('quality') + ' : '), quty, $('') - ) - .prependTo(ifm.parent().next()); - } - }, - load : function(base) { - var dfd = $.Deferred(), - self = this, - fm = this.fm, - $base = $(base); - if (self.initFail) { - dfd.reject(); - } else { - $base.on('contentsloaded', function() { - dfd.resolve(self.liveMsg); - }); - } - return dfd; - }, - getContent : function() { - return this.editor.liveMsg? this.editor.liveMsg.getContent() : void(0); - }, - save : function(base, liveMsg) { - var $base = $(base), - quality = $base.data('quality'), - hash = $base.data('hash'), - file; - if (typeof quality !== 'undefined') { - this.fm.storage('jpgQuality', quality); - } - if (hash) { - file = this.fm.file(hash); - $base.data('mime', file.mime); - } else { - $base.removeData('mime'); - } - }, - // On dialog closed - close : function(base, liveMsg) { - $(base).attr('src', ''); - liveMsg && $(window).off('message.' + this.fm.namespace, liveMsg.receive); - } - }, - { - // Pixo is cross-platform image editor - info : { - id : 'pixo', - name : 'Pixo Editor', - iconImg : 'img/editor-icons.png 0 -208', - dataScheme: true, - schemeContent: true, - single: true, - canMakeEmpty: false, - integrate: { - title: 'Pixo Editor', - link: 'https://pixoeditor.com/privacy-policy/' - } - }, - // MIME types to accept - mimes : ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/x-ms-bmp'], - // HTML of this editor - html : '
', - // called on initialization of elFinder cmd edit (this: this editor's config object) - setup : function(opts, fm) { - if (fm.UA.ltIE8 || !opts.extraOptions || !opts.extraOptions.pixo || !opts.extraOptions.pixo.apikey) { - this.disabled = true; - } else { - this.editorOpts = opts.extraOptions.pixo; - } - }, - // Initialization of editing node (this: this editors HTML node) - init : function(id, file, content, fm) { - initImgTag.call(this, id, file, content, fm); - }, - // Get data uri scheme (this: this editors HTML node) - getContent : function() { - return $(this).children('img:first').attr('src'); - }, - // Launch Pixo editor when dialog open - load : function(base) { - var self = this, - fm = this.fm, - $base = $(base), - node = $base.children('img:first'), - dialog = $base.closest('.ui-dialog'), - elfNode = fm.getUI(), - dfrd = $.Deferred(), - container = $('#elfinder-pixo-container'), - init = function(onload) { - var opts; - - if (!container.length) { - container = $('
').css({ - position: 'fixed', - top: 0, - right: 0, - width: '100%', - height: $(window).height(), - overflow: 'hidden' - }).hide().appendTo(elfNode.hasClass('elfinder-fullscreen')? elfNode : 'body'); - // bind switch fullscreen event - elfNode.on('resize.'+fm.namespace, function(e, data) { - e.preventDefault(); - e.stopPropagation(); - data && data.fullscreen && container.appendTo(data.fullscreen === 'on'? elfNode : 'body'); - }); - fm.bind('destroy', function() { - editor && editor.cancelEditing(); - container.remove(); - }); - } else { - // always moves to last - container.appendTo(container.parent()); - } - node.on('click', launch); - // Constructor options - opts = Object.assign({ - type: 'child', - parent: container.get(0), - onSave: function(arg) { - // Check current file.hash, all callbacks are called on multiple instances - var mime = arg.toBlob().type, - ext = getExtention(mime, fm), - draw = function(url) { - node.one('load error', function() { - node.data('loading') && node.data('loading')(true); - }) - .attr('crossorigin', 'anonymous') - .attr('src', url); - }, - url = arg.toDataURL(); - node.data('loading')(); - delete base._canvas; - if (node.data('ext') !== ext) { - changeImageType(url, self.file.mime).done(function(res, cv) { - if (cv) { - base._canvas = canvas = cv; - quty.trigger('change'); - qBase && qBase.show(); - } - draw(res); - }).fail(function() { - dialog.trigger('changeType', { - extention: ext, - mime : mime - }); - draw(url); - }); - } else { - draw(url); - } - }, - onClose: function() { - dialog.removeClass(fm.res('class', 'preventback')); - fm.toggleMaximize(container, false); - container.hide(); - fm.toFront(dialog); - } - }, self.confObj.editorOpts); - // trigger event 'editEditorPrepare' - self.trigger('Prepare', { - node: base, - editorObj: Pixo, - instance: void(0), - opts: opts - }); - // make editor instance - editor = new Pixo.Bridge(opts); - dfrd.resolve(editor); - $base.on('saveAsFail', launch); - if (onload) { - onload(); - } - }, - launch = function() { - dialog.addClass(fm.res('class', 'preventback')); - fm.toggleMaximize(container, true); - fm.toFront(container); - container.show().data('curhash', self.file.hash); - editor.edit(node.get(0)); - node.data('loading')(true); - }, - qBase, quty, qutyTm, canvas, editor; - - node.data('loading')(); - - // jpeg quality controls - if (self.file.mime === 'image/jpeg') { - quty = $('') - .attr('min', '1') - .attr('max', '100') - .attr('title', '1 - 100') - .on('change', function() { - var q = quty.val(); - qutyTm && cancelAnimationFrame(qutyTm); - qutyTm = requestAnimationFrame(function() { - if (canvas) { - canvas.toBlob(function(blob) { - blob && quty.next('span').text(' (' + fm.formatSize(blob.size) + ')'); - }, 'image/jpeg', Math.max(Math.min(q, 100), 1) / 100); - } - }); - }) - .val(fm.storage('jpgQuality') || fm.option('jpgQuality')); - qBase = $('
') - .hide() - .append( - $('').html(fm.i18n('quality') + ' : '), quty, $('') - ) - .prependTo($base.parent().next()); - $base.data('quty', quty); - } - - // load script then init - if (typeof Pixo === 'undefined') { - fm.loadScript(['https://pixoeditor.com:8443/editor/scripts/bridge.m.js'], function() { - init(launch); - }, {loadType: 'tag'}); - } else { - init(); - launch(); - } - return dfrd; - }, - // Convert content url to data uri scheme to save content - save : function(base) { - var self = this, - $base = $(base), - node = $base.children('img:first'), - q; - if (base._canvas) { - q = $base.data('quty')? Math.max(Math.min($base.data('quty').val(), 100), 1) / 100 : void(0); - node.attr('src', base._canvas.toDataURL(self.file.mime, q)); - } else if (node.attr('src').substr(0, 5) !== 'data:') { - node.attr('src', imgBase64(node, this.file.mime)); - } - }, - close : function(base, editor) { - editor && editor.destroy(); - } - }, - { - // Adobe Creative SDK Creative Tools Image Editor UI - // MIME types to accept - info : { - id : 'creativecloud', - name : 'Creative Cloud', - iconImg : 'img/editor-icons.png 0 -192', - dataScheme: true, - schemeContent: true, - single: true, - canMakeEmpty: false, - integrate: { - title: 'Adobe Creative Cloud', - link: 'https://www.adobe.io/apis/creativecloud.html' - } - }, - mimes : ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/x-ms-bmp'], - // HTML of this editor - html : '
', - // called on initialization of elFinder cmd edit (this: this editor's config object) - setup : function(opts, fm) { - if (fm.UA.ltIE8 || !opts.extraOptions || !opts.extraOptions.creativeCloudApiKey) { - this.disabled = true; - } else { - this.apiKey = opts.extraOptions.creativeCloudApiKey; - } - }, - // Initialization of editing node (this: this editors HTML node) - init : function(id, file, content, fm) { - initImgTag.call(this, id, file, content, fm); - }, - // Get data uri scheme (this: this editors HTML node) - getContent : function() { - return $(this).children('img:first').attr('src'); - }, - // Launch Aviary Feather editor when dialog open - load : function(base) { - var self = this, - fm = this.fm, - node = $(base).children('img:first'), - dialog = $(base).closest('.ui-dialog'), - elfNode = fm.getUI(), - dfrd = $.Deferred(), - container = $('#elfinder-aviary-container'), - init = function(onload) { - var getLang = function() { - var langMap = { - 'zh_TW' : 'zh_HANT', - 'zh_CN' : 'zh_HANS' - }; - return langMap[fm.lang]? langMap[fm.lang] : fm.lang; - }, opts; - - if (!container.length) { - container = $('
').css({ - position: 'fixed', - top: 0, - right: 0, - width: '100%', - height: $(window).height(), - overflow: 'auto' - }).hide().appendTo(elfNode.hasClass('elfinder-fullscreen')? elfNode : 'body'); - // bind switch fullscreen event - elfNode.on('resize.'+fm.namespace, function(e, data) { - e.preventDefault(); - e.stopPropagation(); - data && data.fullscreen && container.appendTo(data.fullscreen === 'on'? elfNode : 'body'); - }); - fm.bind('destroy', function() { - container.remove(); - }); - } else { - // always moves to last - container.appendTo(container.parent()); - } - node.on('click', launch).data('loading')(); - opts = { - apiKey: self.confObj.apiKey, - onSave: function(imageID, newURL) { - var ext; - featherEditor.showWaitIndicator(); - ext = newURL.replace(/.+\.([^.]+)$/, '$1'); - if (node.data('ext') !== ext) { - node.closest('.ui-dialog').trigger('changeType', { - extention: ext, - mime : ext2mime[ext] - }); - } - node.on('load error', function() { - node.data('loading')(true); - }) - .attr('crossorigin', 'anonymous') - .attr('src', newURL) - .data('loading')(); - featherEditor.close(); - }, - onLoad: onload || function(){}, - onClose: function() { - dialog.removeClass(fm.res('class', 'preventback')); - fm.toggleMaximize(container, false); - $(container).hide(); - }, - appendTo: container.get(0), - maxSize: 2048, - language: getLang() - }; - // trigger event 'editEditorPrepare' - self.trigger('Prepare', { - node: base, - editorObj: Aviary, - instance: void(0), - opts: opts - }); - featherEditor = new Aviary.Feather(opts); - // return editor instance - dfrd.resolve(featherEditor); - $(base).on('saveAsFail', launch); - }, - launch = function() { - dialog.addClass(fm.res('class', 'preventback')); - fm.toggleMaximize(container, true); - fm.toFront(container); - $(container).show(); - featherEditor.launch({ - image: node.attr('id'), - url: node.attr('src') - }); - node.data('loading')(true); - }, - featherEditor, extraOpts; - - // load script then init - if (typeof Aviary === 'undefined') { - fm.loadScript(['https://dme0ih8comzn4.cloudfront.net/imaging/v3/editor.js'], function() { - init(launch); - }, {loadType: 'tag'}); - } else { - init(); - launch(); - } - return dfrd; - }, - // Convert content url to data uri scheme to save content - save : function(base) { - var node = $(base).children('img:first'); - if (node.attr('src').substr(0, 5) !== 'data:') { - node.attr('src', imgBase64(node, this.file.mime)); - } - } - }, - { - // ACE Editor - // called on initialization of elFinder cmd edit (this: this editor's config object) - setup : function(opts, fm) { - if (fm.UA.ltIE8 || !fm.options.cdns.ace) { - this.disabled = true; - } - }, - // `mimes` is not set for support everything kind of text file - info : { - id : 'aceeditor', - name : 'ACE Editor', - iconImg : 'img/editor-icons.png 0 -96' - }, - load : function(textarea) { - var self = this, - fm = this.fm, - dfrd = $.Deferred(), - cdn = fm.options.cdns.ace, - start = function() { - var editor, editorBase, mode, - ta = $(textarea), - taBase = ta.parent(), - dialog = taBase.parent(), - id = textarea.id + '_ace', - ext = self.file.name.replace(/^.+\.([^.]+)|(.+)$/, '$1$2').toLowerCase(), - // MIME/mode map - mimeMode = { - 'text/x-php' : 'php', - 'application/x-php' : 'php', - 'text/html' : 'html', - 'application/xhtml+xml' : 'html', - 'text/javascript' : 'javascript', - 'application/javascript' : 'javascript', - 'text/css' : 'css', - 'text/x-c' : 'c_cpp', - 'text/x-csrc' : 'c_cpp', - 'text/x-chdr' : 'c_cpp', - 'text/x-c++' : 'c_cpp', - 'text/x-c++src' : 'c_cpp', - 'text/x-c++hdr' : 'c_cpp', - 'text/x-shellscript' : 'sh', - 'application/x-csh' : 'sh', - 'text/x-python' : 'python', - 'text/x-java' : 'java', - 'text/x-java-source' : 'java', - 'text/x-ruby' : 'ruby', - 'text/x-perl' : 'perl', - 'application/x-perl' : 'perl', - 'text/x-sql' : 'sql', - 'text/xml' : 'xml', - 'application/docbook+xml' : 'xml', - 'application/xml' : 'xml' - }; - - // set base height - taBase.height(taBase.height()); - - // set basePath of ace - ace.config.set('basePath', cdn); - - // Base node of Ace editor - editorBase = $('
').text(ta.val()).insertBefore(ta.hide()); - - // Editor flag - ta.data('ace', true); - - // Aceeditor instance - editor = ace.edit(id); - - // Ace editor configure - editor.$blockScrolling = Infinity; - editor.setOptions({ - theme: 'ace/theme/monokai', - fontSize: '14px', - wrap: true, - }); - ace.config.loadModule('ace/ext/modelist', function() { - // detect mode - mode = ace.require('ace/ext/modelist').getModeForPath('/' + self.file.name).name; - if (mode === 'text') { - if (mimeMode[self.file.mime]) { - mode = mimeMode[self.file.mime]; - } - } - // show MIME:mode in title bar - taBase.prev().children('.elfinder-dialog-title').append(' (' + self.file.mime + ' : ' + mode.split(/[\/\\]/).pop() + ')'); - editor.setOptions({ - mode: 'ace/mode/' + mode - }); - if (dfrd.state() === 'resolved') { - dialog.trigger('resize'); - } - }); - ace.config.loadModule('ace/ext/language_tools', function() { - ace.require('ace/ext/language_tools'); - editor.setOptions({ - enableBasicAutocompletion: true, - enableSnippets: true, - enableLiveAutocompletion: false - }); - }); - ace.config.loadModule('ace/ext/settings_menu', function() { - ace.require('ace/ext/settings_menu').init(editor); - }); - - // Short cuts - editor.commands.addCommand({ - name : "saveFile", - bindKey: { - win : 'Ctrl-s', - mac : 'Command-s' - }, - exec: function(editor) { - self.doSave(); - } - }); - editor.commands.addCommand({ - name : "closeEditor", - bindKey: { - win : 'Ctrl-w|Ctrl-q', - mac : 'Command-w|Command-q' - }, - exec: function(editor) { - self.doCancel(); - } - }); - - editor.resize(); - - // TextArea button and Setting button - $('
').css('float', 'left') - .append( - $('') - .button({ - icons: { - primary: 'ui-icon-gear', - secondary: 'ui-icon-triangle-1-e' - }, - text: false - }) - .on('click', function(){ - editor.showSettingsMenu(); - $('#ace_settingsmenu') - .css('font-size', '80%') - .find('div[contains="setOptions"]').hide().end() - .parent().appendTo($('#elfinder')); - }) - ) - .prependTo(taBase.next()); - - // trigger event 'editEditorPrepare' - self.trigger('Prepare', { - node: textarea, - editorObj: ace, - instance: editor, - opts: {} - }); - - //dialog.trigger('resize'); - dfrd.resolve(editor); - }; - - // check ace & start - if (!self.confObj.loader) { - self.confObj.loader = $.Deferred(); - self.fm.loadScript([ cdn+'/ace.js' ], function() { - self.confObj.loader.resolve(); - }, void 0, {obj: window, name: 'ace'}); - } - self.confObj.loader.done(start); - - return dfrd; - }, - close : function(textarea, instance) { - instance && instance.destroy(); - }, - save : function(textarea, instance) { - instance && $(textarea).data('ace') && (textarea.value = instance.session.getValue()); - }, - focus : function(textarea, instance) { - instance && $(textarea).data('ace') && instance.focus(); - }, - resize : function(textarea, instance, e, data) { - instance && instance.resize(); - } - }, - { - // CodeMirror - // called on initialization of elFinder cmd edit (this: this editor's config object) - setup : function(opts, fm) { - if (fm.UA.ltIE10 || !fm.options.cdns.codemirror) { - this.disabled = true; - } - }, - // `mimes` is not set for support everything kind of text file - info : { - id : 'codemirror', - name : 'CodeMirror', - iconImg : 'img/editor-icons.png 0 -176' - }, - load : function(textarea) { - var fm = this.fm, - cmUrl = fm.options.cdns.codemirror, - dfrd = $.Deferred(), - self = this, - start = function(CodeMirror) { - var ta = $(textarea), - base = ta.parent(), - editor, editorBase, opts; - - // set base height - base.height(base.height()); - - // CodeMirror configure options - opts = { - lineNumbers: true, - lineWrapping: true, - extraKeys : { - 'Ctrl-S': function() { self.doSave(); }, - 'Ctrl-Q': function() { self.doCancel(); }, - 'Ctrl-W': function() { self.doCancel(); } - } - }; - - // trigger event 'editEditorPrepare' - self.trigger('Prepare', { - node: textarea, - editorObj: CodeMirror, - instance: void(0), - opts: opts - }); - - // CodeMirror configure - editor = CodeMirror.fromTextArea(textarea, opts); - - // return editor instance - dfrd.resolve(editor); - - // Auto mode set - var info, m, mode, spec; - if (! info) { - info = CodeMirror.findModeByMIME(self.file.mime); - } - if (! info && (m = self.file.name.match(/.+\.([^.]+)$/))) { - info = CodeMirror.findModeByExtension(m[1]); - } - if (info) { - CodeMirror.modeURL = useRequire? 'codemirror/mode/%N/%N.min' : cmUrl + '/mode/%N/%N.min.js'; - mode = info.mode; - spec = info.mime; - editor.setOption('mode', spec); - CodeMirror.autoLoadMode(editor, mode); - // show MIME:mode in title bar - base.prev().children('.elfinder-dialog-title').append(' (' + spec + ' : ' + mode + ')'); - } - - // editor base node - editorBase = $(editor.getWrapperElement()).css({ - // fix CSS conflict to SimpleMDE - padding: 0, - border: 'none' - }); - ta.data('cm', true); - - // fit height to base - editorBase.height('100%'); - - // TextArea button and Setting button - $('
').css('float', 'left') - .append( - $('").button({icons:{primary:"ui-icon-gear",secondary:"ui-icon-triangle-1-e"},text:!1}).on("click",function(){i.showSettingsMenu(),$("#ace_settingsmenu").css("font-size","80%").find('div[contains="setOptions"]').hide().end().parent().appendTo($("#elfinder"))})).prependTo(c.next()),t.trigger("Prepare",{node:e,editorObj:ace,instance:i,opts:{}}),n.resolve(i)};return t.confObj.loader||(t.confObj.loader=$.Deferred(),t.fm.loadScript([o+"/ace.js"],function(){t.confObj.loader.resolve()},void 0,{obj:window,name:"ace"})),t.confObj.loader.done(a),n},close:function(e,t){t&&t.destroy()},save:function(e,t){t&&$(e).data("ace")&&(e.value=t.session.getValue())},focus:function(e,t){t&&$(e).data("ace")&&t.focus()},resize:function(e,t,i,n){t&&t.resize()}},{setup:function(e,t){!t.UA.ltIE10&&t.options.cdns.codemirror||(this.disabled=!0)},info:{id:"codemirror",name:"CodeMirror",iconImg:"img/editor-icons.png 0 -176"},load:function(e){var t=this.fm,i=t.options.cdns.codemirror,o=$.Deferred(),a=this,r=function(t){var r,s,c,d=$(e),l=d.parent();l.height(l.height()),c={lineNumbers:!0,lineWrapping:!0,extraKeys:{"Ctrl-S":function(){a.doSave()},"Ctrl-Q":function(){a.doCancel()},"Ctrl-W":function(){a.doCancel()}}},a.trigger("Prepare",{node:e,editorObj:t,instance:void 0,opts:c}),r=t.fromTextArea(e,c),o.resolve(r);var p,m,f,u;p||(p=t.findModeByMIME(a.file.mime)),!p&&(m=a.file.name.match(/.+\.([^.]+)$/))&&(p=t.findModeByExtension(m[1])),p&&(t.modeURL=n?"codemirror/mode/%N/%N.min":i+"/mode/%N/%N.min.js",f=p.mode,u=p.mime,r.setOption("mode",u),t.autoLoadMode(r,f),l.prev().children(".elfinder-dialog-title").append(" ("+u+" : "+f+")")),s=$(r.getWrapperElement()).css({padding:0,border:"none"}),d.data("cm",!0),s.height("100%"),$('
').css("float","left").append($("
').appendTo(ql.info.find('.elfinder-quicklook-info')) - .on('click', function() { - $(this).html(''); - fm.request({ - data : {cmd : 'url', target : file.hash}, - preventDefault : true - }) - .always(function() { - preview.show(); - $(this).html(''); - }) - .done(function(data) { - var rfile = fm.file(file.hash); - ql.value.url = rfile.url = data.url || ''; - if (ql.value.url) { - preview.trigger($.Event('update', {file : ql.value})); - } - }); - }); - } - if (file.url !== '' && file.url != '1') { - e.stopImmediatePropagation(); - - loading = $('
'+fm.i18n('nowLoading')+'
').appendTo(ql.info.find('.elfinder-quicklook-info')); - - node = $('