1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-26 16:52:41 +01:00

Create a "New Document" button in phriction

Summary: gives user a dialogue and they can fill out what comes after /w/

Test Plan: made some new wiki docs. played with garbage data and edit scenarios as well as vanilla create -- good ish

Reviewers: epriestley, chad

Reviewed By: epriestley

CC: aran, Korvin

Maniphest Tasks: T1360

Differential Revision: https://secure.phabricator.com/D3946
This commit is contained in:
Bob Trahan 2012-11-09 15:08:37 -08:00
parent 8ee6cbe1d4
commit 4a8ce1699b
4 changed files with 55 additions and 6 deletions

View file

@ -1217,6 +1217,7 @@ phutil_register_library_map(array(
'PhrictionEditController' => 'applications/phriction/controller/PhrictionEditController.php',
'PhrictionHistoryController' => 'applications/phriction/controller/PhrictionHistoryController.php',
'PhrictionListController' => 'applications/phriction/controller/PhrictionListController.php',
'PhrictionNewController' => 'applications/phriction/controller/PhrictionNewController.php',
'PonderAddAnswerView' => 'applications/ponder/view/PonderAddAnswerView.php',
'PonderAddCommentView' => 'applications/ponder/view/PonderAddCommentView.php',
'PonderAnswer' => 'applications/ponder/storage/PonderAnswer.php',
@ -2395,6 +2396,7 @@ phutil_register_library_map(array(
'PhrictionEditController' => 'PhrictionController',
'PhrictionHistoryController' => 'PhrictionController',
'PhrictionListController' => 'PhrictionController',
'PhrictionNewController' => 'PhrictionController',
'PonderAddAnswerView' => 'AphrontView',
'PonderAddCommentView' => 'AphrontView',
'PonderAnswer' =>

View file

@ -38,6 +38,7 @@ final class PhabricatorApplicationPhriction extends PhabricatorApplication {
'edit/(?:(?P<id>[1-9]\d*)/)?' => 'PhrictionEditController',
'delete/(?P<id>[1-9]\d*)/' => 'PhrictionDeleteController',
'new/' => 'PhrictionNewController',
'preview/' => 'PhrictionDocumentPreviewController',
'diff/(?P<id>[1-9]\d*)/' => 'PhrictionDiffController',

View file

@ -161,22 +161,30 @@ final class PhrictionDocumentController
$core_content.
'</div>';
$create_button = javelin_render_tag(
'a',
array(
'href' => '/phriction/new/',
'class' => 'button green',
'sigil' => 'workflow',
),
pht('New Document'));
$edit_button = phutil_render_tag(
'a',
array(
'href' => '/phriction/edit/'.$document->getID().'/',
'class' => 'button',
),
'Edit Document');
pht('Edit Document'));
$history_button = phutil_render_tag(
'a',
array(
'href' => PhrictionDocument::getSlugURI($slug, 'history'),
'class' => 'button grey',
),
'View History');
pht('View History'));
// these float right so history_button which is right most goes first
$buttons = $history_button.$edit_button;
$buttons = $history_button.$edit_button.$create_button;
}
if ($version_note) {

View file

@ -0,0 +1,38 @@
<?php
/**
* @group phriction
*/
final class PhrictionNewController extends PhrictionController {
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
if ($request->isFormPost()) {
$slug = PhabricatorSlug::normalize($request->getStr('slug'));
$uri = '/phriction/edit/?slug='.$slug;
return id(new AphrontRedirectResponse())
->setURI($uri);
}
$view = id(new AphrontFormLayoutView())
->appendChild(id(new AphrontFormTextControl())
->setLabel('/w/')
->setName('slug'));
$dialog = id(new AphrontDialogView())
->setUser($user)
->setTitle(pht('New Document'))
->appendChild(phutil_render_tag('p',
array(),
pht('Create a new document at')))
->appendChild($view)
->addSubmitButton(pht('Create'))
->addCancelButton($request->getRequestURI());
return id(new AphrontDialogResponse())->setDialog($dialog);
}
}