diff --git a/src/applications/phriction/controller/PhrictionNewController.php b/src/applications/phriction/controller/PhrictionNewController.php index 934b41375b..1d9a3b5b82 100644 --- a/src/applications/phriction/controller/PhrictionNewController.php +++ b/src/applications/phriction/controller/PhrictionNewController.php @@ -12,9 +12,32 @@ final class PhrictionNewController extends PhrictionController { $slug = PhabricatorSlug::normalize($request->getStr('slug')); if ($request->isFormPost()) { - $uri = '/phriction/edit/?slug='.$slug; - return id(new AphrontRedirectResponse()) - ->setURI($uri); + $document = id(new PhrictionDocument())->loadOneWhere( + 'slug = %s', + $slug); + $prompt = $request->getStr('prompt', 'no'); + $document_exists = $document && $document->getStatus() == + PhrictionDocumentStatus::STATUS_EXISTS; + + if ($document_exists && $prompt == 'no') { + $dialog = new AphrontDialogView(); + $dialog->setSubmitURI('/phriction/new/') + ->setTitle(pht('Edit Existing Document?')) + ->setUser($user) + ->appendChild(pht( + 'The document %s already exists. Do you want to edit it instead?', + hsprintf('%s', $slug))) + ->addHiddenInput('slug', $slug) + ->addHiddenInput('prompt', 'yes') + ->addCancelButton('/w/') + ->addSubmitButton(pht('Edit Document')); + + return id(new AphrontDialogResponse())->setDialog($dialog); + } else { + $uri = '/phriction/edit/?slug='.$slug; + return id(new AphrontRedirectResponse()) + ->setURI($uri); + } } if ($slug == '/') {