1 2//--- 3 4String.prototype.replaceAll = function(search, replacement) { 5 var target = this; 6 return target.replace(new RegExp(search, 'g'), replacement); 7}; 8function sleep(ms) { 9 return new Promise(function (resolve){return setTimeout(resolve, ms)}); 10} 11function showWaitDialog(){$("#waitDialog").fadeIn({duration:1000, queue: false});} 12function hideWaitDialog(){$("#waitDialog").hide();} 13 14var clickOtherPages, initChangeSelectFields; 15$(document).ready(function() { 16 clickOtherPages = function() { 17 var otherPagesLink = $('.current-page a'); 18 if (otherPagesLink.length) { 19 otherPagesLink.on('click', function() { 20 paginateProducts({nbElements: parseInt($(this).data('index'), 10)}); 21 }); 22 } 23 }; 24 clickOtherPages(); 25 26initChangeSelectFields = function() { 27 $('.select-group:not(.simple-select) select').each(function() { 28 if (!$(this).hasClass('select-hidden')) { 29 var hiddenSelect = $(this); 30 hiddenSelect.addClass('select-hidden'); 31 hiddenSelect.wrap('<div class="select"></div>'); 32 hiddenSelect.after('<div class="select-styled"></div>'); 33 34 var styledSelect = hiddenSelect.next('div.select-styled'); 35 var styledSelectOptionsList = $('<ul />', { 36 'class': 'select-options' 37 }).insertAfter(styledSelect); 38 var nbOptions = hiddenSelect.children('option').length; 39 for (var i = 0; i < nbOptions; i++) { 40 $('<li />', { 41 text: hiddenSelect.children('option').eq(i).text(), 42 rel: hiddenSelect.children('option').eq(i).val() 43 }).appendTo(styledSelectOptionsList); 44 } 45 var styledSelectOptionsListItems = styledSelectOptionsList.children('li'); 46 47 styledSelect.text(hiddenSelect.children('option:selected').eq(0).text()); 48 styledSelectOptionsList.find('li[rel="' + hiddenSelect.children('option:selected').eq(0).val() + '"]').hide(); 49 50 styledSelect.on('click', function(evt) { 51 evt.stopPropagation(); 52 53 $('div.select-styled.active').not(this).each(function() { 54 $(this).removeClass('active').next('ul.select-options').hide(); 55 }); 56 $(this).toggleClass('active'); 57 styledSelectOptionsList.toggle(); 58 }); 59 60 $(document).on('click', function() { 61 styledSelect.removeClass('active'); 62 styledSelectOptionsList.hide(); 63 }); 64 65 styledSelectOptionsListItems.on('click', function(evt) { 66 evt.stopPropagation(); 67 68 hiddenSelect.val($(this).attr('rel')).trigger('change'); 69 }); 70 } 71 }); 72 }; 73 initChangeSelectFields(); 74}); 75 76/** 77 * <h:commandLink> 78 * <f:ajax 79 * onerror="function(e){processCommandEvent(e,'FORM_ID',false,null,false);}" 80 * onevent="function(e){processCommandEvent(e,'FORM_ID',false,null,false);}" 81 * /> 82 * J'en profite 83 * </h:commandLink> 84 * @param e 85 * @param formName 86 */ 87function processCommandEvent(e,formId, showValidationFailedGlobalMessage,successMessage,reload,idSlideToOnSuccess,redirectTo) { 88 var args={}; 89 if (e.responseXML){ 90 var exts = e.responseXML.getElementsByTagName ("extension"); 91 for (var i = 0; i < exts.length; i++) { 92 var ext = exts[i]; 93 if (ext.getAttribute('ln') == 'primefaces' && ext.getAttribute('type') == 'args'){ 94 args=$.parseJSON(ext.textContent||ext.innerText||ext.text); 95 } 96 } 97 } 98 99 effacerErrorsGen(); 100 101 var status = e.status; // Can be "begin", "complete" or "success". 102 switch (status) { 103 case "begin": // Before the ajax request is sent. 104 startAjaxPost(formId); 105 break; 106 case "complete": // After the ajax response is arrived. 107 break; 108 case "success": // After update of HTML DOM based on ajax response.. 109 completeAjaxPost(null,'success',args,formId,showValidationFailedGlobalMessage,successMessage,reload,idSlideToOnSuccess,redirectTo); 110 break; 111 default: 112 completeAjaxPost(null,'error',args,formId,showValidationFailedGlobalMessage,successMessage,reload,idSlideToOnSuccess,redirectTo); 113 console.log(e); 114 break; 115 } 116} 117 118function nfProcessAjaxEvent(e, startFct, completeFn) { 119 var args={}; 120 if (e.responseXML){ 121 var exts = e.responseXML.getElementsByTagName ("extension"); 122 for (var i = 0; i < exts.length; i++) { 123 var ext = exts[i]; 124 if (ext.getAttribute('ln') == 'primefaces' && ext.getAttribute('type') == 'args'){ 125 args=$.parseJSON(ext.textContent||ext.innerText||ext.text); 126 } 127 } 128 } 129 130 effacerErrorsGen();
131 132 var status = e.status; // Can be "begin", "complete" or "success". 133 switch (status) { 134 case "begin": // Before the ajax request is sent. 135 startFct(); 136 break; 137 case "complete": // After the ajax response is arrived. 138 break; 139 case "success": // After update of HTML DOM based on ajax response.. 140 completeFn(null, status, args); 141 break; 142 default: 143 console.log(e); 144 break; 145 } 146} 147 148/** 149 * TODO à adapter!! 150 */ 151function removeError() { 152 $('.alert.error').remove(); 153 $('.message').remove(); 154 $('.error-field').removeClass('error-field'); 155} 156 157function startAjaxPost(formId,confirmMessage){ 158 var responseConfirm; 159 if (confirmMessage){ 160 responseConfirm = confirm(confirmMessage); 161 console.log(responseConfirm); 162 }else{ 163 responseConfirm = true; 164 } 165 166 if(responseConfirm == true) { 167 removeError(); 168 showWaitDialog(); 169 return true; 170 }else{ 171 return false; 172 } 173} 174var successMessages = {}; 175/** 176 * TODO à adapter!! 177 * 178 * @param xhr 179 * @param status 180 * @param args 181 * @param formId 182 * @param showValidationFailedGlobalMessage 183 */ 184function completeAjaxPost(xhr, status, args,formId, showValidationFailedGlobalMessage,successMessage,reload,idSlideToOnSuccess,redirectTo,scrollableElementId) { 185 try{ 186 var successMessageVal = successMessages[successMessage]; 187 if(!successMessageVal){successMessageVal=successMessage;} 188 var messageId = ""; 189 if (formId){ 190 messageId = "#" + formId.replaceAll(":", "\\:") + " .alert.error, #" + formId.replaceAll(":", "\\:") + " .message"; 191 }else{ 192 messageId = ".alert.error, .message"; 193 } 194 $('.champs_form .message').parents('.champs_form').each(function(){ 195 $(this).find('input, select').change(function(){ 196 $(this).parents('.champs_form').find('.message').slideUp( 400, function() { 197 $(this).remove(); 198 }); 199 200 }) 201 }); 202 203 if (args.validationFailed || args.error) { 204 if (args.validationFailed) { 205 if (!showValidationFailedGlobalMessage==false){ 206 $(messageId).append( 207 '<div class="alert error">'+ 208 'Merci de vérifier les champs signalés ci-dessous.'+ 209 '</div>'); 210 } 211 activeInputs() 212 } 213 if ($(".error-field").length > 0){ 214 scrollUp($(".error-field").first(),scrollableElementId); 215 } else if ($(messageId).length > 0){ 216 scrollUp($(messageId).first(),scrollableElementId); 217 } 218 219 var hasHighlightError = false; 220 221 if ($(".highlight").length > 0){ 222 scrollUp($(".highlight").first()); 223 hasHighlightError = true; 224 } 225 226 var popuperrorhas= false; 227 228 for(var pas_a = 0 ; pas_a < document.getElementsByClassName('msgErrorGeneralPage').length; pas_a++) { 229 if(document.getElementsByClassName('msgErrorGeneralPage')[pas_a].getElementsByClassName('msg_error').length){ 230 popuperrorhas = true; 231 document.getElementsByClassName('msgErrorGeneralPage')[pas_a].style.display = 'block'; 232 233 if (!hasHighlightError) { 234 $("html, body").stop().animate({scrollTop:0}, 500); 235 } 236 break; 237 } else { 238 document.getElementsByClassName('msgErrorGeneralPage')[pas_a].style.display = 'none'; 239 } 240 } 241 242 hideWaitDialog(); 243 } else if (status=='error') { 244 $(messageId).append( 245 '<div class="alert error">'+ 246 'Attention, une erreur est survenue : votre demande n\'a pas pu être prise en compte.'+ 247 '</div>'); 248 if ($(messageId).length > 0){ 249 scrollUp($(messageId).first(),scrollableElementId, true); 250 } 251 252 var hasHighlightError = false; 253 if ($(".highlight").length > 0){ 254 scrollUp($(".highlight").first()); 255 hasHighlightError = true; 256 } 257 258 var popuperrorhas= false; 259 260 for(var pas_a = 0 ; pas_a < document.getElementsByClassName('msgErrorGeneralPage').length; pas_a++) { 261 if(document.getElementsByClassName('msgErrorGeneralPage')[pas_a].getElementsByClassName('msg_error').length){ 262 popuperrorhas = true; 263 document.getElementsByClassName('msgErrorGeneralPage')[pas_a].style.display = 'block'; 264 265 if (!hasHighlightError) { 266 $("html, body").stop().animate({scrollTop:0}, 500); 267 } 268 break; 269 } else { 270 document.getElementsByClassName('msgErrorGeneralPage')[pas_a].style.display = 'none'; 271 } 272 } 273 274 hideWaitDialog(); 275 } else if (status=='success' ) { 276 hideWaitDialog(); 277 if (successMessageVal){ 278 $(messageId).append( 279 '<div class="alert error">'+ 280 successMessageVal + 281 '</div>'); 282 }
283 if (reload) { 284 var newUrl = removeURLParameter(location.href, 'logout'); 285 location.href = newUrl; 286 } 287 }else{ 288 hideWaitDialog(); 289 } 290 if (status=='success' && !args.validationFailed && !args.error) { 291 if(idSlideToOnSuccess){ 292 scrollToElement($('#' + idSlideToOnSuccess)); 293 } 294 if (redirectTo){ 295 location.href = redirectTo; 296 } 297 return true; 298 } else { 299 return false; 300 } 301 }catch(e){ 302 hideWaitDialog(); 303 } 304} 305 306/** 307 * completeAjaxPost pour blocks 308 * @param xhr 309 * @param status 310 * @param args 311 * @param formId 312 * @param showValidationFailedGlobalMessage 313 * @param successMessage 314 * @param reload 315 * @param idSlideToOnSuccess 316 * @param redirectTo 317 * @param scrollableElementId 318 * @returns 319 */ 320function completeAjaxPost2(xhr, status, args,formId, showValidationFailedGlobalMessage,successMessage,reload,idSlideToOnSuccess,redirectTo,scrollableElementId) { 321 try{ 322 var successMessageVal = successMessages[successMessage]; 323 if(!successMessageVal){successMessageVal=successMessage;} 324 var messageId = ""; 325 if (formId){ 326 messageId = "#" + formId.replaceAll(":", "\\:") + " .alert.error, #" + formId.replaceAll(":", "\\:") + " .message"; 327 }else{ 328 messageId = ".alert.error, .message"; 329 } 330 $('.champs_form .message').parents('.champs_form').each(function(){ 331 $(this).find('input, select').change(function(){ 332 $(this).parents('.champs_form').find('.message').slideUp( 400, function() { 333 $(this).remove(); 334 }); 335 336 }) 337 }); 338 339 if (args.validationFailed || args.error) { 340 if (args.validationFailed) { 341 if (!showValidationFailedGlobalMessage==false){ 342 $(messageId).append( 343 '<div class="alert error">'+ 344 'Merci de vérifier les champs signalés ci-dessous.'+ 345 '</div>'); 346 } 347 activeInputs() 348 } 349 if ($(".error-field").length > 0){ 350 scrollUp($(".error-field").first(),scrollableElementId); 351 } else if ($(messageId).length > 0){ 352 scrollUp($(messageId).first(),scrollableElementId); 353 } 354 355 var hasHighlightError = false; 356 357 if ($(".highlight").length > 0){ 358 scrollUp($(".highlight").first()); 359 hasHighlightError = true; 360 } 361 362 var popuperrorhas= false; 363 364 for(var pas_a = 0 ; pas_a < document.getElementsByClassName('msgErrorGeneralPage2').length; pas_a++) { 365 if(document.getElementsByClassName('msgErrorGeneralPage2')[pas_a].getElementsByClassName('msg_error').length){ 366 popuperrorhas = true; 367 document.getElementsByClassName('msgErrorGeneralPage2')[pas_a].style.display = 'block'; 368 } else { 369 document.getElementsByClassName('msgErrorGeneralPage2')[pas_a].style.display = 'none'; 370 } 371 } 372 373 if(!popuperrorhas) { 374 if(document.getElementsByClassName('msg_error').length){ 375 if (!hasHighlightError) { 376 $("html, body").stop().animate({scrollTop:0}, 500); 377 } 378 } 379 } 380 381 hideWaitDialog(); 382 } else if (status=='error') { 383 $(messageId).append( 384 '<div class="alert error">'+ 385 'Attention, une erreur est survenue : votre demande n\'a pas pu être prise en compte.'+ 386 '</div>'); 387 if ($(messageId).length > 0){ 388 scrollUp($(messageId).first(),scrollableElementId, true); 389 } 390 391 var hasHighlightError = false; 392 393 if ($(".highlight").length > 0){ 394 scrollUp($(".highlight").first()); 395 hasHighlightError = true; 396 } 397 398 var popuperrorhas= false; 399 400 for(var pas_a = 0 ; pas_a < document.getElementsByClassName('msgErrorGeneralPage2').length; pas_a++) { 401 if(document.getElementsByClassName('msgErrorGeneralPage2')[pas_a].getElementsByClassName('msg_error').length){ 402 popuperrorhas = true; 403 document.getElementsByClassName('msgErrorGeneralPage2')[pas_a].style.display = 'block'; 404 } else { 405 document.getElementsByClassName('msgErrorGeneralPage2')[pas_a].style.display = 'none'; 406 } 407 } 408 409 if(!popuperrorhas) { 410 if(document.getElementsByClassName('msg_error').length){ 411 if (!hasHighlightError) { 412 $("html, body").stop().animate({scrollTop:0}, 500); 413 } 414 } 415 } 416 417 hideWaitDialog(); 418 } else if (status=='success' ) { 419 hideWaitDialog(); 420 if (successMessageVal){ 421 $(messageId).append( 422 '<div class="alert error">'+ 423 successMessageVal + 424 '</div>'); 425 }
426 if (reload) { 427 var newUrl = removeURLParameter(location.href, 'logout'); 428 location.href = newUrl; 429 } 430 }else{ 431 hideWaitDialog(); 432 } 433 if (status=='success' && !args.validationFailed && !args.error) { 434 if(idSlideToOnSuccess){ 435 scrollToElement($('#' + idSlideToOnSuccess)); 436 } 437 if (redirectTo){ 438 location.href = redirectTo; 439 } 440 return true; 441 } else { 442 return false; 443 } 444 }catch(e){ 445 hideWaitDialog(); 446 } 447} 448function activeInputs(){ 449 $('.input').each(function() { 450 if($(this).find("input").val().length!=0){ 451 $(this).addClass( "input--active" ); 452 } 453 }); 454} 455function removeURLParameter(url, parameter) { 456 //prefer to use l.search if you have a location/link object 457 var urlparts= url.split('?'); 458 if (urlparts.length>=2) { 459 460 var prefix= encodeURIComponent(parameter)+'='; 461 var pars= urlparts[1].split(/[&;]/g); 462 463 //reverse iteration as may be destructive 464 for (var i= pars.length; i-- > 0;) { 465 //idiom for string.startsWith 466 if (pars[i].lastIndexOf(prefix, 0) !== -1) { 467 pars.splice(i, 1); 468 } 469 } 470 471 url= urlparts[0]; 472 if (pars.length > 0) { 473 url= url+'?'+pars.join('&'); 474 } 475 } 476 // Suppression de l'ancre dans l'URL 477 urlparts= url.split('#'); 478 if (urlparts.length>=2) { 479 return urlparts[0]; 480 481 } else { 482 return url; 483 } 484} 485 486function scrollUp(elemObj,scrollableElementId){ 487 try{ 488 var offset; 489 if (scrollableElementId){ 490 offset=0; 491 }else{ 492 scrollableElementId="html,body"; 493 offset=100; 494 } 495 var scroll = $( scrollableElementId ).scrollTop(); 496 if (scroll ==0 ){scroll = $( "body" ).scrollTop();} 497 var elem=elemObj.offset().top - offset; 498 if (scroll>elem) { 499 $( scrollableElementId ).animate({scrollTop: elem}, 500 ); 500 } 501 }catch(ex){} 502} 503 504function scrollToElement(elemObj){ 505 try{ 506 var elem=elemObj.offset().top - 30; 507 $( "html, body" ).animate({scrollTop: elem}, 500 ); 508 }catch(ex){} 509} 510 511/** 512 * svg4everybody.min.js 513 */ 514!function(a,b){"function"==typeof define&&define.amd?define([],function(){return a.svg4everybody=b()}):"object"==typeof module&&module.exports?module.exports=b():a.svg4everybody=b()}(this,function(){function a(a,b,c){if(c){var d=document.createDocumentFragment(),e=!b.hasAttribute("viewBox")&&c.getAttribute("viewBox");e&&b.setAttribute("viewBox",e);for(var f=c.cloneNode(!0);f.childNodes.length;)d.appendChild(f.firstChild);a.appendChild(d)}}function b(b){b.onreadystatechange=function(){if(4===b.readyState){var c=b._cachedDocument;c||(c=b._cachedDocument=document.implementation.createHTMLDocument(""),c.body.innerHTML=b.responseText,b._cachedTarget={}),b._embeds.splice(0).map(function(d){var e=b._cachedTarget[d.id];e||(e=b._cachedTarget[d.id]=c.getElementById(d.id)),a(d.parent,d.svg,e)})}},b.onreadystatechange()}function c(c){function e(){for(var c=0;c<r.length;){var j=r[c],k=j.parentNode,l=d(k),m=j.getAttribute("xlink:href")||j.getAttribute("href");if(!m&&h.attributeName&&(m=j.getAttribute(h.attributeName)),l&&m){if(f){var n=document.createElement("img");n.style.cssText="display:inline-block;height:100%;width:100%",n.setAttribute("width",l.getAttribute("width")||l.clientWidth),n.setAttribute("height",l.getAttribute("height")||l.clientHeight),n.src=g(m,l,j),k.replaceChild(n,j)}else if(i)if(!h.validate||h.validate(m,l,j)){k.removeChild(j);var o=m.split("#"),t=o.shift(),u=o.join("#");if(t.length){var v=p[t];v||(v=p[t]=new XMLHttpRequest,v.open("GET",t),v.send(),v._embeds=[]),v._embeds.push({parent:k,svg:l,id:u}),b(v)}else a(k,l,document.getElementById(u))}else++c,++s}else++c}(!r.length||r.length-s>0)&&q(e,67)}var f,g,h=Object(c);g=h.fallback||function(a){return a.replace(/\?[^#]+/,"").replace("#",".").replace(/^\./,"")+".png"+(/\?[^#]+/.exec(a)||[""])[0]},f="nosvg"in h?h.nosvg:/\bMSIE [1-8]\b/.test(navigator.userAgent),f&&(document.createElement("svg"),document.createElement("use"));var i,j=/\bMSIE [1-8]\.0\b/,k=/\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/,l=/\bAppleWebKit\/(\d+)\b/,m=/\bEdge\/12\.(\d+)\b/,n=/\bEdge\/.(\d+)\b/,o=window.top!==window.self;i="polyfill"in h?h.polyfill:j.test(navigator.userAgent)||k.test(navigator.userAgent)||(navigator.userAgent.match(m)||[])[1]<10547||(navigator.userAgent.match(l)||[])[1]<537||n.test(navigator.userAgent)&&o;var p={},q=window.requestAnimationFrame||setTimeout,r=document.getElementsByTagName("use"),s=0;i&&e()}function d(a){for(var b=a;"svg"!==b.nodeName.toLowerCase()&&(b=b.parentNode););return b}return c}); 515svg4everybody(); 516 517var OmniFaces = OmniFaces || {}; 518OmniFaces.FixViewState = function(g, f) { 519 var h = new RegExp("^([\\w]+:)?" + "javax.faces.ViewState".replace(/\./g, "\\.") + "(:[0-9]+)?$"), 520 e = { 521 apply: function(a) { 522 if ("undefined" !== typeof a) { 523 a: { 524 a = a.getElementsByTagName("update"); 525 for (var b = 0; b < a.length; b++) { 526 var c = a[b]; 527 if (h.exec(c.getAttribute("id"))) { 528 a = c.textContent || c.innerText; 529 break a 530 } 531 } 532 a = null 533 } 534 if (a) 535 for (b = 0; b < f.forms.length; b++) { 536 var c = f.forms[b], 537 e = c["javax.faces.ViewState"]; 538 if ("post" == c.method && !e) { 539 var e = a, 540 d = void 0; 541 try { 542 d = f.createElement("\x3cinput name\x3d'javax.faces.ViewState'\x3e") 543 } catch (g) { 544 d = f.createElement("input"), 545 d.setAttribute("name", "javax.faces.ViewState") 546 } 547 d.setAttribute("type", "hidden"); 548 d.setAttribute("value", e); 549 d.setAttribute("autocomplete", "off"); 550 c.appendChild(d) 551 } 552 } 553 } 554 } 555 }; 556 g.jsf && jsf.ajax.addOnEvent(function(a) { 557 "success" == a.status && e.apply(a.responseXML) 558 });
559 g.jQuery && jQuery(f).ajaxComplete(function(a, b, c) { 560 "undefined" !== typeof b && e.apply(b.responseXML) 561 }); 562 return e 563}(window, document); 564 565 566function effacerErrorsGen() { 567 var hasHighlightError = false; 568 if ($(".highlight").length > 0){ 569 scrollUp($(".highlight").first()); 570 hasHighlightError = true; 571 } 572 573 var popuperrorhas= false; 574 575 for(var pas_a = 0 ; pas_a < document.getElementsByClassName('msgErrorGeneralPage').length; pas_a++) { 576 if(document.getElementsByClassName('msgErrorGeneralPage')[pas_a].getElementsByClassName('msg_error').length){ 577 popuperrorhas = true; 578 document.getElementsByClassName('msgErrorGeneralPage')[pas_a].style.display = 'block'; 579 580 if (!hasHighlightError) { 581 $("html, body").stop().animate({scrollTop:0}, 500); 582 } 583 break; 584 } else { 585 document.getElementsByClassName('msgErrorGeneralPage')[pas_a].style.display = 'none'; 586 } 587 } 588}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.