Initial commit
This commit is contained in:
50
app/assets/javascripts/multi_view_broadcasts.js
Normal file
50
app/assets/javascripts/multi_view_broadcasts.js
Normal file
@@ -0,0 +1,50 @@
|
||||
$(document).on("click", "[data-behavior=select_broadcast]", function() {
|
||||
var _this = this;
|
||||
var checkbox = $(this).children("input:checkbox");
|
||||
|
||||
selectBroadcast(_this, checkbox);
|
||||
});
|
||||
|
||||
$(document).on("click", "[data-behavior=select_broadcast] input[type='checkbox']", function(e) {
|
||||
e.stopPropagation();
|
||||
|
||||
var _this = this;
|
||||
var checkbox = $(this);
|
||||
|
||||
selectBroadcast(_this, checkbox);
|
||||
});
|
||||
|
||||
function selectBroadcast(clicked_element, checkbox) {
|
||||
if (clicked_element.hasChildNodes()) {
|
||||
if(checkbox.prop("checked")) {
|
||||
checkbox.prop('checked', false);
|
||||
} else {
|
||||
checkbox.prop('checked', true);
|
||||
}
|
||||
}
|
||||
|
||||
var checked = checkbox.prop("checked");
|
||||
var project_id = JSON.parse($('#multi_view_broadcasts').parent().attr('data-project-id'));
|
||||
var broadcast_ids = JSON.parse($('#multi_view_broadcasts').parent().attr('data-broadcast-ids'));
|
||||
var selected_broadcast_id = checkbox.val();
|
||||
|
||||
if (checked && !broadcast_ids.includes(selected_broadcast_id)) {
|
||||
broadcast_ids.push(selected_broadcast_id);
|
||||
} else if(!checked && broadcast_ids.includes(selected_broadcast_id)) {
|
||||
broadcast_ids.splice( $.inArray(selected_broadcast_id, broadcast_ids), 1 );
|
||||
}
|
||||
|
||||
$('#multi_view_broadcasts').parent().attr('data-broadcast-ids', JSON.stringify(broadcast_ids));
|
||||
|
||||
if (broadcast_ids.length >= 2) {
|
||||
multi_view_ids = $.param({multi_view_ids: broadcast_ids});
|
||||
broadcast_url = "/en/projects/" + project_id + "/broadcasts/" + broadcast_ids[0] + "?" + multi_view_ids
|
||||
|
||||
$("#multi_view_broadcasts").attr("href", broadcast_url);
|
||||
$("#multi_view_broadcasts").attr("target", "_blank");
|
||||
$("#multi_view_broadcasts").removeClass('disabled');
|
||||
} else if (broadcast_ids.length < 2) {
|
||||
$("#multi_view_broadcasts").attr("href", "javascript:void(0);");
|
||||
$("#multi_view_broadcasts").addClass('disabled');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user