}
}
+ public function getComputedFields($name) {
+ // Ex: $allPaths['viewIndividual'][0] == '/var/www/foo/afform/view-individual'].
+ $allPaths = $this->findFilePaths()[$name];
+ // $activeLayoutPath = $this->findFilePath($name, self::LAYOUT_FILE);
+ // $activeMetaPath = $this->findFilePath($name, self::METADATA_FILE);
+ $localLayoutPath = $this->createSiteLocalPath($name, self::LAYOUT_FILE);
+ $localMetaPath = $this->createSiteLocalPath($name, self::METADATA_FILE);
+
+ $fields = [];
+ $fields['has_local'] = file_exists($localLayoutPath) || file_exists($localMetaPath);
+ $fields['has_packaged'] = ($fields['has_local'] && count($allPaths) > 1)
+ || (!$fields['has_local'] && count($allPaths) > 0);
+ return $fields;
+ }
+
/**
* @param string $formName
* Ex: 'view-individual'
$fields = \Civi\Api4\Afform::getfields()->setCheckPermissions(FALSE)->addSelect('name')->execute()->column('name');
unset($fields[array_search('layout', $fields)]);
unset($fields[array_search('name', $fields)]);
+ unset($fields[array_search('has_local', $fields)]);
+ unset($fields[array_search('has_packaged', $fields)]);
$orig = \Civi\Api4\Afform::get()->setCheckPermissions(FALSE)->addWhere('name', '=', $item['name'])->setSelect($fields)->execute()->first();
}
$this->assertEquals($get($originalMetadata, 'description'), $get($result[0], 'description'), $message);
$this->assertEquals($get($originalMetadata, 'server_route'), $get($result[0], 'server_route'), $message);
$this->assertTrue(is_array($result[0]['layout']), $message);
+ $this->assertEquals(TRUE, $get($result[0], 'has_packaged'), $message);
+ $this->assertEquals(FALSE, $get($result[0], 'has_local'), $message);
$message = 'After updating with Afform.create, the revised data should be returned';
$result = Civi\Api4\Afform::update()
$this->assertEquals('The temporary description', $get($result[0], 'description'), $message);
$this->assertEquals($get($originalMetadata, 'server_route'), $get($result[0], 'server_route'), $message);
$this->assertTrue(is_array($result[0]['layout']), $message);
+ $this->assertEquals(TRUE, $get($result[0], 'has_packaged'), $message);
+ $this->assertEquals(TRUE, $get($result[0], 'has_local'), $message);
Civi\Api4\Afform::revert()->addWhere('name', '=', $formName)->execute();
$message = 'After reverting, the final Afform.get should return default data';
$this->assertEquals($get($originalMetadata, 'description'), $get($result[0], 'description'), $message);
$this->assertEquals($get($originalMetadata, 'server_route'), $get($result[0], 'server_route'), $message);
$this->assertTrue(is_array($result[0]['layout']), $message);
+ $this->assertEquals(TRUE, $get($result[0], 'has_packaged'), $message);
+ $this->assertEquals(FALSE, $get($result[0], 'has_local'), $message);
}
public function getFormatExamples() {