templates/project/crud/galleryscriptLogo.html.twig line 1

Open in your IDE?
  1. var indexOfPoint{{idcontent}},
  2.     indexOf{{idcontent}},
  3.     element{{idcontent}},
  4.     dropArea{{idcontent}},
  5.     dragText{{idcontent}},
  6.     nfile{{idcontent}},
  7.     fileType{{idcontent}},
  8.     validExtensions{{idcontent}},
  9.     fileReader{{idcontent}},
  10.     fileURL{{idcontent}},
  11.     mvalidExtension{{idcontent}},
  12.     button{{idcontent}},
  13.     rescheckext,
  14.     input{{idcontent}};
  15. $("#{{projectlogoid}}").attr('data-bs-toggle', 'modal');
  16. $("#{{projectlogoid}}").attr('data-bs-target', '#modal-gallery-content{{idcontent}}');
  17. $("#{{projectlogoid}}").prop('readonly', true);
  18. $("#{{projectlogoid}}").attr('onclick', 'getdirfilesProjet{{idcontent}}(document.getElementById("{{projectlogoid}}").value, "nnvalid")');
  19. $("<div class='input-group-prepend' style='margin-bottom: -3%; margin-left: 100%;'><i class='fa fa-trash-o mx-2' style='cursor: pointer;' onclick='trashgallProjet{{idcontent}}()'></i></div>").insertBefore("#{{projectlogoid}}");
  20. $('#{{projectlogoid}}').keypress(function (e) {
  21.     return false;
  22. });
  23. // onclick="sendCode('', 'text-')"
  24. function getdirfilesProjet{{idcontent}} (dirname, valid) {
  25.     selected = '';
  26.     indexOfPoint{{idcontent}} = dirname.lastIndexOf(".");
  27.     if (indexOfPoint{{idcontent}} >= 0) {
  28.         const substringContent{{idcontent}} = dirname.slice(indexOfPoint{{idcontent}}, dirname.length);
  29.     if (dirname.includes(substringContent{{idcontent}})) {
  30.     indexOf{{idcontent}} = dirname.lastIndexOf("/");
  31.     selected = dirname.slice(indexOf{{idcontent}}, dirname.length);
  32.     dirname = dirname.replace(selected, '') + '/';
  33.     // "data-123".replace(/data-/g,'');
  34. }
  35.     }
  36.     if ('{{entity.instance.switchEnLigne}}') {
  37.         $.ajax({
  38.             url: "{{ path('get_dirs_content_projet_logos') }}",
  39.             type: 'POST',
  40.             timeout: 15000,
  41.             data: {
  42.                 'dirname': dirname,
  43.                 'selected': selected,
  44.                 'validinput': valid,
  45.                 'idcontent': '{{idcontent}}',
  46.                 'imageFtpServer': '{{entity.instance.imageFtpServerEnligne}}',
  47.                 'imageFtpLogin': '{{entity.instance.imageFtpLoginEnligne}}',
  48.                 'imageFtpMdp': '{{entity.instance.imageFtpMdpEnligne}}',
  49.                 'imageHttpServer': '{{entity.instance.imageHttpServerEnligne}}',
  50.             },
  51.             dataType: 'json',
  52.             success: function (data) {
  53.                 $('#valdircontentProjet{{idcontent}}').html(data.content);
  54.                 $('#dirPathNiveauIndicatorProjet{{idcontent}}').html(data.niveauindicator);
  55.             }
  56.         });
  57.     } else {
  58.         $.ajax({
  59.             url: "{{ path('get_dirs_content_projet_logos') }}",
  60.             type: 'POST',
  61.             timeout: 15000,
  62.             data: {
  63.                 'dirname': dirname,
  64.                 'selected': selected,
  65.                 'validinput': valid,
  66.                 'idcontent': '{{idcontent}}',
  67.                 'imageFtpServer': '{{entity.instance.imageFtpServer}}',
  68.                 'imageFtpLogin': '{{entity.instance.imageFtpLogin}}',
  69.                 'imageFtpMdp': '{{entity.instance.imageFtpMdp}}',
  70.                 'imageHttpServer': '{{entity.instance.imageHttpServer}}',
  71.             },
  72.             dataType: 'json',
  73.             success: function (data) {
  74.                 $('#valdircontentProjet{{idcontent}}').html(data.content);
  75.                 $('#dirPathNiveauIndicatorProjet{{idcontent}}').html(data.niveauindicator);
  76.             }
  77.         });
  78.     }
  79. }
  80. function selectedimageProjet{{idcontent}} (obj) {
  81.     element{{idcontent}} = $(obj);
  82.     $('.selectedFtpImgProjet{{idcontent}}').css("border", "0px");
  83.     $('.selectedFtpImgProjet{{idcontent}}').css("border-color", "");
  84.     $('.selectedFtpImgProjet{{idcontent}}').css("background-color", "white");
  85.     element{{idcontent}}.css("border", "1px solid #5656b5;");
  86.     element{{idcontent}}.css("border-color", "#5656b5");
  87.     element{{idcontent}}.css("background-color", "#5656b5");
  88.     $('#{{projectlogoid}}').val(element{{idcontent}}.attr('data-dir'));
  89.     rescheckext = checkcurrentExtProjet{{idcontent}}($('#{{projectlogoid}}').val());
  90.     if (rescheckext == 'file') {
  91.         var {{projetlogopreview}} = '<img id="{{projetlogopreviewremove}}" src="images/fileicon.webp" class="img-fluid mt-2" style="max-height: 100px;">';
  92.     } else if (rescheckext == 'json') {
  93.         var {{projetlogopreview}} = '<img id="{{projetlogopreviewremove}}" src="images/jsonfileicon.png" class="img-fluid mt-2" style="max-height: 100px;">';
  94.     } else {
  95.         var {{projetlogopreview}} = '<img id="{{projetlogopreviewremove}}" src="' + element{{idcontent}}.attr('data-racine') + $('#{{projectlogoid}}').val() + '" class="img-fluid mt-2">';
  96.     }
  97.     
  98. $("#{{projetlogopreviewremove}}").remove();
  99. $(".{{projetlogopreview}}").append({{projetlogopreview}});
  100. }
  101. // clickedImg
  102. // image preview
  103. const imgphtmlContent{{idcontent}} = $(".{{projetlogopreview}}");
  104. rescheckext = checkcurrentExtProjet{{idcontent}}($('#{{projectlogoid}}').val());
  105. if (rescheckext == 'file') {
  106.     var {{projetlogopreview}} = '<img id="{{projetlogopreviewremove}}" src="images/fileicon.webp" class="img-fluid mt-2" style="max-height: 100px;">';
  107. } else if (rescheckext == 'json') {
  108.     var {{projetlogopreview}} = '<img id="{{projetlogopreviewremove}}" src="images/jsonfileicon.png" class="img-fluid mt-2" style="max-height: 100px;">';
  109. } else {
  110.     if ('{{entity.instance.switchEnLigne}}') {
  111.         var {{projetlogopreview}} = '<img id="{{projetlogopreviewremove}}" src="{{entity.instance.imageHttpServerEnligne}}' + $('#{{projectlogoid}}').val() + '" class="img-fluid mt-2">';
  112.     } else {
  113.         var {{projetlogopreview}} = '<img id="{{projetlogopreviewremove}}" src="{{entity.instance.imageHttpServer}}' + $('#{{projectlogoid}}').val() + '" class="img-fluid mt-2">';
  114.     }
  115.     
  116. }
  117. if ($('#{{projectlogoid}}').val() != '' && $('#{{projectlogoid}}').val() != undefined) {
  118.     imgphtmlContent{{idcontent}}.append({{projetlogopreview}});
  119. }
  120. $(".{{projetlogopreview}}").change(function () {
  121.     $("#{{projetlogopreviewremove}}").remove();
  122. });
  123. // reset text in image
  124. function trashgallProjet{{idcontent}} () {
  125.     $('#{{projectlogoid}}').val('');
  126.     $("#{{projetlogopreviewremove}}").remove();
  127. }
  128. // umpload image script
  129. // selecting all required elements
  130. dropArea{{idcontent}} = document.querySelector(".drag-area-content{{idcontent}}");
  131. dragText{{idcontent}} = dropArea{{idcontent}}.querySelector("header");
  132. button{{idcontent}} = dropArea{{idcontent}}.querySelector("button");
  133. input{{idcontent}} = dropArea{{idcontent}}.querySelector("input");
  134. nfile{{idcontent}}; // this is a global variable and we'll use it inside multiple functions
  135. button{{idcontent}}.onclick = () => {
  136.     input{{idcontent}}.click(); // if user click on the button then the input also clicked
  137. };
  138. input{{idcontent}}.addEventListener("change", function () { // getting user select file and [0] this means if user select multiple files then we'll select only the first one
  139.     nfile{{idcontent}} = this.files[0];
  140.     dropArea{{idcontent}}.classList.add("active");
  141.     //file.forEach(showFileContent);
  142.     showFileContent{{idcontent}} (); // calling function
  143. });
  144. // If user Drag File Over DropArea
  145. dropArea{{idcontent}}.addEventListener("dragover", (event) => {
  146.     event.preventDefault(); // preventing from default behaviour
  147.     dropArea{{idcontent}}.classList.add("active");
  148.     dragText{{idcontent}}.textContent = "Libérer pour télécharger le fichier";
  149. });
  150. // If user leave dragged File from DropArea
  151. dropArea{{idcontent}}.addEventListener("dragleave", () => {
  152.     dropArea{{idcontent}}.classList.remove("active");
  153.     dragText{{idcontent}}.textContent = "Drag & Drop pour télécharger le fichier";
  154. });
  155. // If user drop File on DropArea
  156. dropArea{{idcontent}}.addEventListener("drop", (event) => {
  157.     event.preventDefault();
  158.     // preventing from default behaviour
  159.     // getting user select file and [0] this means if user select multiple files then we'll select only the first one
  160.     nfile{{idcontent}} = event.dataTransfer.files[0];
  161.     input{{idcontent}}.file = event.dataTransfer.files[0];
  162.     //file.forEach(showFileContent);
  163.     showFileContent{{idcontent}} (); // calling function
  164. });
  165. function showFileContent{{idcontent}} () {
  166.     fileType{{idcontent}} = nfile{{idcontent}}.type; //getting selected file type
  167.     validExtensions{{idcontent}} = ["image/jpg", "image/jpeg", "image/bmp", "image/gif", "image/png", "image/apng", "image/webp", "image/ico", "image/cur", "image/jfif", "image/pjpeg", "image/pjp", "image/svg", "image/svg+xml", "image/x-icon"]; //adding some valid image extensions in array
  168.     
  169.     if (validExtensions{{idcontent}}.includes(fileType{{idcontent}})) { //if user selected file is an image file
  170.         fileReader{{idcontent}} = new FileReader(); //creating new FileReader object
  171.         fileReader{{idcontent}}.onload = () => {
  172.             fileURL{{idcontent}} = fileReader{{idcontent}}.result; //passing user file source in fileURL variable
  173.             
  174.             
  175.             filename{{idcontent}} = '<img src="' + fileURL{{idcontent}} + '" data-name="' + nfile{{idcontent}}.name + '" id="imageToUploadContent{{idcontent}}" class="h-100">';
  176.             $("#uploadedimgdisplayContent{{idcontent}}").html(filename{{idcontent}});
  177.         $("#dropImageAreaContent{{idcontent}}").removeClass("d-none");
  178.         $("#dragAreaContent{{idcontent}}").addClass("d-none");
  179.     }
  180.     fileReader{{idcontent}}.readAsDataURL(nfile{{idcontent}});
  181.     } else {
  182.         /* alert("This is not an Image File!");
  183.         dropArea.classList.remove("active");
  184.         dragText.textContent = "Drag & Drop to Upload File"; */
  185.         alert("Ceci n'est pas un Image!");
  186.         alert(fileType{{idcontent}});
  187.         dropArea{{idcontent}}.classList.remove("active");
  188.         dragText{{idcontent}}.textContent = "Drag & Drop pour télécharger l'image";
  189. }
  190. }
  191. function setuploadimgvalueContent{{idcontent}} () {
  192.     /* console.log($("#imageToUploadContent").attr('src'));
  193.     console.log($("#imageToUploadContent").attr('data-name')); */
  194.     $('#{{projectlogoid}}').val('/upload/' + $("#imageToUploadContent{{idcontent}}").attr('data-name'));
  195.     
  196. rescheckext = checkcurrentExtProjet{{idcontent}}($("#imageToUploadContent{{idcontent}}").attr('data-name'));
  197. // console.log(rescheckext);
  198. if (rescheckext == 'file') {
  199.     var {{projetlogopreview}} = '<img id="{{projetlogopreviewremove}}" src="images/fileicon.webp" class="img-fluid mt-2" style="max-height: 100px;">';
  200. } else if (rescheckext == 'json') {
  201.     var {{projetlogopreview}} = '<img id="{{projetlogopreviewremove}}" src="images/jsonfileicon.png" class="img-fluid mt-2" style="max-height: 100px;">';
  202. } else {
  203.     var {{projetlogopreview}} = '<img id="{{projetlogopreviewremove}}" src="' + $("#imageToUploadContent{{idcontent}}").attr('src') + '" class="img-fluid mt-2">';
  204. }
  205.     
  206. $("#{{projetlogopreviewremove}}").remove();
  207. $(".{{projetlogopreview}}").append({{projetlogopreview}});
  208.     if ('{{entity.instance.switchEnLigne}}') {
  209.         $.ajax({
  210.             url: "{{ path('get_image_projet_upload') }}",
  211.             type: 'POST',
  212.             timeout: 15000,
  213.             data: {
  214.                 'file': $("#imageToUploadContent{{idcontent}}").attr('src'),
  215.                 'name': $("#imageToUploadContent{{idcontent}}").attr('data-name'),
  216.                 'imageFtpServer': '{{entity.instance.imageFtpServerEnligne}}',
  217.                 'imageFtpLogin': '{{entity.instance.imageFtpLoginEnligne}}',
  218.                 'imageFtpMdp': '{{entity.instance.imageFtpMdpEnligne}}',
  219.                 'imageHttpServer': '{{entity.instance.imageHttpServerEnligne}}',
  220.             },
  221.             dataType: 'json',
  222.             success: function (data) {
  223.                 // console.log(data.content);
  224.                 // console.log();
  225.                 // console.log(data.msg);
  226.             }
  227.         });
  228.     } else {
  229.         $.ajax({
  230.             url: "{{ path('get_image_projet_upload') }}",
  231.             type: 'POST',
  232.             timeout: 15000,
  233.             data: {
  234.                 'file': $("#imageToUploadContent{{idcontent}}").attr('src'),
  235.                 'name': $("#imageToUploadContent{{idcontent}}").attr('data-name'),
  236.                 'imageFtpServer': '{{entity.instance.imageFtpServer}}',
  237.                 'imageFtpLogin': '{{entity.instance.imageFtpLogin}}',
  238.                 'imageFtpMdp': '{{entity.instance.imageFtpMdp}}',
  239.                 'imageHttpServer': '{{entity.instance.imageHttpServer}}',
  240.             },
  241.             dataType: 'json',
  242.             success: function (data) {
  243.                 // console.log(data.content);
  244.                 // console.log();
  245.                 // console.log(data.msg);
  246.             }
  247.         });
  248.     }
  249. }
  250. function resetuploadvaluesContent{{idcontent}} () {
  251.     $("#dropImageAreaContent{{idcontent}}").addClass("d-none");
  252.     $("#dragAreaContent{{idcontent}}").removeClass("d-none");
  253.     $("#imageToUploadContent{{idcontent}}").attr("src", "");
  254. }
  255. function checkImageGalleyExtProjet{{idcontent}} () {
  256.     mvalidExtension{{idcontent}} = ["jpg",
  257.         "jpeg", "bmp",
  258.         "gif", "png",
  259.         "apng", "webp",
  260.         "ico", "icon", "cur",
  261.         "jfif", "pjpeg",
  262.         "pjp", "svg"];
  263.     $('[id=imagegelleryProjet{{idcontent}}]').each(function () {
  264.         // console.log($(this).attr("src"));
  265.         // console.log(mvalidExtension.includes(getFileExtension($(this).attr("src"))));
  266.         // console.log(getFileExtension($(this).attr("src")));
  267.         
  268.         if (getFileExtension{{idcontent}}($(this).attr("src")) == 'json') {
  269.             $(this).attr("src", "images/jsonfileicon.png");
  270.             $(this).css("width", "80px");
  271.         } 
  272.         
  273.         if (!mvalidExtension{{idcontent}}.includes(getFileExtension{{idcontent}}($(this).attr("src")))) {
  274.             $(this).attr("src", "images/fileicon.webp");
  275.             $(this).css("width", "80px");
  276.         } 
  277.     });
  278. }
  279. function getFileExtension{{idcontent}}(filename) {
  280.     var ext = /^.+\.([^.]+)$/.exec(filename);
  281.     return ext == null ? "" : ext[1];
  282. }
  283. function checkcurrentExtProjet{{idcontent}}(idtocheck) {
  284.     mvalidExtension{{idcontent}} = ["jpg",
  285.         "jpeg", "bmp",
  286.         "gif", "png",
  287.         "apng", "webp",
  288.         "ico", "icon", "cur",
  289.         "jfif", "pjpeg",
  290.         "pjp", "svg"];
  291.         // console.log(getFileExtension{{idcontent}}(idtocheck));
  292.         // console.log(idtocheck);
  293.         
  294.         if (getFileExtension{{idcontent}}(idtocheck) == 'json') {
  295.             return 'json';
  296.         } else if (mvalidExtension{{idcontent}}.includes(getFileExtension{{idcontent}}(idtocheck))) {
  297.             return 'image';
  298.         } else {
  299.             return 'file';
  300.         }
  301. }