Tag progetto, @menzioni, appuntamenti da conversazioni

- Modello Tag con nome e colore, M2M su Conversazione
- Modello Appuntamento con luogo, note, partecipanti, link a Conversazione
- @menzioni nei commenti e aggiornamenti: @username → link al profilo
- Autocomplete JS per @menzioni nelle textarea
- Auto-data conversazioni (default=now)
- CRUD completo appuntamenti con permessi autore
- Appuntamenti in agenda, dashboard, dettaglio conversazione
- Crea riunione direttamente da una conversazione (pre-compila titolo e partecipanti)
- Admin: Tag, Appuntamento registrati
This commit is contained in:
automationkriz
2026-04-07 14:28:47 +00:00
parent 006bb24215
commit 09f51b1227
19 changed files with 828 additions and 12 deletions

View File

@@ -327,3 +327,74 @@ textarea.form-control:focus, input.form-control:focus { border-color: var(--acce
.card:hover .dropdown .btn-icon {
opacity: 1;
}
/* ── @Mentions ── */
.mention-link {
color: var(--accent);
font-weight: 600;
text-decoration: none;
background: var(--accent-soft);
padding: .1em .35em;
border-radius: 4px;
}
.mention-link:hover {
text-decoration: underline;
color: var(--accent-hover);
}
.mention-dropdown {
position: absolute;
bottom: 100%;
left: 0;
right: 0;
margin-bottom: 4px;
background: #fff;
border-radius: 10px;
box-shadow: 0 4px 16px rgba(0,0,0,.15);
z-index: 1050;
max-height: 220px;
overflow-y: auto;
display: none;
}
.mention-dropdown.show { display: block; }
.mention-item {
padding: .5rem .75rem;
cursor: pointer;
display: flex;
align-items: center;
gap: .5rem;
font-size: .85rem;
transition: background .1s;
}
.mention-item:hover,
.mention-item.active {
background: var(--accent-soft);
}
.mention-item small {
margin-left: auto;
}
/* ── Tag pills ── */
.tag-pill {
font-size: .68rem;
font-weight: 600;
padding: .2em .55em;
border-radius: 20px;
display: inline-flex;
align-items: center;
gap: .25rem;
border: 1.5px solid;
}
.tag-dot {
width: 7px;
height: 7px;
border-radius: 50%;
display: inline-block;
}
/* ── Appuntamento ── */
.agenda-icon-appuntamento {
background: #fef3c7; color: #d97706;
}
.appuntamento-card {
border-left: 3px solid #d97706 !important;
}