Merge pull request #1583 from emanuelschuetze/agenda-slides

Use item-detail and item-list slides for agenda app.
This commit is contained in:
Norman Jäckel 2015-06-29 18:05:45 +02:00
commit 87cce491a0
5 changed files with 17 additions and 12 deletions

View File

@ -35,7 +35,7 @@ class ItemListSlide(ProjectorElement):
def get_requirements(self, config_entry):
pk = config_entry.get('id', 'tree')
if pk is None or self.config_entry.get('tree', False):
if pk is None or config_entry.get('tree', False):
# Root list slide or slide with tree.
yield ProjectorRequirement(
view_class=ItemViewSet,
@ -57,7 +57,7 @@ class ItemDetailSlide(ProjectorElement):
To activate a detail slide as list of speakers slide, set 'id' and set
'list_of_speakers' true.
"""
name = 'agenda/item-detail'
name = 'agenda/item'
def get_context(self):
pk = self.config_entry.get('id')

View File

@ -124,7 +124,7 @@ angular.module('OpenSlidesApp.agenda.site', ['OpenSlidesApp.agenda'])
// project agenda
$scope.projectAgenda = function () {
$http.post('/rest/core/projector/1/prune_elements/',
[{name: 'agenda/agenda'}]);
[{name: 'agenda/item-list'}]);
};
// check if agenda is projected
$scope.isAgendaProjected = function () {
@ -134,7 +134,7 @@ angular.module('OpenSlidesApp.agenda.site', ['OpenSlidesApp.agenda'])
if (typeof projector === 'undefined') return false;
var self = this;
return _.findIndex(projector.elements, function(element) {
return element.name == 'agenda/agenda'
return element.name == 'agenda/item-list'
}) > -1;
};
@ -265,14 +265,14 @@ angular.module('OpenSlidesApp.agenda.projector', ['OpenSlidesApp.agenda'])
.config(function(slidesProvider) {
slidesProvider.registerSlide('agenda/item', {
template: 'static/templates/agenda/slide_item.html',
template: 'static/templates/agenda/slide-item-detail.html',
});
slidesProvider.registerSlide('agenda/agenda', {
template: 'static/templates/agenda/slide_agenda.html',
slidesProvider.registerSlide('agenda/item-list', {
template: 'static/templates/agenda/slide-item-list.html',
});
})
.controller('SlideItemCtrl', function($scope, Agenda) {
.controller('SlideItemDetailCtrl', function($scope, Agenda) {
// Attention! Each object that is used here has to be dealt on server side.
// Add it to the coresponding get_requirements method of the ProjectorElement
// class.
@ -281,7 +281,7 @@ angular.module('OpenSlidesApp.agenda.projector', ['OpenSlidesApp.agenda'])
Agenda.bindOne(id, $scope, 'item');
})
.controller('SlideAgendaCtrl', function($scope, $http, Agenda) {
.controller('SlideItemListCtrl', function($scope, $http, Agenda) {
// Attention! Each object that is used here has to be dealt on server side.
// Add it to the coresponding get_requirements method of the ProjectorElement
// class.

View File

@ -1,4 +1,4 @@
<div ng-controller="SlideItemCtrl" class="content">
<div ng-controller="SlideItemDetailCtrl" class="content">
<h1>{{ item.title }}</h1>
<div class="white-space-pre-line">{{ item.text }}</div>
</div>

View File

@ -1,4 +1,4 @@
<div ng-controller="SlideAgendaCtrl" class="content">
<div ng-controller="SlideItemListCtrl" class="content">
<h1 translate>Agenda</h1>
<table class="tablelist">

View File

@ -98,6 +98,7 @@ angular.module('OpenSlidesApp.core', [])
var self = this;
return _.findIndex(projector.elements, function(element) {
return element.name == self.getResourceName() &&
typeof(element.context) !== 'undefined' &&
typeof(element.context.id) !== 'undefined' &&
element.context.id == self.id;
}) > -1;
@ -615,7 +616,11 @@ angular.module('OpenSlidesApp.core.projector', ['OpenSlidesApp.core'])
}, function () {
$scope.elements = [];
_.forEach(slides.getElements(Projector.get(1)), function(element) {
$scope.elements.push(element);
if (!element.error) {
$scope.elements.push(element);
} else {
console.error("Error for slide " + element.name + ": " + element.error)
}
});
});
});