Διοίκηση Επιχειρήσεων (MBA)
Περιγραφή Προγράμματος
Το πρόγραμμα MBA του Πανεπιστημίου Λευκωσίας στοχεύει στην παροχή στους φοιτητές μιας στέρεας βάσης επιχειρηματικής εκπαίδευσης που τους επιτρέπει να γίνουν αποτελεσματικοί διευθυντές οπουδήποτε στο σημερινό ανταγωνιστικό περιβάλλον που αλλάζει γρήγορα. Το πρόγραμμα αυτό είναι ιδιαίτερα ενοποιημένο στο πρακτικό πλαίσο, παραμένοντας κοντά στην πραγματική επιχειρηματική πρακτική. Επιδιώκει να βοηθήσει τους μαθητές να αναπτύξουν τις δεξιότητές τους όσον αφορά τη διαχείριση και την ηγεσία, να λειτουργήσουν αποτελεσματικά σε ένα πολυπολιτισμικό περιβάλλον και να προσαρμοστούν γρήγορα στις μεταβαλλόμενες κοινωνικές, πολιτικές, νομικές και οικονομικές συνθήκες.
Πιο συγκεκριμένα, οι κύριοι στόχοι του προγράμματος περιλαμβάνουν:
- Εξοπλισμός των φοιτητών με όλες τις απαραίτητες δεξιότητες, στάσεις και προσέγγιση για να καθοδηγήσουν τις αποφάσεις τους ως στελέχη επιχειρήσεων.
- Ανάπτυξη των ικανοτήτων των φοιτητών να χειρίζονται τα σημερινά προβλήματα και τις προοπτικές των επιχειρηματικών οργανώσεων που λειτουργούν σε έναν ανταγωνιστικό κόσμο.
- Επιτρέπει στους μαθητές να αναπτύξουν τις θεωρητικές και πρακτικές δεξιότητες και τις γνώσεις τους.
- Ενίσχυση της πνευματικής ανάπτυξης και της ωριμότητας των σπουδαστών.
- Βοήθεια στους μαθητές να αναλύσουν, να εξετάσουν, να ερευνήσουν και να συνθέσουν τις νέες γνώσεις και ικανότητες που θα αποκτήσουν.
- Εξασφάλιση της υψηλότερης δυνατής διείσδυσης σε κάθε υποκείμενη έρευνα και εξάντληση εννοιολογικών ακαδημαϊκών καθώς και πρακτικών επιπτώσεων.
- Εξασφάλιση του αναγκαίου επιπέδου εκπαίδευσης για την απόκτηση εξειδικευμένων γνώσεων και ικανοτήτων και για την απόδειξη της πνευματικής ανεξαρτησίας.
- Προσφέρει γνώση των επαγγελματικών δυνατοτήτων και σύγχρονων οργανισμών που λειτουργούν στο πλαίσιο του σημερινού ανταγωνιστικού κόσμου.
- Παροχή στους συμμετέχουσες φοιτητές των απαραίτητων δεξιοτήτων για να καθοδηγήσουν τις βραχυπρόθεσμες και μακροπρόθεσμες αποφάσεις τους.
- Παροχή εκπαίδευσης σε διεθνή διοίκηση στους συμμετέχοντες που θα τους επιτρέψει να καταστούν αποτελεσματικοί γενικοί διευθυντές οπουδήποτε στο σημερινό παγκόσμιο ανταγωνιστικό περιβάλλον.
- Παροχή φοιτητών με μεταπτυχιακό επίπεδο επιχειρηματικής εκπαίδευσης που επικεντρώνεται τόσο στις θεωρίες όσο και στην έρευνα από μια ολιστική επιχειρηματική άποψη.
- Παροχή στους μαθητές των απαραίτητων δεξιοτήτων, στάσεων και προσεγγίσεων για να καθοδηγούν τις αποφάσεις τους ως στελέχη επιχειρήσεων.
- Παροχή στους φοιτητές της δυνατότητας να χειριστούν τα σημερινά προβλήματα και την προοπτική για επιχειρηματικές οργανώσεις που λειτουργούν σε έναν ανταγωνιστικό κόσμο.
- Δίνει έμφαση στις ευρωπαϊκές και διεθνείς επιχειρηματικές προοπτικές.
Προοπτικές Καριέρας
Αναμένουμε ότι οι σπουδαστές μας θα προέρχονται από θέσεις Διοίκησης ή Ανώτερης Διοίκησης σε διαφορετικούς τομείς ιδιωτικού ενδιαφέροντος και οργανισμούς στο πλαίσιο της κυβέρνησης και της βιομηχανίας, τόσο σε τοπικό επίπεδο όσο και στο εξωτερικό. Εταιρείες όπως η Royal Dutch Airlines, η Revlon, η Tradex, η Κυπριακή Τηλεπικοινωνιακή Αρχή, η Αρχή Ηλεκτρισμού Κύπρου, η Air Trans, η Cybarco, η Demstar, η Addidas και πολλές άλλες. Θέσεις που κατέχουν ορισμένοι από τους απόφοιτους μας είναι όπως του Διευθυντή Μάρκετινγκ, του Οικονομικού Διευθυντή, του Διευθυντή Δημοσίων Σχέσεων και του Οικονομικού Ελεγκτή κλπ
Τα τελευταία χρόνια, οι απόφοιτοι μας έχουν τοποθετηθεί σε διαφορετικές θέσεις στην αγορά. Αρκετοί από αυτούς έχουν αναλάβει τραπεζικές θέσεις, θέσεις σε εταιρείες off-shore και σε ακαδημαϊκά ιδρύματα. Ορισμένες από τις θέσεις είναι του σύμβουλου στο Υπουργείο της Λιβύης, Ανώτερου IT σε μια εταιρεία στις Ηνωμένες Πολιτείες της Αμερικής, Διευθυντή σε μια μεγάλης εταιρεία Granite, Διευθυντή της Demstar, Οικονομικού Διευθυντή ενός Πανεπιστημίου και πολλές άλλες θέσεις.
Πολλοί από τους απόφοιτους του προγράμματος MBA συνέχισαν με διδακτορικά προγράμματα στην Κύπρο, Ελλάδα, Ηνωμένο Βασίλειο και ΗΠΑ. Το MBA του Πανεπιστημίου της Λευκωσίας αποτέλεσε ένα βήμα για περαιτέρω ακαδημαϊκές και επαγγελματικές σπουδές.
Ελάχιστη προϋπόθεση για εισδοχή στο μεταπτυχιακό πρόγραμμα σπουδών αποτελεί η κατοχή πτυχίου (Bachelor’s Degree), από αναγνωρισμένο πανεπιστήμιο.
Επιπρόσθετα, οι υποψήφιοι φοιτητές θα πρέπει να πληρούν και τα ακόλουθα κριτήρια εισδοχής:
- Πιστοποίηση καλής γνώσης της Ελληνικής ή Αγγλικής γλώσσας (ανάλογα με το αν ο φοιτητής θα παρακολουθήσει το πρόγραμμα στα Ελληνικά ή στα Αγγλικά)
- Δύο συστατικές επιστολές από άτομα που γνωρίζουν τον υποψήφιο στο εκπαιδευτικό ή/και το επαγγελματικό του περιβάλλον
- Βιογραφικό Σημείωμα
- Προσωπική Δήλωση για το πώς η φοίτηση και η απόκτηση του ΜΒΑ θα βοηθήσει τον υποψήφιο στην επαγγελματική/ακαδημαϊκή του σταδιοδρομία
Επαρκής Γνώση Αγγλικής Γλώσσας
Οι φοιτητές πληρούν τις απαιτήσεις για την αγγλική γλώσσα, εάν η γλώσσα διδασκαλίας του πρώτου τους πτυχίου ήταν η αγγλική. Σε άλλη περίπτωση, θα πρέπει να προσκομίσουν πιστοποιητικό TOEFL με ελάχιστο βαθμό 550 paper-based ή 213 για εξέταση computer-based, ή Internet-based TOEFL (iBT) με βαθμολογία τουλάχιστον 79-80 ή GCSE “O” Level με ελάχιστο βαθμό “C” ή IELTS με βαθμολογία 6.5. Το Πανεπιστήμιο προσφέρει μαθήματα Αγγλικών όλων των επιπέδων, βοηθώντας τους φοιτητές να φτάσουν στο επίπεδο που απαιτείται για εισδοχή σε μεταπτυχιακό πρόγραμμα.
Με την επιτυχή ολοκλήρωση του προγράμματος, οι φοιτητές θα είναι σε θέση να:
- Να επιδείξουν αποτελεσματικές δεξιότητες ηγεσίας και διαχείρισης με αυξημένη πολιτιστική συνείδηση και εκλεπτυσμένη παγκόσμια προοπτική.
- Να επιδείξουν ακαδημαϊκή ανεξαρτησία και να συνθέσουν το ατομικό τους επαγγελματικό προφίλ όταν ασχολούνται με σημαντικά ζητήματα που σχετίζονται με τη σταδιοδρομία τους.
- Να εκτελέσουν σε βάθος ακαδημαϊκή έρευνα.
- Να εφαρμόσουν τις γνώσεις τους με πρακτικό τρόπο, μέσα από τη συγγραφή της διατριβής τους και να είναι σε θέση να εφαρμόσουν τις γνώσεις τους σε πραγματικές καταστάσεις ζωής.
- Να εφαρμόσουν τις ικανότητες που απέκτησαν λαμβάνοντας μια ολοκληρωμένη άποψη όλων των αναλυτικών εργαλείων που βοηθούν στην διεξαγωγή εμπεριστατωμένων αναλύσεων βιομηχανιών και ανταγωνιστών, προβλέπουν την ανταγωνιστική συμπεριφορά και αναλύουν τον τρόπο με τον οποίο οι οργανώσεις αναπτύσσουν και διατηρούν ανταγωνιστικό πλεονέκτημα με την πάροδο του χρόνου.
- Να σχεδιάσουν και να οργανώσουν αποτελεσματικές οργανώσεις και να τους βοηθήσουν στην επίτευξη ανώτερης απόδοσης.
- Να διαχειριστούν τους ανθρώπινους πόρους της οργάνωσής τους και παρακινήσουν τους ανθρώπους να επιτύχουν το όραμα της οργάνωσής τους.
- Να αξιολογήσουν την ανταγωνιστική θέση του οργανισμού του και εφαρμόσουν τις κατάλληλες αποφάσεις μάρκετινγκ και στρατηγικής για την περαιτέρω ενίσχυση της θέσης τους.
- Να χρησιμοποιήσουν τις σύνθετες διαδικασίες που υπογραμμίζουν την ανάπτυξη και την κατασκευή προϊόντων καθώς και τη δημιουργία και την παροχή υπηρεσιών.
- Να εφαρμόσουν μια ισορροπία μεταξύ της επιστημονικής έρευνας και της επιχειρηματικής πραγματικότητας.
- Να αξιολογούν πολύπλοκες επενδύσεις, θέτουν και εκτελούν χρηματοοικονομικές πολιτικές εντός ενός οργανισμού και ενισχύουν τις διαπραγματευτικές τους ικανότητες
Η αξιολόγηση του μαθήματος αποτελείται συνήθως από μια τελική εξέταση και συνεχή αξιολόγηση. Η συνεχής αξιολόγηση μπορεί να περιλαμβάνει μεταξύ άλλων, ενδιάμεση εξέταση, μελέτες και συμμετοχή στην τάξη
Η βαθμολογία υπολογίζεται βάσει του βάρους της τελικής εξέτασης, της συνεχούς αξιολόγησης και της πραγματικής αριθμητικής βαθμολογίας που λήφθηκε σε αυτές τις δύο αξιολογήσεις. Με βάση την βαθμολογία των μαθημάτων υπολογίζεται ο μέσος βαθμός του εξάμηνου (GPA) ενός φοιτητή καθώς και ο γενικός μέσος όρος (CPA).
Ο φοιτητής πρέπει να συμπληρώσει 90 ECTS καθώς και όλες τις απαιτήσεις του προγράμματος.
Ο ελάχιστος απαιτούμενος γενικός βαθμός (CPA) είναι 2.0. Παρά το γεγονός ότι με το βαθμό ‘D-‘ το μάθημα θεωρείται ότι ολοκληρώθηκε επιτυχώς, ο απαιτούμενος μέσος όρος είναι το ‘C’ για να επιτευχθεί ο ελάχιστος απαιτούμενος γενικός βαθμός (CPA) 2.0.
Rich Text Editor
Έλεγχος
Text Editor Block
Section Settings
General
Full width
YesNo
Background Color
Attributes
Link Classes
Link ID
Spacing
Margin Top
Margin Bottom
Done
Κανονική Μορφή παραγράφουΚανονικήΕπικεφαλίδα 1Επικεφαλίδα 2Επικεφαλίδα 3Επικεφαλίδα 4ΚώδικαςΕξατομίκευση παραγράφουΓκριΠλαίσιοΑραιάΚεφαλαίαΑπόσπασμαΑύξησηΜείωσηΈντοναΠλάγιαΥπογραμμισμέναΕυθυγράμμισηΑριστεράΚέντροΔεξιάΓέμισμαΔιεταγμένη λίσταΠροκαθορισμένοΧαμηλότερο άλφαΚάτω ελληνικάΧαμηλότερο ρωμαϊκόΑνώτερο άλφαΑνώτερο ρωμαϊκόΑναδιάταχτη λίσταΠροκαθορισμένοΚύκλοςΔίσκοςΤετράγωνοΕισαγωγή πίνακαΕισαγωγή συνδέσμουΕισαγωγή εικόναςΕισαγωγή βίντεοInsert AudioInsert FileΕισαγωγή οριζόντιας γραμμήςΠροβολή Κώδικα
<div
class="modal fade component-backend-modal"
role="dialog"
aria-modal="true"
v-if="visible"
v-bind:aria-labelledby="ariaLabeledBy"
:style="containerStyle"
:class="containerCssClass"
@click="onOverlayClick"
>
<div
ref="document"
role="document"
class="modal-dialog"
:class="cssClass"
>
<div
ref="content"
class="modal-content"
:class="contentCssClassName"
:style="modalStyle"
@mousedown="onMouseDown"
@transitionend="onTransitionEnd"
>
<slot name="content"></slot>
<template v-if="resizable">
<div v-if="resizable === true || resizable === 'vertical'" class="resize-handle" data-side="bt"></div>
<div v-if="resizable === true || resizable === 'vertical'" class="resize-handle" data-side="tp"></div>
<div v-if="resizable === true || resizable === 'horizontal'" class="resize-handle" data-side="lf"></div>
<div v-if="resizable === true || resizable === 'horizontal'" class="resize-handle" data-side="rt"></div>
<div v-if="resizable === true" class="resize-handle" data-side="bt-rt"></div>
<div v-if="resizable === true" class="resize-handle" data-side="bt-lf"></div>
<div v-if="resizable === true" class="resize-handle" data-side="tp-rt"></div>
<div v-if="resizable === true" class="resize-handle" data-side="tp-lf"></div>
</template>
</div>
</div>
</div>
<div
data-default-button-text="Εντάξει"
>
<backend-component-modal
ref="modal"
:aria-labeled-by="modalTitleId"
:unique-key="uniqueKey"
:size="size"
:storePosition="false"
@hidden="onHidden"
>
<template v-slot:content>
<div class="modal-header">
<button
@click.prevent="$refs.modal.hide()"
type="button"
class="close backend-icon-background-pseudo"
aria-label="Κλείσιμο"
tabindex="0"
><span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" v-bind:id="modalTitleId" v-text="title"></h4>
</div>
<div class="modal-body">
<p v-text="text"></p>
</div>
<div class="modal-footer">
<button
type="button"
class="btn btn-primary btn-default-action"
data-default-focus
@click="$refs.modal.hide()"
v-text="primaryButtonText"
></button>
</div>
</template>
</backend-component-modal>
</div>
<div
data-default-button-text="Εντάξει"
>
<backend-component-modal
ref="modal"
:aria-labeled-by="modalTitleId"
:unique-key="uniqueKey"
:size="size"
:storePosition="false"
@hidden="onHidden"
>
<template v-slot:content>
<div class="modal-header">
<button
@click.prevent="$refs.modal.hide()"
type="button"
class="close backend-icon-background-pseudo"
aria-label="Κλείσιμο"
tabindex="0"
><span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" v-bind:id="modalTitleId" v-text="title"></h4>
</div>
<div class="modal-body">
<p v-text="text"></p>
</div>
<div class="modal-footer">
<button
type="button"
class="btn btn-primary btn-default-action"
:class="{'btn-primary': !isDanger, 'btn-danger': isDanger}"
v-bind:data-default-focus="!isDanger"
@click="onButtonClick"
v-text="primaryButtonText"
></button>
<span class="button-separator">ή</span>
<button
class="btn btn-link text-muted"
@click.prevent="$refs.modal.hide()"
v-bind:data-default-focus="isDanger"
>Άκυρο</button>
</div>
</template>
</backend-component-modal>
</div>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-document flex-layout-column"
:class="cssClass"
>
<transition name="document-fade-in">
<template v-if="!loading && !errorLoadingDocument">
<transition name="document-header-fade">
<div class="document-header-container flex-layout-item fix" v-show="!headerCollapsed">
<slot name="header"></slot>
</div>
</transition>
</template>
</transition>
<transition name="document-fade-in">
<div v-if="!loading && !errorLoadingDocument" class="document-toolbar-container flex-layout-item fix">
<slot name="toolbar"></slot>
</div>
</transition>
<div v-if="!loading && !errorLoadingDocument" class="flex-layout-item fix">
<slot name="drawer"></slot>
</div>
<transition name="document-fade-in">
<div v-if="!loading && !errorLoadingDocument" class="document-content-container flex-layout-item stretch relative">
<slot name="content"></slot>
<transition name="processing-fade-in">
<backend-component-loading-indicator
v-if="processing"
indicator-style="stripe"
css-class="document-progress-indicator"
></backend-component-loading-indicator>
</transition>
</div>
</transition>
<div v-if="loading" class="flex-layout-item justify-center">
<backend-component-loading-indicator
size="small"
></backend-component-loading-indicator>
</div>
<transition name="processing-fade-in">
<div v-if="errorLoadingDocument" class="flex-layout-item justify-center">
<div class="document-loading-error backend-icon-background-pseudo">
<h3 v-text="errorLoadingDocumentHeader"></h3>
<p v-text="errorLoadingDocument"></p>
</div>
</div>
</transition>
</div>
<div class="flex-layout-row document-toolbar-scroll-container" ref="toolbarContainer">
<div class="document-toolbar-scrollable flex-layout-item stretch" ref="scrollable">
<template v-for="element in scrollableElements" v-if="!element.hidden">
<div
class="document-toolbar-element"
:class="['element-type-'+element.type, {'button-group': !!element.buttonGroup, 'button-icon-only': element.type == 'button' && !element.label}]">
<backend-component-document-toolbar-button
v-if="element.type == 'button' || element.type == 'dropdown'"
:settings=element
:toolbar-disabled="disabled"
@dropdowncontentshown="onDropdownContentShown"
@dropdowncontenthidden="onDropdownContentHidden"
@command="onElementCommand"
></backend-component-document-toolbar-button>
</div> </template>
</div>
<div class="flex-layout-item fix fixed-right">
<template v-for="element in fixedRightElements" v-if="!element.hidden">
<div
class="document-toolbar-element"
:class="['element-type-'+element.type, {'button-group': !!element.buttonGroup, 'button-icon-only': element.type == 'button' && !element.label}]">
<backend-component-document-toolbar-button
v-if="element.type == 'button' || element.type == 'dropdown'"
:settings=element
:toolbar-disabled="disabled"
@dropdowncontentshown="onDropdownContentShown"
@dropdowncontenthidden="onDropdownContentHidden"
@command="onElementCommand"
></backend-component-document-toolbar-button>
</div> </template>
</div>
</div>
<div v-oc-hotkey:[settings.hotkey]="onHotkey" v-if="!settings.hidden">
<a
role="button"
v-if="settings.href"
v-bind:href="settings.href"
v-bind:target="settings.target ? settings.target : '_self'"
v-bind:disabled="settings.disabled || toolbarDisabled"
v-bind:tabindex="settings.disabled || toolbarDisabled ? -1 : 0"
v-bind:aria-controls="ariaControlsId"
v-bind:aria-haspopup="settings.type == 'dropdown'"
v-bind:id="buttonId"
v-bind:data-tooltip-text="tooltip"
v-bind:data-tooltip-hotkey="tooltipHotkey"
class="backend-toolbar-button"
:class="cssClass"
@click="onClick"
ref="button"
>
<i v-if="icon" :class="icon"></i>
<span v-if="label" v-text="label"></span>
</a>
<button
v-else
v-bind:disabled="settings.disabled || toolbarDisabled"
v-bind:tabindex="settings.disabled || toolbarDisabled ? -1 : 0"
v-bind:aria-controls="ariaControlsId"
v-bind:aria-haspopup="settings.type == 'dropdown'"
v-bind:id="buttonId"
v-bind:data-tooltip-text="tooltip"
v-bind:data-tooltip-hotkey="tooltipHotkey"
class="backend-toolbar-button"
:class="cssClass"
@click="onClick"
ref="button"
>
<i v-if="icon" :class="icon"></i>
<span class="button-label" v-if="label" v-text="label" :style="titleStyle"></span>
</button
><button
v-if="settings.type != 'dropdown' && settings.menuitems"
class="backend-toolbar-button menu-trigger"
:class="menuTriggerCssClass"
aria-haspopup="true"
v-bind:disabled="settings.disabled || toolbarDisabled"
v-bind:tabindex="settings.disabled || toolbarDisabled ? -1 : 0"
v-bind:id="menuButtonId"
v-bind:aria-controls="menuId"
@click="onClick($event, false, true)"
ref="menuButton"
>
</button>
<backend-component-dropdownmenu
v-if="settings.menuitems"
:items=settings.menuitems
:menu-id="menuId"
:labeled-by-id="buttonId"
ref="menu"
@closedwithesc="onMenuClosedWithEsc"
@command="onMenuItemCommand"
@shown="onMenuShown"
@hidden="onMenuHidden"
@aligntotrigger="onAlignToTrigger"
></backend-component-dropdownmenu>
</div>
<div class="document-header" :class="{'has-document-icon': documentIcon, 'has-close-icon': showCloseIcon}">
<span
v-if="documentIcon"
class="document-icon"
v-bind:style="documentIconStyle"
>
<i :class="documentIcon.cssClass"></i>
</span>
<input type="text" ref="titleInput" class="header-title" v-model="data[titleProperty]" v-bind:disabled="disabled || disableTitleEditor" @input="onTitleInput"></input>
<div class="flex-layout-row" v-if="subtitleProperty" v-show="!hideSubtitleEditor">
<div class="flex-layout-item fix subtitle-label center" v-text="subtitleLabel + ':'"></div>
<input
type="text"
class="header-subtitle flex-layout-item stretch"
v-model="data[subtitleProperty]"
v-bind:disabled="disabled"
@input="onSubtitleInput"
></input>
</div>
<button
v-if="showCloseIcon"
class="close close-icon backend-icon-background-pseudo"
@click="$emit('documentcloseclick')"
>
<span aria-hidden="true">×</span>
</button>
</div>
<div>
<transition name="backend-dropdown-overlay-touch-screen">
<div v-if="visible" class="backend-dropdownmenu-overlay" @click.prevent="onOverlayClick" @contextmenu.prevent="onOverlayContextMenu"></div>
</transition>
<backend-component-dropdownmenu-sheet
ref="sheet"
:items="items"
:labeled-by-id="labeledById"
:menu-id="menuId"
:preferable-position="preferablePosition"
@aligntotrigger="$emit('aligntotrigger', $event)"
@command="$emit('command', $event)"
@hidden="onSheetHidden"
@closemenu="hideMenu"
></backend-component-dropdownmenu-sheet>
</div>
<div class="dropdown-menu backend-dropdownmenu" data-menu-position-container>
<div class="dropdown-container">
<transition name="backend-dropdown-menu-touch-screen" v-on:after-leave="onAfterLeave">
<ul
role="menu"
:class="menuClassName"
ref="menu"
v-if="visible"
v-bind:id="menuId"
v-bind:aria-labelledby="labeledById"
>
<li class="submenu-header clearfix" v-if="isSubmenu">
<button
class="go-back-link backend-icon-background-pseudo"
@click.stop.prevent="onGoBackClick"
>Go Back</button>
<button
class="close-link backend-icon-background-pseudo"
@click.stop.prevent="onCloseClick"
>Close Menu</button>
</li>
<backend-component-dropdownmenu-menuitem
v-for="(item, index) in items"
:type="item.type"
:disabled="item.disabled"
:href="item.href"
:target="item.target"
:checked="item.checked"
:items="item.items"
:icon="item.icon"
:label="item.label"
:command="item.command"
:itemStyle="item.style"
:key="index"
:is-first="index == 0"
@command="onCommand($event)"
@hide="onHide"
@itemmouseenter="onItemMouseEnter"
@submenushown="onItemSubmenuShown"
@submenuhidden="onItemSubmenuHidden"
@closemenu="$emit('closemenu', $event)"
></backend-component-dropdownmenu-menuitem>
</ul>
</transition>
</div>
</div>
<li
class="item"
:class="{
separator: type == 'separator',
first: isFirst,
'submenu-expanded': isSubmenuExpanded
}"
v-bind:role="type == 'separator' ? 'separator' : 'presentation'"
v-bind:disabled="disabled"
>
<button v-if="!href && type != 'separator'"
ref="itemElement"
v-bind:tabindex="disabled ? -1 : 0"
v-bind:disabled="disabled"
v-bind:aria-disabled="disabled"
v-bind:role="itemRole"
v-bind:aria-checked="itemIsChecked ? 'true' : 'false'"
v-bind:id="menuItemId"
v-bind:aria-haspopup="hasSubmenu"
v-bind:aria-expanded="isSubmenuExpanded"
:class="{'has-submenu': hasSubmenu}"
:style="itemStyle"
@click="onClick($event)"
@mouseenter="onMouseEnter"
data-menuitem
>
<i :class="icon" v-if="icon"></i>
<i
class="backend-icon-background-pseudo"
v-if="type == 'checkbox' || type == 'radiobutton'"
></i>
<i
class="backend-icon-background-pseudo submenu-indicator"
v-if="hasSubmenu"
></i>
<span v-text="label"></span>
</button>
<a
ref="itemElement"
v-if="href && type != 'separator'"
v-bind:href="href"
v-bind:target="target ? target : '_self'"
v-bind:tabindex="disabled ? -1 : 0"
v-bind:disabled="disabled"
v-bind:aria-disabled="disabled"
v-bind:aria-checked="itemIsChecked ? 'true' : 'false'"
v-bind:role="itemRole"
:style="itemStyle"
@click="onClick($event)"
@mouseenter="onMouseEnter"
data-menuitem
>
<i :class="icon" v-if="icon"></i>
<i
class="backend-icon-background-pseudo"
v-if="type == 'checkbox' || type == 'radiobutton'"
></i>
<span v-text="label"></span>
</a>
<backend-component-dropdownmenu-sheet
v-if="hasSubmenu"
ref="submenu"
:items="items"
:labeled-by-id="menuItemId"
:menu-id="submenuId"
:is-submenu="true"
@command="$emit('command', $event)"
@hidden="onSubmenuHidden"
@closemenu="$emit('closemenu', $event)"
></backend-component-dropdownmenu-sheet>
</li>
<div class="component-backend-loading-indicator" :class="className">
<div class="spinner" v-if="indicatorStyle == 'circles'">
<div class="bounce1"></div>
<div class="bounce2"></div>
<div class="bounce3"></div>
</div>
<div v-if="indicatorStyle == 'stripe'">
<div class="stripe-indicator">
<div></div>
</div>
</div>
<div v-if="indicatorStyle == 'bar'" class="bar-indicator">
<div class="stripe-indicator">
<div :style="barIndicatorStyle" :class="{'progress-done': this.progress == 100}"></div>
</div>
</div>
</div>
<div
class="component-backend-richeditor flex-layout-column"
:class="cssClass"
data-configuration="{"editorLang":"el","useMediaManager":true,"iframeStylesFile":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditor\/assets\/css\/iframestyles.css","globalToolbarButtons":["paragraphFormat","paragraphStyle","quote","bold","italic","underline","align","formatOL","formatUL","insertTable","insertLink","insertImage","insertVideo","insertAudio","insertFile","insertHR","html"],"allowEmptyTags":null,"allowTags":null,"allowAttrs":null,"noWrapTags":null,"removeTags":null,"lineBreakerTags":null,"imageStyles":null,"linkStyles":null,"paragraphStyles":null,"paragraphFormat":null,"tableStyles":null,"tableCellStyles":null}"
>
<div class="flex-layout-item field-richeditor stretch relative" data-richeditor-vue>
<textarea ref="textarea" v-bind:id="editorId" class="editor-element"></textarea>
</div>
</div>
<div
class="component-backend-uploader"
v-show="!hidden"
:class="{'uploader-collapsed': collapsed}"
data-lang-uploading="Uploading Files"
data-lang-complete="Upload Complete"
>
<div class="uploader-header">
<h3 v-text="titleText"></h3>
<backend-component-loading-indicator
indicator-style="bar"
:progress="totalProgress"
></backend-component-loading-indicator>
<button
@click.prevent="onHeaderButtonClick"
type="button"
class="close backend-icon-background-pseudo"
:class="{'collapse': !collapsed && hasFilesInProgress, 'expand': collapsed && hasFilesInProgress}"
tabindex="0"
><span aria-hidden="true">×</span>
</button>
</div>
<div class="uploader-body-container">
<div class="uploader-body">
<backend-component-scrollable-panel
:relative-layout="true"
:relative-layout-max-height="200"
>
<div>
<ul>
<backend-component-uploader-item
v-for="(file, index) in files"
:key="file.key"
:fileName="file.name"
:status="file.status"
:progress="file.progress"
:errorMessage="file.errorMessage"
@removeclick="onRemoveClick(index)"
></backend-component-uploader-item>
</ul>
</div>
</backend-component-scrollable-panel>
</div>
</div>
</div>
<li :class="cssClass">
<span class="item-name" v-text="fileName"></span>
<span class="item-error" v-if="errorMessage" v-text="errorMessage"></span>
<i
class="backend-icon-background"
v-if="status == 'completed'"
></i>
<template
v-if="status == 'uploading'"
>
<backend-component-loading-indicator
indicator-style="bar"
:progress="progress"
></backend-component-loading-indicator>
<button
@click.prevent="$emit('removeclick')"
type="button"
class="close backend-icon-background-pseudo"
tabindex="0"
><span aria-hidden="true">×</span>
</button>
</template>
</li>
<div
class="component-backend-scrollablepanel"
:class="{'scrollablepanel-relative': relativeLayout}"
>
<div class="scrollable-panel-container" ref="container">
<div
class="scrollable"
ref="scrollable"
v-on:scroll.passive="onScroll"
:style="containerStyle"
>
<slot></slot>
</div>
</div>
</div>
<backend-component-inspector-panel
ref="panel"
:controls="dataSchema"
:obj="liveObject"
:inspector-unique-id="uniqueId"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
>
</backend-component-inspector-panel>
<div
class="component-backend-inspector-panel"
data-validation-alert-title="Error"
>
<backend-component-inspector-grouphost
:controls="untabbedControls"
:obj="obj"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="0"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
></backend-component-inspector-grouphost>
<backend-component-tabs
v-show="tabs.length > 0"
ref="tabs"
:tabs="tabs"
:closeable="false"
:use-slots="true"
tabs-style="inspector"
@tabselected="onTabSelected"
>
<template v-for="tabInfo in tabs" v-slot:[tabInfo.key]>
<backend-component-inspector-grouphost
:controls="tabbedControls[tabInfo.key]"
:obj="obj"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="0"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
></backend-component-inspector-grouphost>
</template>
</backend-component-tabs>
</div>
<div class="component-backend-inspector-group">
<div
class="group-name inspector-padding-control-left inspector-padding-control-right"
:class="{expanded: expanded, collapsed: !expanded, loading: loading, 'has-errors': hasErrors, 'hide-bottom-border-collapsed': hideBottomBorder}"
@click.stop="onToggleGroup"
>
<div :style="nameStyle">
<span
v-text="nameAndValue"
class="backend-icon-background-pseudo"
></span>
<backend-component-loading-indicator v-if="loading"
size="tiny"
></backend-component-loading-indicator>
</div>
</div>
<transition name="group-fade-in">
<backend-component-inspector-controlhost
v-show="expanded"
:controls="controls"
:obj="obj"
:splitter-data="splitterData"
:depth="depth + 1"
:panel-update-data="panelUpdateData"
:inspector-preferences="inspectorPreferences"
:inspector-unique-id="inspectorUniqueId"
@inspectorcommand="$emit('inspectorcommand', $event)"
>
</backend-component-inspector-controlhost>
</transition>
</div>
<div class="component-backend-inspector-grouphost">
<backend-component-inspector-controlhost
:controls="groupedControls.ungrouped"
:obj="obj"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
>
</backend-component-inspector-controlhost>
<backend-component-inspector-group
v-for="(controls, groupName) in groupedControls"
v-if="groupName != 'ungrouped'"
:key="groupName"
:group-name="groupName"
:obj="obj"
:controls="controls"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
>
</backend-component-inspector-group>
</div>
<table class="component-backend-inspector-controlhost" @mousedown.stop="onHandleMouseDown">
<backend-component-inspector-controlhost-row
v-for="control in controls"
:obj="obj"
:key="control.property"
:control-host-unique-id="uniqueId"
:control="control"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
:inspector-unique-id="inspectorUniqueId"
:is-full-width="isFullWidthControl(control)"
@inspectorcommand="$emit('inspectorcommand', $event)"
>
</backend-component-inspector-controlhost-row>
</table>
<tr class="inspector-control-row" :class="{'has-errors': hasErrors, 'hide-bottom-border': bottomBorderHidden}">
<th v-if="!isFullWidth && !controlLabelHidden" :style="titlePanelStyle">
<div class="inspector-label-container" :class="{'has-description': control.description}">
<label
class="inspector-padding-control-left"
v-text="control.title"
v-bind:for="controlEditorId"
:style="labelStyle"
@click.stop="onLabelClick"
></label>
<span
v-if="control.description"
class="property-description backend-icon-background-pseudo"
v-bind:data-tooltip-text="control.description"
></span>
</div>
</th>
<td v-bind:colspan="controlColspan">
<div class="full-width-control-label" v-if="isFullWidth && (control.title || control.description) && ! controlLabelHidden">
<label
class="inspector-padding-control-left"
v-text="control.title"
v-bind:for="controlEditorId"
:style="labelStyle"
@click.stop="onLabelClick"
></label>
<div
v-if="control.description"
class="inspector-padding-control-left full-width-property-description"
v-text="control.description"
:style="labelStyle"
></div>
</div>
<div :class="{'inspector-control-container': !isFullWidth, 'no-property-title': !control.title && !control.description}">
<div v-if="!isFullWidth" class="inspector-drag-handle"></div>
<backend-component-inspector-control-text
v-if="control.type == 'string' || control.type == 'text'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:splitter-data="splitterData"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
></backend-component-inspector-control-text>
<backend-component-inspector-control-dropdown
v-if="control.type == 'dropdown'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
></backend-component-inspector-control-dropdown>
<backend-component-inspector-control-autocomplete
v-if="control.type == 'autocomplete'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
></backend-component-inspector-control-autocomplete>
<backend-component-inspector-control-checkbox
v-if="control.type == 'checkbox'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
></backend-component-inspector-control-checkbox>
<backend-component-inspector-control-table
v-if="control.type == 'table'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
ref="editor"
@hidebottomborder="bottomBorderHidden = true"
@hidefullwidthlabel="controlLabelHidden = true"
></backend-component-inspector-control-table>
<backend-component-inspector-control-object
v-if="control.type == 'object'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
></backend-component-inspector-control-object>
<backend-component-inspector-control-set
v-if="control.type == 'set'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
></backend-component-inspector-control-set>
<backend-component-inspector-control-objectlist
v-if="control.type == 'objectList'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
></backend-component-inspector-control-objectlist>
<backend-component-inspector-control-objectlist-records
v-if="control.type == 'objectListRecords'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
@inspectorcommand="$emit('inspectorcommand', $event)"
></backend-component-inspector-control-objectlist-records>
<backend-component-inspector-control-dictionary
v-if="control.type == 'dictionary'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
></backend-component-inspector-control-dictionary>
<backend-component-inspector-control-mediafinder
v-if="control.type == 'mediafinder'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:splitter-data="splitterData"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
></backend-component-inspector-control-mediafinder> </div>
</td>
</tr>
<div>
<input
v-if="control.type == 'string'"
class="inspector-control"
type="text"
ref="input"
v-bind:value="valueWithPreset"
v-bind:id="controlId"
v-bind:placeholder="control.placeholder"
v-bind:readonly="inspectorPreferences.readOnly"
@input="updateValue"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
/>
<textarea
v-if="control.type == 'text'"
class="component-backend-inspector-textinput inspector-control"
:class="cssClass"
ref="input"
v-bind:value="valueWithPreset"
v-bind:id="controlId"
v-bind:placeholder="control.placeholder"
v-bind:readonly="inspectorPreferences.readOnly"
@input="updateValue"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
></textarea>
<div
v-if="control.type == 'text'"
class="inspector-textarea-shadow inspector-control component-backend-inspector-textinput"
ref="textareaShadow"
v-text="valueWithPreset"
></div>
</div>
<div v-bind:tabindex="containerTabIndex" @focus="onContainerFocus">
<backend-component-loading-indicator v-if="loadingDynamicOptions"
size="tiny"
></backend-component-loading-indicator>
<backend-component-dropdown
v-if="!loadingDynamicOptions"
:options="options"
:id="controlId"
:placeholder="control.placeholder"
:tabindex="0"
:disabled="inspectorPreferences.readOnly"
:allow-empty="true"
track-by="code"
label="label"
ref="input"
v-model="selectedValue"
select-label=""
selected-label=""
deselect-label=""
@input="updateValue"
@open="onFocus"
@close="onBlur"
@hook:mounted="onDropdownMounted"
>
<span slot="noResult">No options found</span>
</backend-component-dropdown>
</div>
<div class="inspector-control">
<div
class="component-backend-inspector-checkbox"
>
<label
tabindex="0"
@keydown="onLabelKeydown"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
>
<input
type="checkbox"
ref="input"
value="1"
v-bind:checked="isChecked"
v-bind:id="controlId"
v-bind:readonly="inspectorPreferences.readOnly"
v-bind:disabled="inspectorPreferences.readOnly"
@input="updateValue"
/><span class="backend-icon-background-pseudo"></span>
</label>
</div>
</div>
<div
class="component-backend-inspector-table"
data-lang-add-item="Add item"
>
<table>
<backend-component-inspector-control-table-head
:columns="columns"
>
</backend-component-inspector-control-table-head>
<tbody>
<backend-component-inspector-control-table-row
v-for="(row, index) in value"
:row="row"
:key="index"
:columns="columns"
:row-index="index"
:inspector-preferences="inspectorPreferences"
:table-configuration="tableConfiguration"
@removerow="onRemoveRowClick"
>
</backend-component-inspector-control-table-row>
</tbody>
</table>
<div v-if="tableConfiguration.adding" class="inspector-padding-control-left table-control-links">
<a
href="#"
class="add-item-link"
:class="{disabled: inspectorPreferences.readOnly}"
@click.stop.prevent="onAddItemClick"
v-text="control.btnAddRowLabel === undefined ? lang.addItem : control.btnAddRowLabel"
></a>
</div>
</div>
<thead @mousedown.stop="onHandleMouseDown">
<tr>
<backend-component-inspector-control-table-headcell
v-for="(column, index) in columns"
:key="index"
:column="column"
:column-index="index"
:column-width="columnWidth"
>
</backend-component-inspector-control-table-headcell>
</tr>
</thead>
<th v-bind:style="cellStyle">
<div class="header-cell-container">
<div v-if="columnIndex != 0" class="cell-resize-handle"></div>
<span v-text="column.title"></span>
</div>
</th>
<tr :class="{focused: focused, 'has-errors': hasErrors}">
<backend-component-inspector-control-table-cell
v-for="(column, index) in columns"
:key="index"
:column="column"
:row="row"
:cell-index="index"
:inspector-preferences="inspectorPreferences"
:table-configuration="tableConfiguration"
:is-last-cell="index == columns.length-1"
@focus="onCellFocus"
@blur="onCellBlur"
@valid="onValid"
@invalid="onInvalid"
@removerow="$emit('removerow', rowIndex)"
>
</backend-component-inspector-control-table-cell>
</tr>
<td>
<div class="table-cell-container">
<backend-component-inspector-control-table-text
v-if="column.type == 'string'"
:row="row"
:column="column"
:cell-index="cellIndex"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
@valid="$emit('valid', $event)"
@invalid="$emit('invalid', $event)"
>
</backend-component-inspector-control-table-text>
<backend-component-inspector-control-table-dropdown
v-if="column.type == 'dropdown'"
:row="row"
:column="column"
:cell-index="cellIndex"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
@valid="$emit('valid', $event)"
@invalid="$emit('invalid', $event)"
>
</backend-component-inspector-control-table-dropdown>
<button v-if="isLastCell && tableConfiguration.deleting && !inspectorPreferences.readOnly" @click.stop="$emit('removerow')" class="remove-row-btn"></button>
</div>
</td>
<input
type="text"
class="inspector-table-control-text"
v-model="row[column.column]"
ref="input"
v-bind:readonly="inspectorPreferences.readOnly"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
/>
<div
v-bind:tabindex="containerTabIndex"
@focus="onContainerFocus"
class="inspector-table-dropdown-container"
>
<backend-component-dropdown
:options="options"
:placeholder="column.placeholder"
:tabindex="0"
:disabled="inspectorPreferences.readOnly"
:allow-empty="true"
track-by="code"
label="label"
ref="editor"
v-model="selectedValue"
select-label=""
selected-label=""
deselect-label=""
@input="updateValue"
@open="onFocus"
@close="onBlur"
>
<span slot="noResult">No options found</span>
</backend-component-dropdown>
<div class="dropdown-placeholder" v-if="!hasValue" v-text="column.placeholder"></div>
</div>
<div>
<backend-component-inspector-group
:group-name="control.title"
:obj="editedObject"
:controls="control.properties"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
ref="group"
>
</backend-component-inspector-group>
</div>
<div>
<backend-component-inspector-group
:group-name="control.title"
:obj="editedObject"
:controls="nestedControlProperties"
:splitter-data="splitterData"
:depth="depth"
:group-value="groupValue"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
:loading="loadingDynamicOptions"
ref="group"
>
</backend-component-inspector-group>
</div>
<div
data-lang-key-required="The Key field is required"
data-lang-value-required="The Value field is required"
>
<backend-component-inspector-group
:group-name="control.title"
:obj="editedObject"
:controls="nestedControlProperties"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:group-value="groupValue"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
:hide-bottom-border="true"
ref="group"
>
</backend-component-inspector-group>
</div>
<div
data-lang-error="Error"
data-lang-prop-cant-be-empty="Property :property cannot be empty"
data-lang-key-value-exists="Value is already defined: :property_value"
>
<backend-component-inspector-group
:group-name="control.title"
:obj="editedObject"
:controls="nestedControlProperties"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
ref="group"
@inspectorcommand="onInspectorCommand"
>
</backend-component-inspector-group>
</div>
<div
class="component-backend-inspector-table"
data-lang-add-item="Add item"
>
<table v-if="hasValues">
<tbody>
<tr v-for="(record, key) in obj">
<td class="no-sub-controls" :class="{clickable: !inspectorPreferences.readOnly}" @click.stop="onItemClick(key)">
<div class="clickable-data-container">
<span v-text="getRecordTitle(record)"></span>
<button v-if="!inspectorPreferences.readOnly" @click.stop.prevent="onRemoveItemClick(key)" class="remove-row-btn"></button>
</div>
</td>
</tr>
</tbody>
</table>
<div class="inspector-padding-control-left table-control-links">
<a
href="#"
class="add-item-link"
:class="{disabled: inspectorPreferences.readOnly}"
@click.stop.prevent="onAddItemClick"
v-text="lang.addItem"
></a>
</div>
</div>
<div>
<backend-component-loading-indicator v-if="loadingDynamicOptions"
size="tiny"
></backend-component-loading-indicator>
<backend-component-autocomplete
v-if="!loadingDynamicOptions"
ref="autocomplete"
:search="onSearch"
:getResultValue="getResultValue"
:placeholder="placeholder"
:defaultValue="initialValue"
:readonly="inspectorPreferences.readOnly"
v-bind:id="controlId"
@input="onInput"
@change="onChange"
@update="onUpdate"
@focus="onFocus"
@blur="onBlur"
>
<template #result="{ result, props }">
<li v-bind="props" class="autocomplete-result">
{{ result.value }}
</li>
</template>
</backend-component-autocomplete>
</div>
<div
data-lang-error-not-image="The selected file is not an image"
data-lang-placeholder="Click to select a file"
class="inspector-control-clearable"
>
<div
class="inspector-control clickable act-as-text-input"
:class="cssClass"
:tabindex="0"
@focus="onFocus"
@blur="onBlur"
ref="input"
v-text:value="displayedText"
v-bind:readonly="inspectorPreferences.readOnly"
@click.stop="onClick"
@keydown.stop="onKeyDown"
></div>
<button v-if="this.value && !inspectorPreferences.readOnly" @click.stop="onClearClick" class="clear-value"></button>
</div>
<div
data-default-button-text="Εντάξει"
>
<backend-component-modal
ref="modal"
:aria-labeled-by="modalTitleId"
:unique-key="uniqueId"
:size="size"
:store-position="true"
:resizable="resizableWidth ? 'horizontal' : false"
:resize-default-width="600"
:close-by-esc="!readOnly"
:modal-temporary-hidden="layoutUpdateData.modalTemporaryHidden"
@hidden="onHidden"
@resized="onResized"
@shown="onShown"
@enterkey="onEnterKey"
>
<template v-slot:content>
<div class="modal-header">
<button
@click.prevent="onCloseClick"
type="button"
class="close backend-icon-background-pseudo"
v-bind:disabled="readOnly"
aria-label="Κλείσιμο"
tabindex="0"
><span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" v-bind:id="modalTitleId" v-text="title"></h4>
</div>
<div class="modal-body inspector-modal-host">
<backend-component-inspector
:data-schema="dataSchema"
:data="data"
:live-mode="false"
:unique-id="uniqueId"
:layout-update-data="layoutUpdateData"
:read-only="readOnly"
ref="inspector"
>
</backend-component-inspector>
</div>
<div class="modal-footer">
<button
type="button"
class="btn btn-primary btn-default-action"
data-default-focus
@click="onApplyClick"
v-text="primaryButtonText"
v-bind:disabled="readOnly"
></button>
<span class="button-separator">ή</span>
<button
class="btn btn-link text-muted"
:class="{disabled: readOnly}"
@click.prevent="onCloseClick"
>Άκυρο</button>
</div>
</template>
</backend-component-modal>
</div>
<div
class="component-backend-splitter" :class="cssClass"
>
<div class="flex-layout-item fix splitter-first-panel" :style="firstPanelStyle" ref="firstPanel">
<slot name="first">
Left panel
</slot>
</div>
<div
class="flex-layout-item fix splitter-handle"
:class="{dragging: dragging}"
ref="handle"
@mousedown.stop="onHandleMouseDown"
></div>
<div class="flex-layout-item stretch relative">
<slot name="second">
Right panel
</slot>
</div>
</div>
<div
class="component-backend-tabs flex-layout-column"
:class="cssClass"
data-lang-close="Close Tab"
data-lang-close-all="Close All"
data-lang-close-others="Close Others"
data-lang-close-saved="Close Saved"
>
<div class="tablist-container flex-layout-item fix" v-show="!hideTabPanel">
<div class="flex-layout-row tablist-scrollable-container" :class="{'has-fixed-panel': supportsFullScreen && hasTabs}" ref="scrollableTabsContainer">
<div class="tabs-scrollable flex-layout-item stretch" ref="scrollable">
<div
class="tablist flex-layout-row"
role="tablist"
ref="tabList"
v-bind:aria-label="ariaLabel"
@keydown="onKeyDown"
>
<button
v-for="tab in tabs"
role="tab"
data-component-backend-tab
class="flex-layout-item"
:class="{
active: currentTabKey == tab.key,
stretch: tabsStyle == 'document',
fix: tabsStyle == 'form',
'has-icon': tab.icon || tab.fatalError,
'has-close-button': closeable
}"
v-bind:id="getTabId(tab, 'tab')"
v-bind:aria-controls="getTabId(tab, 'panel')"
v-bind:aria-selected="currentTabKey == tab.key ? 'true' : 'false'"
v-bind:tabindex="currentTabKey == tab.key ? 0 : -1"
v-bind:data-tooltip-text="getTooltipText(tab)"
@click.ignore="onClick(tab)"
@contextmenu.stop="onContextMenu($event, tab)"
>
<span
class="tab-icon"
:class="{'tab-error': tab.fatalError}"
v-if="tab.icon"
aria-hidden="true"
>
<span
class="tab-icon-background"
v-bind:style="getTabIconStyle(tab)"
>
<i
:class="tab.icon.cssClass"
></i>
</span>
<i class="backend-icon-background tab-error"></i>
</span>
<span v-text="tab.label" role="text"></span>
<span
class="backend-icon-background-pseudo close-tab"
:class="{'has-changes': tab.hasChanges}"
v-bind:tabindex="currentTabKey == tab.key ? 0 : -1"
v-if="closeable"
role="button"
aria-hidden="true"
aria-label="Close Tab"
v-bind:title="closeTooltip ? '' : 'Close Tab'"
v-bind:data-tooltip-text="closeTooltip"
v-bind:data-tooltip-hotkey="closeTooltipHotkey"
@click.stop.prevent="onCloseClick(tab)"
>✕</span>
</button>
</div>
</div>
<div class="flex-layout-item fix fixed-right tabs-toolbar" v-if="supportsFullScreen && hasTabs">
<div class="toolbar-container">
<button
class="backend-toolbar-button icon-only"
data-tooltip-text="Toggle Full Screen"
@click.stop.prevent="onToggleFullscreen"
>
<i :class="{'octo-icon-fullscreen': !isFullScreen, 'octo-icon-fullscreen-collapse': isFullScreen}"></i>
</button>
</div>
</div>
</div>
</div>
<template v-if="!noPanes">
<div
v-for="tab in tabs"
role="tabpanel"
tabindex="0"
:key="getTabUniqueKey(tab)"
v-show="currentTabKey == tab.key"
v-bind:id="getTabId(tab, 'panel')"
v-bind:aria-labelledby="getTabId(tab, 'tab')"
class="tabpanel flex-layout-item stretch relative"
:class="tabPanelCssClass"
>
<component
v-if="!useSlots"
:ref="getTabComponentRefName(tab)"
v-bind:is="tab.component"
:component-data="tab.componentData"
@tabfatalerror="onTabFatalError(tab)"
@tabkeychanged="onTabkeyChanged"
@tabclose="onHostedComponentTabClose(tab)"
></component>
<slot v-else :name="tab.key"></slot>
</div>
</template>
<slot v-if="!tabs.length" name="noTabsView"></slot>
<backend-component-dropdownmenu
:items="contextMenuItems"
:menu-id="contextMenuId"
:labeled-by-id="contextMenuLabeledById"
ref="contextmenu"
@command="onMenuItemCommand"
></backend-component-dropdownmenu>
</div>
<div
class="flex-layout-column component-backend-monaco-editor"
:class="cssClass"
data-configuration="{"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/monacoeditor\/assets\/vendor\/monaco@0.23.0\/min","fontSize":"12px","tabSize":4,"renderLineHighlight":"all","useTabStops":false,"renderIndentGuides":false,"renderWhitespace":"none","autoClosingBrackets":"languageDefined","autoClosingQuotes":"languageDefined","hover":{"delay":750},"wordWrap":"off","theme":"vs-dark"}"
>
<div class="flex-layout-item fix" v-if="showTabs">
<backend-component-tabs
:tabs="editorTabs"
:closeable="false"
:no-panes="true"
:container-css-class="tabsContainerCssClass"
:tooltips-enabled="false"
tabs-style="monaco-editor"
@tabselected="onTabSelected"
></backend-component-tabs>
</div>
<div class="flex-layout-item stretch layout-relative" style="overflow: hidden">
<div
class="flex-layout-column fill-container"
:class="editorContainerCssClass"
ref="editorContainer"
@dragover.capture="onDragOver"
@drop.capture="onDragDrop"
></div>
</div>
</div>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
Section: A – Προπαρασκευαστικά Μαθήματα
Min. ECTS Credits: 0 Max. ECTS Credits: 0
Course ID | Course Title | ECTS Credits |
---|---|---|
MBAN-540G | Οικονομικά | 0 |
MBAN-550G | Λογιστική | 0 |
MBAN-560G | Στατιστική και Έρευνα | 0 |
Section: B – Υποχρεωτικά Μαθήματα
Rich Text Editor
Έλεγχος
Text Editor Block
Section Settings
General
Full width
YesNo
Background Color
Attributes
Link Classes
Link ID
Spacing
Margin Top
Margin Bottom
Done
Κανονική Μορφή παραγράφουΚανονικήΕπικεφαλίδα 1Επικεφαλίδα 2Επικεφαλίδα 3Επικεφαλίδα 4ΚώδικαςΕξατομίκευση παραγράφουΓκριΠλαίσιοΑραιάΚεφαλαίαΑπόσπασμαΑύξησηΜείωσηΈντοναΠλάγιαΥπογραμμισμέναΕυθυγράμμισηΑριστεράΚέντροΔεξιάΓέμισμαΔιεταγμένη λίσταΠροκαθορισμένοΧαμηλότερο άλφαΚάτω ελληνικάΧαμηλότερο ρωμαϊκόΑνώτερο άλφαΑνώτερο ρωμαϊκόΑναδιάταχτη λίσταΠροκαθορισμένοΚύκλοςΔίσκοςΤετράγωνοΕισαγωγή πίνακαΕισαγωγή συνδέσμουΕισαγωγή εικόναςΕισαγωγή βίντεοInsert AudioInsert FileΕισαγωγή οριζόντιας γραμμήςΠροβολή Κώδικα
<div
class="modal fade component-backend-modal"
role="dialog"
aria-modal="true"
v-if="visible"
v-bind:aria-labelledby="ariaLabeledBy"
:style="containerStyle"
:class="containerCssClass"
@click="onOverlayClick"
>
<div
ref="document"
role="document"
class="modal-dialog"
:class="cssClass"
>
<div
ref="content"
class="modal-content"
:class="contentCssClassName"
:style="modalStyle"
@mousedown="onMouseDown"
@transitionend="onTransitionEnd"
>
<slot name="content"></slot>
<template v-if="resizable">
<div v-if="resizable === true || resizable === 'vertical'" class="resize-handle" data-side="bt"></div>
<div v-if="resizable === true || resizable === 'vertical'" class="resize-handle" data-side="tp"></div>
<div v-if="resizable === true || resizable === 'horizontal'" class="resize-handle" data-side="lf"></div>
<div v-if="resizable === true || resizable === 'horizontal'" class="resize-handle" data-side="rt"></div>
<div v-if="resizable === true" class="resize-handle" data-side="bt-rt"></div>
<div v-if="resizable === true" class="resize-handle" data-side="bt-lf"></div>
<div v-if="resizable === true" class="resize-handle" data-side="tp-rt"></div>
<div v-if="resizable === true" class="resize-handle" data-side="tp-lf"></div>
</template>
</div>
</div>
</div>
<div
data-default-button-text="Εντάξει"
>
<backend-component-modal
ref="modal"
:aria-labeled-by="modalTitleId"
:unique-key="uniqueKey"
:size="size"
:storePosition="false"
@hidden="onHidden"
>
<template v-slot:content>
<div class="modal-header">
<button
@click.prevent="$refs.modal.hide()"
type="button"
class="close backend-icon-background-pseudo"
aria-label="Κλείσιμο"
tabindex="0"
><span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" v-bind:id="modalTitleId" v-text="title"></h4>
</div>
<div class="modal-body">
<p v-text="text"></p>
</div>
<div class="modal-footer">
<button
type="button"
class="btn btn-primary btn-default-action"
data-default-focus
@click="$refs.modal.hide()"
v-text="primaryButtonText"
></button>
</div>
</template>
</backend-component-modal>
</div>
<div
data-default-button-text="Εντάξει"
>
<backend-component-modal
ref="modal"
:aria-labeled-by="modalTitleId"
:unique-key="uniqueKey"
:size="size"
:storePosition="false"
@hidden="onHidden"
>
<template v-slot:content>
<div class="modal-header">
<button
@click.prevent="$refs.modal.hide()"
type="button"
class="close backend-icon-background-pseudo"
aria-label="Κλείσιμο"
tabindex="0"
><span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" v-bind:id="modalTitleId" v-text="title"></h4>
</div>
<div class="modal-body">
<p v-text="text"></p>
</div>
<div class="modal-footer">
<button
type="button"
class="btn btn-primary btn-default-action"
:class="{'btn-primary': !isDanger, 'btn-danger': isDanger}"
v-bind:data-default-focus="!isDanger"
@click="onButtonClick"
v-text="primaryButtonText"
></button>
<span class="button-separator">ή</span>
<button
class="btn btn-link text-muted"
@click.prevent="$refs.modal.hide()"
v-bind:data-default-focus="isDanger"
>Άκυρο</button>
</div>
</template>
</backend-component-modal>
</div>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-document flex-layout-column"
:class="cssClass"
>
<transition name="document-fade-in">
<template v-if="!loading && !errorLoadingDocument">
<transition name="document-header-fade">
<div class="document-header-container flex-layout-item fix" v-show="!headerCollapsed">
<slot name="header"></slot>
</div>
</transition>
</template>
</transition>
<transition name="document-fade-in">
<div v-if="!loading && !errorLoadingDocument" class="document-toolbar-container flex-layout-item fix">
<slot name="toolbar"></slot>
</div>
</transition>
<div v-if="!loading && !errorLoadingDocument" class="flex-layout-item fix">
<slot name="drawer"></slot>
</div>
<transition name="document-fade-in">
<div v-if="!loading && !errorLoadingDocument" class="document-content-container flex-layout-item stretch relative">
<slot name="content"></slot>
<transition name="processing-fade-in">
<backend-component-loading-indicator
v-if="processing"
indicator-style="stripe"
css-class="document-progress-indicator"
></backend-component-loading-indicator>
</transition>
</div>
</transition>
<div v-if="loading" class="flex-layout-item justify-center">
<backend-component-loading-indicator
size="small"
></backend-component-loading-indicator>
</div>
<transition name="processing-fade-in">
<div v-if="errorLoadingDocument" class="flex-layout-item justify-center">
<div class="document-loading-error backend-icon-background-pseudo">
<h3 v-text="errorLoadingDocumentHeader"></h3>
<p v-text="errorLoadingDocument"></p>
</div>
</div>
</transition>
</div>
<div class="flex-layout-row document-toolbar-scroll-container" ref="toolbarContainer">
<div class="document-toolbar-scrollable flex-layout-item stretch" ref="scrollable">
<template v-for="element in scrollableElements" v-if="!element.hidden">
<div
class="document-toolbar-element"
:class="['element-type-'+element.type, {'button-group': !!element.buttonGroup, 'button-icon-only': element.type == 'button' && !element.label}]">
<backend-component-document-toolbar-button
v-if="element.type == 'button' || element.type == 'dropdown'"
:settings=element
:toolbar-disabled="disabled"
@dropdowncontentshown="onDropdownContentShown"
@dropdowncontenthidden="onDropdownContentHidden"
@command="onElementCommand"
></backend-component-document-toolbar-button>
</div> </template>
</div>
<div class="flex-layout-item fix fixed-right">
<template v-for="element in fixedRightElements" v-if="!element.hidden">
<div
class="document-toolbar-element"
:class="['element-type-'+element.type, {'button-group': !!element.buttonGroup, 'button-icon-only': element.type == 'button' && !element.label}]">
<backend-component-document-toolbar-button
v-if="element.type == 'button' || element.type == 'dropdown'"
:settings=element
:toolbar-disabled="disabled"
@dropdowncontentshown="onDropdownContentShown"
@dropdowncontenthidden="onDropdownContentHidden"
@command="onElementCommand"
></backend-component-document-toolbar-button>
</div> </template>
</div>
</div>
<div v-oc-hotkey:[settings.hotkey]="onHotkey" v-if="!settings.hidden">
<a
role="button"
v-if="settings.href"
v-bind:href="settings.href"
v-bind:target="settings.target ? settings.target : '_self'"
v-bind:disabled="settings.disabled || toolbarDisabled"
v-bind:tabindex="settings.disabled || toolbarDisabled ? -1 : 0"
v-bind:aria-controls="ariaControlsId"
v-bind:aria-haspopup="settings.type == 'dropdown'"
v-bind:id="buttonId"
v-bind:data-tooltip-text="tooltip"
v-bind:data-tooltip-hotkey="tooltipHotkey"
class="backend-toolbar-button"
:class="cssClass"
@click="onClick"
ref="button"
>
<i v-if="icon" :class="icon"></i>
<span v-if="label" v-text="label"></span>
</a>
<button
v-else
v-bind:disabled="settings.disabled || toolbarDisabled"
v-bind:tabindex="settings.disabled || toolbarDisabled ? -1 : 0"
v-bind:aria-controls="ariaControlsId"
v-bind:aria-haspopup="settings.type == 'dropdown'"
v-bind:id="buttonId"
v-bind:data-tooltip-text="tooltip"
v-bind:data-tooltip-hotkey="tooltipHotkey"
class="backend-toolbar-button"
:class="cssClass"
@click="onClick"
ref="button"
>
<i v-if="icon" :class="icon"></i>
<span class="button-label" v-if="label" v-text="label" :style="titleStyle"></span>
</button
><button
v-if="settings.type != 'dropdown' && settings.menuitems"
class="backend-toolbar-button menu-trigger"
:class="menuTriggerCssClass"
aria-haspopup="true"
v-bind:disabled="settings.disabled || toolbarDisabled"
v-bind:tabindex="settings.disabled || toolbarDisabled ? -1 : 0"
v-bind:id="menuButtonId"
v-bind:aria-controls="menuId"
@click="onClick($event, false, true)"
ref="menuButton"
>
</button>
<backend-component-dropdownmenu
v-if="settings.menuitems"
:items=settings.menuitems
:menu-id="menuId"
:labeled-by-id="buttonId"
ref="menu"
@closedwithesc="onMenuClosedWithEsc"
@command="onMenuItemCommand"
@shown="onMenuShown"
@hidden="onMenuHidden"
@aligntotrigger="onAlignToTrigger"
></backend-component-dropdownmenu>
</div>
<div class="document-header" :class="{'has-document-icon': documentIcon, 'has-close-icon': showCloseIcon}">
<span
v-if="documentIcon"
class="document-icon"
v-bind:style="documentIconStyle"
>
<i :class="documentIcon.cssClass"></i>
</span>
<input type="text" ref="titleInput" class="header-title" v-model="data[titleProperty]" v-bind:disabled="disabled || disableTitleEditor" @input="onTitleInput"></input>
<div class="flex-layout-row" v-if="subtitleProperty" v-show="!hideSubtitleEditor">
<div class="flex-layout-item fix subtitle-label center" v-text="subtitleLabel + ':'"></div>
<input
type="text"
class="header-subtitle flex-layout-item stretch"
v-model="data[subtitleProperty]"
v-bind:disabled="disabled"
@input="onSubtitleInput"
></input>
</div>
<button
v-if="showCloseIcon"
class="close close-icon backend-icon-background-pseudo"
@click="$emit('documentcloseclick')"
>
<span aria-hidden="true">×</span>
</button>
</div>
<div>
<transition name="backend-dropdown-overlay-touch-screen">
<div v-if="visible" class="backend-dropdownmenu-overlay" @click.prevent="onOverlayClick" @contextmenu.prevent="onOverlayContextMenu"></div>
</transition>
<backend-component-dropdownmenu-sheet
ref="sheet"
:items="items"
:labeled-by-id="labeledById"
:menu-id="menuId"
:preferable-position="preferablePosition"
@aligntotrigger="$emit('aligntotrigger', $event)"
@command="$emit('command', $event)"
@hidden="onSheetHidden"
@closemenu="hideMenu"
></backend-component-dropdownmenu-sheet>
</div>
<div class="dropdown-menu backend-dropdownmenu" data-menu-position-container>
<div class="dropdown-container">
<transition name="backend-dropdown-menu-touch-screen" v-on:after-leave="onAfterLeave">
<ul
role="menu"
:class="menuClassName"
ref="menu"
v-if="visible"
v-bind:id="menuId"
v-bind:aria-labelledby="labeledById"
>
<li class="submenu-header clearfix" v-if="isSubmenu">
<button
class="go-back-link backend-icon-background-pseudo"
@click.stop.prevent="onGoBackClick"
>Go Back</button>
<button
class="close-link backend-icon-background-pseudo"
@click.stop.prevent="onCloseClick"
>Close Menu</button>
</li>
<backend-component-dropdownmenu-menuitem
v-for="(item, index) in items"
:type="item.type"
:disabled="item.disabled"
:href="item.href"
:target="item.target"
:checked="item.checked"
:items="item.items"
:icon="item.icon"
:label="item.label"
:command="item.command"
:itemStyle="item.style"
:key="index"
:is-first="index == 0"
@command="onCommand($event)"
@hide="onHide"
@itemmouseenter="onItemMouseEnter"
@submenushown="onItemSubmenuShown"
@submenuhidden="onItemSubmenuHidden"
@closemenu="$emit('closemenu', $event)"
></backend-component-dropdownmenu-menuitem>
</ul>
</transition>
</div>
</div>
<li
class="item"
:class="{
separator: type == 'separator',
first: isFirst,
'submenu-expanded': isSubmenuExpanded
}"
v-bind:role="type == 'separator' ? 'separator' : 'presentation'"
v-bind:disabled="disabled"
>
<button v-if="!href && type != 'separator'"
ref="itemElement"
v-bind:tabindex="disabled ? -1 : 0"
v-bind:disabled="disabled"
v-bind:aria-disabled="disabled"
v-bind:role="itemRole"
v-bind:aria-checked="itemIsChecked ? 'true' : 'false'"
v-bind:id="menuItemId"
v-bind:aria-haspopup="hasSubmenu"
v-bind:aria-expanded="isSubmenuExpanded"
:class="{'has-submenu': hasSubmenu}"
:style="itemStyle"
@click="onClick($event)"
@mouseenter="onMouseEnter"
data-menuitem
>
<i :class="icon" v-if="icon"></i>
<i
class="backend-icon-background-pseudo"
v-if="type == 'checkbox' || type == 'radiobutton'"
></i>
<i
class="backend-icon-background-pseudo submenu-indicator"
v-if="hasSubmenu"
></i>
<span v-text="label"></span>
</button>
<a
ref="itemElement"
v-if="href && type != 'separator'"
v-bind:href="href"
v-bind:target="target ? target : '_self'"
v-bind:tabindex="disabled ? -1 : 0"
v-bind:disabled="disabled"
v-bind:aria-disabled="disabled"
v-bind:aria-checked="itemIsChecked ? 'true' : 'false'"
v-bind:role="itemRole"
:style="itemStyle"
@click="onClick($event)"
@mouseenter="onMouseEnter"
data-menuitem
>
<i :class="icon" v-if="icon"></i>
<i
class="backend-icon-background-pseudo"
v-if="type == 'checkbox' || type == 'radiobutton'"
></i>
<span v-text="label"></span>
</a>
<backend-component-dropdownmenu-sheet
v-if="hasSubmenu"
ref="submenu"
:items="items"
:labeled-by-id="menuItemId"
:menu-id="submenuId"
:is-submenu="true"
@command="$emit('command', $event)"
@hidden="onSubmenuHidden"
@closemenu="$emit('closemenu', $event)"
></backend-component-dropdownmenu-sheet>
</li>
<div class="component-backend-loading-indicator" :class="className">
<div class="spinner" v-if="indicatorStyle == 'circles'">
<div class="bounce1"></div>
<div class="bounce2"></div>
<div class="bounce3"></div>
</div>
<div v-if="indicatorStyle == 'stripe'">
<div class="stripe-indicator">
<div></div>
</div>
</div>
<div v-if="indicatorStyle == 'bar'" class="bar-indicator">
<div class="stripe-indicator">
<div :style="barIndicatorStyle" :class="{'progress-done': this.progress == 100}"></div>
</div>
</div>
</div>
<div
class="component-backend-richeditor flex-layout-column"
:class="cssClass"
data-configuration="{"editorLang":"el","useMediaManager":true,"iframeStylesFile":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditor\/assets\/css\/iframestyles.css","globalToolbarButtons":["paragraphFormat","paragraphStyle","quote","bold","italic","underline","align","formatOL","formatUL","insertTable","insertLink","insertImage","insertVideo","insertAudio","insertFile","insertHR","html"],"allowEmptyTags":null,"allowTags":null,"allowAttrs":null,"noWrapTags":null,"removeTags":null,"lineBreakerTags":null,"imageStyles":null,"linkStyles":null,"paragraphStyles":null,"paragraphFormat":null,"tableStyles":null,"tableCellStyles":null}"
>
<div class="flex-layout-item field-richeditor stretch relative" data-richeditor-vue>
<textarea ref="textarea" v-bind:id="editorId" class="editor-element"></textarea>
</div>
</div>
<div
class="component-backend-uploader"
v-show="!hidden"
:class="{'uploader-collapsed': collapsed}"
data-lang-uploading="Uploading Files"
data-lang-complete="Upload Complete"
>
<div class="uploader-header">
<h3 v-text="titleText"></h3>
<backend-component-loading-indicator
indicator-style="bar"
:progress="totalProgress"
></backend-component-loading-indicator>
<button
@click.prevent="onHeaderButtonClick"
type="button"
class="close backend-icon-background-pseudo"
:class="{'collapse': !collapsed && hasFilesInProgress, 'expand': collapsed && hasFilesInProgress}"
tabindex="0"
><span aria-hidden="true">×</span>
</button>
</div>
<div class="uploader-body-container">
<div class="uploader-body">
<backend-component-scrollable-panel
:relative-layout="true"
:relative-layout-max-height="200"
>
<div>
<ul>
<backend-component-uploader-item
v-for="(file, index) in files"
:key="file.key"
:fileName="file.name"
:status="file.status"
:progress="file.progress"
:errorMessage="file.errorMessage"
@removeclick="onRemoveClick(index)"
></backend-component-uploader-item>
</ul>
</div>
</backend-component-scrollable-panel>
</div>
</div>
</div>
<li :class="cssClass">
<span class="item-name" v-text="fileName"></span>
<span class="item-error" v-if="errorMessage" v-text="errorMessage"></span>
<i
class="backend-icon-background"
v-if="status == 'completed'"
></i>
<template
v-if="status == 'uploading'"
>
<backend-component-loading-indicator
indicator-style="bar"
:progress="progress"
></backend-component-loading-indicator>
<button
@click.prevent="$emit('removeclick')"
type="button"
class="close backend-icon-background-pseudo"
tabindex="0"
><span aria-hidden="true">×</span>
</button>
</template>
</li>
<div
class="component-backend-scrollablepanel"
:class="{'scrollablepanel-relative': relativeLayout}"
>
<div class="scrollable-panel-container" ref="container">
<div
class="scrollable"
ref="scrollable"
v-on:scroll.passive="onScroll"
:style="containerStyle"
>
<slot></slot>
</div>
</div>
</div>
<backend-component-inspector-panel
ref="panel"
:controls="dataSchema"
:obj="liveObject"
:inspector-unique-id="uniqueId"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
>
</backend-component-inspector-panel>
<div
class="component-backend-inspector-panel"
data-validation-alert-title="Error"
>
<backend-component-inspector-grouphost
:controls="untabbedControls"
:obj="obj"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="0"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
></backend-component-inspector-grouphost>
<backend-component-tabs
v-show="tabs.length > 0"
ref="tabs"
:tabs="tabs"
:closeable="false"
:use-slots="true"
tabs-style="inspector"
@tabselected="onTabSelected"
>
<template v-for="tabInfo in tabs" v-slot:[tabInfo.key]>
<backend-component-inspector-grouphost
:controls="tabbedControls[tabInfo.key]"
:obj="obj"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="0"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
></backend-component-inspector-grouphost>
</template>
</backend-component-tabs>
</div>
<div class="component-backend-inspector-group">
<div
class="group-name inspector-padding-control-left inspector-padding-control-right"
:class="{expanded: expanded, collapsed: !expanded, loading: loading, 'has-errors': hasErrors, 'hide-bottom-border-collapsed': hideBottomBorder}"
@click.stop="onToggleGroup"
>
<div :style="nameStyle">
<span
v-text="nameAndValue"
class="backend-icon-background-pseudo"
></span>
<backend-component-loading-indicator v-if="loading"
size="tiny"
></backend-component-loading-indicator>
</div>
</div>
<transition name="group-fade-in">
<backend-component-inspector-controlhost
v-show="expanded"
:controls="controls"
:obj="obj"
:splitter-data="splitterData"
:depth="depth + 1"
:panel-update-data="panelUpdateData"
:inspector-preferences="inspectorPreferences"
:inspector-unique-id="inspectorUniqueId"
@inspectorcommand="$emit('inspectorcommand', $event)"
>
</backend-component-inspector-controlhost>
</transition>
</div>
<div class="component-backend-inspector-grouphost">
<backend-component-inspector-controlhost
:controls="groupedControls.ungrouped"
:obj="obj"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
>
</backend-component-inspector-controlhost>
<backend-component-inspector-group
v-for="(controls, groupName) in groupedControls"
v-if="groupName != 'ungrouped'"
:key="groupName"
:group-name="groupName"
:obj="obj"
:controls="controls"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
>
</backend-component-inspector-group>
</div>
<table class="component-backend-inspector-controlhost" @mousedown.stop="onHandleMouseDown">
<backend-component-inspector-controlhost-row
v-for="control in controls"
:obj="obj"
:key="control.property"
:control-host-unique-id="uniqueId"
:control="control"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
:inspector-unique-id="inspectorUniqueId"
:is-full-width="isFullWidthControl(control)"
@inspectorcommand="$emit('inspectorcommand', $event)"
>
</backend-component-inspector-controlhost-row>
</table>
<tr class="inspector-control-row" :class="{'has-errors': hasErrors, 'hide-bottom-border': bottomBorderHidden}">
<th v-if="!isFullWidth && !controlLabelHidden" :style="titlePanelStyle">
<div class="inspector-label-container" :class="{'has-description': control.description}">
<label
class="inspector-padding-control-left"
v-text="control.title"
v-bind:for="controlEditorId"
:style="labelStyle"
@click.stop="onLabelClick"
></label>
<span
v-if="control.description"
class="property-description backend-icon-background-pseudo"
v-bind:data-tooltip-text="control.description"
></span>
</div>
</th>
<td v-bind:colspan="controlColspan">
<div class="full-width-control-label" v-if="isFullWidth && (control.title || control.description) && ! controlLabelHidden">
<label
class="inspector-padding-control-left"
v-text="control.title"
v-bind:for="controlEditorId"
:style="labelStyle"
@click.stop="onLabelClick"
></label>
<div
v-if="control.description"
class="inspector-padding-control-left full-width-property-description"
v-text="control.description"
:style="labelStyle"
></div>
</div>
<div :class="{'inspector-control-container': !isFullWidth, 'no-property-title': !control.title && !control.description}">
<div v-if="!isFullWidth" class="inspector-drag-handle"></div>
<backend-component-inspector-control-text
v-if="control.type == 'string' || control.type == 'text'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:splitter-data="splitterData"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
></backend-component-inspector-control-text>
<backend-component-inspector-control-dropdown
v-if="control.type == 'dropdown'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
></backend-component-inspector-control-dropdown>
<backend-component-inspector-control-autocomplete
v-if="control.type == 'autocomplete'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
></backend-component-inspector-control-autocomplete>
<backend-component-inspector-control-checkbox
v-if="control.type == 'checkbox'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
></backend-component-inspector-control-checkbox>
<backend-component-inspector-control-table
v-if="control.type == 'table'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
ref="editor"
@hidebottomborder="bottomBorderHidden = true"
@hidefullwidthlabel="controlLabelHidden = true"
></backend-component-inspector-control-table>
<backend-component-inspector-control-object
v-if="control.type == 'object'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
></backend-component-inspector-control-object>
<backend-component-inspector-control-set
v-if="control.type == 'set'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
></backend-component-inspector-control-set>
<backend-component-inspector-control-objectlist
v-if="control.type == 'objectList'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
></backend-component-inspector-control-objectlist>
<backend-component-inspector-control-objectlist-records
v-if="control.type == 'objectListRecords'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
@inspectorcommand="$emit('inspectorcommand', $event)"
></backend-component-inspector-control-objectlist-records>
<backend-component-inspector-control-dictionary
v-if="control.type == 'dictionary'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
></backend-component-inspector-control-dictionary>
<backend-component-inspector-control-mediafinder
v-if="control.type == 'mediafinder'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:splitter-data="splitterData"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
></backend-component-inspector-control-mediafinder> </div>
</td>
</tr>
<div>
<input
v-if="control.type == 'string'"
class="inspector-control"
type="text"
ref="input"
v-bind:value="valueWithPreset"
v-bind:id="controlId"
v-bind:placeholder="control.placeholder"
v-bind:readonly="inspectorPreferences.readOnly"
@input="updateValue"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
/>
<textarea
v-if="control.type == 'text'"
class="component-backend-inspector-textinput inspector-control"
:class="cssClass"
ref="input"
v-bind:value="valueWithPreset"
v-bind:id="controlId"
v-bind:placeholder="control.placeholder"
v-bind:readonly="inspectorPreferences.readOnly"
@input="updateValue"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
></textarea>
<div
v-if="control.type == 'text'"
class="inspector-textarea-shadow inspector-control component-backend-inspector-textinput"
ref="textareaShadow"
v-text="valueWithPreset"
></div>
</div>
<div v-bind:tabindex="containerTabIndex" @focus="onContainerFocus">
<backend-component-loading-indicator v-if="loadingDynamicOptions"
size="tiny"
></backend-component-loading-indicator>
<backend-component-dropdown
v-if="!loadingDynamicOptions"
:options="options"
:id="controlId"
:placeholder="control.placeholder"
:tabindex="0"
:disabled="inspectorPreferences.readOnly"
:allow-empty="true"
track-by="code"
label="label"
ref="input"
v-model="selectedValue"
select-label=""
selected-label=""
deselect-label=""
@input="updateValue"
@open="onFocus"
@close="onBlur"
@hook:mounted="onDropdownMounted"
>
<span slot="noResult">No options found</span>
</backend-component-dropdown>
</div>
<div class="inspector-control">
<div
class="component-backend-inspector-checkbox"
>
<label
tabindex="0"
@keydown="onLabelKeydown"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
>
<input
type="checkbox"
ref="input"
value="1"
v-bind:checked="isChecked"
v-bind:id="controlId"
v-bind:readonly="inspectorPreferences.readOnly"
v-bind:disabled="inspectorPreferences.readOnly"
@input="updateValue"
/><span class="backend-icon-background-pseudo"></span>
</label>
</div>
</div>
<div
class="component-backend-inspector-table"
data-lang-add-item="Add item"
>
<table>
<backend-component-inspector-control-table-head
:columns="columns"
>
</backend-component-inspector-control-table-head>
<tbody>
<backend-component-inspector-control-table-row
v-for="(row, index) in value"
:row="row"
:key="index"
:columns="columns"
:row-index="index"
:inspector-preferences="inspectorPreferences"
:table-configuration="tableConfiguration"
@removerow="onRemoveRowClick"
>
</backend-component-inspector-control-table-row>
</tbody>
</table>
<div v-if="tableConfiguration.adding" class="inspector-padding-control-left table-control-links">
<a
href="#"
class="add-item-link"
:class="{disabled: inspectorPreferences.readOnly}"
@click.stop.prevent="onAddItemClick"
v-text="control.btnAddRowLabel === undefined ? lang.addItem : control.btnAddRowLabel"
></a>
</div>
</div>
<thead @mousedown.stop="onHandleMouseDown">
<tr>
<backend-component-inspector-control-table-headcell
v-for="(column, index) in columns"
:key="index"
:column="column"
:column-index="index"
:column-width="columnWidth"
>
</backend-component-inspector-control-table-headcell>
</tr>
</thead>
<th v-bind:style="cellStyle">
<div class="header-cell-container">
<div v-if="columnIndex != 0" class="cell-resize-handle"></div>
<span v-text="column.title"></span>
</div>
</th>
<tr :class="{focused: focused, 'has-errors': hasErrors}">
<backend-component-inspector-control-table-cell
v-for="(column, index) in columns"
:key="index"
:column="column"
:row="row"
:cell-index="index"
:inspector-preferences="inspectorPreferences"
:table-configuration="tableConfiguration"
:is-last-cell="index == columns.length-1"
@focus="onCellFocus"
@blur="onCellBlur"
@valid="onValid"
@invalid="onInvalid"
@removerow="$emit('removerow', rowIndex)"
>
</backend-component-inspector-control-table-cell>
</tr>
<td>
<div class="table-cell-container">
<backend-component-inspector-control-table-text
v-if="column.type == 'string'"
:row="row"
:column="column"
:cell-index="cellIndex"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
@valid="$emit('valid', $event)"
@invalid="$emit('invalid', $event)"
>
</backend-component-inspector-control-table-text>
<backend-component-inspector-control-table-dropdown
v-if="column.type == 'dropdown'"
:row="row"
:column="column"
:cell-index="cellIndex"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
@valid="$emit('valid', $event)"
@invalid="$emit('invalid', $event)"
>
</backend-component-inspector-control-table-dropdown>
<button v-if="isLastCell && tableConfiguration.deleting && !inspectorPreferences.readOnly" @click.stop="$emit('removerow')" class="remove-row-btn"></button>
</div>
</td>
<input
type="text"
class="inspector-table-control-text"
v-model="row[column.column]"
ref="input"
v-bind:readonly="inspectorPreferences.readOnly"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
/>
<div
v-bind:tabindex="containerTabIndex"
@focus="onContainerFocus"
class="inspector-table-dropdown-container"
>
<backend-component-dropdown
:options="options"
:placeholder="column.placeholder"
:tabindex="0"
:disabled="inspectorPreferences.readOnly"
:allow-empty="true"
track-by="code"
label="label"
ref="editor"
v-model="selectedValue"
select-label=""
selected-label=""
deselect-label=""
@input="updateValue"
@open="onFocus"
@close="onBlur"
>
<span slot="noResult">No options found</span>
</backend-component-dropdown>
<div class="dropdown-placeholder" v-if="!hasValue" v-text="column.placeholder"></div>
</div>
<div>
<backend-component-inspector-group
:group-name="control.title"
:obj="editedObject"
:controls="control.properties"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
ref="group"
>
</backend-component-inspector-group>
</div>
<div>
<backend-component-inspector-group
:group-name="control.title"
:obj="editedObject"
:controls="nestedControlProperties"
:splitter-data="splitterData"
:depth="depth"
:group-value="groupValue"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
:loading="loadingDynamicOptions"
ref="group"
>
</backend-component-inspector-group>
</div>
<div
data-lang-key-required="The Key field is required"
data-lang-value-required="The Value field is required"
>
<backend-component-inspector-group
:group-name="control.title"
:obj="editedObject"
:controls="nestedControlProperties"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:group-value="groupValue"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
:hide-bottom-border="true"
ref="group"
>
</backend-component-inspector-group>
</div>
<div
data-lang-error="Error"
data-lang-prop-cant-be-empty="Property :property cannot be empty"
data-lang-key-value-exists="Value is already defined: :property_value"
>
<backend-component-inspector-group
:group-name="control.title"
:obj="editedObject"
:controls="nestedControlProperties"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
ref="group"
@inspectorcommand="onInspectorCommand"
>
</backend-component-inspector-group>
</div>
<div
class="component-backend-inspector-table"
data-lang-add-item="Add item"
>
<table v-if="hasValues">
<tbody>
<tr v-for="(record, key) in obj">
<td class="no-sub-controls" :class="{clickable: !inspectorPreferences.readOnly}" @click.stop="onItemClick(key)">
<div class="clickable-data-container">
<span v-text="getRecordTitle(record)"></span>
<button v-if="!inspectorPreferences.readOnly" @click.stop.prevent="onRemoveItemClick(key)" class="remove-row-btn"></button>
</div>
</td>
</tr>
</tbody>
</table>
<div class="inspector-padding-control-left table-control-links">
<a
href="#"
class="add-item-link"
:class="{disabled: inspectorPreferences.readOnly}"
@click.stop.prevent="onAddItemClick"
v-text="lang.addItem"
></a>
</div>
</div>
<div>
<backend-component-loading-indicator v-if="loadingDynamicOptions"
size="tiny"
></backend-component-loading-indicator>
<backend-component-autocomplete
v-if="!loadingDynamicOptions"
ref="autocomplete"
:search="onSearch"
:getResultValue="getResultValue"
:placeholder="placeholder"
:defaultValue="initialValue"
:readonly="inspectorPreferences.readOnly"
v-bind:id="controlId"
@input="onInput"
@change="onChange"
@update="onUpdate"
@focus="onFocus"
@blur="onBlur"
>
<template #result="{ result, props }">
<li v-bind="props" class="autocomplete-result">
{{ result.value }}
</li>
</template>
</backend-component-autocomplete>
</div>
<div
data-lang-error-not-image="The selected file is not an image"
data-lang-placeholder="Click to select a file"
class="inspector-control-clearable"
>
<div
class="inspector-control clickable act-as-text-input"
:class="cssClass"
:tabindex="0"
@focus="onFocus"
@blur="onBlur"
ref="input"
v-text:value="displayedText"
v-bind:readonly="inspectorPreferences.readOnly"
@click.stop="onClick"
@keydown.stop="onKeyDown"
></div>
<button v-if="this.value && !inspectorPreferences.readOnly" @click.stop="onClearClick" class="clear-value"></button>
</div>
<div
data-default-button-text="Εντάξει"
>
<backend-component-modal
ref="modal"
:aria-labeled-by="modalTitleId"
:unique-key="uniqueId"
:size="size"
:store-position="true"
:resizable="resizableWidth ? 'horizontal' : false"
:resize-default-width="600"
:close-by-esc="!readOnly"
:modal-temporary-hidden="layoutUpdateData.modalTemporaryHidden"
@hidden="onHidden"
@resized="onResized"
@shown="onShown"
@enterkey="onEnterKey"
>
<template v-slot:content>
<div class="modal-header">
<button
@click.prevent="onCloseClick"
type="button"
class="close backend-icon-background-pseudo"
v-bind:disabled="readOnly"
aria-label="Κλείσιμο"
tabindex="0"
><span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" v-bind:id="modalTitleId" v-text="title"></h4>
</div>
<div class="modal-body inspector-modal-host">
<backend-component-inspector
:data-schema="dataSchema"
:data="data"
:live-mode="false"
:unique-id="uniqueId"
:layout-update-data="layoutUpdateData"
:read-only="readOnly"
ref="inspector"
>
</backend-component-inspector>
</div>
<div class="modal-footer">
<button
type="button"
class="btn btn-primary btn-default-action"
data-default-focus
@click="onApplyClick"
v-text="primaryButtonText"
v-bind:disabled="readOnly"
></button>
<span class="button-separator">ή</span>
<button
class="btn btn-link text-muted"
:class="{disabled: readOnly}"
@click.prevent="onCloseClick"
>Άκυρο</button>
</div>
</template>
</backend-component-modal>
</div>
<div
class="component-backend-splitter" :class="cssClass"
>
<div class="flex-layout-item fix splitter-first-panel" :style="firstPanelStyle" ref="firstPanel">
<slot name="first">
Left panel
</slot>
</div>
<div
class="flex-layout-item fix splitter-handle"
:class="{dragging: dragging}"
ref="handle"
@mousedown.stop="onHandleMouseDown"
></div>
<div class="flex-layout-item stretch relative">
<slot name="second">
Right panel
</slot>
</div>
</div>
<div
class="component-backend-tabs flex-layout-column"
:class="cssClass"
data-lang-close="Close Tab"
data-lang-close-all="Close All"
data-lang-close-others="Close Others"
data-lang-close-saved="Close Saved"
>
<div class="tablist-container flex-layout-item fix" v-show="!hideTabPanel">
<div class="flex-layout-row tablist-scrollable-container" :class="{'has-fixed-panel': supportsFullScreen && hasTabs}" ref="scrollableTabsContainer">
<div class="tabs-scrollable flex-layout-item stretch" ref="scrollable">
<div
class="tablist flex-layout-row"
role="tablist"
ref="tabList"
v-bind:aria-label="ariaLabel"
@keydown="onKeyDown"
>
<button
v-for="tab in tabs"
role="tab"
data-component-backend-tab
class="flex-layout-item"
:class="{
active: currentTabKey == tab.key,
stretch: tabsStyle == 'document',
fix: tabsStyle == 'form',
'has-icon': tab.icon || tab.fatalError,
'has-close-button': closeable
}"
v-bind:id="getTabId(tab, 'tab')"
v-bind:aria-controls="getTabId(tab, 'panel')"
v-bind:aria-selected="currentTabKey == tab.key ? 'true' : 'false'"
v-bind:tabindex="currentTabKey == tab.key ? 0 : -1"
v-bind:data-tooltip-text="getTooltipText(tab)"
@click.ignore="onClick(tab)"
@contextmenu.stop="onContextMenu($event, tab)"
>
<span
class="tab-icon"
:class="{'tab-error': tab.fatalError}"
v-if="tab.icon"
aria-hidden="true"
>
<span
class="tab-icon-background"
v-bind:style="getTabIconStyle(tab)"
>
<i
:class="tab.icon.cssClass"
></i>
</span>
<i class="backend-icon-background tab-error"></i>
</span>
<span v-text="tab.label" role="text"></span>
<span
class="backend-icon-background-pseudo close-tab"
:class="{'has-changes': tab.hasChanges}"
v-bind:tabindex="currentTabKey == tab.key ? 0 : -1"
v-if="closeable"
role="button"
aria-hidden="true"
aria-label="Close Tab"
v-bind:title="closeTooltip ? '' : 'Close Tab'"
v-bind:data-tooltip-text="closeTooltip"
v-bind:data-tooltip-hotkey="closeTooltipHotkey"
@click.stop.prevent="onCloseClick(tab)"
>✕</span>
</button>
</div>
</div>
<div class="flex-layout-item fix fixed-right tabs-toolbar" v-if="supportsFullScreen && hasTabs">
<div class="toolbar-container">
<button
class="backend-toolbar-button icon-only"
data-tooltip-text="Toggle Full Screen"
@click.stop.prevent="onToggleFullscreen"
>
<i :class="{'octo-icon-fullscreen': !isFullScreen, 'octo-icon-fullscreen-collapse': isFullScreen}"></i>
</button>
</div>
</div>
</div>
</div>
<template v-if="!noPanes">
<div
v-for="tab in tabs"
role="tabpanel"
tabindex="0"
:key="getTabUniqueKey(tab)"
v-show="currentTabKey == tab.key"
v-bind:id="getTabId(tab, 'panel')"
v-bind:aria-labelledby="getTabId(tab, 'tab')"
class="tabpanel flex-layout-item stretch relative"
:class="tabPanelCssClass"
>
<component
v-if="!useSlots"
:ref="getTabComponentRefName(tab)"
v-bind:is="tab.component"
:component-data="tab.componentData"
@tabfatalerror="onTabFatalError(tab)"
@tabkeychanged="onTabkeyChanged"
@tabclose="onHostedComponentTabClose(tab)"
></component>
<slot v-else :name="tab.key"></slot>
</div>
</template>
<slot v-if="!tabs.length" name="noTabsView"></slot>
<backend-component-dropdownmenu
:items="contextMenuItems"
:menu-id="contextMenuId"
:labeled-by-id="contextMenuLabeledById"
ref="contextmenu"
@command="onMenuItemCommand"
></backend-component-dropdownmenu>
</div>
<div
class="flex-layout-column component-backend-monaco-editor"
:class="cssClass"
data-configuration="{"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/monacoeditor\/assets\/vendor\/monaco@0.23.0\/min","fontSize":"12px","tabSize":4,"renderLineHighlight":"all","useTabStops":false,"renderIndentGuides":false,"renderWhitespace":"none","autoClosingBrackets":"languageDefined","autoClosingQuotes":"languageDefined","hover":{"delay":750},"wordWrap":"off","theme":"vs-dark"}"
>
<div class="flex-layout-item fix" v-if="showTabs">
<backend-component-tabs
:tabs="editorTabs"
:closeable="false"
:no-panes="true"
:container-css-class="tabsContainerCssClass"
:tooltips-enabled="false"
tabs-style="monaco-editor"
@tabselected="onTabSelected"
></backend-component-tabs>
</div>
<div class="flex-layout-item stretch layout-relative" style="overflow: hidden">
<div
class="flex-layout-column fill-container"
:class="editorContainerCssClass"
ref="editorContainer"
@dragover.capture="onDragOver"
@drop.capture="onDragDrop"
></div>
</div>
</div>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
<div
class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"
:class="cssClass"
data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.myseminars.com.cy\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"
>
<div v-if="allowResizing && !codeEditingMode" class="top-ruler flex-layout-item fix">
<div class="width-indicator" :style="rulerStyle">
<span v-for="tick in majorTicks" :style="tick.style" class="width-tick tick-major"></span>
<span v-for="tick in minorTicks" :style="tick.style" class="width-tick tick-minor"></span>
<div class="width-drag-handle" @mousedown.stop="onResizingHandleMouseDown" ref="handle"></div>
</div>
</div>
<div class="flex-layout-item stretch richeditor-container">
<slot></slot>
</div>
<div class="flex-layout-item stretch relative codeeditor-container">
<backend-component-monacoeditor
v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>
</backend-component-monacoeditor>
</div>
</div>
<backend-component-document
container-css-class="fill-container"
:built-in-mode="true"
:full-screen="fullScreen"
ref="document"
>
<template v-slot:toolbar v-if="!hasExternalToolbar">
<backend-component-document-toolbar
:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
></backend-component-document-toolbar>
</template>
<template v-slot:content>
<div class="flex-layout-column fill-container" ref="contentContainer">
<div class="flex-layout-item stretch editor-panel relative">
<backend-component-richeditor-document-connector
:allow-resizing="resizable"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-event-bus="externalToolbarEventBus"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
<backend-component-richeditor
v-model="value"
:read-only="options.readOnly"
:full-page="fullPage"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>
</backend-component-richeditor>
</backend-component-richeditor-document-connector>
</div>
</div>
</template>
</backend-component-document>
Min. ECTS Credits: 18 Max. ECTS Credits: 36
Course ID | Course Title | ECTS Credits |
---|---|---|
MBAN-610G | Οργανισμοί και Διαχείριση Ανθρώπινου Δυναμικού | 6 |
MBAN-620G | Οικονομική των Επιχειρήσεων | 6 |
MBAN-630G | Χρηματοοικονομική και Διοικητική Λογιστική | 6 |
MBAN-640G | Χρηματοοικονομική Διοίκηση | 6 |
MBAN-650G | Στρατηγικό Μάρκετινγκ | 6 |
MBAN-660G | Εταιρική Στρατηγική | 6 |
Section: C – Υποχρεωτικά και Ελεύθερης Επιλογής Μαθήματα
Min. ECTS Credits: 54 Max. ECTS Credits: 54
Notes: Επιλογή – Χωρίς Πτυχιακή
Course ID | Course Title | ECTS Credits |
---|---|---|
MBAN-671G | Επιχειρησιακές Διαδικασίες και Συστήματα | 6 |
MBAN-672G | Παγκοσμιοποίηση και Διεθνείς Επιχειρηματικές Προκλήσεις | 6 |
MBAN-681G | Διαδικασίες Συμβουλευτικών Υπηρεσιών | 6 |
MBAN-682G | Εφοδιαστική Αλυσίδα | 6 |
MBAN-683G | Διαχείριση Επιχειρησιακής Αλλαγής | 6 |
MBAN-684G | Διαχείριση Γνώσης | 6 |
MBAN-686G | Γεωργική Πολιτική | 6 |
MBAN-687G | Κοστολόγηση Γεωργικής Παραγωγής, Χρηματοδότηση και Ασφάλιση | 6 |
MBAN-688G | Μάρκετινγκ Γεωργικών Προϊόντων και Τροφίμων | 6 |
MBAN-702G | Επιχειρηματική Δεοντολογία | 6 |
MBAN-710G | Μέθοδοι και Εργαλεία Λήψης Αποφάσεων | 6 |
MBAN-720G | Αρχές Ακαδημαϊκής Έρευνας | 6 |
MBAN-734G | Μάρκετινγκ Επιχειρησιακών Σχέσεων | 6 |
MBAN-748G | Συμπεριφορά Καταναλωτών | 6 |
MBAN-749G | Μάρκετινγκ Επιχειρησιακών Υπηρεσιών | 6 |
MBAN-751G | Εταιρική Κοινωνική Ευθύνη | 6 |
MBAN-752G | Μάρκετινγκ Επιχειρησιακών Επικοινωνιών | 6 |
MBAN-753G | Διεθνές Μάρκετινγκ | 6 |
MBAN-754G | Ανάλυση Χαρτοφυλακίου | 6 |
MBAN-755G | Χρηματοπιστωτικές Αγορές και Ιδρύματα | 6 |
MBAN-756G | Διαχείριση Οικονομικών Κινδύνων | 6 |
MBAN-757G | Παγκόσμιες Οικονομικές Στρατηγικές | 6 |
MBAN-758G | Διοίκηση Κεφαλαίου Κίνησης | 6 |
MBAN-759G | Εταιρική Χρηματοδότηση | 6 |
MBAN-761G | Οι Αγορές και τα Οικονομικά των Υδρογονανθράκων | 6 |
MBAN-762G | Ενεργειακή Στρατηγική της ΕΕ | 6 |
MBAN-763G | Ασφάλεια και Διαχείριση Ρίσκου στη Βιομηχανία Υδρογονανθράκων | 6 |
MBAN-764G | Εκτίμηση Περιβαλλοντικών Επιπτώσεων στη Βιομηχανία | 6 |
MBAN-765G | Συστήματα και Αγορές Υγροποιημένου Φυσικού Αερίου | 6 |
MBAN-766G | Ενέργεια και Γεωπολιτική | 6 |
MBAN-767G | Ανθρώπινο Δυναμικό και Οργανωτική Ανάπτυξη | 6 |
MBAN-768G | Διαχείριση Αποδοτικότητας | 6 |
MBAN-769G | Στελέχωση Εργαζομένων | 6 |
MBAN-778G | Ηγεσία και Καινοτομία | 6 |
MBAN-779G | Διαχείριση της Διαφορετικότητας σε Οργανισμούς | 6 |
MBAN-788G | Επιχειρηματικότητα και Νεοφυείς Επιχειρήσεις | 6 |
MBAN-789G | Διαχείριση Τεχνολογικής Καινοτομίας | 6 |
MBAN-790G | Διαχείριση Οικογενειακών και Μικρομεσαίων Επιχειρήσεων | 6 |
MBAN-797G | Ψηφιακός Μετασχηματισμός και Επιχειρήσεις | 6 |
MBAN-798G | Σχεδιασμός και Ανάπτυξη Ιστοσελίδων | 6 |
MBAN-799G | Διαχείριση Έργων | 6 |
Section: D – Unallocated Courses
Min. ECTS Credits: 0 Max. ECTS Credits: 0
Section: A – Foundation Courses
Min. ECTS Credits: 0 Max. ECTS Credits: 0
Course ID | Course Title | ECTS Credits |
---|---|---|
MBAN-540 | Foundations in Economics | 0 |
MBAN-550 | Foundations in Accounting | 0 |
MBAN-560 | Foundations in Statistics and Research | 0 |
Section: B – Compulsory Courses
Min. ECTS Credits: 18 Max. ECTS Credits: 36
Course ID | Course Title | ECTS Credits |
---|---|---|
MBAN-610 | Organizations and HR Management | 6 |
MBAN-620 | Business Economics | 6 |
MBAN-630 | Financial and Managerial Accounting | 6 |
MBAN-640 | Financial Management | 6 |
MBAN-650 | Strategic Marketing | 6 |
MBAN-660 | Corporate Strategy | 6 |
Section: C – Required and Free Electives
Min. ECTS Credits: 54 Max. ECTS Credits: 54
Notes: Only NON-THESIS Option.
Course ID | Course Title | ECTS Credits |
---|---|---|
MBAN-671 | Business Processes and Systems | 6 |
MBAN-672 | Globalization and International Business Challenges | 6 |
MBAN-681 | Consultancy Process | 6 |
MBAN-682 | Supply Chain Management | 6 |
MBAN-683 | Managing Change | 6 |
MBAN-684 | Knowledge Management | 6 |
MBAN-686 | Agricultural Policy | 6 |
MBAN-687 | Agricultural Production, Costing, Financing and Insurance | 6 |
MBAN-688 | Marketing of Food and Agricultural Products | 6 |
MBAN-702 | Integrity in Organizations | 6 |
MBAN-710 | Decision Making Methods and Tools | 6 |
MBAN-720 | Scholarship and Research | 6 |
MBAN-734 | Relationship Marketing | 6 |
MBAN-748 | Consumer Behaviour | 6 |
MBAN-749 | Marketing of Services | 6 |
MBAN-751 | Corporate Social Responsibility | 6 |
MBAN-752 | Marketing Communications | 6 |
MBAN-753 | Global Marketing | 6 |
MBAN-754 | Portfolio Analysis | 6 |
MBAN-755 | Financial Markets and Institutions | 6 |
MBAN-756 | Financial Risk Management | 6 |
MBAN-757 | Global Financial Strategies | 6 |
MBAN-758 | Working Capital Management | 6 |
MBAN-759 | Advanced Corporate Finance | 6 |
MBAN-761 | Hydrocarbon (HCB) Markets and Economics | 6 |
MBAN-762 | EU Energy Strategy | 6 |
MBAN-763 | Energy Safety and Risk Management in the HCB Industry | 6 |
MBAN-764 | Environmental Impact Assessment in the HCB Industry | 6 |
MBAN-765 | LNG Systems and Markets | 6 |
MBAN-766 | Energy and Geopolitics | 6 |
MBAN-767 | HR and Organizational Development | 6 |
MBAN-768 | Managing Performance | 6 |
MBAN-769 | Employee Resourcing | 6 |
MBAN-778 | Leadership and Innovation | 6 |
MBAN-779 | Managing Diversity in Organizations | 6 |
MBAN-788 | Entrepreneurship and Startup Management | 6 |
MBAN-789 | Management of Technological Innovation | 6 |
MBAN-790 | Managing SMEs and Family Businesses | 6 |
MBAN-797 | Digital Business Transformation | 6 |
MBAN-798 | Web Design and Development | 6 |
MBAN-799 | Project Management | 6 |
Section: D – Unallocated Courses
Min. ECTS Credits: 0 Max. ECTS Credits: 0