- Spegnimento
- 29 agosto 2026 alle ore 20:21 UTC
- Autore
- Kamo
- Impegno
- fb4c71c
Due nuovi schermi accanto ai pulsanti Add esistenti su /account?tab=membri e ?tab=team-members, a /settings/member/bulk-new e /settings/team-member/bulk-new. Entrambi i pulsanti prendono la loro formulazione dalle etichette dei membri/team-member dell'org. La griglia è un foglio di calcolo: una riga per persona, campi come colonne, un bianco fresco riga allegato il momento in cui l'ultimo è digitato in, e un controllo di rimozione su ogni fila ma quella che segue. Sopra di esso siedono le impostazioni l'intero lotto è creato con -- livello di sicurezza (fisso da quale schermo questo è), fuso orario (l'org's default), dipartimento, titolo di lavoro, stato di appartenenza e la casella di posta per attivare, che inizia per i membri del team e fuori per i membri. Nulla viene creato fino a quando "Finished -- Create ..." viene premuto; il pulsante poi gira, e la griglia va inerte fino a quando ogni record è stato risposto. Il successo parziale è il risultato progettato. L'endpoint crea ogni record nel suo proprie transazioni e rapporti su ciascuno, così le righe che sono atterrati crollano e righe che non sono state esattamente dove erano con la ragione attaccata al cella che lo ha causato -- correggerli e finire di nuovo, e solo il resto è tentato. Le e-mail e i nomi utente duplicati sono catturati anche nel browser, quindi il admin li vede mentre ancora la modifica piuttosto che dopo due terzi di un file ha è stato creato. Un nome utente lasciato vuoto mostra il nome che il server molto probabilmente menta; una digitata a mano viene controllata per la disponibilità in quanto viene digitata. "Import ... Lista" riempie la griglia da un CSV/XLS/XLSX e non crea nessuno. Colonna mappatura riutilizza FieldMappingInterface -- lo stesso componente drag-to-connect Importazione Piombo procedura guidata utilizza, che è già generico sulla sua lista di campo di sistema -- dopo un passaggio auto-mappa che corrisponde ai nomi dell'intestazione che un'esportazione HR effettivamente utilizza. Le coercizioni laterali dei membri vivono nel membroBulkFields.ts con test: posizione di lavoro da "Work From Home" / "In Office" / "Hybrid - 3 giorni in ufficio", prefissi e basta contro le liste configurate dell'org, "Last, First" e "Dr. Jane Q. Pubblico" diviso in parti, e-mail minuscole. Due correzioni cadono fuori dalla costruzione su quel componente: FieldMappingInterface ottiene un optional suModifiersChange. La sua divisione e il suo valore i modificatori erano puramente interni, quindi un consumatore ha ricevuto una mappatura il cui virtualFieldId ha nominato una colonna virtuale ma non ha avuto modo di imparare quale scissione prodotto -- ogni "Split Name" l'utente configurato è stato silenziosamente abbandonato quando le righe sono state lette. Il prop è additivo; il mago porta è intatto. L'importazione sempre parses con hasHeaders: true e reattaches fila 1 stesso quando l'amministratore dice che il file non ha nessuno. il falso ramo di parseFile gestisce un euristico che sbucci fila 1 fuori comunque quando sembra intestazione-ish, e poi rapporti hasHeaders: true perché ha sintetizzato le etichette "Field N" -- così facendo eco quel valore di nuovo nel toggle flips su dietro l'amministratore e la prossima ri-parsa mangia un fila. Su un'importazione membro quella riga è una persona che non ottiene mai un account, con niente sullo schermo da notare.