2026-02-17 14:56:23 +01:00
|
|
|
var openCardOnStart = false;
|
|
|
|
|
var openCardAction = 'edit';
|
|
|
|
|
var reloadAfterClose = true;
|
|
|
|
|
let keysPressed = {};
|
|
|
|
|
|
|
|
|
|
/** Shortcuts für Page Bearbeitung DuP 20201103 **/
|
|
|
|
|
$(document).keyup(function(event) {
|
|
|
|
|
var keycode = (event.keyCode ? event.keyCode : event.which);
|
|
|
|
|
delete keysPressed[keycode];
|
|
|
|
|
});
|
|
|
|
|
$(document).keydown(function(event) {
|
|
|
|
|
var keycode = (event.keyCode ? event.keyCode : event.which);
|
|
|
|
|
keysPressed[keycode] = true;
|
|
|
|
|
|
|
|
|
|
// if (event.ctrlKey && event.keyCode == 83) {
|
|
|
|
|
// event.preventDefault();
|
|
|
|
|
// button_properties = $('.button_save');
|
|
|
|
|
// setCurrentToolbarClicked(button_properties);
|
|
|
|
|
// loadCard('save_line_properties_page', true);
|
|
|
|
|
// }
|
|
|
|
|
if ($("form#form_inhalte").length) {
|
|
|
|
|
switch (keycode) {
|
|
|
|
|
case 80:
|
|
|
|
|
//Seiten-Einstellungen Key = P
|
|
|
|
|
button_properties = $('.button_properties[data-formname="form_field_list"]');
|
|
|
|
|
setCurrentToolbarClicked(button_properties);
|
|
|
|
|
loadCard('edit_page', true);
|
|
|
|
|
break;
|
|
|
|
|
case 73:
|
|
|
|
|
//Inhalts-Einstellungen Key = I
|
|
|
|
|
button_properties = $('.button_properties[data-formname="form_field_list"]');
|
|
|
|
|
setCurrentToolbarClicked(button_properties);
|
|
|
|
|
loadCard('edit_line_properties_page');
|
|
|
|
|
break;
|
|
|
|
|
case 69:
|
|
|
|
|
//Inhalt bearbeiten Key = E
|
|
|
|
|
button_properties = $('.button_edit[data-formname="form_field_list"]');
|
|
|
|
|
setCurrentToolbarClicked(button_properties);
|
|
|
|
|
loadCard('edit_line_page');
|
|
|
|
|
break;
|
|
|
|
|
case 86:
|
|
|
|
|
//Inhalt erstellen Key = V
|
|
|
|
|
button_properties = $('.button_inhalt_text[data-formname="form_inhalte"]');
|
|
|
|
|
setCurrentToolbarClicked(button_properties);
|
|
|
|
|
contentmenuClick(button_properties, 'textcontent', false, 1);
|
|
|
|
|
break;
|
|
|
|
|
case 71:
|
|
|
|
|
//Gruppe erstellen Key = G
|
|
|
|
|
button_properties = $('.button_inhalt_collection.graybox[data-formname="form_inhalte"]');
|
|
|
|
|
setCurrentToolbarClicked(button_properties);
|
|
|
|
|
contentmenuClick(button_properties, 'group', true);
|
|
|
|
|
break;
|
|
|
|
|
case 46:
|
|
|
|
|
//Inhalt löschen Key = ENTF
|
|
|
|
|
button_properties = $('.button_delete[data-formname="form_field_list"]');
|
|
|
|
|
setCurrentToolbarClicked(button_properties);
|
|
|
|
|
loadCard('delete_line_page', false, 'Wollen Sie die Zuordnung wirklich löschen?');
|
|
|
|
|
break;
|
|
|
|
|
case 38:
|
|
|
|
|
//Inhalt nach oben Key = Pfeil hoch
|
|
|
|
|
button_properties = $('.button_up[data-formname="form_field_list"]');
|
|
|
|
|
setCurrentToolbarClicked(button_properties);
|
|
|
|
|
loadCard('moveup_line_page');
|
|
|
|
|
break;
|
|
|
|
|
case 40:
|
|
|
|
|
//Inhalt nach unten Key = Pfeil unten
|
|
|
|
|
button_properties = $('.button_down[data-formname="form_field_list"]');
|
|
|
|
|
setCurrentToolbarClicked(button_properties);
|
|
|
|
|
loadCard('movedown_line_page');
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
// code block
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ($("form#form_collection_cardform").length) {
|
|
|
|
|
// Strg und S -> Kollektion speichern
|
|
|
|
|
if ((event.ctrlKey || event.metaKey) && keycode == 83) {
|
|
|
|
|
event.preventDefault();
|
|
|
|
|
button_properties = $('.button_save[data-formname="form_collection_cardform"]');
|
|
|
|
|
setCurrentToolbarClicked(button_properties);
|
|
|
|
|
saveCollection(false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ((event.ctrlKey || event.metaKey) && keycode == 89) {
|
|
|
|
|
// Strg und Y -> Toggle Light/Darkmode
|
|
|
|
|
|
|
|
|
|
document.getElementById("theme-toggle").checked = !document.getElementById("theme-toggle").checked;
|
|
|
|
|
|
|
|
|
|
event.preventDefault();
|
|
|
|
|
var currentTheme = document.documentElement.getAttribute("data-theme");
|
|
|
|
|
var targetTheme = "dark";
|
|
|
|
|
|
|
|
|
|
if (currentTheme === "dark") {
|
|
|
|
|
targetTheme = "light";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
document.documentElement.setAttribute('data-theme', targetTheme)
|
|
|
|
|
localStorage.setItem('theme', targetTheme);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
jQuery(function($) {
|
|
|
|
|
$.datepicker.regional['de'] = {
|
|
|
|
|
clearText: 'löschen',
|
|
|
|
|
clearStatus: 'aktuelles Datum löschen',
|
|
|
|
|
closeText: 'schließen',
|
|
|
|
|
closeStatus: 'ohne Änderungen schließen',
|
|
|
|
|
prevText: '<zurück',
|
|
|
|
|
prevStatus: 'letzten Monat zeigen',
|
|
|
|
|
nextText: 'Vor>',
|
|
|
|
|
nextStatus: 'nächsten Monat zeigen',
|
|
|
|
|
currentText: 'heute',
|
|
|
|
|
currentStatus: '',
|
|
|
|
|
monthNames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni',
|
|
|
|
|
'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'
|
|
|
|
|
],
|
|
|
|
|
monthNamesShort: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun',
|
|
|
|
|
'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'
|
|
|
|
|
],
|
|
|
|
|
monthStatus: 'anderen Monat anzeigen',
|
|
|
|
|
yearStatus: 'anderes Jahr anzeigen',
|
|
|
|
|
weekHeader: 'Wo',
|
|
|
|
|
weekStatus: 'Woche des Monats',
|
|
|
|
|
dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
|
|
|
|
|
dayNamesShort: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
|
|
|
|
|
dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
|
|
|
|
|
dayStatus: 'Setze DD als ersten Wochentag',
|
|
|
|
|
dateStatus: 'Wähle D, M d',
|
|
|
|
|
dateFormat: 'dd.mm.yy',
|
|
|
|
|
firstDay: 1,
|
|
|
|
|
initStatus: 'Wähle ein Datum',
|
|
|
|
|
isRTL: false
|
|
|
|
|
};
|
|
|
|
|
$.datepicker.setDefaults($.datepicker.regional['de']);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function toggleOn(a) {
|
|
|
|
|
var e = document.getElementById(a);
|
|
|
|
|
if (!e) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
e.style.display = "block";
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function toggleOff(a) {
|
|
|
|
|
var e = document.getElementById(a);
|
|
|
|
|
if (!e) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
e.style.display = "none";
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function toggle(a) {
|
|
|
|
|
var e = document.getElementById(a);
|
|
|
|
|
if (e.style.display != "block") {
|
|
|
|
|
if (!e) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
e.style.display = "block";
|
|
|
|
|
} else {
|
|
|
|
|
e.style.display = "none";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function MM_jumpMenu(targ, selObj, restore) { //v3.0
|
|
|
|
|
eval(targ + ".location='" + selObj.options[selObj.selectedIndex].value + "'");
|
|
|
|
|
if (restore) {
|
|
|
|
|
selObj.selectedIndex = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function LangAJAXreq1() {
|
|
|
|
|
var company = document.getElementById('company').value;
|
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
type: "POST",
|
|
|
|
|
url: "/mysyde/admin/edit_language_ajax.php",
|
|
|
|
|
data: "company=" + company,
|
|
|
|
|
success: function(resp) {
|
|
|
|
|
// we have the response
|
|
|
|
|
$('#shopcode').empty().append(resp);
|
|
|
|
|
},
|
|
|
|
|
error: function(e) {
|
|
|
|
|
alert('Error: ' + e);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function LangAJAXreq2() {
|
|
|
|
|
var shop = document.getElementById('shopcode').value;
|
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
type: "POST",
|
|
|
|
|
url: "/mysyde/admin/edit_language_ajax.php",
|
|
|
|
|
data: "shop=" + shop,
|
|
|
|
|
success: function(resp) {
|
|
|
|
|
// we have the response
|
|
|
|
|
$('#language_code').empty().append(resp);
|
|
|
|
|
},
|
|
|
|
|
error: function(e) {
|
|
|
|
|
alert('Error: ' + e);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function LoginAJAXreq1() {
|
|
|
|
|
var site = document.getElementById('site_id').value;
|
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
type: "POST",
|
|
|
|
|
url: "/mysyde/admin/edit_login_ajax.php",
|
|
|
|
|
data: "site=" + site,
|
|
|
|
|
success: function(resp) {
|
|
|
|
|
// we have the response
|
|
|
|
|
$('#main_language_id').empty().append(resp);
|
|
|
|
|
},
|
|
|
|
|
error: function(e) {
|
|
|
|
|
alert('Error: ' + e);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function LoginAJAXreq2() {
|
|
|
|
|
var language = document.getElementById('main_language_id').value;
|
|
|
|
|
var siteId = document.getElementById('site_id').value;
|
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
type: "POST",
|
|
|
|
|
url: "/mysyde/admin/edit_login_ajax.php",
|
|
|
|
|
data: "language=" + language + "&site_code=" + siteId,
|
|
|
|
|
success: function(resp) {
|
|
|
|
|
// we have the response
|
|
|
|
|
$('#main_navigation_id').empty().append(resp);
|
|
|
|
|
},
|
|
|
|
|
error: function(e) {
|
|
|
|
|
alert('Error: ' + e);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function dctest() {
|
|
|
|
|
alert("zum glück geht das");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// linklist functions
|
|
|
|
|
var dc = {};
|
|
|
|
|
dc.overlay_mode = false; // Karte offen ja nein
|
|
|
|
|
dc.linklist_marked = null; // markierte Zeile in einer linkiste
|
|
|
|
|
dc.mouse_in_linklist = false; // wenn der mauszeiger sich ueber einer linkliste befindet, dann true
|
|
|
|
|
dc.current_linklist = null; // aktuelle linkliste - entweder direkt im content oder im overlay
|
|
|
|
|
dc.current_formname = null;
|
|
|
|
|
dc.files;
|
|
|
|
|
dc.reorder_call = null; // ajax request zum aendern der reihenfolge in den linklisten
|
|
|
|
|
|
|
|
|
|
// Grab the files and set them to our variable
|
|
|
|
|
function prepareUpload(event) {
|
|
|
|
|
dc.files = event.target.files;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function centerElement(_el) {
|
|
|
|
|
_el.css({
|
|
|
|
|
position: 'absolute',
|
|
|
|
|
left: ($(window).width() - _el.outerWidth()) / 2,
|
|
|
|
|
top: ($(window).height() - _el.outerHeight()) / 4
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function setFormname(_formname) {
|
|
|
|
|
dc.current_formname = _formname;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function setCurrentToolbarClicked(_el) {
|
|
|
|
|
setFormname(jQuery(_el).data('formname'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function initLinklist() {
|
|
|
|
|
dc.linklist_marked = null;
|
|
|
|
|
dc.mouse_in_linklist = false;
|
|
|
|
|
|
|
|
|
|
jQuery('.linklist').each(function() {
|
|
|
|
|
if (jQuery(this).data('linklist_init') === true) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var thiz = this;
|
|
|
|
|
|
|
|
|
|
if ($(this).hasClass("sortableTable")) {
|
|
|
|
|
makeSortable($(this));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jQuery('.linklist_content', this).click(function() {
|
|
|
|
|
if (dc.linklist_marked !== null) {
|
|
|
|
|
jQuery(dc.linklist_marked).removeClass("linklist_active");
|
|
|
|
|
}
|
|
|
|
|
jQuery(this).addClass("linklist_active");
|
|
|
|
|
dc.linklist_marked = this;
|
|
|
|
|
dc.current_linklist = thiz;
|
|
|
|
|
}).mouseenter(function() {
|
|
|
|
|
dc.mouse_in_linklist = true;
|
|
|
|
|
}).mouseleave(function() {
|
|
|
|
|
dc.mouse_in_linklist = false;
|
|
|
|
|
}).dblclick(function(e) {
|
|
|
|
|
if (jQuery(this).data('function') !== undefined) {
|
|
|
|
|
var userFunc = jQuery(this).data('function');
|
|
|
|
|
var funcCall = userFunc + "(this);";
|
|
|
|
|
eval(funcCall);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var target = jQuery(e.target);
|
|
|
|
|
setFormname(target.closest('form').attr("id"));
|
|
|
|
|
if (jQuery(this).data("action") != 'no_edit') {
|
|
|
|
|
loadCard(jQuery(this).data("action"));
|
|
|
|
|
}
|
|
|
|
|
}).each(function() {
|
|
|
|
|
if (jQuery(this).data('checked') == true) {
|
|
|
|
|
jQuery(this).addClass("linklist_active");
|
|
|
|
|
dc.linklist_marked = this;
|
|
|
|
|
dc.current_linklist = thiz;
|
|
|
|
|
setFormname(jQuery(this).closest('form').attr("id"));
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
jQuery(this).data('linklist_init', true);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (openCardOnStart === true) {
|
|
|
|
|
loadCard(openCardAction, true);
|
|
|
|
|
openCardOnStart = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function sortableHelper(e, tr) {
|
|
|
|
|
var $originals = tr.children();
|
|
|
|
|
var $helper = tr.clone();
|
|
|
|
|
$helper.children().each(function(index) {
|
|
|
|
|
// Set helper cell sizes to match the original sizes
|
|
|
|
|
$(this).width($originals.eq(index).width());
|
|
|
|
|
});
|
|
|
|
|
return $helper;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function makeSortable(_linklist) {
|
|
|
|
|
_linklist.sortable({
|
|
|
|
|
'axis': 'y',
|
|
|
|
|
'items': '.linklist_content',
|
|
|
|
|
handle: '.sorticon',
|
|
|
|
|
stop: function(event, ui) {
|
|
|
|
|
if (dc.reorder_call !== null) {
|
|
|
|
|
dc.reorder_call.abort();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
serialized = _linklist.sortable('serialize');
|
|
|
|
|
reorderCall = jQuery.post("?action=" + _linklist.data("sortableupdateaction"), serialized, function(output, status, xhr) {
|
|
|
|
|
if (xhr.getResponseHeader('REQUIRES_AUTH') == 1) {
|
|
|
|
|
window.location.replace("/mysyde/");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
helper: sortableHelper
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function initForm() {
|
|
|
|
|
$('#overlayContent input.date').each(function() {
|
|
|
|
|
if (jQuery(this).data('datepicker_init') === true) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// jQuery(this).datepicker();
|
|
|
|
|
|
|
|
|
|
jQuery(this).data('datepicker_init', true);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('#overlayContent form').submit(function() {
|
|
|
|
|
return false;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function loadSite(site){
|
|
|
|
|
window.location.href = site;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function initDatepicker() {
|
|
|
|
|
$('#mainContent input.date').datepicker();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function scrollSiteNavigation() {
|
|
|
|
|
var h = $(window).height();
|
|
|
|
|
var actualHeight = $('.site_dropdown').actual("height");
|
|
|
|
|
var newHeight = (h / 100 * 75);
|
|
|
|
|
if (actualHeight > newHeight) {
|
|
|
|
|
$('.site_dropdown').css('height', newHeight + 'px');
|
|
|
|
|
$('.site_dropdown').css('overflow-y', 'scroll');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var addEvent = function(object, type, callback) {
|
|
|
|
|
if (object == null || typeof(object) == 'undefined') return;
|
|
|
|
|
if (object.addEventListener) {
|
|
|
|
|
object.addEventListener(type, callback, false);
|
|
|
|
|
} else if (object.attachEvent) {
|
|
|
|
|
object.attachEvent("on" + type, callback);
|
|
|
|
|
} else {
|
|
|
|
|
object["on" + type] = callback;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function scrollSiteNavigationOnResize() {
|
|
|
|
|
addEvent(window, "resize", scrollSiteNavigation);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jQuery(document).ready(function() {
|
|
|
|
|
initLinklist();
|
|
|
|
|
// initDatepicker();
|
|
|
|
|
|
|
|
|
|
scrollSiteNavigation();
|
|
|
|
|
scrollSiteNavigationOnResize();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// click auf document
|
|
|
|
|
}).click(function(e) {
|
|
|
|
|
if (dc.current_linklist !== null && dc.mouse_in_linklist === false && e.target.nodeName.toLowerCase() != 'a') {
|
|
|
|
|
// unmark all linklist
|
|
|
|
|
jQuery('.linklist_content', dc.current_linklist).removeClass("linklist_active");
|
|
|
|
|
dc.linklist_marked = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// keyboardtaste druecken und halten (steuerung der linkliste mit pfeiltasten
|
|
|
|
|
}).keydown(function(event) {
|
|
|
|
|
if (dc.overlay_mode === true && event.keyCode == 27) { // ESC
|
|
|
|
|
if (jQuery('body').hasClass("ckeditor_maximized")) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
event.preventDefault();
|
|
|
|
|
disableOverlay();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch (event.keyCode) {
|
|
|
|
|
//arrow down
|
|
|
|
|
case 40:
|
|
|
|
|
var nextRow = jQuery(dc.linklist_marked).nextAll('.linklist_content:visible:first');
|
|
|
|
|
if (nextRow.length == 0) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
nextRow.addClass("linklist_active");
|
|
|
|
|
jQuery(dc.linklist_marked).removeClass("linklist_active");
|
|
|
|
|
dc.linklist_marked = nextRow;
|
|
|
|
|
break;
|
|
|
|
|
//arrow up
|
|
|
|
|
case 38:
|
|
|
|
|
var prevRow = jQuery(dc.linklist_marked).prevAll('.linklist_content:visible:first');
|
|
|
|
|
if (prevRow.length == 0) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
prevRow.addClass("linklist_active");
|
|
|
|
|
jQuery(dc.linklist_marked).removeClass("linklist_active");
|
|
|
|
|
dc.linklist_marked = prevRow;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// keyboardtaste druecken
|
|
|
|
|
}).keypress(function(event) {
|
|
|
|
|
if (dc.linklist_marked === null) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (event.keyCode == 13) {
|
|
|
|
|
jQuery(dc.linklist_marked).dblclick();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function reloadList() {
|
|
|
|
|
jQuery('#mainContent').find('.requestLoader').show();
|
|
|
|
|
|
|
|
|
|
// reload
|
|
|
|
|
//document.location = String(document.location).replace(/\?.*$/, '');
|
|
|
|
|
document.location = replaceUrlParam(String(document.location), 'action', "");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function replaceUrlParam(url, paramName, paramValue) {
|
|
|
|
|
var pattern = new RegExp('(' + paramName + '=).*?(&|$)')
|
|
|
|
|
var newUrl = url
|
|
|
|
|
if (url.search(pattern) >= 0) {
|
|
|
|
|
newUrl = url.replace(pattern, '$1' + paramValue + '$2');
|
|
|
|
|
} else {
|
|
|
|
|
newUrl = newUrl + (newUrl.indexOf('?') > 0 ? '&' : '?') + paramName + '=' + paramValue
|
|
|
|
|
}
|
|
|
|
|
return newUrl
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function gotoLocation(_href) {
|
|
|
|
|
document.location = _href;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ==========================================================================
|
|
|
|
|
Overlay Functions
|
|
|
|
|
========================================================================== */
|
|
|
|
|
function createOverlay() {
|
|
|
|
|
dc.linklist_marked = null;
|
|
|
|
|
dc.current_linklist = null;
|
|
|
|
|
|
|
|
|
|
if (dc.overlay_mode === true) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dc.overlay_mode = true;
|
|
|
|
|
jQuery('#overlay').show();
|
|
|
|
|
|
|
|
|
|
// overlay wrapper
|
|
|
|
|
jQuery('#overlayWrapper').show();
|
|
|
|
|
|
|
|
|
|
jQuery('#overlayLoader').show();
|
|
|
|
|
$("#mainContent, .toolbar_menu").hide();
|
|
|
|
|
$("div#content_3").hide();
|
|
|
|
|
$("ul.toolbar_menu.collection, .collection_form.collection ").wrapAll("<div class='omega-site-part'></div>");
|
|
|
|
|
$("#content-collection").insertBefore(".site");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function disableOverlay() {
|
|
|
|
|
dc.overlay_mode = false;
|
|
|
|
|
jQuery('#overlay').hide();
|
|
|
|
|
jQuery('#overlayContent').html("").hide();
|
|
|
|
|
jQuery('#overlayWrapper').hide();
|
|
|
|
|
jQuery('#overlayLoader').hide();
|
|
|
|
|
jQuery('body').removeClass("ckeditor_maximized");
|
|
|
|
|
|
|
|
|
|
if (reloadAfterClose === true) {
|
|
|
|
|
reloadList();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jQuery('.linklist_content').removeClass("linklist_active");
|
|
|
|
|
dc.linklist_marked = null;
|
|
|
|
|
dc.current_linklist = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getFormData(_form) {
|
|
|
|
|
for (instance in CKEDITOR.instances) {
|
|
|
|
|
CKEDITOR.instances[instance].updateElement();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return _form.serialize();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Absenden von requests ausserhalb vom overlay
|
|
|
|
|
*
|
|
|
|
|
* @param _action
|
|
|
|
|
* @param _load_without_check
|
|
|
|
|
* @param _confirmtext
|
|
|
|
|
* @returns {Boolean}
|
|
|
|
|
*/
|
2026-05-11 08:54:44 +02:00
|
|
|
function sendRequest(_action, _load_without_check, _confirmtext, sub_get = "") {
|
2026-02-17 14:56:23 +01:00
|
|
|
// variable zum pruefen ob in einer linkliste ein element markiert wurde
|
|
|
|
|
var load_without_check = _load_without_check || false;
|
|
|
|
|
|
|
|
|
|
if (load_without_check === false) {
|
2026-05-11 08:54:44 +02:00
|
|
|
var currentMarkedLinklistRow = jQuery(
|
|
|
|
|
".linklist_active",
|
|
|
|
|
jQuery("#" + dc.current_formname)
|
|
|
|
|
);
|
2026-02-17 14:56:23 +01:00
|
|
|
|
|
|
|
|
if (dc.current_linklist === null || currentMarkedLinklistRow.length <= 0) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
2026-05-11 08:54:44 +02:00
|
|
|
var input_id = currentMarkedLinklistRow.data("inputid");
|
|
|
|
|
jQuery(
|
|
|
|
|
"input.selected_linklist_row",
|
|
|
|
|
jQuery("#" + dc.current_formname)
|
|
|
|
|
).val(input_id);
|
2026-02-17 14:56:23 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var confirmtext = _confirmtext || false;
|
|
|
|
|
if (confirmtext !== false && confirmtext != "") {
|
|
|
|
|
if (!confirm(confirmtext)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-05-11 08:54:44 +02:00
|
|
|
// Проверка обязательных полей
|
|
|
|
|
var form = document.getElementById(dc.current_formname);
|
|
|
|
|
if (!form.checkValidity()) {
|
|
|
|
|
form.reportValidity();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-17 14:56:23 +01:00
|
|
|
if (dc.overlay_mode === true) {
|
2026-05-11 08:54:44 +02:00
|
|
|
jQuery("#overlayLoader").show();
|
2026-02-17 14:56:23 +01:00
|
|
|
} else {
|
2026-05-11 08:54:44 +02:00
|
|
|
jQuery("#mainContent").find(".requestLoader").show();
|
2026-02-17 14:56:23 +01:00
|
|
|
}
|
|
|
|
|
|
2026-05-11 08:54:44 +02:00
|
|
|
jQuery('#' + dc.current_formname).attr("action", "?action=" + _action + "&sub_get=" + sub_get);
|
|
|
|
|
jQuery("#" + dc.current_formname).submit();
|
2026-02-17 14:56:23 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Karte im overlay laden
|
|
|
|
|
*
|
|
|
|
|
* @param _action
|
|
|
|
|
* @param _load_without_check
|
|
|
|
|
* @param _confirmtext
|
|
|
|
|
* @param _closeOverlay
|
|
|
|
|
* @param _customFormData
|
|
|
|
|
* @returns {Boolean}
|
|
|
|
|
*/
|
|
|
|
|
function backButton(){
|
|
|
|
|
location.reload();
|
|
|
|
|
}
|
|
|
|
|
function loadCard_frontend(_action, _load_without_check, _confirmtext, _closeOverlay, _customFormData) {
|
|
|
|
|
var confirmtext = _confirmtext || false;
|
|
|
|
|
var closeOverlay = _closeOverlay || false;
|
|
|
|
|
var action = _action || "";
|
|
|
|
|
var currentMarkedLinklistRow = jQuery('.linklist_active', jQuery('#' + dc.current_formname));
|
|
|
|
|
var customFormData = _customFormData || false;
|
|
|
|
|
|
|
|
|
|
// variable zum pruefen ob in einer linkliste ein element markiert wurde
|
|
|
|
|
var load_without_check = _load_without_check || false;
|
|
|
|
|
|
|
|
|
|
// wenn ein listenelement markiert werden MUSS und keins markiert ist, dann nichts machen
|
|
|
|
|
if (load_without_check === false) {
|
|
|
|
|
if (dc.current_linklist === null || currentMarkedLinklistRow.length <= 0) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// wenn bestaetigungstext vorhanden ist user auf Abbrechen klickt, dann return
|
|
|
|
|
if (confirmtext !== false && confirmtext != "") {
|
|
|
|
|
if (!confirm(confirmtext)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Wenn listenelement martkiert ist, dann die inputid uebergeben
|
|
|
|
|
if (currentMarkedLinklistRow.length > 0) {
|
|
|
|
|
var input_id = currentMarkedLinklistRow.data('inputid');
|
|
|
|
|
jQuery('input.selected_linklist_row', jQuery('#' + dc.current_formname)).val(input_id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// wird benoetigt damit die Inhalte des fckeditors uebertragen werden koennen
|
|
|
|
|
for (instance in CKEDITOR.instances) {
|
|
|
|
|
CKEDITOR.instances[instance].updateElement();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// heller overlay ueber die ganze seite wird erstellt
|
|
|
|
|
createOverlay();
|
|
|
|
|
|
|
|
|
|
// loader wird engezeigt
|
|
|
|
|
jQuery('#overlayLoader').show();
|
|
|
|
|
|
|
|
|
|
// Sammeln von formulardaten
|
|
|
|
|
if (customFormData !== false) {
|
|
|
|
|
formData2 = customFormData;
|
|
|
|
|
} else {
|
|
|
|
|
var formData2 = new FormData($('#' + dc.current_formname)[0]);
|
|
|
|
|
if (currentMarkedLinklistRow.length > 0) {
|
|
|
|
|
$.each(currentMarkedLinklistRow.data(), function(idx, el) {
|
|
|
|
|
formData2.append("data-" + idx, el);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (closeOverlay === true) {
|
|
|
|
|
formData2.append("force_close", 1);
|
|
|
|
|
} else {
|
|
|
|
|
formData2.append("force_close", 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// AJAX POST request abschicken. Formulardaten werden mit HTML5 FormData gesammelt und verschickt.
|
|
|
|
|
// Dadurch ist es moeglich auch Dateien zu ubertragen (Bildupload moeglich).
|
|
|
|
|
// Fuer den Dateiupload muessen die variablen processData, cache und contentType auf false gesetzt werden
|
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: "?action=" + action,
|
|
|
|
|
type: 'POST',
|
|
|
|
|
data: formData2,
|
|
|
|
|
mimeType: "multipart/form-data",
|
|
|
|
|
cache: false,
|
|
|
|
|
processData: false, // Don't process the files
|
|
|
|
|
contentType: false, // Set content type to false as jQuery will tell the server its a query string request
|
|
|
|
|
success: function(output, status, xhr) {
|
|
|
|
|
if (xhr.getResponseHeader('REQUIRES_AUTH') == 1) {
|
|
|
|
|
window.location.replace("/mysyde/");
|
|
|
|
|
} else {
|
|
|
|
|
if (closeOverlay === true && xhr.getResponseHeader('EDIT_ERROR') != 1) {
|
|
|
|
|
|
|
|
|
|
disableOverlay();
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
jQuery('#overlayContent').html(output);
|
|
|
|
|
jQuery('#overlayLoader').hide();
|
|
|
|
|
jQuery('#overlayContent').show();
|
|
|
|
|
if ($('#input_collection_id_frontend').length > 0) {
|
|
|
|
|
// The input field with ID 'inputId' exists
|
|
|
|
|
var inputValue = $('#input_collection_id_frontend').val();
|
|
|
|
|
if (inputValue != null && inputValue != undefined && inputValue.trim() != '') {
|
|
|
|
|
var currentUrl = window.location.href;
|
|
|
|
|
var parameterName = 'mian_collection_id';
|
|
|
|
|
|
|
|
|
|
// Check if the parameter already exists in the URL
|
|
|
|
|
if (currentUrl.indexOf(parameterName) !== -1) {
|
|
|
|
|
// Update the value of the parameter
|
|
|
|
|
var regex = new RegExp('(' + parameterName + '=)([^&]+)');
|
|
|
|
|
var newUrl = currentUrl.replace(regex, '$1' + inputValue);
|
|
|
|
|
} else {
|
|
|
|
|
// Append the new parameter to the URL
|
|
|
|
|
var newUrl = currentUrl + (currentUrl.indexOf('?') !== -1 ? '&' : '?') + parameterName + '=' + inputValue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Reload the page with the updated URL
|
|
|
|
|
window.location.href = newUrl;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
initForm();
|
|
|
|
|
initLinklist();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
error: function(jqXHR, textStatus, errorThrown) {
|
|
|
|
|
//console.log('ERRORS: ' + textStatus);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
function loadCard(_action, _load_without_check, _confirmtext, _closeOverlay, _customFormData) {
|
|
|
|
|
var confirmtext = _confirmtext || false;
|
|
|
|
|
var closeOverlay = _closeOverlay || false;
|
|
|
|
|
var action = _action || "";
|
|
|
|
|
var currentMarkedLinklistRow = jQuery('.linklist_active', jQuery('#' + dc.current_formname));
|
|
|
|
|
var customFormData = _customFormData || false;
|
|
|
|
|
|
|
|
|
|
// variable zum pruefen ob in einer linkliste ein element markiert wurde
|
|
|
|
|
var load_without_check = _load_without_check || false;
|
|
|
|
|
|
|
|
|
|
// wenn ein listenelement markiert werden MUSS und keins markiert ist, dann nichts machen
|
|
|
|
|
if (load_without_check === false) {
|
|
|
|
|
if (dc.current_linklist === null || currentMarkedLinklistRow.length <= 0) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// wenn bestaetigungstext vorhanden ist user auf Abbrechen klickt, dann return
|
|
|
|
|
if (confirmtext !== false && confirmtext != "") {
|
|
|
|
|
if (!confirm(confirmtext)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Wenn listenelement martkiert ist, dann die inputid uebergeben
|
|
|
|
|
if (currentMarkedLinklistRow.length > 0) {
|
|
|
|
|
var input_id = currentMarkedLinklistRow.data('inputid');
|
|
|
|
|
jQuery('input.selected_linklist_row', jQuery('#' + dc.current_formname)).val(input_id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// wird benoetigt damit die Inhalte des fckeditors uebertragen werden koennen
|
|
|
|
|
for (instance in CKEDITOR.instances) {
|
|
|
|
|
CKEDITOR.instances[instance].updateElement();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// heller overlay ueber die ganze seite wird erstellt
|
|
|
|
|
createOverlay();
|
|
|
|
|
|
|
|
|
|
// loader wird engezeigt
|
|
|
|
|
jQuery('#overlayLoader').show();
|
|
|
|
|
|
|
|
|
|
// Sammeln von formulardaten
|
|
|
|
|
if (customFormData !== false) {
|
|
|
|
|
formData2 = customFormData;
|
|
|
|
|
} else {
|
|
|
|
|
var formData2 = new FormData($('#' + dc.current_formname)[0]);
|
|
|
|
|
if (currentMarkedLinklistRow.length > 0) {
|
|
|
|
|
$.each(currentMarkedLinklistRow.data(), function(idx, el) {
|
|
|
|
|
formData2.append("data-" + idx, el);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (closeOverlay === true) {
|
|
|
|
|
formData2.append("force_close", 1);
|
|
|
|
|
} else {
|
|
|
|
|
formData2.append("force_close", 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// AJAX POST request abschicken. Formulardaten werden mit HTML5 FormData gesammelt und verschickt.
|
|
|
|
|
// Dadurch ist es moeglich auch Dateien zu ubertragen (Bildupload moeglich).
|
|
|
|
|
// Fuer den Dateiupload muessen die variablen processData, cache und contentType auf false gesetzt werden
|
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: "?action=" + action,
|
|
|
|
|
type: 'POST',
|
|
|
|
|
data: formData2,
|
|
|
|
|
mimeType: "multipart/form-data",
|
|
|
|
|
cache: false,
|
|
|
|
|
processData: false, // Don't process the files
|
|
|
|
|
contentType: false, // Set content type to false as jQuery will tell the server its a query string request
|
|
|
|
|
success: function(output, status, xhr) {
|
|
|
|
|
if (xhr.getResponseHeader('REQUIRES_AUTH') == 1) {
|
|
|
|
|
window.location.replace("/mysyde/");
|
|
|
|
|
} else {
|
|
|
|
|
if (closeOverlay === true && xhr.getResponseHeader('EDIT_ERROR') != 1) {
|
|
|
|
|
|
|
|
|
|
disableOverlay();
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
jQuery('#overlayContent').html(output);
|
|
|
|
|
jQuery('#overlayLoader').hide();
|
|
|
|
|
jQuery('#overlayContent').show();
|
|
|
|
|
|
|
|
|
|
initForm();
|
|
|
|
|
initLinklist();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
error: function(jqXHR, textStatus, errorThrown) {
|
|
|
|
|
//console.log('ERRORS: ' + textStatus);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
// custom selector
|
|
|
|
|
/* When the user clicks on the button,
|
|
|
|
|
toggle between hiding and showing the dropdown content */
|
|
|
|
|
function myFunction(counter) {
|
|
|
|
|
document.getElementById("myDropdown" + counter).classList.toggle("show");
|
|
|
|
|
// $('.contentSection').hide();
|
|
|
|
|
// document.getElementsByClassName('contentSection')[0].style.display = 'none';
|
|
|
|
|
|
|
|
|
|
console.log("myDropdown" + counter);
|
|
|
|
|
}
|
|
|
|
|
|
2026-05-11 08:54:44 +02:00
|
|
|
function openGallery(input_id, image_id, type, select_mode){
|
2026-02-17 14:56:23 +01:00
|
|
|
var currentDate = new Date();
|
|
|
|
|
var unixTimestamp = Math.floor(currentDate.getTime() / 1000);
|
2026-05-11 08:54:44 +02:00
|
|
|
var selectionMode = select_mode || '';
|
|
|
|
|
|
|
|
|
|
if (selectionMode !== 'single' && selectionMode !== 'multi') {
|
|
|
|
|
selectionMode = (type === 'filegallery') ? 'single' : 'multi';
|
|
|
|
|
}
|
2026-02-17 14:56:23 +01:00
|
|
|
|
2026-05-11 08:54:44 +02:00
|
|
|
var popupURL = '/components/files/filegallery_content.inc.php?input_id='+input_id+'&image_id='+image_id+'&type='+type+'&select_mode='+selectionMode+'&time='+unixTimestamp;
|
2026-02-17 14:56:23 +01:00
|
|
|
var popup = window.open(popupURL, 'Popup-Fenster', 'width=1080,height=720');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function delete_collection_image(input_id, image_id){
|
|
|
|
|
document.getElementById(input_id).value = "";
|
|
|
|
|
document.getElementById(image_id).src = "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Close the dropdown if the user clicks outside of it
|
|
|
|
|
window.onclick = function(event) {
|
|
|
|
|
|
|
|
|
|
if (!event.target.matches('.dropbtn')) {
|
|
|
|
|
|
|
|
|
|
var dropdowns = document.getElementsByClassName("dropdown-content");
|
|
|
|
|
var i;
|
|
|
|
|
for (i = 0; i < dropdowns.length; i++) {
|
|
|
|
|
var openDropdown = dropdowns[i];
|
|
|
|
|
if (openDropdown.classList.contains('show')) {
|
|
|
|
|
openDropdown.classList.remove('show');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// custom selector
|
|
|
|
|
|
|
|
|
|
function openTab(evt, cityName) {
|
|
|
|
|
var i, tabcontent, tablinks;
|
|
|
|
|
tabcontent = document.getElementsByClassName("tabcontent");
|
|
|
|
|
for (i = 0; i < tabcontent.length; i++) {
|
|
|
|
|
tabcontent[i].style.display = "none";
|
|
|
|
|
}
|
|
|
|
|
tabcontentSection = document.getElementsByClassName("tabcontentSection");
|
|
|
|
|
for (i = 0; i < tabcontentSection.length; i++) {
|
|
|
|
|
tabcontentSection[i].style.display = "none";
|
|
|
|
|
}
|
|
|
|
|
tablinks = document.getElementsByClassName("tablinks");
|
|
|
|
|
for (i = 0; i < tablinks.length; i++) {
|
|
|
|
|
tablinks[i].className = tablinks[i].className.replace(" active", "");
|
|
|
|
|
}
|
|
|
|
|
document.getElementById(cityName).style.display = "block";
|
|
|
|
|
evt.currentTarget.className += " active";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function openSection(evt, cityName) {
|
|
|
|
|
var i, tabcontent, tablinks;
|
|
|
|
|
tabcontent = document.getElementsByClassName("tabcontentSection");
|
|
|
|
|
for (i = 0; i < tabcontent.length; i++) {
|
|
|
|
|
tabcontent[i].style.display = "none";
|
|
|
|
|
}
|
|
|
|
|
tablinks = document.getElementsByClassName("tablinksSection");
|
|
|
|
|
for (i = 0; i < tablinks.length; i++) {
|
|
|
|
|
tablinks[i].className = tablinks[i].className.replace(" active", "");
|
|
|
|
|
}
|
|
|
|
|
document.getElementById(cityName).style.display = "block";
|
|
|
|
|
evt.currentTarget.className += " active";
|
|
|
|
|
}
|