/** * Navigation-Editor * Stellt die Funktionalität für die Bearbeitung der Navigations-Struktur zur Verfügung * * Created by CS medien- & kommunikationssysteme. * @author Christian Steinle * @date 06.10.2016 * * @copyright CS medien- & kommunikationssysteme (http://www.steinle-computer.de) */ var Navigation = { structureHtml: '', chosenNavID: 0, chosenNavPath: [], chosenBreadCrumb: '', /** * jQuery-Variablen des Navigations-Editors */ structureElement: null, moveStructureElement: null, breadCrumbElement: null, tokenElement: null, buttonEditElement: null, buttonSortElement: null, buttonMoveElement: null, buttonChildElement: null, buttonSiblingElement: null, init: function () { Navigation.initElements(); Navigation.initIconFunctions(); }, initElements: function () { Navigation.structureElement = $('#csEditorStructure'); Navigation.moveStructureElement = $('#csEditorMoveStructure'); Navigation.breadCrumbElement = $('.csEditorBreadCrumb'); Navigation.buttonEditElement = $('.formEdit'); Navigation.buttonSortElement = $('.formSort'); Navigation.buttonMoveElement = $('.formMove'); Navigation.buttonChildElement = $('.formChild'); Navigation.buttonSiblingElement = $('.formSibling'); }, initIconFunctions: function () { Navigation.structureElement.on('click', '.glyphicon-folder-close', function () { $(this).removeClass('glyphicon-folder-close').addClass('glyphicon-folder-open'); $(this).parent('li').removeClass('csEditorClosed').addClass('csEditorOpen'); }); Navigation.structureElement.on('click', '.glyphicon-folder-open', function (event) { if (event.target !== this) { return true; } $(this).removeClass('glyphicon-folder-open').addClass('glyphicon-folder-close'); $(this).parent('li').removeClass('csEditorOpen').addClass('csEditorClosed'); }); Navigation.structureElement.on('click', 'li', function () { if (event.target !== this) { return true; } $('li', Navigation.structureElement).removeClass('csEditorChosen'); $(this).addClass('csEditorChosen'); $(this).parents('li').addClass('csEditorChosen'); Navigation.setChosenElements(this); }); Navigation.moveStructureElement.on('click', '.glyphicon-folder-close', function () { $(this).removeClass('glyphicon-folder-close').addClass('glyphicon-folder-open'); $(this).parent('li').removeClass('csEditorClosed').addClass('csEditorOpen'); }); Navigation.moveStructureElement.on('click', '.glyphicon-folder-open', function (event) { if (event.target !== this) { return true; } $(this).removeClass('glyphicon-folder-open').addClass('glyphicon-folder-close'); $(this).parent('li').removeClass('csEditorOpen').addClass('csEditorClosed'); }); Navigation.moveStructureElement.on('click', 'li:not(.csEditorNotEditable)', function () { if (event.target !== this) { return true; } var navStart = $(this).data('navstart'); var navID = $(this).data('navid'); if (navID !== 0) { var actualNavElement = CS.editorData['navStart_' + navStart]['navID_' + navID]; } else { var actualNavElement = {navName: '/'}; } var maxNavSort = 0; if (CS.editorData['navStart_' + navID] != undefined) { $.each(CS.editorData['navStart_' + navID], function (key, navPoint) { maxNavSort = Math.max(navPoint.navSort, maxNavSort); }); ++maxNavSort; } $('.moveSubmit').show(); $('li', Navigation.moveStructureElement).removeClass('csEditorChosen'); $(this).addClass('csEditorChosen'); $("input[name='navStart']", $('.moveFields')).val(navID); $("input[name='navSort']", $('.moveFields')).val(maxNavSort); $('#csEditorMoveToItem').html(actualNavElement['navName']); }) }, fillEditorContent: function () { if (CS.editorData === null || CS.editorHtml === '') { window.setTimeout('Navigation.fillEditorContent()', 50); return true; } Navigation.init(); Navigation.chosenNavID = csEditorParams.navID; Navigation.chosenNavPath = csEditorParams.navigationPath; Navigation.buildStructureHtml(0); Navigation.structureElement.html(Navigation.structureHtml); Navigation.breadCrumbElement.html(Navigation.chosenBreadCrumb); Navigation.fillForm(); }, buildStructureHtml: function (navStart) { var actualNavStartElements = CS.editorData['navStart_' + navStart]; if (navStart === 0) { Navigation.structureHtml += '