/
UnapproveCalendarEventRequest.php
98 lines (79 loc) · 2.56 KB
/
UnapproveCalendarEventRequest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
namespace Concrete\Core\Workflow\Request;
use Concrete\Core\Permission\Key\Key;
use Concrete\Core\Workflow\Description;
use Concrete\Core\Workflow\Progress\Progress;
use Concrete\Core\Workflow\Progress\Response;
use Concrete\Core\Workflow\Workflow;
use Concrete\Core\Workflow\Progress\CalendarEventProgress;
use HtmlObject\Element;
use Concrete\Core\Calendar\Event\EventService;
class UnapproveCalendarEventRequest extends CalendarEventRequest
{
public function __construct()
{
$pk = Key::getByHandle('approve_calendar_event');
parent::__construct($pk);
}
public function trigger()
{
$event = $this->getRequestedEventVersionObject()->getEvent();
$calendar = $event->getCalendar();
$pk = $this->getWorkflowRequestPermissionKeyObject();
$pk->setPermissionObject($calendar);
return parent::triggerRequest($pk);
}
public function getWorkflowRequestDescriptionObject()
{
$d = new Description();
$event = $this->getRequestedEventVersionObject()->getEvent();
if (is_object($event)) {
// Completely new page.
$d->setEmailDescription(t("Event unapproval requested for event \"%s\".",
$event->getName()));
$d->setDescription(t("Event: %s", $event->getName()));
$d->setInContextDescription(t("Event %s submitted for unapproval.", $event->getName()));
$d->setShortStatus(t("Event Unapproval"));
}
return $d;
}
public function getWorkflowRequestStyleClass()
{
return 'info';
}
public function getWorkflowRequestApproveButtonClass()
{
return '';
}
public function getWorkflowRequestApproveButtonInnerButtonRightHTML()
{
return '<i class="fa fa-thumbs-o-up"></i>';
}
public function getWorkflowRequestApproveButtonText()
{
return t('Unapprove');
}
public function getRequestIconElement()
{
$span = new Element('i');
$span->addClass('fa fa-file');
return $span;
}
public function addWorkflowProgress(Workflow $wf)
{
$pwp = CalendarEventProgress::add($wf, $this);
$r = $pwp->start();
$pwp->setWorkflowProgressResponseObject($r);
return $pwp;
}
public function approve(Progress $wp)
{
$event = $this->getRequestedEventVersionObject()->getEvent();
$service = \Core::make(EventService::class);
if ($event) {
$service->unapprove($event);
}
$wpr = new Response();
return $wpr;
}
}