diff --git a/assets/job/add.js b/assets/job/add.js
index 1cffb7b..409d142 100644
--- a/assets/job/add.js
+++ b/assets/job/add.js
@@ -1,141 +1,167 @@
-import 'tempusdominus-bootstrap-4';
import 'bootstrap';
-$(function() {
- initDatePickers();
- initCronType();
- initHostType();
- initContainerType();
- initVarInputs();
- initIntervalPattern();
- initEternalCheckbox();
+document.addEventListener("readystatechange", event => {
+ if(event.target.readyState === 'complete') {
+ // initDatePickers();
+ initCronType();
+ initHostType();
+ initContainerType();
+ initVarInputs();
+ initIntervalPattern();
+ initEternalCheckbox();
+ }
});
function initDatePickers()
{
- $('#nextrunselector').datetimepicker({format: 'DD/MM/YYYY HH:mm:ss'});
- $('#lastrunselector').datetimepicker({format: 'DD/MM/YYYY HH:mm:ss'});
+ document.querySelector('#nextrunselector').datetimepicker({format: 'DD/MM/YYYY HH:mm:ss'});
+ document.querySelector('#lastrunselector').datetimepicker({format: 'DD/MM/YYYY HH:mm:ss'});
}
function initCronType()
{
- $('.crontype-group button').data('default-text', $('.crontype-group button').html());
- $('.crontype-item').on('click', function() {
- let type = $(this).data('type');
- $('#crontypeButton').html($(this).html());
- $('.crontype').val(type);
- $('.crontype-inputs:not(.d-none)').addClass('d-none');
- $('.crontype-' + type).removeClass('d-none');
+ let crontypegroupbtn = document.querySelector('.crontype-group button');
+ crontypegroupbtn.dataset.defaultText = crontypegroupbtn.innerHTML.trim();
- $('.crontype-inputs:not(.d-none) input').prop('disabled', false);
- $('.crontype-inputs.d-none input').prop('disabled', true);
+ document.querySelectorAll('.crontype-item').forEach(elem => {
+ elem.addEventListener('click', event => {
+ let type = event.target.dataset.type;
+ document.getElementById('crontypeButton').innerText = event.target.innerText;
+ document.querySelector('.crontype').value = type;
+ document.querySelectorAll('.crontype-inputs:not(.d-none)').forEach(elem => elem.classList.add('d-none'));
+ document.querySelector('.crontype-' + type).classList.remove('d-none');
- if(type == 'http') {
- $('.croncategory-group:not(.crontype-group) button').each(function() {
- $(this).html($(this).data('default-text'))
- })
+ document.querySelector('.crontype-inputs:not(.d-none) input').disabled = false;
+ document.querySelector('.crontype-inputs.d-none input').disabled = true;
- $('.croncategory-group').removeClass('btn-group');
- $('.croncategory-group:not(.crontype-group)').addClass('d-none');
- $('.croncategory-inputs:not(.crontype-inputs)').addClass('d-none');
+ if (type == 'http') {
+ document.querySelectorAll('.croncategory-group:not(.crontype-group) button').forEach(elem => elem.innerText = elem.dataset.defaultText)
- $('.croncategory-inputs:not(.d-none) input').prop('disabled', false);
- $('.croncategory-inputs.d-none input').prop('disabled', true);
- }
- if(type == 'reboot') {
- if($('#btn-group-discriminator').length == 0) {
- $('body').append('
');
+ document.querySelectorAll('.croncategory-group').forEach(elem => elem.classList.remove('btn-group'));
+ document.querySelectorAll('.croncategory-group:not(.crontype-group)').forEach(elem => elem.classList.add('d-none'));
+ document.querySelectorAll('.croncategory-inputs:not(.crontype-inputs)').forEach(elem => elem.classList.add('d-none'));
+
+ document.querySelector('.croncategory-inputs:not(.d-none) input').disabled = false;
+ document.querySelector('.croncategory-inputs.d-none input').disabled = true;
}
- $('.croncategory-group.containertype-group button').each(function() {
- $(this).html($(this).data('default-text'))
- })
- $('.croncategory-group').addClass('btn-group');
- $('.croncategory-group').removeClass('d-none');
+ if (type == 'reboot') {
+ if (document.querySelector('#btn-group-discriminator') === null) {
+ let discriminator = document.createElement('div');
+ discriminator.classList.add('d-none');
+ discriminator.id = 'btn-group-discriminator';
+ document.querySelector('body').append(discriminator);
+ }
+ document.querySelectorAll('.croncategory-group.containertype-group button').forEach(elem => elem.innerText = elem.dataset.defaultText)
- $('#btn-group-discriminator').append($('.containertype-group'));
- $('.croncategory-selector .containertype-group').remove();
- $('.croncategory-group.containertype-group').addClass('d-none');
- $('.croncategory-inputs.containertype-inputs').addClass('d-none');
+ document.querySelectorAll('.croncategory-group').forEach(elem => elem.classList.add('btn-group'))
+ document.querySelectorAll('.croncategory-group').forEach(elem => elem.classList.remove('d-none'))
- $('.croncategory-inputs:not(.d-none) input').prop('disabled', false);
- $('.croncategory-inputs.d-none input').prop('disabled', true);
- }
- if(type == 'command') {
- if($('#btn-group-discriminator .containertype-group').length > 0) {
- $('.croncategory-selector').append($('#btn-group-discriminator .containertype-group'));
+ if(document.querySelector('#btn-group-discriminator') !== null) {
+ document.querySelector('#btn-group-discriminator').append(document.querySelector('.containertype-group'));
+ }
+
+ let containergroupselect = document.querySelector('.croncategory-selector .containertype-group');
+ if (containergroupselect !== null) containergroupselect.remove();
+
+ document.querySelectorAll('.croncategory-group.containertype-group').forEach(elem => elem.classList.add('d-none'))
+ document.querySelectorAll('.croncategory-inputs.containertype-inputs').forEach(elem => elem.classList.add('d-none'))
+
+ document.querySelectorAll('.croncategory-inputs:not(.d-none) input').forEach(elem => elem.disabled = false)
+ document.querySelectorAll('.croncategory-inputs.d-none input').forEach(elem => elem.disabled = true)
}
- $('.croncategory-group').addClass('btn-group');
- $('.croncategory-group').removeClass('d-none');
- }
- })
-}
-function initContainerType()
-{
-
- $('.containertype-group button').data('default-text', $('.containertype-group button').html());
- $('.containertype-item').on('click', function() {
-
- $('#containertypeButton').html($(this).html());
- let type = $(this).data('type');
- $('.containertype').val(type);
- $('.containertype-inputs:not(.d-none)').addClass('d-none');
- $('.containertype-' + type).removeClass('d-none');
-
- $('.containertype-inputs:not(.d-none) input').prop('disabled', false);
- $('.containertype-inputs.d-none input').prop('disabled', true);
- })
+ if (type == 'command') {
+ if (document.querySelector('#btn-group-discriminator .containertype-group') !== null) {
+ document.querySelector('.croncategory-selector').append(document.querySelector('#btn-group-discriminator .containertype-group'));
+ }
+ document.querySelectorAll('.croncategory-group').forEach(elem => elem.classList.add('btn-group'));
+ document.querySelectorAll('.croncategory-group').forEach(elem => elem.classList.remove('d-none'));
+ }
+ })
+ });
}
function initHostType()
{
- $('.hosttype-group button').data('default-text', $('.hosttype-group button').html());
- $('.hosttype-item').on('click', function() {
+ document.querySelector('.hosttype-group button').dataset.defaultText = document.querySelector('.hosttype-group button').innerHTML.trim();
+ document.querySelectorAll('.hosttype-item').forEach(elem => {
+ elem.addEventListener('click', event => {
- $('#hosttypeButton').html($(this).html());
- let type = $(this).data('type');
- $('.hosttype').val(type);
- $('.hosttype-inputs:not(.d-none)').addClass('d-none');
- $('.hosttype-' + type).removeClass('d-none');
+ document.querySelector('#hosttypeButton').innerHTML = event.target.innerHTML;
+ let type = event.target.dataset.type;
+ document.querySelector('.hosttype').value = type;
+ document.querySelectorAll('.hosttype-inputs:not(.d-none)').forEach(elem => elem.classList.add('d-none'));
+ document.querySelectorAll('.hosttype-' + type).forEach(elem => elem.classList.remove('d-none'));
- $('.hosttype-inputs:not(.d-none) input').prop('disabled', false);
- $('.hosttype-inputs.d-none input').prop('disabled', true);
+ document.querySelectorAll('.hosttype-inputs:not(.d-none) input').forEach(elem => elem.disabled = false);
+ document.querySelectorAll('.hosttype-inputs.d-none input').forEach(elem => elem.disabled = true);
+ })
})
- $('.privkey-keep').on('click', function() {
- $('#privkey').prop('disabled', $(this).prop('checked'));
+ if (document.querySelector('.privkey-keep') !== null) {
+ document.querySelector('.privkey-keep').addEventListener('click', event => {
+ document.querySelector('#privkey').disabled = event.target.checked
+ })
+ }
+}
+
+function initContainerType()
+{
+
+ document.querySelector('.containertype-group button').dataset.defaultText = document.querySelector('.containertype-group button').innerHTML.trim();
+ document.querySelectorAll('.containertype-item').forEach(elem => {
+ elem.addEventListener('click', event => {
+
+ document.querySelector('#containertypeButton').innerHTML = event.target.innerHTML;
+ let type = event.target.dataset.type;
+ document.querySelector('.containertype').value = type;
+
+
+ document.querySelectorAll('.containertype-inputs:not(.d-none)').forEach(elem => elem.classList.add('d-none'));
+ document.querySelectorAll('.containertype-' + type).forEach(elem => elem.classList.remove('d-none'));
+
+ document.querySelectorAll('.containertype-inputs:not(.d-none) input').forEach(elem => elem.disabled = false);
+ document.querySelectorAll('.containertype-inputs.d-none input').forEach(elem => elem.disabled = true);
+ })
})
}
function initVarInputs()
{
- $('.addvar-btn').on('click', function() {
- let index = $('.var-group').length;
- $('.var-group:first-child').clone().appendTo('.vars').removeClass('d-none');
- $('.var-group:last-child').data({index: index});
- $('.var-group:last-child .var-issecret').prop('name', 'var-issecret[' + index + ']');
- $('.var-group:last-child .var-id').prop('name', 'var-id[' + index + ']');
- $('.var-group:last-child .var-value').prop('name', 'var-value[' + index + ']');
- $('.vars-description').removeClass('d-none');
- })
- $(document).on('click', '.var-issecret', function() {
- let ischecked = $(this).prop('checked');
- $(this).parents('.var-group').find('.var-value').prop('type', ischecked ? 'password' : 'text');
+ document.querySelector('.addvar-btn').addEventListener('click', event => {
+ let index = document.querySelectorAll('.var-group').length;
+ let group = document.querySelector('.var-group');
+ let newgroup = group.cloneNode(true);
+ newgroup.classList.remove('d-none');
+ newgroup.dataset.index = index;
+ newgroup.querySelector('.var-issecret').name = 'var-issecret[' + index + ']';
+ newgroup.querySelector('.var-issecret').addEventListener('click', handleSecretCheckbox);
+ newgroup.querySelector('.var-id').name = 'var-id[' + index + ']';
+ newgroup.querySelector('.var-value').name = 'var-value[' + index + ']';
+
+ document.querySelector('.vars').append(newgroup);
+ document.querySelector('.vars-description').classList.remove('d-none');
})
+ document.querySelectorAll('.var-issecret').forEach(elem => elem.addEventListener('click', handleSecretCheckbox));
+}
+
+function handleSecretCheckbox(event) {
+ let ischecked = event.target.checked;
+ event.target.parentElement.parentElement.querySelector('.var-value').type = ischecked ? 'password' : 'text';
}
function initEternalCheckbox() {
- $('.lastrun-eternal').on('click', function() {
- $('#lastrunselector').prop('disabled', $(this).prop('checked'));
- $('#lastrunselector').prop('value', '');
+ document.querySelector('.lastrun-eternal').addEventListener('click', event => {
+ document.querySelector('#lastrunselector').prop('disabled', document.querySelector(this).prop('checked'));
+ document.querySelector('#lastrunselector').prop('value', '');
})
}
function initIntervalPattern()
{
- $('.intervalpattern-item').on('click', function() {
- let time = $(this).data('time');
- $('#interval').val(time);
- })
+ document.querySelectorAll('.intervalpattern-item').forEach(elem => elem.addEventListener('click', event => {
+ let time = event.target.dataset.time;
+ document.querySelector('#interval').value = time;
+ }));
}
\ No newline at end of file