@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Update Conpherence to use EditEngine

Summary: Moves Conpherence to use EditEngine. This removes the "First Message" field, but I think that's ok until we have direct messaging of some sort, then maybe have built-ins cover that case.

Test Plan:
- Visit /new/ and /edit/ for creating new rooms.
- Edit a room in full conpherence
- Edit a room in durable column
- grep for METADATA calls

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Maniphest Tasks: T11729

Differential Revision: https://secure.phabricator.com/D16677

+157 -241
+13 -13
resources/celerity/map.php
··· 10 10 'conpherence.pkg.css' => 'ff161f2d', 11 11 'conpherence.pkg.js' => 'b5b51108', 12 12 'core.pkg.css' => '84ce260a', 13 - 'core.pkg.js' => 'fffe0122', 13 + 'core.pkg.js' => '2ff7879f', 14 14 'darkconsole.pkg.js' => '1f9a31bc', 15 15 'differential.pkg.css' => '90b30783', 16 16 'differential.pkg.js' => 'ddfeb49b', ··· 378 378 'rsrc/js/application/config/behavior-reorder-fields.js' => 'b6993408', 379 379 'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '4d863052', 380 380 'rsrc/js/application/conpherence/behavior-conpherence-search.js' => '9bbf3762', 381 - 'rsrc/js/application/conpherence/behavior-durable-column.js' => 'aa3bd034', 381 + 'rsrc/js/application/conpherence/behavior-durable-column.js' => '2ae077e1', 382 382 'rsrc/js/application/conpherence/behavior-menu.js' => 'c9b99b77', 383 383 'rsrc/js/application/conpherence/behavior-participant-pane.js' => '8604caa8', 384 384 'rsrc/js/application/conpherence/behavior-pontificate.js' => '55616e04', ··· 639 639 'javelin-behavior-diffusion-pull-lastmodified' => 'f01586dc', 640 640 'javelin-behavior-doorkeeper-tag' => 'e5822781', 641 641 'javelin-behavior-drydock-live-operation-status' => '901935ef', 642 - 'javelin-behavior-durable-column' => 'aa3bd034', 642 + 'javelin-behavior-durable-column' => '2ae077e1', 643 643 'javelin-behavior-editengine-reorder-configs' => 'd7a74243', 644 644 'javelin-behavior-editengine-reorder-fields' => 'b59e1e96', 645 645 'javelin-behavior-error-log' => '6882e80a', ··· 1095 1095 'javelin-install', 1096 1096 'javelin-util', 1097 1097 ), 1098 + '2ae077e1' => array( 1099 + 'javelin-behavior', 1100 + 'javelin-dom', 1101 + 'javelin-stratcom', 1102 + 'javelin-behavior-device', 1103 + 'javelin-scrollbar', 1104 + 'javelin-quicksand', 1105 + 'phabricator-keyboard-shortcut', 1106 + 'conpherence-thread-manager', 1107 + ), 1098 1108 '2b8de964' => array( 1099 1109 'javelin-install', 1100 1110 'javelin-util', ··· 1792 1802 'javelin-dom', 1793 1803 'javelin-util', 1794 1804 'phabricator-prefab', 1795 - ), 1796 - 'aa3bd034' => array( 1797 - 'javelin-behavior', 1798 - 'javelin-dom', 1799 - 'javelin-stratcom', 1800 - 'javelin-behavior-device', 1801 - 'javelin-scrollbar', 1802 - 'javelin-quicksand', 1803 - 'phabricator-keyboard-shortcut', 1804 - 'conpherence-thread-manager', 1805 1805 ), 1806 1806 'ab2f381b' => array( 1807 1807 'javelin-request',
+4 -2
src/__phutil_library_map__.php
··· 292 292 'ConpherenceCreateThreadConduitAPIMethod' => 'applications/conpherence/conduit/ConpherenceCreateThreadConduitAPIMethod.php', 293 293 'ConpherenceDAO' => 'applications/conpherence/storage/ConpherenceDAO.php', 294 294 'ConpherenceDurableColumnView' => 'applications/conpherence/view/ConpherenceDurableColumnView.php', 295 + 'ConpherenceEditEngine' => 'applications/conpherence/editor/ConpherenceEditEngine.php', 295 296 'ConpherenceEditor' => 'applications/conpherence/editor/ConpherenceEditor.php', 296 297 'ConpherenceFulltextQuery' => 'applications/conpherence/query/ConpherenceFulltextQuery.php', 297 298 'ConpherenceIndex' => 'applications/conpherence/storage/ConpherenceIndex.php', 298 299 'ConpherenceLayoutView' => 'applications/conpherence/view/ConpherenceLayoutView.php', 299 300 'ConpherenceListController' => 'applications/conpherence/controller/ConpherenceListController.php', 300 301 'ConpherenceMenuItemView' => 'applications/conpherence/view/ConpherenceMenuItemView.php', 301 - 'ConpherenceNewRoomController' => 'applications/conpherence/controller/ConpherenceNewRoomController.php', 302 302 'ConpherenceNotificationPanelController' => 'applications/conpherence/controller/ConpherenceNotificationPanelController.php', 303 303 'ConpherenceParticipant' => 'applications/conpherence/storage/ConpherenceParticipant.php', 304 304 'ConpherenceParticipantController' => 'applications/conpherence/controller/ConpherenceParticipantController.php', ··· 308 308 'ConpherenceQueryThreadConduitAPIMethod' => 'applications/conpherence/conduit/ConpherenceQueryThreadConduitAPIMethod.php', 309 309 'ConpherenceQueryTransactionConduitAPIMethod' => 'applications/conpherence/conduit/ConpherenceQueryTransactionConduitAPIMethod.php', 310 310 'ConpherenceReplyHandler' => 'applications/conpherence/mail/ConpherenceReplyHandler.php', 311 + 'ConpherenceRoomEditController' => 'applications/conpherence/controller/ConpherenceRoomEditController.php', 311 312 'ConpherenceRoomListController' => 'applications/conpherence/controller/ConpherenceRoomListController.php', 312 313 'ConpherenceRoomPictureController' => 'applications/conpherence/controller/ConpherenceRoomPictureController.php', 313 314 'ConpherenceRoomPreferencesController' => 'applications/conpherence/controller/ConpherenceRoomPreferencesController.php', ··· 5074 5075 'ConpherenceCreateThreadConduitAPIMethod' => 'ConpherenceConduitAPIMethod', 5075 5076 'ConpherenceDAO' => 'PhabricatorLiskDAO', 5076 5077 'ConpherenceDurableColumnView' => 'AphrontTagView', 5078 + 'ConpherenceEditEngine' => 'PhabricatorEditEngine', 5077 5079 'ConpherenceEditor' => 'PhabricatorApplicationTransactionEditor', 5078 5080 'ConpherenceFulltextQuery' => 'PhabricatorOffsetPagedQuery', 5079 5081 'ConpherenceIndex' => 'ConpherenceDAO', 5080 5082 'ConpherenceLayoutView' => 'AphrontTagView', 5081 5083 'ConpherenceListController' => 'ConpherenceController', 5082 5084 'ConpherenceMenuItemView' => 'AphrontTagView', 5083 - 'ConpherenceNewRoomController' => 'ConpherenceController', 5084 5085 'ConpherenceNotificationPanelController' => 'ConpherenceController', 5085 5086 'ConpherenceParticipant' => 'ConpherenceDAO', 5086 5087 'ConpherenceParticipantController' => 'ConpherenceController', ··· 5090 5091 'ConpherenceQueryThreadConduitAPIMethod' => 'ConpherenceConduitAPIMethod', 5091 5092 'ConpherenceQueryTransactionConduitAPIMethod' => 'ConpherenceConduitAPIMethod', 5092 5093 'ConpherenceReplyHandler' => 'PhabricatorMailReplyHandler', 5094 + 'ConpherenceRoomEditController' => 'ConpherenceController', 5093 5095 'ConpherenceRoomListController' => 'ConpherenceController', 5094 5096 'ConpherenceRoomPictureController' => 'ConpherenceController', 5095 5097 'ConpherenceRoomPreferencesController' => 'ConpherenceController',
+4 -2
src/applications/conpherence/application/PhabricatorConpherenceApplication.php
··· 45 45 => 'ConpherenceViewController', 46 46 'columnview/' 47 47 => 'ConpherenceColumnViewController', 48 - 'new/' 49 - => 'ConpherenceNewRoomController', 48 + $this->getEditRoutePattern('new/') 49 + => 'ConpherenceRoomEditController', 50 + $this->getEditRoutePattern('edit/') 51 + => 'ConpherenceRoomEditController', 50 52 'picture/(?P<id>[1-9]\d*)/' 51 53 => 'ConpherenceRoomPictureController', 52 54 'search/(?:query/(?P<queryKey>[^/]+)/)?'
-1
src/applications/conpherence/constants/ConpherenceUpdateActions.php
··· 2 2 3 3 final class ConpherenceUpdateActions extends ConpherenceConstants { 4 4 5 - const METADATA = 'metadata'; 6 5 const MESSAGE = 'message'; 7 6 const DRAFT = 'draft'; 8 7 const JOIN_ROOM = 'join_room';
+2 -1
src/applications/conpherence/controller/ConpherenceController.php
··· 91 91 92 92 $header->addActionItem( 93 93 id(new PHUIIconCircleView()) 94 - ->setHref($this->getApplicationURI("update/{$id}/")) 94 + ->setHref( 95 + $this->getApplicationURI('edit/'.$conpherence->getID()).'/') 95 96 ->setIcon('fa-pencil') 96 97 ->addClass('hide-on-device') 97 98 ->setColor('violet')
-117
src/applications/conpherence/controller/ConpherenceNewRoomController.php
··· 1 - <?php 2 - 3 - final class ConpherenceNewRoomController extends ConpherenceController { 4 - 5 - public function handleRequest(AphrontRequest $request) { 6 - $user = $request->getUser(); 7 - 8 - $title = pht('New Room'); 9 - $e_title = true; 10 - $validation_exception = null; 11 - 12 - $conpherence = ConpherenceThread::initializeNewRoom($user); 13 - $participants = array(); 14 - if ($request->isFormPost()) { 15 - $editor = new ConpherenceEditor(); 16 - $xactions = array(); 17 - 18 - $xactions[] = id(new ConpherenceTransaction()) 19 - ->setTransactionType(ConpherenceThreadTitleTransaction::TRANSACTIONTYPE) 20 - ->setNewValue($request->getStr('title')); 21 - 22 - $participants = $request->getArr('participants'); 23 - $participants[] = $user->getPHID(); 24 - $participants = array_unique($participants); 25 - $xactions[] = id(new ConpherenceTransaction()) 26 - ->setTransactionType( 27 - ConpherenceThreadParticipantsTransaction::TRANSACTIONTYPE) 28 - ->setNewValue(array('+' => $participants)); 29 - $xactions[] = id(new ConpherenceTransaction()) 30 - ->setTransactionType(ConpherenceThreadTopicTransaction::TRANSACTIONTYPE) 31 - ->setNewValue($request->getStr('topic')); 32 - $xactions[] = id(new ConpherenceTransaction()) 33 - ->setTransactionType(PhabricatorTransactions::TYPE_VIEW_POLICY) 34 - ->setNewValue($request->getStr('viewPolicy')); 35 - $xactions[] = id(new ConpherenceTransaction()) 36 - ->setTransactionType(PhabricatorTransactions::TYPE_EDIT_POLICY) 37 - ->setNewValue($request->getStr('editPolicy')); 38 - 39 - try { 40 - $editor 41 - ->setContentSourceFromRequest($request) 42 - ->setContinueOnNoEffect(true) 43 - ->setActor($user) 44 - ->applyTransactions($conpherence, $xactions); 45 - 46 - return id(new AphrontRedirectResponse()) 47 - ->setURI('/'.$conpherence->getMonogram()); 48 - } catch (PhabricatorApplicationTransactionValidationException $ex) { 49 - $validation_exception = $ex; 50 - 51 - $e_title = $ex->getShortMessage( 52 - ConpherenceThreadTitleTransaction::TRANSACTIONTYPE); 53 - 54 - $conpherence->setViewPolicy($request->getStr('viewPolicy')); 55 - $conpherence->setEditPolicy($request->getStr('editPolicy')); 56 - } 57 - } else { 58 - if ($request->getStr('participant')) { 59 - $participants[] = $request->getStr('participant'); 60 - } 61 - } 62 - 63 - $policies = id(new PhabricatorPolicyQuery()) 64 - ->setViewer($user) 65 - ->setObject($conpherence) 66 - ->execute(); 67 - 68 - $submit_uri = $this->getApplicationURI('new/'); 69 - $cancel_uri = $this->getApplicationURI('search/'); 70 - 71 - $dialog = $this->newDialog() 72 - ->setWidth(AphrontDialogView::WIDTH_FORM) 73 - ->setValidationException($validation_exception) 74 - ->setUser($user) 75 - ->setTitle($title) 76 - ->addCancelButton($cancel_uri) 77 - ->addSubmitButton(pht('Create Room')); 78 - 79 - $form = id(new PHUIFormLayoutView()) 80 - ->setUser($user) 81 - ->appendChild( 82 - id(new AphrontFormTextControl()) 83 - ->setError($e_title) 84 - ->setLabel(pht('Name')) 85 - ->setName('title') 86 - ->setValue($request->getStr('title'))) 87 - ->appendChild( 88 - id(new AphrontFormTextControl()) 89 - ->setLabel(pht('Topic')) 90 - ->setName('topic') 91 - ->setValue($request->getStr('topic'))) 92 - ->appendChild( 93 - id(new AphrontFormTokenizerControl()) 94 - ->setName('participants') 95 - ->setUser($user) 96 - ->setDatasource(new PhabricatorPeopleDatasource()) 97 - ->setValue($participants) 98 - ->setLabel(pht('Other Participants'))) 99 - ->appendChild( 100 - id(new AphrontFormPolicyControl()) 101 - ->setName('viewPolicy') 102 - ->setPolicyObject($conpherence) 103 - ->setCapability(PhabricatorPolicyCapability::CAN_VIEW) 104 - ->setPolicies($policies)) 105 - ->appendChild( 106 - id(new AphrontFormPolicyControl()) 107 - ->setName('editPolicy') 108 - ->setPolicyObject($conpherence) 109 - ->setCapability(PhabricatorPolicyCapability::CAN_EDIT) 110 - ->setPolicies($policies)); 111 - 112 - $dialog->appendChild($form); 113 - 114 - return id(new AphrontDialogResponse())->setDialog($dialog); 115 - } 116 - 117 - }
+11
src/applications/conpherence/controller/ConpherenceRoomEditController.php
··· 1 + <?php 2 + 3 + final class ConpherenceRoomEditController 4 + extends ConpherenceController { 5 + 6 + public function handleRequest(AphrontRequest $request) { 7 + return id(new ConpherenceEditEngine()) 8 + ->setController($this) 9 + ->buildResponse(); 10 + } 11 + }
+1 -101
src/applications/conpherence/controller/ConpherenceUpdateController.php
··· 12 12 13 13 $need_participants = false; 14 14 $needed_capabilities = array(PhabricatorPolicyCapability::CAN_VIEW); 15 - $action = $request->getStr('action', ConpherenceUpdateActions::METADATA); 15 + $action = $request->getStr('action'); 16 16 switch ($action) { 17 17 case ConpherenceUpdateActions::REMOVE_PERSON: 18 18 $person_phid = $request->getStr('remove_person'); ··· 21 21 } 22 22 break; 23 23 case ConpherenceUpdateActions::ADD_PERSON: 24 - case ConpherenceUpdateActions::METADATA: 25 24 $needed_capabilities[] = PhabricatorPolicyCapability::CAN_EDIT; 26 25 break; 27 26 case ConpherenceUpdateActions::LOAD: ··· 110 109 $response_mode = 'go-home'; 111 110 } 112 111 break; 113 - case ConpherenceUpdateActions::METADATA: 114 - $title = $request->getStr('title'); 115 - $topic = $request->getStr('topic'); 116 - 117 - // all other metadata updates are continue requests 118 - if (!$request->isContinueRequest()) { 119 - break; 120 - } 121 - 122 - $title = $request->getStr('title'); 123 - $topic = $request->getStr('topic'); 124 - $xactions[] = id(new ConpherenceTransaction()) 125 - ->setTransactionType( 126 - ConpherenceThreadTitleTransaction::TRANSACTIONTYPE) 127 - ->setNewValue($title); 128 - $xactions[] = id(new ConpherenceTransaction()) 129 - ->setTransactionType( 130 - ConpherenceThreadTopicTransaction::TRANSACTIONTYPE) 131 - ->setNewValue($topic); 132 - $xactions[] = id(new ConpherenceTransaction()) 133 - ->setTransactionType(PhabricatorTransactions::TYPE_VIEW_POLICY) 134 - ->setNewValue($request->getStr('viewPolicy')); 135 - $xactions[] = id(new ConpherenceTransaction()) 136 - ->setTransactionType(PhabricatorTransactions::TYPE_EDIT_POLICY) 137 - ->setNewValue($request->getStr('editPolicy')); 138 - if (!$request->getExists('force_ajax')) { 139 - $response_mode = 'redirect'; 140 - } 141 - break; 142 112 case ConpherenceUpdateActions::LOAD: 143 113 $updated = false; 144 114 $response_mode = 'ajax'; ··· 207 177 break; 208 178 case ConpherenceUpdateActions::REMOVE_PERSON: 209 179 $dialog = $this->renderRemovePersonDialog($conpherence); 210 - break; 211 - case ConpherenceUpdateActions::METADATA: 212 - default: 213 - $dialog = $this->renderMetadataDialog($conpherence, $error_view); 214 180 break; 215 181 } 216 182 ··· 332 298 return $dialog; 333 299 } 334 300 335 - private function renderMetadataDialog( 336 - ConpherenceThread $conpherence, 337 - $error_view) { 338 - 339 - $request = $this->getRequest(); 340 - $user = $request->getUser(); 341 - 342 - $title = pht('Update Room'); 343 - $form = id(new PHUIFormLayoutView()) 344 - ->appendChild($error_view) 345 - ->appendChild( 346 - id(new AphrontFormTextControl()) 347 - ->setLabel(pht('Title')) 348 - ->setName('title') 349 - ->setValue($conpherence->getTitle())) 350 - ->appendChild( 351 - id(new AphrontFormTextControl()) 352 - ->setLabel(pht('Topic')) 353 - ->setName('topic') 354 - ->setValue($conpherence->getTopic())); 355 - 356 - $policies = id(new PhabricatorPolicyQuery()) 357 - ->setViewer($user) 358 - ->setObject($conpherence) 359 - ->execute(); 360 - 361 - $form 362 - ->appendChild( 363 - id(new AphrontFormPolicyControl()) 364 - ->setName('viewPolicy') 365 - ->setPolicyObject($conpherence) 366 - ->setCapability(PhabricatorPolicyCapability::CAN_VIEW) 367 - ->setPolicies($policies)) 368 - ->appendChild( 369 - id(new AphrontFormPolicyControl()) 370 - ->setName('editPolicy') 371 - ->setPolicyObject($conpherence) 372 - ->setCapability(PhabricatorPolicyCapability::CAN_EDIT) 373 - ->setPolicies($policies)); 374 - 375 - $view = id(new AphrontDialogView()) 376 - ->setTitle($title) 377 - ->addHiddenInput('action', 'metadata') 378 - ->addHiddenInput( 379 - 'latest_transaction_id', 380 - $request->getInt('latest_transaction_id')) 381 - ->addHiddenInput('__continue__', true) 382 - ->appendChild($form); 383 - 384 - if ($request->getExists('force_ajax')) { 385 - $view->addHiddenInput('force_ajax', true); 386 - } 387 - 388 - return $view; 389 - } 390 - 391 301 private function loadAndRenderUpdates( 392 302 $action, 393 303 $conpherence_id, ··· 395 305 396 306 $need_transactions = false; 397 307 switch ($action) { 398 - case ConpherenceUpdateActions::METADATA: 399 308 case ConpherenceUpdateActions::LOAD: 400 309 $need_transactions = true; 401 310 break; ··· 444 353 $header = null; 445 354 $people_widget = null; 446 355 switch ($action) { 447 - case ConpherenceUpdateActions::METADATA: 448 - $header = $this->buildHeaderPaneContent($conpherence); 449 - $header = hsprintf('%s', $header); 450 - $nav_item = id(new ConpherenceThreadListView()) 451 - ->setUser($user) 452 - ->setBaseURI($this->getApplicationURI()) 453 - ->renderThreadItem($conpherence); 454 - $nav_item = hsprintf('%s', $nav_item); 455 - break; 456 356 case ConpherenceUpdateActions::ADD_PERSON: 457 357 $people_widget = id(new ConpherenceParticipantView()) 458 358 ->setUser($user)
+118
src/applications/conpherence/editor/ConpherenceEditEngine.php
··· 1 + <?php 2 + 3 + final class ConpherenceEditEngine 4 + extends PhabricatorEditEngine { 5 + 6 + const ENGINECONST = 'conpherence.thread'; 7 + 8 + public function getEngineName() { 9 + return pht('Conpherence'); 10 + } 11 + 12 + public function getEngineApplicationClass() { 13 + return 'PhabricatorConpherenceApplication'; 14 + } 15 + 16 + public function getSummaryHeader() { 17 + return pht('Configure Conpherence Forms'); 18 + } 19 + 20 + public function getSummaryText() { 21 + return pht('Configure creation and editing forms in Conpherence.'); 22 + } 23 + 24 + protected function newEditableObject() { 25 + return ConpherenceThread::initializeNewRoom($this->getViewer()); 26 + } 27 + 28 + protected function newObjectQuery() { 29 + return new ConpherenceThreadQuery(); 30 + } 31 + 32 + protected function getObjectCreateTitleText($object) { 33 + return pht('Create New Room'); 34 + } 35 + 36 + protected function getObjectEditTitleText($object) { 37 + return pht('Edit Room: %s', $object->getTitle()); 38 + } 39 + 40 + protected function getObjectEditShortText($object) { 41 + return $object->getTitle(); 42 + } 43 + 44 + protected function getObjectCreateShortText() { 45 + return pht('Create Room'); 46 + } 47 + 48 + protected function getObjectName() { 49 + return pht('Room'); 50 + } 51 + 52 + protected function getObjectCreateCancelURI($object) { 53 + return $this->getApplication()->getApplicationURI('/'); 54 + } 55 + 56 + protected function getEditorURI() { 57 + return $this->getApplication()->getApplicationURI('edit/'); 58 + } 59 + 60 + protected function getObjectViewURI($object) { 61 + return $object->getURI(); 62 + } 63 + 64 + public function isEngineConfigurable() { 65 + return false; 66 + } 67 + 68 + protected function buildCustomEditFields($object) { 69 + $viewer = $this->getViewer(); 70 + 71 + if ($this->getIsCreate()) { 72 + $participant_phids = array($viewer->getPHID()); 73 + $initial_phids = array(); 74 + } else { 75 + $participant_phids = $object->getParticipantPHIDs(); 76 + $initial_phids = $participant_phids; 77 + } 78 + 79 + // Only show participants on create or conduit, not edit 80 + $conduit_only = !$this->getIsCreate(); 81 + 82 + return array( 83 + id(new PhabricatorTextEditField()) 84 + ->setKey('name') 85 + ->setLabel(pht('Name')) 86 + ->setDescription(pht('Room name.')) 87 + ->setConduitTypeDescription(pht('New Room name.')) 88 + ->setIsRequired(true) 89 + ->setTransactionType( 90 + ConpherenceThreadTitleTransaction::TRANSACTIONTYPE) 91 + ->setValue($object->getTitle()), 92 + 93 + id(new PhabricatorTextEditField()) 94 + ->setKey('topic') 95 + ->setLabel(pht('Topic')) 96 + ->setDescription(pht('Room topic.')) 97 + ->setConduitTypeDescription(pht('New Room topic.')) 98 + ->setTransactionType( 99 + ConpherenceThreadTopicTransaction::TRANSACTIONTYPE) 100 + ->setValue($object->getTopic()), 101 + 102 + id(new PhabricatorUsersEditField()) 103 + ->setKey('participants') 104 + ->setValue($participant_phids) 105 + ->setInitialValue($initial_phids) 106 + ->setIsConduitOnly($conduit_only) 107 + ->setAliases(array('users', 'members', 'participants', 'userPHID')) 108 + ->setDescription(pht('Room participants.')) 109 + ->setUseEdgeTransactions(true) 110 + ->setConduitTypeDescription(pht('New Room participants.')) 111 + ->setTransactionType( 112 + ConpherenceThreadParticipantsTransaction::TRANSACTIONTYPE) 113 + ->setLabel(pht('Initial Participants')), 114 + 115 + ); 116 + } 117 + 118 + }
+2 -2
src/applications/conpherence/view/ConpherenceDurableColumnView.php
··· 363 363 $actions[] = array( 364 364 'name' => pht('Edit Room'), 365 365 'disabled' => !$can_edit, 366 - 'href' => '/conpherence/update/'.$conpherence->getID().'/?nopic', 366 + 'href' => '/conpherence/edit/'.$conpherence->getID().'/', 367 367 'icon' => 'fa-pencil', 368 - 'key' => ConpherenceUpdateActions::METADATA, 368 + 'key' => 'go_edit', 369 369 ); 370 370 $actions[] = array( 371 371 'name' => pht('View in Conpherence'),
+1 -1
src/applications/conpherence/view/ConpherenceThreadListView.php
··· 117 117 $new_icon = id(new PHUIIconView()) 118 118 ->setIcon('fa-plus-square') 119 119 ->addSigil('has-tooltip') 120 - ->setHref('/conpherence/new/') 120 + ->setHref('/conpherence/edit/') 121 121 ->setWorkflow(true) 122 122 ->setMetaData(array( 123 123 'tip' => pht('New Room'),
+1 -1
webroot/rsrc/js/application/conpherence/behavior-durable-column.js
··· 177 177 var params = null; 178 178 179 179 switch (action) { 180 - case 'metadata': 180 + case 'go_edit': 181 181 threadManager.runUpdateWorkflowFromLink( 182 182 link, 183 183 {