function getURLVar(key) { var value = []; var query = String(document.location).split('?'); if (query[1]) { var part = query[1].split('&'); for (i = 0; i < part.length; i++) { var data = part[i].split('='); if (data[0] && data[1]) { value[data[0]] = data[1]; } } if (value[key]) { return value[key]; } else { return ''; } } } $(document).ready(function() { //Form Submit for IE Browser $('button[type=\'submit\']').on('click', function() { $("form[id*='form-']").submit(); }); // Highlight any found errors $('.text-danger').each(function() { var element = $(this).parent().parent(); if (element.hasClass('form-group')) { element.addClass('has-error'); } }); // Set last page opened on the menu $('#menu a[href]').on('click', function() { sessionStorage.setItem('menu', $(this).attr('href')); }); if (!sessionStorage.getItem('menu')) { $('#menu #dashboard').addClass('active'); } else { // Sets active and open to selected page in the left column menu. $('#menu a[href=\'' + sessionStorage.getItem('menu') + '\']').parents('li').addClass('active open'); } if (localStorage.getItem('column-left') == 'active') { $('#button-menu i').replaceWith(''); $('#column-left').addClass('active'); // Slide Down Menu $('#menu li.active').has('ul').children('ul').addClass('collapse in'); $('#menu li').not('.active').has('ul').children('ul').addClass('collapse'); } else { $('#button-menu i').replaceWith(''); $('#menu li li.active').has('ul').children('ul').addClass('collapse in'); $('#menu li li').not('.active').has('ul').children('ul').addClass('collapse'); } // Menu button $('#button-menu').on('click', function() { // Checks if the left column is active or not. if ($('#column-left').hasClass('active')) { localStorage.setItem('column-left', ''); $('#button-menu i').replaceWith(''); $('#column-left').removeClass('active'); $('#menu > li > ul').removeClass('in collapse'); $('#menu > li > ul').removeAttr('style'); } else { localStorage.setItem('column-left', 'active'); $('#button-menu i').replaceWith(''); $('#column-left').addClass('active'); // Add the slide down to open menu items $('#menu li.open').has('ul').children('ul').addClass('collapse in'); $('#menu li').not('.open').has('ul').children('ul').addClass('collapse'); } }); // Menu $('#menu').find('li').has('ul').children('a').on('click', function() { if ($('#column-left').hasClass('active')) { $(this).parent('li').toggleClass('open').children('ul').collapse('toggle'); $(this).parent('li').siblings().removeClass('open').children('ul.in').collapse('hide'); } else if (!$(this).parent().parent().is('#menu')) { $(this).parent('li').toggleClass('open').children('ul').collapse('toggle'); $(this).parent('li').siblings().removeClass('open').children('ul.in').collapse('hide'); } }); // Override summernotes image manager $('button[data-event=\'showImageDialog\']').attr('data-toggle', 'image').removeAttr('data-event'); $(document).delegate('button[data-toggle=\'image\']', 'click', function() { $('#modal-image').remove(); $(this).parents('.note-editor').find('.note-editable').focus(); $.ajax({ url: 'index.php?route=common/filemanager&token=' + getURLVar('token'), dataType: 'html', beforeSend: function() { $('#button-image i').replaceWith(''); $('#button-image').prop('disabled', true); }, complete: function() { $('#button-image i').replaceWith(''); $('#button-image').prop('disabled', false); }, success: function(html) { $('body').append(' '); $('#modal-image').modal('show'); } }); }); // Image Manager $(document).delegate('a[data-toggle=\'image\']', 'click', function(e) { e.preventDefault(); $('.popover').popover('hide', function() { $('.popover').remove(); }); var element = this; $(element).popover({ html: true, placement: 'right', trigger: 'manual', content: function() { return ' '; } }); $(element).popover('show'); $('#button-image').on('click', function() { $('#modal-image').remove(); $.ajax({ url: 'index.php?route=common/filemanager&token=' + getURLVar('token') + '&target=' + $(element).parent().find('input').attr('id') + '&thumb=' + $(element).attr('id'), dataType: 'html', beforeSend: function() { $('#button-image i').replaceWith(''); $('#button-image').prop('disabled', true); }, complete: function() { $('#button-image i').replaceWith(''); $('#button-image').prop('disabled', false); }, success: function(html) { $('body').append(' '); $('#modal-image').modal('show'); } }); $(element).popover('hide', function() { $('.popover').remove(); }); }); $('#button-clear').on('click', function() { $(element).find('img').attr('src', $(element).find('img').attr('data-placeholder')); $(element).parent().find('input').attr('value', ''); $(element).popover('hide', function() { $('.popover').remove(); }); }); }); // tooltips on hover $('[data-toggle=\'tooltip\']').tooltip({container: 'body', html: true}); // Makes tooltips work on ajax generated content $(document).ajaxStop(function() { $('[data-toggle=\'tooltip\']').tooltip({container: 'body'}); }); // https://github.com/opencart/opencart/issues/2595 $.event.special.remove = { remove: function(o) { if (o.handler) { o.handler.apply(this, arguments); } } } $('[data-toggle=\'tooltip\']').on('remove', function() { $(this).tooltip('destroy'); }); }); // Autocomplete */ (function($) { $.fn.autocomplete = function(option) { return this.each(function() { this.timer = null; this.items = new Array(); $.extend(this, option); $(this).attr('autocomplete', 'off'); // Focus $(this).on('focus', function() { this.request(); }); // Blur $(this).on('blur', function() { setTimeout(function(object) { object.hide(); }, 200, this); }); // Keydown $(this).on('keydown', function(event) { switch(event.keyCode) { case 27: // escape this.hide(); break; default: this.request(); break; } }); // Click this.click = function(event) { event.preventDefault(); value = $(event.target).parent().attr('data-value'); if (value && this.items[value]) { this.select(this.items[value]); } } // Show this.show = function() { var pos = $(this).position(); $(this).siblings('ul.dropdown-menu').css({ top: pos.top + $(this).outerHeight(), left: pos.left }); $(this).siblings('ul.dropdown-menu').show(); } // Hide this.hide = function() { $(this).siblings('ul.dropdown-menu').hide(); } // Request this.request = function() { clearTimeout(this.timer); this.timer = setTimeout(function(object) { object.source($(object).val(), $.proxy(object.response, object)); }, 200, this); } // Response this.response = function(json) { html = ''; if (json.length) { for (i = 0; i < json.length; i++) { this.items[json[i]['value']] = json[i]; } for (i = 0; i < json.length; i++) { if (!json[i]['category']) { html += '
  • ' + json[i]['label'] + '
  • '; } } // Get all the ones with a categories var category = new Array(); for (i = 0; i < json.length; i++) { if (json[i]['category']) { if (!category[json[i]['category']]) { category[json[i]['category']] = new Array(); category[json[i]['category']]['name'] = json[i]['category']; category[json[i]['category']]['item'] = new Array(); } category[json[i]['category']]['item'].push(json[i]); } } for (i in category) { html += ' '; for (j = 0; j < category[i]['item'].length; j++) { html += '
  •    ' + category[i]['item'][j]['label'] + '
  • '; } } } if (html) { this.show(); } else { this.hide(); } $(this).siblings('ul.dropdown-menu').html(html); } $(this).after(' '); $(this).siblings('ul.dropdown-menu').delegate('a', 'click', $.proxy(this.click, this)); }); } })(window.jQuery);