mirror of
https://code.castopod.org/adaures/castopod
synced 2025-04-19 13:01:19 +00:00
fix(persons): set roles field as optional + set Cast > Host
as default value
fixes #347
This commit is contained in:
parent
642981fd35
commit
02132dc466
@ -280,8 +280,8 @@ class PersonModel extends Model
|
||||
/**
|
||||
* Add persons to podcast
|
||||
*
|
||||
* @param array<string> $personIds
|
||||
* @param array<string, string> $roles
|
||||
* @param int[] $personIds
|
||||
* @param string[] $roles
|
||||
*
|
||||
* @return bool|int Number of rows inserted or FALSE on failure
|
||||
*/
|
||||
@ -300,9 +300,12 @@ class PersonModel extends Model
|
||||
$data = [];
|
||||
foreach ($personIds as $personId) {
|
||||
if ($roles === []) {
|
||||
// add to default group (cast) and role (host), see https://podcastindex.org/namespace/1.0#person
|
||||
$data[] = [
|
||||
'podcast_id' => $podcastId,
|
||||
'person_id' => $personId,
|
||||
'podcast_id' => $podcastId,
|
||||
'person_id' => $personId,
|
||||
'person_group' => 'cast',
|
||||
'person_role' => 'host',
|
||||
];
|
||||
}
|
||||
|
||||
@ -347,16 +350,12 @@ class PersonModel extends Model
|
||||
* Add persons to episode
|
||||
*
|
||||
* @param int[] $personIds
|
||||
* @param string[] $groupsRoles
|
||||
* @param string[] $roles
|
||||
*
|
||||
* @return bool|int Number of rows inserted or FALSE on failure
|
||||
*/
|
||||
public function addEpisodePersons(
|
||||
int $podcastId,
|
||||
int $episodeId,
|
||||
array $personIds,
|
||||
array $groupsRoles
|
||||
): bool | int {
|
||||
public function addEpisodePersons(int $podcastId, int $episodeId, array $personIds, array $roles): bool | int
|
||||
{
|
||||
if ($personIds !== []) {
|
||||
cache()
|
||||
->delete("podcast#{$podcastId}_episode#{$episodeId}_persons");
|
||||
@ -366,22 +365,24 @@ class PersonModel extends Model
|
||||
|
||||
$data = [];
|
||||
foreach ($personIds as $personId) {
|
||||
if ($groupsRoles !== []) {
|
||||
foreach ($groupsRoles as $groupRole) {
|
||||
$groupRole = explode(',', $groupRole);
|
||||
$data[] = [
|
||||
'podcast_id' => $podcastId,
|
||||
'episode_id' => $episodeId,
|
||||
'person_id' => $personId,
|
||||
'person_group' => $groupRole[0],
|
||||
'person_role' => $groupRole[1],
|
||||
];
|
||||
}
|
||||
} else {
|
||||
if ($roles === []) {
|
||||
$data[] = [
|
||||
'podcast_id' => $podcastId,
|
||||
'episode_id' => $episodeId,
|
||||
'person_id' => $personId,
|
||||
'podcast_id' => $podcastId,
|
||||
'episode_id' => $episodeId,
|
||||
'person_id' => $personId,
|
||||
'person_group' => 'cast',
|
||||
'person_role' => 'host',
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($roles as $role) {
|
||||
$groupRole = explode(',', $role);
|
||||
$data[] = [
|
||||
'podcast_id' => $podcastId,
|
||||
'episode_id' => $episodeId,
|
||||
'person_id' => $personId,
|
||||
'person_group' => $groupRole[0],
|
||||
'person_role' => $groupRole[1],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,6 @@
|
||||
hint="<?= lang('Person.episode_form.roles_hint') ?>"
|
||||
options="<?= esc(json_encode($taxonomyOptions)) ?>"
|
||||
selected="<?= esc(json_encode(old('roles', []))) ?>"
|
||||
required="true"
|
||||
/>
|
||||
|
||||
<Button variant="primary" type="submit" class="self-end"><?= lang('Person.episode_form.submit_add') ?></Button>
|
||||
|
@ -31,7 +31,7 @@
|
||||
options="<?= esc(json_encode($personOptions)) ?>"
|
||||
selected="<?= esc(json_encode(old('persons', []))) ?>"
|
||||
required="true" />
|
||||
|
||||
|
||||
<Forms.Field
|
||||
as="MultiSelect"
|
||||
id="roles"
|
||||
@ -40,7 +40,7 @@
|
||||
hint="<?= lang('Person.podcast_form.roles_hint') ?>"
|
||||
options="<?= esc(json_encode($taxonomyOptions)) ?>"
|
||||
selected="<?= esc(json_encode(old('roles', []))) ?>"
|
||||
required="true" />
|
||||
/>
|
||||
|
||||
<Button variant="primary" class="self-end" type="submit"><?= lang('Person.podcast_form.submit_add') ?></Button>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user