@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.

Add question and answer transactions to Ponder

Summary: Ref T3373.

Test Plan:
Ran this script, saw valid inserts:

<?php

$unguarded = AphrontWriteGuard::beginScopedUnguardedWrites();

id(new PonderQuestionTransaction())
->setAuthorPHID('herp')
->setObjectPHID('derp')
->setViewPolicy('blarp')
->setEditPolicy('goop')
->setTransactionType('beep')
->setContentSource(PhabricatorContentSource::newForSource('derp', array()))
->save();

id(new PonderAnswerTransaction())
->setAuthorPHID('herp')
->setObjectPHID('derp')
->setViewPolicy('blarp')
->setEditPolicy('goop')
->setTransactionType('beep')
->setContentSource(PhabricatorContentSource::newForSource('derp', array()))
->save();

id(new PonderQuestionTransactionComment())
->setCommentVersion(1)
->setAuthorPHID('bloop')
->setViewPolicy('blarp')
->setEditPolicy('goop')
->setContent('blip')
->setContentSource(PhabricatorContentSource::newForSource('derp', array()))
->save();

id(new PonderAnswerTransactionComment())
->setCommentVersion(1)
->setAuthorPHID('bloop')
->setViewPolicy('blarp')
->setEditPolicy('goop')
->setContent('blip')
->setContentSource(PhabricatorContentSource::newForSource('derp', array()))
->save();

unset($unguarded);

echo "OK!\n";

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T3373

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

+172
+82
resources/sql/patches/20130726.ponderxactions.sql
··· 1 + CREATE TABLE {$NAMESPACE}_ponder.ponder_questiontransaction ( 2 + id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, 3 + phid VARCHAR(64) NOT NULL COLLATE utf8_bin, 4 + authorPHID VARCHAR(64) NOT NULL COLLATE utf8_bin, 5 + objectPHID VARCHAR(64) NOT NULL COLLATE utf8_bin, 6 + viewPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, 7 + editPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, 8 + commentPHID VARCHAR(64) COLLATE utf8_bin, 9 + commentVersion INT UNSIGNED NOT NULL, 10 + transactionType VARCHAR(32) NOT NULL COLLATE utf8_bin, 11 + oldValue LONGTEXT NOT NULL COLLATE utf8_bin, 12 + newValue LONGTEXT NOT NULL COLLATE utf8_bin, 13 + contentSource LONGTEXT NOT NULL COLLATE utf8_bin, 14 + metadata LONGTEXT NOT NULL COLLATE utf8_bin, 15 + dateCreated INT UNSIGNED NOT NULL, 16 + dateModified INT UNSIGNED NOT NULL, 17 + 18 + UNIQUE KEY `key_phid` (phid), 19 + KEY `key_object` (objectPHID) 20 + 21 + ) ENGINE=InnoDB, COLLATE utf8_general_ci; 22 + 23 + CREATE TABLE {$NAMESPACE}_ponder.ponder_questiontransaction_comment ( 24 + id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, 25 + phid VARCHAR(64) NOT NULL COLLATE utf8_bin, 26 + transactionPHID VARCHAR(64) COLLATE utf8_bin, 27 + authorPHID VARCHAR(64) NOT NULL COLLATE utf8_bin, 28 + viewPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, 29 + editPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, 30 + commentVersion INT UNSIGNED NOT NULL, 31 + content LONGTEXT NOT NULL COLLATE utf8_bin, 32 + contentSource LONGTEXT NOT NULL COLLATE utf8_bin, 33 + isDeleted BOOL NOT NULL, 34 + dateCreated INT UNSIGNED NOT NULL, 35 + dateModified INT UNSIGNED NOT NULL, 36 + 37 + UNIQUE KEY `key_phid` (phid), 38 + UNIQUE KEY `key_version` (transactionPHID, commentVersion) 39 + 40 + ) ENGINE=InnoDB, COLLATE utf8_general_ci; 41 + 42 + CREATE TABLE {$NAMESPACE}_ponder.ponder_answertransaction ( 43 + id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, 44 + phid VARCHAR(64) NOT NULL COLLATE utf8_bin, 45 + authorPHID VARCHAR(64) NOT NULL COLLATE utf8_bin, 46 + objectPHID VARCHAR(64) NOT NULL COLLATE utf8_bin, 47 + viewPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, 48 + editPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, 49 + commentPHID VARCHAR(64) COLLATE utf8_bin, 50 + commentVersion INT UNSIGNED NOT NULL, 51 + transactionType VARCHAR(32) NOT NULL COLLATE utf8_bin, 52 + oldValue LONGTEXT NOT NULL COLLATE utf8_bin, 53 + newValue LONGTEXT NOT NULL COLLATE utf8_bin, 54 + contentSource LONGTEXT NOT NULL COLLATE utf8_bin, 55 + metadata LONGTEXT NOT NULL COLLATE utf8_bin, 56 + dateCreated INT UNSIGNED NOT NULL, 57 + dateModified INT UNSIGNED NOT NULL, 58 + 59 + UNIQUE KEY `key_phid` (phid), 60 + KEY `key_object` (objectPHID) 61 + 62 + ) ENGINE=InnoDB, COLLATE utf8_general_ci; 63 + 64 + CREATE TABLE {$NAMESPACE}_ponder.ponder_answertransaction_comment ( 65 + id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, 66 + phid VARCHAR(64) NOT NULL COLLATE utf8_bin, 67 + transactionPHID VARCHAR(64) COLLATE utf8_bin, 68 + authorPHID VARCHAR(64) NOT NULL COLLATE utf8_bin, 69 + viewPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, 70 + editPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, 71 + commentVersion INT UNSIGNED NOT NULL, 72 + content LONGTEXT NOT NULL COLLATE utf8_bin, 73 + contentSource LONGTEXT NOT NULL COLLATE utf8_bin, 74 + isDeleted BOOL NOT NULL, 75 + dateCreated INT UNSIGNED NOT NULL, 76 + dateModified INT UNSIGNED NOT NULL, 77 + 78 + UNIQUE KEY `key_phid` (phid), 79 + UNIQUE KEY `key_version` (transactionPHID, commentVersion) 80 + 81 + ) ENGINE=InnoDB, COLLATE utf8_general_ci; 82 +
+8
src/__phutil_library_map__.php
··· 1875 1875 'PonderAnswerPreviewController' => 'applications/ponder/controller/PonderAnswerPreviewController.php', 1876 1876 'PonderAnswerQuery' => 'applications/ponder/query/PonderAnswerQuery.php', 1877 1877 'PonderAnswerSaveController' => 'applications/ponder/controller/PonderAnswerSaveController.php', 1878 + 'PonderAnswerTransaction' => 'applications/ponder/storage/PonderAnswerTransaction.php', 1879 + 'PonderAnswerTransactionComment' => 'applications/ponder/storage/PonderAnswerTransactionComment.php', 1878 1880 'PonderAnswerViewController' => 'applications/ponder/controller/PonderAnswerViewController.php', 1879 1881 'PonderAnsweredMail' => 'applications/ponder/mail/PonderAnsweredMail.php', 1880 1882 'PonderComment' => 'applications/ponder/storage/PonderComment.php', ··· 1903 1905 'PonderQuestionSearchEngine' => 'applications/ponder/query/PonderQuestionSearchEngine.php', 1904 1906 'PonderQuestionStatus' => 'applications/ponder/constants/PonderQuestionStatus.php', 1905 1907 'PonderQuestionStatusController' => 'applications/ponder/controller/PonderQuestionStatusController.php', 1908 + 'PonderQuestionTransaction' => 'applications/ponder/storage/PonderQuestionTransaction.php', 1909 + 'PonderQuestionTransactionComment' => 'applications/ponder/storage/PonderQuestionTransactionComment.php', 1906 1910 'PonderQuestionViewController' => 'applications/ponder/controller/PonderQuestionViewController.php', 1907 1911 'PonderRemarkupRule' => 'applications/ponder/remarkup/PonderRemarkupRule.php', 1908 1912 'PonderReplyHandler' => 'applications/ponder/mail/PonderReplyHandler.php', ··· 3990 3994 'PonderAnswerPreviewController' => 'PonderController', 3991 3995 'PonderAnswerQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 3992 3996 'PonderAnswerSaveController' => 'PonderController', 3997 + 'PonderAnswerTransaction' => 'PhabricatorApplicationTransaction', 3998 + 'PonderAnswerTransactionComment' => 'PhabricatorApplicationTransactionComment', 3993 3999 'PonderAnswerViewController' => 'PonderController', 3994 4000 'PonderAnsweredMail' => 'PonderMail', 3995 4001 'PonderComment' => ··· 4033 4039 'PonderQuestionSearchEngine' => 'PhabricatorApplicationSearchEngine', 4034 4040 'PonderQuestionStatus' => 'PonderConstants', 4035 4041 'PonderQuestionStatusController' => 'PonderController', 4042 + 'PonderQuestionTransaction' => 'PhabricatorApplicationTransaction', 4043 + 'PonderQuestionTransactionComment' => 'PhabricatorApplicationTransactionComment', 4036 4044 'PonderQuestionViewController' => 'PonderController', 4037 4045 'PonderRemarkupRule' => 'PhabricatorRemarkupRuleObject', 4038 4046 'PonderReplyHandler' => 'PhabricatorMailReplyHandler',
+28
src/applications/ponder/storage/PonderAnswerTransaction.php
··· 1 + <?php 2 + 3 + final class PonderAnswerTransaction 4 + extends PhabricatorApplicationTransaction { 5 + 6 + public function getApplicationName() { 7 + return 'ponder'; 8 + } 9 + 10 + public function getTableName() { 11 + return 'ponder_answertransaction'; 12 + } 13 + 14 + public function getApplicationTransactionType() { 15 + return PonderPHIDTypeAnswer::TYPECONST; 16 + } 17 + 18 + public function getApplicationTransactionCommentObject() { 19 + return new PonderAnswerTransactionComment(); 20 + } 21 + 22 + public function getApplicationObjectTypeName() { 23 + return pht('answer'); 24 + } 25 + 26 + 27 + } 28 +
+11
src/applications/ponder/storage/PonderAnswerTransactionComment.php
··· 1 + <?php 2 + 3 + final class PonderAnswerTransactionComment 4 + extends PhabricatorApplicationTransactionComment { 5 + 6 + public function getApplicationTransactionObject() { 7 + return new PonderAnswerTransaction(); 8 + } 9 + 10 + } 11 +
+28
src/applications/ponder/storage/PonderQuestionTransaction.php
··· 1 + <?php 2 + 3 + final class PonderQuestionTransaction 4 + extends PhabricatorApplicationTransaction { 5 + 6 + public function getApplicationName() { 7 + return 'ponder'; 8 + } 9 + 10 + public function getTableName() { 11 + return 'ponder_questiontransaction'; 12 + } 13 + 14 + public function getApplicationTransactionType() { 15 + return PonderPHIDTypeQuestion::TYPECONST; 16 + } 17 + 18 + public function getApplicationTransactionCommentObject() { 19 + return new PonderQuestionTransactionComment(); 20 + } 21 + 22 + public function getApplicationObjectTypeName() { 23 + return pht('question'); 24 + } 25 + 26 + 27 + } 28 +
+11
src/applications/ponder/storage/PonderQuestionTransactionComment.php
··· 1 + <?php 2 + 3 + final class PonderQuestionTransactionComment 4 + extends PhabricatorApplicationTransactionComment { 5 + 6 + public function getApplicationTransactionObject() { 7 + return new PonderQuestionTransaction(); 8 + } 9 + 10 + } 11 +
+4
src/infrastructure/storage/patch/PhabricatorBuiltinPatchList.php
··· 1483 1483 'type' => 'sql', 1484 1484 'name' => $this->getPatchPath('20130727.ponderquestionstatus.sql'), 1485 1485 ), 1486 + '20130726.ponderxactions.sql' => array( 1487 + 'type' => 'sql', 1488 + 'name' => $this->getPatchPath('20130726.ponderxactions.sql'), 1489 + ), 1486 1490 ); 1487 1491 } 1488 1492 }