Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Move-folder modal: self-move guard is dead code and leaves moving stuck

Aperta
#13,534 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
javascript, php
Ambito
frontend

Direzione di ricerca

Individua il gestore onMove() del modal per lo spostamento delle cartelle ed esamina lib/Db/Mailbox.php:176-177 per confermare i formati degli identificatori delle mailbox. Traccia il comportamento della promise e della pulizia durante lo spostamento e NcDialogButton, quindi verifica che gli spostamenti verso sé stessi restituiscano il controllo senza avviare l’operazione e che gli altri percorsi reimpostino lo stato e si chiudano normalmente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

1. to develop bug
Summary

Flagged by Claude during a code review.
Needs validation.

Problem

onMove() sets this.moving = true, then guards the whole operation with this.mailbox.id !== this.destMailboxId. Two defects:

  1. The comparison can never be true. Mailbox::jsonSerialize (lib/Db/Mailbox.php:176-177) exposes id as base64_encode($name), while destMailboxId is always the numeric databaseId or undefined. The intended "moving a folder into itself is a no-op" check therefore never fires.
  2. The false branch resets nothing — no moving = false, no $emit('close'). Only the try/finally inside the if does that.
Consequences
  • Selecting root for a folder that already sits at root issues a rename to its own name; the resulting IMAP error is only logged, so the user sees a silent no-op instead of the guard.
  • Correcting the comparison to databaseId without also fixing the state handling would hang the dialog: since #13431 made the handler's promise the one NcDialogButton awaits, the primary button would stay disabled forever.
Suggested fix

Compare this.mailbox.databaseId against this.destMailboxId, and return before setting moving = true when they match (or hoist the finally cleanup to cover the early exit).

Lingua principale
JavaScript
Stelle
1k
Fork
348
Merge medio
1g 19h
PR unite (30g)
90

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di nextcloud/mail

Tutte le issue di nextcloud/mail

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.