Changeset View
Changeset View
Standalone View
Standalone View
src/applications/transactions/editengine/PhabricatorEditEngine.php
| Show First 20 Lines • Show All 1,740 Lines • ▼ Show 20 Lines | if ($is_preview) { | ||||
| $request_version = $request->getInt($version_key); | $request_version = $request->getInt($version_key); | ||||
| $current_version = $this->loadDraftVersion($object); | $current_version = $this->loadDraftVersion($object); | ||||
| if ($request_version >= $current_version) { | if ($request_version >= $current_version) { | ||||
| $draft = PhabricatorVersionedDraft::loadOrCreateDraft( | $draft = PhabricatorVersionedDraft::loadOrCreateDraft( | ||||
| $object->getPHID(), | $object->getPHID(), | ||||
| $viewer->getPHID(), | $viewer->getPHID(), | ||||
| $current_version); | $current_version); | ||||
| $is_empty = (!strlen($comment_text) && !$actions); | |||||
| $draft | $draft | ||||
| ->setProperty('comment', $comment_text) | ->setProperty('comment', $comment_text) | ||||
| ->setProperty('actions', $actions) | ->setProperty('actions', $actions) | ||||
| ->save(); | ->save(); | ||||
| $draft_engine = $this->newDraftEngine($object); | |||||
| if ($draft_engine) { | |||||
| $draft_engine | |||||
| ->setVersionedDraft($draft) | |||||
| ->synchronize(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| $xactions = array(); | $xactions = array(); | ||||
| if ($actions) { | if ($actions) { | ||||
| $action_map = array(); | $action_map = array(); | ||||
| foreach ($actions as $action) { | foreach ($actions as $action) { | ||||
| ▲ Show 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | try { | ||||
| ->setException($ex); | ->setException($ex); | ||||
| } | } | ||||
| if (!$is_preview) { | if (!$is_preview) { | ||||
| PhabricatorVersionedDraft::purgeDrafts( | PhabricatorVersionedDraft::purgeDrafts( | ||||
| $object->getPHID(), | $object->getPHID(), | ||||
| $viewer->getPHID(), | $viewer->getPHID(), | ||||
| $this->loadDraftVersion($object)); | $this->loadDraftVersion($object)); | ||||
| $draft_engine = $this->newDraftEngine($object); | |||||
| if ($draft_engine) { | |||||
| $draft_engine | |||||
| ->setVersionedDraft(null) | |||||
| ->synchronize(); | |||||
| } | |||||
| } | } | ||||
| if ($request->isAjax() && $is_preview) { | if ($request->isAjax() && $is_preview) { | ||||
| $preview_content = $this->newCommentPreviewContent($object, $xactions); | $preview_content = $this->newCommentPreviewContent($object, $xactions); | ||||
| return id(new PhabricatorApplicationTransactionResponse()) | return id(new PhabricatorApplicationTransactionResponse()) | ||||
| ->setViewer($viewer) | ->setViewer($viewer) | ||||
| ->setTransactions($xactions) | ->setTransactions($xactions) | ||||
| ->setIsPreview($is_preview) | ->setIsPreview($is_preview) | ||||
| ->setPreviewContent($preview_content); | ->setPreviewContent($preview_content); | ||||
| } else { | } else { | ||||
| return id(new AphrontRedirectResponse()) | return id(new AphrontRedirectResponse()) | ||||
| ->setURI($view_uri); | ->setURI($view_uri); | ||||
| } | } | ||||
| } | } | ||||
| protected function newDraftEngine($object) { | |||||
| $viewer = $this->getViewer(); | |||||
| if ($object instanceof PhabricatorDraftInterface) { | |||||
| $engine = $object->newDraftEngine(); | |||||
| } else { | |||||
| $engine = new PhabricatorBuiltinDraftEngine(); | |||||
| } | |||||
| return $engine | |||||
| ->setObject($object) | |||||
| ->setViewer($viewer); | |||||
| } | |||||
| /* -( Conduit )------------------------------------------------------------ */ | /* -( Conduit )------------------------------------------------------------ */ | ||||
| /** | /** | ||||
| * Respond to a Conduit edit request. | * Respond to a Conduit edit request. | ||||
| * | * | ||||
| * This method accepts a list of transactions to apply to an object, and | * This method accepts a list of transactions to apply to an object, and | ||||
| ▲ Show 20 Lines • Show All 459 Lines • Show Last 20 Lines | |||||