diff --git a/app/controllers/massmail/message.php b/app/controllers/massmail/message.php index 3f7a009d4c3f38703bf6a7e2e286f4bd5fa7968c..62778db8cf89a5b070b5c6dbfc5dc32c4364e2dd 100644 --- a/app/controllers/massmail/message.php +++ b/app/controllers/massmail/message.php @@ -48,28 +48,29 @@ class Massmail_MessageController extends \AuthenticatedController 'if' => 'target === "students"', 'context' => 'MassMail', 'target' => 'students', - ':key' => 'NaN', 'store' => function($value, $input) { - $filters = []; - foreach ($value as $one) { - $filter = new UserFilter($one['id'] ?? ''); - $filter->fields = []; - foreach ($one['attributes']['fields'] as $field) { - $classname = $field['attributes']['type']; - $f = new $classname(); - if (!empty($fiele['id'])) { - $f->setId($field['id']); + if ($input->getContextObject()->target === 'students') { + $filters = []; + foreach ($value as $one) { + $filter = new UserFilter($one['id'] ?? ''); + $filter->fields = []; + foreach ($one['attributes']['fields'] as $field) { + $classname = $field['attributes']['type']; + $f = new $classname(); + if (!empty($fiele['id'])) { + $f->setId($field['id']); + } + $f->setCompareOperator($field['attributes']['compare-operator']); + $f->setValue($field['attributes']['value']); + $filter->addField($f); } - $f->setCompareOperator($field['attributes']['compare-operator']); - $f->setValue($field['attributes']['value']); - $filter->addField($f); + $filter->store(); + $connection = new \MassMail\MassMailFilter(); + $connection->filter_id = $filter->getId(); + $filters[] = $connection; } - $filter->store(); - $connection = new \MassMail\MassMailFilter(); - $connection->filter_id = $filter->getId(); - $filters[] = $connection; + $input->getContextObject()->filters = $filters; } - $input->getContextObject()->filters = $filters; } ], 'employee_filters' => [ @@ -78,28 +79,29 @@ class Massmail_MessageController extends \AuthenticatedController 'if' => 'target === "employees"', 'context' => 'MassMail', 'target' => 'employees', - ':key' => 'NaN', 'store' => function($value, $input) { - $filters = []; - foreach ($value as $one) { - $filter = new UserFilter($one['id'] ?? ''); - $filter->fields = []; - foreach ($one['attributes']['fields'] as $field) { - $classname = $field['attributes']['type']; - $f = new $classname(); - if (!empty($fiele['id'])) { - $f->setId($field['id']); + if ($input->getContextObject()->target === 'employees') { + $filters = []; + foreach ($value as $one) { + $filter = new UserFilter($one['id'] ?? ''); + $filter->fields = []; + foreach ($one['attributes']['fields'] as $field) { + $classname = $field['attributes']['type']; + $f = new $classname(); + if (!empty($fiele['id'])) { + $f->setId($field['id']); + } + $f->setCompareOperator($field['attributes']['compare-operator']); + $f->setValue($field['attributes']['value']); + $filter->addField($f); } - $f->setCompareOperator($field['attributes']['compare-operator']); - $f->setValue($field['attributes']['value']); - $filter->addField($f); + $filter->store(); + $connection = new \MassMail\MassMailFilter(); + $connection->filter_id = $filter->getId(); + $filters[] = $connection; } - $filter->store(); - $connection = new \MassMail\MassMailFilter(); - $connection->filter_id = $filter->getId(); - $filters[] = $connection; + $input->getContextObject()->filters = $filters; } - $input->getContextObject()->filters = $filters; } ], 'semester' => [ diff --git a/resources/vue/components/form_inputs/UserFilterInput.vue b/resources/vue/components/form_inputs/UserFilterInput.vue index d63e97b2f2221923bf169b36d3abee08d610a38f..2d481433c97ac5f14970e69543fafb5b786a83ee 100644 --- a/resources/vue/components/form_inputs/UserFilterInput.vue +++ b/resources/vue/components/form_inputs/UserFilterInput.vue @@ -126,6 +126,11 @@ export default { this.$emit('input', this.stringified); } }, + watch: { + target() { + this.filters = []; + } + }, mounted() { if (this.value) { this.filters = JSON.parse(this.value);