Merge pull request #3379 from FinnStutzenstein/AgentaTitle

New layout for agenda list slide, fixing long titles in agenda list v…
This commit is contained in:
Emanuel Schütze 2017-09-08 15:16:52 +02:00 committed by GitHub
commit 1e1e7637f9
5 changed files with 62 additions and 12 deletions

View File

@ -77,6 +77,7 @@ angular.module('OpenSlidesApp.agenda.projector', ['OpenSlidesApp.agenda'])
// class. // class.
// Bind agenda tree to the scope // Bind agenda tree to the scope
var items;
$scope.$watch(function () { $scope.$watch(function () {
return Agenda.lastModified(); return Agenda.lastModified();
}, function () { }, function () {
@ -101,12 +102,19 @@ angular.module('OpenSlidesApp.agenda.projector', ['OpenSlidesApp.agenda'])
$scope.items.push(item); $scope.items.push(item);
} }
} else if ($scope.element.tree) { } else if ($scope.element.tree) {
$scope.items = AgendaTree.getFlatTree(Agenda.getAll()); items = _.filter(Agenda.getAll(), function (item) {
return item.type === 1;
});
$scope.tree = AgendaTree.getTree(items);
} else { } else {
$scope.items = Agenda.filter({ items = Agenda.filter({
where: { parent_id: null }, where: { parent_id: null },
orderBy: 'weight' orderBy: 'weight'
}); });
items = _.filter(items, function (item) {
return item.type === 1;
});
$scope.tree = AgendaTree.getTree(items);
} }
}); });
} }

View File

@ -142,7 +142,7 @@
</span> </span>
</div> </div>
<div class="os-table container-fluid"> <div id="agenda-table" class="os-table container-fluid">
<div class="row header-row"> <div class="row header-row">
<div class="col-xs-1 centered" ng-show="isSelectMode"> <div class="col-xs-1 centered" ng-show="isSelectMode">
<i class="fa text-danger pointer" ng-class="selectedAll ? 'fa-check-square-o' : 'fa-square-o'" <i class="fa text-danger pointer" ng-class="selectedAll ? 'fa-check-square-o' : 'fa-square-o'"
@ -265,11 +265,11 @@
<!-- main content column --> <!-- main content column -->
<div class="col-xs-6 content" style="padding-left: calc({{ item.parentCount }}*15px)"> <div class="col-xs-6 content" style="padding-left: calc({{ item.parentCount }}*15px)">
<div class="spacer-right"> <div class="icon-column">
<i class="fa fa-ban" ng-style="{'visibility': item.is_hidden ? 'visible' : 'hidden'}" <i class="fa fa-ban" ng-style="{'visibility': item.is_hidden ? 'visible' : 'hidden'}"
title="{{ 'Internal item' | translate }}"></i> title="{{ 'Internal item' | translate }}"></i>
</div> </div>
<div> <div class="title-column">
<!-- ID and title --> <!-- ID and title -->
<div> <div>
<a class="title" ui-sref="{{ item.getContentObjectDetailState() }}" ng-show="isAllowedToSeeOpenLink(item)"> <a class="title" ui-sref="{{ item.getContentObjectDetailState() }}" ng-show="isAllowedToSeeOpenLink(item)">

View File

@ -3,11 +3,30 @@
<h1 ng-if="element.id">{{ rootItem.getTitle() }}</h1> <h1 ng-if="element.id">{{ rootItem.getTitle() }}</h1>
<div class="agendalist"> <div class="agendalist">
<!-- item type: AGENDA_ITEM = 1, HIDDEN_ITEM = 2 --> <table class="agendalist-table">
<p ng-repeat="item in items | filter: {type: 1}" <tr ng-repeat="node in tree" ng-include="'projector_agenda_renderer.html'"></tr>
ng-class="{mainitem: item.parentCount == 0, subitem: item.parentCount != 0, done: item.closed}"> </table>
<span ng-repeat="n in [].constructor(item.parentCount) track by $index">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
{{ item.getListViewTitle() }}
</p>
</div> </div>
</div> </div>
<!-- Nested node template -->
<script type="text/ng-template" id="projector_agenda_renderer.html">
<td class="number">
<p ng-class="{mainitem: node.item.parent_id === null, subitem: node.item.parent_id !== null, done: node.item.closed}">
{{ node.item.item_number }}
</p>
</td>
<td>
<p ng-class="{mainitem: node.item.parent_id === null}" ng-if="node.item.item_number">
&middot;
</p>
</td>
<td>
<p ng-class="{mainitem: node.item.parent_id === null, subitem: node.item.parent_id !== null, done: node.item.closed}">
{{ node.item.title }}
</p>
<table ng-if="node.children.length" class="agendalist-table">
<tr ng-repeat="node in node.children" ng-include="'projector_agenda_renderer.html'"></tr>
</table>
</td>
</script>

View File

@ -1108,6 +1108,16 @@ img {
padding: 5px 5px 5px 0; padding: 5px 5px 5px 0;
} }
/** Agenda table **/
#agenda-table .icon-column {
width: 5%;
}
#agenda-table .title-column {
padding: 0px 10px;
width: 95%;
}
/** Mediafile table **/ /** Mediafile table **/
#mediafile-table .icon-column { #mediafile-table .icon-column {
width: 10%; width: 10%;

View File

@ -170,7 +170,7 @@ body {
} }
.fullscreen { .fullscreen {
position: fixed; position: fixed;
top: 0; top: 0 !important;
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -389,6 +389,9 @@ tr.elected td {
} }
/*** Agenda list ***/ /*** Agenda list ***/
.agendalist {
line-height: 1.5em;
}
.agendalist p { .agendalist p {
font-size: 140%; font-size: 140%;
} }
@ -406,6 +409,16 @@ tr.elected td {
margin-top: 10px; margin-top: 10px;
} }
.agendalist-table td {
vertical-align: top;
padding-left: 5px;
}
.agendalist-table .number {
padding: 0;
white-space: nowrap;
}
/*** List of speakers ***/ /*** List of speakers ***/
.slimlabel.label { .slimlabel.label {