From bce83bf844e5e9e0c885e533a18def58c7fc0cd3 Mon Sep 17 00:00:00 2001 From: epriestley Date: Tue, 8 Dec 2015 16:50:46 -0800 Subject: [PATCH] Delete old Maniphest edit controller Summary: Ref T9908. No more callsites. Also: - Phurl a couple of documentation URIs. - Get rid of "task:" in the global search since it doesn't really make sense anymore. Test Plan: `grep`, edited/created tasks. Reviewers: chad Reviewed By: chad Maniphest Tasks: T9908 Differential Revision: https://secure.phabricator.com/D14716 --- src/__phutil_library_map__.php | 2 - .../PhabricatorManiphestApplication.php | 2 - .../ManiphestTaskEditController.php | 757 ------------------ .../engine/PhabricatorJumpNavHandler.php | 5 - src/docs/contributor/bug_reports.diviner | 4 +- src/docs/contributor/feature_requests.diviner | 4 +- src/docs/user/userguide/jump.diviner | 1 - 7 files changed, 4 insertions(+), 771 deletions(-) delete mode 100644 src/applications/maniphest/controller/ManiphestTaskEditController.php diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index 7e64ae646c..786d7a643b 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -1303,7 +1303,6 @@ phutil_register_library_map(array( 'ManiphestTaskDescriptionHeraldField' => 'applications/maniphest/herald/ManiphestTaskDescriptionHeraldField.php', 'ManiphestTaskDetailController' => 'applications/maniphest/controller/ManiphestTaskDetailController.php', 'ManiphestTaskEditBulkJobType' => 'applications/maniphest/bulk/ManiphestTaskEditBulkJobType.php', - 'ManiphestTaskEditController' => 'applications/maniphest/controller/ManiphestTaskEditController.php', 'ManiphestTaskEditProController' => 'applications/maniphest/controller/ManiphestTaskEditProController.php', 'ManiphestTaskHasCommitEdgeType' => 'applications/maniphest/edge/ManiphestTaskHasCommitEdgeType.php', 'ManiphestTaskHasMockEdgeType' => 'applications/maniphest/edge/ManiphestTaskHasMockEdgeType.php', @@ -5304,7 +5303,6 @@ phutil_register_library_map(array( 'ManiphestTaskDescriptionHeraldField' => 'ManiphestTaskHeraldField', 'ManiphestTaskDetailController' => 'ManiphestController', 'ManiphestTaskEditBulkJobType' => 'PhabricatorWorkerBulkJobType', - 'ManiphestTaskEditController' => 'ManiphestController', 'ManiphestTaskEditProController' => 'ManiphestController', 'ManiphestTaskHasCommitEdgeType' => 'PhabricatorEdgeType', 'ManiphestTaskHasMockEdgeType' => 'PhabricatorEdgeType', diff --git a/src/applications/maniphest/application/PhabricatorManiphestApplication.php b/src/applications/maniphest/application/PhabricatorManiphestApplication.php index d27fda0d24..150980ad0b 100644 --- a/src/applications/maniphest/application/PhabricatorManiphestApplication.php +++ b/src/applications/maniphest/application/PhabricatorManiphestApplication.php @@ -57,8 +57,6 @@ final class PhabricatorManiphestApplication extends PhabricatorApplication { 'report/(?:(?P\w+)/)?' => 'ManiphestReportController', 'batch/' => 'ManiphestBatchEditController', 'task/' => array( - 'create/' => 'ManiphestTaskEditController', - 'edit/(?P[1-9]\d*)/' => 'ManiphestTaskEditController', 'descriptionpreview/' => 'PhabricatorMarkupPreviewController', ), diff --git a/src/applications/maniphest/controller/ManiphestTaskEditController.php b/src/applications/maniphest/controller/ManiphestTaskEditController.php deleted file mode 100644 index e9ce5a567a..0000000000 --- a/src/applications/maniphest/controller/ManiphestTaskEditController.php +++ /dev/null @@ -1,757 +0,0 @@ -getViewer(); - $id = $request->getURIData('id'); - - $response_type = $request->getStr('responseType', 'task'); - $order = $request->getStr('order', PhabricatorProjectColumn::DEFAULT_ORDER); - - $can_edit_assign = $this->hasApplicationCapability( - ManiphestEditAssignCapability::CAPABILITY); - $can_edit_policies = $this->hasApplicationCapability( - ManiphestEditPoliciesCapability::CAPABILITY); - $can_edit_priority = $this->hasApplicationCapability( - ManiphestEditPriorityCapability::CAPABILITY); - $can_edit_projects = $this->hasApplicationCapability( - ManiphestEditProjectsCapability::CAPABILITY); - $can_edit_status = $this->hasApplicationCapability( - ManiphestEditStatusCapability::CAPABILITY); - $can_create_projects = PhabricatorPolicyFilter::hasCapability( - $viewer, - PhabricatorApplication::getByClass('PhabricatorProjectApplication'), - ProjectCreateProjectsCapability::CAPABILITY); - - $parent_task = null; - $template_id = null; - - if ($id) { - $task = id(new ManiphestTaskQuery()) - ->setViewer($viewer) - ->requireCapabilities( - array( - PhabricatorPolicyCapability::CAN_VIEW, - PhabricatorPolicyCapability::CAN_EDIT, - )) - ->withIDs(array($id)) - ->needSubscriberPHIDs(true) - ->needProjectPHIDs(true) - ->executeOne(); - if (!$task) { - return new Aphront404Response(); - } - } else { - $task = ManiphestTask::initializeNewTask($viewer); - - // We currently do not allow you to set the task status when creating - // a new task, although now that statuses are custom it might make - // sense. - $can_edit_status = false; - - // These allow task creation with defaults. - if (!$request->isFormPost()) { - $task->setTitle($request->getStr('title')); - - if ($can_edit_projects) { - $projects = $request->getStr('projects'); - if ($projects) { - $tokens = $request->getStrList('projects'); - - $type_project = PhabricatorProjectProjectPHIDType::TYPECONST; - foreach ($tokens as $key => $token) { - if (phid_get_type($token) == $type_project) { - // If this is formatted like a PHID, leave it as-is. - continue; - } - - if (preg_match('/^#/', $token)) { - // If this already has a "#", leave it as-is. - continue; - } - - // Add a "#" prefix. - $tokens[$key] = '#'.$token; - } - - $default_projects = id(new PhabricatorObjectQuery()) - ->setViewer($viewer) - ->withNames($tokens) - ->execute(); - $default_projects = mpull($default_projects, 'getPHID'); - - if ($default_projects) { - $task->attachProjectPHIDs($default_projects); - } - } - } - - if ($can_edit_priority) { - $priority = $request->getInt('priority'); - if ($priority !== null) { - $priority_map = ManiphestTaskPriority::getTaskPriorityMap(); - if (isset($priority_map[$priority])) { - $task->setPriority($priority); - } - } - } - - $task->setDescription($request->getStr('description')); - - if ($can_edit_assign) { - $assign = $request->getStr('assign'); - if (strlen($assign)) { - $assign_user = id(new PhabricatorPeopleQuery()) - ->setViewer($viewer) - ->withUsernames(array($assign)) - ->executeOne(); - if (!$assign_user) { - $assign_user = id(new PhabricatorPeopleQuery()) - ->setViewer($viewer) - ->withPHIDs(array($assign)) - ->executeOne(); - } - - if ($assign_user) { - $task->setOwnerPHID($assign_user->getPHID()); - } - } - } - } - - $template_id = $request->getInt('template'); - - // You can only have a parent task if you're creating a new task. - $parent_id = $request->getInt('parent'); - if (strlen($parent_id)) { - $parent_task = id(new ManiphestTaskQuery()) - ->setViewer($viewer) - ->withIDs(array($parent_id)) - ->executeOne(); - if (!$parent_task) { - return new Aphront404Response(); - } - if (!$template_id) { - $template_id = $parent_id; - } - } - } - - $errors = array(); - $e_title = true; - - $field_list = PhabricatorCustomField::getObjectFields( - $task, - PhabricatorCustomField::ROLE_EDIT); - $field_list->setViewer($viewer); - $field_list->readFieldsFromStorage($task); - - $aux_fields = $field_list->getFields(); - - $v_space = $task->getSpacePHID(); - - if ($request->isFormPost()) { - $changes = array(); - - $new_title = $request->getStr('title'); - $new_desc = $request->getStr('description'); - $new_status = $request->getStr('status'); - $v_space = $request->getStr('spacePHID'); - - if (!$task->getID()) { - $workflow = 'create'; - } else { - $workflow = ''; - } - - $changes[ManiphestTransaction::TYPE_TITLE] = $new_title; - $changes[ManiphestTransaction::TYPE_DESCRIPTION] = $new_desc; - - if ($can_edit_status) { - $changes[ManiphestTransaction::TYPE_STATUS] = $new_status; - } else if (!$task->getID()) { - // Create an initial status transaction for the burndown chart. - // TODO: We can probably remove this once Facts comes online. - $changes[ManiphestTransaction::TYPE_STATUS] = $task->getStatus(); - } - - $owner_tokenizer = $request->getArr('assigned_to'); - $owner_phid = reset($owner_tokenizer); - - if (!strlen($new_title)) { - $e_title = pht('Required'); - $errors[] = pht('Title is required.'); - } - - $old_values = array(); - foreach ($aux_fields as $aux_arr_key => $aux_field) { - // TODO: This should be buildFieldTransactionsFromRequest() once we - // switch to ApplicationTransactions properly. - - $aux_old_value = $aux_field->getOldValueForApplicationTransactions(); - $aux_field->readValueFromRequest($request); - $aux_new_value = $aux_field->getNewValueForApplicationTransactions(); - - // TODO: We're faking a call to the ApplicaitonTransaction validation - // logic here. We need valid objects to pass, but they aren't used - // in a meaningful way. For now, build User objects. Once the Maniphest - // objects exist, this will switch over automatically. This is a big - // hack but shouldn't be long for this world. - $placeholder_editor = id(new PhabricatorUserProfileEditor()) - ->setActor($viewer); - - $field_errors = $aux_field->validateApplicationTransactions( - $placeholder_editor, - PhabricatorTransactions::TYPE_CUSTOMFIELD, - array( - id(new ManiphestTransaction()) - ->setOldValue($aux_old_value) - ->setNewValue($aux_new_value), - )); - - foreach ($field_errors as $error) { - $errors[] = $error->getMessage(); - } - - $old_values[$aux_field->getFieldKey()] = $aux_old_value; - } - - if ($errors) { - $task->setTitle($new_title); - $task->setDescription($new_desc); - $task->setPriority($request->getInt('priority')); - $task->setOwnerPHID($owner_phid); - $task->attachSubscriberPHIDs($request->getArr('cc')); - $task->attachProjectPHIDs($request->getArr('projects')); - } else { - - if ($can_edit_priority) { - $changes[ManiphestTransaction::TYPE_PRIORITY] = - $request->getInt('priority'); - } - if ($can_edit_assign) { - $changes[ManiphestTransaction::TYPE_OWNER] = $owner_phid; - } - - $changes[PhabricatorTransactions::TYPE_SUBSCRIBERS] = - array('=' => $request->getArr('cc')); - - if ($can_edit_projects) { - $projects = $request->getArr('projects'); - $changes[PhabricatorTransactions::TYPE_EDGE] = - $projects; - $column_phid = $request->getStr('columnPHID'); - // allow for putting a task in a project column at creation -only- - if (!$task->getID() && $column_phid && $projects) { - $column = id(new PhabricatorProjectColumnQuery()) - ->setViewer($viewer) - ->withProjectPHIDs($projects) - ->withPHIDs(array($column_phid)) - ->executeOne(); - if ($column) { - $changes[ManiphestTransaction::TYPE_PROJECT_COLUMN] = - array( - 'new' => array( - 'projectPHID' => $column->getProjectPHID(), - 'columnPHIDs' => array($column_phid), - ), - 'old' => array( - 'projectPHID' => $column->getProjectPHID(), - 'columnPHIDs' => array(), - ), - ); - } - } - } - - if ($can_edit_policies) { - $changes[PhabricatorTransactions::TYPE_SPACE] = $v_space; - $changes[PhabricatorTransactions::TYPE_VIEW_POLICY] = - $request->getStr('viewPolicy'); - $changes[PhabricatorTransactions::TYPE_EDIT_POLICY] = - $request->getStr('editPolicy'); - } - - $template = new ManiphestTransaction(); - $transactions = array(); - - foreach ($changes as $type => $value) { - $transaction = clone $template; - $transaction->setTransactionType($type); - if ($type == ManiphestTransaction::TYPE_PROJECT_COLUMN) { - $transaction->setNewValue($value['new']); - $transaction->setOldValue($value['old']); - } else if ($type == PhabricatorTransactions::TYPE_EDGE) { - $project_type = - PhabricatorProjectObjectHasProjectEdgeType::EDGECONST; - $transaction - ->setMetadataValue('edge:type', $project_type) - ->setNewValue( - array( - '=' => array_fuse($value), - )); - } else { - $transaction->setNewValue($value); - } - $transactions[] = $transaction; - } - - if ($aux_fields) { - foreach ($aux_fields as $aux_field) { - $transaction = clone $template; - $transaction->setTransactionType( - PhabricatorTransactions::TYPE_CUSTOMFIELD); - $aux_key = $aux_field->getFieldKey(); - $transaction->setMetadataValue('customfield:key', $aux_key); - $old = idx($old_values, $aux_key); - $new = $aux_field->getNewValueForApplicationTransactions(); - - $transaction->setOldValue($old); - $transaction->setNewValue($new); - - $transactions[] = $transaction; - } - } - - if ($transactions) { - $is_new = !$task->getID(); - - $event = new PhabricatorEvent( - PhabricatorEventType::TYPE_MANIPHEST_WILLEDITTASK, - array( - 'task' => $task, - 'new' => $is_new, - 'transactions' => $transactions, - )); - $event->setUser($viewer); - $event->setAphrontRequest($request); - PhutilEventEngine::dispatchEvent($event); - - $task = $event->getValue('task'); - $transactions = $event->getValue('transactions'); - - $editor = id(new ManiphestTransactionEditor()) - ->setActor($viewer) - ->setContentSourceFromRequest($request) - ->setContinueOnNoEffect(true) - ->applyTransactions($task, $transactions); - - $event = new PhabricatorEvent( - PhabricatorEventType::TYPE_MANIPHEST_DIDEDITTASK, - array( - 'task' => $task, - 'new' => $is_new, - 'transactions' => $transactions, - )); - $event->setUser($viewer); - $event->setAphrontRequest($request); - PhutilEventEngine::dispatchEvent($event); - } - - - if ($parent_task) { - // TODO: This should be transactional now. - id(new PhabricatorEdgeEditor()) - ->addEdge( - $parent_task->getPHID(), - ManiphestTaskDependsOnTaskEdgeType::EDGECONST, - $task->getPHID()) - ->save(); - $workflow = $parent_task->getID(); - } - - if ($request->isAjax()) { - switch ($response_type) { - case 'card': - $owner = null; - if ($task->getOwnerPHID()) { - $owner = id(new PhabricatorHandleQuery()) - ->setViewer($viewer) - ->withPHIDs(array($task->getOwnerPHID())) - ->executeOne(); - } - $tasks = id(new ProjectBoardTaskCard()) - ->setViewer($viewer) - ->setTask($task) - ->setOwner($owner) - ->setCanEdit(true) - ->getItem(); - - $column = id(new PhabricatorProjectColumnQuery()) - ->setViewer($viewer) - ->withPHIDs(array($request->getStr('columnPHID'))) - ->executeOne(); - if (!$column) { - return new Aphront404Response(); - } - - // re-load projects for accuracy as they are not re-loaded via - // the editor - $project_phids = PhabricatorEdgeQuery::loadDestinationPHIDs( - $task->getPHID(), - PhabricatorProjectObjectHasProjectEdgeType::EDGECONST); - $task->attachProjectPHIDs($project_phids); - $remove_from_board = false; - if (!in_array($column->getProjectPHID(), $project_phids)) { - $remove_from_board = true; - } - - $positions = id(new PhabricatorProjectColumnPositionQuery()) - ->setViewer($viewer) - ->withColumns(array($column)) - ->execute(); - $task_phids = mpull($positions, 'getObjectPHID'); - - $column_tasks = id(new ManiphestTaskQuery()) - ->setViewer($viewer) - ->withPHIDs($task_phids) - ->execute(); - - if ($order == PhabricatorProjectColumn::ORDER_NATURAL) { - // TODO: This is a little bit awkward, because PHP and JS use - // slightly different sort order parameters to achieve the same - // effect. It would be good to unify this a bit at some point. - $sort_map = array(); - foreach ($positions as $position) { - $sort_map[$position->getObjectPHID()] = array( - -$position->getSequence(), - $position->getID(), - ); - } - } else { - $sort_map = mpull( - $column_tasks, - 'getPrioritySortVector', - 'getPHID'); - } - - $data = array( - 'sortMap' => $sort_map, - 'removeFromBoard' => $remove_from_board, - ); - break; - case 'task': - default: - $tasks = $this->renderSingleTask($task); - $data = array(); - break; - } - return id(new AphrontAjaxResponse())->setContent( - array( - 'tasks' => $tasks, - 'data' => $data, - )); - } - - $redirect_uri = '/T'.$task->getID(); - - if ($workflow) { - $redirect_uri .= '?workflow='.$workflow; - } - - return id(new AphrontRedirectResponse()) - ->setURI($redirect_uri); - } - } else { - if (!$task->getID()) { - $task->attachSubscriberPHIDs(array( - $viewer->getPHID(), - )); - if ($template_id) { - $template_task = id(new ManiphestTaskQuery()) - ->setViewer($viewer) - ->withIDs(array($template_id)) - ->needSubscriberPHIDs(true) - ->needProjectPHIDs(true) - ->executeOne(); - if ($template_task) { - $cc_phids = array_unique(array_merge( - $template_task->getSubscriberPHIDs(), - array($viewer->getPHID()))); - $task->attachSubscriberPHIDs($cc_phids); - $task->attachProjectPHIDs($template_task->getProjectPHIDs()); - $task->setOwnerPHID($template_task->getOwnerPHID()); - $task->setPriority($template_task->getPriority()); - $task->setViewPolicy($template_task->getViewPolicy()); - $task->setEditPolicy($template_task->getEditPolicy()); - - $v_space = $template_task->getSpacePHID(); - - $template_fields = PhabricatorCustomField::getObjectFields( - $template_task, - PhabricatorCustomField::ROLE_EDIT); - - $fields = $template_fields->getFields(); - foreach ($fields as $key => $field) { - if (!$field->shouldCopyWhenCreatingSimilarTask()) { - unset($fields[$key]); - } - if (empty($aux_fields[$key])) { - unset($fields[$key]); - } - } - - if ($fields) { - id(new PhabricatorCustomFieldList($fields)) - ->setViewer($viewer) - ->readFieldsFromStorage($template_task); - - foreach ($fields as $key => $field) { - $aux_fields[$key]->setValueFromStorage( - $field->getValueForStorage()); - } - } - } - } - } - } - - $error_view = null; - if ($errors) { - $error_view = new PHUIInfoView(); - $error_view->setErrors($errors); - } - - $priority_map = ManiphestTaskPriority::getTaskPriorityMap(); - - if ($task->getOwnerPHID()) { - $assigned_value = array($task->getOwnerPHID()); - } else { - $assigned_value = array(); - } - - if ($task->getSubscriberPHIDs()) { - $cc_value = $task->getSubscriberPHIDs(); - } else { - $cc_value = array(); - } - - if ($task->getProjectPHIDs()) { - $projects_value = $task->getProjectPHIDs(); - } else { - $projects_value = array(); - } - - $cancel_id = nonempty($task->getID(), $template_id); - if ($cancel_id) { - $cancel_uri = '/T'.$cancel_id; - } else { - $cancel_uri = '/maniphest/'; - } - - if ($task->getID()) { - $button_name = pht('Save Task'); - $header_name = pht('Edit Task'); - } else if ($parent_task) { - $cancel_uri = '/T'.$parent_task->getID(); - $button_name = pht('Create Task'); - $header_name = pht('Create New Subtask'); - } else { - $button_name = pht('Create Task'); - $header_name = pht('Create New Task'); - } - - require_celerity_resource('maniphest-task-edit-css'); - - $project_tokenizer_id = celerity_generate_unique_node_id(); - - $form = new AphrontFormView(); - $form - ->setUser($viewer) - ->addHiddenInput('template', $template_id) - ->addHiddenInput('responseType', $response_type) - ->addHiddenInput('order', $order) - ->addHiddenInput('ungrippable', $request->getStr('ungrippable')) - ->addHiddenInput('columnPHID', $request->getStr('columnPHID')); - - if ($parent_task) { - $form - ->appendChild( - id(new AphrontFormStaticControl()) - ->setLabel(pht('Parent Task')) - ->setValue($viewer->renderHandle($parent_task->getPHID()))) - ->addHiddenInput('parent', $parent_task->getID()); - } - - $form - ->appendChild( - id(new AphrontFormTextAreaControl()) - ->setLabel(pht('Title')) - ->setName('title') - ->setError($e_title) - ->setHeight(AphrontFormTextAreaControl::HEIGHT_VERY_SHORT) - ->setValue($task->getTitle())); - - if ($can_edit_status) { - // See T4819. - $status_map = ManiphestTaskStatus::getTaskStatusMap(); - $dup_status = ManiphestTaskStatus::getDuplicateStatus(); - - if ($task->getStatus() != $dup_status) { - unset($status_map[$dup_status]); - } - - $form - ->appendChild( - id(new AphrontFormSelectControl()) - ->setLabel(pht('Status')) - ->setName('status') - ->setValue($task->getStatus()) - ->setOptions($status_map)); - } - - $policies = id(new PhabricatorPolicyQuery()) - ->setViewer($viewer) - ->setObject($task) - ->execute(); - - if ($can_edit_assign) { - $form->appendControl( - id(new AphrontFormTokenizerControl()) - ->setLabel(pht('Assigned To')) - ->setName('assigned_to') - ->setValue($assigned_value) - ->setUser($viewer) - ->setDatasource(new PhabricatorPeopleDatasource()) - ->setLimit(1)); - } - - $form - ->appendControl( - id(new AphrontFormTokenizerControl()) - ->setLabel(pht('CC')) - ->setName('cc') - ->setValue($cc_value) - ->setUser($viewer) - ->setDatasource(new PhabricatorMetaMTAMailableDatasource())); - - if ($can_edit_priority) { - $form - ->appendChild( - id(new AphrontFormSelectControl()) - ->setLabel(pht('Priority')) - ->setName('priority') - ->setOptions($priority_map) - ->setValue($task->getPriority())); - } - - if ($can_edit_policies) { - $form - ->appendChild( - id(new AphrontFormPolicyControl()) - ->setUser($viewer) - ->setCapability(PhabricatorPolicyCapability::CAN_VIEW) - ->setPolicyObject($task) - ->setPolicies($policies) - ->setSpacePHID($v_space) - ->setName('viewPolicy')) - ->appendChild( - id(new AphrontFormPolicyControl()) - ->setUser($viewer) - ->setCapability(PhabricatorPolicyCapability::CAN_EDIT) - ->setPolicyObject($task) - ->setPolicies($policies) - ->setName('editPolicy')); - } - - if ($can_edit_projects) { - $caption = null; - if ($can_create_projects) { - $caption = javelin_tag( - 'a', - array( - 'href' => '/project/create/', - 'mustcapture' => true, - 'sigil' => 'project-create', - ), - pht('Create New Project')); - } - $form - ->appendControl( - id(new AphrontFormTokenizerControl()) - ->setLabel(pht('Projects')) - ->setName('projects') - ->setValue($projects_value) - ->setID($project_tokenizer_id) - ->setCaption($caption) - ->setDatasource(new PhabricatorProjectDatasource())); - } - - $field_list->appendFieldsToForm($form); - - require_celerity_resource('phui-info-view-css'); - - Javelin::initBehavior('project-create', array( - 'tokenizerID' => $project_tokenizer_id, - )); - - $description_control = id(new PhabricatorRemarkupControl()) - ->setLabel(pht('Description')) - ->setName('description') - ->setID('description-textarea') - ->setValue($task->getDescription()) - ->setUser($viewer); - - $form - ->appendChild($description_control); - - if ($request->isAjax()) { - $dialog = id(new AphrontDialogView()) - ->setUser($viewer) - ->setWidth(AphrontDialogView::WIDTH_FULL) - ->setTitle($header_name) - ->appendChild( - array( - $error_view, - $form->buildLayoutView(), - )) - ->addCancelButton($cancel_uri) - ->addSubmitButton($button_name); - return id(new AphrontDialogResponse())->setDialog($dialog); - } - - $form - ->appendChild( - id(new AphrontFormSubmitControl()) - ->addCancelButton($cancel_uri) - ->setValue($button_name)); - - $form_box = id(new PHUIObjectBoxView()) - ->setHeaderText($header_name) - ->setFormErrors($errors) - ->setForm($form); - - $preview = id(new PHUIRemarkupPreviewPanel()) - ->setHeader(pht('Description Preview')) - ->setControlID('description-textarea') - ->setPreviewURI($this->getApplicationURI('task/descriptionpreview/')); - - if ($task->getID()) { - $page_objects = array($task->getPHID()); - } else { - $page_objects = array(); - } - - $crumbs = $this->buildApplicationCrumbs(); - - if ($task->getID()) { - $crumbs->addTextCrumb('T'.$task->getID(), '/T'.$task->getID()); - } - - $crumbs->addTextCrumb($header_name); - - $title = $header_name; - - return $this->newPage() - ->setTitle($title) - ->setCrumbs($crumbs) - ->setPageObjectPHIDs($page_objects) - ->appendChild( - array( - $form_box, - $preview, - )); - } - -} diff --git a/src/applications/search/engine/PhabricatorJumpNavHandler.php b/src/applications/search/engine/PhabricatorJumpNavHandler.php index 225e20553e..9e810e3977 100644 --- a/src/applications/search/engine/PhabricatorJumpNavHandler.php +++ b/src/applications/search/engine/PhabricatorJumpNavHandler.php @@ -15,7 +15,6 @@ final class PhabricatorJumpNavHandler extends Phobject { '/^u$/i' => 'uri:/people/', '/^p\s+(.+)$/i' => 'project', '/^u\s+(\S+)$/i' => 'user', - '/^task:\s*(.+)/i' => 'create-task', '/^(?:s)\s+(\S+)/i' => 'find-symbol', '/^r\s+(.+)$/i' => 'find-repository', ); @@ -64,10 +63,6 @@ final class PhabricatorJumpNavHandler extends Phobject { $uri = urisprintf('/diffusion/?order=name&name=%s', $name); } return id(new AphrontRedirectResponse())->setURI($uri); - case 'create-task': - return id(new AphrontRedirectResponse()) - ->setURI('/maniphest/editpro/?title=' - .phutil_escape_uri($matches[1])); default: throw new Exception(pht("Unknown jump effect '%s'!", $effect)); } diff --git a/src/docs/contributor/bug_reports.diviner b/src/docs/contributor/bug_reports.diviner index 46ac466d83..987fd1571f 100644 --- a/src/docs/contributor/bug_reports.diviner +++ b/src/docs/contributor/bug_reports.diviner @@ -26,7 +26,7 @@ The most important things to do are: - gather debugging information; - explain how to reproduce the issue; and - create a task in - [[ http://secure.phabricator.com/maniphest/task/create/ | Maniphest ]]. + [[ http://secure.phabricator.com/u/newbug/ | Maniphest ]]. The rest of this article walks through these points in detail. @@ -189,7 +189,7 @@ to file an issue. It is **particularly critical** that you include reproduction steps. We will not accept reports which describe issues we can not reproduce. -(NOTE) https://secure.phabricator.com/maniphest/task/create/ +(NOTE) https://secure.phabricator.com/u/newbug/ If you don't want to file there (or, for example, your bug relates to being unable to log in or unable to file an issue in Maniphest) you can file on any diff --git a/src/docs/contributor/feature_requests.diviner b/src/docs/contributor/feature_requests.diviner index 15a0c1432c..a7a2a32af6 100644 --- a/src/docs/contributor/feature_requests.diviner +++ b/src/docs/contributor/feature_requests.diviner @@ -23,7 +23,7 @@ The most important things to do are: - align your expectations around timelines and priorities; - describe your problem, not your solution; and - file a task in - [[ http://secure.phabricator.com/maniphest/task/create/ | Maniphest ]]. + [[ http://secure.phabricator.com/u/newfeature/ | Maniphest ]]. The rest of this article walks through these points in detail. @@ -230,7 +230,7 @@ It is **particularly critical** that you describe the problem you are facing, not just the feature you want. We will not accept feature requests which do not describe the root problem the feature is intended to resolve. -(NOTE) https://secure.phabricator.com/maniphest/task/create/ +(NOTE) https://secure.phabricator.com/u/newfeature/ Next Steps diff --git a/src/docs/user/userguide/jump.diviner b/src/docs/user/userguide/jump.diviner index 24f1ca4438..413c4fa47b 100644 --- a/src/docs/user/userguide/jump.diviner +++ b/src/docs/user/userguide/jump.diviner @@ -29,7 +29,6 @@ Supported Commands - **p** - Jump to Project - **p Some Project** - Jump to Project: Some Project - **s SymbolName** - Jump to Symbol SymbolName - - **task: (new title)** - Jumps to Task Creation Page with pre-filled title. - **(default)** - Search for input. Next Steps -- 2.54.0