1(function ($) { 2 $(document).ready(function () { 3// $('#toolbar-item-workbench').hide(); 4 $('#edit-group-event-related-contents').hide(); 5 $('.csv-feed .feed-icon').text('Export csv'); 6 7 $("#edit-field-override-prices-value").change(function () { 8 if (this.checked) { 9 $('#edit-field-price-cc-wrapper').show(); 10 $('#edit-field-price-with-files-cc-wrapper').show(); 11 } 12 else { 13 $('#edit-field-price-cc-wrapper').hide(); 14 $('#edit-field-price-with-files-cc-wrapper').hide(); 15 } 16 }); 17 18 if (($('#node-job-offer-form').length)) { 19 $('#edit-status-value').prop("checked", false); 20 } 21 22 if (($('#article-entity-article-add-form').length) || ($('#article-entity-article-edit-form').length)) { 23 $('#edit-field-sections').bind("change", function () { 24 var rubrique = $('#edit-field-sections option:selected').text(); 25 if (rubrique == 'actualité des prix') { 26 $('#edit-field-award-wrapper').show(); 27 } 28 else { 29 $('#edit-field-award-wrapper').hide(); 30 $('#edit-field-award-target-id').val(''); 31 } 32 }); 33 } 34 35 $('#edit-moderation-state-0-state').bind("change", function () { 36 var state = $('#edit-moderation-state-0-state option:selected').text(); 37 var d = new Date(); 38 39 month = (d.getMonth() + 1); 40 day = d.getDate(); 41 heure = d.getHours(); 42 minute = d.getMinutes(); 43 second = d.getSeconds(); 44 45 if (day < 10) { 46 day = '0' + day; 47 } 48 49 if (month < 10) { 50 month = '0' + month; 51 } 52 53 if (heure < 10) { 54 heure = '0' + heure; 55 } 56 57 if (minute < 10) { 58 minute = '0' + minute; 59 } 60 61 if (second < 10) { 62 second = '0' + second; 63 } 64 65 var date = d.getFullYear() + '-' + month + '-' + day; 66 var hours = heure + ':' + minute + ':' + second; 67 68 $('#edit-field-actual-moderation-state-0-value').val(state); 69 if (($('#article-entity-article-add-form').length) || ($('#article-entity-article-edit-form').length) ||
70 ($('#article-entity-billet-blog-add-form').length) || ($('#article-entity-billet-blog-edit-form').length) || 71 ($('#article-entity-contenu-sponsorise-add-form').length) || ($('#article-entity-contenu-sponsorise-edit-form').length) || 72 ($('#article-entity-diaporama-add-form').length) || ($('#article-entity-diaporama-edit-form').length) || 73 ($('#article-entity-tribune-add-form').length) || ($('#article-entity-tribune-edit-form').length)) { 74 if (state == 'Programmé') { 75 $('#edit-field-article-program-date-wrapper').show(); 76 $('#edit-field-article-publish-date-wrapper').hide(); 77 $('#edit-field-article-program-date-0').attr("required", "required"); 78 $('#edit-field-article-program-date-0').attr("aria-required", true); 79 $('#edit-field-article-program-date-0').addClass("required"); 80 81 $('#edit-field-article-program-date-0 .fieldset-legend').addClass("form-required"); 82 83 $('#edit-field-article-program-date-0-value-date').attr("required", "required"); 84 $('#edit-field-article-program-date-0-value-date').attr("aria-required", true); 85 $('#edit-field-article-program-date-0-value-date').addClass("required"); 86 87 $('#edit-field-article-program-date-0-value-time').attr("required", "required"); 88 $('#edit-field-article-program-date-0-value-time').attr("aria-required", true); 89 $('#edit-field-article-program-date-0-value-time').addClass("required"); 90 91 } 92 else { 93 $('#edit-field-article-publish-date-wrapper').hide(); 94 $('#edit-field-article-program-date-wrapper').hide(); 95 96 $('#edit-field-article-program-date-0-value-date').removeAttr("required"); 97 $('#edit-field-article-program-date-0-value-date').removeAttr("aria-required"); 98 $('#edit-field-article-program-date-0-value-date').removeClass("required"); 99 100 $('#edit-field-article-program-date-0-value-time').removeAttr("required"); 101 $('#edit-field-article-program-date-0-value-time').removeAttr("aria-required"); 102 $('#edit-field-article-program-date-0-value-time').removeClass("required"); 103 } 104 } 105 106 if (($('#node-folder-form').length) || ($('#node-folder-edit-form').length)) { 107 if (state == 'Publié') { 108 $('#edit-field-dossier-publish-date-wrapper').show(); 109 $('#edit-field-dossier-publish-date-0-value-date').val(date); 110 $('#edit-field-dossier-publish-date-0-value-time').val(hours); 111 } else { 112 $('#edit-field-dossier-publish-date-wrapper').hide(); 113 } 114 } 115 if (($('#node-faq-form').length) || ($('#node-faq-edit-form').length)) { 116 if (state == 'Publié') { 117 $('#edit-field-faq-publish-date-wrapper').show(); 118 $('#edit-field-faq-publish-date-0-value-date').val(date); 119 $('#edit-field-faq-publish-date-0-value-time').val(hours); 120 } else { 121 $('#edit-field-faq-publish-date-wrapper').hide(); 122 } 123 } 124 if (($('#event-entity-add-form').length) || ($('#event-entity-edit-form').length)) { 125 if (state == 'Publié') { 126 $('#edit-field-event-publish-date-wrapper').show(); 127 $('#edit-field-event-publish-date-0-value-date').val(date); 128 $('#edit-field-event-publish-date-0-value-time').val(hours); 129 } else { 130 $('#edit-field-event-publish-date-wrapper').hide(); 131 } 132 } 133 if (($('#node-economical-dashboard-form').length) || ($('#node-economical-dashboard-edit-form').length)) { 134 135 if (state == 'Publié') { 136 $('#edit-field-dashboard-publish-date-wrapper').show(); 137 $('#edit-field-dashboard-publish-date-0-value-date').val(date); 138 $('#edit-field-dashboard-publish-date-0-value-time').val(hours); 139 } else { 140 $('#edit-field-dashboard-publish-date-wrapper').hide(); 141 } 142 } 143 }) 144 145 if (($('#media-document-add-form').length) || ($('#media-document-edit-form').length)) { 146 $("#edit-field-document-nature").change(function () { 147 var nature = $('#edit-field-document-nature').val(); 148 if (nature == 1) { 149 $('#edit-field-document-type-wrapper').show(); 150 $('#edit-field-document-topic-wrapper').show(); 151 } 152 else { 153 $('#edit-field-document-type-wrapper').hide(); 154 $('#edit-field-document-topic-wrapper').hide(); 155 } 156 }); 157 } 158 159 if (($('#media-document-add-form').length) || ($('#media-document-edit-form').length)) { 160 Drupal.behaviors.fileAutoUpload = { 161 attach: function attach(context) { 162 id = $('input[name="field_media_document[0][fids]"]').val() 163 name = $('[data-drupal-selector="edit-field-media-document-0-file-' + id + '-filename"]').text(); 164 var n = name.split('.'); 165 ext=n[n.length - 1]; 166 if (ext) { 167 $('#edit-field-document-format-0-value').val('.' + ext); 168 }else { 169 $('#edit-field-document-format-0-value').val(''); 170 } 171 $(context) 172 .find('input[type="file"]') 173 .once('auto-file-upload') 174 .on('change.autoFileUpload', Drupal.file.triggerUploadButton); 175 176 }, 177 }; 178 } 179 $('.delete-session').click(function () { 180 sessionDelete ($(this).attr('sid')); 181 }); 182 $('.delete-all-session').click(function (e) { 183 var url = window.location.href; 184 e.preventDefault(); 185 var abonnement = $('#edit-abonnement').val(); 186 var message = "Ãtes-vous sûr(e) de vouloir supprimer les sessions ?"; 187 if(abonnement != ""){ 188 message = "Ãtes-vous sûr(e) de vouloir supprimer les sessions de l'abonnement "+ abonnement +" ?"; 189 } 190 var decision = confirm(message); 191 url = url.replace('#', ''); 192 if (decision) { 193 $.ajax({ 194 url: '/deleteSession', 195 type: 'POST', 196 dataType: 'json', 197 data: { 198 abonnement: abonnement 199 }, 200 success: function (response) { 201 if (response.data === 'success') { 202 window.location.href = url; 203 } 204 } 205 }); 206 } 207 }); 208 if ($('#edit-field-article-poool-content-type').length > 0) { 209 var poool = $('#edit-field-article-poool-content-type').val();
210 if (poool == 'free' || poool == 'reserved') { 211 $('#edit-group-article-price').hide(); 212 $('#edit-group-price').hide(); 213 } 214 } 215 $("#edit-field-article-poool-content-type").change(function () { 216 var poool_category = $(this).val(); 217 if (poool_category == 'free' || poool_category == 'reserved') { 218 $('#edit-group-article-price').hide(); 219 $('#edit-group-price').hide(); 220 } 221 else { 222 $('#edit-group-article-price').show(); 223 $('#edit-group-price').show(); 224 } 225 }); 226 227 if ($("form").hasClass("newsletter-entity-form")) { 228 var my_elem = document.getElementById('edit-field-newsletter-send-date-0'); 229 var span = document.createElement('span'); 230 span.innerHTML = ''; 231 span.className = 'errors_nsl_send_date'; 232 span.style.cssText = 'color: #ff0000'; 233 my_elem.parentNode.insertBefore(span, my_elem); 234 $('#edit-actions').on('mouseover', function (event) { 235 var send_date = $('#edit-field-newsletter-send-date-0-value-date').val(); 236 var send_time = $('#edit-field-newsletter-send-date-0-value-time').val(); 237 dateParts = send_date.split('-'); 238 timeParts = send_time.split(':'); 239 date = new Date(dateParts[0], parseInt(dateParts[1], 10) - 1, dateParts[2], timeParts[0], timeParts[1]); 240 send_datetime = date.getTime(); 241 date_now = new Date().getTime(); 242 if (parseInt(send_datetime) < parseInt(date_now)) { 243 $('.errors_nsl_send_date').html("Date d\'envoi de la newsletter doit être supérieur à la date actuelle"); 244 $('#edit-actions').hide(); 245 $("#edit-field-newsletter-send-date-0").css("border-color", "#ff0000"); 246 } 247 }); 248 249 /*$('#edit-field-newsletter-send-date-0').on('mouseover', function (event) { 250 nsl_quot_article_unchecked(); 251 });*/ 252 $('#edit-field-newsletter-send-date-0-value-date, #edit-field-newsletter-send-date-0-value-time').on('change', function (event) { 253 nsl_quot_article_unchecked(); 254 }); 255 256 $("#edit-field-newsletter-send-date-0-value-date, #edit-field-newsletter-send-date-0-value-time").change(function () { 257 $('#edit-actions').show(); 258 $('.errors_nsl_send_date').html(""); 259 $("#edit-field-newsletter-send-date-0").css("border-color", ""); 260 }); 261 262 $("#edit-submit").click(function () { 263 $("#edit-submit").hide(); 264 }); 265 266 } 267 ///////////////////////////////// 268 269 if ($("form").hasClass("eventmedia-entity-form") || $("form").hasClass("classified-entity-form") || $("form").hasClass("book-entity-form") 270 || $("form").hasClass("node-notification-form") || $("form").hasClass("node-notification-edit-form") || $("form").hasClass("reserved-title-entity-form") 271 || $("form").hasClass("vintage-entity-form") || $("form").hasClass("selections-enitity-form") || $("form").hasClass("position-entity-form") 272 || $("form").hasClass("node-job-offer-form")) { 273 274 275 var my_elem = document.getElementById('edit-field-option-planification-0'); 276 var span = document.createElement('span'); 277 span.innerHTML = ''; 278 span.className = 'errors_planification_date'; 279 span.style.cssText = 'color: #ff0000'; 280 my_elem.parentNode.insertBefore(span, my_elem); 281 282 $('#edit-submit').on('mouseover', function (event) { 283 284 var scheduler_type = $('#edit-field-option-planification-0-scheduler-type').val(); 285 var date_deb = $('#edit-field-option-planification-0-value-date').val(); 286 var time_deb = $('#edit-field-option-planification-0-value-time').val(); 287 var date_fin = $('#edit-field-option-planification-0-end-value-date').val(); 288 var time_fin = $('#edit-field-option-planification-0-end-value-time').val(); 289 290 var debut = new Date(date_deb + ' ' + time_deb); 291 var fin = new Date(date_fin + ' ' + time_fin); 292 var CurrentDate = new Date(); 293 294 if (scheduler_type == 'scheduler_field_type_publication') { 295 if (debut > fin) { 296 $('.errors_planification_date').html("Date fin doit être supérieur au date début"); 297 $('#edit-actions').hide(); 298 $("#edit-field-option-planification-0").css("border-color", "#ff0000"); 299 } 300 301 if (CurrentDate > fin) { 302 $('.errors_planification_date').html("Période de planification est dépassée"); 303 $('#edit-actions').hide(); 304 $("#edit-field-option-planification-0").css("border-color", "#ff0000"); 305 } 306 } 307 }) 308 309 $("#edit-field-option-planification-0-value-date, #edit-field-option-planification-0-value-time, #edit-field-option-planification-0-e
309nd-value-date, #edit-field-option-planification-0-end-value-time, #edit-field-option-planification-0-scheduler-type").change(function () { 310 311 var scheduler_type = $('#edit-field-option-planification-0-scheduler-type').val(); 312 var date_deb = $('#edit-field-option-planification-0-value-date').val(); 313 var time_deb = $('#edit-field-option-planification-0-value-time').val(); 314 var date_fin = $('#edit-field-option-planification-0-end-value-date').val(); 315 var time_fin = $('#edit-field-option-planification-0-end-value-time').val(); 316 317 var debut = new Date(date_deb + ' ' + time_deb); 318 var fin = new Date(date_fin + ' ' + time_fin); 319 var CurrentDate = new Date(); 320 321 322 if ((((CurrentDate < debut) || (CurrentDate > fin)) && scheduler_type == 'scheduler_field_type_publication') || 323 (((CurrentDate >= debut) && (CurrentDate <= fin)) && scheduler_type == 'scheduler_field_type_disabled')) { 324 $('#edit-status-value').prop("checked", false); 325 } 326 else if ((((CurrentDate >= debut) && (CurrentDate <= fin)) && scheduler_type == 'scheduler_field_type_publication') || 327 (((CurrentDate < debut) || (CurrentDate > fin)) && scheduler_type == 'scheduler_field_type_disabled')) { 328 $('#edit-status-value').prop("checked", true); 329 } 330 331 $('#edit-actions').show(); 332 $('.errors_planification_date').html(""); 333 $("#edit-field-option-planification-0").css("border-color", ""); 334 }); 335 336 $("#edit-status-value").click(function () { 337 var scheduler_type = $('#edit-field-option-planification-0-scheduler-type').val(); 338 var date_deb = $('#edit-field-option-planification-0-value-date').val(); 339 var time_deb = $('#edit-field-option-planification-0-value-time').val(); 340 var date_fin = $('#edit-field-option-planification-0-end-value-date').val(); 341 var time_fin = $('#edit-field-option-planification-0-end-value-time').val(); 342 343 344 var debut = new Date(date_deb + ' ' + time_deb); 345 var fin = new Date(date_fin + ' ' + time_fin); 346 var CurrentDate = new Date(); 347 348 349 if ((((CurrentDate < debut) || (CurrentDate > fin)) && scheduler_type == 'scheduler_field_type_publication' && $(this).prop("checked") == true) || 350 (((CurrentDate >= debut) && (CurrentDate <= fin)) && scheduler_type == 'scheduler_field_type_disabled' && $(this).prop("checked") == false)) { 351 $('#edit-status-value').prop("checked", false); 352 $('.errors_planification_date').html("Vérifier période de planification"); 353 } 354 else if ((((CurrentDate >= debut) && (CurrentDate <= fin)) && scheduler_type == 'scheduler_field_type_publication' && $(this).prop("checked") == false) || 355 (((CurrentDate < debut) || (CurrentDate > fin)) && scheduler_type == 'scheduler_field_type_disabled' && $(this).prop("checked") == true)) { 356 $('#edit-status-value').prop("checked", true); 357 $('.errors_planification_date').html("Vérifier période de planification"); 358 } 359 }) 360 } 361 362 363 if ($("body").hasClass("path-eventmedia-entity") || $("form").hasClass("eventmedia-entity-form")|| $("form").hasClass('views-exposed-form')) { 364 if ($("form").hasClass("eventmedia-entity-add-form")) { 365 var pathname = window.location.pathname; 366 var search = window.location.search; 367 var hash = window.location.hash; 368 369 var basePath = '/eventmedia_entity/add'; 370 371 if (pathname === basePath) { 372 if (!search && !hash) { 373 $('#edit-field-event-media-support').empty(); 374 $('#edit-field-event-media-support').append('<option value="_none">- Choisir une valeur -</option>'); 375 376 $('#edit-field-emission').empty(); 377 $('#edit-field-emission').append('<option value="_none">- Choisir une valeur -</option>'); 378 } else { 379 var support = $('#edit-field-event-media-support').val(); 380 var emission = $('#edit-field-emission').val(); 381 getEventMedia(support, 'emission', 'edit-field-emission', emission); 382 getEmissionAnimateur(emission,'emission'); 383 384 var media_txt = $('#edit-field-event-media-type option:selected').text(); 385 if( media_txt == 'Presse' || media_txt == 'Films et séries') { 386 $('#edit-field-event-media-date-0-value-time').hide(); 387 } 388 else { 389 var now = new Date(); 390 var hour = now.getHours().toString().padStart(2, '0'); 391 var min = now.getMinutes().toString().padStart(2, '0'); 392 var sec = now.getSeconds().toString().padStart(2, '0'); 393 var time = hour + ':' + min + ':' + sec; 394 395 $('#edit-field-event-media-date-0-value-time').val(time); 396 $('#edit-field-event-media-date-0-value-time').show(); 397 } 398 399 } 400 } 401 } 402 if( $("form").hasClass('views-exposed-form')){ 403 404 $('#edit-field-event-media-support').empty(); 405 $('#edit-field-event-media-support').append('<option value="_none">- Choisir une valeur -</option>'); 406 407 $('#edit-field-emission').empty(); 408 $('#edit-field-emission').append('<option value="_none">- Choisir une valeur -</option>'); 409 410 var media = $('#edit-field-event-media-type-target-id').val(); 411 var name = $('#edit-field-event-media-type-target-id option:selected').text(); 412 $('.form-item-field-films-target-id').hide() 413 if(media != "All"){ 414 getEventMediaFilter(media, 'media_company', 'edit-field-event-media-support-target-id'); 415 if(name == 'Films et séries'){ 416 $(".form-item-field-emission-target-id").hide(); 417 $('.form-item-field-films-target-id').show() 418 }else{ 419 $(".form-item-field-emission-target-id").show(); 420 $('.form-item-field-films-target-id').hide() 421 } 422 $("#edit-field-event-media-support-target-id").bind("change", function (){ 423 var support = $('#edit-field-event-media-support-target-id').val(); 424 var emission = $('#edit-field-emission-target-id').val(); 425 getEventMediaFilter(support, 'emission', 'edit-field-emission-target-id', emission); 426 }) 427 } 428 $('#edit-field-event-media-type-target-id').bind("change", function () { 429 var media = $('#edit-field-event-media-type-target-id').val(); 430 var name = $('#edit-field-event-media-type-target-id option:selected').text(); 431 $('.form-item-field-films-target-id').hide() 432 getEventMediaFilter(media, 'media_company', 'edit-field-event-media-support-target-id'); 433 if(name == 'Films et séries'){ 434 $(".form-item-field-emission-target-id").hide(); 435 $('.form-item-field-films-target-id').show() 436 }else{ 437 $(".form-item-field-emission-target-id").show(); 438 $('.form-item-field-films-target-id').hide() 439 } 440 $("#edit-field-event-media-support-target-id").bind("change", function (){ 441 var support = $('#edit-field-event-media-support-target-id').val(); 442 var emission = $('#edit-field-emission-target-id').val(); 443 getEventMediaFilter(support, 'emission', 'edit-field-emission-target-id', emission); 444 }) 445 }); 446 } 447 448 if ($("form").hasClass("eventmedia-entity-edit-form")) { 449 var media = $('#edit-field-event-media-type').val(); 450 var support = $('#edit-field-event-media-support').val(); 451 var emission = $('#edit-field-emission').val(); 452 getEventMedia(media, 'media_company', 'edit-field-event-media-support', support); 453 getEventMedia(support, 'emission', 'edit-field-emission', emission); 454 } 455 456 if ($("form").hasClass("eventmedia-entity-add-form")) { 457 var media = $('#edit-field-event-media-type').val(); 458 if (media != "All") { 459 // getEventMedia(media, 'media_company', 'edit-field-event-media-support'); 460 } 461 } 462 463 $('#edit-field-event-media-type').bind("change", function () { 464 var media = $('#edit-field-event-media-type').val(); 465 getEventMedia(media, 'media_company', 'edit-field-event-media-support'); 466 $('#edit-field-emission').empty(); 467 $('#edit-field-emission').append('<option value="_none">- Choisir une valeur -</option>'); 468 469 var media_txt = $('#edit-field-event-media-type option:selected').text(); 470 if( media_txt == 'Presse' || media_txt == 'Films et séries') { 471 $('#edit-field-event-media-date-0-value-time').val('00:00:00'); 472 $('#edit-field-event-media-date-0-value-time').hide(); 473 //$('#edit-field-event-media-date-0-value-time').removeAttr('required').removeClass('required').attr('aria-required', 'false'); 474 } 475 else { 476 var now = new Date(); 477 var hour = now.getHours().toString().padStart(2, '0'); 478 var min = now.getMinutes().toString().padStart(2, '0'); 479 var sec = now.getSeconds().toString().padStart(2, '0'); 480 var time = hour + ':' + min + ':' + sec; 481 482 $('#edit-field-event-media-date-0-value-time').val(time); 483 $('#edit-field-event-media-date-0-value-time').show(); 484 } 485 }); 486 $('#edit-field-event-media-support').bind("change", function () { 487 var support = $('#edit-field-event-media-support').val(); 488 getEventMedia(support, 'emission', 'edit-field-emission'); 489 }); 490 } 491 $('#edit-field-emission').bind("change", function () { 492 var emission = $('#edit-field-emission').val(); 493 getEmissionAnimateur(emission,'emission'); 494 }); 495 496 497 $('#edit-submit-evenement-media').on('click', function(){ 498 $('#edit-field-event-media-type-target-id').bind("change", function () { 499 var media = $('#edit-field-event-media-type-target-id').val(); 500 getEventMedia(media, 'media_company', 'edit-field-event-media-support-target-id'); 501 }); 502 }) 503 /* if ($("form").hasClass("eventmedia-entity-clone-form")) { 504 $('#eventmedia-entity-clone-form').submit(function (event) { 505 window.location.href = '/admin/content/eventmedia_entity'; 506 }); 507 $('#edit-field-event-media-support-target-id').val('_none'); 508 $('#edit-field-films-target-id').val('_none'); 509 $('#edit-field-event-media-type-target-id').val('_none'); 510 var media = $('#edit-field-event-media-type').val(); 511 var support = $('#edit-field-event-media-support').val(); 512 var emission = $('#edit-field-emission').val(); 513 getEventMedia(media, 'media_company', 'edit-field-event-media-support', support); 514 getEventMedia(support, 'emission', 'edit-field-emission', emission); 515 }*/ 516 517 518 Drupal.behaviors.cleanUrlAfterClone = { 519 attach: function (context, settings) { 520 // Vérifiez que l'utilisateur a été redirigé à la page ciblée 521 if (window.location.pathname === '/admin/content/eventmedia_entity') { 522 // Supprimez tous les paramètres de l'URL 523 var cleanUrl = window.location.origin + window.location.pathname; 524 window.history.replaceState({}, document.title, cleanUrl); 525 } 526 } 527 }; 528 529
530 if ($("form").hasClass("article-entity-billet-blog-add-form")) { 531 var url = window.location.href; 532 if (url.indexOf('?blog_id=') != -1) { 533 var blog = $("#edit-field-blog option:selected").text(); 534 var my_elem = document.getElementById('edit-group-blog-categorization-menu'); 535 var span = document.createElement('span'); 536 span.innerHTML = 'Blog: ' + blog; 537 span.className = 'errors_nsl_send_date'; 538 span.style.cssText = 'font-weight: bold'; 539 my_elem.parentNode.insertBefore(span, my_elem); 540 } 541 } 542 543 $('#edit-electre-import').bind('click',function (e){ 544 e.preventDefault(); 545 var ean = $('#edit-field-book-isbn-0-value').val(); 546 var page = 'add'; 547 if ($("form").hasClass("book-entity-edit-form")) { 548 page = 'edit' 549 } 550 $.ajax({ 551 url: '/getBook', 552 type: 'POST', 553 dataType: 'json', 554 data: { 555 ean: ean, 556 page: page, 557 }, 558 success: function (response) { 559 if (response.data === 'success') { 560 var redirect = window.location.href; 561 var res = redirect.split('ean'); 562 var build = redirect.split('build_cache_id'); 563 var destination = redirect.split('destination'); 564 565 if (res.length == 1) { 566 redirect = res[0] + '?ean=' + ean; 567 } 568 else { 569 redirect = res[0] + 'ean=' + ean; 570 } 571 if ((res.length == 1) && (build.length == 2)) { 572 redirect = res[0] + '&ean=' + ean; 573 } 574 if ((res.length == 2) && (build.length == 2)) { 575 redirect = res[0] + 'ean=' + ean; 576 } 577 if ((destination.length == 2) && (res.length == 1) && (page == 'edit')) { 578 redirect = window.location.href + '&ean=' + ean; 579 } 580 if ((destination.length == 2) && (res.length == 2) && (page == 'edit')) { 581 redirect = window.location.href; 582 } 583 584 window.location.href = redirect; 585 }else { 586 var ab = '<div data-drupal-messages="" class="getbook">\n' + 587 ' <div role="contentinfo" aria-label="Message d\'erreur" class="messages messages--error">\n' + 588 ' <div role="alert">\n' + 589 ' <h2 class="visually-hidden">Message d\'erreur</h2>\n' + 590 ' <ul class="messages__list">\n' + 591 ' <li>'+response.msg+'</li>\n' + 592 ' \n' + 593 ' </ul>\n' + 594 ' </div>\n' + 595 ' </div>\n' + 596 ' </div>'; 597 $('.getbook').remove(); 598 $(ab).insertBefore('#edit-field-book-isbn-wrapper'); 599 } 600 } 601 }); 602 }) 603 604 if ($("body").hasClass("path-article-entity")) { 605 $('body').addClass('article-wrapper-button'); 606 607 $('#btn_add_bloc_ean_book').click(function (e) { 608 e.preventDefault(); 609 $(".getbook").addClass("hidden"); 610 var exist_input = false; 611 $('.nb-book').find('input').each(function (e) { 612 if (($(this).attr('type') == 'text') && ($(this).attr('id') != 'ean_book')) { 613 if ($(this).val() == '') { 614 exist_input = true; 615 } 616 } 617 }); 618 619 if (exist_input == true) { 620 $("#bloc_ean_book").removeClass("hidden"); 621 $('#bloc_ean_book').attr("open", "open"); 622 $('#ean_book').val(''); 623 } 624 else { 625 var ab = '<div data-drupal-messages="" class="getbook">\n' + 626 ' <div role="contentinfo" aria-label="Message d\'erreur" class="messages messages--error">\n' + 627 ' <div role="alert">\n' + 628 ' <h2 class="visually-hidden">Message d\'erreur</h2>\n' + 629 ' <ul class="messages__list">\n' + 630 ' <li>Cliquer sur le bouton "Ajouter un autre élément" pour insérer un nouveau livre</li>\n' + 631 ' \n' + 632 ' </ul>\n' + 633 ' </div>\n' + 634 ' </div>\n' + 635 ' </div>'; 636 $('.getbook').remove(); 637 $(ab).insertBefore('#bloc_ean_book'); 638 } 639 }); 640 641 $('.get_ean').click( function (e) { 642 e.preventDefault(); 643 $('.getbook').remove(); 644 var div_loader = '<div data-drupal-messages="" class="loader_book"><div class="ajax-loader"></div></div>'; 645 $(div_loader).insertBefore('.get_ean'); 646 var ean = $('#ean_book').val(); 647 $.ajax({ 648 url: '/eanAddBook', 649 type: 'POST', 650 dataType: 'json', 651 data: { 652 ean: ean, 653 }, 654 beforeSend: function () { 655 $('.loader_book').find('.ajax-loader').fadeIn('slow'); 656 $("#edit-get-ean").hide(); 657 }, 658 complete: function () { 659 $('.loader_book').find('.ajax-loader').fadeOut('slow'); 660 $("#edit-get-ean").show(); 661 662 $('.loader_book').remove(); 663 }, 664 success: function (response) { 665 if (response.data === 'success') { 666 $('.nb-book').find('input').each(function (e) { 667 if(($(this).attr('type') == 'text') && ($(this).attr('id') != 'ean_book')){ 668 if($(this).val() == ''){ 669 $(this).val(response.book); 670 } 671 } 672 }); 673 $("#bloc_ean_book").addClass("hidden"); 674 }else { 675 var ab = '<div data-drupal-messages="" class="getbook">\n' + 676 ' <div role="contentinfo" aria-label="Message d\'erreur" class="messages messages--error">\n' + 677 ' <div role="alert">\n' + 678 ' <h2 class="visually-hidden">Message d\'erreur</h2>\n' + 679 ' <ul class="messages__list">\n' + 680 ' <li>'+response.msg+'</li>\n' + 681 ' \n' + 682 ' </ul>\n' + 683 ' </div>\n' + 684 ' </div>\n' + 685 ' </div>'; 686 $(ab).insertBefore('#bloc_ean_book'); 687 } 688 } 689 }); 690 //$('.getbook').remove(); 691 const scrollToBloc = $(window).scrollTop() - 200; 692 $("html,body").animate({scrollTop: scrollToBloc}, 500) 693 }); 694 }; 695 696 $('#views-exposed-form-sessions-history-sessions-history .fieldset-legend').attr('style','opacity:0'); 697 if( $('#views-exposed-form-sessions-history-sessions-history #edit-session-inactive').is(':checked') ){ 698 $('.delete-session').hide(); 699 } 700 href = $('.csv-feed .feed-icon').attr('href'); 701 if(href){ 702 href = href.replace('http','https'); 703 $('.csv-feed .feed-icon').attr('href',href); 704 } 705 if ($("form").hasClass("newsletter-entity-quotidienne-add-form")) { 706 nsl_quot_article_unchecked(); 707 $(document).ajaxSuccess(function (event, xhr, settings) { 708 nsl_quot_article_unchecked(); 709 }); 710 } 711 $('.vintage_table').on('click', function (e) { 712 e.preventDefault(); 713 714 //récupere id prix littéraire 715 var path = window.location.pathname; 716 var segments = path.split('/'); 717 var prixlitt_Id = segments[2]; 718 719 select_millesime($(this), prixlitt_Id); 720 }); 721 $(document).on('click', '.selection_book', function (e) { 722 e.preventDefault(); 723 $('.selection_book.clicked').removeClass('clicked').closest('tr').css('background-color', ''); 724 var id = $(this).data('id'); 725 $(this).addClass('clicked').closest('tr').css('background-color', '#ffffcc'); 726 $(".view_book").addClass('hidden'); 727 $("#edit-view-book-"+id).removeClass('hidden'); 728 $("#add_ouvrage").removeAttr("style"); 729 $(".add_ouvrage_electre").removeAttr("style"); 730 document.cookie = "plitt_selectprix=" + id + "; Path=/"; 731 }); 732 $(document).on('click', '.selection_book', function (e) { 733 e.preventDefault(); 734 $('.selection_book.clicked').removeClass('clicked').closest('tr').css('background-color', ''); 735 var id = $(this).data('id'); 736 $(this).addClass('clicked').closest('tr').css('background-color', '#ffffcc'); 737 $(".view_auteur").addClass('hidden'); 738 $("#edit-view-auteur-"+id).removeClass('hidden'); 739 $("#add_auteur").removeAttr("style"); 740 document.cookie = "plitt_selectprix=" + id + "; Path=/"; 741 }); 742 $('.award-entity-edit-form').ready( function (e) {
743 var urlParams = new URLSearchParams(window.location.search); 744 var milesime = urlParams.get('millesime'); 745 var selection = urlParams.get('selection'); 746 747 //récupere id prix littéraire 748 var path = window.location.pathname; 749 var segments = path.split('/'); 750 var prixlitt_Id = segments[2]; 751 752 $('#vintage_table_'+milesime).addClass('clicked').closest('tr').css('background-color', '#ffffcc'); 753 $('#selection_book_'+selection).addClass('clicked').closest('tr').css('background-color', '#ffffcc'); 754 $('#selection_auteur_'+selection).addClass('clicked').closest('tr').css('background-color', '#ffffcc'); 755 (milesime != null)? document.cookie = "plitt_vintprix=" + milesime + "; Path=/":document.cookie = "plitt_vintprix=; Path=/"; 756 (selection != null)? document.cookie = "plitt_selectprix="+selection+"; Path=/":document.cookie = "plitt_selectprix=; Path=/"; 757 (prixlitt_Id != null)? document.cookie = "plitt_id="+prixlitt_Id+"; Path=/":document.cookie = "plitt_id=; Path=/"; 758 }); 759 function select_millesime(millessime, prixlitt_Id){ 760 var idSelection = millessime.data('id'); 761 $(".view_selection").addClass('hidden'); 762 $(".view_jury").addClass('hidden'); 763 $(".view_book").addClass('hidden'); 764 $(".view_auteur").addClass('hidden'); 765 $("#edit-view-selection-"+idSelection).removeClass('hidden'); 766 $("#edit-view-jury-"+idSelection).removeClass('hidden'); 767 $('.vintage_table.clicked').removeClass('clicked').closest('tr').css('background-color', ''); 768 $('.selection_book.clicked').removeClass('clicked').closest('tr').css('background-color', ''); 769 $('.selection_auteur.clicked').removeClass('clicked').closest('tr').css('background-color', ''); 770 millessime.addClass('clicked').closest('tr').css('background-color', '#ffffcc'); 771 document.cookie = "plitt_id=" + prixlitt_Id + "; Path=/"; 772 document.cookie = "plitt_vintprix=" + idSelection + "; Path=/"; 773 document.cookie = "plitt_selectprix=; Path=/"; 774 $("#add_Selection").removeAttr("style"); 775 $("#add_jury").removeAttr("style"); 776 $("#add_ouvrage").css('display','none'); 777 $("#add_ouvrage_electre").css('display','none'); 778 $("#add_auteur").css('display','none'); 779 } 780 781 if ($('.import-mv-form').length) { 782 $('.ui-autocomplete').bind("click", function () { 783 var categorie = $('#edit-categories').val().split(' ('); 784 id_categorie = categorie[0]; 785 getNbSemaineCouvertes(id_categorie); 786 787 }); 788 } 789 790 $('.export-classement-mv').on('click', function(e) { 791 e.preventDefault(); 792 793 var currentUrl = window.location.href; 794 var queryString = currentUrl.split('?')[1]; 795 var newUrl = $(this).attr('href') + '?' + queryString; 796 $(this).attr('href', newUrl); 797 798 window.location.href = newUrl; 799 }); 800 801 $('.js-export-with-filters').on('click', function (e) { 802 e.preventDefault(); 803 804 window.location.href = $(this).attr('href') + window.location.search; 805 }); 806 $('div.article-event__col--action').on('click', 'a', function () { 807 var email = $(this).data('mail'); 808 var subscriptionNumber = $(this).data('subscription'); 809 $('#modal-confirm-remove-user span.user-email').html(email); 810 $('#modal-confirm-remove-user span.subscription-number').html(subscriptionNumber); 811 }); 812 813 $('div.bloc-ressource__footer--s1').on('click', 'a', function () { 814 var email = $(this).data('mail'); 815 var subscriptionNumber = $(this).data('subscription'); 816 $('#modal-confirm-attach-user span.subscription-number').html(subscriptionNumber); 817 }); 818 819 $('#modal-confirm-remove-user .button--primary').on('click', function () { 820 var email = $('#modal-confirm-remove-user .user-email').text(); 821 var subscriptionNumber = $('#modal-confirm-remove-user .subscription-number').text(); 822 const url = new URL(window.location.href); 823 const sequenceNumber = url.searchParams.get('sequenceNumber'); 824 let detachmentUrl; 825 if (sequenceNumber) { 826 detachmentUrl = '/detachment-user?sequenceNumber=' + sequenceNumber; 827 } else { 828 detachmentUrl = '/detachment-user'; 829 } 830 $.ajax({ 831 url: detachmentUrl, 832 type: 'Delete', 833 dataType: 'json', 834 data: { 835 email: email, 836 subscriptionNumber: subscriptionNumber 837 }, 838 success: function (response) {
839 $('#modal-confirm-remove-user').fadeOut(); 840 window.location.reload(); 841 }, 842 error: function (xhr, status, error) { 843 $('#modal-confirm-remove-user .error-remove-user').html("Erreur pour détachement " + email + " dâune affaire."); 844 } 845 }); 846 }); 847 848 $('div.article-event__col--action').on('click', 'a', function () { 849 var email = $(this).data('mail'); 850 var subscriptionNumber = $(this).data('subscription'); 851 $('#modal-email').val(email); 852 $('#modal-subscription').val(subscriptionNumber); 853 }); 854 $('#modal-confirm-create-role-gest .button--primary').on('click', function () { 855 var email = $('#modal-email').val(); 856 var subscriptionNumber = $('#modal-subscription').val(); 857 const url = new URL(window.location.href); 858 const sequenceNumber = url.searchParams.get('sequenceNumber'); 859 let detachmentUrl; 860 if (sequenceNumber) { 861 detachmentUrl = '/attachment-user-manager?sequenceNumber=' + sequenceNumber; 862 } else { 863 detachmentUrl = '/attachment-user-manager'; 864 } 865 $.ajax({ 866 url: detachmentUrl, 867 type: 'Put', 868 dataType: 'json', 869 data: { 870 email: email, 871 subscriptionNumber: subscriptionNumber 872 }, 873 success: function (response) { 874 $('#modal-confirm-create-role-gest').fadeOut(); 875 window.location.reload(); 876 }, 877 error: function (xhr, status, error) { 878 $('#modal-confirm-create-role-gest .error-remove-user').html("Erreur pour ajouter " + email + " au rôle gestionnaire."); 879 } 880 }); 881 }); 882 883 $('#modal-confirm-remove-role-gest .button--primary').on('click', function () { 884 var email = $('#modal-email').val(); 885 var subscriptionNumber = $('#modal-subscription').val(); 886 const url = new URL(window.location.href); 887 const sequenceNumber = url.searchParams.get('sequenceNumber'); 888 let detachmentUrl; 889 if (sequenceNumber) { 890 detachmentUrl = '/detachment-user-manager?sequenceNumber=' + sequenceNumber; 891 } else { 892 detachmentUrl = '/detachment-user-manager'; 893 } 894 $.ajax({ 895 url: detachmentUrl, 896 type: 'Delete', 897 dataType: 'json', 898 data: { 899 email: email, 900 subscriptionNumber: subscriptionNumber 901 }, 902 success: function (response) { 903 $('#modal-confirm-remove-role-gest').fadeOut(); 904 window.location.reload(); 905 }, 906 error: function (xhr, status, error) { 907 $('#modal-confirm-create-role-gest .error-remove-user').html("Erreur pour retiré " + email + " au rôle gestionnaire."); 908 } 909 }); 910 }); 911 912 $('#modal-confirm-remove-jeton .button--primary').on('click', function () { 913 var email = $('#modal-email').val(); 914 var subscriptionNumber = $('#modal-subscription').val(); 915 const url = new URL(window.location.href); 916 const sequenceNumber = url.searchParams.get('sequenceNumber'); 917 let detachmentUrl; 918 if (sequenceNumber) { 919 detachmentUrl = '/detachment-user-reader?sequenceNumber=' + sequenceNumber; 920 } else { 921 detachmentUrl = '/detachment-user-reader'; 922 } 923 $.ajax({ 924 url: detachmentUrl, 925 type: 'Delete', 926 dataType: 'json', 927 data: { 928 email: email, 929 subscriptionNumber: subscriptionNumber 930 }, 931 success: function (response) { 932 $('#modal-confirm-remove-jeton').fadeOut(); 933 window.location.reload(); 934 }, 935 error: function (xhr, status, error) { 936 $('#modal-confirm-remove-jeton.error-remove-user').html("Erreur pour détachement " + email + " au rôle lecture."); 937 } 938 }); 939 }); 940 941 $('#modal-confirm-create-jeton .button--primary').on('click', function () { 942 var email = $('#modal-email').val(); 943 var subscriptionNumber = $('#modal-subscription').val(); 944 const url = new URL(window.location.href); 945 const sequenceNumber = url.searchParams.get('sequenceNumber'); 946 let detachmentUrl; 947 if (sequenceNumber) { 948 detachmentUrl = '/attachment-user-reader?sequenceNumber=' + sequenceNumber; 949 } else { 950 detachmentUrl = '/attachment-user-reader'; 951 } 952 $.ajax({ 953 url: detachmentUrl, 954 type: 'Put', 955 dataType: 'json', 956 data: { 957 email: email, 958 subscriptionNumber: subscriptionNumber 959 }, 960 success: function (response) {
961 $('#modal-confirm-create-jeton').fadeOut(); 962 window.location.reload(); 963 }, 964 error: function (xhr, status, error) { 965 $('#modal-confirm-create-jeton .error-remove-user').html("Le nombre de jetons indisponible."); 966 } 967 }); 968 }); 969 970 // Validation date d'envoi â formulaire NL Paramétrable (nl_edition_data) 971 var $nedDate = $('#edit-field-newsletter-sending-date-0'); 972 if ($nedDate.length) { 973 $('<span class="errors_nsl_send_date" style="color:#ff0000"></span>').insertBefore($nedDate); 974 975 $('#edit-actions').on('mouseover', function () { 976 var sendDate = $('#edit-field-newsletter-sending-date-0-value-date').val(); 977 var sendTime = $('#edit-field-newsletter-sending-date-0-value-time').val(); 978 if (!sendDate) { return; } 979 var dp = sendDate.split('-'); 980 var tp = sendTime ? sendTime.split(':') : ['0', '0']; 981 var dt = new Date(dp[0], parseInt(dp[1], 10) - 1, dp[2], tp[0], tp[1]); 982 if (dt.getTime() < new Date().getTime()) { 983 $('.errors_nsl_send_date').html("Date d\'envoi de la newsletter doit être supérieur à la date actuelle"); 984 $('#edit-actions').hide(); 985 $('#edit-field-newsletter-sending-date-0').css('border-color', '#ff0000'); 986 } 987 }); 988 989 $('#edit-field-newsletter-sending-date-0-value-date, #edit-field-newsletter-sending-date-0-value-time').on('change', function () { 990 $('#edit-actions').show(); 991 $('.errors_nsl_send_date').html(''); 992 $('#edit-field-newsletter-sending-date-0').css('border-color', ''); 993 }); 994 } 995 996 997 }); 998 999 function nsl_quot_article_unchecked() { 1000 var send_date = $('#edit-field-newsletter-send-date-0-value-date').val(); 1001 var send_time = $('#edit-field-newsletter-send-date-0-value-time').val(); 1002 dateParts = send_date.split('-'); 1003 timeParts = send_time.split(':'); 1004 date = new Date(dateParts[0], parseInt(dateParts[1], 10) - 1, dateParts[2], timeParts[0], timeParts[1]); 1005 send_datetime = date.getTime(); 1006 1007 let article_unchecked = '0'; 1008 $(".recup_article_quotidienne").each(function (index) { 1009 $(this).parent().parent().parent().show(); 1010 $(this).parent().parent().parent().parent().show(); 1011 if (parseInt(send_datetime / 1000) < parseInt($(this) 1012 .attr('article_date'))) { 1013 if ($(this).parent().parent().parent().hasClass('draggable')) { 1014 $(this).parent().parent().parent().hide(); 1015 } 1016 else { 1017 $(this).parent().parent().parent().parent().hide(); 1018 } 1019 article_unchecked += ',' + $(this).attr("article_id"); 1020 } 1021 $('#edit-field-article-unchecked-0-value').val(article_unchecked); 1022 }); 1023 } 1024 1025 function getEventMedia(id, vid, select, id_selected) { 1026 if (id) { 1027 $.ajax({ 1028 url: '/getSupport', 1029 type: 'POST', 1030 dataType: 'json', 1031 data: { 1032 id: id, 1033 vid: vid, 1034 id_selected: id_selected, 1035 }, 1036 success: function (response) { 1037 $('#' + select).empty(); 1038 $('#' + select).append(response); 1039 } 1040 }); 1041 } 1042 } 1043 1044 function getEmissionAnimateur(id, vid) { 1045 if (id) { 1046 $.ajax({ 1047 url: '/getEmissionAnimateur', 1048 type: 'POST', 1049 dataType: 'json', 1050 data: { 1051 id: id, 1052 vid: vid, 1053 }, 1054 success: function (response) { 1055 if (Array.isArray(response) && response.length > 0) { 1056 const $animatorTable = $('#field-animator-values tbody'); 1057 $animatorTable.empty(); 1058 let counter = 0; 1059 response.forEach(function (animatorLabel) { 1060 const rowId = `edit-field-animator-${counter}-target-id`; 1061 const newRow = $(` 1062 <tr class="draggable ${counter % 2 === 0 ? 'even' : 'odd'}" xmlns="http://www.w3.org/1999/html"> 1063 <td class="field-multiple-drag"> 1064 <a href="#" class="tabledrag-handle" title="Cliquer-déposer pour ré-organiser" style="display: none;"> 1065 <div class="handle"> </div> 1066 </a> 1067 </td> 1068 <td> 1069 <div class="js-form-item form-item js-form-type-entity-autocomplete form-type-entity-autocomplete js-form-item-field-animator-0-target-id form-item-field-animator-0-target-id form-no-label"> 1070 <label for="edit-field-animator-0-target-id--pTwCWmaQwDk" class="visually-hidden">Animateur (valeur ${counter})</label> 1071 <input 1072 data-drupal-selector="${rowId}" 1073 class="form-autocomplete form-text ui-autocomplete-input" 1074 data-autocomplete-path="/entity_reference_autocomplete/people_entity/default%3Apeople_entity/4kFvEaBNeXJ4klbVfq3dF8Cjkk_hzoy_sUd0AvCe430" 1075 type="text" 1076 id="${rowId}" 1077 name="field_animator[${counter}][target_id]" 1078 value="${animatorLabel}" 1079 size="60" 1080 maxlength="1024" 1081 placeholder="" autocomplete="off" data-listener-added_b56f0b93="true"> 1082 </div> 1083 </td> 1084 <td class="delta-order tabledrag-hide"> 1085 <div class="js-form-item form-item js-form-type-select form-type-select js-form-item-field-animator-0--weight form-item-field-animator-0--weight form-no-label"> 1086 <label for="edit-field-animator-0-weight--o6zWehJ4KXQ" class="visually-hidden">Poids pour la ligne ${counter+1}</label> 1087 <select data-drupal-selector="${rowId}-weight" class="field_animator-delta-order form-select" name="field_animator[${counter}][_weight]"> 1088 <option value="${counter}" selected>${counter}</option> 1089 </select> 1090 </div> 1091 </td> 1092 </tr> 1093 `); 1094 $animatorTable.append(newRow); 1095 counter++; 1096 }); 1097 Drupal.attachBehaviors($animatorTable[0]); 1098 const addMoreButton = document.querySelector('[data-drupal-selector="edit-field-animator-add-more"]'); 1099 if (addMoreButton) { 1100 const event = new MouseEvent('click', { 1101 view: window, 1102 bubbles: true, 1103 cancelable: true, 1104 }); 1105 addMoreButton.dispatchEvent(new MouseEvent('mousedown', { bubbles: true, cancelable: true })); 1106 addMoreButton.dispatchEvent(new MouseEvent('mouseup', { bubbles: true, cancelable: true })); 1107 addMoreButton.dispatchEvent(event); 1108 } 1109 } 1110 1111 }, 1112 error: function (e) { 1113 console.error('Erreur AJAX:', e); 1114 } 1115 }); 1116 } else { 1117 console.warn('Aucun ID fourni pour getEmissionAnimateur.'); 1118 } 1119 } 1120 1121 function getNbSemaineCouvertes (id_categorie) { 1122 if (id_categorie) { 1123 $.ajax({ 1124 url: '/getNbSemaineCouvert', 1125 type: 'POST', 1126 dataType: 'json', 1127 data: { 1128 id: id_categorie, 1129 }, 1130 success: function (response) { 1131 $('#edit-nb-semaine-couvert').val(response); 1132 } 1133 }); 1134 } 1135 } 1136 1137 $(document).ajaxSuccess(function (event, xhr, settings) { 1138 if ($("body").hasClass("path-article-entity") || $("body").hasClass("page-node-type-economical-dashboard") || $("form").hasClass("node-economical-dashboard-form") || $("form").hasClass("classified-entity-form")) { 1139 $('input[name="media[0][fields][field_document_format][0][value]"]').prop('readonly', true); 1140 Drupal.behaviors.fileAutoUpload = { 1141 attach: function attach(context) { 1142 name = $('.form-item-name').text(); 1143 var n = name.split('.'); 1144 ext=n[n.length - 1]; 1145 if (ext) { 1146 $('input[name="media[0][fields][field_document_format][0][value]"]').val('.' + ext); 1147 }else { 1148 $('input[name="media[0][fields][field_document_format][0][value]"]').val(''); 1149 } 1150 $(context) 1151 .find('input[type="file"]') 1152 .once('auto-file-upload'); 1153 //.on('change.autoFileUpload', Drupal.file.triggerUploadButton); 1154 }, 1155 }; 1156 1157 if (settings.url.indexOf("/media-library?media_library_opener_id=media_library") > -1) { 1158 $('select[name="media[0][fields][field_document_nature]"]').change(function (e) { 1159 var nature = $('select[name="media[0][fields][field_document_nature]"]').val(); 1160 if (nature == 1) { 1161 $('.form-item-media-0-fields-field-document-type').show(); 1162 $('.form-item-media-0-fields-field-document-topic').show(); 1163 } 1164 else { 1165 $('.form-item-media-0-fields-field-document-type').hide(); 1166 $('.form-item-media-0-fields-field-document-topic').hide(); 1167 } 1168 }); 1169 } 1170 } 1171 $('.delete-session').click(function () { 1172 sessionDelete ($(this).attr('sid')); 1173 }); 1174 1175 if ($("body").hasClass("path-article-entity") || ($('#media-library-content').length)) { 1176 var class_menu_quote = $('.media-library-menu-quote a').attr('class'); 1177 if (class_menu_quote) { 1178 if (class_menu_quote.indexOf('active') > -1) { 1179 $('div.div_add_quote').remove(); 1180 $("#media-library-add-form-wrapper").addClass("hidden"); 1181 var my_elem = document.getElementById('media-library-view'); 1182 var div = document.createElement('div'); 1183 div.className = 'div_add_quote'; 1184 div.style.cssText = 'border: 1px solid #bfbfbf; padding:16px'; 1185 my_elem.parentNode.insertBefore(div, my_elem); 1186 $('div.div_add_quote').append('<label for="quote_name" class="form-required">Nom</label><input class="form-text" type="text" id="quote_name" name="quote_name" size="60">'); 1187 $('div.div_add_quote').append('<label for="quote_name" id="quote_name_errors" class="quote_errors hidden">Le champ Nom est obligatoire</label>'); 1188 $('div.div_add_quote').append('<label for="quote_citation" class="form-required">Citation</label><textarea class="form-textarea" type="text" id="quote_citation" name="quote_citation" rows="5" cols="60"></textarea>'); 1189 $('div.div_add_quote').append('<label for="quote_citation" id="quote_citation_errors" class="quote_errors hidden">Le champ Citation est obligatoire</label>'); 1190 $('div.div_add_quote').append('<label for="quote_auteur">Auteur</label><input class="form-text" type="text" id="quote_auteur" name="quote_auteur" size="60"><br><br>'); 1191 $('div.div_add_quote').append('<button type="button" class="button button--primary btn-add-quote">Enregistrer</button>'); 1192 } 1193 } 1194 } 1195 1196 $('.btn-add-quote').click(function () { 1197 var quote_name = $('#quote_name').val(); 1198 var quote_citation = $('#quote_citation').val(); 1199 var quote_auteur = $('#quote_auteur').val(); 1200 if (quote_name === '') { 1201 $("#quote_name_errors").removeClass("hidden"); 1202 } else { 1203 $("#quote_name_errors").addClass("hidden"); 1204 } 1205 if (quote_citation === '') { 1206 $("#quote_citation_errors").removeClass("hidden"); 1207 } else { 1208 $("#quote_citation_errors").addClass("hidden"); 1209 } 1210 if (quote_name != '' && quote_citation != '') { 1211 $.ajax({ 1212 url: '/addQuote', 1213 type: 'POST', 1214 dataType: 'json', 1215 data: { 1216 name: quote_name, 1217 citation: quote_citation, 1218 auteur: quote_auteur, 1219 }, 1220 success: function (response) { 1221 if (response.data === 'success') { 1222 $(".ui-dialog-titlebar-close").trigger("click"); 1223 var $iframe = $('.cke_wysiwyg_frame'); 1224 $iframe.ready(function () { 1225 $iframe.contents() 1226 .find("body") 1227 .append('<drupal-media data-entity-type="media" data-entity-uuid="' + response.uuid + '"></drupal-media>'); 1228 $(".cke_button__source").trigger("click"); 1229 setTimeout(function () { 1230 $(".cke_button__source").trigger("click"); 1231 }, 100); 1232 }); 1233 1234 } 1235 } 1236 }); 1237 } 1238 }); 1239 }); 1240 1241 function sessionDelete (sid){ 1242 var decision = confirm("Ãtes-vous sûr(e) de vouloir supprimer cette session ?"); 1243 var url = window.location.href; 1244 url = url.replace('#', ''); 1245 if (decision) { 1246 jQuery.ajax({ 1247 url: '/disconnectedSession', 1248 type: 'POST', 1249 dataType: 'json', 1250 data: { 1251 sid: sid 1252 }, 1253 success: function (response) { 1254 if (response.data === 'success') { 1255 window.location.href = url; 1256 } 1257 } 1258 }); 1259 } 1260 } 1261 Drupal.behaviors.entityLHFormModal = { 1262 attach: function (context, settings) { 1263 $('.open-modal-link', context) 1264 .once('entity-lh-form-modal') 1265 .click(function () { 1266 1267 var url = Drupal.url('form_classement'); 1268 var action_form = "/form_classement" ; 1269 $('<form action="' + action_form + '" method="post"></form>') 1270 .appendTo('body') 1271 .dialog({ 1272 title: "Ajouter d'un ouvrage", 1273 modal: true, 1274 width: 1200, 1275 height: 600, 1276 open: function () { 1277 var modal_form = $(this); 1278 $.get(url, function (data) { 1279 var formHtml = $(data).find('.classement-modal-form').html(); 1280 modal_form.html(formHtml); 1281 myCustomModalBehavior(modal_form); 1282 $('#edit-submit').remove() 1283 }) 1284 }, 1285 close: function () { 1286 $(this).remove(); 1287 }, 1288 buttons: { 1289 "Submit": function () { 1290 var formData = $('form').serialize(); 1291 $.ajax({ 1292 type: 'POST', 1293 url: action_form, 1294 data: formData, 1295 success: function () { 1296 location.reload(); 1297 }, 1298 }); 1299 }, 1300 } 1301 }); 1302 }); 1303 } 1304 }; 1305 1306 function myCustomModalBehavior($modalContent) { 1307 const id_radio = { 1308 "m_radio_title": "elec_radio_title", 1309 "m_radio_editeur": "elec_radio_editeur", 1310 "m_radio_auteur": "elec_radio_auteur", 1311 "m_radio_price": "elec_radio_price" 1312 }; 1313 1314 for (const [masterRadioId, slaveRadioId] of Object.entries(id_radio)) { 1315 $modalContent.find(`#${slaveRadioId}, #${masterRadioId}`) 1316 .click(function () { 1317 const $clickedRadio = $(this); 1318 const $otherRadio = $modalContent.find(`#${slaveRadioId}, #${masterRadioId}`) 1319 .not($clickedRadio); 1320 $otherRadio.prop('checked', false); 1321 }); 1322 } 1323 } 1324 1325 jQuery('.view-classement-mv tbody tr').each(function () { 1326 var row = $(this); 1327 var positionWeeksInPeriod = row.find('td.views-field.views-field-field-position-weeks-in-period') 1328 .text(); 1329 var positionWeeksInRating = row.find('td.views-field.views-field-field-position-weeks-in-rating') 1330 .text(); 1331 var positionOldPosition = row.find('td.views-field.views-field-field-position-old-position') 1332 .text(); 1333 var positionRank = row.find('td.views-field.views-field-field-position-rank') 1334 .text(); 1335 var isbn = row.find('td.views-field.views-field-field-book-isbn') 1336 .text() 1337 var category = row.find('td.views-field.views-field-field-position-category') 1338 .text() 1339 var position_id = row.find('td.views-field.views-field-id') 1340 .text() 1341 var start_date = row.find('td.views-field.views-field-field-position-date time') 1342 .first() 1343 .attr('datetime') 1344 .split('T')[0]; 1345 1346 row.find('td.views-field.views-field-field-position-weeks-in-period') 1347 .addClass('hidden'); 1348 row.find('td.views-field.views-field-field-position-weeks-in-rating') 1349 .addClass('hidden'); 1350 row.find('td.views-field.views-field-field-position-old-position') 1351 .addClass('hidden'); 1352 row.find('td.views-field.views-field-id') 1353 .addClass('hidden'); 1354 $.ajax({ 1355 url: '/getNewPosition/' + isbn.trim() +'/'+ position_id.trim() +'/'+category.trim() +'/'+start_date.trim(), 1356 type: 'GET', 1357 success: function (response) { 1358 if
1358 (response.data === 'success') { 1359 row.addClass('yellow-row'); 1360 } 1361 }, 1362 error: function (response) { 1363 1364 } 1365 }); 1366 }); 1367 jQuery('.view-classement-mv thead tr').each(function () { 1368 var row = $(this); 1369 row.find('th.views-field.views-field-field-position-weeks-in-period') 1370 .addClass('hidden'); 1371 row.find('th.views-field.views-field-field-position-weeks-in-rating') 1372 .addClass('hidden'); 1373 row.find('th.views-field.views-field-field-position-old-position') 1374 .addClass('hidden'); 1375 1376 row.find('th.views-field.views-field-id') 1377 .addClass('hidden'); 1378 }); 1379 1380 $('.views-field-delete-position-entity a:contains("supprimer")').each(function () { 1381 var classmentUrl = $(this).attr('href'); 1382 var id_mv = classmentUrl.split('/')[2]; 1383 $(this).html('<span class="custom-delete-icon" data-classement='+id_mv+'>❌</span>'); 1384 1385 }); 1386 1387 1388 $('.custom-delete-icon').on('click', function (e) { 1389 1390 e.preventDefault(); 1391 var url_delete_mv = $(this).data('classement'), 1392 decision = confirm('Vous allez supprimer ce livre du classement ?'), 1393 line = $(this).parent().parent().parent().closest('tr'); 1394 1395 if (decision) { 1396 $.ajax({ 1397 url: '/delete_classement/' + url_delete_mv, 1398 type: 'POST', 1399 success: function (response) { 1400 if (response.data === 'success') { 1401 line.slideUp().remove(); 1402 $('.view-classement-mv tbody tr').each(function (index) { 1403 $(this).find('td.views-field.views-field-field-position-rank').text(index + 1); 1404 }); 1405 } 1406 }, 1407 error: function (response) { 1408 var content = '<div class="alert alert-danger">' + response.msg + '</div>'; 1409 $('.tab-basket').before(content); 1410 } 1411 }); 1412 } 1413 }); 1414 1415 Drupal.behaviors.entityLHFormModal = { 1416 attach: function (context, settings) { 1417 $('.open-modal-link', context) 1418 .once('entity-lh-form-modal') 1419 .click(function () { 1420 var entityId = $(this) 1421 .parent() 1422 .parent() 1423 .find('td.views-field.views-field-id') 1424 .text(); 1425 var action_form = "/form_classement/" + $.trim(entityId) 1426 $('<form action="' + action_form + '" method="post"></form>') 1427 .appendTo('body') 1428 .dialog({ 1429 title: "Validation d'un ouvrage", 1430 modal: true, 1431 width: 1200, 1432 height: 500, 1433 open: function () { 1434 var modal_form = $(this); 1435 $.get('/form_classement/' + entityId, function (data) { 1436 var formHtml = $(data).find('.classement-modal-form').html(); 1437 modal_form.html(formHtml); 1438 myCustomModalBehavior(modal_form); 1439 $('#edit-submit').remove() 1440 }) 1441 }, 1442 close: function () { 1443 $(this).remove(); 1444 }, 1445 buttons: { 1446 "Submit": function () { 1447 var formData = $('form').serialize(); 1448 $.ajax({ 1449 type: 'POST', 1450 url: action_form, 1451 data: formData, 1452 success: function () { 1453 location.reload(); 1454 }, 1455 }); 1456 }, 1457 } 1458 }); 1459 }); 1460 1461 if ($("body").hasClass("path-eventmedia-entity") || $("form").hasClass("eventmedia-entity-form")) { 1462 if($('#edit-field-event-media-type').val() != '_none'){ 1463 var media = $('#edit-field-event-media-type').val(); 1464 var support = $('#edit-field-event-media-support').val(); 1465 getEventMedia(media, 'media_company', 'edit-field-event-media-support', support); 1466 } 1467 var button = $('.button_show_popup'); 1468 var fieldBookCitedWrapper = $('#edit-field-book-cited-wrapper'); 1469 button.insertAfter(fieldBookCitedWrapper); 1470 } 1471 } 1472 }; 1473 Drupal.behaviors.purchaseDialog = { 1474 attach: function (context, settings) { 1475 $('.purchase-link', context).once('purchaseDialog').click(function (e) { 1476 e.preventDefault(); // Empêche l'action par défaut du lien 1477 // Initialiser la boîte de dialogue 1478 $('#purchase-dialog').dialog({ 1479 modal: true, 1480 dialogClass: 'dialog-top', // Ajoute une classe CSS personnalisée 1481 }); 1482 }); 1483 } 1484 }; 1485 function myCustomModalBehavior($modalContent) { 1486 const id_radio = { 1487 "m_radio_title": "elec_radio_title", 1488 "m_radio_editeur": "elec_radio_editeur", 1489 "m_radio_auteur": "elec_radio_auteur", 1490 "m_radio_price": "elec_radio_price" 1491 }; 1492 1493 for (const [masterRadioId, slaveRadioId] of Object.entries(id_radio)) { 1494 $modalContent.find(`#${slaveRadioId}, #${masterRadioId}`) 1495 .click(function () { 1496 const $clickedRadio = $(this); 1497 const $otherRadio = $modalContent.find(`#${slaveRadioId}, #${masterRadioId}`) 1498 .not($clickedRadio); 1499 $otherRadio.prop('checked', false); 1500 }); 1501 } 1502 } 1503 // configuration date page visite utilisateur 1504 $('.feed-icon').text('test') 1505 1506 Drupal.behaviors.showAddButton = { 1507 attach: function (context, settings) { 1508 $('.search-button', context).once('add-button').on('click', function (e) { 1509 if (!$('input[name="filter_options"]:checked').length) { 1510 e.preventDefault(); 1511 $('#error-message').show(); 1512 } 1513 else { 1514 e.preventDefault(); 1515 $('#error-message').hide(); 1516 } 1517 }); 1518 1519 $(document).ajaxComplete(function () { 1520 if ($('#book-results-wrapper table').length > 0) { 1521 $('.add-selected-books', context).show(); 1522 } else { 1523 $('.add-selected-books', context).hide(); 1524 } 1525 }); 1526 } 1527 }; 1528 Drupal.behaviors.updateHiddenField = { 1529 attach: function (context, settings) { 1530 window.updateFieldModalBook = function (bookTitleWithId) { 1531 var bookIdToRemove = bookTitleWithId.match(/\((\d+)\)$/)?.[1]; 1532 if (bookIdToRemove) { 1533 var currentIds = $('#field-modal-book').val().split(',').filter(
1533Boolean); 1534 var updatedIds = currentIds.filter(function (id) { 1535 return id !== bookIdToRemove; 1536 }); 1537 $('#field-modal-book').val(updatedIds.join(',')); 1538 } else { 1539 console.error("Impossible d'extraire l'ID à partir du texte :", bookTitleWithId); 1540 } 1541 }; 1542 } 1543 }; 1544 Drupal.behaviors.addDeleteButton = { 1545 attach: function (context, settings) { 1546 $('[id^="edit-field-book-cited-"]', context).each(function () { 1547 var $inputField = $(this); 1548 if ($inputField.val().trim() !== '') { 1549 if ($inputField.next('.custom-delete-wrapper').length === 0) { 1550 var $deleteWrapper = $('<div>', { 1551 style: 'padding: 10px; display: inline-block;', 1552 class: 'custom-delete-wrapper' 1553 }); 1554 var $deleteIcon = $('<a>', { 1555 href: '#', 1556 class: 'custom-delete-icon', 1557 title: 'Supprimer ce livre', 1558 style: 'font-size: 14px; text-decoration: none; color: red;' 1559 }).append( 1560 $('<span>', { 1561 class: 'icon', 1562 html: 'â' 1563 }) 1564 ); 1565 1566 $deleteIcon.on('click', function (e) { 1567 e.preventDefault(); 1568 var bookTitleWithId = $inputField.val(); 1569 window.updateFieldModalBook(bookTitleWithId); 1570 $inputField.closest('tr').remove(); 1571 hideLastDeleteButton(); 1572 }); 1573 $deleteWrapper.append($deleteIcon); 1574 $inputField.after($deleteWrapper); 1575 } 1576 } else { 1577 $inputField.next('.custom-delete-wrapper').remove(); 1578 } 1579 }); 1580 function hideLastDeleteButton() { 1581 var deleteIcons = $('.custom-delete-wrapper'); 1582 if (deleteIcons.length > 0) { 1583 deleteIcons.last().hide(); 1584 } 1585 } 1586 hideLastDeleteButton(); 1587 } 1588 }; 1589 1590 Drupal.behaviors.addRemoveButton = { 1591 attach: function (context, settings) { 1592 Drupal.behaviors.addDeleteButton.attach(context, settings); 1593 Drupal.behaviors.updateHiddenField.attach(context, settings); 1594 } 1595 }; 1596 1597 // charger le chmap selected-eans hidden 1598 1599 Drupal.behaviors.sortTable = { 1600 attach: function (context, settings) { 1601 $('#book-results-wrapper table th.sortable', context).once('sortTable').click(function () { 1602 var column = $(this).data('column'); 1603 var table = $(this).closest('table'); 1604 var rows = table.find('tbody tr').toArray(); 1605 1606 var isAscending = !$(this).hasClass('sorted-asc'); 1607 table.find('th').removeClass('sorted-asc sorted-desc'); 1608 $(this).addClass(isAscending ? 'sorted-asc' : 'sorted-desc'); 1609 1610 var isDateColumn = $(this).data('column') === 'date-parution'; 1611 var isPriceColumn = $(this).data('column') === 'prix'; 1612 // Trier les lignes 1613 rows.sort(function (a, b) { 1614 var cellA = $(a).find('td[data-column="' + column + '"]').text().trim(); 1615 var cellB = $(b).find('td[data-column="' + column + '"]').text().trim(); 1616 1617 if (isDateColumn) { 1618 var dateA = new parseDate(cellA); 1619 var dateB = new parseDate(cellB); 1620 1621 if (isNaN(dateA) || isNaN(dateB)) { 1622 console.warn('Invalid date format:', cellA, cellB); 1623 return 0; 1624 } 1625 1626 // Comparer les dates 1627 return isAscending ? dateA - dateB : dateB - dateA; 1628 } 1629 else if (isPriceColumn) { 1630 var priceA = parsePrice(cellA); 1631 var priceB = parsePrice(cellB); 1632 1633 // Comparer les prix 1634 return isAscending ? priceA - priceB : priceB - priceA; 1635 } 1636 else { 1637 // Comparaison standard pour les colonnes textuelles 1638 return isAscending ? cellA.localeCompare(cellB) : cellB.localeCompare(cellA); 1639 } 1640 }); 1641 1642 rows.forEach(function (row) { 1643 table.find('tbody').append(row); 1644 }); }); 1645 1646 $('.bloc-event--s5 .bloc-event__head_abonnement div.sortable', context).once('sortTable').click(function () { 1647 var column = $(this).data('column'); 1648 var table = $(this).closest('.bloc-event--s5'); 1649 var rows = table.find('.user-row').toArray(); 1650 1651 var isAscending = !$(this).hasClass('sorted-asc'); 1652 table.find('.bloc-event__head_abonnement div').removeClass('sorted-asc sorted-desc'); 1653 $(this).addClass(isAscending ? 'sorted-asc' : 'sorted-desc'); 1654 1655 // Trier les lignes 1656 rows.sort(function (a, b) { console.log('sort'); 1657 var cellA = $(a).find('.article-event--bord p[data-column="' + column + '"]').text().trim(); 1658 var cellB = $(b).find('.article-event--bord p[data-column="' + column + '"]').text().trim(); 1659 1660 if (isAscending) { 1661 return cellA.localeCompare(cellB); 1662 } 1663 return cellB.localeCompare(cellA); 1664 }); 1665 1666 rows.forEach(function (row) { 1667 table.find('.all-user').append(row); 1668 }); 1669 }); 1670 } 1671 }; 1672 1673// Fonction pour convertir une date au format DD/MM/YYYY en objet Date 1674 function parseDate(dateStr) { 1675 var parts = dateStr.split('/'); 1676 if (parts.length !== 3) { 1677 console.warn('Invalid date format:', dateStr); 1678 return null; 1679 } 1680 return new Date(parts[2], parts[1] - 1, parts[0]); // Année, mois (0-indexé), jour 1681 } 1682 1683// Fonction pour convertir un prix en valeur numérique 1684 function parsePrice(priceStr) { 1685 var numericStr = priceStr.replace(/[^\d,.-]/g, '').replace(',', '.'); 1686 var numericValue = parseFloat(numericStr); 1687 return isNaN(numericValue) ? 0 : numericValue; 1688 } 1689 1690 Drupal.behaviors.updateSelectedEans = { 1691 attach: function(context, settings) { 1692 // Mettre à jour le champs hidden avec les ean sélectionnés 1693 $('.select-book-checkbox').change(function() { 1694 var selectedEans = []; 1695 1696 $('.select-book-checkbox:checked').each(function() { 1697 selectedEans.push($(this).data('ean')); 1698 }); 1699 1700 $('#selected-eans').val(selectedEans.join(',')); 1701 }); 1702 } 1703 }; 1704 1705 Drupal.behaviors.reloadBookCitedField = { 1706 attach: function (context, settings) { 1707 1708 Drupal.AjaxCommands.prototype.reloadBookCitedField = function (ajax, response, status) { 1709 window.reloadBookCitedField(response.data); 1710 }; 1711 1712 // Fonction pour recharger le champ field_book_cited dans event media 1713 window.reloadBookCitedField = function (updatedIds) { 1714 var field = $('[id^="field-book-cited-values"]'); 1715 var tbody = field.find('tbody'); 1716 1717 if (tbody.length === 0) { 1718 tbody = $('<tbody></tbody>'); 1719 field.append(tbody); 1720 } 1721 1722 var counter = tbody.find('tr').length; // Compte les lignes actuelles 1723 var weightOptions = []; 1724 var maxWeight = counter + updatedIds.length; 1725 1726 for (var i = 1; i <= maxWeight; i++) { 1727 weightOptions.push({ value: i, text: i.toString() }); 1728 } 1729 1730 // Mettre à jour le champ caché 1731 var selectedIds = $('#field-modal-book').val().split(','); 1732 selectedIds.push(updatedIds); 1733 $('#field-modal-book').val(selectedIds.join(',')); 1734 updatedIds.forEach(function (bookId) { 1735 $.ajax({ 1736 url: '/getBookInfo', 1737 type: 'POST', 1738 dataType: 'json', 1739 data: { 1740 bookId: bookId, 1741 }, 1742 success: function(data) { 1743 1744 var class_dragg = (counter % 2 === 0) ? 'odd' : 'even'; 1745 1746 // Générer une nouvelle ligne 1747 var newRow = $('<tr>', { class: 'draggable '+ class_dragg }).append( 1748 $('<td>', { class: 'field-multiple-drag' }).append( 1749 $('<a>', { 1750 href: '#', 1751 class: 'tabledrag-handle', 1752 title: 'Cliquer-déposer pour ré-organiser' 1753 }).append($('<div>', { class: 'handle' }).html(' ')) 1754 ), 1755 $('<td>').append( 1756 $('<div>', { 1757 class: 'js-form-item form-item js-form-type-entity-autocomplete form-type-entity-autocomplete js-form-item-field-book-cited-' + counter + '-target-id form-item-field-book-cited-' + counter + '-target-id form-no-label' 1758 }).append( 1759 $('<input>', { 1760 type: 'text', 1761 id: 'edit-field-book-cited-' + counter + '-target-id', 1762 name: 'field_book_cited[' + counter + '][target_id]', 1763 class: 'form-autocomplete form-text ui-autocomplete-input', 'data-autocomplete-path': '/entity_reference_autocomplete/book_entity/default%3Abook_entity/1zMHv1xpqcGsKKg1TOwA2A6xbkTilkIr7Xa3e4bsq7w', 1764 value: data.title+ ' ('+bookId+')', 1765 size: 60, 1766 maxlength: 1024, 1767 readonly: true 1768 }) 1769 ) 1770 ), 1771 // Ajouter la nouvelle TD ici 1772 $('<td>', { 1773 class: 'delta-order tabledrag-hide', 1774 style: ' display: none; ' 1775 }).append( 1776 $('<div>', { 1777 class: 'js-form-item form-item js-form-type-select form-type-select js-form-item-field-book-cited-' + counter + '--weight form-item-field-book-cited-' + counter + '--weight form-no-label' 1778 }).append( 1779 $('<label>', { 1780 for: 'edit-field-book-cited-' + counter + '-weight', 1781 class: 'visually-hidden', 1782 text: 'Poids pour la ligne ' + (counter + 1) 1783 }), 1784 $('<select>', { 1785 'data-drupal-selector': 'edit-field-book-cited-' + counter + '-weight', 1786 class: 'field_book_cited-delta-order form-select', 1787 id: 'edit-field-book-cited-' + counter + '-weight', 1788 name: 'field_book_cited[' + counter + '][_weight]' 1789 }).append( 1790 $.map(weightOptions, function(option) { 1791 return $('<option>', { 1792 value: option.value, 1793 text: option.text, 1794 selected: (option.value == counter) 1795 }); 1796 }) 1797 ) 1798 ) 1799 ) 1800 ); 1801 tbody.append(newRow); 1802 Drupal.attachBehaviors(); // Réapplique les comportements 1803 counter++; 1804 }, 1805 error: function() { 1806 console.log('Erreur lors de la récupération des informations du livre avec l\'ID ' + bookId); 1807 } 1808 }); 1809 }); 1810 }; 1811 } 1812 }; 1813 1814 ///// autocomplete du champ field_book_cited 1815 Drupal.behaviors.customAutocomplete = { 1816 attach: function (context, settings) { 1817 if ( 1818 $("form").hasClass("eventmedia-entity-form") && ($("form").hasClass("eventmedia-entity-edit-form") || $("form").hasClass("eventmedia-entity-add-form"))) { 1819 // Attacher l'autocomplétion sur les nouveaux champs ajoutés dynamiquement 1820 $('.form-autocomplete', context).each(function () { 1821 var $input = $(this); 1822 var autocompletePath = $input.attr('data-autocomplete-path'); 1823 1824 // Si un chemin d'autocomplétion existe 1825 if (autocompletePath) { 1826 $input.autocomplete({ 1827 source: function (request, response) { 1828 $.ajax({ 1829 url: autocompletePath.replace('/eventmedia_entity/entity_reference_autocomplete', '/entity_reference_autocomplete'), 1830 dataType: 'json', 1831 data: { 1832 q: request.term 1833 }, 1834 success: function (data) { 1835 response(data); 1836 }, 1837 error: function (jqXHR, textStatus, errorThrown) { 1838 } 1839 }); 1840 }, 1841 minLength: 1, 1842 select: function (event, ui) { 1843 $input.val(ui.item.value); 1844 } 1845 }); 1846 } 1847 else { 1848 } 1849 }); 1850 } 1851 1852 $('[data-modal-close]', context).once('customModalClose').on('click', function (e) { 1853 e.preventDefault();
1854 const $modal = $('#modal-confirm-create-user'); 1855 if ($modal.length > 0 && $(this).closest('#modal-confirm-create-user').length) { 1856 const searchParams = new URLSearchParams(window.location.search); 1857 const url = window.location.pathname; 1858 window.history.pushState({}, '', url + '?sequenceNumber=' + searchParams.get('sequenceNumber')); 1859 window.location.reload(); 1860 } else { 1861 $(this).closest('.back-modal').removeClass('open'); 1862 } 1863 }); 1864 } 1865 }; 1866 1867$('.view-id-visite_utilisateurs').each(function(){ 1868 var date = new Date(); 1869 var currentMonth = date.getMonth(); 1870 var currentYear = date.getFullYear(); 1871 var monthNames = [ 1872 "Janvier", "Février", "Mars", 1873 "Avril", "Mai", "Juin", "Juillet", 1874 "Août", "Septembre", "Octobre", 1875 "Novembre", "Décembre" 1876 ]; 1877for(i=0; i<12;i++){ 1878 if((currentMonth - i)<0){ 1879 indexMonth = 12 +(currentMonth - i) 1880 $('#view-m-'+(i+1)+'-table-column').text(monthNames[indexMonth ] + " " + (currentYear -1)) 1881 }else{ 1882 $('#view-m-'+(i+1)+'-table-column').text(monthNames[currentMonth - i]+ " " + (currentYear)) 1883 } 1884} 1885}) 1886 1887 if ($("form").hasClass("award-entity-edit-form award-entity-form")) { 1888 Drupal.behaviors.preventBeforeUnloadPopup = { 1889 attach: function (context, settings) { 1890 $(document).on('click', 'input[type="submit"]', function () { 1891 window.onbeforeunload = null; 1892 }); 1893 } 1894 }; 1895 Drupal.behaviors.disableBeforeUnloadPopup = { 1896 attach: function (context, settings) { 1897 $('input[type="submit"]').on('click', function () { 1898 window.onbeforeunload = null; 1899 }); 1900 } 1901 }; 1902 } 1903 1904function getEventMediaFilter(id, vid, select, id_selected) { 1905 if (id) { 1906 $.ajax({ 1907 url: '/getSupportFilter', 1908 type: 'POST', 1909 dataType: 'json', 1910 data: { 1911 id: id, 1912 vid: vid, 1913 id_selected: id_selected, 1914 }, 1915 success: function (response) { 1916 $('#' + select).empty(); 1917 $('#' + select).append(response); 1918 } 1919 }); 1920 } 1921} 1922 $(document).ready(function() { 1923 var urlParams = new URLSearchParams(window.location.search); 1924 var paramValue = urlParams.get('num-affaire') || urlParams.get('num-affaire'); 1925 if (paramValue) { 1926 $('#num-affaire').val(paramValue); 1927 } 1928 $('.search_abonnement').on('click', function() { 1929 var subscriptionNumber = $('#num-affaire').val(); 1930 if (subscriptionNumber !== '') { 1931 searchAbonnement(subscriptionNumber[0], ''); 1932 const currentUrl = new URL(window.location.href); 1933 currentUrl.searchParams.set('num-affaire', subscriptionNumber); 1934 window.history.replaceState({}, '', currentUrl); 1935 } else { 1936 location.reload(); 1937 } 1938 }); 1939 }); 1940 1941 function searchAbonnement(subscriptionNumber, sequenceNumber){ 1942 if(subscriptionNumber != ''){ 1943 $.ajax({ 1944 url: '/search-affaires/' + subscriptionNumber+'?sequenceNumber='+sequenceNumber, 1945 type: 'POST', 1946 dataType: 'json', 1947 1948 success: function (response) { 1949 $('.list-abn article').remove(); 1950 $('.list-abn .list-abn-div').append('<article class="article-event article-event--bord article-event--filtre-s3">' + 1951 '<div class="article-event__col article-event__col--type"><a ' + 1952 'href="/details-affaires/'+response.subscriptionNumber+'"'+ 1953 ' class="article-event__link"> '+ response.subscriptionNumber +' </a>' + 1954 '</div>' + 1955 '<div class="article-event__col article-event__col--date">' + 1956 '<p class="article-event__text"> du '+response.startDate+' au '+response.endDate+' </p>' + 1957 '</div> </article>'); 1958 }, 1959 error: function (res){ 1960 console.log(res.responseJSON); 1961 $('.list-abn .row').remove(); 1962 $('.list-abn h1').remove(); 1963 $('.list-abn').append('<h1>il n\'existe pas d\'affaire avec ce numéro</h1>'); 1964 } 1965 }); 1966 } 1967 } 1968 1969 function handleSearch() { 1970 var email = $('#edit-Email').val().trim(); 1971 var currentUrl = window.location.href.split('?')[0];
1972 var urlParams = new URLSearchParams(window.location.search); 1973 if (email) { 1974 urlParams.set('Email', email); 1975 urlParams.delete('page'); 1976 urlParams.delete('limit'); 1977 } else { 1978 urlParams.delete('Email'); 1979 } 1980 var newUrl = currentUrl + (urlParams.toString() ? '?' + urlParams.toString() : ''); 1981 window.location.href = newUrl; 1982 } 1983 1984 function populateFieldsFromUrl() { 1985 var urlParams = new URLSearchParams(window.location.search); 1986 if (urlParams.has('Email')) { 1987 $('#edit-Email').val(decodeURIComponent(urlParams.get('Email'))); 1988 } 1989 } 1990 1991 if ($('#edit-submit-detail-affaire').length) { 1992 $('#edit-submit-detail-affaire').on('click', function(event) { 1993 event.preventDefault(); 1994 handleSearch(); 1995 }); 1996 } 1997 1998 window.addEventListener('load', populateFieldsFromUrl); 1999 2000 2001 jQuery(document).ready(function ($) { 2002 const $addUserButton = $('.add-user-abonnement'); 2003 const $modal = $('#modal-confirm-attach-user'); 2004 2005 if ($addUserButton.length && $modal.length) { 2006 $addUserButton.on('click', function (event) { 2007 event.preventDefault(); 2008 $modal.addClass('open'); 2009 }); 2010 2011 $modal.find('.modal__close').on('click', function (event) { 2012 event.preventDefault(); 2013 $modal.removeClass('open'); 2014 }); 2015 } 2016 }); 2017 2018 (function (Drupal) { 2019 Drupal.behaviors.userAttachmentEnterKey = { 2020 attach: function (context, settings) { 2021 const emailInput = $('#edit-email--2', context); 2022 const submitButton = $('#edit-submit--2', context); 2023 if (emailInput.length && submitButton.length) { 2024 console.log('Elements found'); 2025 emailInput.once('userAttachmentEnterKey').on('keydown', function (event) { 2026 if (event.key === 'Enter') { 2027 event.preventDefault(); 2028 submitButton.trigger('mousedown').trigger('mouseup').trigger('click'); 2029 } 2030 }); 2031 } 2032 }, 2033 }; 2034 })(Drupal); 2035 2036 (function ($, Drupal) { 2037 Drupal.behaviors.clearModalFields = { 2038 attach: function (context, settings) { 2039 const observer = new MutationObserver(function (mutations) { 2040 mutations.forEach(function (mutation) { 2041 if (mutation.attributeName === "class") { 2042 const modal = $(mutation.target); 2043 if (!modal.hasClass('open')) { 2044 $('#create-user-modal-form')[0].reset(); 2045 } 2046 } 2047 }); 2048 }); 2049 const target = document.getElementById('create-user'); 2050 if (target) { 2051 observer.observe(target, { attributes: true }); 2052 } 2053 } 2054 }; 2055 })(jQuery, Drupal); 2056 2057// validate MV 2058 $('.view-header .validate-classement-mv').css({"color" : "#1e5c90", "border": "2px solid #1e5c90"}) 2059 Drupal.behaviors.moveHeaderToFilters = { 2060 attach: function (context, settings) { 2061 $('.view-header .validate-classement-mv', context).once('move-header').each(function () { 2062 $('.view-filters .form-actions').append($(this)); 2063 }); 2064 } 2065 }; 2066 if(location.pathname == "/admin/classement-mv"){ 2067 $('.view-header').append('<div hidden="hidden" role="contentinfo" aria-label="Message d\'erreur" class="messages">' + 2068 '<div role="alert">\n' + 2069 ' <h2 class="visually-hidden">Message d\'erreur</h2>\n' + 2070 ' <ul class="messages__list">\n' + 2071 ' <li class="messages__item"> </li>\n' + 2072 ' </ul>\n' + 2073 ' </div></div>') 2074 } 2075 $('.validate-classement-mv').on('click', function () { 2076 const params = new URLSearchParams(window.location.search); 2077 let categorie = params.get('field_position_category_target_id'); 2078 let startDate = params.get('field_position_date_value'); 2079 let endDate = params.get('field_position_date_end_value'); 2080 var div_loader = '<div data-drupal-messages="" class="loader_book"><div class="ajax-loader"></div></div>'; 2081 2082 if(categorie == "All" || categorie == null) { 2083 $('.view-header .messages').addClass('messages--error'); 2084 $('.view-header .messages--error div ul li').text("Catégorie est obligatoire"); 2085 $('.view-header .messages--error').show() 2086 }else if(startDate === '') { 2087 $('.view-header .messages').addClass('messages--error'); 2088 $('.view-header .messages--error div ul li').text("Date début est obligatoire"); 2089 $('.view-header .messages--error').show() 2090 }else if(endDate === '') { 2091 $('.view-header .messages').addClass('messages--error'); 2092 $('.view-header .messages--error div ul li').text("Date fin est obligatoire"); 2093 $('.view-header .messages--error').show() 2094 }else{ 2095 $('.validate-classement-mv').replaceWith(div_loader); 2096 $.ajax({
2097 url: '/validateClassement/'+categorie+'/'+startDate+'/'+endDate, 2098 type: 'POST', 2099 dataType: 'json', 2100 beforeSend: function () { 2101 $('.loader_book').find('.ajax-loader').fadeIn('slow'); 2102 $("#edit-get-ean").hide(); 2103 }, 2104 complete: function () { 2105 $('.loader_book').find('.ajax-loader').fadeOut('slow'); 2106 $("#edit-get-ean").show(); 2107 2108 $('.loader_book').remove(); 2109 }, 2110 success: function (response) { 2111 $('.view-header .messages').addClass('messages--status'); 2112 $('.view-header .messages--status div ul li').text("Validation est enregistrée"); 2113 $('.view-header .messages--status').show() 2114 location.reload() 2115 } 2116 }) 2117 } 2118 }) 2119})(jQuery); 2120 2121(function() { 2122 'use strict'; 2123 2124 function initFrenchQuotesConversion() { 2125 2126 // Espace insécable 2127 var nbsp = '\u00A0'; 2128 var frenchQuoteOpen = '«' + nbsp; 2129 var frenchQuoteClose = nbsp + '»'; 2130 2131 // Fonction pour attacher les événements à un élément 2132 function attachQuoteReplacement(element) { 2133 if (!element || element.hasAttribute('data-french-quotes-attached')) { 2134 return; 2135 } 2136 2137 // Vérifier que c'est un input ou textarea 2138 if (element.tagName !== 'INPUT' && element.tagName !== 'TEXTAREA') { 2139 return; 2140 } 2141 2142 element.setAttribute('data-french-quotes-attached', 'true'); 2143 2144 // Ãcouter les événements keydown pour intercepter avant insertion 2145 element.addEventListener('keydown', function(e) { 2146 if (e.key === '"') { 2147 e.preventDefault(); 2148 e.stopPropagation(); 2149 2150 // Insérer le guillemet français à la place 2151 var cursorPos = this.selectionStart; 2152 var value = this.value; 2153 var charBefore = cursorPos > 0 ? value.charAt(cursorPos - 1) : ' '; 2154 2155 // Déterminer si c'est un guillemet ouvrant ou fermant 2156 var isOpening = /[\s\u00A0\u00BB\n\r\t]/.test(charBefore) || cursorPos === 0; 2157 var replacement = isOpening ? frenchQuoteOpen : frenchQuoteClose; 2158 2159 // Insérer le remplacement 2160 var before = value.substring(0, cursorPos); 2161 var after = value.substring(cursorPos); 2162 this.value = before + replacement + after; 2163 2164 // Repositionner le curseur après le remplacement 2165 var newCursorPos = cursorPos + replacement.length; 2166 this.setSelectionRange(newCursorPos, newCursorPos); 2167 2168 var inputEvent = new Event('input', { bubbles: true }); 2169 this.dispatchEvent(inputEvent); 2170 2171 return false; 2172 } 2173 }, true); 2174 2175 element.addEventListener('input', function(e) { 2176 var value = this.value; 2177 var cursorPos = this.selectionStart; 2178 2179 // Vérifier si un guillemet anglais vient d'être inséré 2180 if (cursorPos > 0 && value.charAt(cursorPos - 1) === '"') { 2181 var charBefore = cursorPos > 1 ? value.charAt(cursorPos - 2) : ' '; 2182 var isOpening = /[\s\u00A0\u00BB\n\r\t]/.test(charBefore) || cursorPos === 1; 2183 var replacement = isOpening ? frenchQuoteOpen : frenchQuoteClose; 2184 2185 var before = value.substring(0, cursorPos - 1); 2186 var after = value.substring(cursorPos); 2187 this.value = before + replacement + after; 2188 2189 // Repositionner le curseur 2190 var newCursorPos = cursorPos - 1 + replacement.length; 2191 this.setSelectionRange(newCursorPos, newCursorPos); 2192 } 2193 }, true); 2194 } 2195 2196 // Chercher tous les inputs et textareas 2197 var allInputs = document.querySelectorAll('input[type="text"], textarea'); 2198 2199 allInputs.forEach(function(input) { 2200 var id = input.id || ''; 2201 var name = input.name || ''; 2202 var dataSelector = input.getAttribute('data-drupal-selector') || ''; 2203 var label = ''; 2204 2205 if (input.id) { 2206 var labelElement = document.querySelector('label[for="' + input.id + '"]'); 2207 if (labelElement) { 2208 label = labelElement.textContent.trim().toLowerCase(); 2209 } 2210 } 2211
2212 // Détection améliorée du champ titre 2213 // Le champ titre peut avoir plusieurs formats selon Drupal : 2214 // - edit-name-0-value (format standard) 2215 // - edit-name (format simplifié) 2216 // - data-drupal-selector="edit-name-0-value" 2217 // - name="name[0][value]" ou name="name" 2218 var isTitle = false; 2219 2220 // Vérifier l'ID pour le champ "name" (entités custom) ou "title" (nodes) 2221 if (id.indexOf('edit-name') !== -1 || id.indexOf('-name-') !== -1 || id.indexOf('edit-title') !== -1 || id.indexOf('-title-') !== -1) { 2222 isTitle = true; 2223 } 2224 2225 // Vérifier le name 2226 if (!isTitle && (name.indexOf('[name]') !== -1 || name === 'name' || name.indexOf('name[0]') !== -1 || name.indexOf('title[0]') !== -1 || name === 'title')) { 2227 isTitle = true; 2228 } 2229 2230 // Vérifier le data-drupal-selector 2231 if (!isTitle && (dataSelector.indexOf('name') !== -1 || dataSelector.indexOf('title') !== -1)) { 2232 isTitle = true; 2233 } 2234 2235 // Vérifier le label 2236 if (!isTitle && label.indexOf('titre') !== -1) { 2237 isTitle = true; 2238 } 2239 2240 // Vérifier le parent avec data-drupal-selector 2241 if (!isTitle && input.closest) { 2242 var closestName = input.closest('[data-drupal-selector*="name"]'); 2243 var closestTitle = input.closest('[data-drupal-selector*="title"]'); 2244 var closestEl = closestName || closestTitle; 2245 if (closestEl) { 2246 var closestSelector = closestEl.getAttribute('data-drupal-selector') || ''; 2247 isTitle = true; 2248 } 2249 } 2250 2251 // Champ chapô : contient "teaser" dans l'ID, le name ou le data-drupal-selector 2252 var isTeaser = id.indexOf('teaser') !== -1 || 2253 name.indexOf('teaser') !== -1 || 2254 dataSelector.indexOf('teaser') !== -1 || 2255 (input.closest && input.closest('[data-drupal-selector*="teaser"]')); 2256 2257 if (isTitle || isTeaser) { 2258 console.log('[FrenchQuotes] Champ détecté:', { 2259 id: id, 2260 name: name, 2261 dataSelector: dataSelector, 2262 label: label, 2263 isTitle: isTitle, 2264 isTeaser: isTeaser 2265 }); 2266 attachQuoteReplacement(input); 2267 } 2268 }); 2269 2270 // Utiliser MutationObserver pour les champs ajoutés dynamiquement 2271 if (typeof MutationObserver !== 'undefined') { 2272 var observer = new MutationObserver(function(mutations) { 2273 var allInputs = document.querySelectorAll('input[type="text"], textarea'); 2274 allInputs.forEach(function(input) { 2275 if (input.hasAttribute('data-french-quotes-attached')) { 2276 return; // Déjà traité 2277 } 2278 2279 var id = input.id || ''; 2280 var name = input.name || ''; 2281 var dataSelector = input.getAttribute('data-drupal-selector') || ''; 2282 var label = ''; 2283 2284 if (input.id) { 2285 var labelElement = document.querySelector('label[for="' + input.id + '"]'); 2286 if (labelElement) { 2287 label = labelElement.textContent.trim().toLowerCase(); 2288 } 2289 } 2290 2291 // Détection améliorée du champ titre 2292 var isTitle = false; 2293 2294 if (id.indexOf('edit-name') !== -1 || id.indexOf('-name-') !== -1 ) { 2295 isTitle = true; 2296 } 2297 2298 if (!isTitle && (name.indexOf('[name]') !== -1 || name === 'name' || name.indexOf('name[0]') !== -1 || name.indexOf('title[0]') !== -1 || name === 'title')) { 2299 isTitle = true; 2300 } 2301 2302 if (!isTitle && (dataSelector.indexOf('name') !== -1 || dataSelector.indexOf('title') !== -1)) { 2303 isTitle = true; 2304 } 2305 2306 if (!isTitle && label.indexOf('titre') !== -1) { 2307 isTitle = true; 2308 } 2309 2310 if (!isTitle && input.closest) { 2311 var closestName = input.closest('[data-drupal-selector*="name"]'); 2312 var closestTitle = input.closest('[data-drupal-selector*="title"]'); 2313 var closestEl = closestName || closestTitle; 2314 if (closestEl) { 2315 var closestSelector = closestEl.getAttribute('data-drupal-selector') || ''; 2316 isTitle = true; 2317 } 2318 } 2319 2320 var isTeaser = id.indexOf('teaser') !== -1 || 2321 name.indexOf('teaser') !== -1 || 2322 dataSelector.indexOf('teaser') !== -1 || 2323 (input.closest && input.closest('[data-drupal-selector*="teaser"]')); 2324 2325 if ((isTitle || isTeaser) && !input.hasAttribute('data-french-quotes-attached')) { 2326 attachQuoteReplacement(input); 2327 } 2328 }); 2329 }); 2330 2331 observer.observe(document.body, { 2332 childList: true, 2333 subtree: true 2334 }); 2335 } 2336 } 2337 2338 window.initFrenchQuotesConversion = initFrenchQuotesConversion; 2339 2340 if (document.readyState === 'loading') { 2341 document.addEventListener('DOMContentLoaded', function() { 2342 setTimeout(initFrenchQuotesConversion, 500); 2343 }); 2344 } else { 2345 setTimeout(initFrenchQuotesConversion, 500); 2346 } 2347 2348 if (typeof jQuery !== 'undefined') { 2349 jQuery(document).ajaxComplete(function() { 2350 setTimeout(initFrenchQuotesConversion, 200); 2351 }); 2352 } 2353})(); 2354 2355(function (Drupal) { 2356 'use strict'; 2357 2358 Drupal.behaviors.frenchQuotesConversion = { 2359 attach: function (context, settings) { 2360 if (typeof window.initFrenchQuotesConversion === 'function') { 2361 window.initFrenchQuotesConversion(); 2362 } 2363 } 2364 }; 2365})(Drupal);
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.