Skip to content

Commit 24c365c

Browse files
committed
feat(targetticket,targetchange): assign a group from the technician group of an objec
Signed-off-by: Thierry Bugier <[email protected]>
1 parent 3bf78ff commit 24c365c

File tree

3 files changed

+49
-35
lines changed

3 files changed

+49
-35
lines changed

inc/target_actor.class.php

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ abstract class PluginFormcreatorTarget_Actor extends CommonDBChild implements Pl
4747
const ACTOR_TYPE_QUESTION_SUPPLIER = 8;
4848
const ACTOR_TYPE_QUESTION_ACTORS = 9;
4949
const ACTOR_TYPE_GROUP_FROM_OBJECT = 10;
50+
const ACTOR_TYPE_TECH_GROUP_FROM_OBJECT = 11;
5051

5152
const ACTOR_ROLE_REQUESTER = 1;
5253
const ACTOR_ROLE_OBSERVER = 2;
@@ -55,16 +56,17 @@ abstract class PluginFormcreatorTarget_Actor extends CommonDBChild implements Pl
5556

5657
static function getEnumActorType() {
5758
return [
58-
self::ACTOR_TYPE_CREATOR => __('Form requester', 'formcreator'),
59-
self::ACTOR_TYPE_VALIDATOR => __('Form validator', 'formcreator'),
60-
self::ACTOR_TYPE_PERSON => __('Specific person', 'formcreator'),
61-
self::ACTOR_TYPE_QUESTION_PERSON => __('Person from the question', 'formcreator'),
62-
self::ACTOR_TYPE_GROUP => __('Specific group', 'formcreator'),
63-
self::ACTOR_TYPE_QUESTION_GROUP => __('Group from the question', 'formcreator'),
64-
self::ACTOR_TYPE_GROUP_FROM_OBJECT => __('Group from an object', 'formcreator'),
65-
self::ACTOR_TYPE_SUPPLIER => __('Specific supplier', 'formcreator'),
66-
self::ACTOR_TYPE_QUESTION_SUPPLIER => __('Supplier from the question', 'formcreator'),
67-
self::ACTOR_TYPE_QUESTION_ACTORS => __('Actors from the question', 'formcreator'),
59+
self::ACTOR_TYPE_CREATOR => __('Form requester', 'formcreator'),
60+
self::ACTOR_TYPE_VALIDATOR => __('Form validator', 'formcreator'),
61+
self::ACTOR_TYPE_PERSON => __('Specific person', 'formcreator'),
62+
self::ACTOR_TYPE_QUESTION_PERSON => __('Person from the question', 'formcreator'),
63+
self::ACTOR_TYPE_GROUP => __('Specific group', 'formcreator'),
64+
self::ACTOR_TYPE_QUESTION_GROUP => __('Group from the question', 'formcreator'),
65+
self::ACTOR_TYPE_GROUP_FROM_OBJECT => __('Group from an object', 'formcreator'),
66+
self::ACTOR_TYPE_TECH_GROUP_FROM_OBJECT => __('Tech group from an object', 'formcreator'),
67+
self::ACTOR_TYPE_SUPPLIER => __('Specific supplier', 'formcreator'),
68+
self::ACTOR_TYPE_QUESTION_SUPPLIER => __('Supplier from the question', 'formcreator'),
69+
self::ACTOR_TYPE_QUESTION_ACTORS => __('Actors from the question', 'formcreator'),
6870
];
6971
}
7072

inc/targetbase.class.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,9 @@ protected function prepareActors(PluginFormcreatorForm $form, PluginFormcreatorF
514514

515515
// Check the object has a group FK
516516
$groupFk = Group::getForeignKeyField();
517+
if ($actor['actor_type'] == PluginFormcreatorTarget_Actor::ACTOR_TYPE_TECH_GROUP_FROM_OBJECT) {
518+
$groupFk = $groupFk . '_tech';
519+
}
517520
$object = new $itemtype();
518521
if (!$DB->fieldExists($object->getTable(), $groupFk)) {
519522
continue 2;
@@ -547,7 +550,8 @@ protected function prepareActors(PluginFormcreatorForm $form, PluginFormcreatorF
547550
case PluginFormcreatorTarget_Actor::ACTOR_TYPE_GROUP :
548551
case PluginFormcreatorTarget_Actor::ACTOR_TYPE_QUESTION_GROUP :
549552
case PluginFormcreatorTarget_Actor::ACTOR_TYPE_GROUP_FROM_OBJECT:
550-
foreach ($userIds as $groupId) {
553+
case PluginFormcreatorTarget_Actor::ACTOR_TYPE_TECH_GROUP_FROM_OBJECT:
554+
foreach ($userIds as $groupId) {
551555
$this->addGroupActor($actor['actor_role'], $groupId);
552556
}
553557
break;

js/scripts.js.php

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -715,19 +715,21 @@ function plugin_formcreator_ChangeActorRequester(value) {
715715
$('#block_requester_group').hide();
716716
$('#block_requester_question_group').hide();
717717
$('#block_requester_group_from_object').hide();
718+
$('#block_requester_tech_group_from_object').hide();
718719
$('#block_requester_question_actors').hide();
719720
$('#block_requester_supplier').hide();
720721
$('#block_requester_question_supplier').hide();
721722

722723
switch (value) {
723-
case '3' : $('#block_requester_user').show(); break;
724-
case '4' : $('#block_requester_question_user').show(); break;
725-
case '5' : $('#block_requester_group').show(); break;
726-
case '6' : $('#block_requester_question_group').show(); break;
727-
case '10': $('#block_requester_group_from_object').show(); break;
728-
case '9' : $('#block_requester_question_actors').show(); break;
729-
case '7' : $('#block_requester_supplier').show(); break;
730-
case '8' : $('#block_requester_question_supplier').show(); break;
724+
case '3' : $('#block_requester_user').show(); break;
725+
case '4' : $('#block_requester_question_user').show(); break;
726+
case '5' : $('#block_requester_group').show(); break;
727+
case '6' : $('#block_requester_question_group').show(); break;
728+
case '10': $('#block_requester_group_from_object').show(); break;
729+
case '11': $('#block_requester_tech_group_from_object').show(); break;
730+
case '9' : $('#block_requester_question_actors').show(); break;
731+
case '7' : $('#block_requester_supplier').show(); break;
732+
case '8' : $('#block_requester_question_supplier').show(); break;
731733
}
732734
}
733735

@@ -737,19 +739,22 @@ function plugin_formcreator_ChangeActorWatcher(value) {
737739
$('#block_watcher_group').hide();
738740
$('#block_watcher_question_group').hide();
739741
$('#block_watcher_group_from_object').hide();
742+
$('#block_watcher_tech_group_from_object').hide();
740743
$('#block_watcher_question_actors').hide();
741744
$('#block_watcher_supplier').hide();
742745
$('#block_watcher_question_supplier').hide();
743746

744747
switch (value) {
745-
case '3' : $('#block_watcher_user').show(); break;
746-
case '4' : $('#block_watcher_question_user').show(); break;
747-
case '5' : $('#block_watcher_group').show(); break;
748-
case '6' : $('#block_watcher_question_group').show(); break;
749-
case '9' : $('#block_watcher_question_actors').show(); break;
750-
case '10': $('#block_watcher_group_from_object').show(); break;
751-
case '7' : $('#block_watcher_supplier').show(); break;
752-
case '8' : $('#block_watcher_question_supplier').show(); break;
748+
case '3' : $('#block_watcher_user').show(); break;
749+
case '4' : $('#block_watcher_question_user').show(); break;
750+
case '5' : $('#block_watcher_group').show(); break;
751+
case '6' : $('#block_watcher_question_group').show(); break;
752+
case '9' : $('#block_watcher_question_actors').show(); break;
753+
case '10': $('#block_watcher_group_from_object').show(); break;
754+
case '11': $('#block_watcher_tech_group_from_object').show(); break;
755+
case '9' : $('#block_watcher_question_actors').show(); break;
756+
case '7' : $('#block_watcher_supplier').show(); break;
757+
case '8' : $('#block_watcher_question_supplier').show(); break;
753758
}
754759
}
755760

@@ -759,20 +764,23 @@ function plugin_formcreator_ChangeActorAssigned(value) {
759764
$('#block_assigned_group').hide();
760765
$('#block_assigned_question_group').hide();
761766
$('#block_assigned_group_from_object').hide();
767+
$('#block_assigned_tech_group_from_object').hide();
762768
$('#block_assigned_question_actors').hide();
763769
$('#block_assigned_supplier').hide();
764770
$('#block_assigned_question_supplier').hide();
765771

766772
// The numbers match PluginFormcreatorTarget_Actor::ACTOR_TYPE_* constants
767773
switch (value) {
768-
case '3' : $('#block_assigned_user').show(); break;
769-
case '4' : $('#block_assigned_question_user').show(); break;
770-
case '5' : $('#block_assigned_group').show(); break;
771-
case '6' : $('#block_assigned_question_group').show(); break;
772-
case '9' : $('#block_assigned_question_actors').show(); break;
773-
case '10': $('#block_assigned_group_from_object').show(); break;
774-
case '7' : $('#block_assigned_supplier').show(); break;
775-
case '8' : $('#block_assigned_question_supplier').show(); break;
774+
case '3' : $('#block_assigned_user').show(); break;
775+
case '4' : $('#block_assigned_question_user').show(); break;
776+
case '5' : $('#block_assigned_group').show(); break;
777+
case '6' : $('#block_assigned_question_group').show(); break;
778+
case '9' : $('#block_assigned_question_actors').show(); break;
779+
case '10': $('#block_assigned_group_from_object').show(); break;
780+
case '11': $('#block_assigned_tech_group_from_object').show(); break;
781+
case '9' : $('#block_assigned_question_actors').show(); break;
782+
case '7' : $('#block_assigned_supplier').show(); break;
783+
case '8' : $('#block_assigned_question_supplier').show(); break;
776784
}
777785
}
778786

0 commit comments

Comments
 (0)