Justification UI changes BT#16385

pull/3051/head
Julio 6 years ago
parent 4988c3d691
commit f33b7c62e7
  1. 82
      main/auth/profile.php
  2. 2
      main/inc/lib/api.lib.php
  3. 2
      main/inc/lib/formvalidator/FormValidator.class.php
  4. 3
      plugin/justification/add.php
  5. 27
      plugin/justification/justification_by_user.php
  6. 2
      plugin/justification/lang/english.php
  7. 14
      plugin/justification/view/justification_user_list.tpl

@ -750,17 +750,97 @@ if ($allowJustification) {
Display::addFlash(Display::return_message($plugin->get_lang('JustificationSaved')));
}
}
header('Location: '.api_get_self());
exit;
}
$userJustifications = $plugin->getUserJustificationList(api_get_user_id());
$userJustificationList = '';
$action = isset($_REQUEST['a']) ? $_REQUEST['a'] : '';
$justificationContent = '';
switch ($action) {
case 'edit_justification':
$justificationId = isset($_REQUEST['justification_id']) ? (int) $_REQUEST['justification_id'] : '';
$userJustification = $plugin->getUserJustification($justificationId);
$justification = $plugin->getJustification($userJustification['justification_document_id']);
if ($justification['date_manual_on'] == 0) {
api_not_allowed(true);
}
$formEdit = new FormValidator('edit', 'post', api_get_self().'?a=edit_justification&justification_id='.$justificationId);
$formEdit->addHeader($justification['name']);
$element = $formEdit->addDatePicker('date_validity', $plugin->get_lang('ValidityDate'));
$element->setValue($userJustification['date_validity']);
$formEdit->addButtonUpdate(get_lang('Update'));
$formEdit->setDefaults($userJustification);
$justificationContent = $formEdit->returnForm();
if ($formEdit->validate()) {
$values = $formEdit->getSubmitValues();
$date = Database::escape_string($values['date_validity']);
$sql = "UPDATE justification_document_rel_users SET date_validity = '$date'
WHERE id = $justificationId AND user_id = ".$user_data['id'];
Database::query($sql);
Display::addFlash(Display::return_message(get_lang('Updated')));
header('Location: '.api_get_self());
exit;
}
break;
case 'delete_justification':
$justificationId = isset($_REQUEST['justification_id']) ? (int) $_REQUEST['justification_id'] : '';
$userJustification = $plugin->getUserJustification($justificationId);
if ($userJustification && $userJustification['user_id'] == api_get_user_id()) {
api_remove_uploaded_file_by_id('justification', $justificationId, $userJustification['file_path']);
$sql = "DELETE FROM justification_document_rel_users
WHERE id = $justificationId AND user_id = ".$user_data['id'];
Database::query($sql);
Display::addFlash(Display::return_message(get_lang('Deleted')));
}
header('Location: '.api_get_self());
exit;
break;
}
if (!empty($userJustifications)) {
$userJustificationList .= Display::page_subheader3($plugin->get_lang('MyJustifications'));
$table = new HTML_Table(['class' => 'data_table']);
$column = 0;
$row = 0;
$headers = [
get_lang('Name'),
get_lang('File'),
$plugin->get_lang('ValidityDate'),
get_lang('Actions'),
];
foreach ($headers as $header) {
$table->setHeaderContents($row, $column, $header);
$column++;
}
$row = 1;
foreach ($userJustifications as $userJustification) {
$justification = $plugin->getJustification($userJustification['justification_document_id']);
$url = api_get_uploaded_web_url('justification', $userJustification['id'], $userJustification['file_path']);
$link = Display::url($userJustification['file_path'], $url);
$userJustificationList .= $link.'<br/>';
$col = 0;
$table->setCellContents($row, $col++, $justification['name']);
$table->setCellContents($row, $col++, $link);
$date = $userJustification['date_validity'];
if ($userJustification['date_validity'] < api_get_local_time()) {
$date = Display::label($userJustification['date_validity'], 'warning');
}
$table->setCellContents($row, $col++, $date);
$actions = '';
if ($justification['date_manual_on'] == 1) {
$actions .= Display::url(get_lang('Edit'), api_get_self().'?a=edit_justification&justification_id='.$userJustification['id'], ['class' => 'btn btn-primary']);
}
$actions .= '&nbsp;'.Display::url(get_lang('Delete'), api_get_self().'?a=delete_justification&justification_id='.$userJustification['id'], ['class' => 'btn btn-danger']);
$table->setCellContents($row, $col++, $actions);
$row++;
}
$userJustificationList .= $justificationContent.$table->toHtml();
}
$justification = $formValidator->returnForm().$userJustificationList;

@ -9568,7 +9568,7 @@ function api_set_noreply_and_from_address_to_mailer(PHPMailer $mailer, array $se
isset($platformEmail['SMTP_UNIQUE_SENDER']) &&
$platformEmail['SMTP_UNIQUE_SENDER']
) {
$senderName = $notification->getDefaultPlatformSenderName();
$senderName = $notification->getDefaultPlatformSenderName();
$senderEmail = $notification->getDefaultPlatformSenderEmail();
if (PHPMailer::ValidateAddress($senderEmail)) {

@ -237,7 +237,7 @@ EOT;
* @param string $label
* @param array $attributes
*
* @return mixed
* @return DatePicker
*/
public function addDatePicker($name, $label, $attributes = [])
{

@ -21,11 +21,12 @@ $form->addButtonSave(get_lang('Save'));
if ($form->validate()) {
$values = $form->getSubmitValues();
$dateManual = isset($values['date_manual_on']) ? 1 : 0;
$params = [
'name' => $values['name'],
'code' => $values['code'],
'validity_duration' => $values['validity_duration'],
'date_manual_on' => (int) $values['date_manual_on'],
'date_manual_on' => $dateManual,
'comment' => $values['comment'],
];
Database::insert('justification_document', $params);

@ -35,8 +35,10 @@ if ($userId) {
$list = $plugin->getUserJustificationList($userId);
if ($list) {
foreach ($list as &$item) {
if ($item['date_validity'] < api_get_local_time()) {
$item['date_validity'] = Display::label($item['date_validity'], 'warning');
}
$item['justification'] = $plugin->getJustification($item['justification_document_id']);
$item['file_path'] = Display::url(
$item['file_path'],
api_get_uploaded_web_url('justification', $item['id'], $item['file_path']),
@ -50,7 +52,6 @@ if ($userId) {
$tpl->assign('list', $list);
}
$tpl->assign('user_id', $userId);
$content = $tpl->fetch('justification/view/justification_user_list.tpl');
@ -60,6 +61,27 @@ $action = isset($_REQUEST['a']) ? $_REQUEST['a'] : '';
$id = isset($_REQUEST['id']) ? (int) $_REQUEST['id'] : 0;
switch ($action) {
case 'edit':
$userJustification = $plugin->getUserJustification($id);
$userInfo = api_get_user_info($userJustification['user_id']);
$form = new FormValidator('edit', 'post', api_get_self().'?a=edit&id='.$id.'&user_id='.$userId);
$form->addHeader($userInfo['complete_name']);
$element = $form->addDatePicker('date_validity', $plugin->get_lang('ValidityDate'));
$element->setValue($userJustification['date_validity']);
$form->addButtonUpdate(get_lang('Update'));
$form->setDefaults($userJustification);
$content = $form->returnForm();
if ($form->validate()) {
$values = $form->getSubmitValues();
$date = Database::escape_string($values['date_validity']);
$sql = "UPDATE justification_document_rel_users SET date_validity = '$date' WHERE id = $id";
Database::query($sql);
Display::addFlash(Display::return_message(get_lang('Updated')));
header('Location: '.api_get_self().'?user_id='.$userId);
exit;
}
break;
case 'delete':
$userJustification = $plugin->getUserJustification($id);
if ($userJustification) {
@ -87,6 +109,5 @@ $tpl->assign(
Display::toolbarAction('toolbar', [$actionLinks])
);
$tpl->assign('content', $content);
$tpl->display_one_col_template();

@ -9,7 +9,7 @@ $strings['ValidityDuration'] = "Validity Duration";
$strings['DateManualOn'] = "Date Manual On";
$strings['JustificationCode'] = "Justification code";
$strings['NoJustificationFound'] = "No justification found";
$strings['DateValidity'] = "Date validity";
$strings['ValidityDate'] = "Validity date";
$strings['Justification'] = "Justification";
$strings['MyJustifications'] = "My justifications";

@ -8,21 +8,25 @@
</div>
<table class="table">
<tr>
<th>{{ 'Justification'| get_plugin_lang('Justification') }}</th>
<th>{{ 'File'| get_lang }}</th>
<th>{{ 'Date'| get_lang('Date') }}</th>
<th>{{ 'Actions'| get_lang }}</th>
</tr>
{% for item in list %}
<tr>
<td >{{ item.justification.name }} </td>
<td >{{ item.file_path }} </td>
<td >{{ item.date_validity }} </td>
<td >
{{ item.date_validity }}
</td>
<td>
<a href="{{_p.web_plugin }}justification/justification_by_user.php?a=delete&user_id={{ user_id }}&id={{ item.id }}" class="btn btn-danger">
<a href="{{_p.web_plugin }}justification/justification_by_user.php?a=edit&user_id={{ user_id }}&id={{ item.id }}"
class="btn btn-primary">
{{'Edit' | get_lang}}
</a>
<a href="{{_p.web_plugin }}justification/justification_by_user.php?a=delete&user_id={{ user_id }}&id={{ item.id }}"
class="btn btn-danger">
{{'Delete' | get_lang}}
</a>
</td>

Loading…
Cancel
Save