public function newEditEngineFields(PhabricatorEditEngine $engine, PhabricatorCalendarImport $import)
 {
     $fields = array();
     if ($engine->getIsCreate()) {
         $fields[] = id(new PhabricatorFileEditField())->setKey('icsFilePHID')->setLabel(pht('ICS File'))->setDescription(pht('ICS file to import.'))->setTransactionType(PhabricatorCalendarImportICSFileTransaction::TRANSACTIONTYPE)->setConduitDescription(pht('File PHID to import.'))->setConduitTypeDescription(pht('File PHID.'));
     }
     return $fields;
 }
 public function newEditEngineFields(PhabricatorEditEngine $engine, PhabricatorCalendarImport $import)
 {
     $fields = array();
     if ($engine->getIsCreate()) {
         $fields[] = id(new PhabricatorTextEditField())->setKey('uri')->setLabel(pht('URI'))->setDescription(pht('URI to import.'))->setTransactionType(PhabricatorCalendarImportICSURITransaction::TRANSACTIONTYPE)->setConduitDescription(pht('URI to import.'))->setConduitTypeDescription(pht('New URI.'));
     }
     return $fields;
 }
 public function buildCustomEditFields(PhabricatorEditEngine $engine, PhabricatorApplicationTransactionInterface $object)
 {
     $viewer = $this->getViewer();
     $field_list = PhabricatorCustomField::getObjectFields($object, PhabricatorCustomField::ROLE_EDIT);
     $field_list->setViewer($viewer);
     if (!$engine->getIsCreate()) {
         $field_list->readFieldsFromStorage($object);
     }
     $results = array();
     foreach ($field_list->getFields() as $field) {
         $edit_fields = $field->getEditEngineFields($engine);
         foreach ($edit_fields as $edit_field) {
             $results[] = $edit_field;
         }
     }
     return $results;
 }
 public function applyConfigurationToFields(PhabricatorEditEngine $engine, array $fields)
 {
     $fields = mpull($fields, null, 'getKey');
     $values = $this->getProperty('defaults', array());
     foreach ($fields as $key => $field) {
         if ($engine->getIsCreate()) {
             if (array_key_exists($key, $values)) {
                 $field->readDefaultValueFromConfiguration($values[$key]);
             }
         }
     }
     $fields = $this->reorderFields($fields);
     $head_instructions = $this->getProperty('instructions.head');
     if (strlen($head_instructions)) {
         $fields = array('config.instructions.head' => id(new PhabricatorInstructionsEditField())->setKey('config.instructions.head')->setValue($head_instructions)) + $fields;
     }
     return $fields;
 }
 public function applyConfigurationToFields(PhabricatorEditEngine $engine, array $fields)
 {
     $fields = mpull($fields, null, 'getKey');
     $values = $this->getProperty('defaults', array());
     foreach ($fields as $key => $field) {
         if ($engine->getIsCreate()) {
             if (array_key_exists($key, $values)) {
                 $field->readDefaultValueFromConfiguration($values[$key]);
             }
         }
     }
     $locks = $this->getFieldLocks();
     foreach ($fields as $field) {
         $key = $field->getKey();
         switch (idx($locks, $key)) {
             case self::LOCK_LOCKED:
                 $field->setIsHidden(false);
                 $field->setIsLocked(true);
                 break;
             case self::LOCK_HIDDEN:
                 $field->setIsHidden(true);
                 $field->setIsLocked(false);
                 break;
             case self::LOCK_VISIBLE:
                 $field->setIsHidden(false);
                 $field->setIsLocked(false);
                 break;
             default:
                 // If we don't have an explicit value, don't make any adjustments.
                 break;
         }
     }
     $fields = $this->reorderFields($fields);
     $preamble = $this->getPreamble();
     if (strlen($preamble)) {
         $fields = array('config.preamble' => id(new PhabricatorInstructionsEditField())->setKey('config.preamble')->setIsReorderable(false)->setIsDefaultable(false)->setIsLockable(false)->setValue($preamble)) + $fields;
     }
     return $fields;
 }