OpenSlides/openslides/agenda/static/js/agenda.js
Emanuel Schuetze d8d2ad002a Rename and clean up static direcories.
- rename static subdirs to css and js
- move global static dir to core/static, changed
- move global templates dir to core/templates
- check comments and code style of all our own CSS and JS files
- minor changes related to the changes of template and static files
2014-01-14 23:27:12 +01:00

143 lines
4.8 KiB
JavaScript

/*
* JavaScript functions for agenda.
*
*/
function hideClosedSlides(hide) {
if (hide) {
$('#hidelink').attr('title', 'show');
$('#hidelink').removeClass('hide').addClass('show');
$('.agenda_list .icon-checked-new').each(function() {
$(this).parents("li").first().hide();
});
var hidden = $(".agenda_list li:hidden").length;
$('#hiddencount').text(interpolate(gettext(', of which %s are hidden.'), [hidden]));
} else {
$('.agenda_list li').show();
$('#hidelink').attr('title','hide');
$('#hidelink').removeClass('show').addClass('hide');
$('#hiddencount').text('');
}
return false;
}
$('#coming_speakers_changed_form').submit(function() {
$('#sort_order').val($('#coming_speakers').sortable("toArray"));
});
$(function() {
// change participant status (on/off)
$('.close_link').click(function(event) {
event.preventDefault();
var link = $(this);
$.ajax({
type: 'GET',
url: $(this).attr('href'),
dataType: 'json',
success: function(data) {
if (data.closed) {
newclass = 'icon-checked-new';
link.parent().parent().addClass('offline');
link.addClass('btn-success');
} else {
newclass = 'icon-unchecked-new';
link.parent().parent().removeClass('offline');
link.removeClass('btn-success');
}
link.children('i').removeClass('icon-checked-new icon-unchecked-new').addClass(newclass);
link.attr('href', data.link);
}
});
});
// filter to show/hide closed items
$('#hide_closed_items').click(function(event) {
// show all items
if ($.cookie('Slide.HideClosed') == 1) {
$.cookie('Slide.HideClosed', 0);
hideClosedSlides(false);
$('#hide_closed_items').attr('checked', false);
}
else { // hide closed items
$.cookie('Slide.HideClosed', 1);
hideClosedSlides(true);
$('#hide_closed_items').attr('checked', true);
}
});
// TODO: Fix this code and reactivate it again
//# if ($.cookie('Slide.HideClosed') === null) {
//# $('#hide_closed_items').attr('checked', false);
//# $.cookie('Slide.HideClosed', 0);
//# } else if ($.cookie('Slide.HideClosed') == 1) {
//# hideClosedSlides(true);
//# $('#hide_closed_items').attr('checked', true);
//# }
if ($('#coming_speakers').length > 0) {
$('#coming_speakers').sortable({axis: "y", containment: "parent", update: function(event, ui) {
$('#coming_speakers_changed_form').show();
}});
$('#coming_speakers').disableSelection();
}
/*
* function for sorting agenda items
*
*/
var $agenda_list = $('ol.agenda_list');
var rebuildOpenersClosers = function ( ) {
$agenda_list.find("li").each(function() {
var $li = $(this);
if ($li.find("> ol").length > 0) $li.find("> div .opener_closer").show();
else $li.find("> div .opener_closer").hide();
});
}
var rebuildNesting = function( $root, level, parent_id ) {
var $children = $root.find('> li'),
curr_weight = -50;
$children.each(function() {
var $child = $(this),
$curr_element = $child.find('> div'),
my_id = $curr_element.find('.menu-mlid').val();
$curr_element.find('.menu-plid').val(parent_id);
$curr_element.find('.menu-weight').val(curr_weight);
curr_weight++;
$child.find('> ol').each(function() {
rebuildNesting( $(this), level + 1, my_id );
});
});
};
if ($agenda_list.hasClass("sortable")) $agenda_list.nestedSortable({
forcePlaceholderSize: true,
handle: 'div',
helper: 'clone',
items: 'li',
opacity: .6,
placeholder: 'placeholder',
revert: 250,
tabSize: 25,
tolerance: 'pointer',
toleranceElement: '> div',
isTree: true,
expandOnHover: 700,
startCollapsed: true,
update: function (event, ui) {
var $this = $(this);
rebuildNesting($this, 0, 0);
$('#changed-order-message').show();
rebuildOpenersClosers();
}
});
rebuildOpenersClosers();
$agenda_list.find(".opener_closer .opener").click(function(ev) {
ev.preventDefault();
$(this).parents("li").first().removeClass("closed");
});
$agenda_list.find(".opener_closer .closer").click(function(ev) {
ev.preventDefault();
$(this).parents("li").first().addClass("closed");
});
});