Skip to content

Instantly share code, notes, and snippets.

Avatar

Sergi Tur Badenas acacha

View GitHub Profile
@acacha
acacha / ItinerariFormatiuTallStack.md
Last active Dec 24, 2020
Itinerari formatiu aplicacions TALL Stack
View ItinerariFormatiuTallStack.md

Aquest document pretén ser un guió dels passos a seguir per començar a aprendre des de zero Laravel, i per tant PHP, programació orientada a Objectes i bones pràctiques en l'escriptura de codi: SOLID, IOC Container, Injecció de depencències, Test Driven Development. Un cop coneixem Laravel, que és una eina de backend, es recomanable aprendre la TALL Stack per tal de poder crear aplicacions FULL stack, és a dir tant de backend com de frontend (navegadors/Javascript) i a més que aquestes aplicacions siguin reactives com si utilitzesim frameworks Javascript com Vue, Angular o React, però gràcies a Livewire i AlpineJS treballant sobretot amb codi PHP i HTML i utilitzar el mínim Javascript. Finalment Tailwind serà el UI framework per crear la UI, el Look&Feel de la nostra app.

Reactive Laravel apps amb stack TALL

Què és TALL?

Parts de la pila (stack):

  • Tailwind CSS: https://tailwindcss.com/ . UI Framework, s'encarregarà de la presentació de les vistes. No cal dominar CSS (tot
@acacha
acacha / ExempleDropdown.html
Created Nov 19, 2020
ExempleDropdown.html
View ExempleDropdown.html
{{-- Dropdown tasques--}}
<div class="hidden sm:flex sm:items-center sm:ml-6">
<x-jet-dropdown align="right" width="48">
<x-slot name="trigger">
<button class="flex items-center text-sm font-medium text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-300 transition duration-150 ease-in-out">
<div>{{ __('Tasques') }}</div>
<div class="ml-1">
<svg class="fill-current h-4 w-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd" />
</svg>
@acacha
acacha / CanBeCanceledByEscKey.js
Last active Nov 13, 2020
CanBeCanceledByEscKey Vue Mixin
View CanBeCanceledByEscKey.js
export default {
// SSR mount and Before mount are not executed in SSR
beforeMount() {
const escapeHandler = (e) => {
if (e.key === 'Escape') {
this.$emit('cancel')
}
}
document.addEventListener('keydown', escapeHandler)
this.$once('hook:destroyed', () => {
@acacha
acacha / addAllPrivileges.sh
Created May 25, 2020
addAllPrivileges.sh
View addAllPrivileges.sh
#!/bin/bash
#$ sudo net rpc rights list -Uroot -I192.168.1.7
#Enter root's password:
# SeMachineAccountPrivilege Add machines to domain
# SeTakeOwnershipPrivilege Take ownership of files or other objects
# SeBackupPrivilege Back up files and directories
# SeRestorePrivilege Restore files and directories
# SeRemoteShutdownPrivilege Force shutdown from a remote system
# SePrintOperatorPrivilege Manage printers
@acacha
acacha / MOODLE.md
Created Mar 29, 2020
Configuració de Moodle per accedir als Web Services amb scool
View MOODLE.md

0 . Assistent per activar control per sistema extern de Moodle

El trobareu a:

https://www.iesebre.com/moodle/admin/settings.php?section=webservicesoverview 

Aquí cal:

  • Habilitar els serveis web
@acacha
acacha / NOTA_SOBRE_LARAVEL_SCOUT_I_GITIGNORE.md
Last active Jan 29, 2020
NOTA_SOBRE_LARAVEL_SCOUT_I_GITIGNORE
View NOTA_SOBRE_LARAVEL_SCOUT_I_GITIGNORE.md

Si ja teniu el fitxer pujat a Github s'ha d'eliminar amb:

git rm --cached storage/channels.index
git add .
git commit -a -m "Sync"
git push origin master
@acacha
acacha / gist:1b6f683077b19bea63d4eb57b0a5059c
Created Jan 17, 2020
SELECTS ADMINISTRATIVE STATUS | DEPARTMENTS | ESPECIALITIES
View gist:1b6f683077b19bea63d4eb57b0a5059c
-[ ] Són autocompletes i ja utilitzem autocompletes als fitres
- [ ] Reaprofitar codi autocomplete (vista tonta autocomplete app-xxx-autocomplete o similars)
- [ ] cal tenir en compte però que aquests selects (poden?opcional)tenen validació, mostren errors i per tant cal fer composició
- [ ] API comuna -> Totes les propietats indiquen tipus i no permetem propietats amb diferents tipus (id o objecte per exemple i evitar problemes)
- [ ] Comprovar no afecta a ningú i tot funciona correctament
@acacha
acacha / NOTES_CORRECCIONS_GERARD.md
Last active Jan 15, 2020
NOTES_CORRECCIONS_GERARD
View NOTES_CORRECCIONS_GERARD.md
  • llegeix els comentaris generals fets a tot el grup alguns també t'afecten: https://gist.github.com/acacha/572e7f522b3f443fc8be23593f394755
  • La toolbar de les cards té un botó X per tancar. Has fet el minimitzar i maximitzar però no el close
  • Testos a explotació de Messages, hi ha error Copy/paste: Spatie\Permission\Exceptions\RoleDoesNotExist: There is no role named ChannelsManager.
  • Utilitza marges per separar les icones/botons update i delete a la llista de canals/missatges.
  • Després de crear un message/channel cal posar a buit ('') els camps. Ara després afegir un canal/missatges si torno a posar afegir surten les dades de l'anterior canal/missatge afegit
  • Messages:
    • Cal poder modificar l'usuari del missatge (els admins i els managers). Ha de ser un desplegable amb la llista usuaris i per defecte seleccionar l'usuari logat
    • No mostra spinner/loading durant l'operació esborrar
@acacha
acacha / 15_GENER_2020.md
Last active Jan 15, 2020
15_GENER_2020.md
View 15_GENER_2020.md

Comprovacions/checks

  • Al component de card amb toolbar que vam fer, teniu pendent fer maximitzar/minitmitzar/close. Alguns ho heu fet però IMPORTANT:
    • El minimitzar/maximitzar ha de ser en un mateix icona, que mostri minimitzar quan està maximitzar i maximitzar quan està minimitzat
  • Aplicar eslint a tots els fitxers Javascript que entregeu
  • Repasar que no queda "basura" al entregar
    • Buscar tots els console.log i eliminar
    • buscar tots els TODOS i mirar si ja es poden eliminar
    • Buscar tots els dd() i dump() i eliminar
    • als testos treure tots els withoutExceptionHandling
@acacha
acacha / NOTES_MOIXONET_NATIVESCRIPT.md
Last active Jan 16, 2020
NOTES_MOIXONET_NATIVESCRIPT
View NOTES_MOIXONET_NATIVESCRIPT.md

Aplicació a moixonet: