CINXE.COM
Dateien – BioM Community Network
<!doctype html> <html lang="de" class="application "> <head> <meta charset="utf-8"> <meta http-equiv="content-language" content="de"> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=no"> <link type="image/x-icon" href="/uploads/favicons/favicon-51050-7ea305.ico" rel="shortcut icon" /> <title>Dateien – BioM Community Network</title> <!-- Google Analytics --> <script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;</script> <script> window.ga_enabled = ""; </script> <!-- End Google Analytics --> <script type="text/javascript"> var ROOT = '/'; </script> <script>var _MODULES_ = {"PUBLISH_NEWS":1,"ASSETS":0,"GROUPS":{"COMMUNITIES":"1","SECRET_GROUPS":"0","INVITE_EXTERNAL_MEMBERS":"1"},"DATES":{"COMMUNITIES":"1","GROUPS":"1","STUDIES":"0","DISCOUNTS":"1","PAID_REGISTRATION_CANCEL":"1","INVITE_CM_PERSONS":"1","SAVE_PARTICIPANTS_IN_CM":"1","REGULAR_USER_OBJECT_CREATION":"1","SHORT_DATE_ON_THE_CALENDAR":"0","DATES_TIME_INTERVAL_WINDOWS":"0"},"DISCUSSIONS":{"COMMUNITIES":"1","GROUPS":"1","DATES":"1","DISCUSSION_ARCHIVING":"0"},"FILES":{"COMMUNITIES":"1","GROUPS":"1","DATES":"1","JOBS":"1","WIKI":"0","SOP":1,"PERSONAL_NOTE":"1","UPLOAD_BIG_VIDEO_FILES":"0"},"SEARCH_SYNONYMS":0,"PEOPLE":{"LIST":"1"},"COMPANIES":{"LIST":"1"},"NEWSLETTERS":{"BASE":"1","NEWSLETTER_TEMPLATES_FOR_COMMUNITY_ADMINS":"1"},"CRM":{"CM_PERSONS_AND_COMPANIES":"1","MERGE_TOOL":"1","MERGE_TOOL_CM_PROFILE":1,"CM_PROFILE_SYNC":"1","CM_PROFILE_SYNC_ENABLED":1,"PRE_REGISTERED_USERS":"1","PAYMENTS":"1","DATES":"1","GROUPS":"1","COMMUNICATION_LOG":"1","ZIP_REGION":"1","RESTRICTION_EMAILS_DOMAINS":"0","FLEXIBLE_NETWORK_REGISTRATION":"1","FLEXIBLE_NETWORK_REGISTRATION_COMPANY_CREATION":"1","FLEXIBLE_FILTERS_SAVED_SEARCHES":"1","CM_NON_MEMBERS_ONLY":"0","NEWSLETTER_OPT_IN":"1","PROMPT_WHEN_ADDING_NEW_PERSON":"0","TAKE_PHOTO":"0","PRINT":"1","MASS_EDIT":"1","OFFICE_365_SYNCHRONIZATION":"0","MAILING_LISTS":"1"},"JOBS":1,"SUBSCRIPTIONS":{"JOBS":"1","DATE_REGISTRATIONS":"1","DATES":"0"},"CHATS":1,"NEWS":1,"WIKI":1,"RELATIONS":{"PEOPLE":"1","COMPANIES":"1","ASSETS":"0","ANALYZER":"1"},"AUDIT_TRAIL":0,"PMA_KIBANA":0,"STUDIES":0,"SITES":0,"EXTENDED_ROLES":0,"DOCTORS":0,"MED_CONDITIONS":0,"REPORTS":0,"OTHER_SETTINGS":{"USER_DELETION_DISABLE":"0","COMMUNITY_DELETION_DISABLE":"1","FORCE_PASSWORD_CHANGE":"0"},"QUESTIONNAIRE":0,"WORKFLOWS":0,"AIDA_NOTIFICATIONS":{"AIDA":"0"},"RELATIONS_HISTORY":0,"SEARCH_SETTINGS":{"FACETED_SEARCH_F1":"1","SEARCH_BY_EMPTY_FIELDS":"1"},"SOPS":0,"CHEMICALS":0};var SHOW_COOKIE_PRIVACY = 1;var isUserLogged = false;;var VERSION_BUILD = "30785b60";var TIMEZONE = "Europe\/Berlin";var NOC_SOCKET_NAMESPACE = "biom";var COOKIE_DOMAIN = ".bio-m.org";var CALENDAR_LICENSE = "0772935386-fcs-1703852373";var IS_ALLOW_GO_TO_MP = 0;;var IS_NEW_LAYOUT_AVAILABLE = true;var IS_HIERARCHICAL_CLUSTER = 0;;var LOCALE = "de";;var CSRFTokenSettings = {"headerName":"x-csrft","cookieName":"csrf-token","inputName":"xcsrft"};var OBJECT_TITLES = {"people":"Personen","companies":"Firmen","medications":"Assets","discussions":"Diskussionen","chats":"Chats","comments":"Kommentare","messages":"Benachrichtigungen","dates":"Events","groups":"Gruppen","news":"News","files":"Dateien","jobs":"Stellenb\u00f6rse","wiki":"Wiki","studies":"Studien","sops":"SOPs","sections":"Abschnitte","abbreviations":"Abk\u00fcrzungen","chemicals":"Substanz­datenbank"};var SEARCH_RESOURCE_CONTEXT_MAP = {"contacts":"people","companies":"companies","medications":"medications","discussions":"discussions","chats":"chats","messages":"messages","dates":"dates","groups":"groups","news":"news","files":"files","jobs":"jobs","wiki":"wiki","studies":"studies","sops":"sops","abbreviations":"abbreviations"};var WYSIWYG_IMG_URL_IS_TOO_LONG = "Der Wert ist zu lang.";var MAINTENANCE_DICTIONARY = {"before_maintenance":"Bitte speichern Sie Ihre Daten. Das System wird bald aktualisiert.","maintenance":"Das System wird momentan gewartet.","after_maintenance":"Das System wurde aktualisiert."};var MAINTENANCE_COUNTDOWN_LESS_THEN_MINUTE = "in weniger als einer Minute";var AFTER_MAINTENANCE_FLAG = "after_maintenance";var AFTER_MAINTENANCE_DURATION = 1800;var OBJECT_RESOURCE = "objects";var SITE_RESOURCE = "sites";var SITE_CONTEXT = "sites";var ASSET_RESOURCE = "medications";var ASSET_CONTEXT = "medications";var DOCTOR_RESOURCE = "doctors";var DOCTOR_CONTEXT = "doctors";var MED_CONDITION_RESOURCE = "medical-conditions";var MED_CONDITION_CONTEXT = "medical-conditions";var APPOINTMENT_RESOURCE = "appointments";var APPOINTMENT_CONTEXT = "appointments";var REPORT_RESOURCE = "reports";var REPORT_CONTEXT = "reports";var COMMUNICATION_LOG_RESOURCE = "communication-log";var COMMUNICATION_LOG_CONTEXT = "communication-log";var QUESTIONNAIRE_RESOURCE = "questionnaires";var QUESTIONNAIRE_CONTEXT = "questionnaires";var LOCATION_RESOURCE = "locations";var LOCATION_CONTEXT = "locations";var WIKI_RESOURCE = "wiki";var WIKI_CONTEXT = "wiki";var THREAD_RESOURCE = "thread";var THREAD_CONTEXT = "thread";var WORKFLOW_TEMPLATE_RESOURCE = "workflow-templates";var WORKFLOW_TEMPLATE_CONTEXT = "workflow-templates";var TASK_TEMPLATE_RESOURCE = "task-templates";var TASK_TEMPLATE_CONTEXT = "task-templates";var WORKFLOW_RESOURCE = "workflows";var WORKFLOW_CONTEXT = "workflows";var TASK_RESOURCE = "tasks";var TASK_CONTEXT = "tasks";var ACTIVE_WORKFLOW_RESOURCE = "active-workflows";var ACTIVE_WORKFLOW_CONTEXT = "active-workflows";var SOP_RESOURCE = "sops";var SOP_CONTEXT = "sops";var SECTION_RESOURCE = "sections";var SECTION_CONTEXT = "sections";var COMMENT_RESOURCE = "comment";var COMMENT_CONTEXT = "comment";var PRODUCT_RESOURCE = "products";var PRODUCT_CONTEXT = "products";var ABBREVIATION_RESOURCE = "abbreviations";var ABBREVIATION_CONTEXT = "abbreviations";var CHEMICAL_RESOURCE = "chemicals";var CHEMICAL_CONTEXT = "chemicals";var DISCUSSION_RESOURCE = "discussions";var DISCUSSION_CONTEXT = "discussion";var SSO_RESOURCE = "sso";var SSO_CONTEXT = "sso";var PERSON_RESOURCE = "persons";var PERSON_CONTEXT = "persons";var STUDY_RESOURCE = "studies";var STUDY_CONTEXT = "studies";var LAYOUT_STATE_OLD = 1;var LAYOUT_STATE_NEW = 2;var LAYOUT_STATE_CURRENT = 2</script> <link type="text/css" rel="stylesheet" href="/ui2/live/css/cc6d908eb3d7fc244a477c47046f59ac.css" /> <link type="text/css" rel="stylesheet" href="/skins/../specific-skins/community-2-bio-m.new-1732031032/main.css" /><style> html { overflow: hidden; } </style> <script language="Javascript" type="text/javascript" src="/ui2/live/js/c3bf588c1107fd4da4af7551abc34f09.js"></script> </head> <body ><div v-bind:class="{ 'pita-visible-mobile': pitaState.mobile, 'pita-visible': pitaState.desktop, 'pita-invisible': !pitaState.desktop }" > <div id="message-ie11-support" class="warning-message hidden"> Da Microsoft die Unterst眉tzung von IE11 ab den 30.November 2020 wegen m枚glicher Sicherheitsproblem eingestellt hat, unterst眉tzen wir den Browser auch nicht mehr. Bitte benutzen Sie eine aktuelle Version der Chrome, edge oder Firefox Browser.</div> <div class="error_page"> <div class="title_page"> <h1>Es gibt ein Problem mit ihren Berechtigungseinstellungen</h1> <div class="clearfix"></div> </div> <div class="text-block"> <div class="text-holder"> <div class="text-frame"> <p>Der Zugriff ist nicht m枚glich. F眉r weitere Informationen wenden Sie sich bitte an <a href="mailto:CommunityNetwork@Bio-M.org" >CommunityNetwork@Bio-M.org</a> oder den Administrator.</p> <p><a href="https://network.bio-m.org/">zur Homepage gehen</a></p> </div> </div> </div> </div> </div> <!--[issue-report]--> <!--[PHP Debug messages]--> <script type="x-template" id="tpl-global-search"> <div> <div class="search_button-search" @click.stop="trigger" v-bind:class="{highlighted: state.isSearchShown}"> <span class="icon icon-search __m"></span> </div> <form class="form __global-search" ref="globalSearch" @keyup.enter="submit()" @submit.prevent.stop v-bind:class="{'__search-dropdown-shown': state.isDropdownShown}"> <div class="form-row __horizontal" v-bind:class="{'__mobile-expanded': (state.isSearchShown && (!state.isRightSection || state.isDropdownShown))}"> <label class="sr-only">Suche</label> <div class="input-group"> <input class="form-control __transparent __m" type="text" :placeholder="'Suche ' + (object.title ? 'in' + ' ' + object.title : '')" v-model="query" @keyup="debounce(update, 500)" @click="focus" v-bind:class="{'__focus': state.isSearchShown}" ref="searchInput" > <div class="input-group_icon __left" @click="focus"><span class="icon icon-search __m"></span></div> <div class="input-group_icon __right" @click="clearTags()"><span class="icon icon-delete-sml __s"></span></div> </div> </div> <ul class="search-menu scroll-content" v-if="state.isDropdownShown" @click="focus"> <!-- Back btn --> <li class="search-menu_item __back-item" v-if="state.back"> <span class="search-menu_item_text">zur眉ck</span> <span class="search-menu_item_icon icon __s icon-prev-sml"></span> <span class="search-menu_item_result-box">Alle 9999 Ergebnisse</span> </li> <!-- Latest search --> <li class="search-menu_item __heading" v-if="searches.length"> <span class="search-menu_item_text">letzte Suchen</span> </li> <li class="search-menu_item" v-for="search in searches" @click="submit(search.query)"> <span class="search-menu_item_text" v-html="highlightBy(escape(search.query), query)"></span> <span class="search-menu_item_result-box">{{ search.results | formatNumber }} {{ search.results | pluralize('Ergebnis', 'Ergebnisse') }}</span> </li> <!-- Filters --> <li class="search-menu_item __heading" v-if="filters.length"> <span class="search-menu_item_text">Filter</span> </li> <li class="search-menu_item __sub-item __filters" v-for="filter in filters" v-bind:class="{'__disabled': filter.disabled}"> <span class="search-menu_item_text">{{ filter.title }}</span> <span class="search-menu_item_icon icon __s icon-radio-sml"></span> <span class="search-menu_item_result-box">{{ filter.results }} {{ search.results | pluralize('Ergebnis', 'Ergebnisse') }}</span> </li> </ul> </form> </div> </script> <script type="x-template" id="tpl-search-tags"> <div class="tags clearfix"> <ul class="tags-list"> <li class="tags_item __main" v-if="context"> <span class="tags_item_text">{{ getContextTitle() }}</span> <span class="tags_item_icon icon __s icon-delete-sml" @click="setContext('')"></span> </li> <li class="tags_item __user-input" v-for="(tag, index) in tags" :class="{'__user-input': tag.isUserInput, '__main': tag.isMain, '__secondary': tag.isSecondary}"> <span class="tags_item_text">{{ tag.text }}</span> <span class="tags_item_icon icon __s icon-delete-sml" @click="remove(index)"></span> </li> </ul> <div class="actions __filters-action" v-if="showFiltersToggle && context"> <span class="actions_link pita-toggler hidden-md hidden-lg __mobile"> <span class="actions_link_icon icon __s icon-filter-sml"></span> <span class="actions_link_text">Filter</span> </span> <span class="actions_link pita-toggler hidden-sm hidden-xs"> <span class="actions_link_icon icon __s icon-filter-sml"></span> <span class="actions_link_text">Filter</span> </span> </div> </div> </script> <script type="x-template" id="tpl-context-switcher"> <a class="list_item __show-more _not-highlight" @click.stop.prevent="click()"> mehr Details anzeigen </a> </script> <script type="x-template" id="tpl-search-filters"> <div> <div class="bar list-bar text-center analytics-event-tracker-options" v-bind:class="{ '__category-list': state.category.title }"> <ul class="bar-menu __absolute __left" v-if="state.category.title"> <li class="bar-menu_item"> <span class="bar-menu_icon __mobile icon __s icon-prev-sml" v-on:click="back"></span> </li> </ul> <span class="bar_heading" v-if="state.category.title">{{ state.category.title }}</span> <span class="bar_heading" v-else>Filter</span> <ul class="bar-menu __absolute __right"> <li class="bar-menu_item pita-toggler __mobile"> <span class="bar-menu_icon __mobile icon __s icon-check-sml"> <span class="bar-menu_text">erledigt</span> </span> </li> </ul> </div> <div class="scroll-box"> <div class="scroll-content"> <div class="content-box list-box"> <form class="form __search-filters"> <ul class="list filters"> <li class="list_header filters_item __back-item" v-if="state.category.title" v-on:click="back"> <span class="filters_item_text">{{ state.category.title }}</span> <span class="filters_item_icon icon __s icon-prev-sml"></span> </li> <li class="list_header" v-else>Filter</li> <div v-show="categories.length" transition="slide-right"> <li class="list_item filters_item" v-for="category in categories" v-bind:class="{ 'disabled': category.disabled }" v-on:click="selectCategory(category.fieldName, $event)"> <span class="filters_item_text">{{ category.title }}</span> <span class="filters_item_result-box" v-if="category.selectedFiltersCount">{{ category.selectedFiltersCount }} ausgew盲hlt</span> <span class="filters_item_icon icon __s icon-next-sml"></span> </li> </div> <div v-show="filters.length" transition="slide-left"> <li class="filters_item" v-for="filter in filters" v-bind:class="{ 'disabled': !filter.results }" v-on:click="selectFilter(filter.id, $event)"> <span class="filters_item_text">{{ filter.title }}</span> <span class="filters_item_icon icon __s" v-bind:class="[filter.checked ? 'icon-radio-on-sml' : 'icon-radio-sml']" ></span> <span class="filters_item_result-box">{{ filter.results }} {{ filter.results | pluralize('Ergebnis', 'Ergebnisse') }}</span> </li> </div> </ul> </form> </div> </div> </div> </div> </script> <script type="x-template" id="tpl-action_list-toggle"> <li class="actions_item dropdown_item"> <a class="actions_link dropdown_item_link"> <span v-if="activeState" :class="['actions_link_icon dropdown_link_icon icon __s', nextState.iconClass]"></span> <span v-if="activeState" class="actions_link_text dropdown_link_text">{{ nextState.title }}</span> </a> <!-- Used for configuration only --> <input id='config' type="hidden" value='{ "details": {"title": "Details"}, "list": {"title": "Liste"}, "tiles": {"title": "Kacheln"}, "cards": {"title": "Karten"}, "calendar": {"title": "Kalender"} }' /> </li> </script> <script type="x-template" id="tpl-preview-modal"> <div class="modal row" v-if="isPreviewVisible"> <div class="modal_bar col-xs-12"> <ul class="bar-menu __absolute __left hidden-md hidden-lg"> <li class="bar-menu_item "> <span class="icon icon-prev-sml __s analytics-event-tracker" @click="closePreview"></span> </li> </ul> <span class="modal_bar_heading">{{ currentSlide.fileName }}</span> <ul class="bar-menu __absolute __right" ref="barMenu"> <li class="bar-menu_item" data-trigger-dropdown="1"> <span class="bar-menu_icon icon __s icon-menu-sml analytics-event-tracker __mobile"></span> <ul class="actions actions-bar"> <li class="actions_item dropdown_item" v-if="currentSlide.detailsLink"> <a title="View details" class="actions_link dropdown_item_link ajax-link analytics-event-tracker" data-tracker-label='Right area: "View details" button' :href="currentSlide.detailsLink" @click="openDetails" v-if="!currentSlide.marker" > <span class="actions_link_icon dropdown_link_icon icon __s icon-view-details-sml"> </span> <span class="actions_link_text dropdown_link_text"> Detailansicht </span> </a> </li> <li v-if="currentSlide.isAllowedDownload" class="actions_item dropdown_item"> <a title="Download" class="actions_link dropdown_item_link ajax-link no-ajax-link analytics-event-tracker" data-tracker-label='Right area: "Download" button' :href="currentSlide.downloadLink" > <span class="actions_link_icon dropdown_link_icon icon __s icon-download-sml"> </span> <span class="actions_link_text dropdown_link_text"> Herunterladen </span> </a> </li> <li v-if="currentSlide.isAllowedCollaborate" class="actions_item dropdown_item"> <a title="Zusammenarbeiten" class="actions_link dropdown_item_link ajax-link analytics-event-tracker" data-tracker-label='Right area: "Contribute" button' :href="currentSlide.contributeLink" @click="closePreview()" > <span class="actions_link_icon dropdown_link_icon icon __s icon-microsoft-sml"> </span> <span class="actions_link_text dropdown_link_text"> Zusammenarbeiten </span> </a> </li> </ul> </li> <li class="bar-menu_item"> <span class="icon icon-close-sml __s analytics-event-tracker visible-md visible-lg" @click="closePreview"></span> </li> </ul> </div> <div class="modal_container" ref="modalContainer"> <template v-for="(file, index) in currentSlides"> <div :class="{ 'modal_preview': true, '__with-iframe': (file.hasPreview && !file.isVideo) || file.createdDocument, '__with-message': !file.isImage && !file.hasPreview && !file.createdDocument, '__left-slide': index === 0, '__central-slide': index === 1, '__right-slide': index === 2, }" v-if="file" :key="file.id"> <!-- Loading Spinner --> <img src="/images2/icons/circle-loading-gif.gif" class="modal_preview_object __loader" v-if="!file.isLoaded && (file.isImage || (file.hasPreview && !file.isVideo) || file.createdDocument)" /> <img :src="file.downloadPath" class="modal_preview_object" :ref="'image' + index" v-if="file.isImage" :style="{'display': file.isLoaded ? 'block' : 'none'}" @load="file.isLoaded = true" /> <video class="modal_preview_object" :poster="file.posterPath" id="player" playsinline controls v-else-if="file.isVideo && file.hasPreview" > <source :src="file.previewPath" type="video/mp4" /> </video> <audio class="modal_preview_object" id="player" playsinline controls v-else-if="file.isAudio"> <source :src="file.downloadPath" type="audio/mp3" /> </audio> <iframe class="modal_preview_iframe" :src="file.createdDocument ? file.documentPath : file.previewPath" v-else-if="(file.hasPreview && !file.isVideo) || file.createdDocument" :ref="'modalIframe' + index" onLoad=" if (!this.parentElement) { return; } var previewModal = this.ownerDocument.querySelector('.modal .modal_container'); if (!previewModal) { return; } var body = this.contentDocument.body; previewModal = previewModal.self; body.ontouchstart = previewModal.onTouchStart; body.ontouchmove = previewModal.onTouchMove; body.ontouchend = previewModal.onTouchEnd; body.onkeyup = function (e) { if (e.keyCode == 27) { /* ESC */ previewModal.closePreview(); } else if (e.keyCode == 37 && previewModal.currentSlideIndex !== 0) { /* ArrowLeft */ previewModal.showPreviousFile(); } else if (e.keyCode == 39 && previewModal.currentSlideIndex !== previewModal.files.length - 1) { /* ArrowRight */ previewModal.showNextFile(); } }; previewModal._updateLoadedStatusOfSlide(this); " :style="{'display': file.isLoaded ? 'block' : 'none'}" ></iframe> <div v-else> Die Vorschau ist nicht verf眉gbar. </div> </div> <div class="modal_preview" v-else :key="index === 0 ? '-1' : '+1'"></div> </template> </div> <div class="modal_button __left" v-if="existsPreviousFile()" @click="showPreviousFile"> <i class="icon __m icon-prev-sml"></i> </div> <div class="modal_button __right" v-if="existsNextFile()" @click="showNextFile"> <i class="icon __m icon-next-sml"></i> </div> </div> </script> <script type="x-template" id="tpl-user-avatar"> <img v-if="user.photo_id" :src="user.avatarLink"> <div v-else :class="['no-avatar', '_not-highlight', {'__s': isSmall}]"> <span class="fname">{{ user.fChar }}</span> <span class="lname">{{ user.lChar }}</span> </div> </script> <script type="text/x-template" id="tpl-outline-section"> <li v-if="currentLevel < destinationLevel" class="tree-item" :class="{'item-movable': currentLevel === 0, 'disabled': !isMovable()}" > <ul> <outline-section :initial-section-config="sectionConfig" :relatives-statuses="relativesStatuses" :page-type-id="pageTypeId" :currentLevel="currentLevel + 1" :destinationLevel="destinationLevel" v-on:selectMenuItem="selectMenuItem" ></outline-section> </ul> </li> <li v-else class="tree-item" :class="{__active: sectionConfig.isActive, 'item-movable': currentLevel === 0, 'disabled': !isMovable()}" :id="'section-menu-item-' + sectionConfig.id" > <span class="movable icon __s icon-grip-sml"></span> <div @click="selectMenuItem()"> <div class="flex align-items-center flex-space-between overflow-hidden"> <span class="ellipsis margin-right-xs">{{pageTypeId}}. {{sectionConfig.number}} {{sectionConfig.name}}</span> <div> <span class="icon __xs" :class="getEditingIcon(sectionConfig)" :title="getStatusName(sectionConfig)"></span> <span class="icon __xs" :class="getApprovingIcon(sectionConfig)" :title="getStatusName(sectionConfig)"></span> </div> </div> </div> </li> </script> <script type="text/x-template" id="tpl-outline-sections"> <ul v-sortable="{handle: '.movable', filter: '.disabled', onChoose: onChoose, onUnchoose: onUnchoose, onMove: onMove, onEnd: onEndMoving, draggable: '.item-movable'}" > <outline-section v-for="(section, index) in sectionsConfig" :initial-section-config="section" :relatives-statuses="relativesStatuses[index]" :key="section.id" :page-type-id="pageTypeId" :current-level="0" :destination-level="section.number.split('.').length - 1" v-on:selectMenuItem="selectMenuItem" ></outline-section> </ul> </script> <script type="text/x-template" id="tpl-outline-sop"> <div> <form v-for="page in pagesConfig" :id="'sop-page-link-' + page.type_id" :action="page.url" method="post" data-partial-update="#sop-edit-document-page|#sop-right-content-tabs|#sop-short-profile" ></form> <ul class="tree-list"> <li class="tree-item" :class="{__active: page.active}" v-for="page in pagesConfig" :key="page.type_id" > <div class="flex flex-space-between"> <span class="ajax-form-submit" :data-form-id="'sop-page-link-' + page.type_id" data-section-reload="1" > {{page.name}} </span> <div v-if="page.type_id != sopPageTypes.abbreviations"> <span class="icon __xs" :class="getEditingIcon(page)" :title="getStatusName(page)"></span> <span class="icon __xs" :class="getApprovingIcon(page)" :title="getStatusName(page)"></span> </div> </div> <outline-sections v-if="hasNestedItems(page)" :page-type-id="page.type_id" :page-id="page.id" v-on:unsetActive="unsetActive" ></outline-sections> </li> </ul> </div> </script> <script type="text/x-template" id="tpl-thread-sop"> <div class="flex-column full-height"> <div class="flex align-items-center margin-right-s margin-left-s margin-bottom-xs"> <div class="list_header padding-0 flex flex-space-between hidden-sm hidden-xs">Kommentare</div> <div class="flex flex-align-right full-width"> <ul class="bar-menu __folded padding-0"> <li class="bar-menu_item active"> <span class="bar-menu_icon icon icon-filter-sml __s __link" @click.self="toggleFilterPopUpMenu"></span> <ul class="dropdown __right-arrow" :class="{hidden: !filterPopUpMenu}"> <li class="actions_item dropdown_item"> <label class="actions_link dropdown_item_link"> <input type="radio" name="filterResolved" v-model="filters.resolved" :value="false" @change="reloadThreads"> <span class="actions_link_text dropdown_link_text margin-left-xs">noch nicht gel枚st</span> </label> </li> <li class="actions_item dropdown_item"> <label class="actions_link dropdown_item_link"> <input type="radio" name="filterResolved" v-model="filters.resolved" :value="true" @change="reloadThreads"> <span class="actions_link_text dropdown_link_text margin-left-xs">gel枚st</span> </label> </li> </ul> </li> </ul> </div> </div> <div class="thread-separator"></div> <div class="thread-list"> <div v-if="typeof threads !== 'undefined' && threads.length"> <thread-item :id="'thread-' + thread.id" v-for="(thread, key) in threads" :key="key" :thread="thread" :isWorkflow="isWorkflow" :isQuestion="isQuestions" :isGeneral="isGeneral" :getGeneralSectionTitle="getGeneralSectionTitle" @toggleNewThread="toggleNewThread" @scrollToSection="scrollToSection" ></thread-item> </div> <div v-else class="list_header text-center margin-top-m margin-bottom-m margin-right-m margin-left-m"> Noch keine Themen vorhanden. </div> </div> <div class="thread-separator"></div> <div v-if="inputBlockActive && sections.length && selectValue" class="padding-s padding-bottom-0"> <div class="form-row padding-left-0"> <select class="form-control" name="select-section-for-thread" v-model="selectValue"> <option v-for="section in sections" :value="section.id"> <template v-if="isWorkflow"> {{ pageTypeId + '. ' + section.number + ' ' + (section.name ? section.name : '') }} </template> <template v-else-if="isQuestions"> Frage {{ section.number }} </template> <template v-else-if="isGeneral"> {{ getGeneralSectionTitle(section.type) }} </template> <template v-else> {{ section.name ? section.name : '' }} </template> </option> </select> </div> <div class="flex align-items-top"> <div class="form-row wysiwyg-wrapper padding-left-0 margin-bottom-0" ref="threadContainer"> <textarea ref="threadValue" placeholder="Schreiben Sie hier Ihre Nachricht."></textarea> </div> <span title="senden" class="icon icon-paper-airplane __xs button __primary padding-xs margin-left-xs" @click.prevent="sendNewThread" ></span> </div> </div> </div> </script> <script type="text/x-template" id="tpl-thread-item"> <div> <div class="thread-item" :data-thread-object="thread.object_id" :data-thread-object-type="thread.object_type_id"> <div class="thread-title-block pointer"> <div class="thread-title-block_name flex flex-space-between" @click="scrollToSection"> <template v-if="isQuestion"> Frage {{ thread.title }} </template> <template v-else-if="isGeneral"> {{ getGeneralSectionTitle(thread.section_type) || thread.title }} </template> <template v-else> {{ (isWorkflow ? '#' : '') + thread.title }} </template> <span v-if="thread.is_reason" class="margin-left-s"> <span class="red-text">!</span> Grund </span> </div> <div class="thread-title-block_actions actions flex flex-align-right"> <div class="actions_link margin-0"> <span class="icon icon-link-make-sml __s actions_link_icon" @click="copyLink"></span> </div> <div> <span v-if="thread.resolved" class="icon icon-member-sml __s"></span> <div v-else class="actions_link" title="beheben" @click="resolve"> <span class="icon icon-member-sml __s actions_link_icon"></span> </div> </div> </div> </div> <thread-comments :comments="thread.comments" :thread-id="thread.id" :unchangeable="thread.resolved" ></thread-comments> <div v-if="!thread.resolved" class="reply-section margin-top-s"> <div v-if="inputActive || inputSendProcess" class="flex align-items-top"> <div class="form-row __multiline wysiwyg-wrapper padding-left-0" ref="replyContainer"> <textarea ref="newReply"></textarea> </div> <a id="send-reply" href="#" @click.prevent="sendReply"> <i title="senden" class="icon icon-paper-airplane __xs button __primary padding-xs margin-left-xs" ></i> </a> </div> <a v-else href="#" title="Antworten" class="actions_link" @click="switchReply" > <span class="actions_link_icon dropdown_link_icon icon __s icon-reply-sml"></span> <span class="actions_link_text dropdown_link_text">Antworten</span> </a> </div> </div> <div class="thread-separator"></div> </div> </script> <script type="text/x-template" id="tpl-thread-comments"> <div> <thread-comment class="margin-top-xs" :id="'thread-' + threadId + '-message-' + comment.id" v-for="(comment, key) in comments" :key="key" :comment="comment" :index="key" :count="comments.length" :unchangeable="unchangeable" ></thread-comment> </div> </script> <script type="text/x-template" id="tpl-thread-comment"> <div> <div class="flex flex-space-between align-items-center margin-bottom-xs"> {{ authorFullName }} <div class="flex flex-align-right align-items-center"> <span class="note font-xs"> <span>{{ comment.creation_date }}</span> </span> <ul class="bar-menu __folded padding-0"> <li class="bar-menu_item active"> <span class="bar-menu_icon icon __s __link __rotate-90 icon-menu-sml" @click.self="togglePopUpCommentMenu" ></span> <ul class="dropdown __right-arrow" :class="{hidden: !showPopUpCommentMenu}"> <div class="section"> <li class="actions_item dropdown_item" title="Link kopieren" :class="" > <a class="actions_link dropdown_item_link" @click="copyLink"> <span class="actions_link_icon dropdown_link_icon icon __s icon-link-make-sml"></span> <span class="actions_link_text dropdown_link_text">Link kopieren</span> </a> </li> <div v-if="comment.isAllowManage && !unchangeable"> <li class="actions_item dropdown_item" title="Bearbeiten" :class="" > <a class="actions_link dropdown_item_link" @click="switchEdit"> <span class="actions_link_icon dropdown_link_icon icon __s icon-edit-sml"></span> <span class="actions_link_text dropdown_link_text">Bearbeiten</span> </a> </li> <div v-if="canDelete"> <li class="actions_item dropdown_item" title="L枚schen" :class="" > <a class="actions_link dropdown_item_link" @click="deleteComment"> <span class="actions_link_icon dropdown_link_icon icon __s icon-delete-sml"></span> <span class="actions_link_text dropdown_link_text">L枚schen</span> </a> </li> </div> </div> </div> </ul> </li> </ul> </div> </div> <div class="item_info_subtitle"> <div v-if="inputActive || inputSendProcess" class="flex align-items-top"> <div class="form-row __multiline wysiwyg-wrapper padding-left-0" ref="commentContainer"> <textarea ref="editComment" placeholder="Schreiben Sie hier Ihre Nachricht."></textarea> </div> <span id="edit-comment" @click.prevent="editComment"> <i title="senden" class="icon icon-paper-airplane __xs button __primary padding-xs margin-left-xs" ></i> </span> </div> <div v-else> <span :class="{'comment-overflow': isLongComment && !showFullComment}" ref="comment" v-html="comment.comment"></span> <template v-if="isLongComment"> <a v-if="showFullComment" href="#" @click.prevent="toggleShowFullComment();"> ausblenden </a> <a v-else href="#" @click.prevent="toggleShowFullComment();"> ... weiterlesen </a> </template> </div> </div> <hr v-if="index + 1 !== count" class="margin-top-s margin-bottom-s"> </div> </script> <script type="text/x-template" id="tpl-scroll-to-thread"> <div class="relative pointer" :class="marginClass" title="Kommentare" @click="scrollToThread" > <span class="icon __s __link icon-discussion-sml cursor-pointer"></span> <span class="badge __plain cursor-pointer">{{ threadCount }}</span> </div> </script> <script type="text/x-template" id="tpl-details-status"> <div class="sop-status-from"> <div class="flex align-items-top margin-bottom-s bold-text"> <div v-if="statusBar.object.isWorkflow" class="section-number margin-right-xs"> {{ statusBar.object.pageTypeId }}. {{ statusBar.object.config.number }} </div> <div v-else-if="statusBar.object.isQuestions"> Frage {{ statusBar.object.config.number }} </div> <div class="flex-1 break-all"> {{ statusBar.object.config.name }} </div> </div> <div class="flex align-items-center margin-bottom-s"> <label class="form-label">Abschnitt</label> <i class="icon __xs" :class="statusBar.getEditingIcon(statusBar.object.config)"></i> <i class="icon __xs" :class="statusBar.getApprovingIcon(statusBar.object.config)"></i> </div> <form @submit.prevent="onSubmit"> <div class="flex align-items-center margin-bottom-s"> <label class="form-label _not-highlight" for="f[status]">Status</label> <div class="form-field"> <select ref="status" :name="'f[status]'" class="custom-dropdown" v-model="config.status" @change="onChangeStatus"> <option v-for="option, key in availableStatusesForDropdown" :value="key"> {{ option }} </option> </select> </div> </div> <div class="flex align-items-center margin-bottom-s"> <label class="form-label _not-highlight" for="f[editor_id]">Autor</label> <div class="form-field"> <select ref="owner" :name="'f[editor_id]'" class="custom-dropdown" v-model="config.editor_id" @change="onChange"> <option v-for="option, key in statusBar.editors" :value="key"> {{ option }} </option> </select> </div> </div> <div class="flex align-items-center margin-bottom-s"> <label class="form-label _not-highlight" for="f[approver_id]">Genehmiger</label> <div class="form-field"> <select ref="approver" :name="'f[approver_id]'" class="custom-dropdown" v-model="config.approver_id" @change="onChange"> <option v-for="option, key in statusBar.approvers" :value="key"> {{ option }} </option> </select> </div> </div> <div ref="reasonBlock" class="flex align-items-center margin-bottom-s"> <div class="form-field"> <label class="form-label _not-highlight required-field" for="f[reason]">Grund</label> <div class="form-row wysiwyg-wrapper padding-left-0 margin-bottom-0" ref="reasonContainer"> <textarea ref="reasonTextarea" :name="'f[reason]'"></textarea> </div> </div> </div> <div v-show="isChanged" class="flex align-items-center margin-bottom-s"> <div class="form-field"> <button class="button __primary">anwenden</button> </div> </div> </form> </div> </script> <script type="text/x-template" id="tpl-status-bar"> <div class="sop-status-bar flex align-items-center flex-space-between margin-bottom-m"> <div> <div class="flex align-items-center flex-wrap overflow-hidden margin-bottom-xs"> <div class="flex align-items-center"> <label class="form-label margin-right-m">Status</label> <i class="icon __xs" :class="getEditingIcon(object.config)"></i> <i class="icon __xs" :class="getApprovingIcon(object.config)"></i> <span class="margin-right-m no-break">{{statusName}}</span> </div> <div class="flex align-items-center"> <span v-if="getAssignedPerson()" class="form-label margin-right-xs">Von</span> <span class="margin-right-m ellipsis">{{getAssignedPerson()}}</span> </div> </div> <div v-if="isBelongSopPage && object.isPageWithoutDynamicSections" class="form-note"> <span v-if="isEditing">Alle Autoren k枚nnen diesen Abschnitt bearbeiten.</span> <span v-else-if="isApproving">Alle Genehmiger k枚nnen diesen Abschnitt bearbeiten.</span> </div> </div> <div class="flex align-items-center"> <a class="no-break" v-if="isAllowToUseApproveAllButton()" @click="approveAll">脛ndern in '{{sopApprovalStatusesNames[sopApprovalStatuses.APPROVED]}}'</a> <a class="no-break" v-else-if="isAllowToUseButtonChangeStatus()" @click="setNextStatus">脛ndern in '{{nextStatusName}}'</a> <span class="icon pointer __s __link __rotate-90 icon-menu-sml" @click="showDetailsStatus"></span> </div> </div> </script> </body> </html>