Scheduler support #24sched
This commit is contained in:
296
v2realbot/static/js/tables/runmanager/handlers.js
Normal file
296
v2realbot/static/js/tables/runmanager/handlers.js
Normal file
@ -0,0 +1,296 @@
|
||||
/* <button title="Create new" id="button_add_sched" class="btn btn-outline-success btn-sm">Add</button>
|
||||
<button title="Edit selected" id="button_edit_sched" class="btn btn-outline-success btn-sm">Edit</button>
|
||||
<button title="Delete selected" id="button_delete_sched" class="btn btn-outline-success btn-sm">Delete</button>
|
||||
|
||||
|
||||
id="delModalRunmanager"
|
||||
id="addeditModalRunmanager" id="runmanagersubmit" == "Add vs Edit"
|
||||
*/
|
||||
|
||||
// Function to apply filter
|
||||
function applyFilter(filter) {
|
||||
switch (filter) {
|
||||
case 'filterSchedule':
|
||||
runmanagerRecords.column(1).search('schedule').draw();
|
||||
break;
|
||||
case 'filterQueue':
|
||||
runmanagerRecords.column(1).search('queue').draw();
|
||||
break;
|
||||
// default:
|
||||
// runmanagerRecords.search('').columns().search('').draw();
|
||||
// break;
|
||||
}
|
||||
}
|
||||
|
||||
// Function to get the ID of current active filter
|
||||
function getCurrentFilter() {
|
||||
var activeFilter = $('input[name="filterOptions"]:checked').attr('id');
|
||||
console.log("activeFilter", activeFilter)
|
||||
return activeFilter;
|
||||
}
|
||||
|
||||
// Function to show/hide input fields based on the current filter
|
||||
function updateInputFields() {
|
||||
var activeFilter = getCurrentFilter();
|
||||
|
||||
switch (activeFilter) {
|
||||
case 'filterSchedule':
|
||||
$('#runmantestlist_id_div').hide();
|
||||
$('#runmanbt_from_div').hide();
|
||||
$('#runmanbt_to_div').hide();
|
||||
|
||||
$('#runmanvalid_from_div').show();
|
||||
$('#runmanvalid_to_div').show();
|
||||
$('#runmanstart_time_div').show();
|
||||
$('#runmanstop_time_div').show();
|
||||
break;
|
||||
case 'filterQueue':
|
||||
$('#runmantestlist_id_div').show();
|
||||
$('#runmanbt_from_div').show();
|
||||
$('#runmanbt_to_div').show();
|
||||
|
||||
$('#runmanvalid_from_div').hide();
|
||||
$('#runmanvalid_to_div').hide();
|
||||
$('#runmanstart_time_div').hide();
|
||||
$('#runmanstop_time_div').hide();
|
||||
break;
|
||||
default:
|
||||
//$('#inputForSchedule, #inputForQueue').hide();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//event handlers for runmanager table
|
||||
$(document).ready(function () {
|
||||
initialize_runmanagerRecords();
|
||||
runmanagerRecords.ajax.reload();
|
||||
disable_runmanager_buttons();
|
||||
|
||||
//on click on #button_refresh_sched call runmanagerRecords.ajax.reload()
|
||||
$('#button_refresh_sched').click(function () {
|
||||
runmanagerRecords.ajax.reload();
|
||||
});
|
||||
|
||||
// Event listener for changes in the radio buttons
|
||||
$('input[name="filterOptions"]').on('change', function() {
|
||||
var selectedFilter = $(this).attr('id');
|
||||
applyFilter(selectedFilter);
|
||||
// Save the selected filter to local storage
|
||||
localStorage.setItem('selectedFilter', selectedFilter);
|
||||
});
|
||||
|
||||
|
||||
// Load the last selected filter from local storage and apply it
|
||||
var lastSelectedFilter = localStorage.getItem('selectedFilter');
|
||||
if (lastSelectedFilter) {
|
||||
$('#' + lastSelectedFilter).prop('checked', true).change();
|
||||
}
|
||||
|
||||
//listen for changes on weekday enabling button
|
||||
$('#runman_enable_weekdays').change(function() {
|
||||
if ($(this).is(':checked')) {
|
||||
$('.weekday-checkboxes').show();
|
||||
} else {
|
||||
$('.weekday-checkboxes').hide();
|
||||
}
|
||||
});
|
||||
|
||||
//selectable rows in runmanager table
|
||||
$('#runmanagerTable tbody').on('click', 'tr', function () {
|
||||
if ($(this).hasClass('selected')) {
|
||||
//$(this).removeClass('selected');
|
||||
//aadd here condition that disable is called only when there is no other selected class on tr[data-group-name]
|
||||
// Check if there are no other selected rows before disabling buttons
|
||||
if ($('#runmanagerTable tr.selected').length === 1) {
|
||||
disable_runmanager_buttons();
|
||||
}
|
||||
//disable_arch_buttons()
|
||||
} else {
|
||||
//archiveRecords.$('tr.selected').removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
enable_runmanager_buttons()
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//delete button
|
||||
$('#button_delete_sched').click(function () {
|
||||
row = runmanagerRecords.row('.selected').data();
|
||||
window.$('#delModalRunmanager').modal('show');
|
||||
$('#delidrunmanager').val(row.id);
|
||||
// $('#action').val('delRecord');
|
||||
// $('#save').val('Delete');
|
||||
});
|
||||
|
||||
//button add
|
||||
$('#button_add_sched').click(function () {
|
||||
window.$('#addeditModalRunmanager').modal('show');
|
||||
$('#addeditFormRunmanager')[0].reset();
|
||||
//$("#runmanid").prop('readonly', false);
|
||||
if (getCurrentFilter() == 'filterQueue') {
|
||||
mode = 'queue';
|
||||
} else {
|
||||
mode = 'schedule';
|
||||
}
|
||||
//set modus
|
||||
$('#runmanmoddus').val(mode);
|
||||
//updates fields according to selected type
|
||||
updateInputFields();
|
||||
updateSelectOptions(mode);
|
||||
// Initially, check the value of "batch" and enable/disable "btfrom" and "btto" accordingly
|
||||
if ($("#runmantestlist_id").val() !== "") {
|
||||
$("#runmanbt_from, #runmanbt_to").prop("disabled", true);
|
||||
} else {
|
||||
$("#runmanbt_from, #runmanbt_to").prop("disabled", false);
|
||||
}
|
||||
|
||||
// Listen for changes in the "batch" input and diasble/enable "btfrom" and "btto" accordingly
|
||||
$("#runmantestlist_id").on("input", function() {
|
||||
if ($(this).val() !== "") {
|
||||
// If "batch" is not empty, disable "from" and "to"
|
||||
$("#runmanbt_from, #runmanbt_to").prop("disabled", true);
|
||||
} else {
|
||||
// If "batch" is empty, enable "from" and "to"
|
||||
$("#runmanbt_from, #runmanbt_to").prop("disabled", false);
|
||||
}
|
||||
});
|
||||
|
||||
$('.modal-title_run').html("<i class='fa fa-plus'></i> Add Record");
|
||||
$('#runmanagersubmit').val('Add');
|
||||
$('#runmanager_enable_weekdays').prop('checked', false);
|
||||
$('.weekday-checkboxes').hide();
|
||||
});
|
||||
|
||||
//edit button
|
||||
$('#button_edit_sched').click(function () {
|
||||
row = runmanagerRecords.row('.selected').data();
|
||||
if (row == undefined) {
|
||||
return
|
||||
}
|
||||
window.$('#addeditModalRunmanager').modal('show');
|
||||
//set fields as readonly
|
||||
//$("#runmanid").prop('readonly', true);
|
||||
//$("#runmanmoddus").prop('readonly', true);
|
||||
console.log("pred editem puvodni row", row)
|
||||
refresh_runmanager_and_callback(row, show_edit_modal)
|
||||
|
||||
function show_edit_modal(row) {
|
||||
console.log("pred editem refreshnuta row", row);
|
||||
$('#addeditFormRunmanager')[0].reset();
|
||||
$('.modal-title_run').html("<i class='fa fa-plus'></i> Edit Record");
|
||||
$('#runmanagersubmit').val('Edit');
|
||||
|
||||
//updates fields according to selected type
|
||||
updateInputFields();
|
||||
// get shared attributess
|
||||
$('#runmanid').val(row.id);
|
||||
$('#runmanhistory').val(row.history);
|
||||
$('#runmanlast_processed').val(row.last_processed);
|
||||
$('#runmanstrat_id').val(row.strat_id);
|
||||
$('#runmanmode').val(row.mode);
|
||||
$('#runmanmoddus').val(row.moddus);
|
||||
$('#runmanaccount').val(row.account);
|
||||
$('#runmanstatus').val(row.status);
|
||||
$('#runmanbatch_id').val(row.batch_id);
|
||||
$('#runmanrunner_id').val(row.runner_id);
|
||||
$("#runmanilog_save").prop("checked", row.ilog_save);
|
||||
$('#runmannote').val(row.note);
|
||||
|
||||
$('#runmantestlist_id').val(row.testlist_id);
|
||||
$('#runmanbt_from').val(row.bt_from);
|
||||
$('#runmanbt_to').val(row.bt_to);
|
||||
|
||||
$('#runmanvalid_from').val(row.valid_from);
|
||||
$('#runmanvalid_to').val(row.valid_to);
|
||||
$('#runmanstart_time').val(row.start_time);
|
||||
$('#runmanstop_time').val(row.stop_time);
|
||||
|
||||
// Initially, check the value of "batch" and enable/disable "from" and "to" accordingly
|
||||
if ($("#runmantestlist_id").val() !== "") {
|
||||
$("#runmanbt_from, #runmanbt_to").prop("disabled", true);
|
||||
} else {
|
||||
$("#runmanbt_from, #runmanbt_to").prop("disabled", false);
|
||||
}
|
||||
|
||||
// Listen for changes in the "batch" input
|
||||
$("#runmantestlist_id").on("input", function() {
|
||||
if ($(this).val() !== "") {
|
||||
// If "batch" is not empty, disable "from" and "to"
|
||||
$("#runmanbt_from, #runmanbt_to").prop("disabled", true);
|
||||
} else {
|
||||
// If "batch" is empty, enable "from" and "to"
|
||||
$("#runmanbt_from, #runmanbt_to").prop("disabled", false);
|
||||
}
|
||||
});
|
||||
|
||||
type = $('#runmanmoddus').val();
|
||||
updateSelectOptions(type);
|
||||
|
||||
//add weekdays_filter transformation from string "1,2,3" to array [1,2,3]
|
||||
|
||||
// Assuming you have row.weekend_filter available here
|
||||
var weekdayFilter = row.weekdays_filter;
|
||||
|
||||
//
|
||||
|
||||
if (weekdayFilter) {
|
||||
$('#runman_enable_weekdays').prop('checked', true);
|
||||
$(".weekday-checkboxes").show();
|
||||
|
||||
// Map numbers to weekday names
|
||||
var dayOfWeekMap = {
|
||||
"0": "monday",
|
||||
"1": "tuesday",
|
||||
"2": "wednesday",
|
||||
"3": "thursday",
|
||||
"4": "friday",
|
||||
"5": "saturday", // Adjust if needed for your mapping
|
||||
"6": "sunday" // Adjust if needed for your mapping
|
||||
};
|
||||
|
||||
// Iterate through the selected days
|
||||
$.each(weekdayFilter, function(index, dayIndex) {
|
||||
var dayOfWeek = dayOfWeekMap[dayIndex];
|
||||
if (dayOfWeek) { // Make sure the day exists in the map
|
||||
$("#" + dayOfWeek).prop("checked", true);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
$('#runman_enable_weekdays').prop('checked', false);
|
||||
$(".weekday-checkboxes").hide();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//edit button
|
||||
$('#button_history_sched').click(function () {
|
||||
row = runmanagerRecords.row('.selected').data();
|
||||
if (row == undefined) {
|
||||
return
|
||||
}
|
||||
window.$('#historyModalRunmanager').modal('show');
|
||||
//set fields as readonly
|
||||
//$("#runmanid").prop('readonly', true);
|
||||
//$("#runmanmoddus").prop('readonly', true);
|
||||
//console.log("pred editem puvodni row", row)
|
||||
refresh_runmanager_and_callback(row, show_history_modal)
|
||||
|
||||
function show_history_modal(row) {
|
||||
//console.log("pred editem refreshnuta row", row);
|
||||
$('#historyModalRunmanagerForm')[0].reset();
|
||||
// get shared attributess
|
||||
$('#RunmanId').val(row.id);
|
||||
var date = new Date(row.last_processed);
|
||||
formatted = date.toLocaleString('cs-CZ', {
|
||||
timeZone: 'America/New_York',
|
||||
})
|
||||
$('#Runmanlast_processed').val(formatted);
|
||||
$('#Runmanhistory').val(row.history);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user