mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-20 04:20:55 +01:00
c612579854
Summary: Ref T8783. Sort out some relationships and fields: - Make Items 1:1 with Queues: each item is always in exactly one queue. Minor discussion on T8783. I think this is easier to understand and reason about (and implement!) and can't come up with any real cases where it isn't powerful enough. - Remove "QueueItem", which allowed items to be in multiple queues at once. - Remove "dateNuanced", which is equivalent to "dateCreated" in all cases. Then add really basic routing: - Add "Default Queue" for Sources. New items from the source route into that queue. - (Some day there will be routing rules, but for now the rule is "always route into the default queue".) - Show queue on items. - Show more / more useful edit history and transactions in several UIs. Test Plan: {F749445} {F749446} {F749447} Reviewers: chad Reviewed By: chad Maniphest Tasks: T8783 Differential Revision: https://secure.phabricator.com/D13988
110 lines
3.5 KiB
PHP
110 lines
3.5 KiB
PHP
<?php
|
|
|
|
final class NuanceItemEditor
|
|
extends PhabricatorApplicationTransactionEditor {
|
|
|
|
public function getEditorApplicationClass() {
|
|
return 'PhabricatorNuanceApplication';
|
|
}
|
|
|
|
public function getEditorObjectsDescription() {
|
|
return pht('Nuance Items');
|
|
}
|
|
|
|
public function getTransactionTypes() {
|
|
$types = parent::getTransactionTypes();
|
|
|
|
$types[] = NuanceItemTransaction::TYPE_OWNER;
|
|
$types[] = NuanceItemTransaction::TYPE_SOURCE;
|
|
$types[] = NuanceItemTransaction::TYPE_REQUESTOR;
|
|
$types[] = NuanceItemTransaction::TYPE_PROPERTY;
|
|
$types[] = NuanceItemTransaction::TYPE_QUEUE;
|
|
|
|
$types[] = PhabricatorTransactions::TYPE_EDGE;
|
|
$types[] = PhabricatorTransactions::TYPE_COMMENT;
|
|
$types[] = PhabricatorTransactions::TYPE_VIEW_POLICY;
|
|
$types[] = PhabricatorTransactions::TYPE_EDIT_POLICY;
|
|
|
|
return $types;
|
|
}
|
|
|
|
protected function getCustomTransactionOldValue(
|
|
PhabricatorLiskDAO $object,
|
|
PhabricatorApplicationTransaction $xaction) {
|
|
|
|
switch ($xaction->getTransactionType()) {
|
|
case NuanceItemTransaction::TYPE_REQUESTOR:
|
|
return $object->getRequestorPHID();
|
|
case NuanceItemTransaction::TYPE_SOURCE:
|
|
return $object->getSourcePHID();
|
|
case NuanceItemTransaction::TYPE_OWNER:
|
|
return $object->getOwnerPHID();
|
|
case NuanceItemTransaction::TYPE_QUEUE:
|
|
return $object->getQueuePHID();
|
|
case NuanceItemTransaction::TYPE_PROPERTY:
|
|
$key = $xaction->getMetadataValue(
|
|
NuanceItemTransaction::PROPERTY_KEY);
|
|
return $object->getNuanceProperty($key);
|
|
}
|
|
|
|
return parent::getCustomTransactionOldValue($object, $xaction);
|
|
}
|
|
|
|
protected function getCustomTransactionNewValue(
|
|
PhabricatorLiskDAO $object,
|
|
PhabricatorApplicationTransaction $xaction) {
|
|
|
|
switch ($xaction->getTransactionType()) {
|
|
case NuanceItemTransaction::TYPE_REQUESTOR:
|
|
case NuanceItemTransaction::TYPE_SOURCE:
|
|
case NuanceItemTransaction::TYPE_OWNER:
|
|
case NuanceItemTransaction::TYPE_PROPERTY:
|
|
case NuanceItemTransaction::TYPE_QUEUE:
|
|
return $xaction->getNewValue();
|
|
}
|
|
|
|
return parent::getCustomTransactionNewValue($object, $xaction);
|
|
}
|
|
|
|
protected function applyCustomInternalTransaction(
|
|
PhabricatorLiskDAO $object,
|
|
PhabricatorApplicationTransaction $xaction) {
|
|
|
|
switch ($xaction->getTransactionType()) {
|
|
case NuanceItemTransaction::TYPE_REQUESTOR:
|
|
$object->setRequestorPHID($xaction->getNewValue());
|
|
break;
|
|
case NuanceItemTransaction::TYPE_SOURCE:
|
|
$object->setSourcePHID($xaction->getNewValue());
|
|
break;
|
|
case NuanceItemTransaction::TYPE_OWNER:
|
|
$object->setOwnerPHID($xaction->getNewValue());
|
|
break;
|
|
case NuanceItemTransaction::TYPE_QUEUE:
|
|
$object->setQueuePHID($xaction->getNewValue());
|
|
break;
|
|
case NuanceItemTransaction::TYPE_PROPERTY:
|
|
$key = $xaction->getMetadataValue(
|
|
NuanceItemTransaction::PROPERTY_KEY);
|
|
$object->setNuanceProperty($key, $xaction->getNewValue());
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected function applyCustomExternalTransaction(
|
|
PhabricatorLiskDAO $object,
|
|
PhabricatorApplicationTransaction $xaction) {
|
|
|
|
switch ($xaction->getTransactionType()) {
|
|
case NuanceItemTransaction::TYPE_REQUESTOR:
|
|
case NuanceItemTransaction::TYPE_SOURCE:
|
|
case NuanceItemTransaction::TYPE_OWNER:
|
|
case NuanceItemTransaction::TYPE_PROPERTY:
|
|
case NuanceItemTransaction::TYPE_QUEUE:
|
|
return;
|
|
}
|
|
|
|
return parent::applyCustomExternalTransaction($object, $xaction);
|
|
}
|
|
|
|
}
|