From 2eb30aed9eb7d8ac8f7c3ec5d9f44b7cf4b0c895 Mon Sep 17 00:00:00 2001 From: epriestley Date: Mon, 21 Mar 2011 23:37:05 -0700 Subject: [PATCH] Improve search/phid flexibility. --- .../handle/data/PhabricatorObjectHandleData.php | 16 ++++++++++++++++ ...torRepositorySvnCommitMessageParserWorker.php | 4 +++- .../search/PhabricatorSearchController.php | 4 +++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/applications/phid/handle/data/PhabricatorObjectHandleData.php b/src/applications/phid/handle/data/PhabricatorObjectHandleData.php index 3445629d9d..8c3a9600bb 100644 --- a/src/applications/phid/handle/data/PhabricatorObjectHandleData.php +++ b/src/applications/phid/handle/data/PhabricatorObjectHandleData.php @@ -34,6 +34,8 @@ class PhabricatorObjectHandleData { $handles = array(); + $external_loaders = PhabricatorEnv::getEnvConfig('phid.external-loaders'); + foreach ($types as $type => $phids) { switch ($type) { case PhabricatorPHIDConstants::PHID_TYPE_MAGIC: @@ -200,6 +202,20 @@ class PhabricatorObjectHandleData { } break; default: + $loader = null; + if (isset($external_loaders[$type])) { + $loader = $external_loaders[$type]; + } else if (isset($external_loaders['*'])) { + $loader = $external_loaders['*']; + } + + if ($loader) { + PhutilSymbolLoader::loadClass($loader); + $object = newv($loader, array()); + $handles += $object->loadHandles($phids); + break; + } + foreach ($phids as $phid) { $handle = new PhabricatorObjectHandle(); $handle->setType($type); diff --git a/src/applications/repository/worker/commitmessageparser/svn/PhabricatorRepositorySvnCommitMessageParserWorker.php b/src/applications/repository/worker/commitmessageparser/svn/PhabricatorRepositorySvnCommitMessageParserWorker.php index 7e29d1a78d..2a01b984e7 100644 --- a/src/applications/repository/worker/commitmessageparser/svn/PhabricatorRepositorySvnCommitMessageParserWorker.php +++ b/src/applications/repository/worker/commitmessageparser/svn/PhabricatorRepositorySvnCommitMessageParserWorker.php @@ -30,7 +30,9 @@ class PhabricatorRepositorySvnCommitMessageParserWorker $uri, $commit->getCommitIdentifier()); - // TODO: Need to slam UTF8. + // Subversion may send us back commit messages which won't parse because + // they have non UTF-8 garbage in them. Slam them into valid UTF-8. + $xml = phutil_utf8ize($xml); $log = new SimpleXMLElement($xml); $entry = $log->logentry[0]; diff --git a/src/applications/search/controller/search/PhabricatorSearchController.php b/src/applications/search/controller/search/PhabricatorSearchController.php index f982706832..a7b4f75b4b 100644 --- a/src/applications/search/controller/search/PhabricatorSearchController.php +++ b/src/applications/search/controller/search/PhabricatorSearchController.php @@ -65,11 +65,13 @@ class PhabricatorSearchController extends PhabricatorSearchBaseController { } } + $more = PhabricatorEnv::getEnvConfig('search.more-document-types', array()); + $options = array( '' => 'All Documents', PhabricatorPHIDConstants::PHID_TYPE_DREV => 'Differential Revisions', PhabricatorPHIDConstants::PHID_TYPE_TASK => 'Maniphest Tasks', - ); + ) + $more; $status_options = array( 0 => 'Open and Closed Documents',