openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit a1d8d0e1c11a931128564dc5ba337a24475096b7
parent 4867ddbbe13fef5a9a31c7c2c1fa38d1efecd096
Author: Jan Dankert <devnull@localhost>
Date:   Tue, 18 Dec 2018 23:57:20 +0100

Fileupload war kaputt, weil das global Array $_FILES heißt. Das wurde vorher wohl mal in $FILES kopiert, das wird aber nicht mehr gemacht. Daher passierte beim Upload nichts mehr :(

Diffstat:
modules/cms-core/action/FileAction.class.php | 10+++++++++-
modules/cms-core/action/FolderAction.class.php | 98++++++++++++++++++++++++++++++++-----------------------------------------------
modules/cms-ui/themes/default/html/views/file/edit.php | 12++++++++----
modules/cms-ui/themes/default/html/views/file/edit.tpl.src.xml | 17++++++++++++-----
modules/cms-ui/themes/default/html/views/folder/createfile.php | 2+-
modules/cms-ui/themes/default/html/views/folder/createfile.tpl.src.xml | 2+-
modules/cms-ui/themes/default/html/views/folder/createimage.php | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
modules/cms-ui/themes/default/html/views/folder/createimage.tpl.src.xml | 2+-
modules/cms-ui/themes/default/html/views/folder/createtext.tpl.src.xml | 2+-
modules/cms-ui/themes/default/html/views/image/edit.tpl.src.xml | 32+++++++++++++++++++-------------
modules/cms-ui/themes/default/html/views/text/edit.tpl.src.xml | 32+++++++++++++++++++-------------
modules/cms-ui/themes/default/production/combined.min.css | 2+-
modules/cms-ui/themes/default/production/combined.min.js | 2+-
modules/cms-ui/themes/default/style/theme/openrat-theme.less | 2+-
modules/template-engine/components/html/upload/upload.css | 10++++++----
modules/template-engine/components/html/upload/upload.js | 2+-
modules/template-engine/components/html/upload/upload.less | 2+-
modules/template-engine/components/html/upload/upload.min.css | 4++--
modules/template-engine/components/html/upload/upload.min.js | 4++--
modules/util/Upload.class.php | 79+++++++++++++++++++++++++++++++++++++------------------------------------------
20 files changed, 234 insertions(+), 154 deletions(-)

diff --git a/modules/cms-core/action/FileAction.class.php b/modules/cms-core/action/FileAction.class.php @@ -69,6 +69,15 @@ class FileAction extends ObjectAction { $upload = new Upload(); + try + { + $upload->processUpload(); + } + catch( \Exception $e ) + { + throw $e; + } + $this->file->filename = $upload->filename; $this->file->extension = $upload->extension; $this->file->size = $upload->size; @@ -79,7 +88,6 @@ class FileAction extends ObjectAction $this->file->saveValue(); $this->file->setTimestamp(); - //$setTemplateVar('tree_refresh',true); $this->addNotice($this->file->getType(),$this->file->name,'VALUE_SAVED','ok'); } diff --git a/modules/cms-core/action/FolderAction.class.php b/modules/cms-core/action/FolderAction.class.php @@ -124,38 +124,29 @@ class FolderAction extends ObjectAction } else { - $upload = new Upload(); + $upload = new Upload('file'); - if ( $upload->isValid() ) - { - $file->desc = $description; - $file->filename = BaseObject::urlify( $upload->filename ); - $file->name = !empty($name)?$name:$upload->filename; - $file->extension = $upload->extension; - $file->size = $upload->size; - $file->parentid = $this->folder->objectid; - $file->projectid = $this->folder->projectid; - - $file->value = $upload->value; - } - else - { - if ( $this->hasRequestVar('name') ) - { - $file->name = $this->getRequestVar('name'); - $file->desc = $this->getRequestVar('description'); - $file->filename = $this->getRequestVar('filename', OR_FILTER_FILENAME); - $file->parentid = $this->folder->objectid; - $file->projectid = $this->folder->projectid; - } - else - { - $this->addValidationError('file','COMMON_VALIDATION_ERROR',array(),$upload->error); - $this->callSubAction('createfile'); - return; - } + try + { + $upload->processUpload(); + } + catch( \Exception $e ) + { + // technical error. + throw new \RuntimeException('Exception while processing the upload: '.$e->getMessage(), 0, $e); - } + //throw new \ValidationException( $upload->parameterName ); + } + + $file->desc = $description; + $file->filename = BaseObject::urlify( $upload->filename ); + $file->name = !empty($name)?$name:$upload->filename; + $file->extension = $upload->extension; + $file->size = $upload->size; + $file->parentid = $this->folder->objectid; + $file->projectid = $this->folder->projectid; + + $file->value = $upload->value; } $file->add(); // Datei hinzufuegen @@ -205,6 +196,7 @@ class FolderAction extends ObjectAction { $upload = new Upload(); + $upload->processUpload(); if ( $upload->isValid() ) { $image->desc = $description; @@ -279,36 +271,24 @@ class FolderAction extends ObjectAction { $upload = new Upload(); - if ( $upload->isValid() ) - { - $text->desc = $description; - $text->filename = BaseObject::urlify( $upload->filename ); - $text->name = !empty($name)?$name:$upload->filename; - $text->extension = $upload->extension; - $text->size = $upload->size; - $text->parentid = $this->folder->objectid; - $text->projectid = $this->folder->projectid; - - $text->value = $upload->value; - } - else - { - if ( $this->hasRequestVar('name') ) - { - $text->name = $this->getRequestVar('name'); - $text->desc = $this->getRequestVar('description'); - $text->filename = BaseObject::urlify( $name ); - $text->parentid = $this->folder->objectid; - $text->projectid = $this->folder->projectid; - } - else - { - $this->addValidationError('file','COMMON_VALIDATION_ERROR',array(),$upload->error); - $this->callSubAction('createfile'); - return; - } + try + { + $upload->processUpload(); + } + catch( \Exception $e ) + { + throw $e; + } + + $text->desc = $description; + $text->filename = BaseObject::urlify( $upload->filename ); + $text->name = !empty($name)?$name:$upload->filename; + $text->extension = $upload->extension; + $text->size = $upload->size; + $text->parentid = $this->folder->objectid; + $text->projectid = $this->folder->projectid; - } + $text->value = $upload->value; } $text->add(); // Datei hinzufuegen diff --git a/modules/cms-ui/themes/default/html/views/file/edit.php b/modules/cms-ui/themes/default/html/views/file/edit.php @@ -1,11 +1,9 @@ <form name="" target="_self" data-target="view" action="./" data-method="edit" data-action="file" data-id="<?php echo OR_ID ?>" method="POST" enctype="application/x-www-form-urlencoded" class="or-form file" data-async="" data-autosave=""><input type="hidden" name="<?php echo REQ_PARAM_EMBED ?>" value="1" /><input type="hidden" name="languageid" value="<?php echo $languageid ?>" /><input type="hidden" name="<?php echo REQ_PARAM_TOKEN ?>" value="<?php echo token() ?>" /><input type="hidden" name="<?php echo REQ_PARAM_ACTION ?>" value="file" /><input type="hidden" name="<?php echo REQ_PARAM_SUBACTION ?>" value="edit" /><input type="hidden" name="<?php echo REQ_PARAM_ID ?>" value="<?php echo OR_ID ?>" /> - - - <div class="label"> - </div> <div class="line"> + <div class="label"> + </div> <div class="input"> <br/> @@ -17,5 +15,11 @@ </div> </div> + <div class="line or-dropzone-upload"> + <div class="label"> + </div> + <div class="input"> + </div> + </div> <div class="or-form-actionbar"><input type="submit" class="or-form-btn or-form-btn--primary" value="OK" /></div></form> \ No newline at end of file diff --git a/modules/cms-ui/themes/default/html/views/file/edit.tpl.src.xml b/modules/cms-ui/themes/default/html/views/file/edit.tpl.src.xml @@ -1,14 +1,21 @@ <output xmlns="http://www.openrat.de/template" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openrat.de/template ../../../../../../template-engine/components/template.xsd"> <form languageid="var:languageid"> - <header views="value" /> - <part class="label" /> + <part class="line"> + <part class="label" /> <part class="input"> - <newline></newline> + <newline /> <upload name="file"></upload> - <newline></newline> - <newline></newline> + <newline /> + <newline /> + </part> + </part> + + <part class="line or-dropzone-upload"> + <part class="label"> + </part> + <part class="input"> </part> </part> diff --git a/modules/cms-ui/themes/default/html/views/folder/createfile.php b/modules/cms-ui/themes/default/html/views/folder/createfile.php @@ -17,7 +17,7 @@ </div> </div> - <div class="line filedropzone"> + <div class="line or-dropzone-upload"> <div class="label"> </div> <div class="input"> diff --git a/modules/cms-ui/themes/default/html/views/folder/createfile.tpl.src.xml b/modules/cms-ui/themes/default/html/views/folder/createfile.tpl.src.xml @@ -14,7 +14,7 @@ </part> </part> - <part class="line filedropzone"> + <part class="line or-dropzone-upload"> <part class="label"> </part> <part class="input"> diff --git a/modules/cms-ui/themes/default/html/views/folder/createimage.php b/modules/cms-ui/themes/default/html/views/folder/createimage.php @@ -0,0 +1,71 @@ + + + + + <form name="" target="_self" data-target="upload" action="./" data-method="createimage" data-action="folder" data-id="<?php echo OR_ID ?>" method="POST" enctype="multipart/form-data" class="or-form folder" data-async="" data-autosave=""><input type="hidden" name="<?php echo REQ_PARAM_EMBED ?>" value="1" /><input type="hidden" name="<?php echo REQ_PARAM_TOKEN ?>" value="<?php echo token() ?>" /><input type="hidden" name="<?php echo REQ_PARAM_ACTION ?>" value="folder" /><input type="hidden" name="<?php echo REQ_PARAM_SUBACTION ?>" value="createimage" /><input type="hidden" name="<?php echo REQ_PARAM_ID ?>" value="<?php echo OR_ID ?>" /> + <input type="hidden" name="type" value="file"/> + + <div class="line"> + <div class="label"> + <label for="<?php echo REQUEST_ID ?>_name" class="label"> + <span><?php echo nl2br(encodeHtml(htmlentities(lang('global_FILE')))); ?></span> + + </label> + </div> + <div class="input"> + <input size="40" id="req0_file" type="file" maxlength="<?php echo $maxlength ?>" name="file" class="upload" multiple="multiple" /> + + </div> + </div> + <div class="line or-dropzone-upload"> + <div class="label"> + </div> + <div class="input"> + </div> + </div> + <div class="line"> + <div class="label"> + <span class="help"><?php echo nl2br(encodeHtml(htmlentities(lang(''.'file_max_size'.'')))); ?></span> + + </div> + <div class="input"> + <span><?php echo nl2br(encodeHtml(htmlentities($max_size))); ?></span> + + </div> + </div> + <div class="line"> + <div class="label"> + <span><?php echo nl2br(encodeHtml(htmlentities(lang(''.'HTTP_URL'.'')))); ?></span> + + </div> + <div class="input"> + <div class="inputholder"><input id="<?php echo REQUEST_ID ?>_url" name="<?php if ('') echo ''.'_' ?>url<?php if ('') echo '_disabled' ?>" type="text" maxlength="256" class="" value="<?php echo Text::encodeHtml(@$url) ?>" /><?php if ('') { ?><input type="hidden" name="url" value="<?php $url ?>"/><?php } ?></div> + + </div> + </div> + <fieldset class="toggle-open-close<?php echo '1'?" open":" closed" ?><?php echo '1'?" show":"" ?>"><legend class="on-click-open-close"><div class="arrow arrow-right on-closed"></div><div class="arrow arrow-down on-open"></div><?php echo lang('description') ?></legend><div> + </div></fieldset> + <div class="line"> + <div class="label"> + <span><?php echo nl2br(encodeHtml(htmlentities(lang('global_NAME')))); ?></span> + + </div> + <div class="input"> + <div class="inputholder"><input id="<?php echo REQUEST_ID ?>_name" name="<?php if ('') echo ''.'_' ?>name<?php if ('') echo '_disabled' ?>" type="text" maxlength="256" class="" value="<?php echo Text::encodeHtml(@$name) ?>" /><?php if ('') { ?><input type="hidden" name="name" value="<?php $name ?>"/><?php } ?></div> + + </div> + </div> + <div class="line"> + <div class="label"> + <span><?php echo nl2br(encodeHtml(htmlentities(lang('global_DESCRIPTION')))); ?></span> + + </div> + <div class="input"> + <div class="inputholder"><textarea class="inputarea" name="<?php if ('') echo ''.'_' ?>description<?php if ('') echo '_disabled' ?>"><?php echo Text::encodeHtml('') ?></textarea></div> + + </div> + </div> + <div class="or-form-actionbar"><input type="submit" class="or-form-btn or-form-btn--primary" value="OK" /></div></form> + + + + \ No newline at end of file diff --git a/modules/cms-ui/themes/default/html/views/folder/createimage.tpl.src.xml b/modules/cms-ui/themes/default/html/views/folder/createimage.tpl.src.xml @@ -14,7 +14,7 @@ </part> </part> - <part class="line filedropzone"> + <part class="line or-dropzone-upload"> <part class="label"> </part> <part class="input"> diff --git a/modules/cms-ui/themes/default/html/views/folder/createtext.tpl.src.xml b/modules/cms-ui/themes/default/html/views/folder/createtext.tpl.src.xml @@ -13,7 +13,7 @@ </part> </part> - <part class="line filedropzone"> + <part class="line or-dropzone-upload"> <part class="label"> </part> <part class="input"> diff --git a/modules/cms-ui/themes/default/html/views/image/edit.tpl.src.xml b/modules/cms-ui/themes/default/html/views/image/edit.tpl.src.xml @@ -1,15 +1,21 @@ <output xmlns="http://www.openrat.de/template" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.openrat.de/template ../../../../../../template-engine/components/template.xsd"> - <form> - <header views="value" /> - <part class="label" /> - <part class="line"> - <part class="input"> - <newline></newline> - <upload name="file"></upload> - <newline></newline> - <newline></newline> - </part> - </part> - </form> + xsi:schemaLocation="http://www.openrat.de/template ../../../../../../template-engine/components/template.xsd"> + <form> + <part class="line"> + <part class="label"/> + <part class="input"> + <newline/> + <upload name="file"></upload> + <newline/> + <newline/> + </part> + </part> + + <part class="line or-dropzone-upload"> + <part class="label"> + </part> + <part class="input"> + </part> + </part> + </form> </output> \ No newline at end of file diff --git a/modules/cms-ui/themes/default/html/views/text/edit.tpl.src.xml b/modules/cms-ui/themes/default/html/views/text/edit.tpl.src.xml @@ -1,15 +1,21 @@ <output xmlns="http://www.openrat.de/template" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.openrat.de/template ../../../../../../template-engine/components/template.xsd"> - <form> - <header views="value" /> - <part class="label" /> - <part class="line"> - <part class="input"> - <newline></newline> - <upload name="file"></upload> - <newline></newline> - <newline></newline> - </part> - </part> - </form> + xsi:schemaLocation="http://www.openrat.de/template ../../../../../../template-engine/components/template.xsd"> + <form> + <part class="line"> + <part class="label"/> + <part class="input"> + <newline/> + <upload name="file"></upload> + <newline/> + <newline/> + </part> + </part> + + <part class="line or-dropzone-upload"> + <part class="label"> + </part> + <part class="input"> + </part> + </part> + </form> </output> \ No newline at end of file diff --git a/modules/cms-ui/themes/default/production/combined.min.css b/modules/cms-ui/themes/default/production/combined.min.css @@ -1,4 +1,4 @@ -/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family: 'Oxygen', 'Roboto', -apple-system, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;font-size: 0.8em;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%}body{margin: 0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display: block}audio,canvas,progress,video{display: inline-block;vertical-align: baseline}audio:not([controls]){display: none;height: 0}[hidden],template{display: none}a{background: transparent}a:active,a:hover{outline: 0}abbr[title]{border-bottom: 1px dotted}b,strong{font-weight: bold}dfn{font-style: italic}h1{font-size: 1.2em;margin: .67em 0}mark{background: #ff0;color: #000}small{font-size: 80%}sub,sup{font-size: 75%;line-height: 0;position: relative;vertical-align: baseline}sup{top: -0.5em}sub{bottom: -0.25em}img{border: 0}svg:not(:root){overflow: hidden}figure{margin: 1em 40px}hr{-moz-box-sizing: content-box;box-sizing: content-box;height: 0}pre{overflow: auto}code,kbd,pre,samp{font-family: 'Source Code Pro', monospace, monospace;font-size: 1em}button,input,optgroup,select,textarea{color: inherit;background-color: inherit;font: inherit;margin: 0}button{overflow: visible}button,select{text-transform: none}button,html input[type="button"]{-webkit-appearance: button;cursor: pointer}button[disabled],html input[disabled]{cursor: default}button input::-moz-focus-inner{border: 0;padding: 0}input{line-height: normal}input[type="reset"],input[type="submit"]{-webkit-appearance: button;cursor: pointer}input[type="checkbox"],input[type="radio"]{box-sizing: border-box;padding: 0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height: auto}input[type="search"]{-webkit-appearance: textfield;-moz-box-sizing: content-box;-webkit-box-sizing: content-box;box-sizing: content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance: none}fieldset{border: 1px solid #c0c0c0;margin: 0 2px;padding: .35em .625em .75em}legend{border: 0;padding: 0}textarea{overflow: auto}optgroup{font-weight: bold}table{border-collapse: collapse;border-spacing: 0}td,th{padding: 0}*,::before,::after{box-sizing: border-box}.initial-hidden{display: none}.sort-value{display: none}*{transition: width ease .3s}legend{font-size: 1.1em;font-weight: bold;padding: 0 .5em}@font-face{font-family: 'Oxygen';font-style: normal;font-weight: 400;src: local('Oxygen Regular'), local('Oxygen-Regular'), url('../font/oxygen-v7-latin-regular.woff') format('woff2'), url('../font/oxygen-v7-latin-regular.woff') format('woff')}@font-face{font-family: 'Source Code Pro';font-style: normal;font-weight: 400;src: local('Source Code Pro'), local('SourceCodePro-Regular'), url('../font/source-code-pro-v8-latin-regular.woff2') format('woff2'), url('../font/source-code-pro-v8-latin-regular.woff') format('woff')}@font-face{font-family: 'Material Icons';font-style: normal;font-weight: 400;src: local('Material Icons'), local('MaterialIcons-Regular'), url('../font/MaterialIcons-Regular.woff2') format('woff2'), url('../font/MaterialIcons-Regular.woff') format('woff')}.image-icon{font-family: 'Material Icons';font-weight: normal;font-style: normal;display: inline-block;text-transform: none;letter-spacing: normal;word-wrap: normal;white-space: nowrap;direction: ltr;font-feature-settings: 'liga'}.image-icon.image-icon--action-el_date:after{content: "date_range"}.image-icon.image-icon--action-el_infodate:after{content: "info"}.image-icon.image-icon--action-el_insert:after{content: "vertical_split"}.image-icon.image-icon--action-el_text:after{content: "spellcheck"}.image-icon.image-icon--action-el_info:after{content: "info"}.image-icon.image-icon--action-el_dynamic:after{content: "play_circle_outline"}.image-icon.image-icon--action-el_longtext:after{content: "view_headline"}.image-icon.image-icon--action-el_code:after{content: "code"}.image-icon.image-icon--action-el_link:after{content: "call_made"}.image-icon.image-icon--action-image:after{content: "image"}.image-icon.image-icon--action-link:after{content: "call_made"}.image-icon.image-icon--action-url:after{content: "link"}.image-icon.image-icon--action-text:after{content: "text_format"}.image-icon.image-icon--action-page:after{content: "insert_drive_file"}.image-icon.image-icon--action-file:after{content: "save"}.image-icon.image-icon--action-modellist:after{content: "device_hub"}.image-icon.image-icon--action-model:after{content: "device_hub"}.image-icon.image-icon--action-folder:after{content: "folder_open"}.image-icon.image-icon--action-languagelist:after{content: "language"}.image-icon.image-icon--action-language:after{content: "language"}.image-icon.image-icon--action-template:after{content: "receipt"}.image-icon.image-icon--action-templatelist:after{content: "receipt"}.image-icon.image-icon--action-groupllist:after{content: "group"}.image-icon.image-icon--action-group:after{content: "group"}.image-icon.image-icon--action-userlist:after{content: "person"}.image-icon.image-icon--action-user:after{content: "person"}.image-icon.image-icon--action-profile:after{content: "person_pin"}.image-icon.image-icon--method-settings:after{content: "settings"}.image-icon.image-icon--action-configuration:after{content: "settings"}.image-icon.image-icon--action-projectlist:after{content: "list"}.image-icon.image-icon--action-project:after{content: "account_balance"}.image-icon.image-icon--action-membership{content: "card_membership"}.image-icon.image-icon--method-password:after{content: "lock"}.image-icon.image-icon--method-publish:after{content: "cloud_upload"}.image-icon.image-icon--method-show:after{content: "slideshow"}.image-icon.image-icon--method-src:after{content: "code"}.image-icon.image-icon--method-acl:after{content: "https"}.image-icon.image-icon--method-rights:after{content: "https"}.image-icon.image-icon--method-archive:after{content: "schedule"}.image-icon.image-icon--method-mail:after{content: "mail"}.image-icon.image-icon--method-search:after{content: "search"}.image-icon.image-icon--method-add:after{content: "add_box"}.image-icon.image-icon--menu-close:after{content: "close"}.image-icon.image-icon--menu-fullscreen:after{content: "fullscreen"}.image-icon.image-icon--menu-menu:after{content: "menu"}.image-icon.image-icon--menu-qrcode:after{content: "phone_android"}.image-icon.image-icon--node-open:after{content: "expand_more"}.image-icon.image-icon--node-closed:after{content: "chevron_right"}iframe{width: 100%;height: 500px;display: block}div.breadcrumb,div.breadcrumb a,div.panel > div.title{font-weight: bold}div#noticebar{display: block;position: fixed;bottom: 40px;right: 40px;width: 25em;z-index: 113}div#noticebar div.notice{border: 2px solid #000;padding: 1.1em;margin: 5px;position: relative;border-radius: 5px;-moz-border-radius: 5px;-webkit-border-radius: 5px;-khtml-border-radius: 5px;-webkit-box-shadow: 3px 2px 5px #000;-moz-box-shadow: 3px 2px 5px #000;box-shadow: 3px 2px 5px #000}div#noticebar div.notice .or-notice-toolbar{float: right;margin: 0 .2em;font-size: 2em;color: gray;cursor: pointer}div#noticebar div.notice:hover .or-notice-toolbar{color: black}div#noticebar div.notice.full{display: block;position: fixed;bottom: 10%;top: 10%;right: 10%;left: 10%;width: 80%;z-index: 114}div#noticebar div.notice.error div.text{font-weight: bold}div#noticebar div.notice div.text{font-size: 1.1em}div#noticebar div.notice:after{content: '';position: absolute;right: 0;top: 50%;width: 0;height: 0;border: 1em solid transparent;border-right: 0;margin-top: -1em;margin-right: -1em}div#noticebar div.notice div.log{display: none;position: relative;max-height: 90%;overflow: auto;font-family: 'Source Code Pro', Monospace, Monospaced, Courier}div#noticebar div.notice.full div.log{display: block}div.onrowvisible{visibility: hidden;display: inline}a:link,a:visited{font-weight: normal;text-decoration: none}a:active,a:hover{font-weight: normal;text-decoration: none}img[align=left],img[align=right]{padding-right: 1px;padding-left: 1px}div.logo h2{font-weight: normal;font-size: 24px}div.logo p{font-size: 13px}label,.clickable{cursor: pointer}.or-droppable--active{background-color: #2E8B57 !important;cursor: move}.or-droppable--hover{background-color: #00d95a !important;cursor: move}img.icon{padding: 4px;width: 16px;height: 16px}div.panel ul.views li{vertical-align: middle;padding: 0px;cursor: pointer;border-right: 1px solid #000;-moz-border-radius-topleft: 5px;-webkit-border-radius-topleft: 5px;-khtml-border-top-radius-topleft: 5px;-moz-border-radius-topright: 5px;-webkit-border-radius-topright: 5px;-khtml-border-top-radius-topright: 5px;border-top-right-radius: 5px;display: inline;white-space: nowrap;float: left}div.panel{margin: 0px;padding: 0px}table{overflow: auto;border: 2px}table tr.headline > td{padding: 3px;font-weight: bold}table tr.headline > td.sort-asc > span:last-child:after{content: " \2193"}table tr.headline > td.sort-desc > span:last-child:after{content: " \2191"}table tr.data > td{padding: 3px}table td.readonly{font-style: italic;font-weight: normal}table td.default{font-style: normal;font-weight: normal}table td.changed{font-style: normal;font-weight: bold}table td.notice{margin: 0px;padding: 5%;text-align: center}table.notice{width: 100%;border: 1px solid;border-spacing: 0px}table.notice th{padding: 2px;white-space: nowrap;border-bottom: 1px solid #000;font-weight: normal;text-align: left}table.notice tr.warning{margin: 0px;padding: 0px}table.calendar{table-layout: fixed;border-collapse: collapse;text-align: center}table.calendar td{border: 1px dotted}table td.notice{margin: 0px;padding: 5%;text-align: center}table.notice{width: 100%;border: 1px solid;border-spacing: 0px}table.notice th{padding: 2px;white-space: nowrap;border-bottom: 1px solid #000;font-weight: normal;text-align: left}table.notice tr.warning{margin: 0px;padding: 0px}table.calendar{table-layout: fixed;border-collapse: collapse;text-align: center}table.calendar td{border: 1px dotted}table td.motd{border-left: 3px solid #f00;border-right: 3px solid #f00;font-weight: bold;padding: 10px;margin: 10px}table td:hover > div.onrowvisible{visibility: visible}table tr.diff > td.line{background-color: #000;padding-right: 2px;border-right: 3px solid #000;text-align: right;margin-right: 2px}table tr.diff > td.old{background-color: red}table tr.diff td.new{background-color: green}table tr.diff td.notequal{background-color: yellow}table tr td.help{font-style: italic}table tr.headline td.help{font-style: normal}table td.logo{padding: 10px;margin: 0px}@media screen and (max-width: 40em){table tr.headline{display: none}table tr > td{display: block}}div.panel div.status{padding: 10px}div.panel div.status div.error,div.message.error{background: url(../images/notice_error.png) no-repeat;background-position: 5px 7px}div.panel div.status div.warn,div.message.warn{background: url(../images/notice_warning.png) no-repeat;background-position: 5px 7px}div.panel div.status div.ok,div.message.ok{background: url(../images/notice_ok.png) no-repeat;background-position: 5px 7px}div.panel div.status div.info,div.message.info{background: url(../images/notice_info.png) no-repeat;background-position: 5px 7px}div.panel div.status div,div.message{border: 1px solid #000;padding: 5px 0px 5px 25px;margin: 10px 10px 20px 10px;-moz-border-radius: 5px;-webkit-border-radius: 5px;-khtml-border-radius: 5px;border-radius: 5px}#workbench div.panel.fullscreen{display: block;z-index: 109;position: fixed;top: 0;left: 0;background-color: #000;margin: 0px;width: 100% !important;height: 100% !important}#workbench div.panel.fullscreen > div.content{width: 100% !important;height: 100% !important}#workbench div.panel{border: 1px solid #000;margin: 0px;padding: 0px;-moz-border-radius: 5px;-webkit-border-radius: 5px;-khtml-border-radius: 5px;border-radius: 5px}#workbench div.container,#workbench div.panel,#workbench div.divider{display: inline;float: left;margin: 0px}#workbench div.panel > div.content{overflow: auto}.invisible{visibility: hidden}.visible{visibility: visible}div.panel{position: relative}div.content div.bottom{height: 55px;width: 100%;position: absolute;padding-right: 40px;bottom: 0px;right: 0px;xvisibility: hidden}div.content div.bottom > div.command{xvisibility: visible;float: right;z-index: 20}div.content form[data-autosave='true'] div.command{display: none}div.content > form{padding-bottom: 45px}.or-form{padding: 1em}.or-form input[type=checkbox] + label,.or-form input[type=radio] + label{width: 80%}.or-form div.inputholder > div.dropdown{width: 70%}.or-form input.submit{padding: 7px;border: 0px;-moz-border-radius: 7px;-webkit-border-radius: 7px;-khtml-border-radius: 7px;border-radius: 7px;margin-left: 20px;cursor: pointer}.or-form input[type=text],.or-form select,.or-form textarea{width: 100%;padding: 12px;border: 1px solid #ccc;border-radius: 4px;box-sizing: border-box;resize: vertical}.or-form label{padding: 12px 12px 12px 0;display: inline-block}.or-form input[type=submit]{color: white;padding: 12px 20px;border: none;border-radius: 4px;cursor: pointer;float: right}.or-form div.label{float: left;width: 25%;margin-top: 6px}.or-form div.input{float: left;width: 75%;margin-top: 6px}.or-form .line:after{content: "";display: table;clear: both}.or-form .or-form-row{display: flex;align-items: center}.or-form .or-form-row .or-form-label{width: 25%}.or-form .or-form-row .or-form-input{width: 75%}.or-form .or-form-actionbar{display: flex;justify-content: end;padding: 1em}.or-form .or-form-actionbar .or-form-btn{padding: 1em 2em;min-width: 14em;border: 0;border-radius: .5em;-moz-border-radius: .5em;-webkit-border-radius: .5em;-khtml-border-radius: .5em;cursor: pointer}.or-form .or-form-actionbar .or-form-btn--primary{font-weight: bold}@media screen and (max-width: 65rem){.or-form div.label,.or-form div.input{width: 100%;margin-top: 0}.or-form .or-form-row{flex-direction: column}.or-form .or-form-row .or-form-label,.or-form .or-form-row .or-form-input{width: 100%}.or-form .or-form-actionbar{align-items: center}.or-form .or-form-actionbar .or-form-btn{width: 100%}}div.search > div.inputholder{padding-top: 1px}div.inputholder > input,div.inputholder > textarea,div.inputholder > select{padding: 2px;margin: 0px}fieldset > div input.name,fieldset > div span.name{font-weight: bold}fieldset > div input.filename,fieldset > div input.extension,fieldset > div input.ansidate,fieldset > div span.filename,fieldset > div span.extension,fieldset > div span.ansidate{font-family: 'Source Code Pro', Monospace, Monospaced, Courier}dl.notice{padding: 15px}div.content pre,div.dropdown{min-width: 150px;max-width: 450px}div.filler div.headermenu > a.entry,div.filler div.header a.back.button{font-size: 0.8em}img.image-icon{visibility: hidden}.CodeMirror{height: auto}.or-linklist{display: flex;flex-direction: column;padding: 10% 20%}.or-linklist > .or-linklist-line{border: 1px solid;margin-top: 1em;padding: 1em;border-radius: .5em;-moz-border-radius: .5em;-webkit-border-radius: .5em;-khtml-border-radius: .5em}.qrcode-wrapper{width: 100%;border: 0;font-size: 2em;border-radius: 1em;-moz-border-radius: 1em;-webkit-border-radius: 1em;-khtml-border-radius: 1em;padding: 2em;text-align: center}.qrcode-wrapper > div{display: inline-block}#title{overflow: hidden;padding: 5px}.or-menu{display: flex;justify-content: space-between}.or-menu .or-menu-group{display: flex}.or-menu .or-menu-group:nth-last-child(1) div.dropdown{right: 10px}.or-menu .or-menu-group i.image-icon{width: 1.1em}.or-menu .or-menu-group div > div.arrow-down{width: 0;height: 0;margin: 6px;padding: 0px;margin-top: 10px}.or-menu .or-menu-group div.toolbar-icon{padding: 2px;margin-left: 10px;float: left}.or-menu .or-menu-group div.toolbar-icon.user,.or-menu .or-menu-group div.toolbar-icon.search,.or-menu .or-menu-group div.toolbar-icon.history{float: right;margin-right: 10px;margin-left: 10px}.or-menu .or-menu-group div.toolbar-icon.menu{cursor: default}.or-menu .or-menu-group div.toolbar-icon.search .inputholder{margin: 0;padding: 0;border: 0;display: inline}.or-menu .or-menu-group div.toolbar-icon.search .inputholder input{border: 0;margin: 0;padding: 0;width: 3em;display: inline}.or-menu .or-menu-group div.toolbar-icon div.dropdown{z-index: 2;min-width: 250px;display: none;position: absolute;padding: 5px 0px;font-style: normal;font-weight: normal;text-decoration: none}.or-menu .or-menu-group div.toolbar-icon div.dropdown div.entry{padding: 0}.or-menu .or-menu-group div.toolbar-icon div.dropdown div.entry > a{display: flex;align-items: center;padding: 0 .5em}.or-menu .or-menu-group div.toolbar-icon div.dropdown div.entry > a *{margin: 0.25em}.or-menu .or-menu-group div.toolbar-icon div.dropdown div.entry > a span:first-of-type{flex: 1}.or-menu .or-menu-group div.toolbar-icon div.dropdown div.entry > .text{display: block;margin: 10px}.or-menu .or-menu-group div.toolbar-icon div.dropdown div.divide{height: 1px;width: 100%;margin-top: 5px;margin-bottom: 5px}.or-menu.open .toolbar-icon.open > div.dropdown{display: block}#navigation ul.or-navtree-list{list-style-type: none;margin: 0;padding: 0}#navigation ul.or-navtree-list ul{margin-left: 18px}#navigation ul.or-navtree-list .or-navtree-node-control{width: 18px;min-width: 18px;float: left;height: 18px;cursor: pointer}#navigation ul.or-navtree-list img{cfloat: left}#navigation ul.or-navtree-list .or-navtree-node{margin: 0;padding: 0 0px;line-height: 18px;font-weight: normal;white-space: nowrap}div#dialog > .view{overflow: auto;position: absolute;top: 5%;left: 10%;width: 80%;height: 80%;z-index: 101;border: 1px solid !important}div#dialog.is-closed{display: none}div#dialog div#filler{position: absolute;z-index: 100;top: 0;left: 0;height: 100%;width: 100%;opacity: 0.5}div#dialog div#filler span.icon{opacity: 1;font-size: 3em;font-weight: bold;text-align: center;width: 40px;height: 40px;position: absolute;right: 20px;top: 20px}.arrow{width: 0;height: 0;margin: 6px;padding: 0;font-size: 0}.arrow.arrow-down{border-right: 6px solid transparent;border-top: 6px solid;border-left: 6px solid transparent;border-bottom: 4px solid transparent;margin-top: 10px}.arrow.arrow-right{border-top: 6px solid transparent;border-left: 6px solid;border-bottom: 6px solid transparent;border-right: 4px solid transparent;margin-left: 10px}#editor .dirty{font-weight: bold}.visible-for-nojs{display: none}html.nojs .noscript{display: block}.toggle-open-close .on-click-open-close{cursor: pointer;font-weight: normal}.toggle-open-close > div{transition: height ease .5s;overflow: hidden}.toggle-open-close.closed .on-click-open-close .on-closed{display: inline}.toggle-open-close.closed .on-click-open-close .on-open{display: none}.toggle-open-close.closed > div{height: 0}.toggle-open-close.open > div{display: block}.toggle-open-close.open .on-click-open-close .on-closed{display: none}.toggle-open-close.open .on-click-open-close .on-open{display: inline}html,body{width: 100%;height: 100%}div#workbench{width: 100%;height: 100%;display: flex;flex-direction: column}div#workbench div.panel.modal{position: relative;z-index: 101;border: 1px solid !important}div#workbench > header{height: 3.0rem}div#workbench > header .toolbar-icon .arrow-down{display: inline}@media only screen and (max-width: 55rem){div#workbench > header .toolbar-icon span.label,div#workbench > header .toolbar-icon .arrow-down{display: none}}div#workbench > div{flex: 1;display: flex;flex-direction: row;min-width: 0;min-height: 0}div#workbench > div > main{flex: 1}div#workbench > div > nav,div#workbench > div > main{min-width: 0;min-height: 0;overflow-y: auto;overflow-x: hidden}div#workbench > div > nav{width: 33%}@media only screen and (max-width: 55rem){div#workbench > div > nav{width: 0}}div#workbench > div > nav.small{width: 5em;opacity: 0.5;overflow-y: hidden}div#workbench > div > nav.small:hover{width: 50%;overflow-y: auto;opacity: 1}div#workbench > div > nav.open{overflow-y: auto}@media only screen and (max-width: 55rem){div#workbench > div > nav.open{width: 90%}}@media only screen and (min-width: 75rem){div#workbench > div > nav{width: 33%;overflow-y: auto}}div#workbench > div > nav div.view{height: 100%}div#workbench > div > main > section{margin: 1.5em;border: 1px solid;border-radius: 5px;-moz-border-radius: 5px;-webkit-border-radius: 5px;-khtml-border-radius: 5px}@media only screen and (max-width: 55rem){div#workbench > div > main > section{margin: 0.5em}}div#workbench > div > main > section header *{display: inline}div#workbench > div > main > section .view-toolbar{display: inline}div#workbench > div > main > section.closed .view-toolbar{display: none}div#workbench > div > main > section.is-empty{display: none}#title .toggle-nav-small{display: inline}@media only screen and (max-width: 55rem){#title .toggle-nav-small{display: none}}#title .toggle-nav-open-close{display: none}@media only screen and (max-width: 55rem){#title .toggle-nav-open-close{display: inline}}#title .toolbar-icon.search{width: 8em}@media only screen and (max-width: 55rem){#title .toolbar-icon.search{width: 8em}}@media only screen and (max-width: 55rem){#title .toolbar-icon.search input{width: 3em}}.loader{background: url(../images/loader.gif) no-repeat;background-position: center, top;height: 30px;opacity: 0.5;cursor: wait}@media only screen and (max-width: 55rem){html{font-size: 1.0em}}.editor__text-editor{width: 100%;height: 300px}textarea.editor__code-editor{display: none}div.editor__code-editor{position: absolute;height: 500px;width: 100%;font-size: 14px;z-index: 256}textarea.editor__text-editor,textarea.editor__wiki-editor,textarea.editor__html-editor{width: 100%}a.editorlink:active,a.editorlink:hover{font-weight: normal;text-decoration: none}a.editorlink:link,a.editorlink:visited{font-weight: normal;text-decoration: none}fieldset{border: 1px solid;border-bottom: 0px;border-left: 0px;border-right: 0px;margin-top: 20px;margin-bottom: 20px;margin-left: 0px;margin-right: 0px;padding: 10px}div.line.filedropzone > div.input {width:100%;height:100px;border:1px dotted;}/** +/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family: 'Oxygen', 'Roboto', -apple-system, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;font-size: 0.8em;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%}body{margin: 0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display: block}audio,canvas,progress,video{display: inline-block;vertical-align: baseline}audio:not([controls]){display: none;height: 0}[hidden],template{display: none}a{background: transparent}a:active,a:hover{outline: 0}abbr[title]{border-bottom: 1px dotted}b,strong{font-weight: bold}dfn{font-style: italic}h1{font-size: 1.2em;margin: .67em 0}mark{background: #ff0;color: #000}small{font-size: 80%}sub,sup{font-size: 75%;line-height: 0;position: relative;vertical-align: baseline}sup{top: -0.5em}sub{bottom: -0.25em}img{border: 0}svg:not(:root){overflow: hidden}figure{margin: 1em 40px}hr{-moz-box-sizing: content-box;box-sizing: content-box;height: 0}pre{overflow: auto}code,kbd,pre,samp{font-family: 'Source Code Pro', monospace, monospace;font-size: 1em}button,input,optgroup,select,textarea{color: inherit;background-color: inherit;font: inherit;margin: 0}button{overflow: visible}button,select{text-transform: none}button,html input[type="button"]{-webkit-appearance: button;cursor: pointer}button[disabled],html input[disabled]{cursor: default}button input::-moz-focus-inner{border: 0;padding: 0}input{line-height: normal}input[type="reset"],input[type="submit"]{-webkit-appearance: button;cursor: pointer}input[type="checkbox"],input[type="radio"]{box-sizing: border-box;padding: 0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height: auto}input[type="search"]{-webkit-appearance: textfield;-moz-box-sizing: content-box;-webkit-box-sizing: content-box;box-sizing: content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance: none}fieldset{border: 1px solid #c0c0c0;margin: 0 2px;padding: .35em .625em .75em}legend{border: 0;padding: 0}textarea{overflow: auto}optgroup{font-weight: bold}table{border-collapse: collapse;border-spacing: 0}td,th{padding: 0}*,::before,::after{box-sizing: border-box}.initial-hidden{display: none}.sort-value{display: none}*{transition: width ease .3s}legend{font-size: 1.1em;font-weight: bold;padding: 0 .5em}@font-face{font-family: 'Oxygen';font-style: normal;font-weight: 400;src: local('Oxygen Regular'), local('Oxygen-Regular'), url('../font/oxygen-v7-latin-regular.woff') format('woff2'), url('../font/oxygen-v7-latin-regular.woff') format('woff')}@font-face{font-family: 'Source Code Pro';font-style: normal;font-weight: 400;src: local('Source Code Pro'), local('SourceCodePro-Regular'), url('../font/source-code-pro-v8-latin-regular.woff2') format('woff2'), url('../font/source-code-pro-v8-latin-regular.woff') format('woff')}@font-face{font-family: 'Material Icons';font-style: normal;font-weight: 400;src: local('Material Icons'), local('MaterialIcons-Regular'), url('../font/MaterialIcons-Regular.woff2') format('woff2'), url('../font/MaterialIcons-Regular.woff') format('woff')}.image-icon{font-family: 'Material Icons';font-weight: normal;font-style: normal;display: inline-block;text-transform: none;letter-spacing: normal;word-wrap: normal;white-space: nowrap;direction: ltr;font-feature-settings: 'liga'}.image-icon.image-icon--action-el_date:after{content: "date_range"}.image-icon.image-icon--action-el_infodate:after{content: "info"}.image-icon.image-icon--action-el_insert:after{content: "vertical_split"}.image-icon.image-icon--action-el_text:after{content: "spellcheck"}.image-icon.image-icon--action-el_info:after{content: "info"}.image-icon.image-icon--action-el_dynamic:after{content: "play_circle_outline"}.image-icon.image-icon--action-el_longtext:after{content: "view_headline"}.image-icon.image-icon--action-el_code:after{content: "code"}.image-icon.image-icon--action-el_link:after{content: "call_made"}.image-icon.image-icon--action-image:after{content: "image"}.image-icon.image-icon--action-link:after{content: "call_made"}.image-icon.image-icon--action-url:after{content: "link"}.image-icon.image-icon--action-text:after{content: "text_format"}.image-icon.image-icon--action-page:after{content: "insert_drive_file"}.image-icon.image-icon--action-file:after{content: "save"}.image-icon.image-icon--action-modellist:after{content: "device_hub"}.image-icon.image-icon--action-model:after{content: "device_hub"}.image-icon.image-icon--action-folder:after{content: "folder_open"}.image-icon.image-icon--action-languagelist:after{content: "language"}.image-icon.image-icon--action-language:after{content: "language"}.image-icon.image-icon--action-template:after{content: "receipt"}.image-icon.image-icon--action-templatelist:after{content: "receipt"}.image-icon.image-icon--action-groupllist:after{content: "group"}.image-icon.image-icon--action-group:after{content: "group"}.image-icon.image-icon--action-userlist:after{content: "person"}.image-icon.image-icon--action-user:after{content: "person"}.image-icon.image-icon--action-profile:after{content: "person_pin"}.image-icon.image-icon--method-settings:after{content: "settings"}.image-icon.image-icon--action-configuration:after{content: "settings"}.image-icon.image-icon--action-projectlist:after{content: "list"}.image-icon.image-icon--action-project:after{content: "account_balance"}.image-icon.image-icon--action-membership{content: "card_membership"}.image-icon.image-icon--method-password:after{content: "lock"}.image-icon.image-icon--method-publish:after{content: "cloud_upload"}.image-icon.image-icon--method-show:after{content: "slideshow"}.image-icon.image-icon--method-src:after{content: "code"}.image-icon.image-icon--method-acl:after{content: "https"}.image-icon.image-icon--method-rights:after{content: "https"}.image-icon.image-icon--method-archive:after{content: "schedule"}.image-icon.image-icon--method-mail:after{content: "mail"}.image-icon.image-icon--method-search:after{content: "search"}.image-icon.image-icon--method-add:after{content: "add_box"}.image-icon.image-icon--menu-close:after{content: "close"}.image-icon.image-icon--menu-fullscreen:after{content: "fullscreen"}.image-icon.image-icon--menu-menu:after{content: "menu"}.image-icon.image-icon--menu-qrcode:after{content: "phone_android"}.image-icon.image-icon--node-open:after{content: "expand_more"}.image-icon.image-icon--node-closed:after{content: "chevron_right"}iframe{width: 100%;height: 500px;display: block}div.breadcrumb,div.breadcrumb a,div.panel > div.title{font-weight: bold}div#noticebar{display: block;position: fixed;bottom: 40px;right: 40px;width: 25em;z-index: 113}div#noticebar div.notice{border: 2px solid #000;padding: 1.1em;margin: 5px;position: relative;border-radius: 5px;-moz-border-radius: 5px;-webkit-border-radius: 5px;-khtml-border-radius: 5px;-webkit-box-shadow: 3px 2px 5px #000;-moz-box-shadow: 3px 2px 5px #000;box-shadow: 3px 2px 5px #000}div#noticebar div.notice .or-notice-toolbar{float: right;margin: 0 .2em;font-size: 2em;color: gray;cursor: pointer}div#noticebar div.notice:hover .or-notice-toolbar{color: black}div#noticebar div.notice.full{display: block;position: fixed;bottom: 10%;top: 10%;right: 10%;left: 10%;width: 80%;z-index: 114}div#noticebar div.notice.error div.text{font-weight: bold}div#noticebar div.notice div.text{font-size: 1.1em}div#noticebar div.notice:after{content: '';position: absolute;right: 0;top: 50%;width: 0;height: 0;border: 1em solid transparent;border-right: 0;margin-top: -1em;margin-right: -1em}div#noticebar div.notice div.log{display: none;position: relative;max-height: 90%;overflow: auto;font-family: 'Source Code Pro', Monospace, Monospaced, Courier}div#noticebar div.notice.full div.log{display: block}div.onrowvisible{visibility: hidden;display: inline}a:link,a:visited{font-weight: normal;text-decoration: none}a:active,a:hover{font-weight: normal;text-decoration: none}img[align=left],img[align=right]{padding-right: 1px;padding-left: 1px}div.logo h2{font-weight: normal;font-size: 24px}div.logo p{font-size: 13px}label,.clickable{cursor: pointer}.or-droppable--active{background-color: #2E8B57 !important;cursor: move}.or-droppable--hover{background-color: #00d95a !important;cursor: move}img.icon{padding: 4px;width: 16px;height: 16px}div.panel ul.views li{vertical-align: middle;padding: 0px;cursor: pointer;border-right: 1px solid #000;-moz-border-radius-topleft: 5px;-webkit-border-radius-topleft: 5px;-khtml-border-top-radius-topleft: 5px;-moz-border-radius-topright: 5px;-webkit-border-radius-topright: 5px;-khtml-border-top-radius-topright: 5px;border-top-right-radius: 5px;display: inline;white-space: nowrap;float: left}div.panel{margin: 0px;padding: 0px}table{overflow: auto;border: 2px}table tr.headline > td{padding: 3px;font-weight: bold}table tr.headline > td.sort-asc > span:last-child:after{content: " \2193"}table tr.headline > td.sort-desc > span:last-child:after{content: " \2191"}table tr.data > td{padding: 3px}table td.readonly{font-style: italic;font-weight: normal}table td.default{font-style: normal;font-weight: normal}table td.changed{font-style: normal;font-weight: bold}table td.notice{margin: 0px;padding: 5%;text-align: center}table.notice{width: 100%;border: 1px solid;border-spacing: 0px}table.notice th{padding: 2px;white-space: nowrap;border-bottom: 1px solid #000;font-weight: normal;text-align: left}table.notice tr.warning{margin: 0px;padding: 0px}table.calendar{table-layout: fixed;border-collapse: collapse;text-align: center}table.calendar td{border: 1px dotted}table td.notice{margin: 0px;padding: 5%;text-align: center}table.notice{width: 100%;border: 1px solid;border-spacing: 0px}table.notice th{padding: 2px;white-space: nowrap;border-bottom: 1px solid #000;font-weight: normal;text-align: left}table.notice tr.warning{margin: 0px;padding: 0px}table.calendar{table-layout: fixed;border-collapse: collapse;text-align: center}table.calendar td{border: 1px dotted}table td.motd{border-left: 3px solid #f00;border-right: 3px solid #f00;font-weight: bold;padding: 10px;margin: 10px}table td:hover > div.onrowvisible{visibility: visible}table tr.diff > td.line{background-color: #000;padding-right: 2px;border-right: 3px solid #000;text-align: right;margin-right: 2px}table tr.diff > td.old{background-color: red}table tr.diff td.new{background-color: green}table tr.diff td.notequal{background-color: yellow}table tr td.help{font-style: italic}table tr.headline td.help{font-style: normal}table td.logo{padding: 10px;margin: 0px}@media screen and (max-width: 40em){table tr.headline{display: none}table tr > td{display: block}}div.panel div.status{padding: 10px}div.panel div.status div.error,div.message.error{background: url(../images/notice_error.png) no-repeat;background-position: 5px 7px}div.panel div.status div.warn,div.message.warn{background: url(../images/notice_warning.png) no-repeat;background-position: 5px 7px}div.panel div.status div.ok,div.message.ok{background: url(../images/notice_ok.png) no-repeat;background-position: 5px 7px}div.panel div.status div.info,div.message.info{background: url(../images/notice_info.png) no-repeat;background-position: 5px 7px}div.panel div.status div,div.message{border: 1px solid #000;padding: 5px 0px 5px 25px;margin: 10px 10px 20px 10px;-moz-border-radius: 5px;-webkit-border-radius: 5px;-khtml-border-radius: 5px;border-radius: 5px}#workbench div.panel.fullscreen{display: block;z-index: 109;position: fixed;top: 0;left: 0;background-color: #000;margin: 0px;width: 100% !important;height: 100% !important}#workbench div.panel.fullscreen > div.content{width: 100% !important;height: 100% !important}#workbench div.panel{border: 1px solid #000;margin: 0px;padding: 0px;-moz-border-radius: 5px;-webkit-border-radius: 5px;-khtml-border-radius: 5px;border-radius: 5px}#workbench div.container,#workbench div.panel,#workbench div.divider{display: inline;float: left;margin: 0px}#workbench div.panel > div.content{overflow: auto}.invisible{visibility: hidden}.visible{visibility: visible}div.panel{position: relative}div.content div.bottom{height: 55px;width: 100%;position: absolute;padding-right: 40px;bottom: 0px;right: 0px;xvisibility: hidden}div.content div.bottom > div.command{xvisibility: visible;float: right;z-index: 20}div.content form[data-autosave='true'] div.command{display: none}div.content > form{padding-bottom: 45px}.or-form{padding: 1em}.or-form input[type=checkbox] + label,.or-form input[type=radio] + label{width: 80%}.or-form div.inputholder > div.dropdown{width: 70%}.or-form input.submit{padding: 7px;border: 0px;-moz-border-radius: 7px;-webkit-border-radius: 7px;-khtml-border-radius: 7px;border-radius: 7px;margin-left: 20px;cursor: pointer}.or-form input[type=text],.or-form select,.or-form textarea{width: 100%;padding: 12px;border: 1px solid #ccc;border-radius: 4px;box-sizing: border-box;resize: vertical}.or-form label{padding: 12px 12px 12px 0;display: inline-block}.or-form input[type=submit]{color: white;padding: 12px 20px;border: none;border-radius: 4px;cursor: pointer;float: right}.or-form div.label{float: left;width: 25%;margin-top: 6px}.or-form div.input{float: left;width: 75%;margin-top: 6px}.or-form .line:after{content: "";display: table;clear: both}.or-form .or-form-row{display: flex;align-items: center}.or-form .or-form-row .or-form-label{width: 25%}.or-form .or-form-row .or-form-input{width: 75%}.or-form .or-form-actionbar{display: flex;justify-content: end;padding: 1em}.or-form .or-form-actionbar .or-form-btn{padding: 1em 2em;min-width: 14em;border: 0;border-radius: .5em;-moz-border-radius: .5em;-webkit-border-radius: .5em;-khtml-border-radius: .5em;cursor: pointer}.or-form .or-form-actionbar .or-form-btn--primary{font-weight: bold}@media screen and (max-width: 65rem){.or-form div.label,.or-form div.input{width: 100%;margin-top: 0}.or-form .or-form-row{flex-direction: column}.or-form .or-form-row .or-form-label,.or-form .or-form-row .or-form-input{width: 100%}.or-form .or-form-actionbar{align-items: center}.or-form .or-form-actionbar .or-form-btn{width: 100%}}div.search > div.inputholder{padding-top: 1px}div.inputholder > input,div.inputholder > textarea,div.inputholder > select{padding: 2px;margin: 0px}fieldset > div input.name,fieldset > div span.name{font-weight: bold}fieldset > div input.filename,fieldset > div input.extension,fieldset > div input.ansidate,fieldset > div span.filename,fieldset > div span.extension,fieldset > div span.ansidate{font-family: 'Source Code Pro', Monospace, Monospaced, Courier}dl.notice{padding: 15px}div.content pre,div.dropdown{min-width: 150px;max-width: 450px}div.filler div.headermenu > a.entry,div.filler div.header a.back.button{font-size: 0.8em}img.image-icon{visibility: hidden}.CodeMirror{height: auto}.or-linklist{display: flex;flex-direction: column;padding: 10% 20%}.or-linklist > .or-linklist-line{border: 1px solid;margin-top: 1em;padding: 1em;border-radius: .5em;-moz-border-radius: .5em;-webkit-border-radius: .5em;-khtml-border-radius: .5em}.qrcode-wrapper{width: 100%;border: 0;font-size: 2em;border-radius: 1em;-moz-border-radius: 1em;-webkit-border-radius: 1em;-khtml-border-radius: 1em;padding: 2em;text-align: center}.qrcode-wrapper > div{display: inline-block}#title{overflow: hidden;padding: 5px}.or-menu{display: flex;justify-content: space-between}.or-menu .or-menu-group{display: flex}.or-menu .or-menu-group:nth-last-child(1) div.dropdown{right: 10px}.or-menu .or-menu-group i.image-icon{width: 1.1em}.or-menu .or-menu-group div > div.arrow-down{width: 0;height: 0;margin: 6px;padding: 0px;margin-top: 10px}.or-menu .or-menu-group div.toolbar-icon{padding: 2px;margin-left: 10px;float: left}.or-menu .or-menu-group div.toolbar-icon.user,.or-menu .or-menu-group div.toolbar-icon.search,.or-menu .or-menu-group div.toolbar-icon.history{float: right;margin-right: 10px;margin-left: 10px}.or-menu .or-menu-group div.toolbar-icon.menu{cursor: default}.or-menu .or-menu-group div.toolbar-icon.search .inputholder{margin: 0;padding: 0;border: 0;display: inline}.or-menu .or-menu-group div.toolbar-icon.search .inputholder input{border: 0;margin: 0;padding: 0;width: 3em;display: inline}.or-menu .or-menu-group div.toolbar-icon div.dropdown{z-index: 2;min-width: 250px;display: none;position: absolute;padding: 5px 0px;font-style: normal;font-weight: normal;text-decoration: none}.or-menu .or-menu-group div.toolbar-icon div.dropdown div.entry{padding: 0}.or-menu .or-menu-group div.toolbar-icon div.dropdown div.entry > a{display: flex;align-items: center;padding: 0 .5em}.or-menu .or-menu-group div.toolbar-icon div.dropdown div.entry > a *{margin: 0.25em}.or-menu .or-menu-group div.toolbar-icon div.dropdown div.entry > a span:first-of-type{flex: 1}.or-menu .or-menu-group div.toolbar-icon div.dropdown div.entry > .text{display: block;margin: 10px}.or-menu .or-menu-group div.toolbar-icon div.dropdown div.divide{height: 1px;width: 100%;margin-top: 5px;margin-bottom: 5px}.or-menu.open .toolbar-icon.open > div.dropdown{display: block}#navigation ul.or-navtree-list{list-style-type: none;margin: 0;padding: 0}#navigation ul.or-navtree-list ul{margin-left: 18px}#navigation ul.or-navtree-list .or-navtree-node-control{width: 18px;min-width: 18px;float: left;height: 18px;cursor: pointer}#navigation ul.or-navtree-list img{cfloat: left}#navigation ul.or-navtree-list .or-navtree-node{margin: 0;padding: 0 0px;line-height: 18px;font-weight: normal;white-space: nowrap}div#dialog > .view{overflow: auto;position: absolute;top: 5%;left: 10%;width: 80%;height: 80%;z-index: 101;border: 1px solid !important}div#dialog.is-closed{display: none}div#dialog div#filler{position: absolute;z-index: 100;top: 0;left: 0;height: 100%;width: 100%;opacity: 0.5}div#dialog div#filler span.icon{opacity: 1;font-size: 3em;font-weight: bold;text-align: center;width: 40px;height: 40px;position: absolute;right: 20px;top: 20px}.arrow{width: 0;height: 0;margin: 6px;padding: 0;font-size: 0}.arrow.arrow-down{border-right: 6px solid transparent;border-top: 6px solid;border-left: 6px solid transparent;border-bottom: 4px solid transparent;margin-top: 10px}.arrow.arrow-right{border-top: 6px solid transparent;border-left: 6px solid;border-bottom: 6px solid transparent;border-right: 4px solid transparent;margin-left: 10px}#editor .dirty{font-weight: bold}.visible-for-nojs{display: none}html.nojs .noscript{display: block}.toggle-open-close .on-click-open-close{cursor: pointer;font-weight: normal}.toggle-open-close > div{transition: height ease .5s;overflow: hidden}.toggle-open-close.closed .on-click-open-close .on-closed{display: inline}.toggle-open-close.closed .on-click-open-close .on-open{display: none}.toggle-open-close.closed > div{height: 0}.toggle-open-close.open > div{display: block}.toggle-open-close.open .on-click-open-close .on-closed{display: none}.toggle-open-close.open .on-click-open-close .on-open{display: inline}html,body{width: 100%;height: 100%}div#workbench{width: 100%;height: 100%;display: flex;flex-direction: column}div#workbench div.panel.modal{position: relative;z-index: 101;border: 1px solid !important}div#workbench > header{height: 3.0rem}div#workbench > header .toolbar-icon .arrow-down{display: inline}@media only screen and (max-width: 55rem){div#workbench > header .toolbar-icon span.label,div#workbench > header .toolbar-icon .arrow-down{display: none}}div#workbench > div{flex: 1;display: flex;flex-direction: row;min-width: 0;min-height: 0}div#workbench > div > main{flex: 1}div#workbench > div > nav,div#workbench > div > main{min-width: 0;min-height: 0;overflow-y: auto;overflow-x: hidden}div#workbench > div > nav{width: 33%}@media only screen and (max-width: 55rem){div#workbench > div > nav{width: 0}}div#workbench > div > nav.small{width: 5em;opacity: 0.5;overflow-y: hidden}div#workbench > div > nav.small:hover{width: 50%;overflow-y: auto;opacity: 1}div#workbench > div > nav.open{overflow-y: auto}@media only screen and (max-width: 55rem){div#workbench > div > nav.open{width: 90%}}@media only screen and (min-width: 75rem){div#workbench > div > nav{width: 33%;overflow-y: auto}}div#workbench > div > nav div.view{height: 100%}div#workbench > div > main > section{margin: 1.5em;border: 1px solid;border-radius: 5px;-moz-border-radius: 5px;-webkit-border-radius: 5px;-khtml-border-radius: 5px}@media only screen and (max-width: 55rem){div#workbench > div > main > section{margin: 0.5em}}div#workbench > div > main > section header *{display: inline}div#workbench > div > main > section .view-toolbar{display: inline}div#workbench > div > main > section.closed .view-toolbar{display: none}div#workbench > div > main > section.is-empty{display: none}#title .toggle-nav-small{display: inline}@media only screen and (max-width: 55rem){#title .toggle-nav-small{display: none}}#title .toggle-nav-open-close{display: none}@media only screen and (max-width: 55rem){#title .toggle-nav-open-close{display: inline}}#title .toolbar-icon.search{width: 8em}@media only screen and (max-width: 55rem){#title .toolbar-icon.search{width: 8em}}@media only screen and (max-width: 55rem){#title .toolbar-icon.search input{width: 3em}}.loader{background: url(../images/loader.gif) no-repeat;background-position: center, top;height: 30px;opacity: 0.5;cursor: wait}@media only screen and (max-width: 55rem){html{font-size: 1.0em}}.editor__text-editor{width: 100%;height: 300px}textarea.editor__code-editor{display: none}div.editor__code-editor{position: absolute;height: 500px;width: 100%;font-size: 14px;z-index: 256}textarea.editor__text-editor,textarea.editor__wiki-editor,textarea.editor__html-editor{width: 100%}a.editorlink:active,a.editorlink:hover{font-weight: normal;text-decoration: none}a.editorlink:link,a.editorlink:visited{font-weight: normal;text-decoration: none}fieldset{border: 1px solid;border-bottom: 0px;border-left: 0px;border-right: 0px;margin-top: 20px;margin-bottom: 20px;margin-left: 0px;margin-right: 0px;padding: 10px}div.or-dropzone-upload > div.input{width: 100%;height: 100px;border: 1px dotted}/** * simplemde v1.11.2 * Copyright Next Step Webs, Inc. * @link https://github.com/NextStepWebs/simplemde-markdown-editor diff --git a/modules/cms-ui/themes/default/production/combined.min.js b/modules/cms-ui/themes/default/production/combined.min.js @@ -11012,7 +11012,7 @@ jQuery.trumbowyg={langs:{en:{viewHTML:"View HTML",undo:"Undo",redo:"Redo",format /* ./modules//template-engine/components/html/form/form.min.js */;$(document).on('orViewLoaded',function(e,t){if($('div.panel form input[type=password]').length>0&&$('#uname').attr('value')!=''){$('div.panel form input[name=login_name] ').attr('value',$('#uname').attr('value'));$('div.panel form input[name=login_password]').attr('value',$('#upassword').attr('value'))};$(e.target).find('form[data-autosave="true"] input[type="checkbox"]').click(function(){$(this).closest('form').submit()});$(e.target).find('input.submit.cancel').click(function(){});$(e.target).find('form').submit(function(e){if($(this).data('target')=='view'){formSubmit($(this));e.preventDefault()}})});function formSubmit(e){var r=$('<div class="notice info"><div class="text loader"></div></div>');$('#noticebar').prepend(r);$(r).show();$(e).find('.error').removeClass('error');var a=$(e).serializeArray(),t={};$(a).each(function(e,r){t[r.name]=r.value});var s=$(e).attr('method').toUpperCase();if(s=='GET'){Workbench.loadViewIntoElement($(e).parent('.view'),t.action,t.subaction,t.id,t)} else{var o='./api/';$(e).closest('div.content').addClass('loader');o+='?output=json';a['output']='json';if($(e).data('async')||$(e).data('async')=='true'){$('#dialog > .view').html('');$('#dialog').removeClass('is-open').addClass('is-closed')};$.ajax({'type':'POST',url:o,data:a,success:function(t,a,o){$(e).closest('div.content').removeClass('loader');$(r).remove();doResponse(t,a,e)},error:function(t,a,o){$(e).closest('div.content').removeClass('loader');$(r).remove();try{let error=jQuery.parseJSON(t.responseText);notify('','','error',error.error,[error.description])}catch(s){let msg=t.responseText;notify('','','error','Server Error',[msg])}}});$(e).fadeIn()}};function doResponse(e,t,r){if(t!='success'){alert('Server error: '+t);return};$.each(e['notices'],function(t,e){if($(r).data('async')=='true')notifyBrowser(e.text);notify(e.type,e.name,e.status,e.text,e.log);if(e.status=='ok'){if($(r).data('async')!='true'){$('#dialog > .view').html('').hide();$('#dialog').removeClass('is-open').addClass('is-closed');$(r).closest('div.panel').find('div.header ul.views li.action.active').removeClass('dirty')}} else{}});$.each(e['errors'],function(e,t){$('input[name='+t+']').addClass('error').parent().addClass('error').parents('fieldset').addClass('show').addClass('open')});if(!e.control){};if(e.control.redirect)window.location.href=e.control.redirect}; -/* ./modules//template-engine/components/html/upload/upload.min.js */;$(document).on('orViewLoaded',function(e,n){var t=$(e.target).find('form'),o=$(e.target).find('div.filedropzone > div.input');o.on('dragenter',function(e){e.stopPropagation();e.preventDefault();$(this).css('border','1px dotted gray')});o.on('dragover',function(e){e.stopPropagation();e.preventDefault()});o.on('drop',function(e){$(this).css('border','1px dotted red');e.preventDefault();var n=e.originalEvent.dataTransfer.files;handleFileUpload(t,n)});$(e.target).find('input[type=file]').change(function(){var e=$(this).prop('files');handleFileUpload(t,e)})});function handleFileUpload(e,o){for(var a=0,r;r=o[a];a++){var n=new FormData();n.append('file',r);n.append('action','folder');n.append('subaction','createfile');n.append('output','json');n.append('token',$(e).find('input[name=token]').val());n.append('id',$(e).find('input[name=id]').val());var t=$('<div class="notice info"><div class="text loader"></div></div>');$('#noticebar').prepend(t);$(t).show();$.ajax({'type':'POST',url:'./api/',cache:!1,contentType:!1,processData:!1,data:n,success:function(n,o,a){$(t).remove();doResponse(n,o,e)},error:function(n,o,i){$(e).closest('div.content').removeClass('loader');$(t).remove();var r;try{var a=jQuery.parseJSON(n.responseText);r=a.error+'/'+a.description+': '+a.reason}catch(d){r=n.responseText};notify('error',r)}})}}; +/* ./modules//template-engine/components/html/upload/upload.min.js */;$(document).on('orViewLoaded',function(e,n){var a=$(e.target).find('form'),o=$(e.target).find('div.or-dropzone-upload > div.input');o.on('dragenter',function(e){e.stopPropagation();e.preventDefault();$(this).css('border','1px dotted gray')});o.on('dragover',function(e){e.stopPropagation();e.preventDefault()});o.on('drop',function(e){$(this).css('border','1px dotted red');e.preventDefault();var n=e.originalEvent.dataTransfer.files;handleFileUpload(a,n)});$(e.target).find('input[type=file]').change(function(){var e=$(this).prop('files');handleFileUpload(a,e)})});function handleFileUpload(e,o){for(var t=0,r;r=o[t];t++){var n=new FormData();n.append('file',r);n.append('action','folder');n.append('subaction','createfile');n.append('output','json');n.append('token',$(e).find('input[name=token]').val());n.append('id',$(e).find('input[name=id]').val());var a=$('<div class="notice info"><div class="text loader"></div></div>');$('#noticebar').prepend(a);$(a).show();$.ajax({'type':'POST',url:'./api/',cache:!1,contentType:!1,processData:!1,data:n,success:function(n,o,t){$(a).remove();doResponse(n,o,e)},error:function(n,o,i){$(e).closest('div.content').removeClass('loader');$(a).remove();var r;try{var t=jQuery.parseJSON(n.responseText);r=t.error+'/'+t.description+': '+t.reason}catch(d){r=n.responseText};notify('error',r)}})}}; /* ./modules//template-engine/components/html/tree/tree.min.js */;$(document).on('orViewLoaded',function(o,n){}); /* ./modules/cms-ui/themes/default/script/openrat.min.js */;var OR_THEMES_EXT_DIR='modules/cms-ui/themes/';$(function(){$('html').removeClass('nojs');$('.initial-hidden').removeClass('initial-hidden');registerHeaderEvents();registerWorkbenchEvents();$('.view').each(function(e){afterViewLoaded(this)});window.onpopstate=function(e){Navigator.navigateTo(e.state)};initActualHistoryState();Workbench.initialize();loadTree();$(document).keyup(function(e){if(e.keyCode==27){$('#dialog .view').fadeOut('fast').html('');$('#dialog').removeClass('is-open').addClass('is-closed')}});$('.keystroke').each(function(){let keystrokeElement=$(this);let keystroke=keystrokeElement.text();if(keystroke.length==0)return;let keyaction=function(){keystrokeElement.click()};$(document).bind('keydown',keystroke,keyaction)});$('#noticebar .notice .image-icon--menu-close').click(function(){$(this).closest('.notice').fadeOut('fast',function(){$(this).remove()})});$('#noticebar .notice').each(function(){let noticeToClose=this;setTimeout(function(){$(noticeToClose).fadeOut('slow',function(){$(this).remove()})},30*1000)});registerOpenClose($('section.toggle-open-close'));$('section.toggle-open-close .on-click-open-close').click(function(){var t=$(this).closest('section');if(t.hasClass('disabled'))return;var e=t.find('div.view-loader');if(e.children().length==0)Workbench.loadNewActionIntoElement(e)})});function initActualHistoryState(){var e={};e.name=window.document.title;var t=new URLSearchParams(window.location.search);if(t.has('action')){e.action=t.get('action');e.id=t.get('id');e.name=window.document.title;e.data={};var t=Array.from(t.entries());for(var i in t){e.data[t[i][0]]=t[i][1]};Navigator.toActualHistory(e);filterMenus(e.action,e.id,e.data)}};var Navigator=new function(){'use strict';this.navigateTo=function(e){Workbench.loadNewActionState(e)};this.navigateToNew=function(e){Workbench.loadNewActionState(e);window.history.pushState(e,e.name,createUrl(e.action,null,e.id,e.data,!1))};this.navigateToNewAction=function(e,t,i,n){var o={action:e,method:t,id:i,data:n};this.navigateToNew(o)};this.toActualHistory=function(e){window.history.replaceState(e,e.name,createUrl(e.action,null,e.id,e.data,!1))}},Workbench=new function(){'use strict';this.initialize=function(){this.initializePingTimer()};this.initializePingTimer=function(){var e=function(){$.ajax(createUrl('title','ping',0))},t=5;window.setInterval(e,t*60*1000)};this.loadNewActionState=function(e){Workbench.loadNewAction(e.action,e.id,e.data)};this.loadNewAction=function(e,t,i){$('#editor').attr('data-action',e);$('#editor').attr('data-id',t);$('#editor').attr('data-extra',JSON.stringify(i));$('#workbench section.closed .view-loader').empty();$('#workbench section.open .view-loader').each(function(e){var t=$(this);Workbench.loadNewActionIntoElement(t)});filterMenus(e,t,i)};this.loadNewActionIntoElement=function(e){var t=$('#editor').attr('data-action'),i=$('#editor').attr('data-id'),n=$('#editor').attr('data-extra'),o=e.data('method');Workbench.loadViewIntoElement(e,t,o,i,n)};this.loadViewIntoElement=function(e,t,i,n,o){var a=createUrl(t,i,n,o,!0);e.empty().fadeTo(1,0.7).addClass('loader').html('').load(a,function(n,o,a){e.fadeTo(350,1);$(e).removeClass('loader');if(o=='error'){$(e).html('');notify('','','error','Server Error',['Server Error while requesting '+t+' -> '+i,n]);return};afterViewLoaded(e)})}};function registerWorkbenchEvents(){$('div.header').dblclick(function(){fullscreen(this)});$('div#filler').click(function(){if($('div#dialog').hasClass('modal')){} else{$('div#dialog').removeClass('is-open').addClass('is-closed');$('div#dialog > .view').html('')}})};function loadView(e,t,i,n,o){Navigator.navigateToNewAction(t,i,n,o)};function afterViewLoaded(e){var t=$(e).closest('section');t.toggleClass('is-empty',$(e).is(':empty'));$(e).trigger('orViewLoaded');$(e).closest('div.panel').find('div.header div.dropdown div.entry.perview').remove();$(e).find('.toggle-nav-open-close').click(function(){$('nav').toggleClass('open')});$(e).find('.toggle-nav-small').click(function(){$('nav').toggleClass('small')});$(e).find('div.headermenu > a').each(function(e,t){});$(e).find('div.header > a.back').each(function(t,i){$(i).removeClass('button').wrap('<div class="entry perview" />').parent().appendTo($(e).closest('div.panel').find('div.header div.dropdown').first())});$(e).find('div.selector.tree').each(function(){var e=this;$(this).orTree({type:'project',selectable:$(e).attr('data-types').split(','),id:$(e).attr('data-init-folderid'),onSelect:function(t,i,n){var o=$(e).parent();$(o).find('input[type=text]').attr('value',t);$(o).find('input[type=hidden]').attr('value',n)}})});registerDragAndDrop(e);$(e).find('input').change(function(){$(this).parent('div.view').addClass('dirty')});$(e).find('.or-theme-chooser').change(function(){setUserStyle(this.value)})};function registerDragAndDrop(e){registerDraggable(e);registerDroppable(e)};function registerDraggable(e){$(e).find('.or-draggable').draggable({helper:'clone',opacity:0.7,zIndex:2,distance:10,cursor:'move',revert:'false'})};function registerTreeBranchEvents(e){registerDraggable(e)};function registerDroppable(e){$(e).find('.or-droppable').droppable({accept:'.or-draggable',hoverClass:'or-droppable--hover',activeClass:'or-droppable--active',drop:function(e,t){let dropped=t.draggable;$(this).find('.or-selector-link-value').val(dropped.data('id'));$(this).find('.or-selector-link-name').val(dropped.data('id'))}})};function registerHeaderEvents(){$('body').click(function(){$('.toolbar-icon.menu').parents('.or-menu').removeClass('open')});$('#title .toolbar-icon.menu').click(function(e){e.stopPropagation();$(this).parents('.or-menu').toggleClass('open')});$('#title .toolbar-icon.menu').mouseover(function(){$(this).parents('.or-menu').find('.toolbar-icon.menu').removeClass('open');$(this).addClass('open')});$('#title div.search input').orSearch({dropdown:'#title div.search div.dropdown'})};function fullscreen(e){$(e).closest('div.panel').fadeOut('fast',function(){$(this).toggleClass('fullscreen').fadeIn('fast')})};function loadTree(){$('.or-navtree .or-navtree-node').orTree()};function submitUrl(e,t){postUrl(t,e)};function postUrl(e,t){e+='&output=json';$.ajax({'type':'POST',url:e,data:{},success:function(e,i,n){$('div.panel div.status div.loader').html('&nbsp;');doResponse(e,i,t)}})};function startDialog(e,t,i,n,o){if(!t)t=$('#editor').attr('data-action');n=$('#editor').attr('data-id');$('div#dialog > .view').html('<div class="header"><img class="icon" title="" src="./themes/default/images/icon/'+i+'.png" />'+e+'</div>');$('div#dialog > .view').data('id',n);$('div#dialog').removeClass('is-closed').addClass('is-open');Workbench.loadViewIntoElement($('div#dialog > .view'),t,i,n,o)};function modalView(e,t){alert('modalView() called');return};function setTitle(e){if(e)$('head > title').text(e+' - '+$('head > title').data('default'));else $('head > title').text($('head > title').data('default'))};function openNewAction(e,t,i,n){$('nav').removeClass('open');setTitle(e);setNewAction(t,i,n)};function filterMenus(e,t,i){$('div.clickable').addClass('active');$('div.clickable.filtered').removeClass('active').addClass('inactive');$('div.clickable.filtered.on-action-'+e).addClass('active').removeClass('inactive');$('div.clickable.filtered a').attr('data-action',e);$('div.clickable.filtered a').attr('data-id',t);$('div.clickable.filtered a').attr('data-extra',JSON.stringify(i))};function setNewAction(e,t,i){Navigator.navigateToNewAction(e,'edit',t,i)};function setNewId(e){};function notifyBrowser(e){if(!('Notification' in window)){return} diff --git a/modules/cms-ui/themes/default/style/theme/openrat-theme.less b/modules/cms-ui/themes/default/style/theme/openrat-theme.less @@ -487,7 +487,7 @@ dan color: @cms-text-color; } - div.line.filedropzone > div.input { + div.or-dropzone-upload > div.input { background-color: @cms-title-text-color; border: 1px dotted @cms-text-color; } diff --git a/modules/template-engine/components/html/upload/upload.css b/modules/template-engine/components/html/upload/upload.css @@ -1,5 +1,6 @@ -div.line.filedropzone > div.input { - width: 100%; - height: 100px; - border: 1px dotted; +div.or-dropzone-upload > div.input { + width: 100%; + height: 100px; + border: 1px dotted; } +/*# sourceMappingURL=data:application/json,%7B%22version%22%3A3%2C%22sources%22%3A%5B%22upload.less%22%5D%2C%22names%22%3A%5B%5D%2C%22mappings%22%3A%22AAAA%2CGAAG%2CmBAAsB%2CMAAG%3BCAE3B%3BCACA%3BCAEA%2CkBAAA%22%7D */+ \ No newline at end of file diff --git a/modules/template-engine/components/html/upload/upload.js b/modules/template-engine/components/html/upload/upload.js @@ -3,7 +3,7 @@ $(document).on('orViewLoaded',function(event, data) { var form = $(event.target).find('form'); // Dateiupload über Drag and Drop - var dropzone = $(event.target).find('div.filedropzone > div.input'); + var dropzone = $(event.target).find('div.or-dropzone-upload > div.input'); dropzone.on('dragenter', function (e) { e.stopPropagation(); diff --git a/modules/template-engine/components/html/upload/upload.less b/modules/template-engine/components/html/upload/upload.less @@ -1,4 +1,4 @@ -div.line.filedropzone > div.input +div.or-dropzone-upload > div.input { width: 100%; height: 100px; diff --git a/modules/template-engine/components/html/upload/upload.min.css b/modules/template-engine/components/html/upload/upload.min.css @@ -1 +1 @@ -div.line.filedropzone > div.input {width:100%;height:100px;border:1px dotted;}- \ No newline at end of file +div.or-dropzone-upload > div.input{width: 100%;height: 100px;border: 1px dotted}+ \ No newline at end of file diff --git a/modules/template-engine/components/html/upload/upload.min.js b/modules/template-engine/components/html/upload/upload.min.js @@ -1 +1 @@ -;$(document).on('orViewLoaded',function(e,n){var t=$(e.target).find('form'),o=$(e.target).find('div.filedropzone > div.input');o.on('dragenter',function(e){e.stopPropagation();e.preventDefault();$(this).css('border','1px dotted gray')});o.on('dragover',function(e){e.stopPropagation();e.preventDefault()});o.on('drop',function(e){$(this).css('border','1px dotted red');e.preventDefault();var n=e.originalEvent.dataTransfer.files;handleFileUpload(t,n)});$(e.target).find('input[type=file]').change(function(){var e=$(this).prop('files');handleFileUpload(t,e)})});function handleFileUpload(e,o){for(var a=0,r;r=o[a];a++){var n=new FormData();n.append('file',r);n.append('action','folder');n.append('subaction','createfile');n.append('output','json');n.append('token',$(e).find('input[name=token]').val());n.append('id',$(e).find('input[name=id]').val());var t=$('<div class="notice info"><div class="text loader"></div></div>');$('#noticebar').prepend(t);$(t).show();$.ajax({'type':'POST',url:'./api/',cache:!1,contentType:!1,processData:!1,data:n,success:function(n,o,a){$(t).remove();doResponse(n,o,e)},error:function(n,o,i){$(e).closest('div.content').removeClass('loader');$(t).remove();var r;try{var a=jQuery.parseJSON(n.responseText);r=a.error+'/'+a.description+': '+a.reason}catch(d){r=n.responseText};notify('error',r)}})}};- \ No newline at end of file +;$(document).on('orViewLoaded',function(e,n){var a=$(e.target).find('form'),o=$(e.target).find('div.or-dropzone-upload > div.input');o.on('dragenter',function(e){e.stopPropagation();e.preventDefault();$(this).css('border','1px dotted gray')});o.on('dragover',function(e){e.stopPropagation();e.preventDefault()});o.on('drop',function(e){$(this).css('border','1px dotted red');e.preventDefault();var n=e.originalEvent.dataTransfer.files;handleFileUpload(a,n)});$(e.target).find('input[type=file]').change(function(){var e=$(this).prop('files');handleFileUpload(a,e)})});function handleFileUpload(e,o){for(var t=0,r;r=o[t];t++){var n=new FormData();n.append('file',r);n.append('action','folder');n.append('subaction','createfile');n.append('output','json');n.append('token',$(e).find('input[name=token]').val());n.append('id',$(e).find('input[name=id]').val());var a=$('<div class="notice info"><div class="text loader"></div></div>');$('#noticebar').prepend(a);$(a).show();$.ajax({'type':'POST',url:'./api/',cache:!1,contentType:!1,processData:!1,data:n,success:function(n,o,t){$(a).remove();doResponse(n,o,e)},error:function(n,o,i){$(e).closest('div.content').removeClass('loader');$(a).remove();var r;try{var t=jQuery.parseJSON(n.responseText);r=t.error+'/'+t.description+': '+t.reason}catch(d){r=n.responseText};notify('error',r)}})}};+ \ No newline at end of file diff --git a/modules/util/Upload.class.php b/modules/util/Upload.class.php @@ -25,24 +25,15 @@ */ class Upload { - var $filename; - var $extension; - var $value; - var $size; - var $error = ''; + public $filename; + public $extension; + public $value; + public $size; + + public $parameterName; + + public static $DEFAULT_PARAM_NAME = 'file'; - - /** - * Stellt fest, ob der Upload geklappt hat. - * - * @return boolean - */ - function isValid() - { - return empty($this->error); - } - - /** * Bearbeitet den Upload einer Datei.<br> @@ -52,34 +43,38 @@ class Upload */ function __construct( $name='file' ) // Konstruktor { - global $FILES; + $this->parameterName = $name; + } - if ( !isset($FILES[$name]) || - !isset($FILES[$name]['tmp_name']) || - !is_file($FILES[$name]['tmp_name']) ) - { - $this->error = 'No file received.'; - return; - } - - $this->size = filesize($FILES[$name]['tmp_name']); - - $fh = fopen( $FILES[$name]['tmp_name'],'r' ); - - $this->value = fread($fh,$this->size); - fclose( $fh ); - - $this->filename = $FILES[$name]['name']; - $this->extension = ''; + public function processUpload() + { + $name = $this->parameterName; - $p = strrpos( $this->filename,'.' ); // Letzten Punkt suchen + if ( !isset($_FILES[$name]) || + !isset($_FILES[$name]['tmp_name']) || + !is_file($_FILES[$name]['tmp_name']) ) + { + throw new InvalidArgumentException('No file received under the key '.$name ); + } - if ($p!==false) // Wennn letzten Punkt gefunden, dann dort aufteilen - { - $this->extension = substr( $this->filename,$p+1 ); - $this->filename = substr( $this->filename,0,$p ); - } - } + $this->size = filesize($_FILES[$name]['tmp_name']); + + $fh = fopen( $_FILES[$name]['tmp_name'],'r' ); + + $this->value = fread($fh,$this->size); + fclose( $fh ); + + $this->filename = $_FILES[$name]['name']; + $this->extension = ''; + + $p = strrpos( $this->filename,'.' ); // Letzten Punkt suchen + + if ($p!==false) // Wennn letzten Punkt gefunden, dann dort aufteilen + { + $this->extension = substr( $this->filename,$p+1 ); + $this->filename = substr( $this->filename,0,$p ); + } + } } ?> \ No newline at end of file