UNPKG

@openveo/core

Version:
440 lines (401 loc) 18.7 kB
<!DOCTYPE html> <html ng-app="ov" ng-controller="MainController" ng-strict-di> <head> <title ng-bind="title | translate"></title> <base href="/be/"> <meta name="viewport" content="width=device-width, initial-scale=1"> {{=[[ ]]=}} [[#css]] <link rel="stylesheet" type="text/css" href="[[.]]"> [[/css]] <script> var openVeoSettings = { version: [[& version]], plugins: [ [[& angularJsModules]] ], socketServerPort: [[socketServerPort]], anonymousId: '[[anonymousId]]', superAdminId: '[[superAdminId]]', authenticationMechanisms: [[& authenticationMechanisms]], authenticationStrategies: [[& authenticationStrategies]], user: [[& user]] }; </script> </head> <body> <header ng-if="displayMainMenu" class="header navbar navbar-default navbar-fixed-top" role="banner" ng-cloak> <!-- Top Navigation Bar --> <div class="container"> <!-- Only visible on smartphones, menu toggle --> <div class="navbar-header"> <button class="navbar-toggle collapsed" type="button" ng-click="toggleResponsiveMenu()"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <!-- Logo --> <a class="navbar-brand" href="/be" ng-click="navigate($event)"> <img alt="OpenVeo" src="images/logo-white.png"> </a> <!-- /logo --> <!-- /Sidebar Toggler --> <!-- Top Right Menu --> <ul class="nav navbar-nav navbar-right "> <li popover-title="{{'CORE.MENU.PROFILES' | translate}}" uib-popover="{{userInfo.name}}" popover-trigger="'mouseenter click'" popover-placement="bottom"> <a class="icon" href="profile" ng-click="navigate($event)" > <div class="glyphicon glyphicon-user"></div> </a> </li> <li class="dropdown language" uib-dropdown is-open="menuDropdownIsOpen"> <a popover-title="{{'CORE.MENU.LANGUAGE' | translate}}" uib-popover="{{language | translate}}" popover-trigger="'mouseenter click'" popover-placement="bottom" class="icon dropdown-toggle" href="#" ng-click="closeResponsiveMenu();" uib-dropdown-toggle role="button" ng-disabled="disabled"> <span class="glyphicon glyphicon-globe"></span> </a> <ul class="dropdown-menu" role="menu"> <li ng-repeat="language in languages" ng-class="{'active' : language.active}"> <a href="#" ng-click="changeLanguage(language.value)" ng-bind="language.label | translate" class="{{language.value}}"></a> </li> </ul> </li> <li uib-popover="{{'CORE.MENU.LOGOUT' | translate}}" popover-trigger="'mouseenter click'" popover-placement="bottom"> <a class="icon" href="logout" ng-click="logout()"> <div class="glyphicon glyphicon-log-out"></div> </a> </li> </ul> </div> </header> <div id="wrapper" ng-class="{'toggled' : !isResponsiveMenuClosed}"> <div ng-if="displayMainMenu" id="sidebar-wrapper"> <ul class="sidebar-nav"> <li ng-repeat="(holder, item) in menu | orderBy:'+weight'" ng-class="{'open': indexOpen == $index, 'current': item.active}"> <a href="{{item.path}}" ng-bind="item.label | translate" ng-click="closeResponsiveMenu();" ng-if="!item.subMenu && !item.subMenu.length"></a> <a href="#" ng-if="item.subMenu || item.subMenu.length" ng-click="toggleSidebarSubMenu($index)"><i class="icon-angle-down"></i><span ng-bind="item.label | translate"></span></a> <ul class="sub-menu" ng-if="item.subMenu || item.subMenu.length"> <li ng-repeat="subItem in item.subMenu | orderBy:'+weight'" ng-class="{'current' : subItem.active}" ng-click="closeResponsiveMenu();"> <a href="{{subItem.path}}" ><i class="icon-angle-right"></i><span ng-bind="subItem.label | translate"></span></a> </li> </ul> </li> </ul> </div> <div id="page-content-wrapper" ng-class="{'login':!displayMainMenu}" ng-click="closeResponsiveMenu()"> <div class="alert-container"> <div class="container"> <div uib-alert ng-repeat="alert in alerts" ng-class="'alert-' + (alert.type || 'warning')" close="alert.close()"> <span ng-bind-html="alert.msg"></span> </div> </div> </div> <div class="container"> <div id="{{displayMainMenu?'content':''}}" ng-class="{'login-screen':!displayMainMenu}"> <div ng-view ng-cloak ng-class="[{'vertical-center-row': verticalAlign}]" class="view"></div> </div> </div> </div> </div> <!-- Custom directive templates --> <!-- "ov-tags" directive template --> <script type="text/ng-template" id="ov-core-tags.html"> <div class="ov-field-tags"> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" ng-keydown="handleKeys($event);" ng-model="editableTagsInput" ng-change="autoComplete()" placeholder="{{placeholder}}" class="form-control"> <ul> <li ng-repeat="item in tags track by $index" class="option"> <div ng-bind="item"></div> <a ng-click="removeTag($event, $index)" class="glyphicon glyphicon-remove"></a> </li> </ul> <ul class="ov-field-tags-auto-complete" ng-if="autoCompleteValues.length"> <li ng-repeat="option in autoCompleteValues track by $index" ng-click="addTag(option.name)"> <div ng-bind="option.name"></div> </li> </ul> </div> </script> <!-- "ov-match" directive template --> <script type="text/ng-template" id="ov-core-match.html"> <div class="ov-field-match"> <a ng-click="addMatch()" ng-if="multiple || !matches.length" class="ov-field-match-add-button"> <span class="glyphicon glyphicon-plus-sign ov-field-match-add-icon"></span> <span class="ov-field-match-add-label" ng-bind="addLabel"></span> </a> <div ng-repeat="match in matches track by $index" class="ov-field-match-value"> <div class="col-xs-5"> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="form-control" ng-model="match[inputProperty]" ng-change="updateModel()" placeholder="{{inputPlaceholder}}"/> </div> <div class="col-xs-5"> <ov-tags ng-model="match[tagsProperty]" ng-model-options="{allowInvalid: true}" ng-change="updateModel()" ov-available-options="availableOptions" ov-placeholder="tagsPlaceholder"> </ov-tags> </div> <div class="col-xs-2"> <a ng-click="removeMatch($index)" class="glyphicon glyphicon-minus-sign ov-field-match-remove-icon"></a> </div> </div> </div> </script> <!-- "ov-multi-check-box" directive template --> <script type="text/ng-template" id="ov-core-mutli-check-box.html"> <div class="ov-multi-check-box"> <div ng-repeat="option in options" class="checkbox"> <label> <input type="checkbox" ng-model="values[$index]" ng-change="onChange()" ng-disabled="disabled" /> {{ option[labelProperty] }} </label> </div> </div> </script> <!-- "ov-date-time-picker" directive template --> <script type="text/ng-template" id="ov-core-date-time-picker.html"> <div class="ov-date-time-picker"> <div class="input-group"> <input ng-model="$ctrl.date" ng-model-options="{allowInvalid: true}" ng-blur="$ctrl.setAsTouched();" uib-datepicker-popup="shortDate" datepicker-append-to-body="true" is-open="$ctrl.calendarIsOpened" current-text="{{currentText}}" clear-text="{{clearText}}" close-text="{{closeText}}" class="form-control"> <span class="input-group-btn"> <button type="button" class="btn btn-default" ng-click="$ctrl.openDatePicker($event)"><i class="glyphicon glyphicon-calendar"></i></button> </span> <div class="ov-time-picker"> <div uib-timepicker ng-model="$ctrl.time" ng-model-options="{allowInvalid: true}" ng-blur="$ctrl.setAsTouched();" show-spinners="false" show-meridian="false" template-url="ov-core-time-picker.html" ></div> </div> </div> </div> </script> <!-- "ov-core-time-picker" template for ovDateTimePicker directive copied from angular-bootstrap (original is uib/template/timepicker/timepicker.html) An issue comes with the Bootstrap time picker default template, the "has-error" class is automatically applied when hours field is empty and so without making field required. Also to avoid duplicating the whole template, unused parts have been removed such as meridians, seconds and spinners. --> <script type="text/ng-template" id="ov-core-time-picker.html"> <table class="uib-timepicker"> <tbody> <tr> <td class="form-group uib-time hours"> <input type="text" placeholder="HH" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementHours()" ng-blur="blur()"> </td> <td class="uib-separator">:</td> <td class="form-group uib-time minutes"> <input type="text" placeholder="MM" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementMinutes()" ng-blur="blur()"> </td> </tr> </tbody> </table> </script> <!-- "ov-auto-complete" directive template --> <script type="text/ng-template" id="ov-core-auto-complete.html"> <div class="ov-field-auto-complete"> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" ng-model="element.name" ng-model-options="{allowInvalid: true}" ng-change="validateValue()" placeholder="{{placeholder}}" class="form-control"> <ul ng-if="suggestions.length"> <li ng-repeat="suggestion in suggestions" ng-click="validateSuggestion(suggestion);"> <div ng-bind="suggestion.name" title="{{suggestion.name}}"></div> </li> </ul> </div> </script> <!-- Formly template wrappers --> <!-- Formly "collapse" wrapper template --> <script type="text/ng-template" id="ov-core-collapse.html"> <div class="panel panel-default"> <div for="{{::id}}" class="panel-heading" ng-init="isCollapsed=true" ng-click="isCollapsed = !isCollapsed"> {{ to.labelCollapse }} </div> <div class="panel-body" uib-collapse="isCollapsed"> <formly-transclude></formly-transclude> </div> </div> </script> <!-- Formly "horizontalBootstrapLabel" wrapper template --> <script type="text/ng-template" id="ov-core-horizontal-bootstrap-label.html"> <label class="col-md-2 control-label"> {{ to.label }} {{ to.required ? "*" : "" }} </label> <div class="col-md-8"> <formly-transclude></formly-transclude> </div> </script> <!-- Formly "horizontalBootstrapLabelOnly" wrapper template --> <script type="text/ng-template" id="ov-core-horizontal-bootstrap-label-only.html"> <label class="col-md-2 control-label"> {{ to.label }} {{ to.required ? "*" : "" }} </label> <formly-transclude></formly-transclude> </script> <!-- Formly "editable" wrapper template --> <script type="text/ng-template" id="ov-core-editable-wrapper.html"> <div> <div class="literal" ng-show="!formState.showForm"> <span ng-class="{'editable-empty': isEmpty}" ng-bind-html="show()"> </span> </div> <div ng-show="formState.showForm"> <formly-transclude></formly-transclude> </div> </div> </script> <!-- Formly types --> <!-- Formly "emptyrow" type template --> <script type="text/ng-template" id="ov-core-empty-row.html"> <div class="well well-sm">{{ to.message }}</div> </script> <!-- Formly "section" type template --> <script type="text/ng-template" id="ov-core-section.html"> <h3 ng-bind="to.title"></h3> </script> <!-- Formly "datepicker" type template --> <script type="text/ng-template" id="ov-core-formly-datepicker.html"> <div class="input-group"> <input ng-model="model[options.key]" class="form-control" uib-datepicker-popup="shortDate" is-open="status.opened" ng-required="true" current-text="{{'CORE.DATEPICKER.TODAY' | translate}}" clear-text="{{'CORE.DATEPICKER.CLEAR' | translate}}" close-text="{{'CORE.DATEPICKER.CLOSE' | translate}}"> <span class="input-group-btn"> <button type="button" class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button> </span> </div> </script> <!-- Formly "dateTimePicker" type template --> <script type="text/ng-template" id="ov-core-formly-date-time-picker.html"> <ov-date-time-picker ng-model="model[options.key]" ng-required="to.required" ov-current-text="{{'CORE.DATEPICKER.TODAY' | translate}}" ov-clear-text="{{'CORE.DATEPICKER.CLEAR' | translate}}" ov-close-text="{{'CORE.DATEPICKER.CLOSE' | translate}}" ></ov-date-time-picker> </script> <!-- Formly "tags" type template --> <script type="text/ng-template" id="ov-core-formly-tags.html"> <ov-tags ng-model="model[options.key]" ng-model-options="{ allowInvalid: true }" ng-change="to.onChange && to.onChange()" ov-available-options="to.availableOptions" ov-placeholder="to.placeholder"></ov-tags> </script> <!-- Formly "match" type template --> <script type="text/ng-template" id="ov-core-formly-match.html"> <ov-match ng-model="model[options.key]" ng-model-options="{ allowInvalid: true }" ov-multiple="to.multiple" ov-available-options="to.availableOptions" ov-input-placeholder="to.inputPlaceholder" ov-tags-placeholder="to.tagsPlaceholder" ov-input-property="to.inputProperty" ov-tags-property="to.tagsProperty" ov-add-label="to.addLabel"> </ov-match> </script> <!-- Formly "ovMultiCheckBox" type template --> <script type="text/ng-template" id="ov-core-formly-multi-check-box.html"> <div> <ov-multi-check-box ng-model="model[options.key]" options="to.options" label-property="to.labelProperty" value-property="to.valueProperty" disabled="to.disabled" ng-model-options="{ allowInvalid: true }"> </ov-multi-check-box> </div> </script> <!-- Formly "tinymce" type template --> <script type="text/ng-template" id="ov-core-textarea-tinymce.html"> <textarea ui-tinymce="options.data.tinymceOptions" ng-model="model[options.key]" class="form-control"> </textarea> </script> <!-- Formly "ovFile" type template --> <script type="text/ng-template" id="ov-file.html"> <div> <input type="file" class="btn btn-default" name="{{options.key}}" ng-disabled="to.disabled" ngf-accept="to.acceptedTypes" ngf-select ng-model="file" ngf-model-options="{updateOn: 'change'}" ngf-change="to.onFileChange($files, $file, $newFiles, $duplicateFiles, $invalidFiles, $event)"> <uib-progressbar ng-if="to.progressBar" ng-show="model[options.key] >= 0 && file" class="progress-striped" value="model[options.key]" type="warning"> {{model[options.key]}}% </uib-progressbar> </div> </script> <!-- Formly "simple" type template --> <script type="text/ng-template" id="ov-core-simple.html"> <div class="ov-formly-simple" ng-bind="model[options.key]" ng-class="{'ov-formly-simple-edit': formState.showForm}"></div> </script> <!-- Formly "autoComplete" type template --> <script type="text/ng-template" id="ov-core-formly-auto-complete.html"> <ov-auto-complete ng-model="model[options.key]" ng-model-options="{ allowInvalid: true }" ng-change="to.onChange && to.onChange()" ov-get-suggestions="to.getSuggestions" ov-placeholder="to.placeholder"></ov-auto-complete> </script> [[#librariesScripts]] <script type="text/javascript" src="[[.]]"></script> [[/librariesScripts]] <script> var languageChunks = /language=(.*?)(?:;|$)/.exec(document.cookie); language = (languageChunks && languageChunks.length === 2 && languageChunks[1]) || null; document.write('\x3Cscript type="text/javascript" src="/angular-i18n/angular-locale_' + (language || navigator.language || navigator.browserLanguage).toLowerCase() + '.js">\x3C/script>'); </script> [[#scripts]] <script type="text/javascript" src="[[.]]"></script> [[/scripts]] </body> [[={{ }}=]] </html>