Escenario Después de más de 11 años de fiel servicio ha llegado el momento de cambiar de NAS. Hasta ahora había estado usando una máquina con FreeBSD y la interfaz web Nas4Free. Para el nuevo servidor, he optado por instalar Ubuntu y gestionar la administración web con webmin. El soporte de Ubuntu para el sistema…
Instalación y configuración de Guacamole 1.3
Escenario Necesitamos acceder de manera remota a nuestro entorno de trabajo y hemos decidido que guacamole es nuestra mejor opción. Permite el uso de protocoles estándares como VNC, RDP y SSH No requiere instalar software en las máquinas de los usuarios. Gracias a HTML5, una vez instalado en un servidor, puedes acceder a tu escritorio…
Cómo recuperar ficheros borrados de Amazon Linux
Escenario Tenemos una aplicación de tipo SpringBoot desplegada en una instancia ec2 de Amazon, con el sistema operativo Amazon Linux. Para sincronizar los cambios con el código desplegado en producción utilizo rsync en este script de bash:
1 2 3 4 5 6 7 8 |
#!/bin/sh USER=ec2-user HOST=acme.com APPLICATION_DIR=/home/marcos/NetBeansProjects/acme_web DESTINATION_DIR=/var/app/acme/web cd ${APPLICATION_DIR}; rsync -rltvz * --exclude=target --exclude=node_modules/* --exclude=node --exclude=*.log --exclude=src/main/resources/public/ ${USER}@${HOST}:${DESTINATION_DIR} exit 0 |
Ayer cuando desplegué, la aplicación no compilaba en el servidor remoto. Era debido a que una clase…
Sonata Admin: cómo redireccionar un usuario según su rol
Escenario Una aplicación symfony 4.4 con el framework Sonata Admin 3.78.1 cuenta con una página de login para que los administradores del sitio puedan gestionar sus clientes. Ahora queremos que los clientes puedan usar la misma página de login para acceder a sus datos personales como, por ejemplo, sus facturas. Para la gestión de usuarios…
Sonata Admin: el calendario no se cierra
Escenario Incluir un filtro de rango de fechas en SonataAdmin que use un calendario para seleccionar la fecha es más o menos fácil. Primero añadimos el siguiente bloque en el admin de nuestra entidad:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php // src/Admin/InvoiceAdmin.php namespace Acme\Admin; use Sonata\AdminBundle\Admin\AbstractAdmin; use Sonata\DoctrineORMAdminBundle\Filter\DateRangeFilter; use Sonata\Form\Type\DateTimeRangePickerType; /** * * @author Marcos */ class InvoiceAdmin extends AbstractAdmin { protected function configureDatagridFilters(DatagridMapper $datagridMapper) { $datagridMapper->add('createdAt', DateRangeFilter::class, array( 'label' => 'created_at', 'field_type' => DateTimeRangePickerType::class )); } } </php> |
Y la siguiente clave bajo form_themesen el fichero config/packages/twig.yaml:
1 2 3 4 5 6 |
twig: default_path: '%kernel.project_dir%/templates' debug: '%kernel.debug%' strict_variables: '%kernel.debug%' form_themes: - '@SonataForm/Form/datepicker.html.twig' |
Problema El calendario no se cierra automáticamente cuando se selecciona…
React select async
Escenario Estoy diseñando un formulario web en el que quiero mostrar un combo que se carga dinámicamente con una petición XHR. Problema Los datos a cargar cuentan con miles de registros. Necesito un combo que se cargue de manera dinámica y disponga de un autocomplete para filtrar los resultos. Solución React select es un módulo…
Elemento personalizado en menú lateral de SonataAdmin
Escenario Necesito añadir un enlace a una página personalizada en el menú lateral de Sonata Admin. En concreto uno que, en vez de dirigir a un listado de entidades, abra una página específica. La entidad en cuestión es Acme\Entity\CashOffice. Antes que nada tenemos que crear un CashOfficeAdmin en el cual usaremos el método configureRoutes para…
Synfony 4: exporter personalizado
Escenario El bunde de SonataAdmin para Symfony te permite crear listados exportables sin apenas esfuerzo. Por defecto, ofrece la posibilidad de exportar a csv, xls, json y xml. Basta con crear el fichero Admin correspondiente a la entidad. Por ejemplo si quisiéramos que un listado de facturas de nuestra aplicación pueda ser exportado a Excel,…
Partición adicional en disco con tabla MBR
Escenario Tengo un disco de 4TB que usa una tabla de particiones MBR. Hay una partición de 2TB ya creada y necesito crear otra en el espacio disponible. Problema Según parted para crear la nueva partición por el siguiente problema: Error: starting sector number, 4294967296 exceeds the msdos-partition-table-imposed maximum of 4294967295 [plain]marcos@technoage:~$ sudo parted /dev/sdb…
Last.fm API ¿Dónde están las imágenes?
Escenario Llevo una decena de años usando el API de Last.fm para mostrar las imágenes de los artistas de un sitio web para gestionar la música que escucho. Además, mantengo el repositorio oficial del cliente PHP en GiHub. Así que tengo algo de experiencia con el servicio REST de Last.fm. Hará cosa de un año…