Skip to content

Commit

Permalink
feat(targetticket,targetcvhange,targetproblem): update actors array
Browse files Browse the repository at this point in the history
  • Loading branch information
btry committed Jun 27, 2022
1 parent be417f5 commit ac09029
Show file tree
Hide file tree
Showing 4 changed files with 125 additions and 0 deletions.
116 changes: 116 additions & 0 deletions inc/abstractitiltarget.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -2148,6 +2148,122 @@ protected function initializeActors() {
];
}

public function cleanActors($data): array {
if (isset($data['_users_id_requester'])) {
if (count($data['_users_id_requester']) < 1) {
unset($data['_users_id_requester']);
unset($data['_users_id_requester_notif']);
} else {
if (is_array($data['_users_id_requester'])) {
$cleaned = [];
$cleaned_notif = [];
foreach ($data['_users_id_requester'] as $key => $actor) {
if ($actor == 0) {
continue;
}
$cleaned[] = $actor;
$cleaned_notif['use_notification'][] = $data['_users_id_requester_notif']['use_notification'][$key];
$cleaned_notif['alternative_email'][] = $data['_users_id_requester_notif']['alternative_email'][$key];
}
} else {
if ($data['_users_id_requester'] == 0) {
unset($data['_users_id_requester']);
unset($data['_users_id_requester_notif']);
}
}
}
}

if (isset($data['_users_id_observer'])) {
if (count($data['_users_id_observer']) < 1) {
unset($data['_users_id_observer']);
unset($data['_users_id_observer_notif']);
} else {
if (is_array($data['_users_id_observer'])) {
$cleaned = [];
$cleaned_notif = [];
foreach ($data['_users_id_observer'] as $key => $actor) {
if ($actor == 0) {
continue;
}
$cleaned[] = $actor;
$cleaned_notif['use_notification'][] = $data['_users_id_observer_notif']['use_notification'][$key];
$cleaned_notif['alternative_email'][] = $data['_users_id_observer_notif']['alternative_email'][$key];
}
} else {
if ($data['_users_id_observer'] == 0) {
unset($data['_users_id_observer']);
unset($data['_users_id_observer_notif']);
}
}
}
}

if (isset($data['_users_id_assign'])) {
if (count($data['_users_id_assign']) < 1) {
unset($data['_users_id_assign']);
unset($data['_users_id_assign_notif']);
} else {
if (is_array($data['_users_id_assign'])) {
$cleaned = [];
$cleaned_notif = [];
foreach ($data['_users_id_assign'] as $key => $actor) {
if ($actor == 0) {
continue;
}
$cleaned[] = $actor;
$cleaned_notif['use_notification'][] = $data['_users_id_assign_notif']['use_notification'][$key];
$cleaned_notif['alternative_email'][] = $data['_users_id_assign_notif']['alternative_email'][$key];
}
} else {
if ($data['_users_id_assign'] == 0) {
unset($data['_users_id_assign']);
unset($data['_users_id_assign_notif']);
}
}
}
}

if (isset($data['_suppliers_id_assign'])) {
if (count($data['_suppliers_id_assign']) < 1) {
unset($data['_suppliers_id_assign']);
unset($data['_suppliers_id_assign_notif']);
} else {
if (is_array($data['_suppliers_id_assign'])) {
$cleaned = [];
$cleaned_notif = [];
foreach ($data['_suppliers_id_assign'] as $key => $actor) {
if ($actor == 0) {
continue;
}
$cleaned[] = $actor;
$cleaned_notif['use_notification'][] = $data['_suppliers_id_assign_notif']['use_notification'][$key];
$cleaned_notif['alternative_email'][] = $data['_suppliers_id_assign_notif']['alternative_email'][$key];
}
} else {
if ($data['_suppliers_id_assign'] == 0) {
unset($data['_suppliers_id_assign']);
unset($data['_suppliers_id_assign_notif']);
}
}
}
}

if (isset($data['_groups_id_requester']) && $data['_groups_id_requester'] == 0) {
unset($data['_groups_id_requester']);
}

if (isset($data['_groups_id_observer']) && $data['_groups_id_observer'] == 0) {
unset($data['_groups_id_observer']);
}

if (isset($data['_groups_id_assign']) && $data['_groups_id_assign'] == 0) {
unset($data['_groups_id_assign']);
}

return $data;
}

/**
* Set default values for the item to create
*
Expand Down
3 changes: 3 additions & 0 deletions inc/targetchange.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -726,6 +726,9 @@ public function save(PluginFormcreatorFormAnswer $formanswer): ?CommonDBTM {

$this->appendFieldsData($formanswer, $data);

// Cleanup actors array
$data = $this->cleanActors($data);

// Create the target change
if (!$changeID = $change->add($data)) {
return null;
Expand Down
3 changes: 3 additions & 0 deletions inc/targetproblem.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,9 @@ public function save(PluginFormcreatorFormAnswer $formanswer): ?CommonDBTM {

$this->appendFieldsData($formanswer, $data);

// Cleanup actors array
$data = $this->cleanActors($data);

// Create the target problem
if (!$problemID = $problem->add($data)) {
return null;
Expand Down
3 changes: 3 additions & 0 deletions inc/targetticket.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -935,6 +935,9 @@ public function save(PluginFormcreatorFormAnswer $formanswer): ?CommonDBTM {

$this->appendFieldsData($formanswer, $data);

// Cleanup actors array
$data = $this->cleanActors($data);

// Create the target ticket
$data['_auto_import'] = true;
if (!$ticketID = $ticket->add($data)) {
Expand Down

0 comments on commit ac09029

Please sign in to comment.