(function (window, document, $, undefined) { console.log('wertyz-ui.js started'); let _overlayScrollbarsSettings = { className: "os-theme-light", scrollbars: { autoHide: "leave", autoHideDelay: 300 } }; Wertyz.ui = { bind: function($selector) { $selector.find('.w-select2-input').select2(); $selector.find('.w-select2-ajax-loaded-cities').select2({ ajax: { url: function(params) { return "https://www.wertyz.com/wertyz/find-city/term/" + params.term; }, dataType: 'json', delay: 250, data: '', type: 'POST', timeout: 30000, processResults: function(data, params) { return { results: data, }; }, }, minimumInputLength: 3, templateResult: function(data) { return data.value; }, templateSelection: function(data) { if(data.selected) return data.text; return data.value; } }); //Datatables $selector.find('.wertyz-datatable').each(function(){ var table = $(this); if($.fn.dataTable.isDataTable(table)) { table.DataTable().clear().destroy(); } table.DataTable({ lengthChange: false, info: false, paging: true, drawCallback: function(settings) { Wertyz.ui.bind($(this).find("tbody")); if (settings._iDisplayLength > settings.fnRecordsDisplay()) { $(settings.nTableWrapper).find('.dataTables_paginate').hide(); } }, fixedColumns: true, autoWidth: false, columnDefs: [ { width: "1%", targets: 0 } ], language: { paginate: { first: "Prvá", previous: "Predošlá", next: "Ďalšia", last: "Posledná" }, emptyTable: "Žiadne záznamy", zeroRecords: "Žiadne záznamy vyhovujúce vyhľadávaniu", } }); //Initialize DataTable search var id = table.attr('id'); $('.wertyz-datatable-filter[for="' + id + '"] .w-dt-search').off('keyup').keyup(function(){ table.DataTable().search($(this).val()).draw(); }); }); //Initialize datepickers $selector.find('.wertyz-datepicker').datepicker({ language: 'sk', dateFormat: 'dd.mm.yy' //If changed change format conversion in controller!!! }); } }; let searchRequest; function wertyzSearch(term) { if(typeof term === 'undefined' || term.length < 3) { return; } if(typeof searchRequest !== 'undefined') { searchRequest.abort(); } Wertyz.showLoader($('#wertyz-search')); showWertyzSearchResults(); let url = "https://www.wertyz.com/wertyz/search"; let data = { term: term }; searchRequest = Wertyz.utils.ajax(url, 'GET', data).done(function(data){ let results = $('#wertyz-main-search-results'); if(results.length > 0) { results.html(data); } }).always(function(){ Wertyz.hideLoader($('#wertyz-search')); }); } function showWertyzSearchResults() { $('#wertyz-search').find('.search-field-results').collapse('show'); } function hideWertyzSearchResults() { $('#wertyz-search').find('.search-field-results').collapse('hide'); } function clearWertyzSearchResults() { $('#wertyz-main-search-results').empty(); } //Bindings for UI $(document).ready(function () { //Bind defaults Wertyz.ui.bind($('body')); $('#wertyz-sidebar').overlayScrollbars(_overlayScrollbarsSettings); $('.wertyz-dropdown').each(function () { var container = $(this); var control = container.find('[data-wertyz-dropdown]').first(); if (control === 'undefined') { return; } var parentDropdownAttr = control.attr('data-wertyz-dropdown'); if (parentDropdownAttr === 'undefined' || parentDropdownAttr === '') { return; } container.find('.wertyz-dropdown-content').overlayScrollbars(_overlayScrollbarsSettings); //Hide on outside click $(document).mouseup(function (e) { if (!$(container).is(e.target) && $(container).has(e.target).length === 0) { if (!$(parentDropdownAttr).hasClass('active')) { var submenus = container.find('.wertyz-dropdown-submenu'); if (typeof submenus !== 'undefined') { submenus.find('.wertyz-dropdown-menu').each(function () { $(this).removeClass('active'); }); } } else { $(parentDropdownAttr).removeClass('active'); } } }); control.click(function (e) { e.preventDefault(); if (!$(parentDropdownAttr).hasClass('active')) { $(parentDropdownAttr).addClass('active'); var submenus = container.find('.wertyz-dropdown-submenu'); if (typeof submenus !== 'undefined') { submenus.find('.wertyz-dropdown-menu').each(function () { if ($(this).hasClass('active')) { $(this).removeClass('active'); $(parentDropdownAttr).removeClass('active'); } }); } } else { $(parentDropdownAttr).removeClass('active'); } }); var subcontrols = container.find('[data-wertyz-dropdown-submenu]'); if (typeof subcontrols !== 'undefined') { subcontrols.each(function () { var submenuAttr = $(this).attr('data-wertyz-dropdown-submenu'); if (submenuAttr === 'undefined' || submenuAttr === '') { return; } $(this).click(function (e) { e.preventDefault(); $(parentDropdownAttr).removeClass('active'); $(submenuAttr).addClass('active'); }); var backcontrol = $(submenuAttr).find('.wertyz-dropdown-submenu-back'); if (typeof backcontrol !== 'undefined') { backcontrol.click(function (e) { e.preventDefault(); $(submenuAttr).removeClass('active'); $(parentDropdownAttr).addClass('active'); }); } }); } }); $('#wertyz-sidebar-control').click(function () { var wrap = $('#wertyz-wrap'); if (wrap === 'undefined') { return; } var sidebarCookie = Cookies.getJSON('wsidebar') || {}; if (wrap.hasClass('sidebar-collapsed')) { wrap.removeClass('sidebar-collapsed'); wrap.removeClass('search-bar-collapsed'); sidebarCookie.sidebar = 1; } else { wrap.addClass('sidebar-collapsed'); wrap.addClass('search-bar-collapsed'); hideWertyzSearchResults(); sidebarCookie.sidebar = 0; } Cookies.set('wsidebar', sidebarCookie); console.log(sidebarCookie); }); $('#wsidebar-user-favorite-apps').bind('show.bs.collapse', function () { var sidebarCookie = Cookies.getJSON('wsidebar') || {}; sidebarCookie.favapps = 1; Cookies.set('wsidebar', sidebarCookie); }).bind('hide.bs.collapse', function () { var sidebarCookie = Cookies.getJSON('wsidebar') || {}; sidebarCookie.favapps = 0; Cookies.set('wsidebar', sidebarCookie); }); $('#wsidebar-my-orgs').bind('show.bs.collapse', function () { var sidebarCookie = Cookies.getJSON('wsidebar') || {}; sidebarCookie.myorgs = 1; Cookies.set('wsidebar', sidebarCookie); }).bind('hide.bs.collapse', function () { var sidebarCookie = Cookies.getJSON('wsidebar') || {}; sidebarCookie.myorgs = 0; Cookies.set('wsidebar', sidebarCookie); }); $('#wsidebar-user-organization-apps').bind('show.bs.collapse', function () { var sidebarCookie = Cookies.getJSON('wsidebar') || {}; sidebarCookie.orgapps = 1; Cookies.set('wsidebar', sidebarCookie); }).bind('hide.bs.collapse', function () { var sidebarCookie = Cookies.getJSON('wsidebar') || {}; sidebarCookie.orgapps = 0; Cookies.set('wsidebar', sidebarCookie); }); $('#wsidebar-user-wertyz-apps').bind('show.bs.collapse', function () { var sidebarCookie = Cookies.getJSON('wsidebar') || {}; sidebarCookie.wertyzapps = 1; Cookies.set('wsidebar', sidebarCookie); }).bind('hide.bs.collapse', function () { var sidebarCookie = Cookies.getJSON('wsidebar') || {}; sidebarCookie.wertyzapps = 0; Cookies.set('wsidebar', sidebarCookie); }); $('#wertyz-main-search-submit').parent('form').submit(function (e) { e.preventDefault(); if ($('#wertyz-wrap').hasClass('search-bar-collapsed')) { $('#wertyz-wrap').removeClass('search-bar-collapsed'); $('#wertyz-main-search-input').focus(); } else { var val = $('#wertyz-main-search-input').val(); if (val.length > 0) { wertyzSearch(val.toString()); } else { $('#wertyz-main-search-input').focus(); } } }); $('.wertyz-modal-close-ctl').click(function (e) { $('#wertyz-modal').modal('hide'); }); var lastSearchVal = ''; $('#wertyz-main-search-input').keyup(function () { var val = $(this).val(); if (val === lastSearchVal) { return; } else { lastSearchVal = val; } if (val.length > 0) { wertyzSearch(val.toString()); } else { clearWertyzSearchResults(); hideWertyzSearchResults(); } }).focusin(function (e) { var results = $('#wertyz-main-search-results'); if (typeof results !== 'undefined' && results.children().length > 0) { showWertyzSearchResults(); } }); $('#wertyz-message .wertyz-message-demiss').click(function () { Wertyz.hideWertyzMessage(); }); $('form').each(function(){ Wertyz.utils.formCheck.apply(this); }); $('#wertyz-wrap').on('change', 'form', Wertyz.utils.formCheck); $('#wertyz-wrap').on('keyup', 'form', Wertyz.utils.formCheck); $('#wertyz-application-iframe').on('load', function(){ Wertyz.hideLoader(); }); }); $(document).mouseup(function (e) { var wrap = $('#wertyz-wrap'); if (!$('#wertyz-search').is(e.target) && $('#wertyz-search').has(e.target).length === 0) { if (wrap.hasClass('sidebar-collapsed')) { wrap.addClass('search-bar-collapsed'); } hideWertyzSearchResults(); } }); })(window, document, jQuery);