first commit

This commit is contained in:
salam committed 2026-10-19 08:18:39 +02:00
commit 1218dd1517
12716 files changed
+989233

No files matched your search

@@ -0,0 +1,30 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
/**
* Module: TYPO3/CMS/Scheduler/PageBrowser
* Javascript for adding links for calling the page browser pop up
*/
define(['jquery'], function($) {
'use strict';
$(document).on('click', '.t3js-pageBrowser', function() {
var $this = $(this),
browserWin = "",
pageUrl = $this.data('url');
browserWin = window.open(pageUrl, "Typo3WinBrowser", "height=650,width=800,status=0,menubar=0,resizable=1,scrollbars=1");
browserWin.focus();
});
});
@@ -0,0 +1,192 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
/**
* Module: TYPO3/CMS/Scheduler/Scheduler
*/
define(['jquery',
'TYPO3/CMS/Backend/SplitButtons',
'datatables'
], function($, SplitButtons) {
/**
*
* @type {{}}
* @exports TYPO3/CMS/Scheduler/Scheduler
*/
var Scheduler = {};
var allCheckedStatus = false;
/**
* This method reacts on changes to the task class
* It switches on or off the relevant extra fields
*
* @param {Object} theSelector
*/
Scheduler.actOnChangedTaskClass = function(theSelector) {
var taskClass = theSelector.val();
taskClass = taskClass.toLowerCase().replace(/\\/g, '-');
// Hide all extra fields
$('.extraFields').hide();
// Show only relevant extra fields
$('.extra_fields_' + taskClass).show();
};
/**
* This method reacts on changes to the type of a task, i.e. single or recurring
*/
Scheduler.actOnChangedTaskType = function() {
Scheduler.toggleFieldsByTaskType($(this).val());
};
/**
* This method reacts on field changes of all table field for table garbage collection task
*
* @param {Object} theCheckbox
*/
Scheduler.actOnChangeSchedulerTableGarbageCollectionAllTables = function(theCheckbox) {
var $numberOfDays = $('#task_tableGarbageCollection_numberOfDays');
var $taskTableGarbageCollectionTable = $('#task_tableGarbageCollection_table');
if (theCheckbox.prop('checked')) {
$taskTableGarbageCollectionTable.prop('disabled', true);
$numberOfDays.prop('disabled', true);
} else {
// Get number of days for selected table
var numberOfDays = parseInt($numberOfDays.val());
if (numberOfDays < 1) {
var selectedTable = $taskTableGarbageCollectionTable.val();
if (typeof(defaultNumberOfDays[selectedTable]) !== 'undefined') {
numberOfDays = defaultNumberOfDays[selectedTable];
}
}
$taskTableGarbageCollectionTable.prop('disabled', false);
if (numberOfDays > 0) {
$numberOfDays.prop('disabled', false);
}
}
};
/**
* This methods set the 'number of days' field to the default expire period
* of the selected table
*
* @param {Object} theSelector
*/
Scheduler.actOnChangeSchedulerTableGarbageCollectionTable = function(theSelector) {
var $numberOfDays = $('#task_tableGarbageCollection_numberOfDays');
if (defaultNumberOfDays[theSelector.val()] > 0) {
$numberOfDays.prop('disabled', false);
$numberOfDays.val(defaultNumberOfDays[theSelector.val()]);
} else {
$numberOfDays.prop('disabled', true);
$numberOfDays.val(0);
}
};
/**
* Check or uncheck all checkboxes
*
* @param {Object} theSelector
* @returns {Boolean}
*/
Scheduler.checkOrUncheckAllCheckboxes = function(theSelector) {
theSelector.parents('.tx_scheduler_mod1_table').find(':checkbox').prop('checked', !allCheckedStatus);
allCheckedStatus = !allCheckedStatus;
return false;
};
/**
* Toggle the relevant form fields by task type
*
* @param {Integer} taskType
*/
Scheduler.toggleFieldsByTaskType = function(taskType) {
// Single task option = 1, Recurring task option = 2
taskType = parseInt(taskType);
$('#task_end_col').toggle(taskType === 2);
$('#task_frequency_row').toggle(taskType === 2);
};
/**
* Toggle the visibility of task groups by clicking anywhere on the
* task group header
*
* @param {Object} theSelector
*/
Scheduler.toggleTaskGroups = function(theSelector) {
var taskGroup = theSelector.data('task-group-id');
$('#recordlist-task-group-' + taskGroup).collapse('toggle');
};
/**
* Registers listeners
*/
Scheduler.initializeEvents = function() {
$('.checkall').on('click', function() {
Scheduler.checkOrUncheckAllCheckboxes($(this));
});
$('#task_class').change(function() {
Scheduler.actOnChangedTaskClass($(this));
});
$('#task_type').change(Scheduler.actOnChangedTaskType);
$('#task_tableGarbageCollection_allTables').change(function() {
Scheduler.actOnChangeSchedulerTableGarbageCollectionAllTables($(this));
});
$('#task_tableGarbageCollection_table').change(function() {
Scheduler.actOnChangeSchedulerTableGarbageCollectionTable($(this));
});
$('.taskGroup').on('click', function() {
Scheduler.toggleTaskGroups($(this));
});
$('table.taskGroup-table').DataTable({
"paging": false,
"searching": false
});
};
/**
* Initialize default states
*/
Scheduler.initializeDefaultStates = function() {
var $taskType = $('#task_type');
if ($taskType.length) {
Scheduler.toggleFieldsByTaskType($taskType.val());
}
var $taskClass = $('#task_class');
if ($taskClass.length) {
Scheduler.actOnChangedTaskClass($taskClass);
}
};
$(Scheduler.initializeEvents);
$(Scheduler.initializeDefaultStates);
SplitButtons.addPreSubmitCallback(function() {
var taskClass = $('#task_class').val();
taskClass = taskClass.toLowerCase().replace(/\\/g, '-');
$('.extraFields').appendTo($('#extraFieldsHidden'));
$('.extra_fields_' + taskClass).appendTo($('#extraFieldsSection'));
});
return Scheduler;
});