1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-02-01 09:28:22 +01:00
phorge-phorge/src/applications/phragment/storage/PhragmentFragmentVersion.php
James Rhodes c48cfb31bc Implement viewing versions and downloading patches in Phragment
Summary:
This adds support for viewing individual versions on a fragment as well as comparing versions and downloading diff_match_patch-based patches.

It does not use the side-by-side diff format as while it works for small changes, it quickly becomes impossible to distingush what changes have been made due to the diff_match_patch format.

Test Plan: Clicked on versions and downloaded patches.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley

CC: Korvin, epriestley, aran

Maniphest Tasks: T4205

Differential Revision: https://secure.phabricator.com/D7734
2013-12-08 12:14:34 +11:00

62 lines
1.5 KiB
PHP

<?php
final class PhragmentFragmentVersion extends PhragmentDAO
implements PhabricatorPolicyInterface {
protected $sequence;
protected $fragmentPHID;
protected $filePHID;
private $fragment = self::ATTACHABLE;
private $file = self::ATTACHABLE;
public function getConfiguration() {
return array(
self::CONFIG_AUX_PHID => true,
) + parent::getConfiguration();
}
public function generatePHID() {
return PhabricatorPHID::generateNewPHID(
PhragmentPHIDTypeFragmentVersion::TYPECONST);
}
public function getURI() {
return '/phragment/version/'.$this->getID().'/';
}
public function getFragment() {
return $this->assertAttached($this->fragment);
}
public function attachFragment(PhragmentFragment $fragment) {
return $this->fragment = $fragment;
}
public function getFile() {
return $this->assertAttached($this->file);
}
public function attachFile(PhabricatorFile $file) {
return $this->file = $file;
}
public function getCapabilities() {
return array(
PhabricatorPolicyCapability::CAN_VIEW
);
}
public function getPolicy($capability) {
return $this->getFragment()->getPolicy($capability);
}
public function hasAutomaticCapability($capability, PhabricatorUser $viewer) {
return $this->getFragment()->hasAutomaticCapability($capability, $viewer);
}
public function describeAutomaticCapability($capability) {
return $this->getFragment()->describeAutomaticCapability($capability);
}
}