first commit
This commit is contained in:
607
inc/notificationtargetprojecttask.class.php
Normal file
607
inc/notificationtargetprojecttask.class.php
Normal file
@ -0,0 +1,607 @@
|
||||
<?php
|
||||
/**
|
||||
* ---------------------------------------------------------------------
|
||||
* GLPI - Gestionnaire Libre de Parc Informatique
|
||||
* Copyright (C) 2015-2020 Teclib' and contributors.
|
||||
*
|
||||
* http://glpi-project.org
|
||||
*
|
||||
* based on GLPI - Gestionnaire Libre de Parc Informatique
|
||||
* Copyright (C) 2003-2014 by the INDEPNET Development Team.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* LICENSE
|
||||
*
|
||||
* This file is part of GLPI.
|
||||
*
|
||||
* GLPI is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GLPI is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GLPI. If not, see <http://www.gnu.org/licenses/>.
|
||||
* ---------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
if (!defined('GLPI_ROOT')) {
|
||||
die("Sorry. You can't access this file directly");
|
||||
}
|
||||
|
||||
/**
|
||||
* NotificationTargetTicket Class
|
||||
*
|
||||
* @since 0.85
|
||||
**/
|
||||
class NotificationTargetProjectTask extends NotificationTarget {
|
||||
|
||||
|
||||
/**
|
||||
* Get events related to tickets
|
||||
*
|
||||
* @return array
|
||||
**/
|
||||
function getEvents() {
|
||||
|
||||
$events = ['new' => __('New project task'),
|
||||
'update' => __('Update of a project task'),
|
||||
'delete' => __('Deletion of a project task')];
|
||||
asort($events);
|
||||
return $events;
|
||||
}
|
||||
|
||||
|
||||
function addAdditionalTargets($event = '') {
|
||||
|
||||
$this->addTarget(Notification::TEAM_USER, __('Project team user'));
|
||||
$this->addTarget(Notification::TEAM_GROUP, __('Project team group'));
|
||||
$this->addTarget(Notification::TEAM_GROUP_SUPERVISOR, __('Manager of group of project team'));
|
||||
$this->addTarget(Notification::TEAM_GROUP_WITHOUT_SUPERVISOR,
|
||||
__("Group of project team except manager users"));
|
||||
$this->addTarget(Notification::TEAM_CONTACT, __('Contact of project team'));
|
||||
$this->addTarget(Notification::TEAM_SUPPLIER, __('Supplier of project team'));
|
||||
}
|
||||
|
||||
|
||||
function addSpecificTargets($data, $options) {
|
||||
|
||||
//Look for all targets whose type is Notification::ITEM_USER
|
||||
switch ($data['type']) {
|
||||
case Notification::USER_TYPE :
|
||||
|
||||
switch ($data['items_id']) {
|
||||
//Send to the users in project team
|
||||
case Notification::TEAM_USER :
|
||||
$this->addTeamUsers();
|
||||
break;
|
||||
|
||||
//Send to the groups in project team
|
||||
case Notification::TEAM_GROUP :
|
||||
$this->addTeamGroups(0);
|
||||
break;
|
||||
|
||||
//Send to the groups supervisors in project team
|
||||
case Notification::TEAM_GROUP_SUPERVISOR :
|
||||
$this->addTeamGroups(1);
|
||||
break;
|
||||
|
||||
//Send to the groups without supervisors in project team
|
||||
case Notification::TEAM_GROUP_WITHOUT_SUPERVISOR :
|
||||
$this->addTeamGroups(2);
|
||||
break;
|
||||
|
||||
//Send to the contacts in project team
|
||||
case Notification::TEAM_CONTACT :
|
||||
$this->addTeamContacts();
|
||||
break;
|
||||
|
||||
//Send to the suppliers in project team
|
||||
case Notification::TEAM_SUPPLIER :
|
||||
$this->addTeamSuppliers();
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add team users to the notified user list
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function addTeamUsers() {
|
||||
global $DB;
|
||||
|
||||
$iterator = $DB->request([
|
||||
'SELECT' => 'items_id',
|
||||
'FROM' => 'glpi_projecttaskteams',
|
||||
'WHERE' => [
|
||||
'itemtype' => 'User',
|
||||
'projecttasks_id' => $this->obj->fields['id']
|
||||
]
|
||||
]);
|
||||
|
||||
$user = new User;
|
||||
while ($data = $iterator->next()) {
|
||||
if ($user->getFromDB($data['items_id'])) {
|
||||
$this->addToRecipientsList(['language' => $user->getField('language'),
|
||||
'users_id' => $user->getField('id')]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add team groups to the notified user list
|
||||
*
|
||||
* @param integer $manager 0 all users, 1 only supervisors, 2 all users without supervisors
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function addTeamGroups($manager) {
|
||||
global $DB;
|
||||
|
||||
$iterator = $DB->request([
|
||||
'SELECT' => 'items_id',
|
||||
'FROM' => 'glpi_projecttaskteams',
|
||||
'WHERE' => [
|
||||
'itemtype' => 'Group',
|
||||
'projecttasks_id' => $this->obj->fields['id']
|
||||
]
|
||||
]);
|
||||
|
||||
while ($data = $iterator->next()) {
|
||||
$this->addForGroup($manager, $data['items_id']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add team contacts to the notified user list
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function addTeamContacts() {
|
||||
global $DB, $CFG_GLPI;
|
||||
|
||||
$iterator = $DB->request([
|
||||
'SELECT' => 'items_id',
|
||||
'FROM' => 'glpi_projecttaskteams',
|
||||
'WHERE' => [
|
||||
'itemtype' => 'Contact',
|
||||
'projecttasks_id' => $this->obj->fields['id']
|
||||
]
|
||||
]);
|
||||
|
||||
$contact = new Contact();
|
||||
while ($data = $iterator->next()) {
|
||||
if ($contact->getFromDB($data['items_id'])) {
|
||||
$this->addToRecipientsList(["email" => $contact->fields["email"],
|
||||
"name" => $contact->getName(),
|
||||
"language" => $CFG_GLPI["language"],
|
||||
'usertype' => NotificationTarget::ANONYMOUS_USER]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add team suppliers to the notified user list
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function addTeamSuppliers() {
|
||||
global $DB, $CFG_GLPI;
|
||||
|
||||
$iterator = $DB->request([
|
||||
'SELECT' => 'items_id',
|
||||
'FROM' => 'glpi_projecttaskteams',
|
||||
'WHERE' => [
|
||||
'itemtype' => 'Supplier',
|
||||
'projecttasks_id' => $this->obj->fields['id']
|
||||
]
|
||||
]);
|
||||
|
||||
$supplier = new Supplier();
|
||||
while ($data = $iterator->next()) {
|
||||
if ($supplier->getFromDB($data['items_id'])) {
|
||||
$this->addToRecipientsList(["email" => $supplier->fields["email"],
|
||||
"name" => $supplier->getName(),
|
||||
"language" => $CFG_GLPI["language"],
|
||||
'usertype' => NotificationTarget::ANONYMOUS_USER]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function addDataForTemplate($event, $options = []) {
|
||||
global $CFG_GLPI, $DB;
|
||||
|
||||
//----------- Reservation infos -------------- //
|
||||
$events = $this->getAllEvents();
|
||||
$item = $this->obj;
|
||||
|
||||
$this->data['##projecttask.action##']
|
||||
= $events[$event];
|
||||
$this->data['##projecttask.url##']
|
||||
= $this->formatURL($options['additionnaloption']['usertype'],
|
||||
"ProjectTask_".$item->getField("id"));
|
||||
$this->data["##projecttask.name##"]
|
||||
= $item->getField('name');
|
||||
$this->data["##projecttask.project##"]
|
||||
= Dropdown::getDropdownName('glpi_projects', $item->getField('projects_id'));
|
||||
$this->data["##projecttask.projecturl##"]
|
||||
= $this->formatURL($options['additionnaloption']['usertype'],
|
||||
"Project_".$item->getField("projects_id"));
|
||||
$this->data["##projecttask.description##"]
|
||||
= $item->getField('content');
|
||||
$this->data["##projecttask.comments##"]
|
||||
= $item->getField('comment');
|
||||
$this->data["##projecttask.creationdate##"]
|
||||
= Html::convDateTime($item->getField('date'));
|
||||
$this->data["##projecttask.lastupdatedate##"]
|
||||
= Html::convDateTime($item->getField('date_mod'));
|
||||
$this->data["##projecttask.percent##"]
|
||||
= Dropdown::getValueWithUnit($item->getField('percent_done'), "%");
|
||||
$this->data["##projecttask.planstartdate##"]
|
||||
= Html::convDateTime($item->getField('plan_start_date'));
|
||||
$this->data["##projecttask.planenddate##"]
|
||||
= Html::convDateTime($item->getField('plan_end_date'));
|
||||
$this->data["##projecttask.realstartdate##"]
|
||||
= Html::convDateTime($item->getField('real_start_date'));
|
||||
$this->data["##projecttask.realenddate##"]
|
||||
= Html::convDateTime($item->getField('real_end_date'));
|
||||
|
||||
$this->data["##projecttask.plannedduration##"]
|
||||
= Html::timestampToString($item->getField('planned_duration'), false);
|
||||
$this->data["##projecttask.effectiveduration##"]
|
||||
= Html::timestampToString($item->getField('effective_duration'), false);
|
||||
$ticket_duration
|
||||
= ProjectTask_Ticket::getTicketsTotalActionTime($item->getID());
|
||||
$this->data["##projecttask.ticketsduration##"]
|
||||
= Html::timestampToString($ticket_duration, false);
|
||||
$this->data["##projecttask.totalduration##"]
|
||||
= Html::timestampToString($ticket_duration+$item->getField('effective_duration'),
|
||||
false);
|
||||
|
||||
$entity = new Entity();
|
||||
$this->data["##projecttask.entity##"] = '';
|
||||
$this->data["##projecttask.shortentity##"] = '';
|
||||
if ($entity->getFromDB($this->getEntity())) {
|
||||
$this->data["##projecttask.entity##"] = $entity->getField('completename');
|
||||
$this->data["##projecttask.shortentity##"] = $entity->getField('name');
|
||||
}
|
||||
|
||||
$this->data["##projecttask.father##"] = '';
|
||||
if ($item->getField('projecttasks_id')) {
|
||||
$this->data["##projecttask.father##"]
|
||||
= Dropdown::getDropdownName('glpi_projecttasks',
|
||||
$item->getField('projecttasks_id'));
|
||||
}
|
||||
|
||||
$this->data["##projecttask.state##"] = '';
|
||||
if ($item->getField('projectstates_id')) {
|
||||
$this->data["##projecttask.state##"]
|
||||
= Dropdown::getDropdownName('glpi_projectstates',
|
||||
$item->getField('projectstates_id'));
|
||||
}
|
||||
|
||||
$this->data["##projecttask.type##"] = '';
|
||||
if ($item->getField('projecttasktypes_id')) {
|
||||
$this->data["##projecttask.type##"]
|
||||
= Dropdown::getDropdownName('glpi_projecttasktypes',
|
||||
$item->getField('projecttasktypes_id'));
|
||||
}
|
||||
|
||||
$this->data["##projecttask.createbyuser##"] = '';
|
||||
if ($item->getField('users_id')) {
|
||||
$user_tmp = new User();
|
||||
$user_tmp->getFromDB($item->getField('users_id'));
|
||||
$this->data["##projecttask.createbyuser##"] = $user_tmp->getName();
|
||||
}
|
||||
|
||||
// Team infos
|
||||
$restrict = ['projecttasks_id' => $item->getField('id')];
|
||||
$order = ['date DESC', 'id ASC'];
|
||||
$items = getAllDataFromTable('glpi_projecttaskteams', $restrict);
|
||||
|
||||
$this->data['teammembers'] = [];
|
||||
if (count($items)) {
|
||||
foreach ($items as $data) {
|
||||
if ($item2 = getItemForItemtype($data['itemtype'])) {
|
||||
if ($item2->getFromDB($data['items_id'])) {
|
||||
$tmp = [];
|
||||
$tmp['##teammember.itemtype##'] = $item2->getTypeName();
|
||||
$tmp['##teammember.name##'] = $item2->getName();
|
||||
$this->data['teammembers'][] = $tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->data['##projecttask.numberofteammembers##'] = count($this->data['teammembers']);
|
||||
|
||||
// Task infos
|
||||
$tasks = getAllDataFromTable(
|
||||
'glpi_projecttasks', [
|
||||
'WHERE' => $restrict,
|
||||
'ORDER' => $order
|
||||
]
|
||||
);
|
||||
$this->data['tasks'] = [];
|
||||
foreach ($tasks as $task) {
|
||||
$tmp = [];
|
||||
$tmp['##task.creationdate##'] = Html::convDateTime($task['date']);
|
||||
$tmp['##task.lastupdatedate##'] = Html::convDateTime($task['date_mod']);
|
||||
$tmp['##task.name##'] = $task['name'];
|
||||
$tmp['##task.description##'] = $task['content'];
|
||||
$tmp['##task.comments##'] = $task['comment'];
|
||||
|
||||
$tmp['##task.state##'] = Dropdown::getDropdownName('glpi_projectstates',
|
||||
$task['projectstates_id']);
|
||||
$tmp['##task.type##'] = Dropdown::getDropdownName('glpi_projecttasktypes',
|
||||
$task['projecttasktypes_id']);
|
||||
$tmp['##task.percent##'] = Dropdown::getValueWithUnit($task['percent_done'], "%");
|
||||
|
||||
$this->data["##task.planstartdate##"] = '';
|
||||
$this->data["##task.planenddate##"] = '';
|
||||
$this->data["##task.realstartdate##"] = '';
|
||||
$this->data["##task.realenddate##"] = '';
|
||||
if (!is_null($task['plan_start_date'])) {
|
||||
$tmp['##task.planstartdate##'] = Html::convDateTime($task['plan_start_date']);
|
||||
}
|
||||
if (!is_null($task['plan_end_date'])) {
|
||||
$tmp['##task.planenddate##'] = Html::convDateTime($task['plan_end_date']);
|
||||
}
|
||||
if (!is_null($task['real_start_date'])) {
|
||||
$tmp['##task.realstartdate##'] = Html::convDateTime($task['real_start_date']);
|
||||
}
|
||||
if (!is_null($task['real_end_date'])) {
|
||||
$tmp['##task.realenddate##'] = Html::convDateTime($task['real_end_date']);
|
||||
}
|
||||
|
||||
$this->data['tasks'][] = $tmp;
|
||||
}
|
||||
|
||||
$this->data["##projecttask.numberoftasks##"] = count($this->data['tasks']);
|
||||
|
||||
// History infos
|
||||
|
||||
$this->data['log'] = [];
|
||||
// Use list_limit_max or load the full history ?
|
||||
foreach (Log::getHistoryData($item, 0, $CFG_GLPI['list_limit_max']) as $data) {
|
||||
$tmp = [];
|
||||
$tmp["##projecttask.log.date##"] = $data['date_mod'];
|
||||
$tmp["##projecttask.log.user##"] = $data['user_name'];
|
||||
$tmp["##projecttask.log.field##"] = $data['field'];
|
||||
$tmp["##projecttask.log.content##"] = $data['change'];
|
||||
$this->data['log'][] = $tmp;
|
||||
}
|
||||
|
||||
$this->data["##projecttask.numberoflogs##"] = count($this->data['log']);
|
||||
|
||||
// Tickets infos
|
||||
$tickets = getAllDataFromTable('glpi_projecttasks_tickets', $restrict);
|
||||
|
||||
$this->data['tickets'] = [];
|
||||
if (count($tickets)) {
|
||||
$ticket = new Ticket();
|
||||
foreach ($tickets as $data) {
|
||||
if ($ticket->getFromDB($data['tickets_id'])) {
|
||||
$tmp = [];
|
||||
|
||||
$tmp['##ticket.id##'] = $data['tickets_id'];
|
||||
$tmp['##ticket.date##'] = $ticket->getField('date');
|
||||
$tmp['##ticket.title##']
|
||||
= $ticket->getField('name');
|
||||
$tmp['##ticket.url##'] = $this->formatURL($options['additionnaloption']['usertype'],
|
||||
"Ticket_".$data['tickets_id']);
|
||||
$tmp['##ticket.content##']
|
||||
= $ticket->getField('content');
|
||||
|
||||
$this->data['tickets'][] = $tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->data['##projecttask.numberoftickets##'] = count($this->data['tickets']);
|
||||
|
||||
// Document
|
||||
$iterator = $DB->request([
|
||||
'SELECT' => 'glpi_documents.*',
|
||||
'FROM' => 'glpi_documents',
|
||||
'LEFT JOIN' => [
|
||||
'glpi_documents_items' => [
|
||||
'ON' => [
|
||||
'glpi_documents_items' => 'documents_id',
|
||||
'glpi_documents' => 'id'
|
||||
]
|
||||
]
|
||||
],
|
||||
'WHERE' => [
|
||||
'glpi_documents_items.itemtype' => 'ProjectTask',
|
||||
'glpi_documents_items.items_id' => $item->fields['id']
|
||||
]
|
||||
]);
|
||||
|
||||
$this->data["documents"] = [];
|
||||
while ($data = $iterator->next()) {
|
||||
$tmp = [];
|
||||
$tmp['##document.id##'] = $data['id'];
|
||||
$tmp['##document.name##'] = $data['name'];
|
||||
$tmp['##document.weblink##']
|
||||
= $data['link'];
|
||||
|
||||
$tmp['##document.url##'] = $this->formatURL($options['additionnaloption']['usertype'],
|
||||
"document_".$data['id']);
|
||||
$downloadurl = "/front/document.send.php?docid=".$data['id'];
|
||||
|
||||
$tmp['##document.downloadurl##']
|
||||
= $this->formatURL($options['additionnaloption']['usertype'],
|
||||
$downloadurl);
|
||||
$tmp['##document.heading##']
|
||||
= Dropdown::getDropdownName('glpi_documentcategories',
|
||||
$data['documentcategories_id']);
|
||||
|
||||
$tmp['##document.filename##']
|
||||
= $data['filename'];
|
||||
|
||||
$this->data['documents'][] = $tmp;
|
||||
}
|
||||
|
||||
$this->data["##projecttask.urldocument##"]
|
||||
= $this->formatURL($options['additionnaloption']['usertype'],
|
||||
"ProjectTask_".$item->getField("id").'_Document_Item$1');
|
||||
|
||||
$this->data["##projecttask.numberofdocuments##"]
|
||||
= count($this->data['documents']);
|
||||
|
||||
$this->getTags();
|
||||
foreach ($this->tag_descriptions[NotificationTarget::TAG_LANGUAGE] as $tag => $values) {
|
||||
if (!isset($this->data[$tag])) {
|
||||
$this->data[$tag] = $values['label'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function getTags() {
|
||||
|
||||
$tags_all = ['projecttask.url' => __('URL'),
|
||||
'projecttask.action' => _n('Event', 'Events', 1),
|
||||
'projecttask.name' => __('Name'),
|
||||
'projecttask.project' => Project::getTypeName(1),
|
||||
'projecttask.description' => __('Description'),
|
||||
'projecttask.comments' => __('Comments'),
|
||||
'projecttask.creationdate' => __('Creation date'),
|
||||
'projecttask.lastupdatedate' => __('Last update'),
|
||||
'projecttask.planstartdate' => __('Planned start date'),
|
||||
'projecttask.planenddate' => __('Planned end date'),
|
||||
'projecttask.realstartdate' => __('Real start date'),
|
||||
'projecttask.realenddate' => __('Real end date'),
|
||||
'projecttask.father' => __('Father'),
|
||||
'projecttask.createbyuser' => __('Writer'),
|
||||
'projecttask.type' => _n('Type', 'Types', 1),
|
||||
'projecttask.state' => _x('item', 'State'),
|
||||
'projecttask.percent' => __('Percent done'),
|
||||
'projecttask.plannedduration' => __('Planned duration'),
|
||||
'projecttask.effectiveduration' => __('Effective duration'),
|
||||
'projecttask.ticketsduration' => __('Tickets duration'),
|
||||
'projecttask.totalduration' => __('Total duration'),
|
||||
'projecttask.numberoftasks' => _x('quantity', 'Number of tasks'),
|
||||
'projecttask.numberofteammembers' => _x('quantity', 'Number of team members'),
|
||||
'task.date' => __('Opening date'),
|
||||
'task.name' => __('Name'),
|
||||
'task.description' => __('Description'),
|
||||
'task.comments' => __('Comments'),
|
||||
'task.creationdate' => __('Creation date'),
|
||||
'task.lastupdatedate' => __('Last update'),
|
||||
'task.type' => _n('Type', 'Types', 1),
|
||||
'task.state' => _x('item', 'State'),
|
||||
'task.percent' => __('Percent done'),
|
||||
'task.planstartdate' => __('Planned start date'),
|
||||
'task.planenddate' => __('Planned end date'),
|
||||
'task.realstartdate' => __('Real start date'),
|
||||
'task.realenddate' => __('Real end date'),
|
||||
'projecttask.numberoflogs' => sprintf(__('%1$s: %2$s'),
|
||||
__('Historical'),
|
||||
_x('quantity',
|
||||
'Number of items')),
|
||||
'projecttask.log.date' => sprintf(__('%1$s: %2$s'),
|
||||
__('Historical'), _n('Date', 'Dates', 1)),
|
||||
'projecttask.log.user' => sprintf(__('%1$s: %2$s'),
|
||||
__('Historical'), User::getTypeName(1)),
|
||||
'projecttask.log.field' => sprintf(__('%1$s: %2$s'),
|
||||
__('Historical'), _n('Field', 'Fields', 1)),
|
||||
'projecttask.log.content' => sprintf(__('%1$s: %2$s'),
|
||||
__('Historical'),
|
||||
_x('name', 'Update')),
|
||||
'projecttask.numberoftickets' => _x('quantity', 'Number of tickets'),
|
||||
'projecttask.numberofdocuments' => _x('quantity', 'Number of documents'),
|
||||
];
|
||||
|
||||
foreach ($tags_all as $tag => $label) {
|
||||
$this->addTagToList(['tag' => $tag,
|
||||
'label' => $label,
|
||||
'value' => true]);
|
||||
}
|
||||
|
||||
//Tags without lang
|
||||
$tags = ['ticket.id' => sprintf(__('%1$s: %2$s'), Ticket::getTypeName(1), __('ID')),
|
||||
'ticket.date' => sprintf(__('%1$s: %2$s'), Ticket::getTypeName(1), _n('Date', 'Dates', 1)),
|
||||
'ticket.url' => sprintf(__('%1$s: %2$s'), Ticket::getTypeName(1), ('URL')),
|
||||
'ticket.title' => sprintf(__('%1$s: %2$s'), Ticket::getTypeName(1),
|
||||
__('Title')),
|
||||
'ticket.content' => sprintf(__('%1$s: %2$s'), Ticket::getTypeName(1),
|
||||
__('Description')),
|
||||
'projecttask.projecturl' => sprintf(__('%1$s: %2$s'), Project::getTypeName(1), __('URL')),
|
||||
'document.url' => sprintf(__('%1$s: %2$s'), Document::getTypeName(1),
|
||||
__('URL')),
|
||||
'document.downloadurl' => sprintf(__('%1$s: %2$s'), Document::getTypeName(1),
|
||||
__('Download URL')),
|
||||
'document.heading' => sprintf(__('%1$s: %2$s'), Document::getTypeName(1),
|
||||
__('Heading')),
|
||||
'document.id' => sprintf(__('%1$s: %2$s'), Document::getTypeName(1), __('ID')),
|
||||
'document.filename' => sprintf(__('%1$s: %2$s'), Document::getTypeName(1),
|
||||
__('File')),
|
||||
'document.weblink' => sprintf(__('%1$s: %2$s'), Document::getTypeName(1),
|
||||
__('Web link')),
|
||||
'document.name' => sprintf(__('%1$s: %2$s'), Document::getTypeName(1),
|
||||
__('Name')),
|
||||
'projecttask.urldocument' => sprintf(__('%1$s: %2$s'),
|
||||
Document::getTypeName(Session::getPluralNumber()), __('URL')),
|
||||
'projecttask.entity' => sprintf(__('%1$s (%2$s)'),
|
||||
Entity::getTypeName(1), __('Complete name')),
|
||||
'projecttask.shortentity' => sprintf(__('%1$s (%2$s)'),
|
||||
Entity::getTypeName(1), __('Name')),
|
||||
'teammember.name' => sprintf(__('%1$s: %2$s'),
|
||||
_n('Team member', 'Team members', 1),
|
||||
__('Name')),
|
||||
'teammember.itemtype' => sprintf(__('%1$s: %2$s'),
|
||||
_n('Team member', 'Team members', 1),
|
||||
_n('Type', 'Types', 1))
|
||||
];
|
||||
|
||||
foreach ($tags as $tag => $label) {
|
||||
$this->addTagToList(['tag' => $tag,
|
||||
'label' => $label,
|
||||
'value' => true,
|
||||
'lang' => false]);
|
||||
}
|
||||
|
||||
//Tags with just lang
|
||||
$tags = ['projecttask.entity' => Entity::getTypeName(1),
|
||||
'projecttask.log' => __('Historical'),
|
||||
'projecttask.tasks' => _n('Task', 'Tasks', Session::getPluralNumber()),
|
||||
'projecttask.team' => ProjectTeam::getTypeName(1),
|
||||
'projecttask.tickets' => _n('Ticket', 'Tickets', Session::getPluralNumber())];
|
||||
|
||||
foreach ($tags as $tag => $label) {
|
||||
$this->addTagToList(['tag' => $tag,
|
||||
'label' => $label,
|
||||
'value' => false,
|
||||
'lang' => true]);
|
||||
}
|
||||
|
||||
//Foreach global tags
|
||||
$tags = ['log' => __('Historical'),
|
||||
'tasks' => _n('Task', 'Tasks', Session::getPluralNumber()),
|
||||
'tickets' => _n('Ticket', 'Tickets', Session::getPluralNumber()),
|
||||
'teammembers' => _n('Team member', 'Team members', Session::getPluralNumber())];
|
||||
|
||||
foreach ($tags as $tag => $label) {
|
||||
$this->addTagToList(['tag' => $tag,
|
||||
'label' => $label,
|
||||
'value' => false,
|
||||
'foreach' => true]);
|
||||
}
|
||||
asort($this->tag_descriptions);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user