Page MenuHomePhorge

DeepcloneUIEventListener.php
No OneTemporary

DeepcloneUIEventListener.php

<?php
final class DeepcloneUIEventListener extends PhabricatorEventListener {
public function register() {
$this->listen(PhabricatorEventType::TYPE_UI_DIDRENDERACTIONS);
}
public function handleEvent(PhutilEvent $event) {
switch ($event->getType()) {
case PhabricatorEventType::TYPE_UI_DIDRENDERACTIONS:
$this->handleActionEvent($event);
break;
}
}
private function handleActionEvent($event) {
$viewer = $event->getUser();
$object = $event->getValue('object');
if (!$object || !$object->getPHID()) {
// If we have no object, or the object doesn't have a PHID, we can't
// do anything useful.
return;
}
if (!($object instanceof ManiphestTask)) {
return;
}
$phid = $object->getPHID();
$button = id(new PhabricatorActionView())
->setIcon('fa-asterisk')
->setName(pht('Clone Task'))
->setHref(urisprintf('/maniphest/task/clone/%s/', $phid));
$actions = $event->getValue('actions');
$actions[] = $button;
$event->setValue('actions', $actions);
}
}

File Metadata

Mime Type
text/x-php
Expires
Jan 19 2025, 20:46 (6 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1128585
Default Alt Text
DeepcloneUIEventListener.php (1 KB)

Event Timeline