PageSourceSearch

https://ferreteriairisarri.pro/modulo_administracion/js/administracion.js

js ferreteriairisarri.pro collected 2026-10-06 09:52:42 UTC 26,129 bytes, 841 lines download raw bytes

1// Aqui declararemos las funciones para cargar el contenido del panel
2function submitFormAjax(idForm, ajax) {
3	tinyMCE.triggerSave(true, true);
4	var f_data = new FormData(document.getElementById(idForm));
5	
6	console.log(subdirectorio+"/modulo_administracion/ajax/"+ajax+".php");
7	
8	$.ajax({
9		type: "POST",
10		url: subdirectorio+"/modulo_administracion/ajax/"+ajax+".php",
11		data: f_data, 
12		contentType: false,
13		processData: false, 
14		success: function(result){
15			
16			var data = JSON.parse(result);
17			$('#dislplayMsj').html(data.html);
18			$('#dislplayMsj').fadeIn();
19			
20			if(!data.error){
21				if(data.formCrear) {
22					$('#'+idForm).trigger("reset");
23				}
24				loadTinyMCE();
25			}
26
27			if(data.catalogo_preview){ 
28				var imagen_url = data.catalogo_preview.imagen;
29				var pdf_url = data.catalogo_preview.pdf;
30				if(data.catalogo_preview.imagen){
31				$('#imagen_destacada').attr('src', imagen_url);
32				}
33				if(data.catalogo_preview.pdf){
34					$('#pdf_catalogo').attr('href', pdf_url);
35				}
36				
37			}
38			
39			$("html, body").animate({scrollTop: 0}, 1000);
40			
41		},
42		error: function () {
43			alert("Error llamando a ajax");
44		},
45	});
46}
47
48function loadSection(html) {
49	if($('#muestraContenido').is(':visible')) {
50        $('#muestraContenido').fadeOut('fast', function (){
51            $('#muestraContenido').load(subdirectorio+'/modulo_administracion/templates/'+html+'.html',
52            function (responseTxt, statusTxt, xhr){
53                if (statusTxt == "success")
54                    $(this).html($(this).html().replace(/{subdirectorio}/, subdirectorio));
55                    $('#muestraContenido').fadeIn();
56					
57					loadTinyMCE();
58                if (statusTxt == "error")
59                    console.log("Error: " + xhr.status + ": " + xhr.statusText);
60            });
61        });
62    }
63}
64
65function loadSectionAjax(html, ajax, id = 0) {
66	if($('#muestraContenido').is(':visible')) {
67        $('#muestraContenido').fadeOut('fast', function (){
68            $.ajax({
69                url: subdirectorio+"/modulo_administracion/ajax/"+ajax+".php",
70                method: 'POST',
71                data:{
72                    'html_cont': html,
73                    'subdir':subdirectorio,
74                    'id':id
75                }, 
76                success: function(result){
77                    var data = JSON.parse(result);
78                    if(!data.error){
79                        $('#muestraContenido').html(data.html);
80                        $('#muestraContenido').fadeIn();
81						
82						loadTinyMCE();
83                    }
84                    
85                },
86                error: function () {
87                    alert("Error llamando a ajax");
88                },
89            });
90        });
91    }
92}
93
94function loadVistaCategoriaFiltros(id_fam, id_subfam = '') {
95	if($('#muestraContenido').is(':visible')) {
96        $('#muestraContenido').fadeOut('fast', function (){
97            $.ajax({
98                url: subdirectorio+"/modulo_administracion/ajax/pintaVistaCategoria.php",
99                method: 'POST',
100                data:{
101                    'subdir':subdirectorio,
102                    'id_fam':id_fam,
103                    'id_subfam':id_subfam
104                }, 
105                success: function(result){
106                    var data = JSON.parse(result);
107                    if(!data.error){
108                        $('#muestraContenido').html(data.html);
109                        $('#muestraContenido').fadeIn();
110						
111						loadTinyMCE();
112                    }
113                    
114                },
115                error: function () {
116                    alert("Error llamando a ajax");
117                },
118            });
119        });
120    }
121}
122
123function muestraDetallesSubfamilia(id_fam, id_subfam, id_fam_extra = ''){
124	if($('#muestraContenido').is(':visible')) {
125        $('#muestraContenido').fadeOut('fast', function (){
126            $.ajax({
127                url: subdirectorio+"/modulo_administracion/ajax/pintaVistaFamiliaExtra.php",
128                method: 'POST',
129                data:{
130                    'subdir':subdirectorio,
131                    'id_fam':id_fam,
132                    'id_subfam':id_subfam,
133					'id_fam_extra':id_fam_extra
134                }, 
135                success: function(result){
136                    var data = JSON.parse(result);
137                    if(!data.error){
138                        $('#muestraContenido').html(data.html);
139                        $('#muestraContenido').fadeIn();
140
141						$('[data-toggle="tooltip"]').tooltip()
142
143						loadTinyMCE();
144                    }
145                    
146                },
147                error: function () {
148                    alert("Error llamando a ajax");
149                },
150            });
151        });
152    }
153}
154
155function loadVistaNuevoFiltro(id_fam, id_subfam = '') {
156	if($('#muestraContenido').is(':visible')) {
157        $('#muestraContenido').fadeOut('fast', function (){
158            $.ajax({
159                url: subdirectorio+"/modulo_administracion/ajax/pintaVistaNuevoFiltro.php",
160                method: 'POST',
161                data:{
162                    'subdir':subdirectorio,
163                    'id_fam':id_fam,
164                    'id_subfam':id_subfam
165                }, 
166                success: function(result){
167                    var data = JSON.parse(result);
168                    if(!data.error){
169                        $('#muestraContenido').html(data.html);
170                        $('#muestraContenido').fadeIn();
171						
172						loadTinyMCE();
173                    }
174                    
175                },
176                error: function () {
177                    alert("Error llamando a ajax");
178                },
179            });
180        });
181    }
182}
183
184function loadVistaNuevaFamiliaExtra(id_fam, id_subfam, id_fam_extra_padre) {
185	if($('#muestraContenido').is(':visible')) {
186        $('#muestraContenido').fadeOut('fast', function (){
187            $.ajax({
188                url: subdirectorio+"/modulo_administracion/ajax/pintaVistaNuevaFamiliaExtra.php",
189                method: 'POST',
190                data:{
191                    'subdir':subdirectorio,
192                    'id_fam':id_fam,
193                    'id_subfam':id_subfam,
194					'id_fam_extra_padre':id_fam_extra_padre
195                }, 
196                success: function(result){
197                    var data = JSON.parse(result);
198                    if(!data.error){
199                        $('#muestraContenido').html(data.html);
200                        $('#muestraContenido').fadeIn();
201						
202						loadTinyMCE();
203                    }
204                    
205                },
206                error: function () {
207                    alert("Error llamando a ajax");
208                },
209            });
210        });
211    }
212}
213
214function loadVistaEditaFamiliaExtra(id, id_fam, id_subfam, id_familia_padre = ''){
215	if($('#muestraContenido').is(':visible')) {
216        $('#muestraContenido').fadeOut('fast', function (){
217            $.ajax({
218                url: subdirectorio+"/modulo_administracion/ajax/pintaEdicionFamiliaExtra.php",
219                method: 'POST',
220                data:{
221                    'subdir':subdirectorio,
222					'id':id,
223                    'id_fam':id_fam,
224                    'id_subfam':id_subfam,
225					'id_familia_padre':id_familia_padre
226                }, 
227                success: function(result){
228                    if(result){
229                        $('#muestraContenido').html(result);
230                        $('#muestraContenido').fadeIn();
231						
232                    }
233                    
234                },
235                error: function () {
236                    alert("Error llamando a ajax");
237                },
238            });
239        });
240    }
241}
242
243function loadVistaEditaFamiliaSuperior(id){
244	if($('#muestraContenido').is(':visible')) {
245        $('#muestraContenido').fadeOut('fast', function (){
246            $.ajax({
247                url: subdirectorio+"/modulo_administracion/ajax/pintaEdicionFamiliaSuperior.php",
248                method: 'POST',
249                data:{
250                    'subdir':subdirectorio,
251					'id':id
252                }, 
253                success: function(result){
254                    if(result){
255                        $('#muestraContenido').html(result);
256                        $('#muestraContenido').fadeIn();
257						
258                    }
259                    
260                },
261                error: function () {
262                    alert("Error llamando a ajax");
263                },
264            });
265        });
266    }
267}
268
269function loadVistaEditaFiltro(id_filtro, id_fam, id_subfam){
270	if($('#muestraContenido').is(':visible')) {
271        $('#muestraContenido').fadeOut('fast', function (){
272            $.ajax({
273                url: subdirectorio+"/modulo_administracion/ajax/pintaEdicionFiltro.php",
274                method: 'POST',
275                data:{
276                    'subdir':subdirectorio,
277					'id_filtro':id_filtro,
278                    'id_fam':id_fam,
279                    'id_subfam':id_subfam
280                }, 
281                success: function(result){
282                    if(result){
283                        $('#muestraContenido').html(result);
284                        $('#muestraContenido').fadeIn();
285						
286                    }
287                    
288                },
289                error: function () {
290                    alert("Error llamando a ajax");
291                },
292            });
293        });
294    }
295}
296
297function addCampoForm() {
298    $( ".input-atributo:first" ).clone().appendTo( "#atributos" );
299}
300
301function eliminaNoticia(id) {
302	
303	$.ajax({
304		url: subdirectorio+"/modulo_administracion/ajax/eliminarNoticia.php",
305		method: 'POST',
306		data:{
307			'subdir':subdirectorio,
308			'id':id
309		}, 
310		success: function(result){
311			var data = JSON.parse(result);
312			if(!data.error){
313				$('#eliminarNot').modal('toggle');
314				loadSectionAjax('template-noticias-list-administracion','pintaListaNoticias');
315			}else{
316				alert('Ocurrió un error al eliminar la noticia');
317			}
318			
319		},
320		error: function () {
321			alert("Error llamando a ajax");
322		},
323	});
324
325}
326function eliminaCategoriaDestacada(uniqid) {
327	
328	$.ajax({
329		url: subdirectorio+"/modulo_administracion/ajax/eliminarCategoriaDestacada.php",
330		method: 'POST',
331		data:{
332			'subdir':subdirectorio,
333			'uniqid':uniqid
334		}, 
335		success: function(result){
336			var data = JSON.parse(result);
337			if(!data.error){
338				$('#eliminarCategoriaDestacada').modal('toggle');
339				loadSectionAjax('categoria_destacada/template-categoria-destacada-administracion','pintaListaCategoriasDestacadas');
340			}else{
341				alert('Ocurrió un error al eliminar la categoria');
342			}
343			
344		},
345		error: function () {
346			alert("Error llamando a ajax");
347		},
348	});
349
350}
351
352function eliminaCatalogo(uniqid) {
353	
354	$.ajax({
355		url: subdirectorio+"/modulo_administracion/ajax/eliminarCatalogo.php",
356		method: 'POST',
357		data:{
358			'subdir':subdirectorio,
359			'uniqid':uniqid
360		}, 
361		success: function(result){
362			var data = JSON.parse(result);
363			if(!data.error){
364				$('#eliminarCat').modal('toggle');
365				loadSectionAjax('catalogos/template-catalogos-administracion','pintaListaCatalogos');
366			}else{
367				alert('Ocurrió un error al eliminar el catálogo');
368			}
369			
370		},
371		error: function () {
372			alert("Error llamando a ajax");
373		},
374	});
375
376}
377
378function eliminaMenu(id) {
379	
380	$.ajax({
381		url: subdirectorio+"/modulo_administracion/ajax/eliminarMenu.php",
382		method: 'POST',
383		data:{
384			'subdir':subdirectorio,
385			'id':id
386		}, 
387		success: function(result){
388			var data = JSON.parse(result);
389			if(!data.error){
390				$('#eliminarMenu').modal('toggle');
391				loadSectionAjax('menus/template-menus-administracion','pintaListaMenus');
392			}else{
393				alert('Ocurrió un error al eliminar el menú');
394			}
395			
396		},
397		error: function () {
398			alert("Error llamando a ajax");
399		},
400	});
401
402}
403
404function eliminaSliderItem(id) {
405	
406	$.ajax({
407		url: subdirectorio+"/modulo_administracion/ajax/eliminarSliderItem.php",
408		method: 'POST',
409		data:{
410			'subdir':subdirectorio,
411			'id':id
412		}, 
413		success: function(result){
414			var data = JSON.parse(result);
415			if(!data.error){
416				$('#eliminarSlide').modal('toggle');
417				loadSectionAjax('slider_admin/template-slides-list-administracion','pintaSlider');
418			}else{
419				alert('Ocurrió un error al eliminar la noticia');
420			}
421			
422		},
423		error: function () {
424			alert("Error llamando a ajax");
425		},
426	});
427
428}
429
430function eliminaComercial(id) {
431	$.ajax({
432		url: subdirectorio+"/modulo_administracion/ajax/eliminarComercial.php",
433		method: 'POST',
434		data:{
435			'subdir':subdirectorio,
436			'id':id
437		}, 
438		success: function(result){
439			var data = JSON.parse(result);
440			if(!data.error){
441				$('#eliminarCom').modal('toggle');
442				loadSectionAjax('comerciales/template-comerciales-list-administracion','pintaListaComerciales');
443			}else{
444				alert('Ocurrió un error al eliminar el comercial');
445			}
446			
447		},
448		error: function () {
449			alert("Error llamando a ajax");
450		},
451	});
452}
453
454function eliminaFiltro(id) {
455	
456	$.ajax({
457		url: subdirectorio+"/modulo_administracion/ajax/eliminarFiltro.php",
458		method: 'POST',
459		data:{
460			'subdir':subdirectorio,
461			'id':id
462		}, 
463		success: function(result){
464			var data = JSON.parse(result);
465			if(!data.error){
466				$('#eliminarFiltro').modal('toggle');
467				$('#tr-'+id).remove();
468			}else{
469				alert('Ocurrió un error al eliminar el filtro');
470			}
471			
472		},
473		error: function () {
474			alert("Error llamando a ajax");
475		},
476	});
477
478}
479
480function eliminaFamiliaExtra(id) {
481	
482	$.ajax({
483		url: subdirectorio+"/modulo_administracion/ajax/eliminarFamiliaExtra.php",
484		method: 'POST',
485		data:{
486			'subdir':subdirectorio,
487			'id':id
488		}, 
489		success: function(result){
490			var data = JSON.parse(result);
491			if(!data.error){
492				$('#eliminarFamExtra').modal('toggle');
493				$('#tr-'+id).remove();
494			}else{
495				alert('Ocurrió un error al eliminar la familia extra');
496			}
497			
498		},
499		error: function () {
500			alert("Error llamando a ajax");
501		},
502	});
503
504}
505
506function eliminaFamiliaSuperior(id) {
507	
508	$.ajax({
509		url: subdirectorio+"/modulo_administracion/ajax/eliminarFamiliaSuperior.php",
510		method: 'POST',
511		data:{
512			'subdir':subdirectorio,
513			'id':id
514		}, 
515		success: function(result){
516			var data = JSON.parse(result);
517			if(!data.error){
518				$('#eliminarFamSuperior').modal('toggle');
519				$('#tr-'+id).remove();
520			}else{
521				alert('Ocurrió un error al eliminar la familia superior');
522			}
523			
524		},
525		error: function () {
526			alert("Error llamando a ajax");
527		},
528	});
529
530}
531
532function borrarAtributo(id) {
533	
534	$.ajax({
535		url: subdirectorio+"/modulo_administracion/ajax/eliminarAtributoFiltro.php",
536		method: 'POST',
537		data:{
538			'subdir':subdirectorio,
539			'id':id
540		}, 
541		success: function(result){
542			var data = JSON.parse(result);
543			if(!data.error){
544				$('#atributo-'+id).remove();
545			}else{
546				alert('Ocurrió un error al eliminar el atributo');
547			}
548			
549		},
550		error: function () {
551			alert("Error llamando a ajax");
552		},
553	});
554
555}
556
557function muestraSubfamiliasByFamilia(id_fam){
558	$('#listaSubfamilias').fadeOut('fast', function (){
559            $.ajax({
560                url: subdirectorio+"/modulo_administracion/ajax/ajax-get-subfamilias-by-familia.php",
561                method: 'POST',
562                data:{
563                    'subdir':subdirectorio,
564                    'id_fam':id_fam
565                }, 
566                success: function(result){
567					var data = JSON.parse(result);
568					if(!data.error){
569                        $('#listaSubfamilias').html(data.html);
570                        $('#listaSubfamilias').fadeIn();
571                    }else{
572						alert('Ocurrió un error al obtener las subfamilias');
573					}
574                    
575                },
576                error: function () {
577                    alert("Error llamando a ajax");
578                },
579            });
580        });
581}
582
583function cargaDatosModal(id, titulo, idModal) {
584	var modal = $('#'+idModal);
585	modal.find('#tituloNotModalEliminar').text(titulo);
586	$("#eliminar").remove();
587	modal.find('.modal-footer').append( '<span class="nav-link c-pointer btn-warning" id="eliminar" onclick="eliminaNoticia(\''+id+'\');">Borrar</span>' );
588}
589
590function cargaDatosModalSlider(id, idModal) {
591	var modal = $('#'+idModal);
592	$("#eliminar").remove();
593	modal.find('.modal-footer').append( '<span class="nav-link c-pointer btn-warning" id="eliminar" onclick="eliminaSliderItem(\''+id+'\');">Borrar</span>' );
594}
595
596function cargaDatosModalCategoriaDestacada(uniqid, titulo, idModal) {
597	var modal = $('#'+idModal);
598	modal.find('#tituloCategoriaDestacadaModalEliminar').text(titulo);
599	$("#eliminar").remove();
600	modal.find('.modal-footer').append( '<span class="nav-link c-pointer btn-warning" id="eliminar" onclick="eliminaCategoriaDestacada(\''+uniqid+'\');">Borrar</span>' );
601}
602
603
604function cargaDatosModalCatalogo(uniqid, titulo, idModal) {
605	var modal = $('#'+idModal);
606	modal.find('#tituloCatModalEliminar').text(titulo);
607	$("#eliminar").remove();
608	modal.find('.modal-footer').append( '<span class="nav-link c-pointer btn-warning" id="eliminar" onclick="eliminaCatalogo(\''+uniqid+'\');">Borrar</span>' );
609}
610
611function cargaDatosModalMenu(id, titulo, idModal) {
612	var modal = $('#'+idModal);
613	modal.find('#tituloMenuModalEliminar').text(titulo);
614	$("#eliminar").remove();
615	modal.find('.modal-footer').append( '<span class="nav-link c-pointer btn-warning" id="eliminar" onclick="eliminaMenu(\''+id+'\');">Borrar</span>' );
616}
617
618function cargaDatosModalComercial(id, titulo, idModal) {
619	var modal = $('#'+idModal);
620	modal.find('#tituloComModalEliminar').text(titulo);
621	$("#eliminar").remove();
622	modal.find('.modal-footer').append( '<span class="nav-link c-pointer btn-warning" onclick="eliminaComercial(\''+id+'\');">Borrar</span>' );
623}
624
625function cargaDatosModalFiltro(id, titulo, idModal) {
626	var modal = $('#'+idModal);
627	modal.find('#tituloFiltroModalEliminar').text(titulo);
628    $("#eliminar").remove();
629	modal.find('.modal-footer').append( '<span class="nav-link c-pointer btn-warning"" id="eliminar" onclick="eliminaFiltro(\''+id+'\');">Borrar</span>' );
630}
631
632function cargaDatosModalFamExtra(id, titulo, idModal) {
633	var modal = $('#'+idModal);
634	modal.find('#tituloFamExtraModalEliminar').text(titulo);
635    $("#eliminar").remove();
636	modal.find('.modal-footer').append( '<span class="nav-link c-pointer btn-warning"" id="eliminar" onclick="eliminaFamiliaExtra(\''+id+'\');">Borrar</span>' );
637}
638
639function cargaDatosModalFamSuperior(id, titulo, idModal) {
640	var modal = $('#'+idModal);
641	modal.find('#tituloFamSuperiorModalEliminar').text(titulo);
642    $("#eliminar").remove();
643	modal.find('.modal-footer').append( '<span class="nav-link c-pointer btn-warning"" id="eliminar" onclick="eliminaFamiliaSuperior(\''+id+'\');">Borrar</span>' );
644}
645
646function loadRelAttrProd(id_filtro, id_fam, id_subfam) {
647	if($('#muestraContenido').is(':visible')) {
648        $('#muestraContenido').fadeOut('fast', function (){
649            $.ajax({
650                url: subdirectorio+"/modulo_administracion/ajax/pintaRelacionAttrProd.php",
651                method: 'POST',
652                data:{
653                    'subdir':subdirectorio,
654					'id_filtro':id_filtro,
655                    'id_fam':id_fam,
656                    'id_subfam':id_subfam
657                }, 
658                success: function(result){
659                    if(result){
660                        $('#muestraContenido').html(result);
661                        $('#muestraContenido').fadeIn();
662						
663                    }
664                    
665                },
666                error: function () {
667                    alert("Error llamando a ajax");
668                },
669            });
670        });
671    }
672}
673
674function loadRelFamExtraProd(id_fam_extra, id_fam, id_subfam, id_familia_padre = '') {
675	if($('#muestraContenido').is(':visible')) {
676        $('#muestraContenido').fadeOut('fast', function (){
677            $.ajax({
678                url: subdirectorio+"/modulo_administracion/ajax/pintaRelacionFamExtraProd.php",
679                method: 'POST',
680                data:{
681                    'subdir':subdirectorio,
682					'id':id_fam_extra,
683                    'id_fam':id_fam,
684                    'id_subfam':id_subfam,
685					'id_familia_padre':id_familia_padre
686                }, 
687                success: function(result){
688                    if(result){
689                        $('#muestraContenido').html(result);
690                        $('#muestraContenido').fadeIn();
691						
692                    }
693                    
694                },
695                error: function () {
696                    alert("Error llamando a ajax");
697                },
698            });
699        });
700    }
701}
702
703
704function loadTinyMCE(){
705	var useDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
706	tinymce.remove();
707	tinymce.init({
708		selector: '#cuerpo',
709		plugins: 'print preview paste importcss searchreplace autolink autosave save directionality code visualblocks visualchars fullscreen image link media template codesample table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists wordcount imagetools textpattern noneditable help charmap quickbars emoticons',
710		language: 'es',
711		imagetools_cors_hosts: ['picsum.photos'],
712		menubar: 'file edit view insert format tools table help ',
713		toolbar: 'undo redo | bold italic underline strikethrough | fontselect fontsizeselect formatselect | alignleft aligncenter alignright al
713ignjustify | outdent indent |  numlist bullist | forecolor backcolor removeformat | pagebreak | charmap emoticons | fullscreen  preview save print | insertfile image media template link anchor codesample | ltr rtl | code',
714		toolbar_sticky: true,
715		autosave_ask_before_unload: true,
716		autosave_interval: '30s',
717		autosave_prefix: '{path}{query}-{id}-',
718		autosave_restore_when_empty: false,
719		autosave_retention: '2m',
720		
721
722		
723		// SUBIDA SEGURA Y OBLIGATORIA
724		automatic_uploads: true,
725		images_upload_url: subdirectorio + '/modulo_administracion/ajax/upload_image.php',
726
727		//nunca permitir data:image/base64
728		paste_data_images: true,
729		images_dataimg_filter: function(img) {
730			return true;
731		},
732
733		//handler personalizado
734		images_upload_handler: function (blobInfo, success, failure) {
735			var xhr = new XMLHttpRequest();
736			xhr.open('POST', subdirectorio + '/modulo_administracion/ajax/upload_image.php');
737
738			var formData = new FormData();
739			formData.append('file', blobInfo.blob(), blobInfo.filename());
740
741			xhr.onload = function () {
742				if (xhr.status != 200) {
743					failure('Error HTTP: ' + xhr.status);
744					return;
745				}
746
747				var json = JSON.parse(xhr.responseText);
748
749				if (!json || typeof json.location !== 'string') {
750					failure('Respuesta JSON inválida');
751					return;
752				}
753
754				success(json.location);
755			};
756
757			xhr.send(formData);
758		},
759
760
761		// OPCIONES DE IMAGEN
762		file_picker_types: 'image',
763		image_advtab: true,
764
765		//CONFIGURACIÓN GENERAL
766		relative_urls : false,
767		remove_script_host : false,
768		convert_urls : true,
769		verify_html: false,
770		importcss_append: true,
771
772		content_css: [
773			'https://use.fontawesome.com/releases/v5.15.1/css/all.css',
774			'default'
775		],
776		image_title: true,
777		/* enable automatic uploads of images represented by blob or data URIs*/
778		automatic_uploads: true,
779		/*
780			URL of our upload handler (for more details check: https://www.tiny.cloud/docs/configure/file-image-upload/#images_upload_url)
781			images_upload_url: 'postAcceptor.php',
782			here we add custom filepicker only to Image dialog
783		*/
784		file_picker_types: 'image',
785		/* and here's our custom image picker*/
786		file_picker_callback: function (cb, value, meta) {
787			var input = document.createElement('input');
788			input.setAttribute('type', 'file');
789			input.setAttribute('accept', 'image/*');
790
791			/*
792			Note: In modern browsers input[type="file"] is functional without
793			even adding it to the DOM, but that might not be the case in some older
794			or quirky browsers like IE, so you might want to add it to the DOM
795			just in case, and visually hide it. And do not forget do remove it
796			once you do not need it anymore.
797			*/
798
799			input.onchange = function () {
800			var file = this.files[0];
801
802			var reader = new FileReader();
803			reader.onload = function () {
804				/*
805				Note: Now we need to register the blob in TinyMCEs image blob
806				registry. In the next release this part hopefully won't be
807				necessary, as we are looking to handle it internally.
808				*/
809				var id = 'blobid' + (new Date()).getTime();
810				var blobCache =  tinymce.activeEditor.editorUpload.blobCache;
811				var base64 = reader.result.split(',')[1];
812				var blobInfo = blobCache.create(id, file, base64);
813				blobCache.add(blobInfo);
814
815				/* call the callback and populate the Title field with the file name */
816				cb(blobInfo.blobUri(), { title: file.name });
817			};
818			reader.readAsDataURL(file);
819			};
820
821			input.click();
822		},
823		templates: [],
824		template_cdate_format: '[Date Created (CDATE): %m/%d/%Y : %H:%M:%S]',
825		template_mdate_format: '[Date Modified (MDATE): %m/%d/%Y : %H:%M:%S]',
826		height: 600,
827		image_caption: true,
828
829		quickbars_selection_toolbar: 'bold italic | quicklink h2 h3 blockquote quickimage quicktable',
830		noneditable_noneditable_class: 'mceNonEditable',
831		toolbar_mode: 'sliding',
832		contextmenu: 'link image imagetools table',
833		skin: useDarkMode ? 'oxide-dark' : 'oxide',
834		// content_css: useDarkMode ? 'dark' : 'default',
835		content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px }'
836	});
837
838
839}
840
841

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.