@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
at upstream/main 52 lines 1.5 kB view raw
1<?php 2 3final class PhabricatorCalendarImportReloadController 4 extends PhabricatorCalendarController { 5 6 public function handleRequest(AphrontRequest $request) { 7 $viewer = $request->getViewer(); 8 9 $import = id(new PhabricatorCalendarImportQuery()) 10 ->setViewer($viewer) 11 ->withIDs(array($request->getURIData('id'))) 12 ->requireCapabilities( 13 array( 14 PhabricatorPolicyCapability::CAN_VIEW, 15 PhabricatorPolicyCapability::CAN_EDIT, 16 )) 17 ->executeOne(); 18 if (!$import) { 19 return new Aphront404Response(); 20 } 21 22 $import_uri = $import->getURI(); 23 24 if ($request->isFormPost()) { 25 $xactions = array(); 26 $xactions[] = id(new PhabricatorCalendarImportTransaction()) 27 ->setTransactionType( 28 PhabricatorCalendarImportReloadTransaction::TRANSACTIONTYPE) 29 ->setNewValue(true); 30 31 $editor = id(new PhabricatorCalendarImportEditor()) 32 ->setActor($viewer) 33 ->setContinueOnNoEffect(true) 34 ->setContinueOnMissingFields(true) 35 ->setContentSourceFromRequest($request); 36 37 $editor->applyTransactions($import, $xactions); 38 39 return id(new AphrontRedirectResponse())->setURI($import_uri); 40 } 41 42 return $this->newDialog() 43 ->setTitle(pht('Reload Events')) 44 ->appendParagraph( 45 pht( 46 'Reload this source? Events imported from this source will '. 47 'be updated.')) 48 ->addCancelButton($import_uri) 49 ->addSubmitButton(pht('Reload Events')); 50 } 51 52}