private function buildCurtain(PhabricatorCalendarImport $import) { $viewer = $this->getViewer(); $id = $import->getID(); $curtain = $this->newCurtainView($import); $engine = $import->getEngine(); $can_edit = PhabricatorPolicyFilter::hasCapability($viewer, $import, PhabricatorPolicyCapability::CAN_EDIT); $edit_uri = "import/edit/{$id}/"; $edit_uri = $this->getApplicationURI($edit_uri); $can_disable = $can_edit && $engine->canDisable($viewer, $import); $curtain->addAction(id(new PhabricatorActionView())->setName(pht('Edit Import'))->setIcon('fa-pencil')->setDisabled(!$can_edit)->setWorkflow(!$can_edit)->setHref($edit_uri)); $reload_uri = "import/reload/{$id}/"; $reload_uri = $this->getApplicationURI($reload_uri); $curtain->addAction(id(new PhabricatorActionView())->setName(pht('Reload Import'))->setIcon('fa-refresh')->setDisabled(!$can_edit)->setWorkflow(true)->setHref($reload_uri)); $disable_uri = "import/disable/{$id}/"; $disable_uri = $this->getApplicationURI($disable_uri); if ($import->getIsDisabled()) { $disable_name = pht('Enable Import'); $disable_icon = 'fa-check'; } else { $disable_name = pht('Disable Import'); $disable_icon = 'fa-ban'; } $curtain->addAction(id(new PhabricatorActionView())->setName($disable_name)->setIcon($disable_icon)->setDisabled(!$can_disable)->setWorkflow(true)->setHref($disable_uri)); if ($can_edit) { $can_delete = $engine->canDeleteAnyEvents($viewer, $import); } else { $can_delete = false; } $delete_uri = "import/delete/{$id}/"; $delete_uri = $this->getApplicationURI($delete_uri); $curtain->addAction(id(new PhabricatorActionView())->setName(pht('Delete Imported Events'))->setIcon('fa-times')->setDisabled(!$can_delete)->setWorkflow(true)->setHref($delete_uri)); return $curtain; }