Cargando data de firebase – firestore y angular 8

Consulta estoy cargando data de firebase y usando firestore al ingresar por primera vez la data carga correctamente cuando cambio de link o otra pestaña y regreso a la vista anterior la data no carga, si uso el menu con routerlink, la data no carga hasta refrescar la pagina o hacer f5. dejo el link y se requiere dejo le código. uso collection con firestore.

no entiendo a que se debe.

https://joselo01.github.io/testcase/#/manage

Saludos

Problemas HTML2PDF cargando VIEW template en CODEIGNITER

tengo una libreria HTML2PDF, que de la nada dejo de funcionar, no logra cargar el template, que cargo desde $ this->load->view, se queda cargando la pagina, y no muestra el archivo PDF, se queda asi, hasta que sale el 504 gateway timeout. Aqui esta el codigo en la clase de codeigniter.

    public function gen_pdf($  ID = null){         $  this->createFolder();         $  this->html2pdf->folder('./files/pdfs/');         $  this->html2pdf->filename('test.pdf');         $  this->html2pdf->paper('letter', 'portrait', 'pt', true, 'UTF-8');		         $  data['ticket'] = $  this->modelo_contable->mostrar_ticket_id($  ID); 		$  u_s = $  this->modelo_contable->mostrar_ticket_id($  ID); 		foreach($  u_s as $  user){ 			$  id_u = $  user->id_user; 			$  data['info_u'] = $  this->modelo_contable->usuario_datos_bd_b($  id_u); 			$  this->html2pdf->html(utf8_decode($  this->load->view('layout/template', $  data, true))); 		}         if($  this->html2pdf->create('save'))         {             $  this->show();			         }	     }

Como mostrar un mensaje de Cargando Datos al momento de realizar una consulta?

Buen dia , Compañeros me podrían ayudar en como mostrar un mensaje cuando presiono el botón de consultar,estoy realizando una aplicación web en cual lleno un formulario de rango de fechas y selecciono el tipo de reporte que quiero que me genere , esa parte ya la realiza lo que ahora quiero es mostrar un mensaje de “Cargado datos…” y me bloquee la pantalla para que el usuario visualice que esta trabajando en ello ya que a la hora de realizar las consultas tarda un tiempo en regresarme la información, encontré una forma de que bloquee la pantalla usando unos scripts pero cuando presiono el boton y me falta algun campo se muestra el div de cargando y ya no lo puedo quitar hasta que yo refresque la pagina la aplicacion esta hecha en asp mvc .

<div id="fader" style="display:none"> <div class="centrar">     <img src="~/Content/images/Load-Engrane.gif" class="center-block" />     <p class="text-center" style="font-size:medium">Espere un momento, generando informacion...</p> </div> 

$  ("#btnEnviar").click(function () {              $  ('#fader').css('display', 'block');      }); 

Problemas cargando la grafica de piramide de highcharts

buenas tardes estoy tratando de usar la grafica de tipo pirámide para añadirla a un código donde ya tengo las graficas de barras y pie pero en cuanto intento añadir la grafica de pirámide no se muestra. intente hacer que se mostrara en un archivo aparte de mi proyecto pero ni ahí logro hacer que se muestre.

<!DOCTYPE html>   <html> <head>     <meta charset="UTF-8">     <title></title>     <script src="https://code.highcharts.com/highcharts.js">                           </script>     <script src="https://code.highcharts.com/modules/funnel.js"></script>     <script src="https://code.highcharts.com/modules/exporting.js"></script>     <script src="https://code.highcharts.com/modules/export-data.js"></script>     <script>         Highcharts.chart('container', { chart: {     type: 'pyramid' }, title: {     text: 'Sales pyramid',     x: -50 }, plotOptions: {     series: {         dataLabels: {             enabled: true,             format: '<b>{point.name}</b> ({point.y:,.0f})',             softConnector: true         },         center: ['40%', '50%'],         width: '80%'     } }, legend: {     enabled: false }, series: [{     name: 'Unique users',     data: [         ['Website visits',      15654],         ['Downloads',            4064],         ['Requested price list', 1987],         ['Invoice sent',          976],         ['Finalized',             846]     ] }]  });     </script>  </head> <body>     <?php     echo 'hola';     ?> <div id="container" style="min-width: 410px; max-width 600px; height: 400px; margin: 0 auto"></div>  </body> </html> 

en consola me sale lo siguiente Error: Highcharts error #13: www.highcharts.com/errors/1 pero no entiendo porque si seguí los pasos del demo de la pagina de highcharts

como hacer que un javascript (osea una tabla) no me aparesca que esta cargando, si no hasta que termine me aparesca el script

Necesito saber que cuando selecciono una vista de la opcion del menu, no me aparezca que una tabla o el script esta cargando…, si no que hasta que termine de cargar el script me aparesca la tabla completa. he intentado con este codigo pero no me funciono o creo que no lo he implementado bien, y no quiero que me aparesca un logo de “cargando”:

<script language="javascript" type="text/javascript">      $  (window).load(function() {      $  ('#loading').hide();   }); </script>

soy nuevo en javascript. de antemano agradesco sus respuestas. aqui dejo mi codigo de html y javascript:

<script>         $  (function () {             $  ('#tablatt').DataTable({                 "ordering": true,                 "paging": true,                 "searching": true,                 "info": true,                 "fixedHeader": false,                 dom: 'Bfrtip <"botton"1>',                  buttons: [                                         ]             });         });     </script>
<div class="content">     <div class="row" style="margin-top:20px">         <div class="col-lg-12">             <div class="table-responsive">                 <table class="tablat table-striped" id="tablatt">                     <thead>                         <tr>                             <th>Fecha</th>                             <th>Nombre </th>                             <th>NombreE</th>                             <th>Visitaa</th>                             <th>Tipo</th>                             <th>Hora</th>                             <th>Foto</th>                             <th></th>                         </tr>                     </thead>                      @foreach (var item in Model)                     {                         <tr>                             <td>                                 @Html.DisplayFor(modelItem => item.VisitD)                             </td>                             <td>                                 @Html.DisplayFor(modelItem => item.VisitName)                             </td>                             <td>                                 @Html.DisplayFor(modelItem => item.CompanyN)                             </td>                             <td>                                 @Html.DisplayFor(modelItem => item.Employees)                             </td>                             <td>                                 @Html.DisplayFor(modelItem => item.Visit)                             </td>                             <td>                                 @Html.DisplayFor(modelItem => item.HourIn)                             </td>                             <td>                                 <a href="@item.VisitImg" target="_blank">Imagen</a>                             </td>                             <td>                                 <button class=" btn btn-primary" onclick="SendToOut('@item.Id')"><i style="color:white" class="fas glyphicon glyphicon-ok"></i> Salida</button>                             </td>                         </tr>                     }                 </table>             </div>         </div>     </div>

Como podria colocar un gif de cargando en una petición

este es mi formulario e intentado hacerlo de varias formas pero no me esta funcionando por ejemplo si tengo mil registros se tardara y miestras esta insertando los datos quisiera mostrar un gif de cargando gracias de antemano

<div class="row">             <div class="col-md-11 col-md-offset-0">                 <div class="panel panel-default">                     <div class="panel-heading">                         <h1>Seleccione<span class="badge badge-secondary">Archivo</span></h1>                     </div>                        {{Form::open(array( 'url'=>'#','name'=>'f_cargar_datos_usuarios','id'=>'f_cargar_datos_usuarios','method'=>'post','action'=>'cargar_datos_usuarios','class'=>'formarchivo','files'=>'true','enctype'=>'multipart/form-data'))}}                      <br>                     <br>                     <div class="form-group col-xs-12">                         {!! Form::label('datos', 'Datos Usuarios:', ['class' => 'col-lg-2 control-label']) !!}                         <div class="col-lg-10">                             {!! Form::file('archivo',['class' => 'form-control','id'=>'archivo']) !!}                         </div>                      </div>                      <br>                     <br>                      <br>                     <br>                     <br>                     <div class="modal-footer d-flex justify-content-center">                         <button  type="submit" class="btn btn-primary"   id="enviar">CARGAR DATOS</button>                     </div>                 </div>                  {{Form::close()}}                       </div>                    </div>             </div>         </div> 

este es mi js

$  (document).on("submit",".formarchivo",function(e){     e.preventDefault();      var nombreform=$  (this).attr("id");           // var miurl="cargar_datos_usuarios";         // var divresul="notificacion_resul_fcdu"       var formData = new FormData($  ("#"+nombreform+"")[0]);         $  .ajax({             url: 'cargar_datos_usuarios',             type: 'POST',             data: formData,              cache: false,             contentType: false,             processData: false,              beforeSend: function () {                 $  ("#"+divresul+"").html($  ("#cargador_empresa").html());             },               success: function (data) {                 alert("Se cargo con exito");             },              error: function (data) {                 alert("ha  ocurrido un error");             }         });    }); 

y este es mi controlador

public function cargar_datos_usuarios(Request $  request)     {          \DB::beginTransaction();         $  archivo=$  request->file('archivo');         $  nombre_original=$  archivo->getClientOriginalExtension(); //     $  extension=$  archivo->getClientOriginalExtension();         $  rl=Storage::disk('archivos')->put($  nombre_original,\File::get($  archivo));         $  ruta=storage_path('archivos')."/".$  nombre_original;          if ($  rl){             Excel::selectSheetsByIndex(0)->load($  ruta,function ($  hoja){                 $  hoja->each(function ($  fila){ //                    $  usersemails=User::where("identidad","=",$  fila->identidad)->firs(); //                    if (count($  usersemails)==0){                         $  empleados=new empleado();                         $  empleados->nombre=$  fila->nombre;                         $  empleados->identidad=$  fila->identidad;                         $  empleados->num_empleado=$  fila->num_empleado;                         $  empleados->fecha_nacimiento=$  fila->fecha_nacimiento;                         $  empleados->direccion=$  fila->direccion;                         $  empleados->telefono=$  fila->telefono;                         $  empleados->celular=$  fila->celular;                         $  empleados->nacionalidad=$  fila->nacionalidad;                         $  empleados->correo=$  fila->correo;                         $  empleados->nivel_academico=$  fila->nivel_academico;                         $  empleados->titulo_obtenido=$  fila->titulo_obtenido;                         $  empleados->rtn=$  fila->rtn;                         $  empleados->ihss=$  fila->ihss;                         $  empleados->certificado_seguro=$  fila->certificado_seguro;                         $  empleados->genero=$  fila->genero;                         $  empleados->estado_civil=$  fila->estado_civil;                         $  empleados->departamento=$  fila->departamento;                         $  empleados->municipio=$  fila->municipio;                         $  empleados->tipo_contratacion=$  fila->tipo_contratacion;                         $  empleados->ano_contratacion=$  fila->ano_contratacion;                         $  empleados->gerencia=$  fila->gerencia;                         $  empleados->unidad_ejecutora=$  fila->unidad_ejecutora;                         $  empleados->actividad_obra=$  fila->actividad_obra;                         $  empleados->puesto=$  fila->puesto;                         $  empleados->dept_icf=$  fila->dept_icf;                         $  empleados->banco=$  fila->banco;                         $  empleados->no_cuenta=$  fila->no_cuenta;                         $  empleados->pin=$  fila->pin;                         $  empleados->vigencia=$  fila->vigencia;                         $  empleados->no_contrato=$  fila->no_contrato;                         $  empleados->sueldo=$  fila->sueldo;                         $  empleados->sindicato=$  fila->sindicato;                         $  empleados->lugar_nacimiento=$  fila->lugar_nacimiento;                         $  empleados->descripcion_funciones=$  fila->descripcion_funciones;                         $  empleados->forma_pago=$  fila->forma_pago;                         $  empleados->lugar_recibe_pago=$  fila->lugar_recibe_pago;                         $  empleados->estado_empleado=$  fila->estado_empleado;                         $  empleados->save();                         \DB::commit(); //                    }                 });             });             return view("mensajes.msj_correcto")->with("msj","Usuarios cargados con exito");         }         else         {             return view("mensajes.msj_rechazado")->with("msj","Error al subir archivo");         }       } 

¿como enviar un archivo cargando mediante un input-file que esta hecho en el diagramador de laravel BLADE al backend?

Lo que deseo es enviar un archivo cargando mediante un input-file al backend que lo tengo en nodejs, no tengo muy clara la ide como debo hacerlo y se me producen errores, alguien me podria indicar como podria hacerlo o que sitios web podria visitar para enterarme exclusivamente mas sobre esta funcionalidad que le quiero dar a mi sistema, por favor.

Estoy estoy utilizando el motor de laravel blade para hacer diagramar todo el frontend y utilizando su propia arquitectura de laravel para que se conecte con el backend mediante Guzzle a las propias rutas que ya estan establecidas en node. El por que hacer hacerlo asi?, por que queria separar todo lo que era la Backend del frontend, y no sea una arquitectura monolitica, loco talvez, pero posible.

introducir la descripción de la imagen aquí

donde form.blade.php es el formulario donde se cargo los datos, index.blade.php es la vista principal y js.blade.php donde se realiza toda la logica de esa parte de esa tabla de la BD.

form.blade.php

<div class="form-group required">   <label for="avatar" class="col-sm-4 control-label">                     <font style="vertical-align: inherit;">                         <font style="vertical-align: inherit;">Entrada de archivo</font>                     </font>                 </label>   <div class="col-xs-4">     <input type="file" name="avatar" id="avatar">     <p class="help-block">       <font style="vertical-align: inherit;">         <font style="vertical-align: inherit;">           Ingrese al archivo que deseé guardar.         </font>       </font>     </p>   </div> </div>

index.blade.php

@extends('base.layout')  @section('titulo', $  recurso->titulo) @section('titulo_pagina', $  recurso->titulo . ' de la Palabra : "' .$  palabra->palabraOriginaria.'"') @section('breadcrumb')  <ol class="breadcrumb">   <li><a href="{{ route('palabra') }}"><i class="fa fa-arrow-left"></i> Volver a Palabras</a></li> </ol> @stop @section('contenido') <div class="box" <div class="box-body">   <table id="tabla-principal" class="table table-bordered table-hover">     <thead>       <tr>         <th>#</th>         <th>Nombre</th>         <th>Descripcion</th>         <th>Tamaño</th>         <th></th>         <th></th>       </tr>     </thead>     <tbody>        @foreach ($  archivosList as $  idx=>$  archivo) @if ($  archivo!=null)       <tr>          <td>{{ $  idx + 1 }}.</td>         <td>{{ $  archivo->nombre }}</td>         <td>{{ $  archivo->descripcion }}</td>         <td>{{ $  archivo->size }}</td>         @if($  recurso->puedeModificar)         <td class="text-center">           <button type="button" class="btn btn-xs btn-warning open-form-archivo" value="{{ $  archivo->id }}" name="{{ $  archivo->nombre }}">                             <i class="fa fa-pencil"></i> <span class="hidden-xs">Editar</span> 						</button>         </td>         @endif @if($  recurso->puedeEliminar)         <td class="text-center">           <button type="button" class="btn btn-xs btn-danger open-confirm-delete" value="{{ $  archivo->id }}" name="{{ $  archivo->nombre }}">                             <i class="fa fa-trash"></i> <span class="hidden-xs">Eliminar</span> 						</button>         </td>         @endif        </tr>       @endif @endforeach       </tbody>   </table>    @if($  recurso->puedeCrear)   <div class="row">     <div class="col-xs-12 text-left">       <button type="button" class="btn btn-sm btn-primary open-form-archivo" value=""> 					Nuevo 				</button>     </div>   </div>   @endif </div> </div>   @include('archivo.form') @stop @section('scripts') @include('archivo.js') @stop

js.blade.php

// evento click en el elemento con id 'btn-save-archivo' $  (document).on('click', '#btn-save-archivo', function() {   loadMask('content-form-archivo');    $  .ajax({       url: '{{ route('       archivo.save ') }}',       type: 'POST',       data: {         id: $  ("#id").val(),         idPalabra: $  ("#idPal").val(),         nombre: $  ("#nombre").val(),         tipoArchivo: $  ("#archivo_seleccionada").val(),         descripcion: $  ("#descripcion").val(),         size: $  ("#tamaño").val(),        },       success: function(response) {         location.reload(); // recarga la pagina       }     }    ); });

ArchivoController.php

<?php  namespace App\Http\Controllers;  use Illuminate\Http\Request; use App\Http\Services\SessionService; use App\Http\Services\ArchivoService; use App\Http\Services\PalabraService; use App\Http\Services\PalabraArchivoService; use App\Http\Services\CriterioService;  class ArchivoController extends Controller {     protected $  archivoService;     protected $  palabraService;     protected $  palabraArchivoService;     protected $  criterioService;   	public function __construct(ArchivoService $  archivoService, PalabraArchivoService $  palabraArchivoService, PalabraService $  palabraService, CriterioService $  criterioService ) {         $  this->archivoService = $  archivoService;         $  this->palabraArchivoService = $  palabraArchivoService;         $  this->palabraService = $  palabraService;         $  this->criterioService=$  criterioService; 	}  	public function index(Request $  request, $  idPalabra) {          $  recurso = SessionService::recursoPath($  request->getPathInfo());         $  archivosList = $  this->archivoService->listarArchivosDePalabra($  idPalabra);         $  criteriosList = $  this->criterioService->listarCriterios();         $  palabra = $  this->palabraService->obtenerPalabra(['id' => $  idPalabra]);         // dd($  idPalabra);         return view('archivo.index', [             'archivosList' => $  archivosList,             'criteriosList' => $  criteriosList,             'recurso' => $  recurso,             'palabra' => $  palabra,             'idPalabra'=> $  idPalabra,              ]);         }      public function form(Request $  request) {         return response()->json($  this->archivoService->obtenerArchivo($  request->all()));     }      public function save(Request $  request) {         return response()->json($  this->archivoService->guardarArchivo($  request->all()));     }  	public function delete(Request $  request) { 		return response()->json($  this->archivoService->eliminarArchivo($  request->all()));     }      public function cargado(Request $  request){         return response()->json($  this->archivoService->cargarArchivo($  request->all())); 	}  }

ArchivoService.php

<?php  namespace App\Http\Services;  class ArchivoService extends GuzzleHttpRequestService {  	private function recursoApi($  archivoPalabra = false) {         return config('app.recurso_archivo'). ($  archivoPalabra ? '/archivoPalabra' : '');;         // return config('app.recurso_archivo'). ($  archivoPalabra ? '/archivoPalabra' : ''); 	}      public function listarArchivosDePalabra($  idPalabra){ 		return $  this->get($  this->recursoApi(true),$  idPalabra); 	}  	public function obtenerArchivo($  params) { 		return $  this->get($  this->recursoApi(), $  params['id']);     }      public function listarArchivos(){         return $  this->get($  this->recursoApi()); 	}      public function guardarArchivo($  params){         if (empty($  params['id'])) {             $  params['usuarioRegistro'] = $  this->getUsuario();             $  resultado = $  this->post($  this->recursoApi(), $  params);         } else {             $  params['usuarioModificacion'] = $  this->getUsuario();             $  resultado = $  this->put($  this->recursoApi(), $  params, $  params['id']);         }         return $  resultado;     }       public function cargarArchivo($  params)     {  	}  	public function eliminarArchivo($  params) { 		$  params['activo'] = false; 		$  params['usuarioModificacion'] = $  this->getUsuario();         $  resultado = $  this->put($  this->recursoApi(), $  params, $  params['id']);         return $  resultado; 	}  }

rutas en la que se conectan al api

web.php

 // archivo  Route::get( '/archivo/archivoPalabra/{idPalabra}', 'ArchivoController@index')->name('archivo');  Route::post('/archivo/form', 'ArchivoController@form')->name('archivo.form');  Route::post( '/archivo/save', 'ArchivoController@save')->name('archivo.save'); Route::post('/archivo/delete', 'ArchivoController@delete')->name('archivo.delete'); Route::post( '/archivo/cargado', 'ArchivoController@cargado')->name( 'archivo.cargado');