Raise ICS warnings in Phabricator on ICS import
Summary: Ref T11816. Depends on D16800. Show warnings generated by ICS import in the UI.
Test Plan: {F1904122}
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T11816
Differential Revision: https://secure.phabricator.com/D16801
			
			
This commit is contained in:
		| @@ -2130,6 +2130,7 @@ phutil_register_library_map(array( | |||||||
|     'PhabricatorCalendarImportICSFileTransaction' => 'applications/calendar/xaction/PhabricatorCalendarImportICSFileTransaction.php', |     'PhabricatorCalendarImportICSFileTransaction' => 'applications/calendar/xaction/PhabricatorCalendarImportICSFileTransaction.php', | ||||||
|     'PhabricatorCalendarImportICSLogType' => 'applications/calendar/importlog/PhabricatorCalendarImportICSLogType.php', |     'PhabricatorCalendarImportICSLogType' => 'applications/calendar/importlog/PhabricatorCalendarImportICSLogType.php', | ||||||
|     'PhabricatorCalendarImportICSURITransaction' => 'applications/calendar/xaction/PhabricatorCalendarImportICSURITransaction.php', |     'PhabricatorCalendarImportICSURITransaction' => 'applications/calendar/xaction/PhabricatorCalendarImportICSURITransaction.php', | ||||||
|  |     'PhabricatorCalendarImportICSWarningLogType' => 'applications/calendar/importlog/PhabricatorCalendarImportICSWarningLogType.php', | ||||||
|     'PhabricatorCalendarImportIgnoredNodeLogType' => 'applications/calendar/importlog/PhabricatorCalendarImportIgnoredNodeLogType.php', |     'PhabricatorCalendarImportIgnoredNodeLogType' => 'applications/calendar/importlog/PhabricatorCalendarImportIgnoredNodeLogType.php', | ||||||
|     'PhabricatorCalendarImportListController' => 'applications/calendar/controller/PhabricatorCalendarImportListController.php', |     'PhabricatorCalendarImportListController' => 'applications/calendar/controller/PhabricatorCalendarImportListController.php', | ||||||
|     'PhabricatorCalendarImportLog' => 'applications/calendar/storage/PhabricatorCalendarImportLog.php', |     'PhabricatorCalendarImportLog' => 'applications/calendar/storage/PhabricatorCalendarImportLog.php', | ||||||
| @@ -6991,6 +6992,7 @@ phutil_register_library_map(array( | |||||||
|     'PhabricatorCalendarImportICSFileTransaction' => 'PhabricatorCalendarImportTransactionType', |     'PhabricatorCalendarImportICSFileTransaction' => 'PhabricatorCalendarImportTransactionType', | ||||||
|     'PhabricatorCalendarImportICSLogType' => 'PhabricatorCalendarImportLogType', |     'PhabricatorCalendarImportICSLogType' => 'PhabricatorCalendarImportLogType', | ||||||
|     'PhabricatorCalendarImportICSURITransaction' => 'PhabricatorCalendarImportTransactionType', |     'PhabricatorCalendarImportICSURITransaction' => 'PhabricatorCalendarImportTransactionType', | ||||||
|  |     'PhabricatorCalendarImportICSWarningLogType' => 'PhabricatorCalendarImportLogType', | ||||||
|     'PhabricatorCalendarImportIgnoredNodeLogType' => 'PhabricatorCalendarImportLogType', |     'PhabricatorCalendarImportIgnoredNodeLogType' => 'PhabricatorCalendarImportLogType', | ||||||
|     'PhabricatorCalendarImportListController' => 'PhabricatorCalendarController', |     'PhabricatorCalendarImportListController' => 'PhabricatorCalendarController', | ||||||
|     'PhabricatorCalendarImportLog' => array( |     'PhabricatorCalendarImportLog' => array( | ||||||
|   | |||||||
| @@ -28,6 +28,17 @@ abstract class PhabricatorCalendarICSImportEngine | |||||||
|       $document = null; |       $document = null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     foreach ($parser->getWarnings() as $warning) { | ||||||
|  |       $import->newLogMessage( | ||||||
|  |         PhabricatorCalendarImportICSWarningLogType::LOGTYPE, | ||||||
|  |         array( | ||||||
|  |           'ics.warning.code' => $warning['code'], | ||||||
|  |           'ics.warning.line' => $warning['line'], | ||||||
|  |           'ics.warning.text' => $warning['text'], | ||||||
|  |           'ics.warning.message' => $warning['message'], | ||||||
|  |         )); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     return $this->importEventDocument($viewer, $import, $document); |     return $this->importEventDocument($viewer, $import, $document); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -0,0 +1,37 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | final class PhabricatorCalendarImportICSWarningLogType | ||||||
|  |   extends PhabricatorCalendarImportLogType { | ||||||
|  |  | ||||||
|  |   const LOGTYPE = 'ics.warning'; | ||||||
|  |  | ||||||
|  |   public function getDisplayType( | ||||||
|  |     PhabricatorUser $viewer, | ||||||
|  |     PhabricatorCalendarImportLog $log) { | ||||||
|  |     return pht('ICS Parser Warning'); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public function getDisplayDescription( | ||||||
|  |     PhabricatorUser $viewer, | ||||||
|  |     PhabricatorCalendarImportLog $log) { | ||||||
|  |     return pht( | ||||||
|  |       'Warning ("%s") while parsing ICS data (near line %s): %s', | ||||||
|  |       $log->getParameter('ics.warning.code'), | ||||||
|  |       $log->getParameter('ics.warning.line'), | ||||||
|  |       $log->getParameter('ics.warning.message')); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   public function getDisplayIcon( | ||||||
|  |     PhabricatorUser $viewer, | ||||||
|  |     PhabricatorCalendarImportLog $log) { | ||||||
|  |     return 'fa-exclamation-triangle'; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public function getDisplayColor( | ||||||
|  |     PhabricatorUser $viewer, | ||||||
|  |     PhabricatorCalendarImportLog $log) { | ||||||
|  |     return 'yellow'; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 epriestley
					epriestley