/** * Dark Slim theme for elFinder 2.1.54 or newer. * Not supported MS IE! * * @author John Fort * @date 01.01.2021 * @link https://github.com/johnfort/elFinder.themes **/ /*************************************/ /* MAIN */ /*************************************/ /* Hard reset main rules */ div.elfinder{ font-size: 19px; } .elfinder-mobile{ font-size: 18px; } div.elfinder, .elfinder *{ font-family: 'Trebuchet MS', 'Tahoma', 'Arial', 'Verdana', 'Helvetica', 'sans-serif'; outline: 0 !important; border: 0 !important; -webkit-border-radius: 0.001px !important; -moz-border-radius: 0 !important; border-radius: 0.001px !important; /* Fix (must be > 0) for 'select' elem in 'Opera' browser */ } .elfinder *{ -webkit-box-shadow: none !important; -moz-box-shadow: none !important; box-shadow: none !important; } .elfinder .elfinder-button-menu, .elfinder .elfinder-button-search-menu, .elfinder .elfinder-contextmenu, .elfinder .elfinder-contextmenu-sub, .elfinder-dialog, .elfinder .elfinder-quicklook{ -webkit-box-shadow: 0 5px 20px 2px rgba(0, 0, 0, .14), 0 6px 26px 5px rgba(0, 0, 0, .12), 0 8px 10px -5px rgba(0, 0, 0, .4) !important; -moz-box-shadow: 0 5px 20px 2px rgba(0, 0, 0, .14), 0 6px 26px 5px rgba(0, 0, 0, .12), 0 8px 10px -5px rgba(0, 0, 0, .4) !important; box-shadow: 0 5px 20px 2px rgba(0, 0, 0, .14), 0 6px 26px 5px rgba(0, 0, 0, .12), 0 8px 10px -5px rgba(0, 0, 0, .4) !important; } .elfinder .ui-icon, .elfinder .elfinder-toolbar *, .elfinder .elfinder-navbar *, .elfinder .elfinder-contextmenu *, .elfinder .elfinder-table-header-sticky *, .elfinder .elfinder-dialog-resize .elfinder-resize-handle *{ background-image: none !important; } .elfinder .ui-icon-gripsmall-diagonal-se{ font-size: initial; opacity: .6; } .elfinder a, .elfinder a:link, .elfinder a:visited{ color: #999; text-decoration: underline; } .elfinder a:hover, .elfinder a:focus, .elfinder a:active{ color: #ccc; text-decoration: underline; } /* Reset jquery-ui rules in elfinder container */ div.elfinder, .elfinder .ui-widget, .elfinder .ui-widget-header, .elfinder .ui-widget-content, .elfinder .ui-state-default{ color: #999; } div.elfinder, .elfinder .ui-widget, .elfinder .ui-widget-header{ background: #1d1d1d; } .elfinder .ui-widget-header{ padding: .4em .2em .4em .7em; font-weight: normal; } .elfinder-rtl .ui-widget-header{ padding: .4em .7em .4em .2em; } .elfinder .ui-widget-content{ background: #292929; } .elfinder .ui-state-default{ background: none; } .elfinder .ui-state-hover, .elfinder .ui-state-hover:hover, .elfinder .ui-state-hover:focus, .elfinder .ui-state-focus, .elfinder .ui-state-focus:hover, .elfinder .ui-state-focus:focus, .elfinder .ui-state-active, .elfinder .ui-state-active:hover, .elfinder .ui-state-active:focus{ color: #ccc; background: #4e4e4e; } .ui-selectable-helper{ border: 1px dashed #666; background: rgba(255, 255, 255, .05); } .elfinder .ui-tabs-nav{ padding: 0; } .elfinder-rtl .ui-tabs-nav li{ float: right; } .elfinder .ui-tabs-nav li.ui-state-default{ margin: 0; padding: 0; font-weight: normal; background: #222; } .elfinder .ui-tabs-nav li.ui-state-default a{ padding: 6px 10px !important; color: #666; text-decoration: underline; } .elfinder .ui-tabs-nav li.ui-state-hover a{ color: #999; } .elfinder .ui-tabs-nav li.ui-state-active{ background: #292929; } .elfinder .ui-tabs-nav li.ui-state-active a{ color: #999; text-decoration: none; cursor: default !important; } .elfinder .ui-tabs .ui-tabs-panel{ padding: 10px; } .elfinder .ui-checkboxradio-label{ background: #444 !important; } .elfinder-rtl .ui-checkboxradio-label .ui-widget{ float: right; } .elfinder .ui-checkboxradio-label.ui-state-active, .elfinder .ui-checkboxradio-label.ui-controlgroup-item:hover, .elfinder .ui-checkboxradio-label.ui-checkboxradio-radio-label:hover{ background: #333 !important; } .elfinder .ui-slider-horizontal.ui-widget.ui-widget-content{ margin: 0 8px; padding: 0; background: #3e3e3e; } .elfinder .ui-slider-horizontal .ui-slider-handle{ top: -.22em; background: #4e4e4e; } /* Reset form elements with jquery-ui */ .elfinder legend, .elfinder label{ font-weight: normal; } .elfinder label.ui-state-hover, .elfinder label.ui-state-hover:hover{ background: none; } .elfinder fieldset{ margin: 0 !important; padding: 2px 10px 10px !important; border: 1px solid #444 !important; border-radius: 8px !important; background: transparent !important; } .elfinder legend{ margin: 0 auto !important; padding: 2px 4px 2px !important; } .elfinder input, .elfinder button, .elfinder select, .elfinder textarea, .elfinder .elfinder-dialog-upload .ui-button, .elfinder .elfinder-resize-preset-container .ui-button{ -moz-appearance: none !important; -webkit-appearance: none !important; appearance: none !important; display: inline-block; margin: 0 !important; padding: 2px 3px !important; /* input, select, textarea */ vertical-align: middle; font-size: 13px !important; font-weight: normal !important; color: #999 !important; /* input, select, textarea */ background: #3e3e3e !important; /* input, select, textarea */ box-sizing: border-box !important; } .elfinder input, .elfinder .elfinder-dialog-upload .ui-button, .elfinder .elfinder-resize-preset-container .ui-button{ height: 28px !important; } .elfinder button, .elfinder input[type="button"], .elfinder input[type="reset"], .elfinder input[type="submit"], .elfinder .elfinder-dialog-upload .ui-button, .elfinder .elfinder-resize-preset-container .ui-button{ padding: 4px 12px !important; height: 28px !important; color: #999 !important; background: #444 !important; text-align: center !important; -webkit-user-select: none !important; -moz-user-select: none !important; user-select: none !important; } .elfinder select{ -moz-appearance: menulist !important; -webkit-appearance: menulist !important; appearance: menulist !important; height: 28px !important; } .elfinder textarea{ overflow: auto; } .elfinder input[type="radio"], .elfinder input[type="checkbox"]{ margin: 2px !important; width: 16px !important; height: 16px !important; vertical-align: middle !important; cursor: pointer !important; } .elfinder input[type="checkbox"]{ position: relative; } input[type="radio"]{ border-radius: 50% !important; } .elfinder input[disabled], .elfinder button[disabled], .elfinder select[disabled], .elfinder textarea[disabled], .elfinder input[readonly], .elfinder textarea[readonly]{ pointer-events: none; cursor: not-allowed !important; color: #888; -webkit-box-shadow: inset 1px 2px 3px rgba(0, 0, 0, .1); -moz-box-shadow: inset 1px 2px 3px rgba(0, 0, 0, .1); box-shadow: inset 1px 2px 3px rgba(0, 0, 0, .1); opacity: .4; } .elfinder button:hover, .elfinder input[type="button"]:hover, .elfinder input[type="reset"]:hover, .elfinder input[type="submit"]:hover, .elfinder .elfinder-dialog-upload .ui-button:hover, .elfinder .elfinder-resize-preset-container .ui-button:hover, .elfinder button:focus, .elfinder input[type="button"]:focus, .elfinder input[type="reset"]:focus, .elfinder input[type="submit"]:focus, .elfinder .elfinder-dialog-upload .ui-button:focus, .elfinder .elfinder-resize-preset-container .ui-button:focus{ background: #333 !important; } .elfinder button[disabled]:hover, .elfinder input[disabled][type="button"]:hover, .elfinder input[disabled][type="reset"]:hover, .elfinder input[disabled][type="submit"]:hover{ background: #444 !important; } .elfinder input:focus, .elfinder select:focus, .elfinder textarea:focus{ background: #4e4e4e !important; } .elfinder button:active, .elfinder input[type="button"]:active, .elfinder input[type="reset"]:active, .elfinder input[type="submit"]:active, .elfinder input[type="checkbox"]:active, .elfinder input[type="radio"]:active, .elfinder .elfinder-dialog-upload .ui-button:active, .elfinder .elfinder-resize-preset-container .ui-button:active{ -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, .2) !important; -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, .2) !important; box-shadow: inset 0 2px 4px rgba(0, 0, 0, .2) !important; } .elfinder input[type="radio"]:checked{ border: 4px solid #3e3e3e !important; background: #888 !important; } .elfinder input[type="checkbox"]:checked:before{ content: ''; position: absolute; top: -5px; left: 7px; display: table; width: 5px; height: 14px; border: 2px solid #999; border-top: 0; border-left: 0; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); transform: rotate(45deg); } .elfinder button::-moz-focus-inner, .elfinder input::-moz-focus-inner{ padding: 0; } .elfinder input:-moz-placeholder, .elfinder textarea:-moz-placeholder, .elfinder input::-webkit-input-placeholder, .elfinder textarea::-webkit-input-placeholder{ color: #333 !important; } /* Effects */ @-moz-keyframes blink{ 0%{opacity: 1;} 50%{opacity: .2;} 100%{opacity: .8;} } @-webkit-keyframes blink{ 0%{opacity: 1;} 50%{opacity: .2;} 100%{opacity: .8;} } @keyframes blink{ 0%{opacity: 1;} 50%{opacity: .2;} 100%{opacity: .8;} } @-moz-keyframes spin{ 0%{-moz-transform: rotate(0deg);} 100%{-moz-transform: rotate(359deg);} } @-webkit-keyframes spin{ 0%{-webkit-transform: rotate(0deg);} 100%{-webkit-transform: rotate(359deg);} } @keyframes spin{ 0%{transform: rotate(0deg);} 100%{transform: rotate(359deg);} } /*************************************/ /* TOOLBAR */ /*************************************/ .elfinder .elfinder-toolbar{ padding: 4px 0; } .elfinder .elfinder-toolbar .elfinder-buttonset{ margin: 1px 5px; background: transparent; } .elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button.ui-state-hover{ background: none; } .elfinder .elfinder-toolbar .elfinder-button{ cursor: pointer; } .elfinder .elfinder-toolbar .elfinder-button-text{ margin: 0 0 0 4px; } .elfinder-rtl.elfinder-touch .elfinder-toolbar .elfinder-button-text{ margin: 0 4px 0 0; } .elfinder .elfinder-toolbar .elfinder-button-menu.elfinder-button-search-menu{ background: #292929; } .elfinder .elfinder-toolbar .elfinder-button-search{ margin: 1px 5px; min-height: 24px; background: transparent; } .elfinder .elfinder-toolbar .elfinder-button-search input{ height: 24px !important; padding: 0 22px !important; color: #999 !important; background: #292929 !important; font-size: 14px !important; -webkit-border-radius: 2px !important; -moz-border-radius: 2px !important; border-radius: 2px !important; box-shadow: inset 0px 0px 8px rgba(0, 0, 0, .2) !important; } .elfinder-touch .elfinder-toolbar .elfinder-button-search input{ padding: 0 24px !important; height: 28px !important; } .elfinder-toolbar-swipe-handle{ height: 40px; background: linear-gradient(to top, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, 0) 100%); } /*************************************/ /* STATUSBAR */ /*************************************/ .elfinder .elfinder-statusbar{ padding: 3px; padding-right: 18px; background: #292929; color: #666; } /*************************************/ /* WORKZONE */ /*************************************/ .elfinder .elfinder-workzone{ background: #333; } .elfinder .elfinder-workzone *{ font-family: 'Verdana', 'Tahoma', 'Arial'; } .elfinder .elfinder-workzone .elfinder-cwd-wrapper-trash .elfinder-cwd-message-board{ /* Trash */ background-image: linear-gradient(45deg, #00000008 25%, transparent 25%, transparent 75%, #00000008 75%, #00000008), linear-gradient(45deg, #00000008 25%, transparent 25%, transparent 75%, #00000008 75%, #00000008); background-size: 20px 20px; background-position: 0 0, 10px 10px; } .elfinder-cwd-wrapper{ color: #bbb; } .elfinder .elfinder-cwd-file.ui-state-hover, .elfinder .elfinder-cwd-file.ui-state-hover .ui-state-hover, .elfinder .elfinder-cwd-file.ui-state-hover .ui-state-active, .elfinder .elfinder-cwd-file.ui-selected, .elfinder .elfinder-cwd-file.ui-selected .ui-state-hover, .elfinder .elfinder-cwd-file.elfinder-droppable-active{ color: #f3f3f3; } .elfinder .elfinder-cwd-file.ui-state-hover, .elfinder .elfinder-cwd-file .ui-state-hover, .elfinder .elfinder-cwd-file.elfinder-droppable-active{ background: #444; } .elfinder .elfinder-cwd-file .elfinder-cwd-icon{ float: none; } .elfinder .elfinder-ui-progressbar{ background: #00821a; filter: none; } /* path in workzone (case of swipe to navbar close) */ .elfinder .elfinder-workzone-path{ padding: 3px; background: #252525; color: #666; } .elfinder .elfinder-workzone-path .elfinder-path-roots, .elfinder .elfinder-workzone-path .elfinder-path{ display: inline-block; position: relative; margin: 0; } /* view "icons" */ .elfinder .elfinder-cwd-view-icons .elfinder-cwd-file{ margin: 2px; } .elfinder .elfinder-cwd-view-icons .elfinder-cwd-file.ui-state-hover{ background: transparent; } .elfinder .elfinder-cwd-view-icons .elfinder-cwd-file.ui-state-hover .elfinder-cwd-file-wrapper, .elfinder .elfinder-cwd-view-icons .elfinder-cwd-file.ui-state-hover .elfinder-cwd-filename, .elfinder .elfinder-cwd-view-icons .elfinder-cwd-file.ui-selected .elfinder-cwd-file-wrapper, .elfinder .elfinder-cwd-view-icons .elfinder-cwd-file.ui-selected .elfinder-cwd-filename, .elfinder .elfinder-cwd-view-icons .elfinder-cwd-file.elfinder-droppable-active{ -webkit-border-radius: 3px !important; -moz-border-radius: 3px !important; border-radius: 3px !important; background: #444; } /* list view */ .elfinder .elfinder-cwd-wrapper-list{ padding-bottom: 1px; } .elfinder .elfinder-cwd table{ margin: 0; padding: 0; color: #bbb; } /* list view: header */ .elfinder .elfinder-cwd table thead tr{ background: #292929; vertical-align: top; } .elfinder .elfinder-cwd table thead td .ui-resizable-e, .elfinder .elfinder-cwd table thead td .ui-resizable-w{ top: 10%; margin: 0; width: 3px; height: 80%; } .elfinder .elfinder-cwd table thead td .ui-resizable-e{ right: 0; border-right: 1px dashed #444 !important; } .elfinder .elfinder-cwd table thead td .ui-resizable-w{ left: 0; border-left: 1px dashed #444 !important; } .elfinder-touch .elfinder-cwd table thead td .ui-resizable-e, .elfinder-touch .elfinder-cwd table thead td .ui-resizable-w{ border-width: 2px !important; } .elfinder .elfinder-cwd table thead td{ color: #666; } .elfinder .elfinder-cwd table thead td.ui-state-active{ color: #bbb; background: #333; } .elfinder .elfinder-cwd table thead td.ui-state-hover{ background: #2f2f2f; } .elfinder .elfinder-droppable-active .elfinder-table-header-sticky table{ border: 1px solid transparent !important; border-bottom: 0 !important; } /* list view: markers files */ .elfinder .elfinder-cwd-view-list .elfinder-perms, .elfinder .elfinder-cwd-view-list .elfinder-lock, .elfinder .elfinder-cwd-view-list .elfinder-symlink{ opacity: .9; transform: scale(0.6); } .elfinder-cwd-view-list .elfinder-perms, .elfinder-cwd-view-list .elfinder-symlink{ bottom: 0; } .elfinder-cwd-view-list .elfinder-lock{ top: 4px; } .elfinder-rtl .elfinder-cwd-view-list .elfinder-perms{ right: 8px; } .elfinder-rtl .elfinder-cwd-view-list .elfinder-lock{ right: -10px; } .elfinder-rtl .elfinder-cwd-view-list .elfinder-symlink{ right: -7px; } /* droppable */ .elfinder .elfinder-cwd-wrapper.elfinder-droppable-active{ outline: 1px dashed #666 !important; outline-offset: -1px; } /* in lazy execution status */ .elfinder.elfinder-processing.elfinder-touch .elfinder-workzone:after{ background: #666; -moz-animation: blink 1s infinite linear; -webkit-animation: blink 1s infinite linear; animation: blink 1s infinite linear; } /*************************************/ /* NAVIGATION PANEL */ /*************************************/ .elfinder .elfinder-navbar{ padding: 5px 3px; background: #252525; } .elfinder-ltr .elfinder-navbar{ padding-right: 10px; } .elfinder-rtl .elfinder-navbar{ padding-left: 10px; } .elfinder .elfinder-navbar .ui-resizable-handle{ width: 10px; background: none; } .elfinder .elfinder-navbar .ui-resizable-handle:before{ content: ''; position: absolute; top: 50%; right: 1px; width: 2px; height: 20px; margin-top: -10px; border: 1px solid #444; border-top: 0; border-bottom: 0; } .elfinder .elfinder-navbar .elfinder-tree{ margin: 0; } .elfinder-navbar-dir{ padding: 4px 12px; } .elfinder .elfinder-navbar .ui-state-hover, .elfinder .elfinder-navbar .ui-state-active{ background: #1f1f1f; } .elfinder .elfinder-navbar .elfinder-perms, .elfinder .elfinder-navbar .elfinder-lock, .elfinder .elfinder-navbar .elfinder-symlink{ opacity: 1; transform: scale(0.5); } .elfinder-touch .elfinder-navbar .elfinder-perms{ bottom: 6px; } .elfinder-ltr .elfinder-navbar-swipe-handle{ background: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, 0) 100%); } .elfinder-rtl .elfinder-navbar-swipe-handle{ background: linear-gradient(to left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, 0) 100%); } /*************************************/ /* NAVIGATION DOCK */ /*************************************/ .elfinder .elfinder-navdock .ui-resizable-n{ top: -7px; height: 14px; } .elfinder .elfinder-navdock .elfinder-quicklook{ padding-top: 32px; background: #272727; } .elfinder .elfinder-navdock .elfinder-quicklook-titlebar{ position: absolute; background: #1d1d1d; z-index: 1; } .elfinder-ltr .elfinder-navdock .elfinder-quicklook-title{ text-align: left; } .elfinder-rtl .elfinder-navdock .elfinder-quicklook-title{ text-align: right; } .elfinder .elfinder-navdock .elfinder-quicklook-preview{ height: 100%; background: #272727; } /*************************************/ /* CONTEXTMENU */ /*************************************/ .elfinder .elfinder-contextmenu-header{ font-size: 0.8em; } .elfinder .elfinder-contextmenu-header span{ font-weight: normal; font-size: inherit; } .elfinder .elfinder-contextmenu, .elfinder .elfinder-contextmenu-sub{ color: #999; background: #3e3e3e; } .elfinder .elfinder-contextmenu-item{ padding: 5px 30px; } .elfinder-touch .elfinder-contextmenu-item{ padding: 8px 30px; } .elfinder .elfinder-contextmenu-separator{ height: 0; border-top: 1px solid rgba(153, 153, 153, .1) !important; } .elfinder .elfinder-contextmenu-extra-icon a, .elfinder .elfinder-contextmenu-extra-icon span{ position: absolute; z-index: 1; } /*************************************/ /* BUTTON MENU */ /*************************************/ .elfinder .elfinder-button-menu{ background: #3e3e3e; } .elfinder .elfinder-button-menu-item-separated{ border-top: 1px solid rgba(153, 153, 153, .1) !important; } /*************************************/ /* DIALOGS */ /*************************************/ .dialogelfinder .dialogelfinder-drag{ font-size: 15px; font-weight: bold; } .dialogelfinder .dialogelfinder-drag-close{ position: relative; top: 6px; right: 6px; float: right; margin: 0; font-size: 16px; } .elfinder .elfinder-dialog{ background: #333; } .elfinder .elfinder-dialog .elfinder-dialog-title{ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .elfinder-touch .elfinder-dialog .ui-dialog-titlebar span.elfinder-dialog-title{ padding: 0; } .elfinder .elfinder-dialog .ui-resizable-se{ opacity: 0; } /* title buttons */ .elfinder .elfinder-dialog .ui-dialog-titlebar .elfinder-titlebar-button, .elfinder .elfinder-dialog .ui-dialog-titlebar .elfinder-titlebar-button.elfinder-titlebar-button-right{ float: right; left: auto; right: 6px; top: 6px; height: auto; width: auto; margin: 0; padding: 0; padding-left: 5px; } .elfinder-rtl .elfinder-dialog .ui-dialog-titlebar .elfinder-titlebar-button, .elfinder-rtl .elfinder-dialog .ui-dialog-titlebar .elfinder-titlebar-button.elfinder-titlebar-button-right{ float: left; right: auto; left: 5px; padding: 0; padding-right: 5px; } .elfinder .elfinder-dialog .elfinder-titlebar-button .ui-icon{ height: 16px; width: 16px; opacity: 1; } .elfinder .elfinder-dialog .elfinder-titlebar-button:hover{ color: #ccc; } .dialogelfinder .dialogelfinder-drag-close:hover, .elfinder .elfinder-dialog .ui-dialog-titlebar-close:hover{ color: #c32020; } /* contents */ .elfinder .elfinder-dialog .ui-widget-content{ padding: 10px; } .elfinder .elfinder-dialog.elfinder-dialog-help > .ui-widget-content, .elfinder .elfinder-dialog.elfinder-dialog-help > .ui-widget-content > .ui-widget-content, .elfinder .elfinder-dialog.elfinder-dialog-preference > .ui-widget-content, .elfinder .elfinder-dialog.elfinder-dialog-preference > .ui-widget-content > .ui-widget-content{ padding: 0; } /* bottom buttons */ .elfinder .elfinder-dialog .ui-dialog-buttonpane{ padding: .5em; border-top: 1px solid #3e3e3e !important; } .elfinder .elfinder-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button{ margin: 0 0 0 .4em !important; } .elfinder-rtl .elfinder-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{ float: left; } .elfinder-rtl .elfinder-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button{ margin: 0 .4em 0 0 !important; } .elfinder .elfinder-dialog .ui-dialog-buttonpane button span{ padding: 0; } .elfinder .elfinder-dialog .ui-dialog-buttonpane button span.ui-icon{ padding: 0; } /* dialog: help/preference */ .elfinder .elfinder-dialog .elfinder-help{ margin: 0; } .elfinder .elfinder-dialog .elfinder-help .elfinder-help-logo{ background: url('data:image/png;base64,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') center center no-repeat; } .elfinder .elfinder-dialog .elfinder-help .elfinder-help-team{ border-bottom: .5px solid #404040 !important; } .elfinder .elfinder-dialog .elfinder-help .elfinder-help-shortcuts{ background: none; color: #999; } .elfinder .elfinder-dialog .elfinder-preference dl{ margin: 0; } .elfinder .elfinder-preference dd label{ margin: 3px; } /* dialog: notify/error/confirm */ .elfinder .elfinder-dialog-notify .ui-dialog-titlebar{ padding: 0; height: 20px; } .elfinder.elfinder-touch > .elfinder-dialog-notify .ui-dialog-titlebar{ height: 30px; } .elfinder > .elfinder-dialog-notify .ui-dialog-titlebar .elfinder-titlebar-button{ top: auto; } .elfinder.elfinder-touch > .elfinder-dialog-notify .ui-dialog-titlebar .elfinder-titlebar-button{ top: auto; bottom: -.8em; } .elfinder .elfinder-dialog-notify .elfinder-notify{ padding: .5em 32px; border-bottom: .5px solid #3e3e3e !important; } .elfinder .elfinder-dialog-notify .elfinder-notify:last-child{ border: 0 !important; } .elfinder .elfinder-dialog-notify .elfinder-notify .elfinder-notify-progressbar{ background: #3e3e3e; } .elfinder .elfinder-dialog-notify .elfinder-notify .elfinder-notify-progressbar .elfinder-notify-progress{ background: #00821a; } .elfinder .elfinder-dialog-notify .elfinder-notify-cancel{ position: absolute; top: 50%; right: 0; margin-top: -8px; } .elfinder-rtl .elfinder-dialog-notify .elfinder-notify-cancel{ left: 0; right: auto; } .elfinder .elfinder-dialog-notify .elfinder-notify-cancel:hover{ color: #c32020; } .elfinder .elfinder-dialog-confirm .ui-dialog-content, .elfinder .elfinder-dialog-error .ui-dialog-content{ min-height: 52px; } .elfinder-ltr .elfinder-dialog-confirm .ui-dialog-content, .elfinder-ltr .elfinder-dialog-error .ui-dialog-content{ padding-right: 46px; } .elfinder-rtl .elfinder-dialog-confirm .ui-dialog-content, .elfinder-rtl .elfinder-dialog-error .ui-dialog-content{ padding-left: 46px; } .elfinder .elfinder-dialog-confirm .elfinder-dialog-icon, .elfinder .elfinder-dialog-error .elfinder-dialog-icon{ top: 26px; left: auto; right: 10px; } .elfinder-rtl .elfinder-dialog-confirm .elfinder-dialog-icon, .elfinder-rtl .elfinder-dialog-error .elfinder-dialog-icon{ left: 10px; right: auto; } .elfinder .elfinder-dialog-confirm .elfinder-dialog-confirm-encoding{ padding: 0 0 .5em 0; } /* dialog: info/delete */ .elfinder .elfinder-dialog .elfinder-info-title .elfinder-cwd-icon, .elfinder .elfinder-dialog .elfinder-rm-title .elfinder-cwd-icon{ position: relative; } .elfinder .elfinder-dialog .elfinder-info-tb{ margin: 0; } .elfinder .elfinder-dialog .elfinder-info-tb span{ /* md5/sha256: Calculate */ float: none; } /* upload */ .elfinder .elfinder-dialog-upload .elfinder-upload-dropbox{ border: 2px dashed #555 !important; } /* file-edit */ .elfinder .elfinder-dialog-edit .elfinder-edit-editor{ padding: 0 .5em; background: #333; } .elfinder .elfinder-dialog-edit .elfinder-edit-editor .elfinder-file-edit{ height: 100%; color: #999 !important; background: #444 !important; } .elfinder .elfinder-dialog-edit .elfinder-edit-extras{ margin: 0; } .elfinder-rtl .elfinder-dialog-edit .ui-dialog-buttonpane .elfinder-edit-extras{ float: right; } /* batch rename */ .elfinder .elfinder-rename-batch-preview{ min-height: unset; } /* chmod */ .elfinder .elfinder-dialog-chmod table{ margin-bottom: 10px; } /* quicklook */ .elfinder .elfinder-quicklook{ padding: 0; background: #1d1d1d; } .elfinder .elfinder-quicklook-titlebar{ position: relative; padding: .4em .4em .4em .7em; height: auto; font-size: .82em; background: none; box-sizing: border-box; } .elfinder .elfinder-quicklook-titlebar-icon{ top: 0; left: auto; right: 0; bottom: 0; height: auto; margin: 0; } .elfinder-rtl .elfinder-quicklook-titlebar-icon{ left: 0; right: auto; } .elfinder .elfinder-quicklook .elfinder-quicklook-titlebar-icon .ui-icon{ float: right; margin: 0; padding: 0 .4em 0 0; height: 100%; opacity: 1; } .elfinder-rtl .elfinder-quicklook .elfinder-quicklook-titlebar-icon .ui-icon{ float: left; padding: 0 0 0 .4em; } .elfinder .elfinder-quicklook-titlebar-icon .ui-icon:hover{ color: #ccc; } .elfinder .elfinder-quicklook-titlebar-icon .elfinder-icon-close:hover{ color: #c32020; } .elfinder .elfinder-quicklook-title{ display: inherit; font-size: inherit; line-height: 1.3; text-overflow: ellipsis; } .elfinder-touch .elfinder-quicklook-title{ padding: 4px 0; } .elfinder .elfinder-quicklook-preview{ height: calc(100% - 72px); background: #333; } .elfinder-touch .elfinder-quicklook-preview{ height: calc(100% - 80px); } .elfinder .elfinder-quicklook-preview .elfinder-quicklook-preview-text-wrapper, .elfinder .elfinder-quicklook-preview .elfinder-quicklook-preview-text-wrapper pre.elfinder-quicklook-preview-text, .elfinder .elfinder-quicklook-preview .elfinder-quicklook-preview-text-wrapper pre.elfinder-quicklook-preview-text.prettyprint, .elfinder .elfinder-quicklook-preview .elfinder-quicklook-preview-archive-wrapper, .elfinder .elfinder-quicklook-preview .elfinder-quicklook-preview-html, .elfinder .elfinder-quicklook-preview .elfinder-quicklook-preview-pdf, .elfinder .elfinder-quicklook-preview .elfinder-quicklook-preview-iframe{ background: none; color: inherit; font-size: inherit; } .elfinder .elfinder-quicklook-navbar{ width: auto; font-size: 140%; } .elfinder .elfinder-quicklook .ui-resizable-se{ right: 1px; bottom: 1px; width: 16px; height: 16px; } .elfinder .elfinder-quicklook-fullscreen{ z-index: 1002; } .elfinder .elfinder-quicklook-fullscreen .elfinder-quicklook-preview{ height: 100%; } .elfinder .elfinder-quicklook-fullscreen .elfinder-quicklook-navbar{ bottom: 0; } /* resize */ .elfinder .elfinder-resize-container{ margin: 0; } .elfinder .elfinder-resize-container fieldset .ui-button{ width: 49%; } .elfinder .elfinder-resize-container .elfinder-resize-rotate-slider{ width: 204px; } .elfinder .elfinder-resize-preview{ padding: 5px; background: linear-gradient(#ffffff1a 1px, transparent 1px), linear-gradient(90deg, #ffffff1a 1px, transparent 1px); background-size: 16px 16px; background-position: center; } .elfinder .elfinder-resize-loading{ background: transparent; -moz-animation: blink 1s infinite linear; -webkit-animation: blink 1s infinite linear; animation: blink 1s infinite linear; } .elfinder .elfinder-resize-preview img{ padding: 1px; background-color: rgba(255, 255, 255, .05); } .elfinder .elfinder-resize-preview .elfinder-resize-handle.ui-draggable{ box-sizing: border-box; border: 1px dashed #000 !important; } .elfinder .elfinder-resize-handle-point{ background: rgba(255, 255, 255, .7); border: 1px solid #111 !important; } .elfinder .elfinder-dialog-resize .ui-draggable-handle{ background: none !important; } /*************************************/ /* OVERLAYS */ /*************************************/ .elfinder-overlay{ background: #000; opacity: .5; } /*************************************/ /* TOAST */ /*************************************/ .elfinder .elfinder-toast{ top: 66px; } .elfinder-rtl .elfinder-toast{ right: auto; left: 12px; } .elfinder .elfinder-toast > div{ padding: 10px 10px 10px 44px; float: right; clear: both; -moz-border-radius: 2px !important; -webkit-border-radius: 2px !important; border-radius: 2px !important; } .elfinder-rtl .elfinder-toast > div{ padding: 10px 44px 10px 10px; float: left; } .elfinder .elfinder-toast > div > div{ display: none; } .elfinder .elfinder-toast > div > div.elfinder-toast-msg{ display: block; } .elfinder .elfinder-toast > .toast-info{ color: #ddf6ff; background: #1384a5 !important; } .elfinder .elfinder-toast > .toast-warning{ color: #fff1dd; background: #d07a00 !important; } .elfinder .elfinder-toast > .toast-success{ color: #ddffdd; background: #278827 !important; } .elfinder .elfinder-toast > .toast-error{ color: #ffdfdd; background: #a91811 !important; } /*************************************/ /* ICONS */ /*************************************/ @font-face{ font-family: 'elfinder'; font-style: normal; font-weight: normal; src: url('../img/elfinder.woff2') format('woff2'), url('../img/elfinder.woff') format('woff'), url('../img/elfinder.svg') format('svg'), url('../img/elfinder.ttf') format('truetype'), url('../img/elfinder.eot') format('embedded-opentype'); } .elfinder .ui-icon, .elfinder .elfinder-button-icon, .elfinder .elfinder-navbar-icon, .elfinder .elfinder-navbar-arrow, .elfinder .elfinder-spinner, .elfinder .elfinder-dialog-icon, .elfinder .elfinder-notify-cancel button, .elfinder .elfinder-symlink, .elfinder .elfinder-perms, .elfinder .elfinder-lock, .elfinder .elfinder-drag-helper-icon-status, .elfinder .elfinder-contextmenu .elfinder-contextmenu-item .ui-icon, .elfinder .elfinder-contextmenu .elfinder-contextmenu-item .elfinder-button-icon, .elfinder .elfinder-contextmenu .elfinder-contextmenu-item .elfinder-contextmenu-arrow, .elfinder .elfinder-cwd-icon, .elfinder-quicklook-navbar-icon{ display: flex; justify-content: center; align-items: center; min-width: 16px; background: none; text-indent: 0; } .elfinder .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon{ float: left; } .elfinder-rtl .elfinder-toolbar .elfinder-buttonset .elfinder-button-icon{ float: right; } .elfinder .elfinder-toolbar .elfinder-button-search .ui-icon{ margin: -9px 4px 0 4px; color: #999; opacity: 1; } .elfinder .elfinder-toolbar .elfinder-button-search .ui-icon:hover{ color: #ccc; } .elfinder-ltr.elfinder-touch .elfinder-toolbar .elfinder-button-search .ui-icon, .elfinder-touch .elfinder-toolbar .elfinder-button-search .ui-icon-close{ transform: scale(1.25); } .elfinder-rtl.elfinder-touch .elfinder-toolbar .elfinder-button-search .ui-icon-search{ transform: scale(-1.25, 1.25); } .elfinder-rtl .elfinder-button-menu-item .ui-icon{ left: auto; right: 2px; } .elfinder-button-menu-item .ui-icon, .elfinder .ui-checkboxradio-icon, .elfinder .elfinder-quicklook-navbar .elfinder-quicklook-navbar-icon-close, .elfinder .ui-resizable-disabled .ui-resizable-handle, .elfinder .ui-resizable-autohide .ui-resizable-handle{ display: none; } .elfinder-button-menu-item-selected .ui-icon, .elfinder .elfinder-quicklook-fullscreen .elfinder-quicklook-navbar-icon-close{ display: flex; } .elfinder-button-menu-item-selected-desc .ui-icon-arrowthick-1-n, .elfinder-button-menu-item-selected-asc .ui-icon-arrowthick-1-s{ display: none; } .elfinder-touch .elfinder-button-icon.elfinder-contextmenu-extra-icon{ transform: scale(1.25); } .elfinder .elfinder-navbar .elfinder-tree .elfinder-spinner{ margin: -10px 0 0; } .elfinder-ltr .elfinder-navbar-icon{ left: 15px; } .elfinder-rtl .elfinder-navbar-icon{ right: 15px; } .elfinder .elfinder-spinner{ display: inline-block; float: none; vertical-align: text-top; } .elfinder .elfinder-dialog-icon{ /* error, confirm */ font-size: 30px; } .elfinder .elfinder-dialog-notify .elfinder-dialog-icon{ left: 0; font-size: 18px; -moz-animation: blink 2s infinite linear; -webkit-animation: blink 2s infinite linear; animation: blink 2s infinite linear; } .elfinder-rtl .elfinder-dialog-notify .elfinder-dialog-icon{ left: auto; right: 0; } .elfinder .elfinder-perms{ font-size: 20px; border-radius: 50% !important; background: #fff; } .elfinder .elfinder-cwd-view-list .elfinder-cwd-icon{ background: none !important; } .elfinder .elfinder-quicklook-navbar-icon:hover{ color: #ccc; } /* Add elements of icons (before/after) */ .ui-icon:before, /* jquery-ui, use anywhere */ .elfinder-button-icon:before, /* use in toolbar, contextmenu */ .elfinder-navbar-icon:before, /* use in navbar */ .elfinder-navbar-arrow:before, /* use in navbar */ .elfinder-spinner:before, /* use in navbar, dialogs (info, confirm, upload, edit, quicklook) and may be other places */ .elfinder-symlink:before, /* use in workzone */ .elfinder-lock:before, /* use in workzone */ .elfinder-perms:before, /* use in navbar, workzone */ .elfinder-drag-helper-icon-status:before, /* use when drag files */ .elfinder-contextmenu-arrow:before, /* use in contextmenu */ .elfinder-cwd-icon:after, /* use in workzone */ .elfinder-dialog-icon:before, /* use in dialogs: confirm, error, notify */ .elfinder-notify-cancel button:before, /* use in dialogs: notify */ .elfinder-quicklook-navbar-icon:before, /* use in dialogs: quicklook */ .elfinder .elfinder-toast > div:before /* use in toasts */ { /* content: '\e000'; */ /* for debug */ display: inline-block; background: none; font-family: 'elfinder'; font-style: normal; font-weight: normal; line-height: 16px; text-align: center; text-decoration: none; /* For safety - reset parent styles, that can break glyph codes */ font-variant: normal; text-transform: none; /* Font smoothing. That was taken from TWBS */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Superstructure elements */ .elfinder-button-icon-spinner:before, .elfinder-spinner:before{ -moz-animation: spin 1.5s infinite linear; -webkit-animation: spin 1.5s infinite linear; animation: spin 1.5s infinite linear; } .elfinder .elfinder-cwd-icon:before{/* type lable cwd-icon */ top: 2px; left: -4px; padding: 2px 4px; font-family: 'Trebuchet MS'; font-weight: bold; color: #999; background-color: #202020; box-shadow: 1px 1px 1px rgba(255, 255, 255, .5); z-index: 1; } .elfinder .elfinder-info-title .elfinder-cwd-icon:before, .elfinder .elfinder-rm-title .elfinder-cwd-icon:before, .elfinder .elfinder-quicklook .elfinder-cwd-icon:before{/* cwd-icon lable type */ left: -4px; right: auto; } .elfinder .elfinder-toast > div:before{ position: absolute; left: 10px; top: 11px; font-size: 160%; } .elfinder-rtl .elfinder-toast > div:before{ left: auto; right: 10px; } /* Contents of news elements */ /* jquery-ui icons */ .elfinder .ui-icon-close:before{ content: '\e84c'; } .elfinder .ui-icon-closethick:before, .elfinder .elfinder-notify-cancel .elfinder-notify-button:before{ content: '\e81b'; } .elfinder .ui-icon-check:before{ content: '\e80f'; font-size: 110%; } .elfinder .ui-icon-caret-1-n:before{ content: '\e837'; } .elfinder .ui-icon-caret-1-s:before{ content: '\e836'; } .elfinder .ui-icon-search:before{ content: '\e81a'; } .elfinder .ui-icon-triangle-1-n:before, .elfinder .ui-icon-arrowthick-1-n:before{ content: '\f176'; } .elfinder .ui-icon-triangle-1-s:before, .elfinder .ui-icon-arrowthick-1-s:before{ content: '\f175'; } .elfinder .ui-icon-gripsmall-diagonal-se:before{ content: '\e803'; } .elfinder .ui-icon-plusthick:before{ content: '\e802'; } .elfinder .ui-icon-arrowreturnthick-1-s:before{ content: '\e806'; } .elfinder .ui-icon-minusthick:before{ content: '\e81e'; } .elfinder .ui-icon-pin-s:before{ content: '\e811'; } .elfinder .ui-icon-arrowrefresh-1-n:before{ content: '\e81f'; } .elfinder .ui-icon-unlocked:before{ content: '\e854'; } .elfinder .ui-icon-locked:before{ content: '\f13e'; } /* main icons */ .elfinder-button-icon-accept:before{ content: '\e810'; } .elfinder-button-icon-archive:before{ content: '\e827'; font-size: 110%; margin-left: -2px; } .elfinder-button-icon-back:before{ content: '\f007'; } .elfinder-button-icon-chmod:before{ content: '\e846'; } .elfinder-button-icon-copy:before{ content: '\e807'; } .elfinder-button-icon-colwidth:before{ content: '\f0db'; } .elfinder-button-icon-cut:before{ content: '\e801'; } .elfinder-button-icon-dir:before{ content: '\f114'; } .elfinder-button-icon-download:before{ content: '\e809'; } .elfinder-button-icon-duplicate:before{ content: '\e822'; } .elfinder-button-icon-edit:before{ content: '\e81c'; } .elfinder-button-icon-empty:before{ content: '\e829'; } .elfinder-button-icon-extract:before{ content: '\e825'; font-size: 110%; margin-left: -2px; } .elfinder-button-icon-forward:before{ content: '\f006'; } .elfinder-button-icon-fullscreen:before{ content: '\e802'; } .elfinder-button-icon-getfile:before{ content: '\f245'; } .elfinder-button-icon-help:before{ content: '\e80b'; } .elfinder-button-icon-home:before{ content: '\e800'; } .elfinder-button-icon-hide:before{ content: '\e80c'; } .elfinder-button-icon-info:before{ content: '\f086'; } .elfinder-button-icon-link:before{ content: '\f08e'; } .elfinder-button-icon-mkdir:before{ content: '\f114'; } .elfinder-button-icon-mkdirin:before{ content: '\e828'; } .elfinder-button-icon-mkfile:before{ content: '\f0f6'; font-size: 85%; } .elfinder-button-icon-menu:before{ content: '\e819'; } .elfinder-button-icon-netmount:before{ content: '\f0a0'; font-size: 110%; } .elfinder-button-icon-netunmount:before{ content: '\e818'; font-size: 85%; } .elfinder-button-icon-open:before{ content: '\f115'; } .elfinder-button-icon-opendir:before{ content: '\f115'; } .elfinder-button-icon-opennew:before{ content: '\e824'; } .elfinder-button-icon-paste:before{ content: '\f0ea'; } .elfinder-button-icon-places:before{ content: '\e81d'; } .elfinder-button-icon-preference:before{ content: '\f1de'; } .elfinder-button-icon-quicklook:before{ content: '\e812'; } .elfinder-button-icon-redo:before{ content: '\e814'; } .elfinder-button-icon-reload:before{ content: '\e805'; } .elfinder-button-icon-rename:before{ content: '\f246'; font-size: 85%; } .elfinder-button-icon-restore:before{ content: '\e81f'; } .elfinder-button-icon-resize:before{ content: '\e82d'; } .elfinder-button-icon-rotate-r:before{ content: '\e857'; } .elfinder-button-icon-rotate-l:before{ content: '\e856'; } .elfinder-button-icon-rm:before{ content: '\f12d'; } .elfinder-button-icon-search:before{ content: '\e81a'; } .elfinder-button-icon-selectall:before{ content: '\f247'; font-size: 90%; } .elfinder-button-icon-selectnone:before{ content: '\e823'; font-size: 90%; } .elfinder-button-icon-selectinvert:before{ content: '\f248'; font-size: 85%; margin-left: -1px; } .elfinder-button-icon-sort:before{ content: '\f15d'; font-size: 90%; } .elfinder-button-icon-text:before{ content: '\e804'; } .elfinder-button-icon-trash:before{ content: '\e80a'; font-size: 110%; } .elfinder-button-icon-undo:before{ content: '\e813'; } .elfinder-button-icon-unfullscreen:before{ content: '\e806'; } .elfinder-button-icon-up:before{ content: '\f005'; } .elfinder-button-icon-upload:before{ content: '\e808'; } .elfinder-button-icon-view:before{ content: '\e815'; font-size: 110%; } .elfinder-button-icon-view-list:before{ content: '\e816'; font-size: 110%; } .elfinder-button-icon-spinner:before, .elfinder-spinner:before{ content: '\e831'; } .elfinder-path-roots .elfinder-button-icon-menu:before{ content: '\e836'; } /* permissions, dragable icons (workzone/toolbar/on the screen) */ .elfinder-symlink:before{ content: '\e835'; } .elfinder-lock:before{ content: '\e82b'; font-size: 85%; } .elfinder-group .elfinder-perms:before{ content: '\e800'; } .elfinder-ro .elfinder-perms:before{ content: '\e80e'; color: #f3b80b; } .elfinder-wo .elfinder-perms:before{ content: '\e80d'; color: #0272bf; } .elfinder-na .elfinder-perms:before, .elfinder-drag-helper-icon-status:before{ content: '\e817'; color: #d00000; } .elfinder-drag-helper-move .elfinder-drag-helper-icon-status:before{ content: '\e843'; color: #0272bf; } .elfinder-drag-helper-plus .elfinder-drag-helper-icon-status:before{ content: '\e844'; color: #00ab07; } /* arrows icons (navbar/contextmenu) */ .elfinder-navbar-arrow:before{ content: none; } .elfinder-navbar-icon:before{ content: '\e820'; } .ui-state-hover .elfinder-navbar-icon:before, .ui-state-active .elfinder-navbar-icon:before, .elfinder-droppable-active .elfinder-navbar-icon:before{ content: '\e82e'; } .elfinder-ltr .elfinder-navbar-collapsed .elfinder-navbar-arrow:before, .elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-arrow:before{ content: '\e839'; } .elfinder-rtl .elfinder-navbar-collapsed .elfinder-navbar-arrow:before, .elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-arrow:before{ content: '\e838'; } .elfinder .elfinder-navbar-collapsed.elfinder-navbar-expanded .elfinder-navbar-arrow:before{ content: '\e836'; } /* cmd icons (dialogs) */ .elfinder-dialog-icon:before{ content: '\e83a'; } /* default icon (info icon) */ .elfinder-dialog-icon-confirm:before{ content: '\e83b'; color: #f3b80b; } .elfinder-rtl .elfinder-dialog-icon-confirm:before{ content: '\e851'; color: #f3b80b; } .elfinder-dialog-icon-error:before{ content: '\e83c'; color: #c32020; } .elfinder-dialog-icon-open:before, .elfinder-dialog-icon-readdir:before, .elfinder-dialog-icon-file:before{ content: '\e82e'; } .elfinder-dialog-icon-reload:before{ content: '\e841'; } .elfinder-dialog-icon-mkdir:before{ content: '\e820'; } .elfinder-dialog-icon-mkfile:before{ content: '\f15c'; } .elfinder-dialog-icon-copy:before{ content: '\e844'; } .elfinder-dialog-icon-prepare:before{ content: '\e831'; } .elfinder-dialog-icon-move:before{ content: '\e843'; } .elfinder-dialog-icon-save:before, .elfinder-dialog-icon-upload:before, .elfinder-dialog-icon-chunkmerge:before{ content: '\e83d'; } .elfinder-dialog-icon-rm:before{ content: '\f1f8'; } .elfinder-dialog-icon-download:before{ content: '\e83e'; } .elfinder-dialog-icon-rename:before, .elfinder-dialog-icon-chkcontent:before{ content: '\e83f'; } .elfinder-dialog-icon-zipdl:before, .elfinder-dialog-icon-archive:before, .elfinder-dialog-icon-extract:before{ content: '\e840'; } .elfinder-dialog-icon-search:before{ content: '\f1e5'; } .elfinder-dialog-icon-chmod:before{ content: '\e845'; } /* toasts */ .elfinder .elfinder-toast > .toast-info:before{ content: '\e83a'; } .elfinder .elfinder-toast > .toast-warning:before{ content: '\e83c'; } .elfinder .elfinder-toast > .toast-success:before{ content: '\e810'; } .elfinder .elfinder-toast > .toast-error:before{ content: '\e817'; } /* icons files (workzone/dialogs) */ .elfinder .elfinder-cwd-icon:after{ content: '\e84d'; font-size: 50px; color: #999; } .elfinder .elfinder-cwd-view-list table .elfinder-cwd-icon:after{ font-size: 16px; top: auto; right: auto; left: auto; width: auto; height: auto; opacity: 1; -webkit-transform: none; -moz-transform: none; transform: none; } .elfinder .elfinder-cwd-bgurl{ -moz-background-size: cover; background-size: cover; } .elfinder .elfinder-cwd-view-icons .elfinder-cwd-bgurl:after, .elfinder .elfinder-quicklook-info-wrapper .elfinder-cwd-bgurl:after{ display: none; } /* icons roots (navbar/workzone/dialogs/contextmenu) */ .elfinder [class^='elfinder-navbar-root-'] .elfinder-cwd-icon:after, .elfinder [class*=' elfinder-navbar-root-'] .elfinder-cwd-icon:after{ font-size: 53px; } .elfinder .elfinder-navbar-root-sql .elfinder-cwd-icon:after, .elfinder .elfinder-navbar-root-dropbox .elfinder-cwd-icon:after, .elfinder .elfinder-navbar-root-network .elfinder-cwd-icon:after{ font-size: 46px; } /* roots icons: navbar - .elfinder-navbar-root-[..] .elfinder-navbar-icon, workzone - .elfinder-navbar-root-[..] .elfinder-cwd-icon, contextmenu - .elfinder-navbar-root-[..].elfinder-contextmenu-icon */ .elfinder-places .elfinder-navbar-root .elfinder-navbar-icon:before{ content: '\e821'; } .elfinder .elfinder-navbar-root-local .elfinder-navbar-icon:before, .elfinder .elfinder-navbar-root-local .elfinder-cwd-icon:after, .elfinder .elfinder-navbar-root-local.elfinder-contextmenu-icon:before{ content: '\e82f'; color: #999; } .elfinder .elfinder-navbar-root-trash .elfinder-navbar-icon:before, .elfinder .elfinder-navbar-root-trash .elfinder-cwd-icon:after, .elfinder .elfinder-navbar-root-trash.elfinder-contextmenu-icon:before{ content: '\f1f8'; color: #999; } .elfinder .elfinder-navbar-root-ftp .elfinder-navbar-icon:before, .elfinder .elfinder-navbar-root-ftp .elfinder-cwd-icon:after, .elfinder .elfinder-navbar-root-ftp.elfinder-contextmenu-icon:before{ content: '\f0a0'; color: #999; } .elfinder .elfinder-navbar-root-sql .elfinder-navbar-icon:before, .elfinder .elfinder-navbar-root-sql .elfinder-cwd-icon:after, .elfinder .elfinder-navbar-root-sql.elfinder-contextmenu-icon:before{ content: '\f1c0'; color: #999; } .elfinder .elfinder-navbar-root-dropbox .elfinder-navbar-icon:before, .elfinder .elfinder-navbar-root-dropbox .elfinder-cwd-icon:after, .elfinder .elfinder-navbar-root-dropbox.elfinder-contextmenu-icon:before{ content: '\e832'; color: #999; } .elfinder .elfinder-navbar-root-googledrive .elfinder-navbar-icon:before, .elfinder .elfinder-navbar-root-googledrive .elfinder-cwd-icon:after, .elfinder .elfinder-navbar-root-googledrive.elfinder-contextmenu-icon:before{ content: '\e826'; color: #999; } .elfinder .elfinder-navbar-root-onedrive .elfinder-navbar-icon:before, .elfinder .elfinder-navbar-root-onedrive .elfinder-cwd-icon:after, .elfinder .elfinder-navbar-root-onedrive.elfinder-contextmenu-icon:before{ content: '\e833'; color: #999; } .elfinder .elfinder-navbar-root-box .elfinder-navbar-icon:before, .elfinder .elfinder-navbar-root-box .elfinder-cwd-icon:after, .elfinder .elfinder-navbar-root-box.elfinder-contextmenu-icon:before{ content: '\e834'; color: #999; } .elfinder .elfinder-navbar-root-network .elfinder-navbar-icon:before, .elfinder .elfinder-navbar-root-network .elfinder-cwd-icon:after, .elfinder .elfinder-navbar-root-network.elfinder-contextmenu-icon:before{ content: '\e830'; color: #999; } /* icons files (workzone/dialogs) */ .elfinder .elfinder-cwd-icon-directory:after{ content: '\e820'; color: #c3a530; } .elfinder .elfinder-cwd-icon-zip:after, .elfinder .elfinder-cwd-icon-x-zip:after, .elfinder .elfinder-cwd-icon-x-xz:after, .elfinder .elfinder-cwd-icon-x-7z-compressed:after, .elfinder .elfinder-cwd-icon-x-gzip:after, .elfinder .elfinder-cwd-icon-x-tar:after, .elfinder .elfinder-cwd-icon-x-bzip:after, .elfinder .elfinder-cwd-icon-x-bzip2:after, .elfinder .elfinder-cwd-icon-x-rar:after, .elfinder .elfinder-cwd-icon-x-rar-compressed:after{ content: '\e840'; color: #b3791e; } .elfinder .elfinder-cwd-icon-text:after, .elfinder .elfinder-cwd-icon-plain:after, .elfinder .elfinder-cwd-icon-x-empty:after{ content: '\e849'; color: #ddd; } .elfinder .elfinder-cwd-icon-image:after{ content: '\e84a'; color: #9e2974; } .elfinder .elfinder-cwd-icon-audio:after{ content: '\e84f'; color: #278a00; } .elfinder .elfinder-cwd-icon-video:after{ content: '\e84e'; color: #29629e; } .elfinder .elfinder-cwd-icon-html:after{ content: '\e82a'; color: #bd4c4c; } .elfinder .elfinder-cwd-icon-postscript:after, .elfinder .elfinder-cwd-icon-css:after, .elfinder .elfinder-cwd-icon-javascript:after, .elfinder .elfinder-cwd-icon-x-javascript:after, .elfinder .elfinder-cwd-icon-x-perl:after, .elfinder .elfinder-cwd-icon-x-python:after, .elfinder .elfinder-cwd-icon-x-ruby:after, .elfinder .elfinder-cwd-icon-x-sh:after, .elfinder .elfinder-cwd-icon-x-shellscript:after, .elfinder .elfinder-cwd-icon-x-c:after, .elfinder .elfinder-cwd-icon-x-csrc:after, .elfinder .elfinder-cwd-icon-x-chdr:after, .elfinder .elfinder-cwd-icon-x-c--:after, .elfinder .elfinder-cwd-icon-x-c--src:after, .elfinder .elfinder-cwd-icon-x-c--hdr:after, .elfinder .elfinder-cwd-icon-x-java:after, .elfinder .elfinder-cwd-icon-x-java-source:after, .elfinder .elfinder-cwd-icon-x-php:after, .elfinder .elfinder-cwd-icon-xml:after{ content: '\e84b'; color: #6e73b1; } .elfinder .elfinder-cwd-icon-group:after{ content: '\e842'; } /* workzone: parent rewrited */ .elfinder .elfinder-cwd-parent .elfinder-lock, .elfinder .elfinder-cwd-parent .elfinder-perms{ display: none; } .elfinder .elfinder-cwd-wrapper .elfinder-cwd-parent .elfinder-cwd-icon:after{ content: '\e847'; color: #999; } /* quicklook */ .elfinder-quicklook-navbar-icon-prev:before{ content: '\e850'; } .elfinder-quicklook-navbar-icon-next:before{ content: '\e82c'; } .elfinder-quicklook-navbar-icon-fullscreen:before{ content: '\e802'; } .elfinder-quicklook-navbar-icon-fullscreen-off:before{ content: '\e806'; } .elfinder-quicklook-navbar-icon-close:before{ content: '\e81b'; font-size: 85%; }(function(editors, elFinder) { if (typeof define === 'function' && define.amd) { define(['elfinder'], editors); } else if (elFinder) { var optEditors = elFinder.prototype._options.commandsOptions.edit.editors; elFinder.prototype._options.commandsOptions.edit.editors = optEditors.concat(editors(elFinder)); } }(function(elFinder) { "use strict"; var apps = {}, // get query of getfile getfile = window.location.search.match(/getfile=([a-z]+)/), useRequire = elFinder.prototype.hasRequire, ext2mime = { bmp: 'image/x-ms-bmp', dng: 'image/x-adobe-dng', gif: 'image/gif', jpeg: 'image/jpeg', jpg: 'image/jpeg', pdf: 'application/pdf', png: 'image/png', ppm: 'image/x-portable-pixmap', psd: 'image/vnd.adobe.photoshop', pxd: 'image/x-pixlr-data', svg: 'image/svg+xml', tiff: 'image/tiff', webp: 'image/webp', xcf: 'image/x-xcf', sketch: 'application/x-sketch', ico: 'image/x-icon', dds: 'image/vnd-ms.dds', emf: 'application/x-msmetafile' }, mime2ext, getExtention = function(mime, fm, jpeg) { if (!mime2ext) { mime2ext = fm.arrayFlip(ext2mime); } var ext = mime2ext[mime] || fm.mimeTypes[mime]; if (!jpeg) { if (ext === 'jpeg') { ext = 'jpg'; } } else { if (ext === 'jpg') { ext = 'jpeg'; } } return ext; }, changeImageType = function(src, toMime) { var dfd = $.Deferred(); try { var canvas = document.createElement('canvas'), ctx = canvas.getContext('2d'), img = new Image(), conv = function() { var url = canvas.toDataURL(toMime), mime, m; if (m = url.match(/^data:([a-z0-9]+\/[a-z0-9.+-]+)/i)) { mime = m[1]; } else { mime = ''; } if (mime.toLowerCase() === toMime.toLowerCase()) { dfd.resolve(canvas.toDataURL(toMime), canvas); } else { dfd.reject(); } }; img.src = src; $(img).on('load', function() { try { canvas.width = img.width; canvas.height = img.height; ctx.drawImage(img, 0, 0); conv(); } catch(e) { dfd.reject(); } }).on('error', function () { dfd.reject(); }); return dfd; } catch(e) { return dfd.reject(); } }, initImgTag = function(id, file, content, fm) { var node = $(this).children('img:first').data('ext', getExtention(file.mime, fm)), spnr = $('
') .html('' + fm.i18n('ntfloadimg') + '') .hide() .appendTo(this), setup = function() { node.attr('id', id+'-img') .attr('src', url || content) .css({'height':'', 'max-width':'100%', 'max-height':'100%', 'cursor':'pointer'}) .data('loading', function(done) { var btns = node.closest('.elfinder-dialog').find('button,.elfinder-titlebar-button'); btns.prop('disabled', !done)[done? 'removeClass' : 'addClass']('ui-state-disabled'); node.css('opacity', done? '' : '0.3'); spnr[done? 'hide' : 'show'](); return node; }); }, url; if (!content.match(/^data:/)) { fm.openUrl(file.hash, false, function(v) { url = v; node.attr('_src', content); setup(); }); } else { setup(); } }, imgBase64 = function(node, mime) { var style = node.attr('style'), img, canvas, ctx, data; try { // reset css for getting image size node.attr('style', ''); // img node img = node.get(0); // New Canvas canvas = document.createElement('canvas'); canvas.width = img.width; canvas.height = img.height; // restore css node.attr('style', style); // Draw Image canvas.getContext('2d').drawImage(img, 0, 0); // To Base64 data = canvas.toDataURL(mime); } catch(e) { data = node.attr('src'); } return data; }, iframeClose = function(ifm) { var $ifm = $(ifm), dfd = $.Deferred().always(function() { $ifm.off('load', load); }), ab = 'about:blank', chk = function() { tm = setTimeout(function() { var src; try { src = base.contentWindow.location.href; } catch(e) { src = null; } if (src === ab) { dfd.resolve(); } else if (--cnt > 0){ chk(); } else { dfd.reject(); } }, 500); }, load = function() { tm && clearTimeout(tm); dfd.resolve(); }, cnt = 20, // 500ms * 20 = 10sec wait tm; $ifm.one('load', load); ifm.src = ab; chk(); return dfd; }; // check getfile callback function if (getfile) { getfile = getfile[1]; if (getfile === 'ckeditor') { elFinder.prototype._options.getFileCallback = function(file, fm) { window.opener.CKEDITOR.tools.callFunction((function() { var reParam = new RegExp('(?:[?&]|&)CKEditorFuncNum=([^&]+)', 'i'), match = window.location.search.match(reParam); return (match && match.length > 1) ? match[1] : ''; })(), fm.convAbsUrl(file.url)); fm.destroy(); window.close(); }; } } // return editors Array return [ { // tui.image-editor - https://github.com/nhnent/tui.image-editor info : { id: 'tuiimgedit', name: 'TUI Image Editor', iconImg: 'img/editor-icons.png 0 -48', dataScheme: true, schemeContent: true, openMaximized: true, canMakeEmpty: false, integrate: { title: 'TOAST UI Image Editor', link: 'http://ui.toast.com/tui-image-editor/' } }, // 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 || fm.UA.Mobile) { this.disabled = true; } else { this.opts = Object.assign({ version: 'v3.15.3' }, opts.extraOptions.tuiImgEditOpts || {}, { iconsPath : fm.baseUrl + 'img/tui-', theme : {} }); if (!fm.isSameOrigin(this.opts.iconsPath)) { this.disabled = true; fm.debug('warning', 'Setting `commandOptions.edit.extraOptions.tuiImgEditOpts.iconsPath` MUST follow the same origin policy.'); } } }, // Initialization of editing node (this: this editors HTML node) init : function(id, file, content, fm) { this.data('url', content); }, load : function(base) { var self = this, fm = this.fm, dfrd = $.Deferred(), cdns = fm.options.cdns, ver = self.confObj.opts.version, init = function(editor) { var $base = $(base), bParent = $base.parent(), opts = self.confObj.opts, iconsPath = opts.iconsPath, tmpContainer = $('
').appendTo(bParent), tmpDiv = [ $('
').appendTo(tmpContainer), $('
').appendTo(tmpContainer) ], iEditor = new editor(base, { includeUI: { loadImage: { path: $base.data('url'), name: self.file.name }, theme: opts.theme, initMenu: 'filter', menuBarPosition: 'bottom' }, cssMaxWidth: Math.max(300, bParent.width()), cssMaxHeight: Math.max(200, bParent.height() - (tmpDiv[0].height() + tmpDiv[1].height() + 3 /*margin*/)), usageStatistics: false }), canvas = $base.find('canvas:first').get(0), zoom = function(v) { if (typeof v !== 'undefined') { var c = $(canvas), w = parseInt(c.attr('width')), h = parseInt(c.attr('height')), a = w / h, z, mw, mh; if (v === 0) { mw = w; mh = h; } else { mw = parseInt(c.css('max-width')) + Number(v); mh = mw / a; if (mw > w && mh > h) { mw = w; mh = h; } } z = Math.round(mw / w * 100); // Control zoom button of TUI Image Editor if (z < 100) { iEditor.resetZoom(); iEditor.stopDrawingMode(); tuiZoomCtrls.hide(); } else { tuiZoomCtrls.show(); } per.text(z + '%'); iEditor.resizeCanvasDimension({width: mw, height: mh}); // continually change more if (zoomMore) { setTimeout(function() { zoomMore && zoom(v); }, 50); } } }, zup = $('').data('val', 10), zdown = $('').data('val', -10), per = $('').css('width', '4em').text('%').attr('title', '100%').data('val', 0), tuiZoomCtrls, quty, qutyTm, zoomTm, zoomMore; tmpContainer.remove(); $base.removeData('url').data('mime', self.file.mime); // jpeg quality controls if (self.file.mime === 'image/jpeg') { $base.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(); $base.data('quality', q); qutyTm && cancelAnimationFrame(qutyTm); qutyTm = requestAnimationFrame(function() { canvas.toBlob(function(blob) { blob && quty.next('span').text(' (' + fm.formatSize(blob.size) + ')'); }, 'image/jpeg', Math.max(Math.min(q, 100), 1) / 100); }); }) .val($base.data('quality')); $('
') .append( $('').html(fm.i18n('quality') + ' : '), quty, $('') ) .prependTo($base.parent().next()); } else if (self.file.mime === 'image/svg+xml') { $base.closest('.ui-dialog').trigger('changeType', { extention: 'png', mime : 'image/png', keepEditor: true }); } // zoom scale controls $('
') .append( zdown, per, zup ) .attr('title', fm.i18n('scale')) .on('click', 'span,button', function() { zoom($(this).data('val')); }) .on('mousedown mouseup mouseleave', 'span', function(e) { zoomMore = false; zoomTm && clearTimeout(zoomTm); if (e.type === 'mousedown') { zoomTm = setTimeout(function() { zoomMore = true; zoom($(e.target).data('val')); }, 500); } }) .prependTo($base.parent().next()); // wait canvas ready setTimeout(function() { dfrd.resolve(iEditor); if (quty) { quty.trigger('change'); iEditor.on('redoStackChanged undoStackChanged', function() { quty.trigger('change'); }); } // ZOOM controls of TUI Image Editor tuiZoomCtrls = $base.find('.tie-btn-zoomIn,.tie-btn-zoomOut,.tie-btn-hand'); // show initial scale zoom(null); }, 100); // show color slider (maybe TUI-Image-Editor's bug) // see https://github.com/nhn/tui.image-editor/issues/153 $base.find('.tui-colorpicker-palette-container').on('click', '.tui-colorpicker-palette-preview', function() { $(this).closest('.color-picker-control').height('auto').find('.tui-colorpicker-slider-container').toggle(); }); $base.on('click', function() { $base.find('.tui-colorpicker-slider-container').hide(); }); }, loader; if (!self.confObj.editor) { loader = $.Deferred(); fm.loadCss([ cdns.tui + '/tui-color-picker/latest/tui-color-picker.css', cdns.tui + '/tui-image-editor/'+ver+'/tui-image-editor.css' ]); if (fm.hasRequire) { require.config({ paths : { 'fabric/dist/fabric.require' : cdns.fabric + '/fabric.require.min', // for fabric < 2.0.1 'fabric' : cdns.fabric + '/fabric.min', // for fabric >= 2.0.1 'tui-code-snippet' : cdns.tui + '/tui.code-snippet/latest/tui-code-snippet.min', 'tui-color-picker' : cdns.tui + '/tui-color-picker/latest/tui-color-picker.min', 'tui-image-editor' : cdns.tui + '/tui-image-editor/'+ver+'/tui-image-editor.min' } }); require(['tui-image-editor'], function(ImageEditor) { loader.resolve(ImageEditor); }); } else { fm.loadScript([ cdns.fabric + '/fabric.min.js', cdns.tui + '/tui.code-snippet/latest/tui-code-snippet.min.js' ], function() { fm.loadScript([ cdns.tui + '/tui-color-picker/latest/tui-color-picker.min.js' ], function() { fm.loadScript([ cdns.tui + '/tui-image-editor/'+ver+'/tui-image-editor.min.js' ], function() { loader.resolve(window.tui.ImageEditor); }, { loadType: 'tag' }); }, { loadType: 'tag' }); }, { loadType: 'tag' }); } loader.done(function(editor) { self.confObj.editor = editor; init(editor); }); } else { init(self.confObj.editor); } return dfrd; }, getContent : function(base) { var editor = this.editor, fm = editor.fm, $base = $(base), quality = $base.data('quality'); if (editor.instance) { if ($base.data('mime') === 'image/jpeg') { quality = quality || fm.storage('jpgQuality') || fm.option('jpgQuality'); quality = Math.max(0.1, Math.min(1, quality / 100)); } return editor.instance.toDataURL({ format: getExtention($base.data('mime'), fm, true), quality: quality }); } }, save : function(base) { var $base = $(base), quality = $base.data('quality'), hash = $base.data('hash'), file; this.instance.deactivateAll(); if (typeof quality !== 'undefined') { this.fm.storage('jpgQuality', quality); } if (hash) { file = this.fm.file(hash); $base.data('mime', file.mime); } } }, { // Photopea advanced image editor info : { id : 'photopea', name : 'Photopea', iconImg : 'img/editor-icons.png 0 -160', single: true, noContent: true, arrayBufferContent: true, openMaximized: true, // Disable file types that cannot be saved on Photopea. canMakeEmpty: ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/x-ms-bmp', 'image/tiff', /*'image/x-adobe-dng',*/ 'image/webp', /*'image/x-xcf',*/ 'image/vnd.adobe.photoshop', 'application/pdf', 'image/x-portable-pixmap', 'image/x-sketch', 'image/x-icon', 'image/vnd-ms.dds', /*'application/x-msmetafile'*/], integrate: { title: 'Photopea', link: 'https://www.photopea.com/learn/' } }, mimes : ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/x-ms-bmp', 'image/tiff', 'image/x-adobe-dng', 'image/webp', 'image/x-xcf', 'image/vnd.adobe.photoshop', 'application/pdf', 'image/x-portable-pixmap', 'image/x-sketch', 'image/x-icon', 'image/vnd-ms.dds', 'application/x-msmetafile'], html : '', // 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[extmime]) { 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 wnd = ifm.get(0).contentWindow, phase = 0, data = null, dfdIni = $.Deferred().done(function() { spnr.remove(); phase = 1; wnd.postMessage(data, orig); }), dfdGet; this.load = function() { return fm.getContents(file.hash, 'arraybuffer').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 (ev.data === 'Save') { editor.doSave(); } 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, '-'), customIO: {"save": "app.echoToOE(\"Save\");"} } }); 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), output: {format: 'png'}, 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) { if ($base.data('quty')) { q = $base.data('quty').val(); q && this.fm.storage('jpgQuality', q); } node.attr('src', base._canvas.toDataURL(self.file.mime, q? Math.max(Math.min(q, 100), 1) / 100 : void(0))); } else if (node.attr('src').substr(0, 5) !== 'data:') { node.attr('src', imgBase64(node, this.file.mime)); } }, close : function(base, editor) { editor && editor.destroy(); } }, { // 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( $('').html(self.fm.i18n('TextArea')) .button() .on('click', function(){ if (ta.data('ace')) { ta.removeData('ace'); editorBase.hide(); ta.val(editor.session.getValue()).show().trigger('focus'); $(this).text('AceEditor'); } else { ta.data('ace', true); editorBase.show(); editor.setValue(ta.hide().val(), -1); editor.focus(); $(this).html(self.fm.i18n('TextArea')); } }) ) .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.convAbsUrl(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 != 'null'? ' : ' + 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( $('').html(self.fm.i18n('TextArea')) .button() .on('click', function(){ if (ta.data('cm')) { ta.removeData('cm'); editorBase.hide(); ta.val(editor.getValue()).show().trigger('focus'); $(this).text('CodeMirror'); } else { ta.data('cm', true); editorBase.show(); editor.setValue(ta.hide().val()); editor.refresh(); editor.focus(); $(this).html(self.fm.i18n('TextArea')); } }) ) .prependTo(base.next()); }; // load script then start if (!self.confObj.loader) { self.confObj.loader = $.Deferred(); if (useRequire) { require.config({ packages: [{ name: 'codemirror', location: cmUrl, main: 'codemirror.min' }], map: { 'codemirror': { 'codemirror/lib/codemirror': 'codemirror' } } }); require([ 'codemirror', 'codemirror/addon/mode/loadmode.min', 'codemirror/mode/meta.min' ], function(CodeMirror) { self.confObj.loader.resolve(CodeMirror); }); } else { self.fm.loadScript([ cmUrl + '/codemirror.min.js' ], function() { self.fm.loadScript([ cmUrl + '/addon/mode/loadmode.min.js', cmUrl + '/mode/meta.min.js' ], function() { self.confObj.loader.resolve(CodeMirror); }); }, {loadType: 'tag'}); } self.fm.loadCss(cmUrl + '/codemirror.css'); } self.confObj.loader.done(start); return dfrd; }, close : function(textarea, instance) { instance && instance.toTextArea(); }, save : function(textarea, instance) { instance && $(textarea).data('cm') && (textarea.value = instance.getValue()); }, focus : function(textarea, instance) { instance && $(textarea).data('cm') && instance.focus(); }, resize : function(textarea, instance, e, data) { instance && instance.refresh(); } }, { // SimpleMDE // called on initialization of elFinder cmd edit (this: this editor's config object) setup : function(opts, fm) { if (fm.UA.ltIE10 || !fm.options.cdns.simplemde) { this.disabled = true; } }, info : { id : 'simplemde', name : 'SimpleMDE', iconImg : 'img/editor-icons.png 0 -80' }, exts : ['md'], load : function(textarea) { var self = this, fm = this.fm, base = $(textarea).parent(), dfrd = $.Deferred(), cdn = fm.options.cdns.simplemde, start = function(SimpleMDE) { var h = base.height(), delta = base.outerHeight(true) - h + 14, editor, editorBase, opts; // fit height function textarea._setHeight = function(height) { var h = height || base.height(), ctrH = 0, areaH; base.children('.editor-toolbar,.editor-statusbar').each(function() { ctrH += $(this).outerHeight(true); }); areaH = h - ctrH - delta; editorBase.height(areaH); editor.codemirror.refresh(); return areaH; }; // set base height base.height(h); opts = { element: textarea, autofocus: true }; // trigger event 'editEditorPrepare' self.trigger('Prepare', { node: textarea, editorObj: SimpleMDE, instance: void(0), opts: opts }); // make editor editor = new SimpleMDE(opts); dfrd.resolve(editor); // editor base node editorBase = $(editor.codemirror.getWrapperElement()); // fit height to base editorBase.css('min-height', '50px') .children('.CodeMirror-scroll').css('min-height', '50px'); textarea._setHeight(h); }; // check SimpleMDE & start if (!self.confObj.loader) { self.confObj.loader = $.Deferred(); self.fm.loadCss(cdn+'/simplemde.min.css'); if (useRequire) { require([ cdn+'/simplemde.min.js' ], function(SimpleMDE) { self.confObj.loader.resolve(SimpleMDE); }); } else { self.fm.loadScript([cdn+'/simplemde.min.js'], function() { self.confObj.loader.resolve(SimpleMDE); }, {loadType: 'tag'}); } } self.confObj.loader.done(start); return dfrd; }, close : function(textarea, instance) { instance && instance.toTextArea(); instance = null; }, save : function(textarea, instance) { instance && (textarea.value = instance.value()); }, focus : function(textarea, instance) { instance && instance.codemirror.focus(); }, resize : function(textarea, instance, e, data) { instance && textarea._setHeight(); } }, { // CKEditor for html file info : { id : 'ckeditor', name : 'CKEditor', iconImg : 'img/editor-icons.png 0 0' }, exts : ['htm', 'html', 'xhtml'], setup : function(opts, fm) { var confObj = this; if (!fm.options.cdns.ckeditor) { confObj.disabled = true; } else { confObj.ckeOpts = {}; if (opts.extraOptions) { confObj.ckeOpts = Object.assign({}, opts.extraOptions.ckeditor || {}); if (opts.extraOptions.managerUrl) { confObj.managerUrl = opts.extraOptions.managerUrl; } } } }, load : function(textarea) { var self = this, fm = this.fm, dfrd = $.Deferred(), init = function() { var base = $(textarea).parent(), dlg = base.closest('.elfinder-dialog'), h = base.height(), reg = /([&?]getfile=)[^&]+/, loc = self.confObj.managerUrl || window.location.href.replace(/#.*$/, ''), name = 'ckeditor', opts; // make manager location if (reg.test(loc)) { loc = loc.replace(reg, '$1' + name); } else { loc += '?getfile=' + name; } // set base height base.height(h); // CKEditor configure options opts = { startupFocus : true, fullPage: true, allowedContent: true, filebrowserBrowseUrl : loc, toolbarCanCollapse: true, toolbarStartupExpanded: !fm.UA.Mobile, removePlugins: 'resize', extraPlugins: 'colorbutton,justify,docprops', on: { 'instanceReady' : function(e) { var editor = e.editor; editor.resize('100%', h); // re-build on dom move dlg.one('beforedommove.'+fm.namespace, function() { editor.destroy(); }).one('dommove.'+fm.namespace, function() { self.load(textarea).done(function(editor) { self.instance = editor; }); }); // return editor instance dfrd.resolve(e.editor); } } }; // trigger event 'editEditorPrepare' self.trigger('Prepare', { node: textarea, editorObj: CKEDITOR, instance: void(0), opts: opts }); // CKEditor configure CKEDITOR.replace(textarea.id, Object.assign(opts, self.confObj.ckeOpts)); CKEDITOR.on('dialogDefinition', function(e) { var dlg = e.data.definition.dialog; dlg.on('show', function(e) { fm.getUI().append($('.cke_dialog_background_cover')).append(this.getElement().$); }); dlg.on('hide', function(e) { $('body:first').append($('.cke_dialog_background_cover')).append(this.getElement().$); }); }); }; if (!self.confObj.loader) { self.confObj.loader = $.Deferred(); window.CKEDITOR_BASEPATH = fm.options.cdns.ckeditor + '/'; $.getScript(fm.options.cdns.ckeditor + '/ckeditor.js', function() { self.confObj.loader.resolve(); }); } self.confObj.loader.done(init); return dfrd; }, close : function(textarea, instance) { instance && instance.destroy(); }, save : function(textarea, instance) { instance && (textarea.value = instance.getData()); }, focus : function(textarea, instance) { instance && instance.focus(); }, resize : function(textarea, instance, e, data) { var self; if (instance) { if (instance.status === 'ready') { instance.resize('100%', $(textarea).parent().height()); } } } }, { // CKEditor5 balloon mode for html file info : { id : 'ckeditor5', name : 'CKEditor5', iconImg : 'img/editor-icons.png 0 -16' }, exts : ['htm', 'html', 'xhtml'], html : '
', setup : function(opts, fm) { var confObj = this; // check cdn and ES6 support if (!fm.options.cdns.ckeditor5 || typeof window.Symbol !== 'function' || typeof Symbol() !== 'symbol') { confObj.disabled = true; } else { confObj.ckeOpts = {}; if (opts.extraOptions) { // @deprecated option extraOptions.ckeditor5Mode if (opts.extraOptions.ckeditor5Mode) { confObj.ckeditor5Mode = opts.extraOptions.ckeditor5Mode; } confObj.ckeOpts = Object.assign({}, opts.extraOptions.ckeditor5 || {}); if (confObj.ckeOpts.mode) { confObj.ckeditor5Mode = confObj.ckeOpts.mode; delete confObj.ckeOpts.mode; } if (opts.extraOptions.managerUrl) { confObj.managerUrl = opts.extraOptions.managerUrl; } } } fm.bind('destroy', function() { confObj.editor = null; }); }, // Prepare on before show dialog prepare : function(base, dialogOpts, file) { $(base).height(base.editor.fm.getUI().height() - 100); }, init : function(id, file, data, fm) { var m = data.match(/^([\s\S]*]*>)([\s\S]+)(<\/body>[\s\S]*)$/i), header = '', body = '', footer =''; this.css({ width: '100%', height: '100%', 'box-sizing': 'border-box' }); if (m) { header = m[1]; body = m[2]; footer = m[3]; } else { body = data; } this.data('data', { header: header, body: body, footer: footer }); this._setupSelEncoding(data); }, load : function(editnode) { var self = this, fm = this.fm, dfrd = $.Deferred(), mode = self.confObj.ckeditor5Mode || 'decoupled-document', lang = (function() { var l = fm.lang.toLowerCase().replace('_', '-'); if (l.substr(0, 2) === 'zh' && l !== 'zh-cn') { l = 'zh'; } return l; })(), init = function(cEditor) { var base = $(editnode).parent(), opts; // set base height base.height(fm.getUI().height() - 100); // CKEditor5 configure options opts = Object.assign({ toolbar: ["heading", "|", "fontSize", "fontFamily", "|", "bold", "italic", "underline", "strikethrough", "highlight", "|", "alignment", "|", "numberedList", "bulletedList", "blockQuote", "indent", "outdent", "|", "ckfinder", "link", "imageUpload", "insertTable", "mediaEmbed", "|", "undo", "redo"], language: lang }, self.confObj.ckeOpts); // trigger event 'editEditorPrepare' self.trigger('Prepare', { node: editnode, editorObj: cEditor, instance: void(0), opts: opts }); cEditor .create(editnode, opts) .then(function(editor) { var ckf = editor.commands.get('ckfinder'), fileRepo = editor.plugins.get('FileRepository'), prevVars = {}, isImage, insertImages; if (editor.ui.view.toolbar && (mode === 'classic' || mode === 'decoupled-document')) { $(editnode).closest('.elfinder-dialog').children('.ui-widget-header').append($(editor.ui.view.toolbar.element).css({marginRight:'-1em',marginLeft:'-1em'})); } if (mode === 'classic') { $(editnode).closest('.elfinder-edit-editor').css('overflow', 'auto'); } // Set up this elFinder instead of CKFinder if (ckf) { isImage = function(f) { return f && f.mime.match(/^image\//i); }; insertImages = function(urls) { var imgCmd = editor.commands.get('imageUpload'); if (!imgCmd.isEnabled) { var ntf = editor.plugins.get('Notification'), i18 = editor.locale.t; ntf.showWarning(i18('Could not insert image at the current position.'), { title: i18('Inserting image failed'), namespace: 'ckfinder' }); return; } editor.execute('imageInsert', { source: urls }); }; // Take over ckfinder execute() ckf.execute = function() { var dlg = base.closest('.elfinder-dialog'), gf = fm.getCommand('getfile'), rever = function() { if (prevVars.hasVar) { dlg.off('resize close', rever); gf.callback = prevVars.callback; gf.options.folders = prevVars.folders; gf.options.multiple = prevVars.multi; fm.commandMap.open = prevVars.open; prevVars.hasVar = false; } }; dlg.trigger('togleminimize').one('resize close', rever); prevVars.callback = gf.callback; prevVars.folders = gf.options.folders; prevVars.multi = gf.options.multiple; prevVars.open = fm.commandMap.open; prevVars.hasVar = true; gf.callback = function(files) { var imgs = []; if (files.length === 1 && files[0].mime === 'directory') { fm.one('open', function() { fm.commandMap.open = 'getfile'; }).getCommand('open').exec(files[0].hash); return; } fm.getUI('cwd').trigger('unselectall'); $.each(files, function(i, f) { if (isImage(f)) { imgs.push(fm.convAbsUrl(f.url)); } else { editor.execute('link', fm.convAbsUrl(f.url)); } }); if (imgs.length) { insertImages(imgs); } dlg.trigger('togleminimize'); }; gf.options.folders = true; gf.options.multiple = true; fm.commandMap.open = 'getfile'; fm.toast({ mode: 'info', msg: fm.i18n('dblclickToSelect') }); }; } // Set up image uploader fileRepo.createUploadAdapter = function(loader) { return new uploder(loader); }; editor.setData($(editnode).data('data').body); // move .ck-body to elFinder node for fullscreen mode fm.getUI().append($('body > div.ck-body')); $('div.ck-balloon-panel').css({ 'z-index': fm.getMaximizeCss().zIndex + 1 }); dfrd.resolve(editor); /*fm.log({ defaultConfig: cEditor.defaultConfig, plugins: cEditor.builtinPlugins.map(function(p) { return p.pluginName; }), toolbars: Array.from(editor.ui.componentFactory.names()) });*/ }) ['catch'](function(error) { // ['cache'] instead .cache for fix error on ie8 fm.error(error); }); }, uploder = function(loader) { var upload = function(file, resolve, reject) { fm.exec('upload', {files: [file]}, void(0), fm.cwd().hash) .done(function(data){ if (data.added && data.added.length) { fm.url(data.added[0].hash, { async: true }).done(function(url) { resolve({ 'default': fm.convAbsUrl(url) }); }).fail(function() { reject('errFileNotFound'); }); } else { reject(fm.i18n(data.error? data.error : 'errUpload')); } }) .fail(function(err) { var error = fm.parseError(err); reject(fm.i18n(error? (error === 'userabort'? 'errAbort' : error) : 'errUploadNoFiles')); }) .progress(function(data) { loader.uploadTotal = data.total; loader.uploaded = data.progress; }); }; this.upload = function() { return new Promise(function(resolve, reject) { if (loader.file instanceof Promise || (loader.file && typeof loader.file.then === 'function')) { loader.file.then(function(file) { upload(file, resolve, reject); }); } else { upload(loader.file, resolve, reject); } }); }; this.abort = function() { fm.getUI().trigger('uploadabort'); }; }, loader; if (!self.confObj.editor) { loader = $.Deferred(); self.fm.loadScript([ fm.options.cdns.ckeditor5 + '/' + mode + '/ckeditor.js' ], function(editor) { if (!editor) { editor = window.BalloonEditor || window.InlineEditor || window.ClassicEditor || window.DecoupledEditor; } if (fm.lang !== 'en') { self.fm.loadScript([ fm.options.cdns.ckeditor5 + '/' + mode + '/translations/' + lang + '.js' ], function(obj) { loader.resolve(editor); }, { tryRequire: true, loadType: 'tag', error: function(obj) { lang = 'en'; loader.resolve(editor); } }); } else { loader.resolve(editor); } }, { tryRequire: true, loadType: 'tag' }); loader.done(function(editor) { self.confObj.editor = editor; init(editor); }); } else { init(self.confObj.editor); } return dfrd; }, getContent : function() { var data = $(this).data('data'); return data.header + data.body + data.footer; }, close : function(editnode, instance) { instance && instance.destroy(); }, save : function(editnode, instance) { var elm = $(editnode), data = elm.data('data'); if (instance) { data.body = instance.getData(); elm.data('data', data); } }, focus : function(editnode, instance) { $(editnode).trigger('focus'); } }, { // TinyMCE for html file info : { id : 'tinymce', name : 'TinyMCE', iconImg : 'img/editor-icons.png 0 -64' }, exts : ['htm', 'html', 'xhtml'], setup : function(opts, fm) { var confObj = this; if (!fm.options.cdns.tinymce) { confObj.disabled = true; } else { confObj.mceOpts = {}; if (opts.extraOptions) { confObj.uploadOpts = Object.assign({}, opts.extraOptions.uploadOpts || {}); confObj.mceOpts = Object.assign({}, opts.extraOptions.tinymce || {}); } else { confObj.uploadOpts = {}; } } }, load : function(textarea) { var self = this, fm = this.fm, dfrd = $.Deferred(), init = function() { var base = $(textarea).show().parent(), dlg = base.closest('.elfinder-dialog'), h = base.height(), delta = base.outerHeight(true) - h, // hide MCE dialog and modal block hideMceDlg = function() { var mceW; if (tinymce.activeEditor.windowManager.windows) { mceW = tinymce.activeEditor.windowManager.windows[0]; mceDlg = $(mceW? mceW.getEl() : void(0)).hide(); mceCv = $('#mce-modal-block').hide(); } else { mceDlg = $('.tox-dialog-wrap').hide(); } }, // Show MCE dialog and modal block showMceDlg = function() { mceCv && mceCv.show(); mceDlg && mceDlg.show(); }, tVer = tinymce.majorVersion, opts, mceDlg, mceCv; // set base height base.height(h); // fit height function textarea._setHeight = function(height) { if (tVer < 5) { var base = $(this).parent(), h = height || base.innerHeight(), ctrH = 0, areaH; base.find('.mce-container-body:first').children('.mce-top-part,.mce-statusbar').each(function() { ctrH += $(this).outerHeight(true); }); areaH = h - ctrH - delta; base.find('.mce-edit-area iframe:first').height(areaH); } }; // TinyMCE configure options opts = { selector: '#' + textarea.id, resize: false, plugins: 'preview searchreplace autolink directionality visualblocks visualchars fullscreen image link media codesample table charmap pagebreak nonbreaking anchor insertdatetime advlist lists wordcount help', toolbar: 'formatselect | bold italic strikethrough forecolor backcolor | link image media | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat', image_advtab: true, init_instance_callback : function(editor) { // fit height on init textarea._setHeight(h); // re-build on dom move dlg.one('beforedommove.'+fm.namespace, function() { tinymce.execCommand('mceRemoveEditor', false, textarea.id); }).one('dommove.'+fm.namespace, function() { self.load(textarea).done(function(editor) { self.instance = editor; }); }); // return editor instance dfrd.resolve(editor); }, file_picker_callback : function (callback, value, meta) { var gf = fm.getCommand('getfile'), revar = function() { if (prevVars.hasVar) { gf.callback = prevVars.callback; gf.options.folders = prevVars.folders; gf.options.multiple = prevVars.multi; fm.commandMap.open = prevVars.open; prevVars.hasVar = false; } dlg.off('resize close', revar); showMceDlg(); }, prevVars = {}; prevVars.callback = gf.callback; prevVars.folders = gf.options.folders; prevVars.multi = gf.options.multiple; prevVars.open = fm.commandMap.open; prevVars.hasVar = true; gf.callback = function(file) { var url, info; if (file.mime === 'directory') { fm.one('open', function() { fm.commandMap.open = 'getfile'; }).getCommand('open').exec(file.hash); return; } // URL normalization url = fm.convAbsUrl(file.url); // Make file info info = file.name + ' (' + fm.formatSize(file.size) + ')'; // Provide file and text for the link dialog if (meta.filetype == 'file') { callback(url, {text: info, title: info}); } // Provide image and alt text for the image dialog if (meta.filetype == 'image') { callback(url, {alt: info}); } // Provide alternative source and posted for the media dialog if (meta.filetype == 'media') { callback(url); } dlg.trigger('togleminimize'); }; gf.options.folders = true; gf.options.multiple = false; fm.commandMap.open = 'getfile'; hideMceDlg(); dlg.trigger('togleminimize').one('resize close', revar); fm.toast({ mode: 'info', msg: fm.i18n('dblclickToSelect') }); return false; }, images_upload_handler : function (blobInfo, success, failure) { var file = blobInfo.blob(), err = function(e) { var dlg = e.data.dialog || {}; if (dlg.hasClass('elfinder-dialog-error') || dlg.hasClass('elfinder-confirm-upload')) { hideMceDlg(); dlg.trigger('togleminimize').one('resize close', revert); fm.unbind('dialogopened', err); } }, revert = function() { dlg.off('resize close', revert); showMceDlg(); }, clipdata = true; // check file object if (file.name) { // file blob of client side file object clipdata = void(0); } fm.bind('dialogopened', err).exec('upload', Object.assign({ files: [file], clipdata: clipdata // to get unique name on connector }, self.confObj.uploadOpts), void(0), fm.cwd().hash).done(function(data) { if (data.added && data.added.length) { fm.url(data.added[0].hash, { async: true }).done(function(url) { showMceDlg(); success(fm.convAbsUrl(url)); }).fail(function() { failure(fm.i18n('errFileNotFound')); }); } else { failure(fm.i18n(data.error? data.error : 'errUpload')); } }).fail(function(err) { var error = fm.parseError(err); if (error) { if (error === 'errUnknownCmd') { error = 'errPerm'; } else if (error === 'userabort') { error = 'errAbort'; } } failure(fm.i18n(error? error : 'errUploadNoFiles')); }); } }; // TinyMCE 5 supports "height: 100%" if (tVer >= 5) { opts.height = '100%'; } // trigger event 'editEditorPrepare' self.trigger('Prepare', { node: textarea, editorObj: tinymce, instance: void(0), opts: opts }); // TinyMCE configure tinymce.init(Object.assign(opts, self.confObj.mceOpts)); }; if (!self.confObj.loader) { self.confObj.loader = $.Deferred(); self.fm.loadScript([fm.options.cdns.tinymce + (fm.options.cdns.tinymce.match(/\.js/)? '' : '/tinymce.min.js')], function() { self.confObj.loader.resolve(); }, { loadType: 'tag' }); } self.confObj.loader.done(init); return dfrd; }, close : function(textarea, instance) { instance && tinymce.execCommand('mceRemoveEditor', false, textarea.id); }, save : function(textarea, instance) { instance && instance.save(); }, focus : function(textarea, instance) { instance && instance.focus(); }, resize : function(textarea, instance, e, data) { // fit height to base node on dialog resize instance && textarea._setHeight(); } }, { info : { id : 'zohoeditor', name : 'Zoho Editor', iconImg : 'img/editor-icons.png 0 -32', cmdCheck : 'ZohoOffice', preventGet: true, hideButtons: true, syncInterval : 15000, canMakeEmpty: true, integrate: { title: 'Zoho Office API', link: 'https://www.zoho.com/officeapi/' } }, mimes : [ 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', //'application/pdf', 'application/vnd.oasis.opendocument.text', 'application/rtf', 'text/html', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.sun.xml.calc', 'text/csv', 'text/tab-separated-values', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', 'application/vnd.oasis.opendocument.presentation', 'application/vnd.sun.xml.impress' ], html : '', // setup on elFinder bootup setup : function(opts, fm) { if (fm.UA.Mobile || fm.UA.ltIE8) { this.disabled = true; } }, // Prepare on before show dialog prepare : function(base, dialogOpts, file) { var elfNode = base.editor.fm.getUI(); $(base).height(elfNode.height()); dialogOpts.width = Math.max(dialogOpts.width || 0, elfNode.width() * 0.8); }, // Initialization of editing node (this: this editors HTML node) init : function(id, file, dum, fm) { var ta = this, ifm = $(this).hide(), uiToast = fm.getUI('toast'), spnr = $('
') .html('' + fm.i18n('nowLoading') + '') .appendTo(ifm.parent()), cdata = function() { var data = ''; $.each(fm.customData, function(key, val) { data += '&' + encodeURIComponent(key) + '=' + encodeURIComponent(val); }); return data; }; $(ta).data('xhr', fm.request({ data: { cmd: 'editor', name: ta.editor.confObj.info.cmdCheck, method: 'init', 'args[target]': file.hash, 'args[lang]' : fm.lang, 'args[cdata]' : cdata() }, preventDefault : true }).done(function(data) { var opts; if (data.zohourl) { opts = { css: { height: '100%' } }; // trigger event 'editEditorPrepare' ta.editor.trigger('Prepare', { node: ta, editorObj: void(0), instance: ifm, opts: opts }); ifm.attr('src', data.zohourl).show().css(opts.css); if (data.warning) { uiToast.appendTo(ta.closest('.ui-dialog')); fm.toast({ msg: fm.i18n(data.warning), mode: 'warning', timeOut: 0, onHidden: function() { uiToast.children().length === 1 && uiToast.appendTo(fm.getUI()); }, button: { text: 'btnYes' } }); } } else { data.error && fm.error(data.error); ta.elfinderdialog('destroy'); } }).fail(function(error) { error && fm.error(error); ta.elfinderdialog('destroy'); }).always(function() { spnr.remove(); })); }, load : function() {}, getContent : function() {}, save : function() {}, // Before dialog close beforeclose : iframeClose, // On dialog closed close : function(ta) { var fm = this.fm, xhr = $(ta).data('xhr'); if (xhr.state() === 'pending') { xhr.reject(); } } }, { // Zip Archive with FlySystem info : { id : 'ziparchive', name : 'btnMount', iconImg : 'img/toolbar.png 0 -416', cmdCheck : 'ZipArchive', edit : function(file, editor) { var fm = this, dfrd = $.Deferred(); fm.request({ data:{ cmd: 'netmount', protocol: 'ziparchive', host: file.hash, path: file.phash }, preventFail: true, notify : {type : 'netmount', cnt : 1, hideCnt : true} }).done(function(data) { var pdir; if (data.added && data.added.length) { if (data.added[0].phash) { if (pdir = fm.file(data.added[0].phash)) { if (! pdir.dirs) { pdir.dirs = 1; fm.change({ changed: [ pdir ] }); } } } fm.one('netmountdone', function() { fm.exec('open', data.added[0].hash); fm.one('opendone', function() { data.toast && fm.toast(data.toast); }); }); } dfrd.resolve(); }) .fail(function(error) { dfrd.reject(error); }); return dfrd; } }, mimes : ['application/zip'], load : function() {}, save : function(){} }, { // Simple Text (basic textarea editor) info : { id : 'textarea', name : 'TextArea', useTextAreaEvent : true }, load : function(textarea) { // trigger event 'editEditorPrepare' this.trigger('Prepare', { node: textarea, editorObj: void(0), instance: void(0), opts: {} }); textarea.setSelectionRange && textarea.setSelectionRange(0, 0); $(textarea).trigger('focus').show(); }, save : function(){} }, { // File converter with online-convert.com info : { id : 'onlineconvert', name : 'Online Convert', iconImg : 'img/editor-icons.png 0 -144', cmdCheck : 'OnlineConvert', preventGet: true, hideButtons: true, single: true, converter: true, canMakeEmpty: false, integrate: { title: 'ONLINE-CONVERT.COM', link: 'https://online-convert.com' } }, mimes : ['*'], html : '
', // setup on elFinder bootup setup : function(opts, fm) { var mOpts = opts.extraOptions.onlineConvert || {maxSize:100,showLink:true}; if (mOpts.maxSize) { this.info.maxSize = mOpts.maxSize * 1048576; } this.set = Object.assign({ url : 'https://%s.online-convert.com%s?external_url=', conv : { Archive: {'7Z':{}, 'BZ2':{ext:'bz'}, 'GZ':{}, 'ZIP':{}}, Audio: {'MP3':{}, 'OGG':{ext:'oga'}, 'WAV':{}, 'WMA':{}, 'AAC':{}, 'AIFF':{ext:'aif'}, 'FLAC':{}, 'M4A':{}, 'MMF':{}, 'OPUS':{ext:'oga'}}, Document: {'DOC':{}, 'DOCX':{}, 'HTML':{}, 'ODT':{}, 'PDF':{}, 'PPT':{}, 'PPTX':{}, 'RTF':{}, 'SWF':{}, 'TXT':{}}, eBook: {'AZW3':{ext:'azw'}, 'ePub':{}, 'FB2':{ext:'xml'}, 'LIT':{}, 'LRF':{}, 'MOBI':{}, 'PDB':{}, 'PDF':{},'PDF-eBook':{ext:'pdf'}, 'TCR':{}}, Hash: {'Adler32':{}, 'Apache-htpasswd':{}, 'Blowfish':{}, 'CRC32':{}, 'CRC32B':{}, 'Gost':{}, 'Haval128':{},'MD4':{}, 'MD5':{}, 'RIPEMD128':{}, 'RIPEMD160':{}, 'SHA1':{}, 'SHA256':{}, 'SHA384':{}, 'SHA512':{}, 'Snefru':{}, 'Std-DES':{}, 'Tiger128':{}, 'Tiger128-calculator':{}, 'Tiger128-converter':{}, 'Tiger160':{}, 'Tiger192':{}, 'Whirlpool':{}}, Image: {'BMP':{}, 'EPS':{ext:'ai'}, 'GIF':{}, 'EXR':{}, 'ICO':{}, 'JPG':{}, 'PNG':{}, 'SVG':{}, 'TGA':{}, 'TIFF':{ext:'tif'}, 'WBMP':{}, 'WebP':{}}, Video: {'3G2':{}, '3GP':{}, 'AVI':{}, 'FLV':{}, 'HLS':{ext:'m3u8'}, 'MKV':{}, 'MOV':{}, 'MP4':{}, 'MPEG-1':{ext:'mpeg'}, 'MPEG-2':{ext:'mpeg'}, 'OGG':{ext:'ogv'}, 'OGV':{}, 'WebM':{}, 'WMV':{}, 'Android':{link:'/convert-video-for-%s',ext:'mp4'}, 'Blackberry':{link:'/convert-video-for-%s',ext:'mp4'}, 'DPG':{link:'/convert-video-for-%s',ext:'avi'}, 'iPad':{link:'/convert-video-for-%s',ext:'mp4'}, 'iPhone':{link:'/convert-video-for-%s',ext:'mp4'}, 'iPod':{link:'/convert-video-for-%s',ext:'mp4'}, 'Nintendo-3DS':{link:'/convert-video-for-%s',ext:'avi'}, 'Nintendo-DS':{link:'/convert-video-for-%s',ext:'avi'}, 'PS3':{link:'/convert-video-for-%s',ext:'mp4'}, 'Wii':{link:'/convert-video-for-%s',ext:'avi'}, 'Xbox':{link:'/convert-video-for-%s',ext:'wmv'}} }, catExts : { Hash: 'txt' }, link : '', useTabs : ($.fn.tabs && !fm.UA.iOS)? true : false // Can't work on iOS, I don't know why. }, mOpts); }, // Prepare on before show dialog prepare : function(base, dialogOpts, file) { var elfNode = base.editor.fm.getUI(); $(base).height(elfNode.height()); dialogOpts.width = Math.max(dialogOpts.width || 0, elfNode.width() * 0.8); }, // Initialization of editing node (this: this editors HTML node) init : function(id, file, dum, fm) { var ta = this, confObj = ta.editor.confObj, set = confObj.set, uiToast = fm.getUI('toast'), idxs = {}, allowZip = fm.uploadMimeCheck('application/zip', file.phash), selfUrl = $('base').length? document.location.href.replace(/#.*$/, '') : '', getExt = function(cat, con) { var c; if (set.catExts[cat]) { return set.catExts[cat]; } if (set.conv[cat] && (c = set.conv[cat][con])) { return (c.ext || con).toLowerCase(); } return con.toLowerCase(); }, setOptions = function(cat, done) { var type, dfdInit, dfd; if (typeof confObj.api === 'undefined') { dfdInit = fm.request({ data: { cmd: 'editor', name: 'OnlineConvert', method: 'init' }, preventDefault : true }); } else { dfdInit = $.Deferred().resolve({api: confObj.api}); } cat = cat.toLowerCase(); dfdInit.done(function(data) { confObj.api = data.api; if (confObj.api) { if (cat) { type = '?category=' + cat; } else { type = ''; cat = 'all'; } if (!confObj.conversions) { confObj.conversions = {}; } if (!confObj.conversions[cat]) { dfd = $.getJSON('https://api2.online-convert.com/conversions' + type); } else { dfd = $.Deferred().resolve(confObj.conversions[cat]); } dfd.done(function(d) { confObj.conversions[cat] = d; $.each(d, function(i, o) { btns[set.useTabs? 'children' : 'find']('.onlineconvert-category-' + o.category).children('.onlineconvert-' + o.target).trigger('makeoption', o); }); done && done(); }); } }); }, btns = (function() { var btns = $('
').on('click', 'button', function() { var b = $(this), opts = b.data('opts') || null, cat = b.closest('.onlineconvert-category').data('cname'), con = b.data('conv'); if (confObj.api === true) { api({ category: cat, convert: con, options: opts }); } }).on('change', function(e) { var t = $(e.target), p = t.parent(), b = t.closest('.elfinder-edit-onlineconvert-button').children('button:first'), o = b.data('opts') || {}, v = p.data('type') === 'boolean'? t.is(':checked') : t.val(); e.stopPropagation(); if (v) { if (p.data('type') === 'integer') { v = parseInt(v); } if (p.data('pattern')) { var reg = new RegExp(p.data('pattern')); if (!reg.test(v)) { requestAnimationFrame(function() { fm.error('"' + fm.escape(v) + '" is not match to "/' + fm.escape(p.data('pattern')) + '/"'); }); v = null; } } } if (v) { o[t.parent().data('optkey')] = v; } else { delete o[p.data('optkey')]; } b.data('opts', o); }), ul = $('
    '), oform = function(n, o) { var f = $('

    ').data('optkey', n).data('type', o.type), checked = '', disabled = '', nozip = false, opts, btn, elm; if (o.description) { f.attr('title', fm.i18n(o.description)); } if (o.pattern) { f.data('pattern', o.pattern); } f.append($('').text(fm.i18n(n) + ' : ')); if (o.type === 'boolean') { if (o['default'] || (nozip = (n === 'allow_multiple_outputs' && !allowZip))) { checked = ' checked'; if (nozip) { disabled = ' disabled'; } btn = this.children('button:first'); opts = btn.data('opts') || {}; opts[n] = true; btn.data('opts', opts); } f.append($('')); } else if (o['enum']){ elm = $('').append($('').text('Select...')); $.each(o['enum'], function(i, v) { elm.append($('').text(v)); }); f.append(elm); } else { f.append($('')); } return f; }, makeOption = function(o) { var elm = this, b = $('').on('click', function() { f.toggle(); }), f = $('
    ').hide(); if (o.options) { $.each(o.options, function(k, v) { k !== 'download_password' && f.append(oform.call(elm, k, v)); }); } elm.append(b, f); }, ts = (+new Date()), i = 0; if (!confObj.ext2mime) { confObj.ext2mime = Object.assign(fm.arrayFlip(fm.mimeTypes), ext2mime); } $.each(set.conv, function(t, c) { var cname = t.toLowerCase(), id = 'elfinder-edit-onlineconvert-' + cname + ts, type = $('
    ').data('cname', t), cext; $.each(c, function(n, o) { var nl = n.toLowerCase(), ext = getExt(t, n); if (!confObj.ext2mime[ext]) { if (cname === 'audio' || cname === 'image' || cname === 'video') { confObj.ext2mime[ext] = cname + '/x-' + nl; } else { confObj.ext2mime[ext] = 'application/octet-stream'; } } if (fm.uploadMimeCheck(confObj.ext2mime[ext], file.phash)) { type.append($('
    ').on('makeoption', function(e, data) { var elm = $(this); if (!elm.children('.elfinder-button-icon-preference').length) { makeOption.call(elm, data); } }).append($('').text(n).data('conv', n))); } }); if (type.children().length) { ul.append($('
  • ').append($('').attr('href', selfUrl + '#' + id).text(t))); btns.append(type); idxs[cname] = i++; } }); if (set.useTabs) { btns.prepend(ul).tabs({ beforeActivate: function(e, ui) { setOptions(ui.newPanel.data('cname')); } }); } else { $.each(set.conv, function(t) { var tl = t.toLowerCase(); btns.append($('
    ').append($('').text(t)).append(btns.children('.onlineconvert-category-' + tl))); }); } return btns; })(), select = $(this) .append( btns, (set.showLink? $(set.link) : null) ), spnr = $('
    ') .hide() .html('' + fm.i18n('nowLoading') + '') .appendTo(select.parent()), prog = $('
    ').appendTo(spnr), _url = null, url = function() { var onetime; if (_url) { return $.Deferred().resolve(_url); } else { spnr.show(); return fm.forExternalUrl(file.hash, { progressBar: prog }).done(function(url) { _url = url; }).fail(function(error) { error && fm.error(error); ta.elfinderdialog('destroy'); }).always(function() { spnr.hide(); }); } }, api = function(opts) { $(ta).data('dfrd', url().done(function(url) { select.fadeOut(); setStatus({info: 'Start conversion request.'}); fm.request({ data: { cmd: 'editor', name: 'OnlineConvert', method: 'api', 'args[category]' : opts.category.toLowerCase(), 'args[convert]' : opts.convert.toLowerCase(), 'args[options]' : JSON.stringify(opts.options), 'args[source]' : fm.convAbsUrl(url), 'args[filename]' : fm.splitFileExtention(file.name)[0] + '.' + getExt(opts.category, opts.convert), 'args[mime]' : file.mime }, preventDefault : true }).done(function(data) { checkRes(data.apires, opts.category, opts.convert); }).fail(function(error) { error && fm.error(error); ta.elfinderdialog('destroy'); }); })); }, checkRes = function(res, cat, con) { var status, err = []; if (res && res.id) { status = res.status; if (status.code === 'failed') { spnr.hide(); if (res.errors && res.errors.length) { $.each(res.errors, function(i, o) { o.message && err.push(o.message); }); } fm.error(err.length? err : status.info); select.fadeIn(); } else if (status.code === 'completed') { upload(res); } else { setStatus(status); setTimeout(function() { polling(res.id); }, 1000); } } else { uiToast.appendTo(ta.closest('.ui-dialog')); if (res.message) { fm.toast({ msg: fm.i18n(res.message), mode: 'error', timeOut: 5000, onHidden: function() { uiToast.children().length === 1 && uiToast.appendTo(fm.getUI()); } }); } fm.toast({ msg: fm.i18n('editorConvNoApi'), mode: 'error', timeOut: 3000, onHidden: function() { uiToast.children().length === 1 && uiToast.appendTo(fm.getUI()); } }); spnr.hide(); select.show(); } }, setStatus = function(status) { spnr.show().children('.elfinder-spinner-text').text(status.info); }, polling = function(jobid) { fm.request({ data: { cmd: 'editor', name: 'OnlineConvert', method: 'api', 'args[jobid]': jobid }, preventDefault : true }).done(function(data) { checkRes(data.apires); }).fail(function(error) { error && fm.error(error); ta.elfinderdialog('destroy'); }); }, upload = function(res) { var output = res.output, id = res.id, url = ''; spnr.hide(); if (output && output.length) { ta.elfinderdialog('destroy'); $.each(output, function(i, o) { if (o.uri) { url += o.uri + '\n'; } }); fm.upload({ target: file.phash, files: [url], type: 'text', extraData: { contentSaveId: 'OnlineConvert-' + res.id } }); } }, mode = 'document', cl, m; select.parent().css({overflow: 'auto'}).addClass('overflow-scrolling-touch'); if (m = file.mime.match(/^(audio|image|video)/)) { mode = m[1]; } if (set.useTabs) { if (idxs[mode]) { btns.tabs('option', 'active', idxs[mode]); } } else { cl = Object.keys(set.conv).length; $.each(set.conv, function(t) { if (t.toLowerCase() === mode) { setOptions(t, function() { $.each(set.conv, function(t0) { t0.toLowerCase() !== mode && setOptions(t0); }); }); return false; } cl--; }); if (!cl) { $.each(set.conv, function(t) { setOptions(t); }); } select.parent().scrollTop(btns.children('.onlineconvert-fieldset-' + mode).offset().top); } }, load : function() {}, getContent : function() {}, save : function() {}, // On dialog closed close : function(ta) { var fm = this.fm, dfrd = $(ta).data('dfrd'); if (dfrd && dfrd.state() === 'pending') { dfrd.reject(); } } } ]; }, window.elFinder)); /** * German Translation / Deutsche Übersetzung * @author JPG & Mace * @author tora60 from pragmaMx.org * @author Timo-Linde * @author OSWorX * @author Maximilian Schwarz * @author SF Webdesign * @version 2019-12-13 */ (function(root, factory) { if (typeof define === 'function' && define.amd) { define(['elfinder'], factory); } else if (typeof exports !== 'undefined') { module.exports = factory(require('elfinder')); } else { factory(root.elFinder); } }(this, function(elFinder) { elFinder.prototype.i18.de = { translator : 'JPG & Mace <dev@flying-datacenter.de>, tora60 from pragmaMx.org, Timo-Linde <info@timo-linde.de>, OSWorX <info@osworx.net>, Maximilian Schwarz <info@deefuse.de>, SF Webdesign <webdesign@stephan-frank.de>', language : 'Deutsch', direction : 'ltr', dateFormat : 'j. F Y H:i', // 3. März 2020 14:58 fancyDateFormat : '$1 H:i', // will produce smth like: Today 12:25 PM nonameDateFormat : 'ymd-His', // to apply if upload file is noname: 120513172700 messages : { /********************************** errors **********************************/ 'error' : 'Fehler', 'errUnknown' : 'Unbekannter Fehler.', 'errUnknownCmd' : 'Unbekannter Befehl.', 'errJqui' : 'Ungültige jQuery UI-Konfiguration. Die Komponenten Selectable, Draggable und Droppable müssen inkludiert sein.', 'errNode' : 'Für elFinder muss das DOM-Element erstellt werden.', 'errURL' : 'Ungültige elFinder-Konfiguration! Die URL-Option ist nicht gesetzt.', 'errAccess' : 'Zugriff verweigert.', 'errConnect' : 'Verbindung zum Backend fehlgeschlagen.', 'errAbort' : 'Verbindung abgebrochen.', 'errTimeout' : 'Zeitüberschreitung der Verbindung.', 'errNotFound' : 'Backend nicht gefunden.', 'errResponse' : 'Ungültige Backend-Antwort.', 'errConf' : 'Ungültige Backend-Konfiguration.', 'errJSON' : 'PHP JSON-Modul nicht vorhanden.', 'errNoVolumes' : 'Keine lesbaren Laufwerke vorhanden.', 'errCmdParams' : 'Ungültige Parameter für Befehl: "$1".', 'errDataNotJSON' : 'Daten nicht im JSON-Format.', 'errDataEmpty' : 'Daten sind leer.', 'errCmdReq' : 'Backend-Anfrage benötigt Befehl.', 'errOpen' : 'Kann "$1" nicht öffnen.', 'errNotFolder' : 'Objekt ist kein Ordner.', 'errNotFile' : 'Objekt ist keine Datei.', 'errRead' : 'Kann "$1" nicht öffnen.', 'errWrite' : 'Kann nicht in "$1" schreiben.', 'errPerm' : 'Zugriff verweigert.', 'errLocked' : '"$1" ist gesperrt und kann nicht umbenannt, verschoben oder gelöscht werden.', 'errExists' : 'Die Datei "$1" existiert bereits.', 'errInvName' : 'Ungültiger Dateiname.', 'errInvDirname' : 'Ungültiger Ordnername.', // from v2.1.24 added 12.4.2017 'errFolderNotFound' : 'Ordner nicht gefunden.', 'errFileNotFound' : 'Datei nicht gefunden.', 'errTrgFolderNotFound' : 'Zielordner "$1" nicht gefunden.', 'errPopup' : 'Der Browser hat das Pop-Up-Fenster unterbunden. Um die Datei zu öffnen, Pop-Ups in den Browsereinstellungen aktivieren.', 'errMkdir' : 'Kann Ordner "$1" nicht erstellen.', 'errMkfile' : 'Kann Datei "$1" nicht erstellen.', 'errRename' : 'Kann "$1" nicht umbenennen.', 'errCopyFrom' : 'Kopieren von Dateien von "$1" nicht erlaubt.', 'errCopyTo' : 'Kopieren von Dateien nach "$1" nicht erlaubt.', 'errMkOutLink' : 'Der Link kann nicht außerhalb der Partition führen.', // from v2.1 added 03.10.2015 'errUpload' : 'Upload-Fehler.', // old name - errUploadCommon 'errUploadFile' : 'Kann "$1" nicht hochladen.', // old name - errUpload 'errUploadNoFiles' : 'Keine Dateien zum Hochladen gefunden.', 'errUploadTotalSize' : 'Gesamtgröße überschreitet die Maximalgröße.', // old name - errMaxSize 'errUploadFileSize' : 'Die Datei überschreitet die Maximalgröße.', // old name - errFileMaxSize 'errUploadMime' : 'Dateiart (mime) nicht zulässig.', 'errUploadTransfer' : '"$1" Übertragungsfehler.', 'errUploadTemp' : 'Kann temporäre Datei nicht erstellen.', // from v2.1 added 26.09.2015 'errNotReplace' : 'Das Objekt "$1" existiert bereits an dieser Stelle und kann nicht durch ein Objekt eines anderen Typs ersetzt werden.', // new 'errReplace' : 'Kann "$1" nicht ersetzen.', 'errSave' : 'Kann "$1" nicht speichern.', 'errCopy' : 'Kann "$1" nicht kopieren.', 'errMove' : 'Kann "$1" nicht verschieben.', 'errCopyInItself' : '"$1" kann sich nicht in sich selbst kopieren.', 'errRm' : 'Kann "$1" nicht entfernen.', 'errTrash' : 'Kann Objekt nicht in Mülleimer legen.', // from v2.1.24 added 30.4.2017 'errRmSrc' : 'Kann Quelldatei(en) nicht entfernen.', 'errExtract' : 'Kann "$1" nicht entpacken.', 'errArchive' : 'Archiv konnte nicht erstellt werden.', 'errArcType' : 'Archivtyp nicht untersützt.', 'errNoArchive' : 'Bei der Datei handelt es sich nicht um ein Archiv, oder die Archivart wird nicht unterstützt.', 'errCmdNoSupport' : 'Das Backend unterstützt diesen Befehl nicht.', 'errReplByChild' : 'Der Ordner "$1" kann nicht durch etwas ersetzt werden, das ihn selbst enthält.', 'errArcSymlinks' : 'Aus Sicherheitsgründen ist es verboten, ein Archiv mit symbolischen Links zu extrahieren.', // edited 24.06.2012 'errArcMaxSize' : 'Die Archivdateien übersteigen die maximal erlaubte Größe.', 'errResize' : 'Größe von "$1" kann nicht geändert werden.', 'errResizeDegree' : 'Ungültiger Rotationswert.', // added 7.3.2013 'errResizeRotate' : 'Bild konnte nicht gedreht werden.', // added 7.3.2013 'errResizeSize' : 'Ungültige Bildgröße.', // added 7.3.2013 'errResizeNoChange' : 'Bildmaße nicht geändert.', // added 7.3.2013 'errUsupportType' : 'Nicht unterstützte Dateiart.', 'errNotUTF8Content' : 'Die Datei "$1" ist nicht im UTF-8-Format und kann nicht bearbeitet werden.', // added 9.11.2011 'errNetMount' : 'Verbindung mit "$1" nicht möglich.', // added 17.04.2012 'errNetMountNoDriver' : 'Nicht unterstütztes Protokoll.', // added 17.04.2012 'errNetMountFailed' : 'Verbindung fehlgeschlagen.', // added 17.04.2012 'errNetMountHostReq' : 'Host benötigt.', // added 18.04.2012 'errSessionExpires' : 'Diese Sitzung ist aufgrund von Inaktivität abgelaufen.', 'errCreatingTempDir' : 'Erstellung des temporären Ordners nicht möglich: "$1"', 'errFtpDownloadFile' : 'Download der Datei über FTP nicht möglich: "$1"', 'errFtpUploadFile' : 'Upload der Datei zu FTP nicht möglich: "$1"', 'errFtpMkdir' : 'Erstellung des Remote-Ordners mit FTP nicht möglich: "$1"', 'errArchiveExec' : 'Fehler beim Archivieren der Dateien: "$1"', 'errExtractExec' : 'Fehler beim Extrahieren der Dateien: "$1"', 'errNetUnMount' : 'Kann nicht ausgehängt werden.', // from v2.1 added 30.04.2012 'errConvUTF8' : 'Kann nicht zu UTF-8 konvertiert werden.', // from v2.1 added 08.04.2014 'errFolderUpload' : 'Ordner kann nich hochladen werden, eventuell mit Google Chrome versuchen.', // from v2.1 added 26.6.2015 'errSearchTimeout' : 'Zeitüberschreitung während der Suche nach "$1". Suchergebnis ist unvollständig.', // from v2.1 added 12.1.2016 'errReauthRequire' : 'Erneutes Anmelden ist erforderlich.', // from v2.1.10 added 24.3.2016 'errMaxTargets' : 'Die maximale Anzahl auswählbarer Elemente ist $1', // from v2.1.17 added 17.10.2016 'errRestore' : 'Datei konnte nicht aus Mülleimer wieder hergestellt werden bzw. Ziel für Wiederherstellung nicht gefunden.', // from v2.1.24 added 3.5.2017 'errEditorNotFound' : 'Kein Editor für diesen Dateityp gefunden.', // from v2.1.25 added 23.5.2017 'errServerError' : 'Ein serverseitiger Fehler trat auf.', // from v2.1.25 added 16.6.2017 'errEmpty' : 'Konnte Ordner "$1" nicht Leeren.', // from v2.1.25 added 22.6.2017 'moreErrors' : 'Es sind noch $1 weitere Fehler.', // from v2.1.44 added 13.12.2019 /******************************* commands names ********************************/ 'cmdarchive' : 'Archiv erstellen', 'cmdback' : 'Zurück', 'cmdcopy' : 'Kopieren', 'cmdcut' : 'Ausschneiden', 'cmddownload' : 'Herunterladen', 'cmdduplicate' : 'Duplizieren', 'cmdedit' : 'Datei bearbeiten', 'cmdextract' : 'Archiv entpacken', 'cmdforward' : 'Vorwärts', 'cmdgetfile' : 'Datei auswählen', 'cmdhelp' : 'Über diese Software', 'cmdhome' : 'Startordner', 'cmdinfo' : 'Informationen', 'cmdmkdir' : 'Neuer Ordner', 'cmdmkdirin' : 'In neuen Ordner', // from v2.1.7 added 19.2.2016 'cmdmkfile' : 'Neuer Datei', 'cmdopen' : 'Öffnen', 'cmdpaste' : 'Einfügen', 'cmdquicklook' : 'Vorschau', 'cmdreload' : 'Aktualisieren', 'cmdrename' : 'Umbenennen', 'cmdrm' : 'Löschen', 'cmdtrash' : 'In den Mülleimer legen', //from v2.1.24 added 29.4.2017 'cmdrestore' : 'Wiederherstellen', //from v2.1.24 added 3.5.2017 'cmdsearch' : 'Suchen', 'cmdup' : 'In übergeordneten Ordner wechseln', 'cmdupload' : 'Datei hochladen', 'cmdview' : 'Ansehen', 'cmdresize' : 'Größe ändern & drehen', 'cmdsort' : 'Sortieren', 'cmdnetmount' : 'Verbinde mit Netzwerkspeicher', // added 18.04.2012 'cmdnetunmount': 'Abhängen', // from v2.1 added 30.04.2012 'cmdplaces' : 'Favoriten', // added 28.12.2014 'cmdchmod' : 'Berechtigung ändern', // from v2.1 added 20.6.2015 'cmdopendir' : 'Einen Ordner öffnen', // from v2.1 added 13.1.2016 'cmdcolwidth' : 'Spaltenbreite zurücksetzen', // from v2.1.13 added 12.06.2016 'cmdfullscreen': 'Vollbild', // from v2.1.15 added 03.08.2016 'cmdmove' : 'Verschieben', // from v2.1.15 added 21.08.2016 'cmdempty' : 'Ordner Leeren', // from v2.1.25 added 22.06.2017 'cmdundo' : 'Rückgängig', // from v2.1.27 added 31.07.2017 'cmdredo' : 'Wiederholen', // from v2.1.27 added 31.07.2017 'cmdpreference': 'Einstellungen', // from v2.1.27 added 03.08.2017 'cmdselectall' : 'Alle auswählen', // from v2.1.28 added 15.08.2017 'cmdselectnone': 'Keine auswählen', // from v2.1.28 added 15.08.2017 'cmdselectinvert': 'Auswahl rückgängig machen', // from v2.1.28 added 15.08.2017 'cmdopennew' : 'In neuem Fenster öffnen', // from v2.1.38 added 3.4.2018 'cmdhide' : 'Verstecken', // from v2.1.41 added 13.12.2019 /*********************************** buttons ***********************************/ 'btnClose' : 'Schließen', 'btnSave' : 'Speichern', 'btnRm' : 'Entfernen', 'btnApply' : 'Anwenden', 'btnCancel' : 'Abbrechen', 'btnNo' : 'Nein', 'btnYes' : 'Ja', 'btnDiscard': 'Änderungen verwerfen', 'btnMount' : 'Verbinden', // added 18.04.2012 'btnApprove': 'Gehe zu $1 und genehmige', // from v2.1 added 26.04.2012 'btnUnmount': 'Auswerfen', // from v2.1 added 30.04.2012 'btnConv' : 'Konvertieren', // from v2.1 added 08.04.2014 'btnCwd' : 'Arbeitspfad', // from v2.1 added 22.5.2015 'btnVolume' : 'Partition', // from v2.1 added 22.5.2015 'btnAll' : 'Alle', // from v2.1 added 22.5.2015 'btnMime' : 'MIME-Typ', // from v2.1 added 22.5.2015 'btnFileName':'Dateiname', // from v2.1 added 22.5.2015 'btnSaveClose': 'Speichern & Schließen', // from v2.1 added 12.6.2015 'btnBackup' : 'Sicherung', // fromv2.1 added 28.11.2015 'btnRename' : 'Umbenennen', // from v2.1.24 added 6.4.2017 'btnRenameAll' : 'Alle Umbenennen', // from v2.1.24 added 6.4.2017 'btnPrevious' : 'Zurück ($1/$2)', // from v2.1.24 added 11.5.2017 'btnNext' : 'Weiter ($1/$2)', // from v2.1.24 added 11.5.2017 'btnSaveAs' : 'Speichern als', // from v2.1.25 added 24.5.2017 /******************************** notifications ********************************/ 'ntfopen' : 'Öffne Ordner', 'ntffile' : 'Öffne Datei', 'ntfreload' : 'Ordnerinhalt neu', 'ntfmkdir' : 'Erstelle Ordner', 'ntfmkfile' : 'Erstelle Dateien', 'ntfrm' : 'Lösche Dateien', 'ntfcopy' : 'Kopiere Dateien', 'ntfmove' : 'Verschiebe Dateien', 'ntfprepare' : 'Kopiervorgang initialisieren', 'ntfrename' : 'Benenne Dateien um', 'ntfupload' : 'Dateien hochladen', 'ntfdownload' : 'Dateien herunterladen', 'ntfsave' : 'Speichere Datei', 'ntfarchive' : 'Erstelle Archiv', 'ntfextract' : 'Entpacke Dateien', 'ntfsearch' : 'Suche', 'ntfresize' : 'Bildgrößen ändern', 'ntfsmth' : 'Bin beschäftigt ..', 'ntfloadimg' : 'Lade Bild ..', 'ntfnetmount' : 'Mit Netzwerkspeicher verbinden', // added 18.04.2012 'ntfnetunmount': 'Netzwerkspeicher auswerfen', // from v2.1 added 30.04.2012 'ntfdim' : 'Bildgröße erfassen', // added 20.05.2013 'ntfreaddir' : 'Lese Ordnerinformationen', // from v2.1 added 01.07.2013 'ntfurl' : 'Hole URL von Link', // from v2.1 added 11.03.2014 'ntfchmod' : 'Ändere Dateiberechtigungen', // from v2.1 added 20.6.2015 'ntfpreupload': 'Upload-Dateinamen überprüfen', // from v2.1 added 31.11.2015 'ntfzipdl' : 'Erstelle Datei zum Download', // from v2.1.7 added 23.1.2016 'ntfparents' : 'Beziehe Pfad Informationen', // from v2.1.17 added 2.11.2016 'ntfchunkmerge': 'Upload läuft', // from v2.1.17 added 2.11.2016 'ntftrash' : 'Bewege in den Mülleimer', // from v2.1.24 added 2.5.2017 'ntfrestore' : 'Wiederherstellung aus Mülleimer', // from v2.1.24 added 3.5.2017 'ntfchkdir' : 'Prüfe Zielordner', // from v2.1.24 added 3.5.2017 'ntfundo' : 'Vorherige Operation rückgängig machen', // from v2.1.27 added 31.07.2017 'ntfredo' : 'Wiederherstellen', // from v2.1.27 added 31.07.2017 'ntfchkcontent' : 'Überprüfe Inhalte', // from v2.1.41 added 13.12.2019 /*********************************** volumes *********************************/ 'volume_Trash' : 'Mülleimer', //from v2.1.24 added 29.4.2017 /************************************ dates **********************************/ 'dateUnknown' : 'unbekannt', 'Today' : 'Heute', 'Yesterday' : 'Gestern', 'msJan' : 'Jan', 'msFeb' : 'Feb', 'msMar' : 'Mär', 'msApr' : 'Apr', 'msMay' : 'Mai', 'msJun' : 'Jun', 'msJul' : 'Jul', 'msAug' : 'Aug', 'msSep' : 'Sep', 'msOct' : 'Okt', 'msNov' : 'Nov', 'msDec' : 'Dez', 'January' : 'Januar', 'February' : 'Februar', 'March' : 'März', 'April' : 'April', 'May' : 'Mai', 'June' : 'Juni', 'July' : 'Juli', 'August' : 'August', 'September' : 'September', 'October' : 'Oktober', 'November' : 'November', 'December' : 'Dezember', 'Sunday' : 'Sonntag', 'Monday' : 'Montag', 'Tuesday' : 'Dienstag', 'Wednesday' : 'Mittwoch', 'Thursday' : 'Donnerstag', 'Friday' : 'Freitag', 'Saturday' : 'Samstag', 'Sun' : 'So', 'Mon' : 'Mo', 'Tue' : 'Di', 'Wed' : 'Mi', 'Thu' : 'Do', 'Fri' : 'Fr', 'Sat' : 'Sa', /******************************** sort variants ********************************/ 'sortname' : 'nach Name', 'sortkind' : 'nach Art', 'sortsize' : 'nach Größe', 'sortdate' : 'nach Datum', 'sortFoldersFirst' : 'Ordner zuerst', 'sortperm' : 'nach Berechtigung', // from v2.1.13 added 13.06.2016 'sortmode' : 'nach Modus', // from v2.1.13 added 13.06.2016 'sortowner' : 'nach Besitzer', // from v2.1.13 added 13.06.2016 'sortgroup' : 'nach Gruppe', // from v2.1.13 added 13.06.2016 'sortAlsoTreeview' : 'auch Baumansicht', // from v2.1.15 added 01.08.2016 /********************************** new items **********************************/ 'untitled file.txt' : 'Neues Textdokument (.txt)', // added 10.11.2015 'untitled folder' : 'Neuer Ordner', // added 10.11.2015 'Archive' : 'Neues Archiv', // from v2.1 added 10.11.2015 'untitled file' : 'Neue Datei $1', // from v2.1.41 added 13.12.2019 'extentionfile' : '$1: Datei', // from v2.1.41 added 13.12.2019 'extentiontype' : '$1: $2', // from v2.1.43 added 13.12.2018 /********************************** messages **********************************/ 'confirmReq' : 'Bestätigung benötigt', 'confirmRm' : 'Sollen die Dateien gelöscht werden?
    Vorgang ist endgültig!', 'confirmRepl' : 'Datei ersetzen?', 'confirmRest' : 'Vorhandenes Element durch das Element aus Mülleimer ersetzen?', // fromv2.1.24 added 5.5.2017 'confirmConvUTF8' : 'Nicht UTF-8 kodiert
    Zu UTF-8 konvertieren?
    Inhalte werden zu UTF-8 konvertiert bei Speicherung.', // from v2.1 added 08.04.2014 'confirmNonUTF8' : 'Die Zeichencodierung dieser Datei konnte nicht erkannt werden. Es muss vorübergehend in UTF-8 zur Bearbeitung konvertiert werden.
    Bitte eine Zeichenkodierung dieser Datei auswählen.', // from v2.1.19 added 28.11.2016 'confirmNotSave' : 'Die Datei wurde geändert.
    Änderungen gehen verloren, wenn nicht gespeichert wird.', // from v2.1 added 15.7.2015 'confirmTrash' : 'Sicher diese Elemente in den Mülleimer verschieben?', // from v2.1.24 added 29.4.2017 'confirmMove' : 'Sicher alle Elemente nach "$1" verschieben?', // from v2.1.50 added 13.12.2019 'apllyAll' : 'Alles bestätigen', 'name' : 'Name', 'size' : 'Größe', 'perms' : 'Berechtigungen', 'modify' : 'Geändert', 'kind' : 'Typ', 'read' : 'Lesen', 'write' : 'Schreiben', 'noaccess' : 'Kein Zugriff', 'and' : 'und', 'unknown' : 'unbekannt', 'selectall' : 'Alle Dateien auswählen', 'selectfiles' : 'Dateien auswählen', 'selectffile' : 'Erste Datei auswählen', 'selectlfile' : 'Letzte Datei auswählen', 'viewlist' : 'Spaltenansicht', 'viewicons' : 'Symbolansicht', 'viewSmall' : 'Kleine Icons', // from v2.1.39 added 13.12.2019 'viewMedium' : 'Medium Icons', // from v2.1.39 added 13.12.2019 'viewLarge' : 'Große Icons', // from v2.1.39 added 13.12.2019 'viewExtraLarge' : 'Extragroße Icons', // from v2.1.39 added 13.12.2019 'places' : 'Favoriten', 'calc' : 'Berechne', 'path' : 'Pfad', 'aliasfor' : 'Verknüpfung zu', 'locked' : 'Gesperrt', 'dim' : 'Bildgröße', 'files' : 'Dateien', 'folders' : 'Ordner', 'items' : 'Objekte', 'yes' : 'ja', 'no' : 'nein', 'link' : 'Link', 'searcresult' : 'Suchergebnisse', 'selected' : 'Objekte ausgewählt', 'about' : 'Über', 'shortcuts' : 'Tastenkombinationen', 'help' : 'Hilfe', 'webfm' : 'Web-Dateiverwaltung', 'ver' : 'Version', 'protocolver' : 'Protokoll-Version', 'homepage' : 'Projekt-Webseite', 'docs' : 'Dokumentation', 'github' : 'Forke uns auf Github', 'twitter' : 'Folge uns auf twitter', 'facebook' : 'Begleite uns auf facebook', 'team' : 'Team', 'chiefdev' : 'Chefentwickler', 'developer' : 'Entwickler', 'contributor' : 'Unterstützer', 'maintainer' : 'Maintainer', 'translator' : 'Übersetzer', 'icons' : 'Icons', 'dontforget' : 'und vergiss nicht .. morgen ist auch noch ein Tag ..', 'shortcutsof' : 'Tastenkombinationen deaktiviert', 'dropFiles' : 'Dateien hier ablegen', 'or' : 'oder', 'selectForUpload' : 'Dateien zum Upload auswählen', 'moveFiles' : 'Dateien verschieben', 'copyFiles' : 'Dateien kopieren', 'restoreFiles' : 'Elemente wiederherstellen', // from v2.1.24 added 5.5.2017 'rmFromPlaces' : 'Lösche von Favoriten', 'aspectRatio' : 'Seitenverhältnis', 'scale' : 'Maßstab', 'width' : 'Breite', 'height' : 'Höhe', 'resize' : 'Größe ändern', 'crop' : 'Zuschneiden', 'rotate' : 'Drehen', 'rotate-cw' : 'Drehe 90° im Uhrzeigersinn', 'rotate-ccw' : 'Drehe 90° gegen Uhrzeigersinn', 'degree' : '°', 'netMountDialogTitle' : 'verbinde Netzwerkspeicher', // added 18.04.2012 'protocol' : 'Protokoll', // added 18.04.2012 'host' : 'Host', // added 18.04.2012 'port' : 'Port', // added 18.04.2012 'user' : 'Benutzer', // added 18.04.2012 'pass' : 'Passwort', // added 18.04.2012 'confirmUnmount' : 'Soll "$1" ausgehängt werden', // from v2.1 added 30.04.2012 'dropFilesBrowser': 'Dateien in den Browser ziehen', // from v2.1 added 30.05.2012 'dropPasteFiles' : 'Dateien hier loslassen', // from v2.1 added 07.04.2014 'encoding' : 'Kodierung', // from v2.1 added 19.12.2014 'locale' : 'Lokal', // from v2.1 added 19.12.2014 'searchTarget' : 'Ziel: $1', // from v2.1 added 22.5.2015 'searchMime' : 'Suche nach MIME-Typ', // from v2.1 added 22.5.2015 'owner' : 'Besitzer', // from v2.1 added 20.6.2015 'group' : 'Gruppe', // from v2.1 added 20.6.2015 'other' : 'Andere', // from v2.1 added 20.6.2015 'execute' : 'Ausführen', // from v2.1 added 20.6.2015 'perm' : 'Berechtigung', // from v2.1 added 20.6.2015 'mode' : 'Modus', // from v2.1 added 20.6.2015 'emptyFolder' : 'Der Ordner ist leer', // from v2.1.6 added 30.12.2015 'emptyFolderDrop' : 'Der Ordner ist leer\\A Elemente durch Ziehen hinzufügen', // from v2.1.6 added 30.12.2015 'emptyFolderLTap' : 'Der Ordner ist leer\\A Elemente durch langes Tippen hinzufügen', // from v2.1.6 added 30.12.2015 'quality' : 'Qualität', // from v2.1.6 added 5.1.2016 'autoSync' : 'Automatische Synchronisation', // from v2.1.6 added 10.1.2016 'moveUp' : 'Nach oben bewegen', // from v2.1.6 added 18.1.2016 'getLink' : 'URL-Link holen', // from v2.1.7 added 9.2.2016 'selectedItems' : 'Ausgewählte Objekte ($1)', // from v2.1.7 added 2.19.2016 'folderId' : 'Ordner-ID', // from v2.1.10 added 3.25.2016 'offlineAccess' : 'Offline-Zugriff erlauben', // from v2.1.10 added 3.25.2016 'reAuth' : 'Erneut anmelden', // from v2.1.10 added 3.25.2016 'nowLoading' : 'Wird geladen...', // from v2.1.12 added 4.26.2016 'openMulti' : 'mehrere Dateien öffnen', // from v2.1.12 added 5.14.2016 'openMultiConfirm': 'Es wird versucht die $1 Dateien zu öffnen .. sicher im Browser öffnen?', // from v2.1.12 added 5.14.2016 'emptySearch' : 'Kein Suchergebnis', // from v2.1.12 added 5.16.2016 'editingFile' : 'Datei wird bearbeitet.', // from v2.1.13 added 6.3.2016 'hasSelected' : '$1 Objekt(e) ausgewählt.', // from v2.1.13 added 6.3.2016 'hasClipboard' : '$1 Objekte im Clipboard.', // from v2.1.13 added 6.3.2016 'incSearchOnly' : 'Inkrementelle Suche bezieht sich nur auf die aktuelle Ansicht.', // from v2.1.13 added 6.30.2016 'reinstate' : 'Wiederherstellen', // from v2.1.15 added 3.8.2016 'complete' : '$1 abgeschlossen', // from v2.1.15 added 21.8.2016 'contextmenu' : 'Kontextmenü', // from v2.1.15 added 9.9.2016 'pageTurning' : 'Seite umblättern', // from v2.1.15 added 10.9.2016 'volumeRoots' : 'Volume-Rootverzeichnisse', // from v2.1.16 added 16.9.2016 'reset' : 'Neustart', // from v2.1.16 added 1.10.2016 'bgcolor' : 'Hintergrund Farbe', // from v2.1.16 added 1.10.2016 'colorPicker' : 'Farbauswahl', // from v2.1.16 added 1.10.2016 '8pxgrid' : '8px Raster', // from v2.1.16 added 4.10.2016 'enabled' : 'Ein', // from v2.1.16 added 4.10.2016 'disabled' : 'Aus', // from v2.1.16 added 4.10.2016 'emptyIncSearch' : 'Keine Ergebnisse in der aktuellen Anzeige', // from v2.1.16 added 5.10.2016 'emptyLetSearch' : 'Die Ergebnisse der ersten Buchstabensuche sind in der aktuellen Ansicht leer.', // from v2.1.23 added 24.3.2017 'textLabel' : 'Text Bezeichnung', // from v2.1.17 added 13.10.2016 'minsLeft' : '$1 Minuten übrig', // from v2.1.17 added 13.11.2016 'openAsEncoding' : 'Wiedereröffnen mit ausgewählter Codierung', // from v2.1.19 added 2.12.2016 'saveAsEncoding' : 'Speichern mit der gewählten Kodierung', // from v2.1.19 added 2.12.2016 'selectFolder' : 'Verzeichnis auswählen', // from v2.1.20 added 13.12.2016 'firstLetterSearch': 'Erster Buchstabe suche', // from v2.1.23 added 24.3.2017 'presets' : 'Voreinstellungen', // from v2.1.25 added 26.5.2017 'tooManyToTrash' : 'Zu viele Elemente auf einmal für den Mülleimer.', // from v2.1.25 added 9.6.2017 'TextArea' : 'Textbereich', // from v2.1.25 added 14.6.2017 'folderToEmpty' : 'Leere Ordner "$1".', // from v2.1.25 added 22.6.2017 'filderIsEmpty' : 'Es befinden sich keine Elemente im Ordner "$1".', // from v2.1.25 added 22.6.2017 'preference' : 'Einstellungen', // from v2.1.26 added 28.6.2017 'language' : 'Spracheinstellungen', // from v2.1.26 added 28.6.2017 'clearBrowserData': 'Initialisiere die Einstellungen, welche in diesem Browser gespeichert sind', // from v2.1.26 added 28.6.2017 'toolbarPref' : 'Toolbareinstellung', // from v2.1.27 added 2.8.2017 'charsLeft' : '... $1 Zeichen übrig', // from v2.1.29 added 30.8.2017 'sum' : 'Summe', // from v2.1.29 added 28.9.2017 'roughFileSize' : 'Ungefähre Dateigröße', // from v2.1.30 added 2.11.2017 'autoFocusDialog' : 'Fokussierung auf das Element Dialog mit Mouseover', // from v2.1.30 added 2.11.2017 'select' : 'Auswählen', // from v2.1.30 added 23.11.2017 'selectAction' : 'Aktion bei der Auswahl der Datei', // from v2.1.30 added 23.11.2017 'useStoredEditor' : 'Öffnen mit dem zuletzt verwendeten Editor', // from v2.1.30 added 23.11.2017 'selectinvert' : 'Auswahl umkehren', // from v2.1.30 added 25.11.2017 'renameMultiple' : 'Sicher $1 ausgewählte Elemente in $2 umbenennen?
    Rückgängig nicht möglich!', // from v2.1.31 added 4.12.2017 'batchRename' : 'Stapelumbenennung', // from v2.1.31 added 8.12.2017 'plusNumber' : '+ Nummer', // from v2.1.31 added 8.12.2017 'asPrefix' : 'Vorzeichen hinzufügen', // from v2.1.31 added 8.12.2017 'asSuffix' : 'Nachzeichen hinzufügen', // from v2.1.31 added 8.12.2017 'changeExtention' : 'Erweiterung ändern', // from v2.1.31 added 8.12.2017 'columnPref' : 'Spalteneinstellungen (Listenansicht)', // from v2.1.32 added 6.2.2018 'reflectOnImmediate' : 'Alle Änderungen werden sofort im Archiv angewendet.', // from v2.1.33 added 2.3.2018 'reflectOnUnmount' : 'Alle Änderungen werden nicht angewendet bis dieses Volume entfernt wird.', // from v2.1.33 added 2.3.2018 'unmountChildren' : 'Die folgenden Datenträger, die auf diesem Datenträger eingehängt sind, werden ebenfalls ausgehängt. Sicher dass alle aushängt werden sollen?', // from v2.1.33 added 5.3.2018 'selectionInfo' : 'Auswahl Info', // from v2.1.33 added 7.3.2018 'hashChecker' : 'Datei-Hash-Algorithmen', // from v2.1.33 added 10.3.2018 'infoItems' : 'Info-Elemente (Auswahl-Info-Panel)', // from v2.1.38 added 28.3.2018 'pressAgainToExit': 'Drücken Sie erneut, um zu beenden.', // from v2.1.38 added 1.4.2018 'toolbar' : 'Symbolleiste', // from v2.1.38 added 4.4.2018 'workspace' : 'Arbeitsplatz', // from v2.1.38 added 4.4.2018 'dialog' : 'Dialog', // from v2.1.38 added 4.4.2018 'all' : 'Alle', // from v2.1.38 added 4.4.2018 'iconSize' : 'Icongröße (Symbolansicht)', // form v2.1.39 added 7.5.2018 'editorMaximized' : 'Öffne Editorfenster in voller Größe', // from v2.1.40 added 30.6.2018 'editorConvNoApi' : 'Aktuell keine API zur Bearbeitung verfügbar, bitte auf Webseite bearbeiten', //from v2.1.40 added 13.12.2019 'editorConvNeedUpload' : 'Um zu speichern nach der Bearbeitung Element entweder mit URL hochladen oder mit herunter geladener Datei', // from v2.1.40 added 13.12.2019 'convertOn' : 'Bearbeiten auf Seite $1', // from v2.1.40 added 13.12.2019 'integrations' : 'Integrationen', // from v2.1.40 added 13.12.2019 'integrationWith' : 'Diese Software hat folgende externe Dienste integriert. Vor Anwendung bitte die jeweiligen Nutzungsbedingungen usw. beachten', // from v2.1.40 added 13.12.2019 'showHidden' : 'Zeige versteckte Elemente', // from v2.1.41 added 13.12.2019 'hideHidden' : 'Verberge versteckte Elemente', // from v2.1.41 added 13.12.2019 'toggleHidden' : 'Zeige/Verberge versteckte Elemente', // from v2.1.41 added 13.12.2019 'makefileTypes' : 'Dateiarten bei "Neue Datei" aktivieren', // from v2.1.41 added 13.12.2019 'typeOfTextfile' : 'Art der Textdatei', // from v2.1.41 added 13.12.2019 'add' : 'Neu', // from v2.1.41 added 13.12.2019 'theme' : 'Thema', // from v2.1.43 added 13.12.2019 'default' : 'Standard', // from v2.1.43 added 13.12.2019 'description' : 'Beschreibung', // from v2.1.43 added 13.12.2019 'website' : 'Webseite', // from v2.1.43 added 13.12.2019 'author' : 'Autor', // from v2.1.43 added 13.12.2019 'email' : 'Email', // from v2.1.43 added 13.12.2019 'license' : 'Lizenz', // from v2.1.43 added 13.12.2019 'exportToSave' : 'Dieses Element kann nicht gespeichert werden. Um Änderungen nicht zu verlieren, muss es auf den lokalen PC exportiert werden', // from v2.1.44 added 13.12.2019 'dblclickToSelect': 'Doppelt auf Datei klicken um auszuwählen', // from v2.1.47 added 13.12.2019 'useFullscreen' : 'Gesamter Bildschirm', // from v2.1.47 added 13.12.2019 /********************************** mimetypes **********************************/ 'kindUnknown' : 'Unbekannt', 'kindRoot' : 'Stammverzeichnis', // from v2.1.16 added 16.10.2016 'kindFolder' : 'Ordner', 'kindSelects' : 'Auswahlkriterien', // from v2.1.29 added 29.8.2017 'kindAlias' : 'Verknüpfung', 'kindAliasBroken' : 'Defekte Verknüpfung', // applications 'kindApp' : 'Programm', 'kindPostscript' : 'Postscript-Dokument', 'kindMsOffice' : 'MS Office-Dokument', 'kindMsWord' : 'MS Word-Dokument', 'kindMsExcel' : 'MS Excel-Dokument', 'kindMsPP' : 'MS Powerpoint-Präsentation', 'kindOO' : 'Open Office-Dokument', 'kindAppFlash' : 'Flash', 'kindPDF' : 'Portables Dokumentenformat (PDF)', 'kindTorrent' : 'Bittorrent-Datei', 'kind7z' : '7z-Archiv', 'kindTAR' : 'TAR-Archiv', 'kindGZIP' : 'GZIP-Archiv', 'kindBZIP' : 'BZIP-Archiv', 'kindXZ' : 'XZ-Archiv', 'kindZIP' : 'ZIP-Archiv', 'kindRAR' : 'RAR-Archiv', 'kindJAR' : 'Java JAR-Datei', 'kindTTF' : 'True Type-Schrift', 'kindOTF' : 'Open Type-Schrift', 'kindRPM' : 'RPM-Paket', // fonts 'kindFont' : 'Schriftart', 'kindSFNT' : 'SFNT-Schrift', 'kindEOT' : 'Embedded-Open-Type-Schrift', 'kindWOFF' : 'Web-Open-Font-Format-Schrift', 'kindWOFF2' : 'Web-Open-Font-Format-2-Schrift', // texts 'kindText' : 'Text-Dokument', 'kindTextPlain' : 'Text-Dokument', 'kindPHP' : 'PHP-Quelltext', 'kindCSS' : 'CSS Stilvorlage', 'kindHTML' : 'HTML-Dokument', 'kindJS' : 'Javascript-Quelltext', 'kindRTF' : 'Formatierte Textdatei', 'kindC' : 'C-Quelltext', 'kindCHeader' : 'C Header-Quelltext', 'kindCPP' : 'C++ Quelltext', 'kindCPPHeader' : 'C++ Header-Quelltext', 'kindShell' : 'Unix-Shell-Skript', 'kindPython' : 'Python-Quelltext', 'kindJava' : 'Java-Quelltext', 'kindRuby' : 'Ruby-Quelltext', 'kindPerl' : 'Perl Script', 'kindSQL' : 'SQL-Quelltext', 'kindXML' : 'XML-Dokument', 'kindAWK' : 'AWK-Quelltext', 'kindCSV' : 'Kommagetrennte Daten', 'kindDOCBOOK' : 'Docbook XML-Dokument', 'kindMarkdown' : 'Markdown-Text', // added 20.7.2015 // images 'kindImage' : 'Bild', 'kindBMP' : 'Bitmap-Bild', 'kindJPEG' : 'JPEG-Bild', 'kindGIF' : 'GIF-Bild', 'kindPNG' : 'PNG-Bild', 'kindTIFF' : 'TIFF-Bild', 'kindTGA' : 'TGA-Bild', 'kindPSD' : 'Adobe Photoshop-Dokument', 'kindXBITMAP' : 'X Bitmap-Bild', 'kindPXM' : 'Pixelmator-Bild', // media 'kindAudio' : 'Audiodatei', 'kindAudioMPEG' : 'MPEG Audio', 'kindAudioMPEG4' : 'MPEG-4 Audio', 'kindAudioMIDI' : 'MIDI Audio', 'kindAudioOGG' : 'Ogg Vorbis Audio', 'kindAudioWAV' : 'WAV Audio', 'AudioPlaylist' : 'MP3-Playlist', 'kindVideo' : 'Videodatei', 'kindVideoDV' : 'DV Film', 'kindVideoMPEG' : 'MPEG Film', 'kindVideoMPEG4' : 'MPEG4 Film', 'kindVideoAVI' : 'AVI Film', 'kindVideoMOV' : 'QuickTime Film', 'kindVideoWM' : 'Windows Media Film', 'kindVideoFlash' : 'Flash Film', 'kindVideoMKV' : 'Matroska Film', 'kindVideoOGG' : 'Ogg Film' } }; })); /** * Greek translation * @author yawd , Romanos * @version 2014-12-19 */ (function(root, factory) { if (typeof define === 'function' && define.amd) { define(['elfinder'], factory); } else if (typeof exports !== 'undefined') { module.exports = factory(require('elfinder')); } else { factory(root.elFinder); } }(this, function(elFinder) { elFinder.prototype.i18.el = { translator : 'yawd <ingo@yawd.eu>', language : 'Ελληνικά', direction : 'ltr', dateFormat : 'd.m.Y H:i', fancyDateFormat : '$1 H:i', messages : { /********************************** errors **********************************/ 'error' : 'Πρόβλημα', 'errUnknown' : 'Άγνωστο πρόβλημα.', 'errUnknownCmd' : 'Άγνωστη εντολή.', 'errJqui' : 'Μη έγκυρη ρύθμιση του jQuery UI. Τα components "selectable", "draggable" και "droppable" πρέπει να περιληφούν.', 'errNode' : 'το elFinder χρειάζεται να έχει δημιουργηθεί το DOM Element.', 'errURL' : 'Μη έγκυρες ρυθμίσεις για το elFinder! η επιλογή URL δεν έχει οριστεί.', 'errAccess' : 'Απαγορεύεται η πρόσβαση.', 'errConnect' : 'Δεν ήταν δυνατή η σύνδεση με το backend.', 'errAbort' : 'Η σύνδεση εγκαταλείφθηκε.', 'errTimeout' : 'Η σύνδεση έληξε.', 'errNotFound' : 'Δε βρέθηκε το backend.', 'errResponse' : 'Μή έγκυρη απάντηση από το backend.', 'errConf' : 'Μη έγκυρες ρυθμίσεις για το backend.', 'errJSON' : 'Το PHP JSON module δεν είναι εγκατεστημένο.', 'errNoVolumes' : 'Δεν βρέθηκαν αναγνώσιμα volumes.', 'errCmdParams' : 'Μη έγκυρες παράμετροι για την εντολή "$1".', 'errDataNotJSON' : 'Τα δεδομένα δεν είναι JSON.', 'errDataEmpty' : 'Τα δεδομένα είναι άδεια.', 'errCmdReq' : 'Το Backend request χρειάζεται όνομα εντολής.', 'errOpen' : 'Δεν ήταν δυνατό να ανοίξει το "$1".', 'errNotFolder' : 'Το αντικείμενο δεν είναι φάκελος.', 'errNotFile' : 'Το αντικείμενο δεν είναι αρχείο.', 'errRead' : 'Δεν ήταν δυνατόν να διαβαστεί το "$1".', 'errWrite' : 'Δεν ήταν δυνατή η εγγραφή στο "$1".', 'errPerm' : 'Απαγορεύεται η πρόσβαση.', 'errLocked' : '"$1" είναι κλειδωμένο και δεν μπορεί να μετονομαστεί, μετακινηθεί ή διαγραφεί.', 'errExists' : 'Το αρχείο με όνομα "$1" υπάρχει ήδη.', 'errInvName' : 'Μη έγκυρο όνομα αρχείου.', 'errFolderNotFound' : 'Ο φάκελος δε βρέθηκε.', 'errFileNotFound' : 'Το αρχείο δε βρέθηκε.', 'errTrgFolderNotFound' : 'Ο φάκελος "$1" δε βρέθηκε.', 'errPopup' : 'Το πρόγραμμα πλήγησης εμπόδισε το άνοιγμα αναδυόμενου παραθύρου. Για ανοίξετε το αρχείο ενεργοποιήστε το στις επιλογές του περιηγητή.', 'errMkdir' : 'Η δυμιουργία του φακέλου "$1" δεν ήταν δυνατή.', 'errMkfile' : 'Η δημιουργία του αρχείου "$1" δεν ήταν δυνατή.', 'errRename' : 'Η μετονομασία του αρχείου "$1" δεν ήταν δυνατή.', 'errCopyFrom' : 'Δεν επιτρέπεται η αντιγραφή αρχείων από το volume "$1".', 'errCopyTo' : 'Δεν επιτρέπεται η αντιγραφή αρχείων στο volume "$1".', 'errUpload' : 'Πρόβλημα κατά το upload.', 'errUploadFile' : 'Το αρχείο "$1" δεν μπόρεσε να γίνει upload.', 'errUploadNoFiles' : 'Δεν βρέθηκαν αρχεία για upload.', 'errUploadTotalSize' : 'Τα δεδομένα υπερβαίνουν το επιτρεπόμενο μέγιστο μέγεθος δεδομένων.', 'errUploadFileSize' : 'Το αρχείο υπερβαίνει το επιτρεπόμενο μέγιστο μέγεθος.', 'errUploadMime' : 'Ο τύπος αρχείου δεν επιτρέπεται.', 'errUploadTransfer' : 'Πρόβλημα μεταφοράς για το "$1".', 'errNotReplace' : 'Object "$1" already exists at this location and can not be replaced by object with another type.', 'errReplace' : 'Unable to replace "$1".', 'errSave' : 'Το "$1" δεν ήταν δυνατόν να αποθηκευτεί.', 'errCopy' : 'Δεν ήταν δυνατή η αντιγραφή του "$1".', 'errMove' : 'Δεν ήταν δυνατή η μετακίνηση του "$1".', 'errCopyInItself' : 'Δεν είναι δυνατή η αντιγραφή του "$1" στον εαυτό του.', 'errRm' : 'Δεν ήταν δυνατή η αφαίρεση του "$1".', 'errRmSrc' : 'Unable remove source file(s).', 'errExtract' : 'Δεν ήταν δυνατή η ανάγνωση των αρχείων από "$1".', 'errArchive' : 'Δεν ήταν δυνατή η δημιουργία του αρχείου.', 'errArcType' : 'Ο τύπος αρχείου δεν υποστηρίζεται.', 'errNoArchive' : 'Το αρχείο δεν είναι έγκυρο ή δεν υποστηρίζεται ο τύπος του.', 'errCmdNoSupport' : 'Το backend δεν υποστηρίζει αυτή την εντολή.', 'errReplByChild' : 'Ο φάκελος “$1” δεν μπορεί να αντικατασταθεί από οποιοδήποτε αρχείο περιέχεται σε αυτόν.', 'errArcSymlinks' : 'Για λόγους ασφαλείας δεν είναι δυνατόν να διαβαστούν αρχεία που περιέχουν symlinks orη αρχεία με μη επιτρεπτά ονόματα.', // edited 24.06.2012 'errArcMaxSize' : 'Το μέγεθος του αρχείου υπερβαίνει το μέγιστο επιτρεπτό όριο.', 'errResize' : 'Δεν ήταν δυνατή η αλλαγή μεγέθους του "$1".', 'errResizeDegree' : 'Invalid rotate degree.', 'errResizeRotate' : 'Unable to rotate image.', 'errResizeSize' : 'Invalid image size.', 'errResizeNoChange' : 'Image size not changed.', 'errUsupportType' : 'Ο τύπος αρχείου δεν υποστηρίζεται.', 'errNotUTF8Content' : 'Το αρχείο "$1" δεν είναι UTF-8 και δεν μπορεί να επεξεργασθεί.', // added 9.11.2011 'errNetMount' : 'Δεν ήταν δυνατή η φόρτωση του "$1".', // added 17.04.2012 'errNetMountNoDriver' : 'Μη υποστηριζόμενο πρωτόκολο.', // added 17.04.2012 'errNetMountFailed' : 'Η φόρτωση απέτυχε.', // added 17.04.2012 'errNetMountHostReq' : 'Απαιτείται host εξυπηρετητής.', // added 18.04.2012 'errSessionExpires' : 'Your session has expired due to inactivity.', 'errCreatingTempDir' : 'Unable to create temporary directory: "$1"', 'errFtpDownloadFile' : 'Unable to download file from FTP: "$1"', 'errFtpUploadFile' : 'Unable to upload file to FTP: "$1"', 'errFtpMkdir' : 'Unable to create remote directory on FTP: "$1"', 'errArchiveExec' : 'Error while archiving files: "$1"', 'errExtractExec' : 'Error while extracting files: "$1"', /******************************* commands names ********************************/ 'cmdarchive' : 'Δημιουργία archive αρχείου', 'cmdback' : 'Πίσω', 'cmdcopy' : 'Αντιγραφή', 'cmdcut' : 'Αφαίρεση', 'cmddownload' : 'Μεταφόρτωση', 'cmdduplicate' : 'Αντίγραφο', 'cmdedit' : 'Επεξεργασία αρχείου', 'cmdextract' : 'Εξαγωγή αρχείων από archive', 'cmdforward' : 'Προώθηση', 'cmdgetfile' : 'Επιλέξτε αρχεία', 'cmdhelp' : 'Σχετικά με αυτό το λογισμικό', 'cmdhome' : 'Home', 'cmdinfo' : 'Πληροφορίες', 'cmdmkdir' : 'Νέος φάκελος', 'cmdmkfile' : 'Νέος αρχείο', 'cmdopen' : 'Άνοιγμα', 'cmdpaste' : 'Επικόλληση', 'cmdquicklook' : 'Προεπισκόπηση', 'cmdreload' : 'Ανανέωση', 'cmdrename' : 'Μετονομασία', 'cmdrm' : 'Διαγραφή', 'cmdsearch' : 'Έυρεση αρχείων', 'cmdup' : 'Μετάβαση στο γονικό φάκελο', 'cmdupload' : 'Ανέβασμα αρχείων', 'cmdview' : 'Προβολή', 'cmdresize' : 'Αλλαγή μεγέθους εικόνας', 'cmdsort' : 'Ταξινόμηση', 'cmdnetmount' : 'Mount network volume', /*********************************** buttons ***********************************/ 'btnClose' : 'Κλείσιμο', 'btnSave' : 'Αποθήκευση', 'btnRm' : 'Αφαίρεση', 'btnApply' : 'Εφαρμογή', 'btnCancel' : 'Ακύρωση', 'btnNo' : 'Όχι', 'btnYes' : 'Ναι', 'btnDiscard': 'Discard changes', 'btnMount' : 'Mount', /******************************** notifications ********************************/ 'ntfopen' : 'Άνοιγμα φακέλου', 'ntffile' : 'Άνοιγμα αρχείου', 'ntfreload' : 'Ανανέωση περιεχομένων φακέλου', 'ntfmkdir' : 'Δημιουργία φακέλου', 'ntfmkfile' : 'Δημιουργία αρχείων', 'ntfrm' : 'Διαγραφή αρχείων', 'ntfcopy' : 'Αντιγραφή αρχείων', 'ntfmove' : 'Μετακίνηση αρχείων', 'ntfprepare' : 'Προετοιμασία αντιγραφής αρχείων', 'ntfrename' : 'Μετονομασία αρχείων', 'ntfupload' : 'Ανέβασμα αρχείων', 'ntfdownload' : 'Μεταφόρτωση αρχείων', 'ntfsave' : 'Αποθήκευση αρχείων', 'ntfarchive' : 'Δημιουργία αρχείου', 'ntfextract' : 'Εξαγωγή αρχείων από το archive', 'ntfsearch' : 'Αναζήτηση αρχείων', 'ntfresize' : 'Resizing images', 'ntfsmth' : 'Σύστημα απασχολημένο>_<', 'ntfloadimg' : 'Φόρτωση εικόνας', 'ntfnetmount' : 'Φόρτωση δικτυακού δίσκου', // added 18.04.2012 'ntfdim' : 'Acquiring image dimension', /************************************ dates **********************************/ 'dateUnknown' : 'άγνωστο', 'Today' : 'Σήμερα', 'Yesterday' : 'Χθές', 'msJan' : 'Ιαν', 'msFeb' : 'Φεβ', 'msMar' : 'Μαρ', 'msApr' : 'Απρ', 'msMay' : 'Μαϊ', 'msJun' : 'Ιουν', 'msJul' : 'Ιουλ', 'msAug' : 'Αυγ', 'msSep' : 'Σεπ', 'msOct' : 'Οκτ', 'msNov' : 'Νοεμ', 'msDec' : 'Δεκ', 'January' : 'Ιανουάριος', 'February' : 'Φεβρουάριος', 'March' : 'Μάρτιος', 'April' : 'Απρίλιος', 'May' : 'Μάϊος', 'June' : 'Ιούνιος', 'July' : 'Ιούλιος', 'August' : 'Αύγουστος', 'September' : 'Σεπτέμβριος', 'October' : 'Οκτώβριος', 'November' : 'Νοέμβριος', 'December' : 'Δεκέμβριος', 'Sunday' : 'Κυριακή', 'Monday' : 'Δευτέρα', 'Tuesday' : 'Τρίτη', 'Wednesday' : 'Τετάρτη', 'Thursday' : 'Πέμπτη', 'Friday' : 'Παρασκευή', 'Saturday' : 'Σάββατο', 'Sun' : 'Κυρ', 'Mon' : 'Δευ', 'Tue' : 'Τρ', 'Wed' : 'Τετ', 'Thu' : 'Πεμ', 'Fri' : 'Παρ', 'Sat' : 'Σαβ', /******************************** sort variants ********************************/ 'sortname' : 'κατά όνομα', 'sortkind' : 'κατά είδος', 'sortsize' : 'κατά μέγεθος', 'sortdate' : 'κατά ημερομηνία', 'sortFoldersFirst' : 'Πρώτα οι φάκελοι', // added 22.06.2012 /********************************** messages **********************************/ 'confirmReq' : 'Απαιτείται επιβεβαίωση', 'confirmRm' : 'Είστε σίγουροι πως θέλετε να διαγράψετε τα αρχεία?
    Οι αλλαγές θα είναι μόνιμες!', 'confirmRepl' : 'Αντικατάσταση του παλιού αρχείου με το νέο?', 'apllyAll' : 'Εφαρμογή σε όλα', 'name' : 'Όνομα', 'size' : 'Μέγεθος', 'perms' : 'Δικαιώματα', 'modify' : 'Τροποποιήθηκε', 'kind' : 'Είδος', 'read' : 'ανάγνωση', 'write' : 'εγγραφή', 'noaccess' : 'δεν υπάρχει πρόσβαση', 'and' : 'και', 'unknown' : 'άγνωστο', 'selectall' : 'Επιλογή όλων', 'selectfiles' : 'Επιλογή αρχείων', 'selectffile' : 'Επιλογή πρώτου αρχείου', 'selectlfile' : 'Επιλογή τελευταίου αρχείου', 'viewlist' : 'Προβολή λίστας', 'viewicons' : 'Προβολή εικονιδίων', 'places' : 'Τοποθεσίες', 'calc' : 'Υπολογισμός', 'path' : 'Διαδρομή', 'aliasfor' : 'Ψευδώνυμο για', 'locked' : 'Κλειδωμένο', 'dim' : 'Διαστάσεις', 'files' : 'Αρχεία', 'folders' : 'Φάκελοι', 'items' : 'Αντικείμενα', 'yes' : 'ναι', 'no' : 'όχι', 'link' : 'Σύνδεσμος', 'searcresult' : 'Αποτελέσματα αναζήτησης', 'selected' : 'επιλεγμένα αντικείμενα', 'about' : 'Σχετικά', 'shortcuts' : 'Συντομεύσεις', 'help' : 'Βοήθεια', 'webfm' : 'εργαλείο διαχείρισης αρχείων από το web', 'ver' : 'Έκδοση', 'protocolver' : 'έκδοση πρωτοκόλλου', 'homepage' : 'Σελίδα του project', 'docs' : 'Τεκμηρίωση (documentation)', 'github' : 'Κάντε μας fork στο Github', 'twitter' : 'Ακολουθήστε μας στο twitter', 'facebook' : 'Βρείτε μας στο facebook', 'team' : 'Ομάδα', 'chiefdev' : 'κύριος προγραμματιστής', 'developer' : 'προγραμματιστής', 'contributor' : 'συνεισφορά', 'maintainer' : 'συντηρητής', 'translator' : 'μεταφραστής', 'icons' : 'Εικονίδια', 'dontforget' : 'και μην ξεχάσεις την πετσέτα σου!', 'shortcutsof' : 'Οι συντομεύσεις είναι απενεργοποιημένες', 'dropFiles' : 'Κάντε drop τα αρχεία εδώ', 'or' : 'ή', 'selectForUpload' : 'Επιλογή αρχείων για ανέβασμα', 'moveFiles' : 'Μετακίνηση αρχείων', 'copyFiles' : 'Αντιγραφή αρχείων', 'rmFromPlaces' : 'Αντιγραφή από τοποθεσίες', 'aspectRatio' : 'Αναλογία διαστάσεων', 'scale' : 'Κλίμακα', 'width' : 'Πλάτος', 'height' : 'Ύψος', 'resize' : 'Αλλαγή μεγέθους', 'crop' : 'Crop', 'rotate' : 'Περιστροφή', 'rotate-cw' : 'Περιστροφή κατά 90 βαθμούς CW', 'rotate-ccw' : 'Περιστροφή κατά 90 βαθμούς CCW', 'degree' : 'Βαθμός', 'netMountDialogTitle' : 'Φορτώστε δικτυακό δίσκο', // added 18.04.2012 'protocol' : 'Πρωτόκολλο', // added 18.04.2012 'host' : 'Host', // added 18.04.2012 'port' : 'Port', // added 18.04.2012 'user' : 'Χρήστης', // added 18.04.2012 'pass' : 'Κωδικός', // added 18.04.2012 /********************************** mimetypes **********************************/ 'kindUnknown' : 'Άγνωστο', 'kindFolder' : 'Φάκελος', 'kindAlias' : 'Ψευδώνυμο (alias)', 'kindAliasBroken' : 'Μη έγκυρο ψευδώνυμο', // applications 'kindApp' : 'Εφαρμογή', 'kindPostscript' : 'Έγγραφο Postscript', 'kindMsOffice' : 'Έγγραφο Microsoft Office', 'kindMsWord' : 'Έγγραφο Microsoft Word', 'kindMsExcel' : 'Έγγραφο Microsoft Excel', 'kindMsPP' : 'Παρουσίαση Microsoft Powerpoint', 'kindOO' : 'Έγγραφο Open Office', 'kindAppFlash' : 'Εφαρμογή Flash', 'kindPDF' : 'Portable Document Format (PDF)', 'kindTorrent' : 'Αρχείο Bittorrent', 'kind7z' : 'Αρχείο 7z', 'kindTAR' : 'Αρχείο TAR', 'kindGZIP' : 'Αρχείο GZIP', 'kindBZIP' : 'Αρχείο BZIP', 'kindXZ' : 'Αρχείο XZ', 'kindZIP' : 'Αρχείο ZIP', 'kindRAR' : 'Αρχείο RAR', 'kindJAR' : 'Αρχείο Java JAR', 'kindTTF' : 'Γραμματοσειρά True Type', 'kindOTF' : 'Γραμματοσειρά Open Type', 'kindRPM' : 'Πακέτο RPM', // fonts 'kindFont' : 'Γραμματοσειρά', 'kindSFNT' : 'Γραμματοσειρά SFNT', 'kindEOT' : 'Γραμματοσειρά Embedded Open Type', 'kindWOFF' : 'Γραμματοσειρά Web Open Font Format', 'kindWOFF2' : 'Γραμματοσειρά Web Open Font Format 2', // texts 'kindText' : 'Έγγραφο κειμένου', 'kindTextPlain' : 'Απλό κείμενο', 'kindPHP' : 'Κώδικας PHP', 'kindCSS' : 'Cascading style sheet', 'kindHTML' : 'Έγγραφο HTML', 'kindJS' : 'Κώδικας Javascript', 'kindRTF' : 'Rich Text Format', 'kindC' : 'Κώδικας C', 'kindCHeader' : 'Κώδικας κεφαλίδας C', 'kindCPP' : 'Κώδικας C++', 'kindCPPHeader' : 'Κώδικας κεφαλίδας C++', 'kindShell' : 'Unix shell script', 'kindPython' : 'Κώδικας Python', 'kindJava' : 'Κώδικας Java', 'kindRuby' : 'Κώδικας Ruby', 'kindPerl' : 'Perl script', 'kindSQL' : 'Κώδικας SQL', 'kindXML' : 'Έγγραφο XML', 'kindAWK' : 'Κώδικας AWK', 'kindCSV' : 'Τιμές χωρισμένες με κόμμα', 'kindDOCBOOK' : 'Έγγραφο Docbook XML', // images 'kindImage' : 'Εικόνα', 'kindBMP' : 'Εικόνα BMP', 'kindJPEG' : 'Εικόνα JPEG', 'kindGIF' : 'Εικόνα GIF', 'kindPNG' : 'Εικόνα PNG', 'kindTIFF' : 'Εικόνα TIFF', 'kindTGA' : 'Εικόνα TGA', 'kindPSD' : 'Εικόνα Adobe Photoshop', 'kindXBITMAP' : 'Εικόνα X bitmap', 'kindPXM' : 'Εικόνα Pixelmator', // media 'kindAudio' : 'Αρχεία ήχου', 'kindAudioMPEG' : 'Ήχος MPEG', 'kindAudioMPEG4' : 'Εικόνα MPEG-4', 'kindAudioMIDI' : 'Εικόνα MIDI', 'kindAudioOGG' : 'Εικόνα Ogg Vorbis', 'kindAudioWAV' : 'Εικόνα WAV', 'AudioPlaylist' : 'MP3 playlist', 'kindVideo' : 'Αρχεία media', 'kindVideoDV' : 'Ταινία DV', 'kindVideoMPEG' : 'Ταινία MPEG', 'kindVideoMPEG4' : 'Ταινία MPEG-4', 'kindVideoAVI' : 'Ταινία AVI', 'kindVideoMOV' : 'Ταινία Quick Time', 'kindVideoWM' : 'Ταινία Windows Media', 'kindVideoFlash' : 'Ταινία flash', 'kindVideoMKV' : 'Ταινία matroska', 'kindVideoOGG' : 'Ταινία ogg' } }; })); http://tierphysio-deutschland.de/wp-sitemap-posts-post-1.xmlhttp://tierphysio-deutschland.de/wp-sitemap-posts-page-1.xmlhttp://tierphysio-deutschland.de/wp-sitemap-taxonomies-category-1.xmlhttp://tierphysio-deutschland.de/wp-sitemap-users-1.xml