ronelgon Posted May 15, 2015 Share Posted May 15, 2015 Hello, Iam not able to create new categories or products. But my host are able to create the categories and products at their end. What could be the problem, is it to do with my computer or internet provider? because i host are able to create the categories and another person was able to create. Your advise regarding the issue will be highly appreciatedT hank you Ronnie Link to comment Share on other sites More sharing options...
NemoPS Posted May 15, 2015 Share Posted May 15, 2015 If you mean on the same website, the issue must be of your machine/ip. Are you getting any specific error? Link to comment Share on other sites More sharing options...
ronelgon Posted May 15, 2015 Author Share Posted May 15, 2015 Hello, Thanks for your reply. But am not getting any error. My host asked for IP to check and said they the IP is not blocked. But i can't do some functions at the backend. The links for creating new categories or products at backend are not clickable at all. But my host and another person where able to create the categories and sent me screen shoots. So, if the issue is on my computer,what should i do solve the problem? I have also tried to change ISP but still the same. So, it means the issue is on my computer. Your help will be highly appreciated Thank you Ronnie Link to comment Share on other sites More sharing options...
NemoPS Posted May 16, 2015 Share Posted May 16, 2015 Hard to tell. Which browser are you using? The same they used? The links not being clickable might be due to some kind of overlaying block. Try opening the debug console as well and inspect the links (right click ,inspect element) Link to comment Share on other sites More sharing options...
ronelgon Posted May 16, 2015 Author Share Posted May 16, 2015 Hello, I have done as advised to right click and inspect element. But when i click Debugger and choose "onboarding.js" i get below code ** * 2007-2015 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2015 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ $( document ).ready(function() { $('#onboarding-progress-bar').popover('show'); $('#onboarding-launch').click(function() { $('.gwd-page-container').addClass('gwd-gen-oxd9'); onBoarding.sleep(5400, function() { $('.onboarding .onboarding-steps').hide('normal', function() { validateStep(7); $('.onboarding .final').show('nomal'); $('.quick-start-button').hide(); }); }); }); $('.onboarding-steps a').click(function() { $('.onboarding-steps').animate({top: '-560px'}, 300); }); $('<div class="alert alert-onboarding"></div>').html($('#onboarding-starter')).detach().prependTo('#content'); $('#onboarding-starter').removeClass('hide'); $('.close-button, .continue_editing').click(function() { toggleOnboardingModal(); }); $('#final-button').click(function() { $('.final').animate({top: '-560px'}, 300); $('.overlay').hide(); }); $('.skip').click(function() { validateStep(7); $('.overlay, .alert-onboarding').hide(); }); if (typeof display_onboarding_modal !== 'undefined' && display_onboarding_modal) toggleOnboardingModal(); }); var onBoarding = { sleep : function (time, callback) { setTimeout(function() { callback(); } , time); } } ; function toggleOnboardingModal() { if ($('.onboarding-steps').css('top') === '-560px') $('.onboarding-steps').animate({top: '-3px'}, 300); else $('.onboarding-steps').animate({top: '-560px'}, 300); $('.onboarding').toggleClass('minimized'); } function validateStep(current_step, href) { $.ajax({ type: 'POST', headers: { "cache-control": "no-cache" }, url: onboarding_ajax_url, async: true, cache: false, data: 'controller=AdminOnboarding&ajax=true&action=validate_step¤t_step='+current_step, success: function(result) { if (href) window.location.href = href; } }); } function share_twitter_click(message) { window.open('https://twitter.com/intent/tweet?button_hashtag=PrestaShop&text=' + message, 'sharertwt', 'toolbar=0,status=0,width=640,height=445'); location.reload(); } function share_facebook_click() { window.open('http://www.facebook.com/sharer.php?u=http://www.prestashop.com/', 'sharerfacebook', 'toolbar=0,status=0,width=660,height=445'); location.reload(); } function share_google_click() { window.open('https://plus.google.com/share?url=http://www.prestashop.com/', 'sharergplus', 'toolbar=0,status=0,width=660,height=445'); location.reload(); } function share_linkedin_click() { window.open('https://www.linkedin.com/shareArticle?title=PrestaShop&url=http://www.prestashop.com/download', 'sharerlinkedin', 'toolbar=0,status=0,width=600,height=450'); location.reload(); } And when i choose "tools.js", i get this below var next_digit = Math.floor(val * 10) - 10 * Math.floor(val); if (next_digit >= 5) val = Math.ceil(val); else val = Math.floor(val); return val / mul; } function ps_round(value, places) { if (typeof(roundMode) === 'undefined') roundMode = 2; if (typeof(places) === 'undefined') places = 2; var method = roundMode; if (method === 0) return ceilf(value, places); else if (method === 1) return floorf(value, places); else if (method === 2) return ps_round_half_up(value, places); else if (method == 3 || method == 4 || method == 5) { // From PHP Math.c var precision_places = 14 - Math.floor(ps_log10(Math.abs(value))); var f1 = Math.pow(10, Math.abs(places)); if (precision_places > places && precision_places - places < 15) { var f2 = Math.pow(10, Math.abs(precision_places)); if (precision_places >= 0) tmp_value = value * f2; else tmp_value = value / f2; tmp_value = ps_round_helper(tmp_value, roundMode); /* now correctly move the decimal point */ f2 = Math.pow(10, Math.abs(places - precision_places)); /* because places < precision_places */ tmp_value /= f2; } else { /* adjust the value */ if (places >= 0) tmp_value = value * f1; else tmp_value = value / f1; if (Math.abs(tmp_value) >= 1e15) return value; } tmp_value = ps_round_helper(tmp_value, roundMode); if (places > 0) tmp_value = tmp_value / f1; else tmp_value = tmp_value * f1; return tmp_value; } } function autoUrl(name, dest) { var loc; var id_list; id_list = document.getElementById(name); loc = id_list.options[id_list.selectedIndex].value; if (loc != 0) location.href = dest+loc; return ; } function autoUrlNoList(name, dest) { var loc; loc = document.getElementById(name).checked; location.href = dest + (loc == true ? 1 : 0); return ; } /* ** show or hide element e depending on condition show */ function toggle(e, show) { e.style.display = show ? '' : 'none'; } function toggleMultiple(tab) { var len = tab.length; for (var i = 0; i < len; i++) if (tab[i].style) toggle(tab[i], tab[i].style.display == 'none'); } /** * Show dynamicaly an element by changing the sytle "display" property * depending on the option selected in a select. * * @param string $select_id id of the select who controls the display * @param string $elem_id prefix id of the elements controlled by the select * the real id must be : 'elem_id'+nb with nb the corresponding number in the * select (starting with 0). */ function showElemFromSelect(select_id, elem_id) { var select = document.getElementById(select_id); for (var i = 0; i < select.length; ++i) { var elem = document.getElementById(elem_id + select.options[i].value); if (elem != null) toggle(elem, i == select.selectedIndex); } } /** * Get all div with specified name and for each one (by id), toggle their visibility */ function openCloseAllDiv(name, option) { var tab = $('*[name='+name+']'); for (var i = 0; i < tab.length; ++i) toggle(tab[i], option); } function toggleDiv(name, option) { $('*[name='+name+']').each(function(){ if (option == 'open') { $('#buttonall').data('status', 'close'); $(this).hide(); } else { $('#buttonall').data('status', 'open'); $(this).show(); } }) } function toggleButtonValue(id_button, text1, text2) { if ($('#'+id_button).find('i').first().hasClass('process-icon-compress')) { $('#'+id_button).find('i').first().removeClass('process-icon-compress').addClass('process-icon-expand'); $('#'+id_button).find('span').first().html(text1); } else { $('#'+id_button).find('i').first().removeClass('process-icon-expand').addClass('process-icon-compress'); $('#'+id_button).find('span').first().html(text2); } } /** * Toggle the value of the element id_button between text1 and text2 */ function toggleElemValue(id_button, text1, text2) { var obj = document.getElementById(id_button); if (obj) obj.value = ((!obj.value || obj.value == text2) ? text1 : text2); } function addBookmark(url, title) { if (window.sidebar && window.sidebar.addPanel) return window.sidebar.addPanel(title, url, ""); else if ( window.external && ('AddFavorite' in window.external)) return window.external.AddFavorite( url, title); } function writeBookmarkLink(url, title, text, img) { var insert = ''; if (img) insert = writeBookmarkLinkObject(url, title, '<img src="' + img + '" alt="' + escape(text) + '" title="' + removeQuotes(text) + '" />') + ' '; insert += writeBookmarkLinkObject(url, title, text); if (window.sidebar || window.opera && window.print || (window.external && ('AddFavorite' in window.external))) $('.add_bookmark, #header_link_bookmark').append(insert); } function writeBookmarkLinkObject(url, title, insert) { if (window.sidebar || window.external) return ('<a href="javascript:addBookmark(\'' + escape(url) + '\', \'' + removeQuotes(title) + '\')">' + insert + '</a>'); else if (window.opera && window.print) return ('<a rel="sidebar" href="' + escape(url) + '" title="' + removeQuotes(title) + '">' + insert + '</a>'); return (''); } function checkCustomizations() { var pattern = new RegExp(' ?filled ?'); if (typeof customizationFields != 'undefined') for (var i = 0; i < customizationFields.length; i++) { /* If the field is required and empty then we abort */ if (parseInt(customizationFields[i][1]) == 1 && ($('#' + customizationFields[i][0]).html() == '' || $('#' + customizationFields[i][0]).text() != $('#' + customizationFields[i][0]).val()) && !pattern.test($('#' + customizationFields[i][0]).attr('class'))) return false; } return true; } function emptyCustomizations() { if(typeof(customizationFields) == 'undefined') return; $('.customization_block .success').fadeOut(function(){ $(this).remove(); }); $('.customization_block .error').fadeOut(function(){ $(this).remove(); }); for (var i = 0; i < customizationFields.length; i++) { $('#' + customizationFields[i][0]).html(''); $('#' + customizationFields[i][0]).val(''); } } function ceilf(value, precision) { if (typeof(precision) === 'undefined') precision = 0; var precisionFactor = precision === 0 ? 1 : Math.pow(10, precision); var tmp = value * precisionFactor; var tmp2 = tmp.toString(); if (tmp2[tmp2.length - 1] === 0) return value; return Math.ceil(value * precisionFactor) / precisionFactor; } function floorf(value, precision) { if (typeof(precision) === 'undefined') precision = 0; var precisionFactor = precision === 0 ? 1 : Math.pow(10, precision); var tmp = value * precisionFactor; var tmp2 = tmp.toString(); if (tmp2[tmp2.length - 1] === 0) return value; return Math.floor(value * precisionFactor) / precisionFactor; } function setCurrency(id_currency) { $.ajax({ type: 'POST', headers: { "cache-control": "no-cache" }, url: baseDir + 'index.php' + '?rand=' + new Date().getTime(), data: 'controller=change-currency&id_currency='+ parseInt(id_currency), success: function(msg) { location.reload(true); } }); } function isArrowKey(k_ev) { var unicode=k_ev.keyCode? k_ev.keyCode : k_ev.charCode; if (unicode >= 37 && unicode <= 40) return true; return false; } function removeQuotes(value) { value = value.replace(/\\"/g, ''); value = value.replace(/"/g, ''); value = value.replace(/\\'/g, ''); value = value.replace(/'/g, ''); return value; } function sprintf(format) { for(var i=1; i < arguments.length; i++) format = format.replace(/%s/, arguments[i]); return format; } /** * Display a MessageBox * @param {string} msg * @param {string} title (optional) */ function fancyMsgBox(msg, title) { if (title) msg = "<h2>" + title + "</h2><p>" + msg + "</p>"; msg += "<br/><p class=\"submit\" style=\"text-align:right; padding-bottom: 0\"><input class=\"button\" type=\"button\" value=\"OK\" onclick=\"$.fancybox.close();\" /></p>"; if(!!$.prototype.fancybox) $.fancybox( msg, {'autoDimensions': false, 'autoSize': false, 'width': 500, 'height': 'auto', 'openEffect': 'none', 'closeEffect': 'none'} ); } /** * Display a messageDialog with different buttons including a callback for each one * @param {string} question * @param {mixed} title Optional title for the dialog box. Send false if you don't want any title * @param {object} buttons Associative array containg a list of {buttonCaption: callbackFunctionName, ...}. Use an empty space instead of function name for no callback * @param {mixed} otherParams Optional data sent to the callback function */ function fancyChooseBox(question, title, buttons, otherParams) { var msg, funcName, action; msg = ''; if (title) msg = "<h2>" + title + "</h2><p>" + question + "</p>"; msg += "<br/><p class=\"submit\" style=\"text-align:right; padding-bottom: 0\">"; var i = 0; for (var caption in buttons) { if (!buttons.hasOwnProperty(caption)) continue; funcName = buttons[caption]; if (typeof otherParams == 'undefined') otherParams = 0; otherParams = escape(JSON.stringify(otherParams)); action = funcName ? "$.fancybox.close();window['" + funcName + "'](JSON.parse(unescape('" + otherParams + "')), " + i + ")" : "$.fancybox.close()"; msg += '<button type="submit" class="button btn-default button-medium" style="margin-right: 5px;" value="true" onclick="' + action + '" >'; msg += '<span>' + caption + '</span></button>' i++; } msg += "</p>"; if(!!$.prototype.fancybox) $.fancybox(msg, {'autoDimensions': false, 'width': 500, 'height': 'auto', 'openEffect': 'none', 'closeEffect': 'none'}); } function toggleLayer(whichLayer, flag) { if (!flag) $(whichLayer).hide(); else $(whichLayer).show(); } function openCloseLayer(whichLayer, action) { if (!action) { if ($(whichLayer).css('display') == 'none') $(whichLayer).show(); else $(whichLayer).hide(); } else if (action == 'open') $(whichLayer).show(); else if (action == 'close') $(whichLayer).hide(); } function updateTextWithEffect(jQueryElement, text, velocity, effect1, effect2, newClass) { if(jQueryElement.text() !== text) { if(effect1 === 'fade') jQueryElement.fadeOut(velocity, function(){ $(this).addClass(newClass); if(effect2 === 'fade') $(this).text(text).fadeIn(velocity); else if(effect2 === 'slide') $(this).text(text).slideDown(velocity); else if(effect2 === 'show') $(this).text(text).show(velocity, function(){}); }); else if(effect1 === 'slide') jQueryElement.slideUp(velocity, function(){ $(this).addClass(newClass); if(effect2 === 'fade') $(this).text(text).fadeIn(velocity); else if(effect2 === 'slide') $(this).text(text).slideDown(velocity); else if(effect2 === 'show') $(this).text(text).show(velocity); }); else if(effect1 === 'hide') jQueryElement.hide(velocity, function(){ $(this).addClass(newClass); if(effect2 === 'fade') $(this).text(text).fadeIn(velocity); else if(effect2 === 'slide') $(this).text(text).slideDown(velocity); else if(effect2 === 'show') $(this).text(text).show(velocity); }); } } //show a JS debug function dbg(value) { var active = false;//true for active var firefox = true;//true if debug under firefox if (active) if (firefox) console.log(value); else alert(value); } /** * Function : print_r() * Arguments: The element - array,hash(associative array),object * The limit - OPTIONAL LIMIT * The depth - OPTIONAL * Returns : The textual representation of the array. * This function was inspired by the print_r function of PHP. * This will accept some data as the argument and return a * text that will be a more readable version of the * array/hash/object that is given. */ function print_r(element, limit, depth) { depth = depth?depth:0; limit = limit?limit:1; returnString = '<ol>'; for(property in element) { //Property domConfig isn't accessable if (property != 'domConfig') { returnString += '<li><strong>'+ property + '</strong> <small>(' + (typeof element[property]) +')</small>'; if (typeof element[property] == 'number' || typeof element[property] == 'boolean') returnString += ' : <em>' + element[property] + '</em>'; if (typeof element[property] == 'string' && element[property]) returnString += ': <div style="background:#C9C9C9;border:1px solid black; overflow:auto;"><code>' + element[property].replace(/</g, '<').replace(/>/g, '>') + '</code></div>'; if ((typeof element[property] == 'object') && (depth < limit)) returnString += print_r(element[property], limit, (depth + 1)); returnString += '</li>'; } } returnString += '</ol>'; if(depth == 0) { winpop = window.open("", "","width=800,height=600,scrollbars,resizable"); winpop.document.write('<pre>'+returnString+ '</pre>'); winpop.document.close(); } return returnString; } //verify if value is in the array function in_array(value, array) { for (var i in array) if ((array[i] + '') === (value + '')) return true; return false; } function isCleanHtml(content) { var events = 'onmousedown|onmousemove|onmmouseup|onmouseover|onmouseout|onload|onunload|onfocus|onblur|onchange'; events += '|onsubmit|ondblclick|onclick|onkeydown|onkeyup|onkeypress|onmouseenter|onmouseleave|onerror|onselect|onreset|onabort|ondragdrop|onresize|onactivate|onafterprint|onmoveend'; events += '|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onmove'; events += '|onbounce|oncellchange|oncontextmenu|oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondeactivate|ondrag|ondragend|ondragenter|onmousewheel'; events += '|ondragleave|ondragover|ondragstart|ondrop|onerrorupdate|onfilterchange|onfinish|onfocusin|onfocusout|onhashchange|onhelp|oninput|onlosecapture|onmessage|onmouseup|onmovestart'; events += '|onoffline|ononline|onpaste|onpropertychange|onreadystatechange|onresizeend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onsearch|onselectionchange'; events += '|onselectstart|onstart|onstop'; var script1 = /<[\s]*script/im; var script2 = new RegExp('('+events+')[\s]*=', 'im'); var script3 = /.*script\:/im; var script4 = /<[\s]*(i?frame|embed|object)/im; if (script1.test(content) || script2.test(content) || script3.test(content) || script4.test(content)) return false; return true; } function sleep(milliseconds) { var start = new Date().getTime(); for (var i = 0; i < 1e7; i++) { if ((new Date().getTime() - start) > milliseconds) { break; } } } $(document).ready(function() { // Hide all elements with .hideOnSubmit class when parent form is submit $('form').submit(function() { $(this).find('.hideOnSubmit').hide(); }); $.fn.checkboxChange = function(fnChecked, fnUnchecked) { if ($(this).prop('checked') && fnChecked) fnChecked.call(this); else if(fnUnchecked) fnUnchecked.call(this); if (!$(this).attr('eventCheckboxChange')) { $(this).on('change', function() { $(this).checkboxChange(fnChecked, fnUnchecked); }); $(this).attr('eventCheckboxChange', true); } }; // attribute target="_blank" is not W3C compliant $('a._blank, a.js-new-window').attr('target', '_blank'); And when i choose admin.js, i get this below; var ajax_running_timeout = null; if (!id_language) var id_language = Number(1); function str2url(str, encoding, ucfirst) { str = str.toUpperCase(); str = str.toLowerCase(); if (PS_ALLOW_ACCENTED_CHARS_URL) str = str.replace(/[^a-z0-9\s\'\:\/\[\]-]\\u00A1-\\uFFFF/g,''); else { /* Lowercase */ str = str.replace(/[\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u0101\u0103\u0105\u0430]/g, 'a'); str = str.replace(/[\u0431]/g, 'b'); str = str.replace(/[\u00E7\u0107\u0109\u010D\u0446]/g, 'c'); str = str.replace(/[\u010F\u0111\u0434]/g, 'd'); str = str.replace(/[\u00E8\u00E9\u00EA\u00EB\u0113\u0115\u0117\u0119\u011B\u0435\u044D]/g, 'e'); str = str.replace(/[\u0444]/g, 'f'); str = str.replace(/[\u011F\u0121\u0123\u0433\u0491]/g, 'g'); str = str.replace(/[\u0125\u0127]/g, 'h'); str = str.replace(/[\u00EC\u00ED\u00EE\u00EF\u0129\u012B\u012D\u012F\u0131\u0438\u0456]/g, 'i'); str = str.replace(/[\u0135\u0439]/g, 'j'); str = str.replace(/[\u0137\u0138\u043A]/g, 'k'); str = str.replace(/[\u013A\u013C\u013E\u0140\u0142\u043B]/g, 'l'); str = str.replace(/[\u043C]/g, 'm'); str = str.replace(/[\u00F1\u0144\u0146\u0148\u0149\u014B\u043D]/g, 'n'); str = str.replace(/[\u00F2\u00F3\u00F4\u00F5\u00F6\u00F8\u014D\u014F\u0151\u043E]/g, 'o'); str = str.replace(/[\u043F]/g, 'p'); str = str.replace(/[\u0155\u0157\u0159\u0440]/g, 'r'); str = str.replace(/[\u015B\u015D\u015F\u0161\u0441]/g, 's'); str = str.replace(/[\u00DF]/g, 'ss'); str = str.replace(/[\u0163\u0165\u0167\u0442]/g, 't'); str = str.replace(/[\u00F9\u00FA\u00FB\u00FC\u0169\u016B\u016D\u016F\u0171\u0173\u0443]/g, 'u'); str = str.replace(/[\u0432]/g, 'v'); str = str.replace(/[\u0175]/g, 'w'); str = str.replace(/[\u00FF\u0177\u00FD\u044B]/g, 'y'); str = str.replace(/[\u017A\u017C\u017E\u0437]/g, 'z'); str = str.replace(/[\u00E6]/g, 'ae'); str = str.replace(/[\u0447]/g, 'ch'); str = str.replace(/[\u0445]/g, 'kh'); str = str.replace(/[\u0153]/g, 'oe'); str = str.replace(/[\u0448]/g, 'sh'); str = str.replace(/[\u0449]/g, 'ssh'); str = str.replace(/[\u044F]/g, 'ya'); str = str.replace(/[\u0454]/g, 'ye'); str = str.replace(/[\u0457]/g, 'yi'); str = str.replace(/[\u0451]/g, 'yo'); str = str.replace(/[\u044E]/g, 'yu'); str = str.replace(/[\u0436]/g, 'zh'); /* Uppercase */ str = str.replace(/[\u0100\u0102\u0104\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u0410]/g, 'A'); str = str.replace(/[\u0411]/g, 'B'); str = str.replace(/[\u00C7\u0106\u0108\u010A\u010C\u0426]/g, 'C'); str = str.replace(/[\u010E\u0110\u0414]/g, 'D'); str = str.replace(/[\u00C8\u00C9\u00CA\u00CB\u0112\u0114\u0116\u0118\u011A\u0415\u042D]/g, 'E'); str = str.replace(/[\u0424]/g, 'F'); str = str.replace(/[\u011C\u011E\u0120\u0122\u0413\u0490]/g, 'G'); str = str.replace(/[\u0124\u0126]/g, 'H'); str = str.replace(/[\u0128\u012A\u012C\u012E\u0130\u0418\u0406]/g, 'I'); str = str.replace(/[\u0134\u0419]/g, 'J'); str = str.replace(/[\u0136\u041A]/g, 'K'); str = str.replace(/[\u0139\u013B\u013D\u0139\u0141\u041B]/g, 'L'); str = str.replace(/[\u041C]/g, 'M'); str = str.replace(/[\u00D1\u0143\u0145\u0147\u014A\u041D]/g, 'N'); str = str.replace(/[\u00D3\u014C\u014E\u0150\u041E]/g, 'O'); str = str.replace(/[\u041F]/g, 'P'); str = str.replace(/[\u0154\u0156\u0158\u0420]/g, 'R'); str = str.replace(/[\u015A\u015C\u015E\u0160\u0421]/g, 'S'); str = str.replace(/[\u0162\u0164\u0166\u0422]/g, 'T'); str = str.replace(/[\u00D9\u00DA\u00DB\u00DC\u0168\u016A\u016C\u016E\u0170\u0172\u0423]/g, 'U'); str = str.replace(/[\u0412]/g, 'V'); str = str.replace(/[\u0174]/g, 'W'); str = str.replace(/[\u0176\u042B]/g, 'Y'); str = str.replace(/[\u0179\u017B\u017D\u0417]/g, 'Z'); str = str.replace(/[\u00C6]/g, 'AE'); str = str.replace(/[\u0427]/g, 'CH'); str = str.replace(/[\u0425]/g, 'KH'); str = str.replace(/[\u0152]/g, 'OE'); str = str.replace(/[\u0428]/g, 'SH'); str = str.replace(/[\u0429]/g, 'SHH'); str = str.replace(/[\u042F]/g, 'YA'); str = str.replace(/[\u0404]/g, 'YE'); str = str.replace(/[\u0407]/g, 'YI'); str = str.replace(/[\u0401]/g, 'YO'); str = str.replace(/[\u042E]/g, 'YU'); str = str.replace(/[\u0416]/g, 'ZH'); str = str.toLowerCase(); str = str.replace(/[^a-z0-9\s\'\:\/\[\]-]/g,''); } str = str.replace(/[\u0028\u0029\u0021\u003F\u002E\u0026\u005E\u007E\u002B\u002A\u002F\u003A\u003B\u003C\u003D\u003E]/g, ''); str = str.replace(/[\s\'\:\/\[\]-]+/g, ' '); // Add special char not used for url rewrite str = str.replace(/[ ]/g, '-'); str = str.replace(/[\/\\"'|,;%]*/g, ''); if (ucfirst == 1) { var first_char = str.charAt(0); str = first_char.toUpperCase()+str.slice(1); } return str; } function copy2friendlyURL() { if (typeof(id_product) == 'undefined') id_product = false; if (ps_force_friendly_product || !$('#link_rewrite_' + id_language).val().length || !id_product)//check if user didn't type anything in rewrite field, to prevent overwriting { $('#link_rewrite_' + id_language).val(str2url($('#name_' + id_language).val().replace(/^[0-9]+\./, ''), 'UTF-8').replace('%', '')); if ($('#friendly-url')) $('#friendly-url').html($('#link_rewrite_' + id_language).val()); // trigger onchange event to use anything binded there $('#link_rewrite_' + id_language).change(); } return; } function copyMeta2friendlyURL() { if (!$('input[name="id_cms"]').length) $('#link_rewrite_' + id_language).val(str2url($('#name_' + id_language).val().replace(/^[0-9]+\./, ''), 'UTF-8')); } function updateCurrentText() { $('#current_product').html($('#name_' + id_language).val()); } function updateFriendlyURLByName() { $('#link_rewrite_' + id_language).val(str2url($('#name_' + id_language).val(), 'UTF-8')); $('#friendly-url_' + id_language).html($('#link_rewrite_' + id_language).val()); } function updateFriendlyURL() { var link = $('#link_rewrite_' + id_language); if (link[0]) { $('#friendly-url_' + id_language).text(str2url($('#link_rewrite_' + id_language).val(), 'UTF-8')); } } function updateLinkRewrite() { var link = $('#link_rewrite_' + id_language); if (link[0]) { link.val(str2url($('#link_rewrite_' + id_language).val(), 'UTF-8')); $('#friendly-url_' + id_language).text(link.val()); } } function toggleLanguageFlags(elt) { $(elt).parents('.displayed_flag').siblings('.language_flags').toggle(); } // Kept for retrocompatibility only (out of AdminProducts & AdminCategories) function changeLanguage(field, fieldsString, id_language_new, iso_code) { $('div[id^='+field+'_]').hide(); var fields = fieldsString.split('¤'); for (var i = 0; i < fields.length; ++i) { $('div[id^='+fields[i]+'_]').hide(); $('#'+fields[i]+'_'+id_language_new).show(); $('#'+'language_current_'+fields[i]).attr('src', '../img/l/' + id_language_new + '.jpg'); } $('#languages_' + field).hide(); id_language = id_language_new; } // kept for retrocompatibility - you should use hideOtherLanguage(id) since 1.6 function changeFormLanguage(id_language_new, iso_code, employee_cookie) { $('.translatable').each(function() { $(this).find('.lang_' + id_language_new) .show() .siblings('div:not(.displayed_flag):not(.clear)').hide(); $(this).find('.language_current').attr('src', '../img/l/' + id_language_new + '.jpg'); }); // For multishop checkboxes $('.multishop_lang_'+id_language_new).show().siblings('div[class^=\'multishop_lang_\']').hide(); id_language = id_language_new; changeEmployeeLanguage(); updateCurrentText(); } function displayFlags(languages, defaultLanguageID, employee_cookie) { if ($('.translatable')) { $('.translatable').each(function() { if (!$(this).find('.displayed_flag').length > 0) { $.each(languages, function(key, language) { if (language['id_lang'] == defaultLanguageID) { defaultLanguage = language; return false; } }); var displayFlags = $('<div></div>') .addClass('displayed_flag') .append($('<img>') .addClass('language_current') .addClass('pointer') .attr('src', '../img/l/' + defaultLanguage['id_lang'] + '.jpg') .attr('alt', defaultLanguage['name']) .click(function() { toggleLanguageFlags(this); }) ); var languagesFlags = $('<div></div>') .addClass('language_flags') .html(choose_language_translate+':<br /><br />'); $.each(languages, function(key, language) { var img = $('<img>') .addClass('pointer') .css('margin', '2px 2px') .attr('src', '../img/l/' + language['id_lang'] + '.jpg') .attr('alt', language['name']) .click(function() { changeFormLanguage(language['id_lang'], language['iso_code'], employee_cookie); }); languagesFlags.append(img); }); if ($(this).find('p:last-child').hasClass('clear')) $(this).find('p:last-child').before(displayFlags).before(languagesFlags); else $(this).append(displayFlags).append(languagesFlags); } }); } } function checkAll(pForm) { for (i = 0, n = pForm.elements.length; i < n; i++) { var objName = pForm.elements[i].name; var objType = pForm.elements[i].type; if (objType == 'checkbox' && objName != 'checkme') { box = eval(pForm.elements[i]); box.checked = !box.checked; } } } function checkDelBoxes(pForm, boxName, parent) { for (i = 0; i < pForm.elements.length; i++) if (pForm.elements[i].name == boxName) pForm.elements[i].checked = parent; } function checkPaymentBoxes(name, module) { setPaymentBoxes(name, module); current = $('input#checkedBox_'+ name +'_'+ module + '[type=hidden]'); $('form#form_'+ name +' input[type=checkbox]').each( function() { if ($(this).attr('name') == module + '_' + name + '[]') $(this).attr("checked", ((current.val() == 'checked') ? true : false)); } ); current.val() == 'checked' ? current.val('unchecked') : current.val('checked'); } function setPaymentBoxes(name, module) { current = $('input#checkedBox_'+ name +'_'+ module + '[type=hidden]'); total = 0; checked = 0; $('form#form_'+ name +' input[type=checkbox]').each( function() { if ($(this).attr('name') == module + '_' + name + '[]') { ($(this).attr("checked") ? checked++ : ''); total++; } } ); (checked == total) ? current.val('unchecked') : current.val('checked'); } function getE(name) { if (document.getElementById) var elem = document.getElementById(name); else if (document.all) var elem = document.all[name]; else if (document.layers) var elem = document.layers[name]; return elem; } function formSubmit(e, button) { var key; key = window.event ? window.event.keyCode : e.which; if (key == 13) { getE(button).focus(); getE(button).click(); e.preventDefault(); } } function noComma(elem) { getE(elem).value = getE(elem).value.replace(new RegExp(',', 'g'), '.'); } /* Code generator for Affiliation and vouchers */ function gencode(size) { getE('code').value = ''; /* There are no O/0 in the codes in order to avoid confusion */ var chars = "123456789ABCDEFGHIJKLMNPQRSTUVWXYZ"; for (var i = 1; i <= size; ++i) getE('code').value += chars.charAt(Math.floor(Math.random() * chars.length)); } var tpl_viewing_window = null; function viewTemplates(id_select, lang, ext) { var loc = $(id_select).val(); if (loc != 0) { if (tpl_viewing_window != null && !tpl_viewing_window.closed) tpl_viewing_window.close(); var url_preview = $("option[value="+loc+"]", id_select).data('preview'); tpl_viewing_window = window.open(url_preview + lang + loc + ext, 'tpl_viewing', 'toolbar=0,location=0,directories=0,statfr=no,menubar=0,scrollbars=yes,resizable=yes,width=520,height=400,top=50,left=300'); tpl_viewing_window.focus(); } } function orderDeleteProduct(txtConfirm, txtExplain) { ret = true; $('table#cancelProducts input[type=checkbox]:checked').each( function() { totalCancel = parseInt($(this).parent().parent().find('td.cancelQuantity input[type=text]').val()); totalQty = parseInt($(this).parent().find('input#totalQty[type=hidden]').val()); totalQtyReturn = parseInt($(this).parent().find('input#totalQtyReturn[type=hidden]').val()); productName = $(this).parent().find('input#productName[type=hidden]').val(); totalAvailable = totalQty - totalQtyReturn; if (totalCancel > totalAvailable) { jAlert(txtConfirm + ' : \'' + ' ' + productName + '\' ! \n\n' + txtExplain + ' ('+ totalCancel + ' > ' + totalAvailable +')' + '\n '); ret = false; } } ); return ret; } function selectCheckbox(obj) { $(obj).parent().parent().find('td.cancelCheck input[type=checkbox]').attr("checked", true); } function toggleShippingCost() { generateDiscount = $('#generateDiscount').attr("checked"); generateCreditSlip = $('#generateCreditSlip').attr("checked"); if (generateDiscount != 'checked' && generateCreditSlip != 'checked') { $('#spanShippingBack input[type=checkbox]').attr("checked", false); $('#spanShippingBack').css('display', 'none'); } else $('#spanShippingBack').css('display', 'block'); } function orderOverwriteMessage(sl, text) { var $zone = $('#txt_msg'); var sl_value = sl.options[sl.selectedIndex].value; if (sl_value != '0') { if ($zone.val().length > 0 && !confirm(text)) return ; $zone.val(sl_value); } $zone.trigger('autosize.resize'); } function setCancelQuantity(itself, id_order_detail, quantity) { $('#cancelQuantity_' + id_order_detail).val($(itself).prop('checked') ? quantity : ''); } function stockManagementActivationAuthorization() { if (getE('PS_STOCK_MANAGEMENT_on').checked) { getE('PS_ORDER_OUT_OF_STOCK_on').disabled = false; getE('PS_ORDER_OUT_OF_STOCK_off').disabled = false; getE('PS_DISPLAY_QTIES_on').disabled = false; getE('PS_DISPLAY_QTIES_off').disabled = false; getE('PS_ADVANCED_STOCK_MANAGEMENT_on').disabled = false; getE('PS_ADVANCED_STOCK_MANAGEMENT_off').disabled = false; } else { getE('PS_DISPLAY_QTIES_off').checked = true; getE('PS_DISPLAY_QTIES_on').disabled = 'disabled'; getE('PS_DISPLAY_QTIES_off').disabled = 'disabled'; getE('PS_ORDER_OUT_OF_STOCK_on').checked = true; getE('PS_ORDER_OUT_OF_STOCK_on').disabled = 'disabled'; getE('PS_ORDER_OUT_OF_STOCK_off').disabled = 'disabled'; getE('PS_ADVANCED_STOCK_MANAGEMENT_off').checked = true; getE('PS_ADVANCED_STOCK_MANAGEMENT_on').disabled = 'disabled'; getE('PS_ADVANCED_STOCK_MANAGEMENT_off').disabled = 'disabled'; getE('PS_FORCE_ASM_NEW_PRODUCT_off').checked = true; getE('PS_FORCE_ASM_NEW_PRODUCT_on').disabled = 'disabled'; getE('PS_FORCE_ASM_NEW_PRODUCT_off').disabled = 'disabled'; getE('PS_DEFAULT_WAREHOUSE_NEW_PRODUCT').disabled = 'disabled'; } } function advancedStockManagementActivationAuthorization() { if (getE('PS_ADVANCED_STOCK_MANAGEMENT_on').checked) { getE('PS_FORCE_ASM_NEW_PRODUCT_on').disabled = false; getE('PS_FORCE_ASM_NEW_PRODUCT_off').disabled = false; getE('PS_DEFAULT_WAREHOUSE_NEW_PRODUCT').disabled = false; } else { getE('PS_FORCE_ASM_NEW_PRODUCT_off').checked = true; getE('PS_FORCE_ASM_NEW_PRODUCT_on').disabled = 'disabled'; getE('PS_FORCE_ASM_NEW_PRODUCT_off').disabled = 'disabled'; getE('PS_DEFAULT_WAREHOUSE_NEW_PRODUCT').disabled = 'disabled'; } } function hookCheckboxes(id, opt, champ) { if (opt == 1 && champ.checked == false) $('#Ghook'+id).attr('checked', false); else if (opt == 0) { if (champ.checked) $('.hook'+id).attr('checked', "checked"); else $('.hook'+id).attr('checked', false); } } function changeCMSActivationAuthorization() { if (getE('PS_CONDITIONS_on').checked) getE('PS_CONDITIONS_CMS_ID').disabled = false; else getE('PS_CONDITIONS_CMS_ID').disabled = 'disabled'; } function disableZipFormat() { if ($('#need_zip_code_on').prop('checked') == false) { $('.zip_code_format').hide(); $('#zip_code_format').val(''); } else $('.zip_code_format').show(); } function disableTAASC() { if ($('#iso_code').val() == 'US') $('#TAASC').show(); else $('#TAASC').hide(); } function spreadFees(id_range) { newVal = $('#fees_all_'+id_range).val().replace(/,/g, '.'); $('.fees_'+id_range).val(newVal); } function clearAllFees(id_range) { $('#fees_all_'+id_range).val(''); } function toggleDraftWarning(show) { if (show) $('.draft').hide(); else $('.draft').show(); } function showRedirectProductOptions(show) { if (show) $('.redirect_product_options').fadeIn(); else $('.redirect_product_options').fadeOut(); redirectSelectChange(); } function redirectSelectChange() { if ($('#redirect_type :selected').val() == '404') showRedirectProductSelectOptions(false); else showRedirectProductSelectOptions(true); } function addRelatedProduct(id_product_to_add, product_name) { if (!id_product_to_add || id_product == id_product_to_add) return; $('#related_product_name').html(product_name); $('input[name=id_product_redirected]').val(id_product_to_add); $('#related_product_autocomplete_input').parent().hide(); $('#related_product_remove').show(); } function removeRelatedProduct() { $('#related_product_name').html(no_related_product); $('input[name=id_product_redirected]').val(0); $('#related_product_remove').hide(); $('#related_product_autocomplete_input').parent().fadeIn(); } function showRedirectProductSelectOptions(show) { if (show) $('.redirect_product_options_product_choise').show(); else { $('.redirect_product_options_product_choise').hide(); removeRelatedProduct(); } } function showOptions(show) { if (show) $('tr#product_options').show(); else $('tr#product_options').hide(); } function submitAddProductAndPreview() { $('#fakeSubmitAddProductAndPreview').attr('name','submitAddProductAndPreview'); $('#product_form').submit(); } function submitAddcmsAndPreview() { $('#previewSubmitAddcmsAndPreview').attr('name','submitAddcmsAndPreview'); $('#cms').submit(); } function checkAllMultishopDefaultValue(item) { $(item).parent().find('input[name^=\'multishopOverrideOption\']').each(function(k, v) { $(v).attr('checked', item.checked); var name = $(v).attr('name'); checkMultishopDefaultValue(v, name.substr(24, name.length - 25)); }) } function checkMultishopDefaultValue(obj, key) { if (!$(obj).prop('checked') || $('#'+key).hasClass('isInvisible')) { $('#conf_id_'+key+' input, #conf_id_'+key+' textarea, #conf_id_'+key+' select, #conf_id_'+key+' button').prop('disabled', true); $('#conf_id_'+key+' label.conf_title').addClass('isDisabled'); $(obj).prop('disabled', false); } else { $('#conf_id_'+key+' input, #conf_id_'+key+' textarea, #conf_id_'+key+' select, #conf_id_'+key+' button').prop('disabled', false); $('#conf_id_'+key+' label.conf_title').removeClass('isDisabled'); } $('#conf_id_'+key+' .preference_default_multishop input').prop('disabled', false); } function toggleAllMultishopDefaultValue($container, value) { $container.find('input[name^=\'multishopOverrideOption\']').each(function(k, v) { $(v).attr('checked', value); var name = $(v).attr('name'); toggleMultishopDefaultValue(v, name.substr(24, name.length - 25)); }) } function toggleMultishopDefaultValue(obj, key) { if (!$(obj).prop('checked') || $('#'+key).hasClass('isInvisible')) { $('#conf_id_'+key+' input, #conf_id_'+key+' textarea, #conf_id_'+key+' select, #conf_id_'+key+' button').attr('disabled', true); $('#conf_id_'+key+' label.conf_title').addClass('isDisabled'); } else { $('#conf_id_'+key+' input, #conf_id_'+key+' textarea, #conf_id_'+key+' select, #conf_id_'+key+' button').attr('disabled', false); $('#conf_id_'+key+' label.conf_title').removeClass('isDisabled'); } $('#conf_id_'+key+' input[name^=\'multishopOverrideOption\']').attr('disabled', false); } function doAdminAjax(data, success_func, error_func) { $.ajax( { url : 'index.php', data : data, type : 'POST', success : function(data){ if (success_func) return success_func(data); data = $.parseJSON(data); if (data.confirmations.length != 0) showSuccessMessage(data.confirmations); else showErrorMessage(data.error); }, error : function(data){ if (error_func) return error_func(data); alert("[TECHNICAL ERROR]"); } }); } //display a success/error/notice message function showSuccessMessage(msg) { $.growl.notice({ title: "", message:msg}); } function showErrorMessage(msg) { $.growl.error({ title: "", message:msg}); } function showNoticeMessage(msg) { $.growl.notice({ title: "", message:msg}); } $(document).ready(function() { if (typeof helper_tabs != 'undefined' && typeof unique_field_id != 'undefined') { $.each(helper_tabs, function(index) { $('#'+unique_field_id+'fieldset_'+index+' .form-wrapper').prepend('<div class="tab-content panel" />'); $('#'+unique_field_id+'fieldset_'+index+' .form-wrapper').prepend('<ul class="nav nav-tabs" />'); $.each(helper_tabs[index], function(key, value) { // Move every form-group into the correct .tab-content > .tab-pane $('#'+unique_field_id+'fieldset_'+index+' .tab-content').append('<div id="'+key+'" class="tab-pane" />'); var elemts = $('#'+unique_field_id+'fieldset_'+index).find("[data-tab-id='" + key + "']"); $(elemts).appendTo('#'+key); // Add the item to the .nav-tabs if (elemts.length != 0) $('#'+unique_field_id+'fieldset_'+index+' .nav-tabs').append('<li><a href="#'+key+'" data-toggle="tab">'+value+'</a></li>'); }); // Activate the first tab $('#'+unique_field_id+'fieldset_'+index+' .tab-content div').first().addClass('active'); $('#'+unique_field_id+'fieldset_'+index+' .nav-tabs li').first().addClass('active'); }); } if (typeof formToMove != 'undefined' && typeof formDestination != 'undefined' ) { $('<hr style="margin 24px 0;" />').appendTo('#'+formDestination) $('#theme_fieldset_'+formToMove+' .form-wrapper').appendTo('#'+formDestination); } $('select.chosen').each(function(k, item){ $(item).chosen({disable_search_threshold: 10}); }); // Apply chosen() when modal is loaded $(document).on('shown.bs.modal', function (e) { $('select.chosen-modal').chosen(); }) $('.isInvisible input, .isInvisible select, .isInvisible textarea').attr('disabled', true); $('.isInvisible label.conf_title').addClass('isDisabled'); // Disable options fields for each row with a multishop default checkbox $('.preference_default_multishop input[type=checkbox]').each(function(k, v) { var key = $(v).attr('name'); var len = key.length; checkMultishopDefaultValue(v, key.substr(24, len - 25)); }); $('input[name^=\'multishopOverrideOption\']').each(function(k, v) { var key = $(v).attr('name'); var len = key.length; toggleMultishopDefaultValue(v, key.substr(24, len - 25)); }); $(document).on('keyup change', '.copy2friendlyUrl', function(e){ if (!isArrowKey(e)) return copy2friendlyURL(); }); // on live will make this binded for dynamic content $(document).on('keyup change', '.updateCurrentText', function(e){ if (typeof e == KeyboardEvent) if(isArrowKey(e)) return; updateCurrentText(); }); $(document).on('keyup change', '.copyMeta2friendlyURL', function(e){ if (!isArrowKey(e)) return copyMeta2friendlyURL() }); $('#ajax_running').ajaxStart(function() { ajax_running_timeout = setTimeout(function() {showAjaxOverlay()}, 1000); }); $('#ajax_running').ajaxStop(function() { var element = $(this) setTimeout(function(){element.hide()}, 1000); clearTimeout(ajax_running_timeout); }); $('#ajax_running').ajaxError(function() { var element = $(this) setTimeout(function(){element.hide()}, 1000); clearTimeout(ajax_running_timeout); }); bindTabModuleListAction(); bindAddonsButtons(); //Check filters value on submit filter $("[name='submitFilter']").click(function(event) { var list_id = $(this).data('list-id'); var empty_filters = true; $(document.body).find("input[name*='"+list_id+"Filter']").each(function() { if ($(this).val() != '') { empty_filters = false; return false; } }); $(document.body).find("select[name*='"+list_id+"Filter']").each(function() { if ($(this).val() != '') { empty_filters = false; return false; } }); if (empty_filters) { event.preventDefault(); $('#'+list_id+'-empty-filters-alert').show(); } }); var message = $('.toolbarHead'); var view = $(window); // bind only if message exists. placeholder will be its parent view.bind("scroll resize", function(e) { message.each(function(el){ if (message.length) { placeholder = $(this).parent(); if (e.type == 'resize') $(this).css('width', $(this).parent().width()); placeholderTop = placeholder.offset().top; var viewTop = view.scrollTop() + 15; // here we force the toolbar to be "not fixed" when // the height of the window is really small (toolbar hiding the page is not cool) window_is_more_than_twice_the_toolbar = view.height() > message.parent().height() * 2; if (!$(this).hasClass("fix-toolbar") && (window_is_more_than_twice_the_toolbar && (viewTop > placeholderTop))) { $(this).css('width', $(this).width()); // fixing parent height will prevent that annoying "pagequake" thing // the order is important : this has to be set before adding class fix-toolbar $(this).parent().css('height', $(this).parent().height()); $(this).addClass("fix-toolbar"); } else if ($(this).hasClass("fix-toolbar") && (!window_is_more_than_twice_the_toolbar || (viewTop <= placeholderTop)) ) { $(this).removeClass("fix-toolbar"); $(this).removeAttr('style'); $(this).parent().removeAttr('style'); } } }); }); // end bind $(document).on('click', '.untrustedaddon', function(e){ e.preventDefault(); var moduleName = $(this).data('module-name'); var moduleDisplayName = $(this).data('module-display-name'); var moduleImage = $(this).data('module-image'); var authorName = $(this).data('author-name'); var moduleLink = $(this).data('link'); var authorUri = $(this).data('author-uri'); var isValidUri = /(https?):\/\/([a-z0-9\.]*)?(prestashop.com).*/gi; var addonsSearchLink = 'http://addons.prestashop.com/en/search?search_query='+encodeURIComponent(moduleDisplayName)+'&utm_source=back-office&utm_medium=addons-certified&utm_campaign=back-office-'+iso_user.toUpperCase(); $('.modal #untrusted-module-logo').attr('src', moduleImage); $('.modal .module-display-name-placeholder').text(moduleDisplayName); $('.modal .author-name-placeholder').text(authorName); if (isValidUri.test(authorUri)) $('.modal .author-name-placeholder').wrap('<a href="'+authorUri+'" onclick="window.open(this.href);return false;"></a>'); $('.modal #proceed-install-anyway').attr('href', moduleLink); $('.modal .catalog-link').attr('href', addonsSearchLink); $('.modal .catalog-link').attr('onclick', 'window.open(this.href);return false;'); }); $(document).on('click', '#untrusted-show-risk', function(e){ e.preventDefault(); $('.untrusted-content-action').hide(); $('.untrusted-content-more-info').show(); }); $(document).on('click', '#untrusted-show-action', function(e){ e.preventDefault(); $('.untrusted-content-more-info').hide(); $('.untrusted-content-action').show(); }); // if count errors $('#hideError').on('click', function(e) { e.preventDefault(); $('.error').hide('slow', function (){ $('.error').remove(); }); return false; }); // if count warnings $(document).on('click', '#linkSeeMore', function(e){ e.preventDefault(); $('#seeMore').show(); $(this).hide(); $('#linkHide').show(); return false; }); $(document).on('click', '#linkHide', function(e){ e.preventDefault(); $('#seeMore').hide(); $(this).hide(); $('#linkSeeMore').show(); return false; }); $(document).on('click', '#hideWarn', function(e){ e.preventDefault(); $('.warn').hide('slow', function (){ $('.warn').remove(); }); return false; }); // js for the buttons of swap helper $("#addSwap").on('click', function(e) { e.preventDefault(); $('#availableSwap option:selected').each( function() { $('#selectedSwap').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>"); $(this).remove(); }); $('#selectedSwap option').prop('selected', true); }); $("#removeSwap").on('click', function(e) { e.preventDefault(); $('#selectedSwap option:selected').each( function() { $('#availableSwap').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>"); $(this).remove(); }); $('#selectedSwap option').prop('selected', true); }); if ($('#selectedSwap').length != 0) { $('button:submit').click(function() { $('#selectedSwap option').attr('selected', 'selected'); }); } }); function bindTabModuleListAction() { $('.action_tab_module').each( function (){ $(this).click(function () { option = $('#'+$(this).data('option')+' :selected'); if ($(option).data('onclick') != '') { var f = eval("(function(){ "+$(option).data('onclick')+"})"); if (f.call()) window.location.href = $(option).data('href'); } else window.location.href = $(option).data('href'); return false; }); }); } // Delete all tags HTML function stripHTML(oldString) { var newString = ''; var inTag = false; for(var i = 0; i < oldString.length; i++) { if(oldString.charAt(i) == '<') inTag = true; if(oldString.charAt(i) == '>') { if(oldString.charAt(i+1)!='<') { inTag = false; i++; } } if(!inTag) newString += oldString.charAt(i); } return newString; } /** * Display a loading bar while an ajax call is ongoing. * * To prevent the loading bar display for a specific ajax call, set the beforeSend event in your ajax declaration: * beforeSend : function(data) { // don't display the loading notification bar clearTimeout(ajax_running_timeout); } */ function showAjaxOverlay() { $('#ajax_running').show('fast'); clearTimeout(ajax_running_timeout); } function display_action_details(row_id, controller, token, action, params) { var id = action+'_'+row_id; var current_element = $('#details_'+id); if (!current_element.data('dataMaped')) { var ajax_params = { 'id': row_id, 'controller': controller, 'token': token, 'action': action, 'ajax': true }; $.each(params, function(k, v) { ajax_params[k] = v; }); $.ajax({ url: 'index.php', data: ajax_params, dataType: 'json', cache: false, context: current_element, async: false, success: function(data) { if (typeof(data.use_parent_structure) == 'undefined' || (data.use_parent_structure == true)) { if (current_element.parent().parent().hasClass('alt_row')) var alt_row = true; else var alt_row = false; current_element.parent().parent().after($('<tr class="details_'+id+' small '+(alt_row ? 'alt_row' : '')+'"></tr>') .append($('<td style="border:none!important;" class="empty"></td>') .attr('colspan', current_element.parent().parent().find('td').length))); $.each(data.data, function(it, row) { var bg_color = ''; // Color if (row.color) bg_color = 'style="background:' + row.color +';"'; var content = $('<tr class="action_details details_'+id+' '+(alt_row ? 'alt_row' : '')+'"></tr>'); content.append($('<td class="empty"></td>')); var first = true; var count = 0; // Number of non-empty collum $.each(row, function(it) { if(typeof(data.fields_display[it]) != 'undefined') count++; }); $.each(data.fields_display, function(it, line) { if (typeof(row[it]) == 'undefined') { if (first || count == 0) content.append($('<td class="'+current_element.align+' empty"' + bg_color + '></td>')); else content.append($('<td class="'+current_element.align+'"' + bg_color + '></td>')); } else { count--; if (first) { first = false; content.append($('<td class="'+current_element.align+' first"' + bg_color + '>'+row[it]+'</td>')); } else if (count == 0) content.append($('<td class="'+current_element.align+' last"' + bg_color + '>'+row[it]+'</td>')); else content.append($('<td class="'+current_element.align+' '+count+'"' + bg_color + '>'+row[it]+'</td>')); } }); content.append($('<td class="empty"></td>')); current_element.parent().parent().after(content.show('slow')); }); } else { if (current_element.parent().parent().hasClass('alt_row')) var content = $('<tr class="details_'+id+' alt_row"></tr>'); else var content = $('<tr class="details_'+id+'"></tr>'); content.append($('<td style="border:none!important;">'+data.data+'</td>').attr('colspan', current_element.parent().parent().find('td').length)); current_element.parent().parent().after(content); current_element.parent().parent().parent().find('.details_'+id).hide(); } current_element.data('dataMaped', true); current_element.data('opened', false); if (typeof(initTableDnD) != 'undefined') initTableDnD('.details_'+id+' table.tableDnD'); } }); } if (current_element.data('opened')) { current_element.find('i.icon-collapse-top').attr('class', 'icon-collapse'); current_element.parent().parent().parent().find('.details_'+id).hide('fast'); current_element.data('opened', false); } else { current_element.find('i.icon-collapse').attr('class', 'icon-collapse-top'); current_element.parent().parent().parent().find('.details_'+id).show('fast'); current_element.data('opened', true); } } function quickSelect(elt) { var eltVal = $(elt).val(); if (eltVal == "0") return false; else if (eltVal.substr(eltVal.length - 6) == '_blank') window.open(eltVal.substr(0, eltVal.length - 6), '_blank'); else location.href = eltVal; } function changeEmployeeLanguage() { if (typeof allowEmployeeFormLang !== 'undefined' && allowEmployeeFormLang) $.post("index.php", { action: 'formLanguage', tab: 'AdminEmployees', ajax: 1, token: employee_token, form_language_id: id_language }); } function hideOtherLanguage(id) { $('.translatable-field').hide(); $('.lang-' + id).show(); var id_old_language = id_language; id_language = id; if (id_old_language != id) changeEmployeeLanguage(); updateCurrentText(); } function sendBulkAction(form, action) { String.prototype.splice = function(index, remove, string) { return (this.slice(0, index) + string + this.slice(index + Math.abs(remove))); }; var form_action = $(form).attr('action'); if (form_action.replace(/(??:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ') == '') return false; if (form_action.indexOf('#') == -1) $(form).attr('action', form_action + '&' + action); else $(form).attr('action', form_action.splice(form_action.lastIndexOf('&'), 0, '&' + action)); $(form).submit(); } function openModulesList() { if (!modules_list_loaded) { $.ajax({ type: "POST", url : admin_modules_link, async: true, data : { ajax : "1", controller : "AdminModules", action : "getTabModulesList", tab_modules_list : tab_modules_list, back_tab_modules_list : window.location.href }, success : function(data) { $('#modules_list_container_tab_modal').html(data).slideDown(); $('#modules_list_loader').hide(); modules_list_loaded = true; $('.help-tooltip').tooltip(); } }); } else { $('#modules_list_container_tab_modal').slideDown(); $('#modules_list_loader').hide(); } return false; } function bindAddonsButtons() { // Method to log on PrestaShop Addons WebServices $('#addons_login_button').click(function() { var username_addons = $("#username_addons").val(); var password_addons = $("#password_addons").val(); try { resAjax = $.ajax({ type:"POST", url : admin_modules_link, async: true, data : { ajax : "1", controller : "AdminModules", action : "logOnAddonsWebservices", username_addons : username_addons, password_addons : password_addons }, beforeSend: function(xhr){ $('#addons_loading').html('<img src="../img/loader.gif" alt="" border="0" />'); }, success : function(data){ if (data == 'OK') { $('#addons_loading').html(''); $('#addons_login_div').fadeOut(); window.location.href = currentIndex + '&token=' + token + '&conf=32'; } else $('#addons_loading').html('<br><div class="alert alert-danger">'+errorLogin+'</div>'); } }); } catch(e){} return false; }); // Method to log out PrestaShop Addons WebServices $('#addons_logout_button').click(function() { try { resAjax = $.ajax({ type:"POST", url : admin_modules_link, async: true, data : { ajax : "1", controller : "AdminModules", action : "logOutAddonsWebservices" }, beforeSend: function(xhr){ $('#addons_loading').html('<img src="../img/loader.gif" alt="" border="0" />'); }, success: function(data) { if (data == 'OK') { $('#addons_loading').html(''); $('#addons_login_div').fadeOut(); window.location.reload(); } else $('#addons_loading').html(errorLogin); } }); } catch(e){} return false; }); } function ajaxStates(id_state_selected) { $.ajax({ url: "index.php", cache: false, data: "token="+state_token+"&ajax=1&action=states&tab=AdminStates&no_empty=0&id_country="+$('#id_country').val() + "&id_state=" + $('#id_state').val(), success: function(html) { if (html == 'false') { $("#contains_states").fadeOut(); $('#id_state option[value=0]').attr("selected", "selected"); } else { $("#id_state").html(html); $("#contains_states").fadeIn(); $('#id_state option[value=' + id_state_selected + ']').attr("selected", "selected"); } } }); if (module_dir && vat_number) { $.ajax({ type: "GET", url: window.location.origin + module_dir + "vatnumber/ajax.php?id_country=" + $('#id_country').val(), success: function(isApplicable) { if(isApplicable == 1) $('#vat_area').show(); else $('#vat_area').hide(); } }); } } function check_for_all_accesses(tabsize, tabnumber) { var i = 0; var res = 0; var right = 0; var rights = new Array('view', 'add', 'edit', 'delete', 'all'); while (i != parseInt(tabsize) + 1) { if ($('#view'+i).prop('checked') == false || $('#edit'+i).prop('checked') == false || $('#add'+i).prop('checked') == false || $('#delete'+i).prop('checked') == false) $('#all'+i).attr('checked', false); else $('#all'+i).attr('checked', "checked"); i++; } right = 0; while (right != 5) { res = 0; i = 0; while (i != tabsize) { if ($('#'+rights[right]+i).prop('checked') == true) res++; i++; } if (res == tabnumber - 1) $('#'+rights[right]+'all').attr('checked', "checked"); else $('#'+rights[right]+'all').attr('checked', false); right++; } } function perfect_access_js_gestion(src, action, id_tab, tabsize, tabnumber, table) { if (id_tab == '-1' && action == 'all') { $(table+' .add').attr('checked', src.checked); $(table+' .edit').attr('checked', src.checked); $(table+' .delete').attr('checked', src.checked); $(table+' .view').attr('checked', src.checked); $(table+' .all').attr('checked', src.checked); } else if (action == 'all') $(table+' .'+id_tab).attr('checked', src.checked); else if (id_tab == '-1') $(table+' .'+action).attr('checked', src.checked); check_for_all_accesses(tabsize, tabnumber); } verifMailREGEX = /^([\w+-]+(?:\.[\w+-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/; function verifyMail(testMsg, testSubject) { $("#mailResultCheck").removeClass("alert-danger").removeClass('alert-success').html('<img src="../img/admin/ajax-loader.gif" alt="" />'); $("#mailResultCheck").slideDown("slow"); //local verifications if (!($("#testEmail").val().length > 0)) { $("#mailResultCheck").addClass("alert-danger").removeClass("alert-success").removeClass('userInfos').html(errorMail); return false; } else if (!verifMailREGEX.test( $("#testEmail").val() )) { $("#mailResultCheck").addClass("alert-danger").removeClass("alert-success").removeClass('userInfos').html(errorMail); return false; } else { //external verifications and sets $.ajax( { url: "index.php", cache: false, type : "POST", data: { "mailMethod" : (($("input[name=PS_MAIL_METHOD]:checked").val() == 2) ? "smtp" : "native"), "smtpSrv" : $("input[name=PS_MAIL_SERVER]").val(), "testEmail" : $("#testEmail").val(), "smtpLogin" : $("input[name=PS_MAIL_USER]").val(), "smtpPassword" : $("input[name=PS_MAIL_PASSWD]").val(), "smtpPort" : $("input[name=PS_MAIL_SMTP_PORT]").val(), "smtpEnc" : $("select[name=PS_MAIL_SMTP_ENCRYPTION]").val(), "testMsg" : textMsg, "testSubject" : textSubject, "token" : token_mail, "ajax" : 1, "tab" : 'AdminEmails', "action" : 'sendMailTest' }, success: function(ret) { if (ret == "ok") { $("#mailResultCheck").addClass("alert-success").removeClass("alert-danger").removeClass('userInfos').html(textSendOk); mailIsOk = true; } else { mailIsOk = false; $("#mailResultCheck").addClass("alert-danger").removeClass("alert-success").removeClass('userInfos').html(textSendError + '<br />' + ret); } } Kindly advise me on what to do next to get this sorted out. But i have tried to use both firefox and google chrome and still the same issues Your help is always appreciated Thank you Ronnie Link to comment Share on other sites More sharing options...
NemoPS Posted May 18, 2015 Share Posted May 18, 2015 It's virtually impossible to tell what's wrong there, are you getting an error on that file? Which line if so? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now