1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-03-24 18:20:14 +01:00

Select portions from mock

Summary: Comment draft is now saved

Test Plan: Verified that draft is saved

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin, chad

Maniphest Tasks: T2446

Differential Revision: https://secure.phabricator.com/D4831
This commit is contained in:
Lauri-Henrik Jalonen 2013-02-06 11:28:03 -08:00 committed by epriestley
parent 1188876ea9
commit 57c001f522
5 changed files with 78 additions and 6 deletions

View file

@ -1404,6 +1404,7 @@ phutil_register_library_map(array(
'PholioController' => 'applications/pholio/controller/PholioController.php',
'PholioDAO' => 'applications/pholio/storage/PholioDAO.php',
'PholioImage' => 'applications/pholio/storage/PholioImage.php',
'PholioInlineSaveController' => 'applications/pholio/controller/PholioInlineSaveController.php',
'PholioMock' => 'applications/pholio/storage/PholioMock.php',
'PholioMockCommentController' => 'applications/pholio/controller/PholioMockCommentController.php',
'PholioMockEditController' => 'applications/pholio/controller/PholioMockEditController.php',
@ -2816,6 +2817,7 @@ phutil_register_library_map(array(
0 => 'PholioDAO',
1 => 'PhabricatorMarkupInterface',
),
'PholioInlineSaveController' => 'PholioController',
'PholioMock' =>
array(
0 => 'PholioDAO',

View file

@ -43,6 +43,7 @@ final class PhabricatorApplicationPholio extends PhabricatorApplication {
'new/' => 'PholioMockEditController',
'edit/(?P<id>\d+)/' => 'PholioMockEditController',
'comment/(?P<id>\d+)/' => 'PholioMockCommentController',
'inline/(?P<id>\d+)/' => 'PholioInlineSaveController',
),
);
}

View file

@ -0,0 +1,54 @@
<?php
/**
* @group pholio
*/
final class PholioInlineSaveController extends PholioController {
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
$mock = id(new PholioMockQuery())
->setViewer($user)
->requireCapabilities(
array(
PhabricatorPolicyCapability::CAN_VIEW,
PhabricatorPolicyCapability::CAN_EDIT,
))
->withIDs(array($request->getInt('mockID')))
->executeOne();
if (!$mock) {
return new Aphront404Response();
}
$draft = id(new PholioTransactionComment());
$draft->setImageID($request->getInt('imageID'));
$draft->setX($request->getInt('startX'));
$draft->setY($request->getInt('startY'));
$draft->setCommentVersion(1);
$draft->setAuthorPHID($user->getPHID());
$draft->setEditPolicy($user->getPHID());
$draft->setViewPolicy(PhabricatorPolicies::POLICY_PUBLIC);
$content_source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_WEB,
array(
'ip' => $request->getRemoteAddr(),
));
$draft->setContentSource($content_source);
$draft->setWidth($request->getInt('endX') - $request->getInt('startX'));
$draft->setHeight($request->getInt('endY') - $request->getInt('startY'));
$draft->setContent($request->getStr('comment'));
$draft->save();
return id(new AphrontAjaxResponse())->setContent(array());
}
}

View file

@ -15,7 +15,9 @@ final class PholioMockImagesView extends AphrontView {
$main_image_id = celerity_generate_unique_node_id();
require_celerity_resource('javelin-behavior-pholio-mock-view');
$config = array('mainID' => $main_image_id);
$config = array(
'mainID' => $main_image_id,
'mockID' => $this->mock->getID());
Javelin::initBehavior('pholio-mock-view', $config);
$mockview = "";

View file

@ -113,11 +113,24 @@ JX.behavior('pholio-mock-view', function(config) {
selection.title = comment;
console.log("ImageID: " + imageData['imageID'] +
", coords: (" + Math.min(startPos.x, endPos.x) + "," +
Math.min(startPos.y, endPos.y) + ") -> (" +
Math.max(startPos.x,endPos.x) + "," + Math.max(startPos.y,endPos.y) +
"), comment: " + comment);
var saveURL = "/pholio/inline/" + imageData['imageID'] + "/";
var inlineComment = new JX.Request(saveURL, function(r) {
});
var commentToAdd = {
mockID: config.mockID,
imageID: imageData['imageID'],
startX: Math.min(startPos.x, endPos.x),
startY: Math.min(startPos.y, endPos.y),
endX: Math.max(startPos.x,endPos.x),
endY: Math.max(startPos.y,endPos.y),
comment: comment};
inlineComment.addData(commentToAdd);
inlineComment.send();
});