node player groups wip
This commit is contained in:
parent
3132a29197
commit
9387f21b74
@ -21,7 +21,7 @@ jQuery(document).ready(function ($) {
|
|||||||
|
|
||||||
$(document).on('click', '.node-player-group-player-assign', function () {
|
$(document).on('click', '.node-player-group-player-assign', function () {
|
||||||
const route = $(this).attr('data-route');
|
const route = $(this).attr('data-route');
|
||||||
showPickers('modal-node-player-explr-picker', function(nodePlayer) {
|
showPickers('modal-node-player-explr-picker', function (nodePlayer) {
|
||||||
if (!nodePlayer.group_id || (nodePlayer.group_id && confirm(l.js_fleet_node_player_assign_confirmation))) {
|
if (!nodePlayer.group_id || (nodePlayer.group_id && confirm(l.js_fleet_node_player_assign_confirmation))) {
|
||||||
document.location.href = route.replace('__id__', nodePlayer.id);
|
document.location.href = route.replace('__id__', nodePlayer.id);
|
||||||
}
|
}
|
||||||
@ -31,16 +31,20 @@ jQuery(document).ready(function ($) {
|
|||||||
$(document).on('click', '.node-player-group-unassign-player', function () {
|
$(document).on('click', '.node-player-group-unassign-player', function () {
|
||||||
if (confirm(l.js_fleet_node_player_delete_confirmation)) {
|
if (confirm(l.js_fleet_node_player_delete_confirmation)) {
|
||||||
const $item = $(this).parents('.player-item:eq(0)');
|
const $item = $(this).parents('.player-item:eq(0)');
|
||||||
|
if ($item.parents('ul:eq(0)').find('.player-item').length === 1) {
|
||||||
|
document.location.href = $(this).attr('data-route');
|
||||||
|
} else {
|
||||||
$item.remove();
|
$item.remove();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
url: $(this).attr('data-route'),
|
url: $(this).attr('data-route'),
|
||||||
headers: {'Content-Type': 'application/json'},
|
headers: {'Content-Type': 'application/json'},
|
||||||
success: function(response) {
|
success: function (response) {
|
||||||
$('.node-player-group-item-'+response.group_id+' .players-counter').html(response.pcounter);
|
$('.node-player-group-item-' + response.group_id + ' .players-counter').html(response.pcounter);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
jQuery(document).ready(function ($) {
|
jQuery(document).ready(function ($) {
|
||||||
const loadDateTimePicker = function($els) {
|
const loadDateTimePicker = function ($els) {
|
||||||
const d = new Date();
|
const d = new Date();
|
||||||
|
|
||||||
$els.each(function() {
|
$els.each(function () {
|
||||||
var $el = $(this);
|
var $el = $(this);
|
||||||
$el.flatpickr({
|
$el.flatpickr({
|
||||||
enableTime: true,
|
enableTime: true,
|
||||||
@ -12,7 +12,7 @@ jQuery(document).ready(function ($) {
|
|||||||
dateFormat: 'Y-m-d H:i',
|
dateFormat: 'Y-m-d H:i',
|
||||||
defaultHour: d.getHours(),
|
defaultHour: d.getHours(),
|
||||||
defaultMinute: d.getMinutes(),
|
defaultMinute: d.getMinutes(),
|
||||||
onChange: function(selectedDates, dateStr, instance) {
|
onChange: function (selectedDates, dateStr, instance) {
|
||||||
const d = selectedDates[0];
|
const d = selectedDates[0];
|
||||||
const $target = $el.parents('.widget:eq(0)').find('.target');
|
const $target = $el.parents('.widget:eq(0)').find('.target');
|
||||||
$target.val(
|
$target.val(
|
||||||
@ -61,7 +61,7 @@ jQuery(document).ready(function ($) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const inputSchedulerUpdate = function() {
|
const inputSchedulerUpdate = function () {
|
||||||
const $modal = $('.modal-slide:visible');
|
const $modal = $('.modal-slide:visible');
|
||||||
const $scheduleStartGroup = $modal.find('.slide-schedule-group');
|
const $scheduleStartGroup = $modal.find('.slide-schedule-group');
|
||||||
const $scheduleEndGroup = $modal.find('.slide-schedule-end-group');
|
const $scheduleEndGroup = $modal.find('.slide-schedule-end-group');
|
||||||
@ -100,11 +100,14 @@ jQuery(document).ready(function ($) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return { scheduleStartChoices, scheduleEndChoices };
|
return {scheduleStartChoices, scheduleEndChoices};
|
||||||
}
|
}
|
||||||
|
|
||||||
function applyChoices() {
|
function applyChoices() {
|
||||||
const { scheduleStartChoices, scheduleEndChoices } = updateScheduleChoices(isNotification, isLoopStart, isCronStart);
|
const {
|
||||||
|
scheduleStartChoices,
|
||||||
|
scheduleEndChoices
|
||||||
|
} = updateScheduleChoices(isNotification, isLoopStart, isCronStart);
|
||||||
recreateSelectOptions($triggerStart, scheduleStartChoices);
|
recreateSelectOptions($triggerStart, scheduleStartChoices);
|
||||||
recreateSelectOptions($triggerEnd, scheduleEndChoices);
|
recreateSelectOptions($triggerEnd, scheduleEndChoices);
|
||||||
}
|
}
|
||||||
@ -193,12 +196,12 @@ jQuery(document).ready(function ($) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('click', '.content-explr-picker', function () {
|
$(document).on('click', '.content-explr-picker', function () {
|
||||||
showPickers('modal-content-explr-picker', function(content) {
|
showPickers('modal-content-explr-picker', function (content) {
|
||||||
inputContentUpdate(content)
|
inputContentUpdate(content)
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
const inputContentUpdate = function(content) {
|
const inputContentUpdate = function (content) {
|
||||||
const $modal = $('.modal-slide:visible');
|
const $modal = $('.modal-slide:visible');
|
||||||
const $group = $modal.find('.slide-content-id-group');
|
const $group = $modal.find('.slide-content-id-group');
|
||||||
const $inputLabel = $group.find('.target-label');
|
const $inputLabel = $group.find('.target-label');
|
||||||
@ -261,16 +264,20 @@ jQuery(document).ready(function ($) {
|
|||||||
$(document).on('click', '.slide-delete', function () {
|
$(document).on('click', '.slide-delete', function () {
|
||||||
if (confirm(l.js_slideshow_slide_delete_confirmation)) {
|
if (confirm(l.js_slideshow_slide_delete_confirmation)) {
|
||||||
const $item = $(this).parents('.slide-item:eq(0)');
|
const $item = $(this).parents('.slide-item:eq(0)');
|
||||||
|
if ($item.parents('ul:eq(0)').find('.slide-item').length === 1) {
|
||||||
|
document.location.href = $(this).attr('data-route').replace('__id__', getId($(this)));
|
||||||
|
} else {
|
||||||
$item.remove();
|
$item.remove();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
url: $(this).attr('data-route').replace('__id__', getId($(this))),
|
url: $(this).attr('data-route').replace('__id__', getId($(this))),
|
||||||
headers: {'Content-Type': 'application/json'},
|
headers: {'Content-Type': 'application/json'},
|
||||||
success: function(response) {
|
success: function (response) {
|
||||||
$('.playlist-item-'+response.playlist_id+' .playlist-duration').html(secondsToHHMMSS(response.duration));
|
$('.playlist-item-' + response.playlist_id + ' .playlist-duration').html(secondsToHHMMSS(response.duration));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('submit', '.modal-slide-add form', function () {
|
$(document).on('submit', '.modal-slide-add form', function () {
|
||||||
|
|||||||
@ -24,7 +24,7 @@ class FleetNodePlayerGroupController(ObController):
|
|||||||
self._app.add_url_rule('/fleet/node-player-group/add', 'fleet_node_player_group_add', self.guard_fleet(self._auth(self.fleet_node_player_group_add)), methods=['POST'])
|
self._app.add_url_rule('/fleet/node-player-group/add', 'fleet_node_player_group_add', self.guard_fleet(self._auth(self.fleet_node_player_group_add)), methods=['POST'])
|
||||||
self._app.add_url_rule('/fleet/node-player-group/save', 'fleet_node_player_group_save', self.guard_fleet(self._auth(self.fleet_node_player_group_save)), methods=['POST'])
|
self._app.add_url_rule('/fleet/node-player-group/save', 'fleet_node_player_group_save', self.guard_fleet(self._auth(self.fleet_node_player_group_save)), methods=['POST'])
|
||||||
self._app.add_url_rule('/fleet/node-player-group/delete/<player_group_id>', 'fleet_node_player_group_delete', self.guard_fleet(self._auth(self.fleet_node_player_group_delete)), methods=['GET'])
|
self._app.add_url_rule('/fleet/node-player-group/delete/<player_group_id>', 'fleet_node_player_group_delete', self.guard_fleet(self._auth(self.fleet_node_player_group_delete)), methods=['GET'])
|
||||||
self._app.add_url_rule('/fleet/node-player-group/unassign-player/<player_id>', 'fleet_node_player_group_unassign_player', self._auth(self.fleet_node_player_group_unassign_player), methods=['DELETE'])
|
self._app.add_url_rule('/fleet/node-player-group/unassign-player/<player_id>', 'fleet_node_player_group_unassign_player', self._auth(self.fleet_node_player_group_unassign_player), methods=['GET', 'DELETE'])
|
||||||
self._app.add_url_rule('/fleet/node-player-group/assign-player/<player_group_id>/<player_id>', 'fleet_node_player_group_assign_player', self._auth(self.fleet_node_player_group_assign_player), methods=['GET'])
|
self._app.add_url_rule('/fleet/node-player-group/assign-player/<player_group_id>/<player_id>', 'fleet_node_player_group_assign_player', self._auth(self.fleet_node_player_group_assign_player), methods=['GET'])
|
||||||
|
|
||||||
def fleet_node_player_group(self):
|
def fleet_node_player_group(self):
|
||||||
@ -108,8 +108,11 @@ class FleetNodePlayerGroupController(ObController):
|
|||||||
self._post_update()
|
self._post_update()
|
||||||
pcounter = self._model_store.node_player_group().get_player_counters_by_player_groups(group_id=group_id)
|
pcounter = self._model_store.node_player_group().get_player_counters_by_player_groups(group_id=group_id)
|
||||||
|
|
||||||
|
if request.headers.get('X-Requested-With') == 'XMLHttpRequest':
|
||||||
return jsonify({'status': 'ok', 'pcounter': pcounter, 'group_id': group_id})
|
return jsonify({'status': 'ok', 'pcounter': pcounter, 'group_id': group_id})
|
||||||
|
|
||||||
|
return redirect(url_for('fleet_node_player_group_list', player_group_id=group_id))
|
||||||
|
|
||||||
def fleet_node_player_group_assign_player(self, player_group_id: int = 0, player_id: int = 0):
|
def fleet_node_player_group_assign_player(self, player_group_id: int = 0, player_id: int = 0):
|
||||||
node_player_group = self._model_store.node_player_group().get(player_group_id)
|
node_player_group = self._model_store.node_player_group().get(player_group_id)
|
||||||
|
|
||||||
|
|||||||
@ -18,7 +18,7 @@ class SlideController(ObController):
|
|||||||
self._app.add_url_rule('/manage', 'manage', self.manage, methods=['GET'])
|
self._app.add_url_rule('/manage', 'manage', self.manage, methods=['GET'])
|
||||||
self._app.add_url_rule('/slideshow/slide/add', 'slideshow_slide_add', self._auth(self.slideshow_slide_add), methods=['POST'])
|
self._app.add_url_rule('/slideshow/slide/add', 'slideshow_slide_add', self._auth(self.slideshow_slide_add), methods=['POST'])
|
||||||
self._app.add_url_rule('/slideshow/slide/edit', 'slideshow_slide_edit', self._auth(self.slideshow_slide_edit), methods=['POST'])
|
self._app.add_url_rule('/slideshow/slide/edit', 'slideshow_slide_edit', self._auth(self.slideshow_slide_edit), methods=['POST'])
|
||||||
self._app.add_url_rule('/slideshow/slide/delete/<slide_id>', 'slideshow_slide_delete', self._auth(self.slideshow_slide_delete), methods=['DELETE'])
|
self._app.add_url_rule('/slideshow/slide/delete/<slide_id>', 'slideshow_slide_delete', self._auth(self.slideshow_slide_delete), methods=['GET', 'DELETE'])
|
||||||
self._app.add_url_rule('/slideshow/slide/position', 'slideshow_slide_position', self._auth(self.slideshow_slide_position), methods=['POST'])
|
self._app.add_url_rule('/slideshow/slide/position', 'slideshow_slide_position', self._auth(self.slideshow_slide_position), methods=['POST'])
|
||||||
self._app.add_url_rule('/slideshow/player-refresh', 'slideshow_player_refresh', self._auth(self.slideshow_player_refresh), methods=['GET'])
|
self._app.add_url_rule('/slideshow/player-refresh', 'slideshow_player_refresh', self._auth(self.slideshow_player_refresh), methods=['GET'])
|
||||||
|
|
||||||
@ -81,11 +81,17 @@ class SlideController(ObController):
|
|||||||
if not slide:
|
if not slide:
|
||||||
abort(404)
|
abort(404)
|
||||||
|
|
||||||
|
playlist_id = slide.playlist_id
|
||||||
|
|
||||||
self._model_store.slide().delete(slide_id)
|
self._model_store.slide().delete(slide_id)
|
||||||
duration = self._model_store.playlist().get_durations_by_playlists(playlist_id=slide.playlist_id)
|
duration = self._model_store.playlist().get_durations_by_playlists(playlist_id=playlist_id)
|
||||||
|
|
||||||
self._post_update()
|
self._post_update()
|
||||||
return jsonify({'status': 'ok', 'duration': duration, 'playlist_id': slide.playlist_id})
|
|
||||||
|
if request.headers.get('X-Requested-With') == 'XMLHttpRequest':
|
||||||
|
return jsonify({'status': 'ok', 'duration': duration, 'playlist_id': playlist_id})
|
||||||
|
|
||||||
|
return redirect(url_for('playlist_list', playlist_id=playlist_id))
|
||||||
|
|
||||||
def slideshow_slide_position(self):
|
def slideshow_slide_position(self):
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user