/home/techb158/immovalet.com/platform/packages/menu/resources/assets/js
NameSizeModeActions
menu.js128910644editdlrm
Edit: /home/techb158/immovalet.com/platform/packages/menu/resources/assets/js/menu.js (12891B)
import sanitizeHTML from 'sanitize-html'; class MenuNestable { constructor() { this.$nestable = $('#nestable'); } setDataItem(target) { target.each((index, el) => { let current = $(el); current.data('id', current.attr('data-id')); current.data('title', current.attr('data-title')); current.data('reference-id', current.attr('data-reference-id')); current.data('reference-type', current.attr('data-reference-type')); current.data('custom-url', current.attr('data-custom-url')); current.data('class', current.attr('data-class')); current.data('target', current.attr('data-target')); }); } updatePositionForSerializedObj(arrayObject) { let result = arrayObject; let that = this; $.each(result, (index, val) => { val.position = index; if (typeof val.children == 'undefined') { val.children = []; } that.updatePositionForSerializedObj(val.children); }); return result; } // Main function to initiate the module init() { let depth = parseInt(this.$nestable.attr('data-depth')); if (depth < 1) { depth = 5; } $('.nestable-menu').nestable({ group: 1, maxDepth: depth, expandBtnHTML: '', collapseBtnHTML: '' }); this.handleNestableMenu(); } handleNestableMenu() { let that = this; // Show node details $(document).on('click', '.dd-item .dd3-content a.show-item-details', event => { event.preventDefault(); let parent = $(event.currentTarget).parent().parent(); $(event.currentTarget).toggleClass('active'); parent.toggleClass('active'); }); // Edit attributes $(document).on('change blur keyup', '.nestable-menu .item-details input[type="text"], .nestable-menu .item-details select', event => { event.preventDefault(); let current = $(event.currentTarget); let parent = current.closest('li.dd-item'); let value = sanitizeHTML(current.val()); let name = sanitizeHTML(current.attr('name')); let old = sanitizeHTML(current.attr('data-old')); parent.attr('data-' + name, value); parent.data(name, value); parent.find('> .dd3-content .text[data-update="' + name + '"]').text(value); if (value.trim() === '') { parent.find('> .dd3-content .text[data-update="' + name + '"]').text(old); } that.setDataItem(that.$nestable.find('> ol.dd-list li.dd-item')); }); // Add nodes $(document).on('click', '.box-links-for-menu .btn-add-to-menu', event => { event.preventDefault(); let current = $(event.currentTarget); let parent = current.parents('.the-box'); let html = ''; if (parent.attr('id') === 'external_link') { let data_type = 'custom-link'; let data_reference_id = 0; let data_title = sanitizeHTML($('#node-title').val()); let data_url = sanitizeHTML($('#node-url').val()); let data_css_class = sanitizeHTML($('#node-css').val()); let data_font_icon = sanitizeHTML($('#node-icon').val()); let data_target = sanitizeHTML($('#target').find('option:selected').val()); let url_html = ''; html += '
  • '; html += '
    '; html += '
    '; html += '' + data_title + ''; html += '' + data_type + ''; html += ''; html += '
    '; html += '
    '; html += '
    '; html += ''; html += url_html; html += ''; html += ''; html += ''; html += '
    '; html += 'Remove'; html += 'Cancel'; html += '
    '; html += '
    '; html += '
    '; html += '
  • '; parent.find('input[type="text"]').val(''); } else { parent.find('.list-item li.active').each((index, el) => { let find_in = $(el).find('> label'); let data_type = sanitizeHTML(find_in.attr('data-reference-type')); let data_reference_id = sanitizeHTML(find_in.attr('data-reference-id')); let data_title = sanitizeHTML(find_in.attr('data-title')); html += '
  • '; html += '
    '; html += '
    '; html += '' + data_title + ''; html += '' + data_type + ''; html += ''; html += '
    '; html += '
    '; html += '
    '; html += ''; html += ''; html += ''; html += ''; html += '
    '; html += 'Remove'; html += 'Cancel'; html += '
    '; html += '
    '; html += '
    '; html += '
  • '; $(el).find('input[type=checkbox]').prop('checked', false); }); } $('.nestable-menu > ol.dd-list').append(html.replace('