Template improvements
- Show item duration and done for normal users correctly. - Fixed CSS class for countdown warning time. - Improved projector manage button layout. - Updated fontawsome icons to 4.7. - Fixed iframe width/height to show border correctly. - Improved 'close list of speakers' button. - Improved 'clear all filter' icons. - Fixed election pdf if candidate was deleted. - Moved ban icon for internal icons. - Improved edit projector form. Show simple scaling steps instead of width/height resolution. - Consolidated both agenda item filters. - Used better sort icon. - Installed colordialog plugin for ckeditor to select more colors. - Several css improvements.
This commit is contained in:
parent
f1b87af623
commit
ef2a22fefe
@ -26,7 +26,7 @@
|
||||
"bootstrap-ui-datetime-picker": "~2.4.0",
|
||||
"ckeditor": "~4.7.2",
|
||||
"docxtemplater": "~2.1.5",
|
||||
"font-awesome-bower": "~4.5.0",
|
||||
"font-awesome-bower": "~4.7.0",
|
||||
"jquery.cookie": "~1.4.1",
|
||||
"js-data": "~2.9.0",
|
||||
"js-data-angular": "~3.2.1",
|
||||
|
@ -181,6 +181,7 @@ gulp.task('ckeditor-plugins', function () {
|
||||
[
|
||||
path.join('bower_components', 'ckeditor', 'plugins', 'clipboard', '**', '*'),
|
||||
path.join('bower_components', 'ckeditor', 'plugins', 'colorbutton', '**', '*'),
|
||||
path.join('bower_components', 'ckeditor', 'plugins', 'colordialog', '**', '*'),
|
||||
path.join('bower_components', 'ckeditor', 'plugins', 'dialog', '**', '*'),
|
||||
path.join('bower_components', 'ckeditor', 'plugins', 'find', '**', '*'),
|
||||
path.join('bower_components', 'ckeditor', 'plugins', 'image', '**', '*'),
|
||||
|
@ -19,7 +19,7 @@
|
||||
<!-- current list of speakers -->
|
||||
<a ui-sref="agenda.current-list-of-speakers" os-perms="users.can_see_name"
|
||||
class="btn btn-default btn-sm">
|
||||
<i class="fa fa-microphone"></i>
|
||||
<i class="fa fa-microphone fa-lg"></i>
|
||||
<translate>Current list of speakers</translate>
|
||||
</a>
|
||||
<!-- project agenda button -->
|
||||
@ -199,33 +199,47 @@
|
||||
<span class="sort-spacer pointer" ng-click="filter.reset(isSelectMode)"
|
||||
ng-if="filter.areFiltersSet()" ng-disabled="isSelectMode"
|
||||
ng-class="{'disabled': isSelectMode}">
|
||||
<i class="fa fa-times-circle"></i>
|
||||
<i class="fa fa-window-close"></i>
|
||||
<translate>Filter</translate>
|
||||
</span>
|
||||
<!-- boolean Filters -->
|
||||
<span ng-repeat="(name, booleanFilter) in filter.booleanFilters"
|
||||
ng-if="!booleanFilter.permission || operator.hasPerms(booleanFilter.permission)" uib-dropdown>
|
||||
<span class="pointer" id="dropdown{{ name }}" uib-dropdown-toggle
|
||||
ng-class="{'bold': booleanFilter.value !== undefined, 'disabled': isSelectMode}"
|
||||
ng-disabled="isSelectMode">
|
||||
{{ booleanFilter.displayName | translate }}
|
||||
<span class="caret"></span>
|
||||
</span>
|
||||
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdown{{ name }}">
|
||||
<li>
|
||||
<a href ng-click="booleanFilter.value = (booleanFilter.value ? undefined : true); filter.save();">
|
||||
<i class="fa" ng-class="{'fa-check': booleanFilter.value === true}"></i>
|
||||
{{ booleanFilter.choiceYes | translate }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href ng-click="booleanFilter.value = (booleanFilter.value === false) ? undefined : false; filter.save();">
|
||||
<i class="fa" ng-class="{'fa-check': booleanFilter.value === false}"></i>
|
||||
{{ booleanFilter.choiceNo | translate }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
<!-- boolean Filters (combined!) -->
|
||||
<span uib-dropdown>
|
||||
<span class="sort-spacer pointer" id="dropdownItems" uib-dropdown-toggle
|
||||
ng-class="{'bold': (filter.booleanFilters.closed.value !== undefined) ||
|
||||
(filter.booleanFilters.is_hidden.value !== undefined),
|
||||
'disabled': isSelectMode}"
|
||||
ng-disabled="isSelectMode">
|
||||
<translate>Items</translate>
|
||||
<span class="caret"></span>
|
||||
</span>
|
||||
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownItems">
|
||||
<li>
|
||||
<a href ng-click="filter.booleanFilters.closed.value = (filter.booleanFilters.closed.value ? undefined : true); filter.save();">
|
||||
<i class="fa" ng-class="{'fa-check': filter.booleanFilters.closed.value === true}"></i>
|
||||
{{ filter.booleanFilters.closed.choiceYes | translate }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href ng-click="filter.booleanFilters.closed.value = (filter.booleanFilters.closed.value === false) ? undefined : false; filter.save();">
|
||||
<i class="fa" ng-class="{'fa-check': filter.booleanFilters.closed.value === false}"></i>
|
||||
{{ filter.booleanFilters.closed.choiceNo | translate }}
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href ng-click="filter.booleanFilters.is_hidden.value = (filter.booleanFilters.is_hidden.value ? undefined : true); filter.save();">
|
||||
<i class="fa" ng-class="{'fa-check': filter.booleanFilters.is_hidden.value === true}"></i>
|
||||
{{ filter.booleanFilters.is_hidden.choiceYes | translate }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href ng-click="filter.booleanFilters.is_hidden.value = (filter.booleanFilters.is_hidden.value === false) ? undefined : false; filter.save();">
|
||||
<i class="fa" ng-class="{'fa-check': filter.booleanFilters.is_hidden.value === false}"></i>
|
||||
{{ filter.booleanFilters.is_hidden.choiceNo | translate }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
<!-- search field -->
|
||||
<span class="form-group">
|
||||
<span class="input-group">
|
||||
@ -311,10 +325,6 @@
|
||||
<!-- main content column -->
|
||||
<div class="col-xs-6 content"
|
||||
style="padding-left: calc({{ items.length === itemsSearched.length ? item.parentCount : 0 }}*25px)">
|
||||
<div class="icon-column">
|
||||
<i class="fa fa-ban" ng-style="{'visibility': item.is_hidden ? 'visible' : 'hidden'}"
|
||||
title="{{ 'Internal item' | translate }}"></i>
|
||||
</div>
|
||||
<div class="caret-spacer" ng-if="items.length === itemsSearched.length">
|
||||
<i class="fa pointer"
|
||||
ng-style="{visibility: hasChildren(item) ? 'visible' : 'hidden'}"
|
||||
@ -364,9 +374,12 @@
|
||||
</span>
|
||||
</div>
|
||||
<div os-perms="!agenda.can_manage">
|
||||
<span ng-if="item.duration">
|
||||
<i class="fa fa-clock-o"></i> {{ item.duration | osMinutesToTime }}
|
||||
</span>
|
||||
<div os-perms="agenda.can_see_hidden_items">
|
||||
<span ng-if="item.duration">
|
||||
<i class="fa fa-clock-o"></i> {{ item.duration | osMinutesToTime }}
|
||||
<translate translate-comment="'h' means time in hours">h</translate>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-style="{'visibility': (item.comment || item.hover) ? 'visible' : 'hidden'}">
|
||||
@ -390,20 +403,26 @@
|
||||
<template-hook hook-name="agendaListAdditionalContentColumn"></template-hook>
|
||||
</small>
|
||||
</div>
|
||||
<div style="width: 40%;" class="pull-right">
|
||||
<div style="width: 40%; overflow: hidden;" class="pull-right">
|
||||
<div os-perms="agenda.can_manage">
|
||||
<div class="pointer nobr" ng-click="item.type = (item.type == 1) ? 2 : 1; save(item);" ng-show="item.hover || item.is_hidden">
|
||||
<i class="fa" ng-class="item.is_hidden ? 'fa-check-square-o' : 'fa-square-o'"></i>
|
||||
<span class="spacer-left" translate>Internal item</span>
|
||||
<span class="spacer-left" translate>Internal</span>
|
||||
</div>
|
||||
<div class="pointer nobr" ng-click="item.closed = !item.closed; save(item);" ng-show="item.hover || item.closed">
|
||||
<i class="fa" ng-class="item.closed ? 'fa-check-square-o' : 'fa-square-o'"></i>
|
||||
<span class="spacer-left" translate>Done</span>
|
||||
</div>
|
||||
</div>
|
||||
<div os-perms="!agenda.can_manage" ng-if="item.closed">
|
||||
<i class="fa fa-check-square-o"></i>
|
||||
<span class="spacer-left" translate>Done</span>
|
||||
<div os-perms="!agenda.can_manage" >
|
||||
<div ng-show="item.is_hidden">
|
||||
<i class="fa fa-ban"></i>
|
||||
<span class="spacer-left" translate>Internal</span>
|
||||
</div>
|
||||
<div ng-show="item.closed">
|
||||
<i class="fa fa-check-square-o"></i>
|
||||
<span class="spacer-left" translate>Done</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,6 +1,16 @@
|
||||
<div ng-if="item" class="details" ng-controller="ListOfSpeakersManagementCtrl">
|
||||
<div class="speakers-toolbar">
|
||||
<div class="pull-right">
|
||||
<span os-perms="agenda.can_manage">
|
||||
<button ng-if="item.speaker_list_closed" ng-click="closeList(false)"
|
||||
 class="btn btn-sm btn-default">
|
||||
<translate>Open list of speakers</translate>
|
||||
 </button>
|
||||
 <button ng-if="!item.speaker_list_closed" ng-click="closeList(true)"
|
||||
 class="btn btn-sm btn-default">
|
||||
 <translate>Close list of speakers</translate>
|
||||
 </button>
|
||||
</span>
|
||||
<span os-perms="agenda.can_manage_list_of_speakers">
|
||||
<button ng-if="isAllowed('removeAll')" class="btn btn-sm btn-danger"
|
||||
ng-bootbox-confirm="{{ 'Are you sure you want to remove all speakers from this list?'| translate }}"
|
||||
@ -9,18 +19,6 @@
|
||||
<translate>Remove all speakers</translate>
|
||||
</button>
|
||||
</span>
|
||||
<span os-perms="agenda.can_manage">
|
||||
<button ng-if="item.speaker_list_closed" ng-click="closeList(false)"
|
||||
class="btn btn-sm btn-default">
|
||||
<i class="fa fa-toggle-off"></i>
|
||||
<translate>Closed</translate>
|
||||
</button>
|
||||
<button ng-if="!item.speaker_list_closed" ng-click="closeList(true)"
|
||||
class="btn btn-sm btn-default">
|
||||
<i class="fa fa-toggle-on"></i>
|
||||
<translate>Open</translate>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -115,17 +115,16 @@ angular.module('OpenSlidesApp.assignments.pdf', ['OpenSlidesApp.core.pdf'])
|
||||
//creates the voting string for the result table and differentiates between special values
|
||||
var parseVoteValue = function(voteObject, printLabel) {
|
||||
var voteVal = "";
|
||||
if (voteObject) {
|
||||
if (printLabel) {
|
||||
voteVal += voteObject.label + ": ";
|
||||
}
|
||||
voteVal += voteObject.value;
|
||||
|
||||
if (printLabel) {
|
||||
voteVal += voteObject.label + ": ";
|
||||
if (voteObject.percentStr) {
|
||||
voteVal += " " + voteObject.percentStr;
|
||||
}
|
||||
}
|
||||
|
||||
voteVal += voteObject.value;
|
||||
|
||||
if (voteObject.percentStr) {
|
||||
voteVal += " " + voteObject.percentStr;
|
||||
}
|
||||
|
||||
voteVal += "\n";
|
||||
return voteVal;
|
||||
};
|
||||
@ -373,7 +372,10 @@ angular.module('OpenSlidesApp.assignments.pdf', ['OpenSlidesApp.core.pdf'])
|
||||
});
|
||||
} else {
|
||||
angular.forEach(candidates, function(option) {
|
||||
var candidate = option.candidate.get_full_name();
|
||||
var candidate;
|
||||
if (option.candidate) {
|
||||
candidate = option.candidate.get_full_name();
|
||||
}
|
||||
candidateBallotList.push(createYNBallotEntry(candidate));
|
||||
});
|
||||
}
|
||||
|
@ -94,7 +94,7 @@
|
||||
<span class="sort-spacer pointer" ng-click="filter.reset(isSelectMode)"
|
||||
ng-if="filter.areFiltersSet()" ng-disabled="isSelectMode"
|
||||
ng-class="{'disabled': isSelectMode}">
|
||||
<i class="fa fa-times-circle"></i>
|
||||
<i class="fa fa-window-close"></i>
|
||||
<translate>Filter</translate>
|
||||
</span>
|
||||
<!-- Tag filter -->
|
||||
@ -152,11 +152,13 @@
|
||||
<!-- all sortOptions -->
|
||||
<li ng-repeat="option in sortOptions">
|
||||
<a ng-click="sort.toggle(option.name)">
|
||||
{{ option.display_name | translate }}
|
||||
<span class="spacer-right pull-right"></span>
|
||||
<span ng-style="{'font-weight': sort.column === option.name ? 'bold' : 'normal'}">
|
||||
{{ option.display_name | translate }}
|
||||
</span>
|
||||
<span class="spacer-right pull-right"></span>
|
||||
<i class="pull-right fa"
|
||||
ng-style="{'visibility': sort.column === option.name ? 'visible' : 'hidden'}"
|
||||
ng-class="sort.reverse ? 'fa-sort-desc' : 'fa-sort-asc'">
|
||||
ng-class="sort.reverse ? 'fa-sort-amount-desc' : 'fa-sort-amount-asc'">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
|
@ -131,6 +131,10 @@
|
||||
display: auto;
|
||||
}
|
||||
|
||||
.inline {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.login-logo {
|
||||
width: 250px;
|
||||
}
|
||||
@ -243,3 +247,9 @@ tr.selected td {
|
||||
background-color: #fcf8e3;
|
||||
border-color: #faebcc;
|
||||
}
|
||||
.close {
|
||||
opacity: 0.3 !important;
|
||||
}
|
||||
.close:hover {
|
||||
opacity: 0.6 !important;
|
||||
}
|
||||
|
@ -24,9 +24,9 @@
|
||||
font-weight: normal;
|
||||
font-size: 5vw;
|
||||
}
|
||||
#countdown.warning {
|
||||
.warning_time {
|
||||
color: #ed940d;
|
||||
}
|
||||
#countdown.negative {
|
||||
.negative {
|
||||
color: #CC0000;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
right: 30px;
|
||||
padding: 10px 30px;
|
||||
background: white;
|
||||
opacity: 0.6;
|
||||
opacity: 0.8;
|
||||
transition: opacity 250ms ease-out;
|
||||
z-index: 100;
|
||||
|
||||
|
@ -20,18 +20,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
width: 65%;
|
||||
padding-right: 5px;
|
||||
float: left;
|
||||
|
||||
button {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-danger {
|
||||
width: 35%;
|
||||
.dropdown button {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.resolution {
|
||||
|
@ -14,6 +14,7 @@
|
||||
|
||||
& > button {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -191,14 +191,6 @@ hr {
|
||||
margin-top: 20px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
&.warning {
|
||||
color: #ed940d;
|
||||
}
|
||||
|
||||
&.negative {
|
||||
color: #CC0000;
|
||||
}
|
||||
}
|
||||
|
||||
.message_background {
|
||||
|
@ -561,7 +561,7 @@ strong, b, th {
|
||||
}
|
||||
|
||||
.iframewrapper {
|
||||
width: 256px;
|
||||
width: 258px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
border: 1px solid #D5D5D5;
|
||||
@ -597,3 +597,13 @@ strong, b, th {
|
||||
font-size: 16px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/** Config **/
|
||||
#config .panel-body {
|
||||
padding-top: 0;
|
||||
}
|
||||
#config.details h3 {
|
||||
font-size: 22px;
|
||||
padding-top: 30px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
@import "variables";
|
||||
@import "helper";
|
||||
@import "ui-override";
|
||||
@import "core/countdown";
|
||||
|
||||
/* Apps */
|
||||
@import "core/projector";
|
||||
|
@ -1070,7 +1070,7 @@ angular.module('OpenSlidesApp.core', [
|
||||
* - YOffset: move the editor toolbar 40px up
|
||||
*/
|
||||
getOptions: function () {
|
||||
var extraPluginsString = 'colorbutton,find,sourcedialog,justify,showblocks';
|
||||
var extraPluginsString = 'colorbutton,colordialog,find,sourcedialog,justify,showblocks';
|
||||
var registeredPluginsString = extraPlugins.join(',');
|
||||
if (registeredPluginsString) {
|
||||
extraPluginsString += ',' + registeredPluginsString;
|
||||
|
@ -1626,6 +1626,7 @@ angular.module('OpenSlidesApp.core.site', [
|
||||
id: projector.id,
|
||||
floor: 800,
|
||||
ceil: 3840,
|
||||
step: 10,
|
||||
translate: function (value) {
|
||||
return value + 'px';
|
||||
},
|
||||
|
@ -2,7 +2,7 @@
|
||||
<div>
|
||||
<div id="countdown" ng-class="{
|
||||
'negative': countdown.seconds <= 0,
|
||||
'warning': countdown.seconds <= config('agenda_countdown_warning_time') && countdown.seconds > 0 }">
|
||||
'warning_time': countdown.seconds <= config('agenda_countdown_warning_time') && countdown.seconds > 0 }">
|
||||
<div class="row">
|
||||
<div class="col-d-12">{{ countdown.seconds | osSecondsToTime}}</div>
|
||||
</div>
|
||||
|
@ -45,14 +45,31 @@
|
||||
{{ projector.id }}:
|
||||
<strong>{{ projector.name | translate }}</strong>
|
||||
</a>
|
||||
<a href="" class="pull-right" ng-click="toggleEditMenu(projector.id)"><i class="fa" ng-class="edit[projector.id] ? 'fa-times' : 'fa-pencil'"></i></a>
|
||||
<span class="pull-right">
|
||||
<a href="" ng-click="toggleEditMenu(projector.id)"><i class="fa" ng-class="edit[projector.id] ? 'fa-times' : 'fa-pencil'"></i></a>
|
||||
<a href="" class="text-danger" style="padding-left: 5px;"
|
||||
ng-hide="projector.id==1 || edit[projector.id]"
|
||||
ng-bootbox-confirm="{{ 'Are you sure you want to delete this entry?' | translate }}<br>
|
||||
<b>{{ projector.name | translate }}</b>"
|
||||
ng-bootbox-confirm-action="deleteProjector(projector)">
|
||||
<i class="fa fa-trash"></i>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div ng-show="edit[projector.id]" style="margin-bottom: -20px;">
|
||||
<div>
|
||||
<div class="form-group">
|
||||
<label for="name{{ projector.id }}" class="control-label"><translate>Name</translate>:</label>
|
||||
<input type="text" class="form-control" id="name{{ projector.id }}"
|
||||
ng-model="projector.name" ng-change="editName(projector)"
|
||||
ng-model-options="{debounce: 2000}"></input>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="menuProjector{{ projector.id }}" class="control-label"><translate>Projection defaults</translate>:</label>
|
||||
<div class="dropdown" uib-dropdown>
|
||||
<button class="btn btn-default btn-sm" id="menuProjector{{ projector.id }}" uib-dropdown-toggle>
|
||||
<translate>Projection defaults</translate>
|
||||
--- <translate>Please select</translate> ---
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" uib-dropdown-menu aria-labelledby="menuProjector{{ projector.id }}">
|
||||
@ -64,49 +81,34 @@
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<button type="button" class="btn btn-danger btn-sm"
|
||||
ng-hide="projector.id==1"
|
||||
ng-bootbox-confirm="{{ 'Are you sure you want to delete this entry?' | translate }}<br>
|
||||
<b>{{ projector.name | translate }}</b>"
|
||||
ng-bootbox-confirm-action="deleteProjector(projector)">
|
||||
<i class="fa fa-trash"></i>
|
||||
<translate>Delete</translate>
|
||||
</button>
|
||||
<div ng-show="projector.id==1" style="height: 30px"><!-- Placeholder --></div>
|
||||
</div>
|
||||
<div>
|
||||
<label for="name{{ projector.id }}" class="control-label"><translate>Name</translate>:</label>
|
||||
<input type="text" class="form-control" id="name{{ projector.id }}"
|
||||
ng-model="projector.name" ng-change="editName(projector)"
|
||||
ng-model-options="{debounce: 2000}"></input>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="aspectRatio{{ projector.id }}" class="control-label"><translate>Aspect ratio</translate>:</label>
|
||||
<div id="aspectRatio{{ projector.id }}">
|
||||
<div class="dropdown" uib-dropdown>
|
||||
<button class="btn btn-default btn-sm" uib-dropdown-toggle>
|
||||
{{ resolutions[projector.id].aspectRatio }}
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" uib-dropdown-menu aria-labelledby="aspectRatio{{ projector.id }}">
|
||||
<li ng-repeat="(aspectRatio, value) in aspectRatios track by $index">
|
||||
<a href ng-click="setAspectRatio(projector, aspectRatio); saveResolution(projector);">
|
||||
<i class="fa fa-check" ng-if="aspectRatio === resolutions[projector.id].aspectRatio"></i>
|
||||
{{ aspectRatio }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label for="resolution{{ projector.id }}" class="control-label"><translate>Resolution</translate>:</label>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="resolution{{ projector.id }}" class="control-label"><translate>Scaling</translate>:</label>
|
||||
<div id="resolution{{ projector.id }}">
|
||||
<div>
|
||||
<span>
|
||||
{{ resolutions[projector.id].width }}×{{ resolutions[projector.id].height }}
|
||||
</span>
|
||||
<div class="dropdown" uib-dropdown>
|
||||
<button class="btn btn-default btn-sm" id="aspectRatio{{ projector.id }}" uib-dropdown-toggle>
|
||||
<translate>Aspect ratio</translate>: {{ resolutions[projector.id].aspectRatio }}
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" uib-dropdown-menu aria-labelledby="aspectRatio{{ projector.id }}">
|
||||
<li ng-repeat="(aspectRatio, value) in aspectRatios track by $index">
|
||||
<a href ng-click="setAspectRatio(projector, aspectRatio); saveResolution(projector);">
|
||||
<i class="fa fa-check" ng-if="aspectRatio === resolutions[projector.id].aspectRatio"></i>
|
||||
{{ aspectRatio }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<rzslider class="os-slider"
|
||||
rz-slider-model="sliders[projector.id].value"
|
||||
rz-slider-options="sliders[projector.id].options"></rzslider>
|
||||
</div>
|
||||
</div>
|
||||
<p class="help-block">
|
||||
{{ resolutions[projector.id].error }}
|
||||
@ -127,7 +129,7 @@
|
||||
}
|
||||
|
||||
#iframewrapper_{{ projector.id }} {
|
||||
height: {{ projector.iframeHeight }}px;
|
||||
height: {{ projector.iframeHeight + 2 }}px;
|
||||
}
|
||||
|
||||
#iframeoverlay_{{ projector.id }} {
|
||||
@ -195,15 +197,15 @@
|
||||
<!-- Default, BC, Blank -->
|
||||
<div class="middle">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-sm" ng-class="broadcast == projector.id ? 'btn-primary' : 'btn-default'"
|
||||
<button class="btn btn-sm" ng-class="broadcast == projector.id ? 'btn-danger' : 'btn-default'"
|
||||
ng-click="projector.toggleBroadcast(projector)"
|
||||
ng-disabled="broadcast > 0 && broadcast != projector.id"
|
||||
uib-tooltip="{{ 'Broadcast the content of this projector to all other projectors.' | translate }}"
|
||||
tooltip-placement="bottom">
|
||||
<i class="fa" ng-class="broadcast == projector.id ? 'fa-star' : 'fa-star-o'"></i>
|
||||
<i class="fa fa-bullhorn"></i>
|
||||
<translate>Broadcast</translate>
|
||||
</button>
|
||||
<button class="btn btn-sm" ng-class="projector.blank ? 'btn-primary' : 'btn-default'"
|
||||
<button class="btn btn-sm" ng-class="projector.blank ? 'btn-danger' : 'btn-default'"
|
||||
ng-click="projector.toggleBlank(projector)"
|
||||
ng-disabled="broadcast > 0 && broadcast != projector.id">
|
||||
<i class="fa" ng-class="projector.blank ? 'fa-square' : 'fa-square-o'"></i>
|
||||
|
@ -49,7 +49,7 @@
|
||||
</div>
|
||||
<div os-perms="core.can_manage_projector">
|
||||
<button class="btn btn-sm" ng-click="active_projector.toggleBlank()" ng-hide="projectors.length > 1"
|
||||
ng-class="active_projector.blank ? 'btn-primary' : 'btn-default'">
|
||||
ng-class="active_projector.blank ? 'btn-danger' : 'btn-default'">
|
||||
<i class="fa" ng-class="active_projector.blank ? 'fa-square' : 'fa-square-o'"></i>
|
||||
<translate>Blank</translate>
|
||||
</button>
|
||||
@ -59,20 +59,6 @@
|
||||
<translate>Manage</translate>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="btn-group nobr" ng-show="projectors.length > 1" os-perms="core.can_manage_projector">
|
||||
<button class="btn btn-sm" ng-class="broadcast == active_projector.id ? 'btn-primary' : 'btn-default'"
|
||||
ng-click="active_projector.toggleBroadcast()" ng-disabled="broadcast > 0 && broadcast != active_projector.id">
|
||||
<i class="fa" ng-class="broadcast == active_projector.id ? 'fa-star' : 'fa-star-o'"></i>
|
||||
<translate>Broadcast</translate>
|
||||
</button>
|
||||
<button class="btn btn-sm" ng-click="active_projector.toggleBlank()"
|
||||
ng-class="active_projector.blank ? 'btn-primary' : 'btn-default'"
|
||||
ng-disabled="broadcast > 0 && broadcast != active_projector.id">
|
||||
<i class="fa" ng-class="active_projector.blank ? 'fa-square' : 'fa-square-o'"></i>
|
||||
<translate>Blank</translate>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a ui-sref="projector({id: active_projector.id })" target="_blank">
|
||||
@ -187,7 +173,7 @@
|
||||
<span ng-if="!countdown.editTime" class="countdown_timer vcenter"
|
||||
ng-class="{
|
||||
'negative': countdown.seconds <= 0,
|
||||
'warning': countdown.seconds <= config('agenda_countdown_warning_time') && countdown.seconds > 0 }">
|
||||
'warning_time': countdown.seconds <= config('agenda_countdown_warning_time') && countdown.seconds > 0 }">
|
||||
{{ countdown.seconds | osSecondsToTime }}
|
||||
</span>
|
||||
<!-- edit countdown form -->
|
||||
|
@ -2,7 +2,7 @@
|
||||
<div class="countdown well pull-right"
|
||||
ng-class="{
|
||||
'negative': countdown.seconds <= 0,
|
||||
'warning': countdown.seconds <= config('agenda_countdown_warning_time') && countdown.seconds > 0 }">
|
||||
'warning_time': countdown.seconds <= config('agenda_countdown_warning_time') && countdown.seconds > 0 }">
|
||||
{{ countdown.seconds | osSecondsToTime}}
|
||||
<div class="description">{{ countdown.description }}</div>
|
||||
</div>
|
||||
|
@ -124,7 +124,7 @@
|
||||
<!-- language switcher -->
|
||||
<span uib-dropdown> |
|
||||
<a href="" class="headerlink" uib-dropdown-toggle id="language-dropdown">
|
||||
<i class="fa fa-flag"></i>
|
||||
<i class="fa fa-globe"></i>
|
||||
<span class="hide-sm">{{ selectedLanguage[0].name | translate }}</span>
|
||||
</a>
|
||||
<ul class="dropdown-menu pull-right" uib-dropdown-menu aria-labelledby="language-dropdown">
|
||||
|
@ -172,7 +172,7 @@
|
||||
<span class="sort-spacer pointer" ng-click="filter.reset(isSelectMode)"
|
||||
ng-if="filter.areFiltersSet()" ng-disabled="isSelectMode"
|
||||
ng-class="{'disabled': isSelectMode}">
|
||||
<i class="fa fa-times-circle"></i>
|
||||
<i class="fa fa-window-close"></i>
|
||||
<translate>Filter</translate>
|
||||
</span>
|
||||
<!-- boolean Filters -->
|
||||
@ -210,11 +210,13 @@
|
||||
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownSort">
|
||||
<li ng-repeat="option in sortOptions">
|
||||
<a href ng-click="sort.toggle(option.name)">
|
||||
{{ option.display_name | translate }}
|
||||
<span ng-style="{'font-weight': sort.column === option.name ? 'bold' : 'normal'}">
|
||||
{{ option.display_name | translate }}
|
||||
</span>
|
||||
<span class="spacer-right pull-right"></span>
|
||||
<i class="pull-right fa"
|
||||
ng-style="{'visibility': sort.column === option.name ? 'visible' : 'hidden'}"
|
||||
ng-class="sort.reverse ? 'fa-sort-desc' : 'fa-sort-asc'">
|
||||
ng-class="sort.reverse ? 'fa-sort-amount-desc' : 'fa-sort-amount-asc'">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
|
@ -370,10 +370,16 @@ angular.module('OpenSlidesApp.motions.pdf', ['OpenSlidesApp.core.pdf'])
|
||||
style: 'heading3',
|
||||
marginTop: 25,
|
||||
});
|
||||
var width;
|
||||
if (params.lineNumberMode == 'outside') {
|
||||
width = '80%';
|
||||
} else {
|
||||
width = '100%';
|
||||
}
|
||||
reason.push({
|
||||
columns: [
|
||||
{
|
||||
width: '80%',
|
||||
width: width,
|
||||
stack: converter.convertHTML(motion.getReason(motionVersion), 'none'),
|
||||
},
|
||||
]
|
||||
|
@ -47,13 +47,13 @@
|
||||
</label>
|
||||
</div>
|
||||
<!-- line number mode for resonsive size small/extra small (dropdown) -->
|
||||
<div class="dropdown hidden-md hidden-lg" uib-dropdown>
|
||||
<div class="dropdown hidden-md hidden-lg inline" uib-dropdown>
|
||||
<button type="button" class="btn btn-default btn-sm" id="dropdownLineMode" uib-dropdown-toggle>
|
||||
<i class="fa fa-list-ol" aria-hidden="true"></i>
|
||||
<translate>Line numbering</translate>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownLineMode">
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdownLineMode">
|
||||
<li>
|
||||
<a href="" ng-click="setLineNumberMode('none')">
|
||||
<i class="fa fa-check" ng-if="lineNumberMode == 'none'"></i>
|
||||
|
@ -221,7 +221,7 @@
|
||||
<translate>Category</translate>
|
||||
<span class="caret"></span>
|
||||
</span>
|
||||
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownCategory">
|
||||
<ul class="dropdown-menu dropdown-menu-left" aria-labelledby="dropdownCategory">
|
||||
<li ng-repeat="category in categories | orderBy: config('motions_export_category_sorting')">
|
||||
<a href ng-click="filter.operateMultiselectFilter('category', category.id, isSelectMode)">
|
||||
<i class="fa fa-check" ng-if="filter.multiselectFilters.category.indexOf(category.id) > -1"></i>
|
||||
@ -245,7 +245,7 @@
|
||||
<translate>Motion block</translate>
|
||||
<span class="caret"></span>
|
||||
</span>
|
||||
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownBlock">
|
||||
<ul class="dropdown-menu dropdown-menu-left" aria-labelledby="dropdownBlock">
|
||||
<li ng-repeat="block in motionBlocks">
|
||||
<a href ng-click="filter.operateMultiselectFilter('motionBlock', block.id, isSelectMode)">
|
||||
<i class="fa fa-check" ng-if="filter.multiselectFilters.motionBlock.indexOf(block.id) > -1"></i>
|
||||
@ -376,18 +376,20 @@
|
||||
<span class="spacer-right pull-right"></span>
|
||||
<i class="pull-right fa"
|
||||
ng-style="{'visibility': sort.column === 'agenda_item.getItemNumberWithAncestors()' ? 'visible' : 'hidden'}"
|
||||
ng-class="sort.reverse ? 'fa-sort-desc' : 'fa-sort-asc'">
|
||||
ng-class="sort.reverse ? 'fa-sort-amount-desc' : 'fa-sort-amount-asc'">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
<!-- all other sortOptions -->
|
||||
<li ng-repeat="option in sortOptions">
|
||||
<a href ng-click="sort.toggle(option.name)">
|
||||
{{ option.display_name | translate }}
|
||||
<span class="spacer-right pull-right"></span>
|
||||
<span ng-style="{'font-weight': sort.column === option.name ? 'bold' : 'normal'}">
|
||||
{{ option.display_name | translate }}
|
||||
</span>
|
||||
<span class="spacer-right pull-right"></span>
|
||||
<i class="pull-right fa"
|
||||
ng-style="{'visibility': sort.column === option.name ? 'visible' : 'hidden'}"
|
||||
ng-class="sort.reverse ? 'fa-sort-desc' : 'fa-sort-asc'">
|
||||
ng-class="sort.reverse ? 'fa-sort-amount-desc' : 'fa-sort-amount-asc'">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
@ -409,7 +411,7 @@
|
||||
<span class="spacer-left-lg pointer" ng-click="resetFilters(isSelectMode)"
|
||||
ng-if="filter.areFiltersSet()" ng-disabled="isSelectMode"
|
||||
ng-class="{'disabled': isSelectMode}">
|
||||
<i class="fa fa-times-circle"></i>
|
||||
<i class="fa fa-window-close"></i>
|
||||
<strong translate>All Filters</strong>
|
||||
</span>
|
||||
<!-- state -->
|
||||
|
@ -18,7 +18,7 @@
|
||||
<a os-perms="agenda.can_manage" ng-click="openDialog(topic)"
|
||||
class="btn btn-default btn-sm"
|
||||
title="{{ 'Edit' | translate}}">
|
||||
<i class="fa fa-pencil"></i>
|
||||
<i class="fa fa-pencil fa-lg"></i>
|
||||
</a>
|
||||
</div>
|
||||
<h1>{{ topic.agenda_item.getTitle() }}</h1>
|
||||
|
@ -198,7 +198,7 @@
|
||||
<span class="sort-spacer pointer" ng-click="filter.reset(isSelectMode)"
|
||||
ng-if="filter.areFiltersSet()" ng-disabled="isSelectMode"
|
||||
ng-class="{'disabled': isSelectMode}">
|
||||
<i class="fa fa-times-circle"></i>
|
||||
<i class="fa fa-window-close"></i>
|
||||
<translate>Filter</translate>
|
||||
</span>
|
||||
<!-- Group filter -->
|
||||
@ -260,11 +260,13 @@
|
||||
<ul class="dropdown-menu dropdown-menu-right dropdown-entries" aria-labelledby="dropdownSort">
|
||||
<li ng-repeat="option in sortOptions">
|
||||
<a href ng-click="sort.toggle(option.name)">
|
||||
{{ option.display_name | translate }}
|
||||
<span ng-style="{'font-weight': sort.column === option.name ? 'bold' : 'normal'}">
|
||||
{{ option.display_name | translate }}
|
||||
</span>
|
||||
<span class="spacer-right pull-right"></span>
|
||||
<i class="pull-right fa"
|
||||
ng-style="{'visibility': sort.column === option.name ? 'visible' : 'hidden'}"
|
||||
ng-class="sort.reverse ? 'fa-sort-desc' : 'fa-sort-asc'">
|
||||
ng-class="sort.reverse ? 'fa-sort-amount-desc' : 'fa-sort-amount-asc'">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
@ -409,7 +411,7 @@
|
||||
</div>
|
||||
|
||||
<div os-perms="users.can_manage" ng-show="user.structure_level || user.hover">
|
||||
<div class="popover-wrapper" uib-tooltip="{{ 'Structure level' | translate }}" tooltip-placement="top-left">
|
||||
<div class="popover-wrapper">
|
||||
<i class="fa fa-flag"></i>
|
||||
<span editable-text="user.structure_level" onaftersave="save(user)">
|
||||
<span ng-if="!user.structure_level" translate>Set structure level ...</span>
|
||||
@ -425,7 +427,7 @@
|
||||
</div>
|
||||
|
||||
<div os-perms="users.can_manage" ng-show="user.comment || user.hover">
|
||||
<div class="popover-wrapper" uib-tooltip="{{ 'Comment' | translate }}" tooltip-placement="top-left">
|
||||
<div class="popover-wrapper">
|
||||
<i class="fa fa-info-circle"></i>
|
||||
<span editable-text="user.comment" onaftersave="save(user)">
|
||||
<span ng-if="!user.comment" translate>Set comment ...</span>
|
||||
|
Loading…
Reference in New Issue
Block a user