Page MenuHomePhabricator

D8198.diff
No OneTemporary

D8198.diff

Index: src/applications/project/editor/PhabricatorProjectTransactionEditor.php
===================================================================
--- src/applications/project/editor/PhabricatorProjectTransactionEditor.php
+++ src/applications/project/editor/PhabricatorProjectTransactionEditor.php
@@ -55,6 +55,7 @@
switch ($xaction->getTransactionType()) {
case PhabricatorProjectTransaction::TYPE_NAME:
$object->setName($xaction->getNewValue());
+ $object->setPhrictionSlug($xaction->getNewValue());
return;
case PhabricatorProjectTransaction::TYPE_STATUS:
$object->setStatus($xaction->getNewValue());
@@ -84,35 +85,37 @@
switch ($xaction->getTransactionType()) {
case PhabricatorProjectTransaction::TYPE_NAME:
- $old_slug = $object->getFullPhrictionSlug();
- $object->setPhrictionSlug($xaction->getNewValue());
- $changed_slug = $old_slug != $object->getFullPhrictionSlug();
- if ($xaction->getOldValue() && $changed_slug) {
- $old_document = id(new PhrictionDocument())
- ->loadOneWhere(
- 'slug = %s',
- $old_slug);
- if ($old_document && $old_document->getStatus() ==
- PhrictionDocumentStatus::STATUS_EXISTS) {
- $content = id(new PhrictionContent())
- ->load($old_document->getContentID());
- $from_editor = id(PhrictionDocumentEditor::newForSlug($old_slug))
- ->setActor($this->getActor())
- ->setTitle($content->getTitle())
- ->setContent($content->getContent())
- ->setDescription($content->getDescription());
-
- $target_editor = id(PhrictionDocumentEditor::newForSlug(
- $object->getFullPhrictionSlug()))
- ->setActor($this->getActor())
- ->setTitle($content->getTitle())
- ->setContent($content->getContent())
- ->setDescription($content->getDescription())
- ->moveHere($old_document->getID(), $old_document->getPHID());
-
- $target_document = $target_editor->getDocument();
- $from_editor->moveAway($target_document->getID());
- }
+ if ($xaction->getOldValue() === null) {
+ // Project was just created, we don't need to move anything.
+ return;
+ }
+
+ $clone_object = clone $object;
+ $clone_object->setPhrictionSlug($xaction->getOldValue());
+ $old_slug = $clone_object->getFullPhrictionSlug();
+
+ $old_document = id(new PhrictionDocument())
+ ->loadOneWhere('slug = %s', $old_slug);
+ if ($old_document && $old_document->getStatus() ==
+ PhrictionDocumentStatus::STATUS_EXISTS) {
+ $content = id(new PhrictionContent())
+ ->load($old_document->getContentID());
+ $from_editor = id(PhrictionDocumentEditor::newForSlug($old_slug))
+ ->setActor($this->getActor())
+ ->setTitle($content->getTitle())
+ ->setContent($content->getContent())
+ ->setDescription($content->getDescription());
+
+ $target_editor = id(PhrictionDocumentEditor::newForSlug(
+ $object->getFullPhrictionSlug()))
+ ->setActor($this->getActor())
+ ->setTitle($content->getTitle())
+ ->setContent($content->getContent())
+ ->setDescription($content->getDescription())
+ ->moveHere($old_document->getID(), $old_document->getPHID());
+
+ $target_document = $target_editor->getDocument();
+ $from_editor->moveAway($target_document->getID());
}
return;
case PhabricatorTransactions::TYPE_VIEW_POLICY:

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 5, 11:50 PM (2 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7447533
Default Alt Text
D8198.diff (3 KB)

Event Timeline