/** * * You can write your JS code here, DO NOT touch the default style file * because it will make it harder for you to update. * */ (function ($) { "use strict"; var datefilter = $('.datefilter'); datefilter.daterangepicker({ singleDatePicker: true, timePicker: false, autoUpdateInput: false, locale: { cancelLabel: 'Clear' } }); datefilter.on('apply.daterangepicker', function (ev, picker) { $(this).val(picker.startDate.format('YYYY-MM-DD')); }); datefilter.on('cancel.daterangepicker', function (ev, picker) { $(this).val(''); }); $('body').on('click', '.admin-file-manager', function (e) { e.preventDefault(); $(this).filemanager('file', {prefix: '/laravel-filemanager'}) }); $('body').on('click', '.admin-file-view', function (e) { e.preventDefault(); var input = $(this).attr('data-input'); var img_src = $('#' + input).val(); $('#fileViewModal').find('img').attr('src', img_src); $('#fileViewModal').modal('show'); }); // ******************************************** // ******************************************** // date & time piker window.resetDatePickers = () => { if (jQuery().daterangepicker) { const $dateRangePicker = $('.date-range-picker'); const format1 = $dateRangePicker.attr('data-format') ?? 'YYYY-MM-DD'; const timepicker1 = !!$dateRangePicker.attr('data-timepicker'); const drops1 = $dateRangePicker.attr('data-drops') ?? 'down'; $dateRangePicker.daterangepicker({ locale: { format: format1, cancelLabel: 'Clear' }, drops: drops1, autoUpdateInput: false, timePicker: timepicker1, timePicker24Hour: true, opens: 'right' }); $dateRangePicker.on('apply.daterangepicker', function (ev, picker) { $(this).val(picker.startDate.format(format1) + ' - ' + picker.endDate.format(format1)); }); $dateRangePicker.on('cancel.daterangepicker', function (ev, picker) { $(this).val(''); }); const $datetimepicker = $('.datetimepicker'); const format2 = $datetimepicker.attr('data-format') ?? 'YYYY-MM-DD HH:mm'; const drops2 = $datetimepicker.attr('data-drops') ?? 'down'; $datetimepicker.daterangepicker({ locale: { format: format2, cancelLabel: 'Clear' }, singleDatePicker: true, timePicker: true, timePicker24Hour: true, autoUpdateInput: false, drops: drops2, }); $datetimepicker.on('apply.daterangepicker', function (ev, picker) { $(this).val(picker.startDate.format('YYYY-MM-DD HH:mm')); }); $datetimepicker.on('cancel.daterangepicker', function (ev, picker) { $(this).val(''); }); const $datepicker = $('.datepicker'); const drops3 = $datepicker.attr('data-drops') ?? 'down'; $datepicker.daterangepicker({ locale: { format: 'YYYY-MM-DD', cancelLabel: 'Clear' }, singleDatePicker: true, timePicker: false, autoUpdateInput: false, drops: drops3, }); $datepicker.on('apply.daterangepicker', function (ev, picker) { $(this).val(picker.startDate.format('YYYY-MM-DD')); }); $datepicker.on('cancel.daterangepicker', function (ev, picker) { $(this).val(''); }); } }; resetDatePickers(); // Timepicker if (jQuery().timepicker) { $(".setTimepicker").each(function (key, item) { $(item).timepicker({ icons: { up: 'fa fa-chevron-up', down: 'fa fa-chevron-down' }, showMeridian: false, }); }) } // ******************************************** // ******************************************** // select 2 window.resetSelect2 = () => { if (jQuery().select2) { $(".select2").select2({ placeholder: $(this).data('placeholder'), allowClear: true, width: '100%', }); } }; resetSelect2(); // ******************************************** // ******************************************** // inputtags if (jQuery().tagsinput) { var input_tags = $('.inputtags'); input_tags.tagsinput({ tagClass: 'badge badge-primary', maxTags: (input_tags.data('max-tag') ? input_tags.data('max-tag') : 10), }); } function handleItemTranslations(translations, defaultLocale, column = "title") { let text = null; if (Object.keys(translations).length) { Object.keys(translations).forEach(key => { const translation = translations[key]; if (translation.locale === defaultLocale) { text = translation[column] } }) if (!text) { text = translations[0][column] } } return text; } window.handleSearchableSelect2 = function (className, path, itemColumn) { const $els = $('.' + className); if ($els.length) { for (const el of $els) { const $el = $(el); $el.select2({ placeholder: $el.attr('data-placeholder'), minimumInputLength: 3, allowClear: true, ajax: { url: path, dataType: 'json', type: "POST", quietMillis: 50, data: function (params) { return { term: params.term, option: $el.attr('data-search-option'), }; }, processResults: function (data) { return { results: $.map(data, function (item) { return { text: item[itemColumn], id: item.id }; }) }; } } }); } } }; $(document).ready(function () { handleSearchableSelect2('search-user-select2', adminPanelPrefix + '/users/search', 'name'); handleSearchableSelect2('search-user-select22', adminPanelPrefix + '/users/search', 'name'); handleSearchableSelect2('search-webinar-select2', adminPanelPrefix + '/webinars/search', 'title'); handleSearchableSelect2('search-bundle-select2', adminPanelPrefix + '/bundles/search', 'title'); handleSearchableSelect2('search-forum-topic-select2', adminPanelPrefix + '/forums/topics/search', 'title'); handleSearchableSelect2('search-product-select2', adminPanelPrefix + '/store/products/search', 'title'); handleSearchableSelect2('search-category-select2', adminPanelPrefix + '/categories/search', 'title'); handleSearchableSelect2('search-blog-select2', adminPanelPrefix + '/blog/search', 'title'); handleSearchableSelect2('search-upcoming-course-select2', adminPanelPrefix + '/upcoming_courses/search', 'title'); var datefilter = $('.datefilter'); datefilter.daterangepicker({ singleDatePicker: true, timePicker: false, autoUpdateInput: false, locale: { cancelLabel: 'Clear' } }); datefilter.on('apply.daterangepicker', function (ev, picker) { $(this).val(picker.startDate.format('YYYY-MM-DD')); }); datefilter.on('cancel.daterangepicker', function (ev, picker) { $(this).val(''); }); const sidebar_nicescroll = $(".main-sidebar").getNiceScroll(); if (typeof sidebar_nicescroll !== "undefined" && sidebar_nicescroll.length) { const $active = $('.nav-item.active'); if ($active && $active.length) { sidebar_nicescroll.doScrollPos(0, ($active.position().top - 100)); } } }); // Define LFM summernote button if (jQuery().summernote) { makeSummernote($(".summernote")) } $('body').on('change', '.js-edit-content-locale', function (e) { const val = $(this).val(); if (val) { var url = window.location.origin + window.location.pathname; url += (url.indexOf('?') > -1) ? '&' : '?'; url += 'locale=' + val; window.location.href = url; } }); var $colorpickerinput = $(".colorpickerinput"); if ($colorpickerinput.length) { var colorpickerinputFormat = $colorpickerinput.attr('data-format') ?? 'hex'; $colorpickerinput.colorpicker({ format: colorpickerinputFormat, component: '.input-group-append', }); } $.fn.serializeObject = function () { var o = {}; var a = this.serializeArray(); $.each(a, function () { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; }; window.serializeObjectByTag = (tagId) => { var o = {}; var a = tagId.find('input, textarea, select').serializeArray(); $.each(a, function () { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; }; // // delete sweet alert $('body').on('click', '.delete-action', function (e) { e.preventDefault(); e.stopPropagation(); const href = $(this).attr('href'); const title = $(this).attr('data-title') ?? deleteAlertHint; const confirm = $(this).attr('data-confirm') ?? deleteAlertConfirm; var html = '
' + title + '
\n' + '