-
Notifications
You must be signed in to change notification settings - Fork 1
/
Plugin.php
137 lines (118 loc) · 5.82 KB
/
Plugin.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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?php
namespace EditRegistration;
use DateTime;
use MapasCulturais\i;
use MapasCulturais\App;
class Plugin extends \MapasCulturais\Plugin {
public function _init () {
$app = App::i();
$app->hook('view.partial(singles/opportunity-evaluations--committee):after', function($template){
$data = [];
$this->enqueueScript('app', 'editRegistration', 'js/editRegistration.js');
$this->part('singles/edit-registration-opportunity-evaluations', ['template' => $template]);
});
$app->hook('view.partial(singles/registration-single--header):after', function($template, $app){
$this->enqueueStyle('app', 'editRegistration', 'css/edtRegistrationStyle.css');
$this->enqueueScript('app', 'editRegistration', 'js/editRegistration.js');
$entity = $this->data['entity'];
$opportunity = $this->data['entity'];
$id = $this->data['entity']->id;
$this->part('singles/edit-registration-single--header', ['entity' => $entity, 'opportunity' => $opportunity, 'id' => $id]);
});
$app->hook('POST(registration.alterStatusRegistration)', function () use ($app) {
try {
//
$this->requireAuthentication();
$app->disableAccessControl();
$reg = $app->repo('Registration')->find($this->data['id']);
$reg->setStatusToDraft();//metodo para alterar o status para 0 (Rascunho)
$reg->save(true);
$app->enableAccessControl();
$app->redirect($reg->editUrl);
} catch (\Exception $e) {
dump($e);
}
});
// ADICIONANDO MODAL DE CAMPOS OBRIGATÓRIOS
$app->hook('view.partial(singles/registration-edit--fields):after', function() use($app){
$this->part('modals/info-field--required');
});
$app->hook('template(registration.view.pdf-report-btn):before', function() use($app){
$day = new DateTime('now');
$cantEdit = false;
/** CASO A DATA DE HOJE FOR MENOR OU IGUAL A DATA DO FIM DA INSCRIÇÃO */
if($this->data['entity']->opportunity->select_edit_registration == '1' && ($day <= $this->data['entity']->opportunity->registrationTo)) {
$cantEdit = true;
}
if($cantEdit)
$this->part('singles/edit-registration-button-edition');
});
/**
* Modal para editar inscrição na página do comprovante
*/
$app->hook('template(registration.view.modal-edit-registration-hook):before', function () use ($app) {
$infoModal = [
'title' => 'Você editará sua inscrição.',
'subTitle' => 'Todas as alterações feitas serão automaticamente salvas.',
'body' => 'Ao confirmar essa ação, <strong>você irá alterar uma inscrição já enviada.</strong> Você conseguirá editar novamente os dados desta inscrição se fizer isso durante o período de incrições.',
'buttonConfirm' => 'Confirmar'
];
$this->part('modals/open-modal-confirm-edit-registration', ["id" => $this->data['entity']->id, "infoModal" => $infoModal, "entity" => $this->data['entity']]);
});
/**
* Adicionando modal para editar inscrição na página da oportunidade
*/
$app->hook('template(opportunity.single.modal-edit-registration):before', function($registration){
$infoModal = [
'title' => 'Você editará sua inscrição.',
'subTitle' => 'Todas as alterações feitas serão automaticamente salvas.',
'body' => 'Ao confirmar essa ação, <strong>você irá alterar uma inscrição já enviada.</strong> Você conseguirá editar novamente os dados desta inscrição se fizer isso durante o período de incrições.',
'buttonConfirm' => 'Confirmar'
];
$this->part('modals/open-modal-confirm-edit-registration', ["id" => null, "infoModal" => $infoModal, "entity" => $registration, "modalid" => $registration->id]);
});
/**
* Hook para na tela de projetos ser possivel editar inscrição.
*/
$app->hook('view.partial(singles/opportunity-registrations--form).params', function (&$__data, &$__template) use ($app){
$url_atual = $app->view->controller->id;
$this->enqueueStyle('app', 'editRegistration', 'css/edtRegistrationStyle.css');
$this->enqueueScript('app', 'editRegistration', 'js/editRegistration.js');
if($url_atual == "project"){
$__template = 'singles/project-form-edit-registration';
}
return;
});
}
function register () {
$this->registerOpportunityMetadata('select_edit_registration', [
'label' => i::__('Selecione'),
'type' => 'select',
'options' => (object)[
'0' => i::__('Não'),
'1' => i::__('Sim'),
]
]);
}
/**
* Metodo para verificar a data final da inscrição
* Compara de é maior que a data e hora atual para habilitar
* a div de inclusao de avaliadores
*
* @param [DateTime] $entity->registrationTo
* @return void
*/
static public function getEndDateopportunity($entity) {
$hoje = new DateTime('now');
$canEdit = false;
if($hoje <= $entity) {
$canEdit = true;
}
return $canEdit;
}
public function publishAssetsEditRegistrarion() {
$app = App::i();
$app->view->enqueueStyle('app', 'editRegistration', 'css/edtRegistrationStyle.css');
$app->view->enqueueScript('app', 'editRegistration', 'js/editRegistration.js');
}
}