Path: blob/master/src/applications/calendar/editor/PhabricatorCalendarImportEditEngine.php
12256 views
<?php12final class PhabricatorCalendarImportEditEngine3extends PhabricatorEditEngine {45const ENGINECONST = 'calendar.import';67private $importEngine;89public function setImportEngine(PhabricatorCalendarImportEngine $engine) {10$this->importEngine = $engine;11return $this;12}1314public function getImportEngine() {15return $this->importEngine;16}1718public function getEngineName() {19return pht('Calendar Imports');20}2122public function isEngineConfigurable() {23return false;24}2526public function getSummaryHeader() {27return pht('Configure Calendar Import Forms');28}2930public function getSummaryText() {31return pht('Configure how users create and edit imports.');32}3334public function getEngineApplicationClass() {35return 'PhabricatorCalendarApplication';36}3738protected function newEditableObject() {39$viewer = $this->getViewer();40$engine = $this->getImportEngine();4142return PhabricatorCalendarImport::initializeNewCalendarImport(43$viewer,44$engine);45}4647protected function newObjectQuery() {48return new PhabricatorCalendarImportQuery();49}5051protected function getObjectCreateTitleText($object) {52return pht('Create New Import');53}5455protected function getObjectEditTitleText($object) {56return pht('Edit Import: %s', $object->getDisplayName());57}5859protected function getObjectEditShortText($object) {60return pht('Import %d', $object->getID());61}6263protected function getObjectCreateShortText() {64return pht('Create Import');65}6667protected function getObjectName() {68return pht('Import');69}7071protected function getObjectViewURI($object) {72return $object->getURI();73}7475protected function getEditorURI() {76return $this->getApplication()->getApplicationURI('import/edit/');77}7879protected function buildCustomEditFields($object) {80$viewer = $this->getViewer();8182$engine = $object->getEngine();83$can_trigger = $engine->supportsTriggers($object);8485$fields = array(86id(new PhabricatorTextEditField())87->setKey('name')88->setLabel(pht('Name'))89->setDescription(pht('Name of the import.'))90->setTransactionType(91PhabricatorCalendarImportNameTransaction::TRANSACTIONTYPE)92->setConduitDescription(pht('Rename the import.'))93->setConduitTypeDescription(pht('New import name.'))94->setPlaceholder($object->getDisplayName())95->setValue($object->getName()),96id(new PhabricatorBoolEditField())97->setKey('disabled')98->setOptions(pht('Active'), pht('Disabled'))99->setLabel(pht('Disabled'))100->setDescription(pht('Disable the import.'))101->setTransactionType(102PhabricatorCalendarImportDisableTransaction::TRANSACTIONTYPE)103->setIsFormField(false)104->setConduitDescription(pht('Disable or restore the import.'))105->setConduitTypeDescription(pht('True to cancel the import.'))106->setValue($object->getIsDisabled()),107id(new PhabricatorBoolEditField())108->setKey('delete')109->setLabel(pht('Delete Imported Events'))110->setDescription(pht('Delete all events from this source.'))111->setTransactionType(112PhabricatorCalendarImportDisableTransaction::TRANSACTIONTYPE)113->setIsFormField(false)114->setConduitDescription(pht('Disable or restore the import.'))115->setConduitTypeDescription(pht('True to delete imported events.'))116->setValue(false),117id(new PhabricatorBoolEditField())118->setKey('reload')119->setLabel(pht('Reload Import'))120->setDescription(pht('Reload events imported from this source.'))121->setTransactionType(122PhabricatorCalendarImportDisableTransaction::TRANSACTIONTYPE)123->setIsFormField(false)124->setConduitDescription(pht('Disable or restore the import.'))125->setConduitTypeDescription(pht('True to reload the import.'))126->setValue(false),127);128129if ($can_trigger) {130$frequency_map = PhabricatorCalendarImport::getTriggerFrequencyMap();131$frequency_options = ipull($frequency_map, 'name');132133$fields[] = id(new PhabricatorSelectEditField())134->setKey('frequency')135->setLabel(pht('Update Automatically'))136->setDescription(pht('Configure an automatic update frequency.'))137->setTransactionType(138PhabricatorCalendarImportFrequencyTransaction::TRANSACTIONTYPE)139->setConduitDescription(pht('Set the automatic update frequency.'))140->setConduitTypeDescription(pht('Update frequency constant.'))141->setValue($object->getTriggerFrequency())142->setOptions($frequency_options);143}144145$import_engine = $object->getEngine();146foreach ($import_engine->newEditEngineFields($this, $object) as $field) {147$fields[] = $field;148}149150return $fields;151}152153154}155156157