diff options
author | Malfurious <m@lfurio.us> | 2021-10-20 01:15:28 -0400 |
---|---|---|
committer | Malfurious <m@lfurio.us> | 2021-10-20 01:15:28 -0400 |
commit | e88b153336610e18732fbcc1d8ff3ac4e653d080 (patch) | |
tree | 1cddf528725f8698a73f39b282a96f954f7649c8 /app | |
parent | 89e2b5a5eb46e3fe2c413ac856c2b46713ce5562 (diff) | |
download | scrott-e88b153336610e18732fbcc1d8ff3ac4e653d080.tar.gz scrott-e88b153336610e18732fbcc1d8ff3ac4e653d080.zip |
Add UI for explicit issue signoff
Active issue assignees will now have a button on issues to explicitly
'signoff' their assignment - that is, to affirmatively declare it done.
The use of this new action will allow assignees to signoff without
needing to close the issue as well. This is useful for multiple
assigned users collaborating on an issue.
Note that if an assignee chooses to close a ticket directly, they are
still automatically signed-off, as before.
To aid this feature, the low-level definition of an 'assigned user' is
updated to exclude users occupying an assignment slot, but which have
already signed-off.
Since the icon representing this action is the same as for closing a
ticket, the buttons enabling these two actions are now color-coded
wherever they appear.
Signed-off-by: Malfurious <m@lfurio.us>
Diffstat (limited to 'app')
-rw-r--r-- | app/class/agent.class.php | 1 | ||||
-rw-r--r-- | app/model/issue.php | 12 | ||||
-rw-r--r-- | app/view/datalsts.php | 2 | ||||
-rw-r--r-- | app/view/issue.php | 40 |
4 files changed, 39 insertions, 16 deletions
diff --git a/app/class/agent.class.php b/app/class/agent.class.php index 4651a10..cf6ae9b 100644 --- a/app/class/agent.class.php +++ b/app/class/agent.class.php @@ -82,6 +82,7 @@ abstract class agent extends obj foreach ($issue->getAssignees() as $assign) { if ($assign->assignee->guid == $this->guid + && $assign->signedoff == "" && $assign->dismissed == "") return true; } diff --git a/app/model/issue.php b/app/model/issue.php index 41392e8..c3423f7 100644 --- a/app/model/issue.php +++ b/app/model/issue.php @@ -106,6 +106,18 @@ if (isAction("iss-mesg-add")) $log = mesg::initNewLog("%s closed issue", $user, $issue); } + else if (isset(input()['signoff'])) + { + if (!$user->isAssignedTo($issue)) + { + logError(ERROR, "You are not an active assignee of this issue"); + return; + } + + $issue->signoffAssignee($user); + $log = mesg::initNewLog("%s signed off", $user, $issue); + } + /* automatically redisplay issue modal */ if ($form->nopop != "1") setAutoModal("#issueModal-" . $issue->guid); diff --git a/app/view/datalsts.php b/app/view/datalsts.php index b80de78..298d036 100644 --- a/app/view/datalsts.php +++ b/app/view/datalsts.php @@ -163,7 +163,7 @@ require_once "view/formctrl.php"; <span class="glyphicon glyphicon-chevron-up"></span> </button> - <button type="submit" name="input[closeIssue]" class="btn btn-sm btn-default" title="Close issue"> + <button type="submit" name="input[closeIssue]" class="btn btn-sm btn-success" title="Close issue"> <span class="glyphicon glyphicon-ok"></span> </button> </div> diff --git a/app/view/issue.php b/app/view/issue.php index 4ca0e3b..fbd180a 100644 --- a/app/view/issue.php +++ b/app/view/issue.php @@ -122,22 +122,32 @@ require_once "class/issue.class.php"; <?=\formctrl\hidden( "issue", $i->guid )?> <?=\formctrl\textarea( "New message", "mesg", 5 )?> - <div class="btn-group pull-right"> - <button type="submit" name="input[postMesg]" class="btn btn-primary" title="Post message"> - <span class="glyphicon glyphicon-envelope"></span> - </button> - - <button type="submit" name="input[closeIssue]" class="btn btn-default" title="Close issue"> - <span class="glyphicon glyphicon-ok"></span> - </button> - - <button type="submit" name="input[advIssue]" class="btn btn-default" title="Advance issue"> - <span class="glyphicon glyphicon-chevron-up"></span> - </button> + <div class="btn-toolbar pull-right"> + <div class="btn-group"> + <button type="submit" name="input[postMesg]" class="btn btn-primary" title="Post message"> + <span class="glyphicon glyphicon-envelope"></span> + </button> + + <button type="submit" name="input[closeIssue]" class="btn btn-success" title="Close issue"> + <span class="glyphicon glyphicon-ok"></span> + </button> + + <button type="submit" name="input[advIssue]" class="btn btn-default" title="Advance issue"> + <span class="glyphicon glyphicon-chevron-up"></span> + </button> + + <button type="button" class="btn btn-default" data-toggle="collapse" data-target="#assignCollapse-<?=$i->guid?>" title="Assign issue"> + <span class="glyphicon glyphicon-share-alt"></span> + </button> + </div> - <button type="button" class="btn btn-default" data-toggle="collapse" data-target="#assignCollapse-<?=$i->guid?>" title="Assign issue"> - <span class="glyphicon glyphicon-share-alt"></span> - </button> + <?php if (\user::getCurrent()->isAssignedTo($i)) { ?> + <div class="btn-group"> + <button type="submit" name="input[signoff]" class="btn btn-warning" title="Signoff issue"> + <span class="glyphicon glyphicon-ok"></span> + </button> + </div> + <?php } ?> </div> <div class="collapse" id="assignCollapse-<?=$i->guid?>"> |