Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop Conflicts: htdocs/ticketsup/class/actions_ticketsup.class.php
This commit is contained in:
commit
70490e2b4b
@ -34,10 +34,10 @@ if (file_exists("../../main.inc.php")) {
|
||||
|
||||
// Libraries
|
||||
require_once DOL_DOCUMENT_ROOT . "/core/lib/admin.lib.php";
|
||||
require_once "../class/ticketsup.class.php";
|
||||
require_once "../lib/ticketsup.lib.php";
|
||||
require_once DOL_DOCUMENT_ROOT."/ticketsup/class/ticketsup.class.php";
|
||||
require_once DOL_DOCUMENT_ROOT."/core/lib/ticketsup.lib.php";
|
||||
// Translations
|
||||
$langs->load("ticketsup@ticketsup");
|
||||
$langs->load("ticketsup");
|
||||
|
||||
// Access control
|
||||
if (!$user->admin) {
|
||||
|
||||
@ -29,7 +29,8 @@ if (file_exists("../../main.inc.php")) {
|
||||
} else {
|
||||
die("Include of main fails");
|
||||
}
|
||||
require_once '../lib/ticketsup.lib.php';
|
||||
// Libraries
|
||||
require_once DOL_DOCUMENT_ROOT."/core/lib/ticketsup.lib.php";
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php';
|
||||
|
||||
|
||||
@ -859,7 +859,7 @@ class FormMail extends Form
|
||||
if (! GETPOST('modelselected','alpha') || GETPOST('modelmailselected') != '-1')
|
||||
{
|
||||
if ($arraydefaultmessage && $arraydefaultmessage->content) {
|
||||
$defaultmessage = $arraydefaultmessage['content'];
|
||||
$defaultmessage = $arraydefaultmessage->content;
|
||||
} elseif (! is_numeric($this->withbody)) {
|
||||
$defaultmessage = $this->withbody;
|
||||
}
|
||||
|
||||
@ -31,9 +31,11 @@ if (!class_exists('FormCompany')) {
|
||||
/**
|
||||
* Classe permettant la generation du formulaire d'un nouveau ticket.
|
||||
*
|
||||
* Utilisation: $formticketsup = new FormTicketsup($db)
|
||||
* $formticketsup->proprietes=1 ou chaine ou tableau de valeurs
|
||||
* $formticketsup->show_form() affiche le formulaire
|
||||
* @package Ticketsup
|
||||
|
||||
* \remarks Utilisation: $formticketsup = new FormTicketsup($db)
|
||||
* \remarks $formticketsup->proprietes=1 ou chaine ou tableau de valeurs
|
||||
* \remarks $formticketsup->show_form() affiche le formulaire
|
||||
*/
|
||||
class FormTicketsup
|
||||
{
|
||||
@ -72,6 +74,7 @@ class FormTicketsup
|
||||
public $withcancel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var array $substit Substitutions
|
||||
*/
|
||||
public $substit = array();
|
||||
@ -526,7 +529,7 @@ class FormTicketsup
|
||||
$filterarray = explode(',', $filtertype);
|
||||
}
|
||||
|
||||
$ticketstat->load_cache_categories_tickets();
|
||||
$ticketstat->loadCacheCategoriesTickets();
|
||||
|
||||
print '<select id="select' . $htmlname . '" class="flat select_ticketcategory" name="' . $htmlname . '">';
|
||||
if ($empty) {
|
||||
|
||||
@ -331,7 +331,7 @@ function project_admin_prepare_head()
|
||||
*/
|
||||
function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$taskrole, $projectsListId='', $addordertick=0, $projectidfortotallink=0)
|
||||
{
|
||||
global $user, $bc, $langs;
|
||||
global $user, $bc, $langs, $conf;
|
||||
global $projectstatic, $taskstatic;
|
||||
|
||||
$lastprojectid=0;
|
||||
@ -1298,11 +1298,11 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
|
||||
}
|
||||
|
||||
$tableCell ='<td align="center" class="hide'.$idw.($cssonholiday?' '.$cssonholiday:'').($cssweekend?' '.$cssweekend:'').'">';
|
||||
$placeholder='';
|
||||
if ($alreadyspent)
|
||||
{
|
||||
$tableCell.='<span class="timesheetalreadyrecorded" title="texttoreplace"><input type="text" class="center smallpadd" size="2" disabled id="timespent['.$inc.']['.$idw.']" name="task['.$lines[$i]->id.']['.$idw.']" value="'.$alreadyspent.'"></span>';
|
||||
//$placeholder=' placeholder="00:00"';
|
||||
$placeholder='';
|
||||
//$tableCell.='+';
|
||||
}
|
||||
$tableCell.='<input type="text" alt="'.($disabledtask?'':$alttitle).'" title="'.($disabledtask?'':$alttitle).'" '.($disabledtask?'disabled':$placeholder).' class="center smallpadd" size="2" id="timeadded['.$inc.']['.$idw.']" name="task['.$lines[$i]->id.']['.$idw.']" value="" cols="2" maxlength="5"';
|
||||
@ -1525,6 +1525,8 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
|
||||
print_liste_field_titre("Status","","","","",'align="right"',$sortfield,$sortorder);
|
||||
print "</tr>\n";
|
||||
|
||||
$total_plannedworkload=0;
|
||||
$total_declaredprogressworkload=0;
|
||||
while ($i < $num)
|
||||
{
|
||||
$objp = $db->fetch_object($resql);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) 2013-2016 Jean-François FERRY <hello@librethic.io>
|
||||
/*
|
||||
* Copyright (C) 2013-2018 Jean-François FERRY <hello@librethic.io>
|
||||
* 2016 Christophe Battarel <christophe@altairis.fr>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
@ -20,7 +20,13 @@
|
||||
/**
|
||||
* \file core/lib/ticketsup.lib.php
|
||||
* \ingroup ticketsup
|
||||
* \brief This file is an example module library
|
||||
* \brief This file is a library for TicketSup module
|
||||
*/
|
||||
|
||||
/**
|
||||
* Build tabs for admin page
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function ticketsupAdminPrepareHead()
|
||||
{
|
||||
@ -31,18 +37,14 @@ function ticketsupAdminPrepareHead()
|
||||
$h = 0;
|
||||
$head = array();
|
||||
|
||||
$head[$h][0] = dol_buildpath("/ticketsup/admin/admin_ticketsup.php", 1);
|
||||
$head[$h][0] = DOL_URL_ROOT.'/admin/admin_ticketsup.php';
|
||||
$head[$h][1] = $langs->trans("TicketSupSettings");
|
||||
$head[$h][2] = 'settings';
|
||||
$h++;
|
||||
$head[$h][0] = dol_buildpath("/ticketsup/admin/ticketsup_extrafields.php", 1);
|
||||
$head[$h][0] = DOL_URL_ROOT.'/admin/ticketsup_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFieldsTicketSup");
|
||||
$head[$h][2] = 'attributes';
|
||||
$h++;
|
||||
$head[$h][0] = dol_buildpath("/ticketsup/admin/about.php", 1);
|
||||
$head[$h][1] = $langs->trans("About");
|
||||
$head[$h][2] = 'about';
|
||||
$h++;
|
||||
|
||||
// Show more tabs from modules
|
||||
// Entries must be declared in modules descriptor with line
|
||||
@ -58,10 +60,10 @@ function ticketsupAdminPrepareHead()
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare head for ticket card
|
||||
*
|
||||
* @param Object $object Object Ticket
|
||||
* @return array Array of tabs
|
||||
* Build tabs for a Ticketsup object
|
||||
*
|
||||
* @param Ticketsup $object Object Ticket
|
||||
* @return array Array of tabs
|
||||
*/
|
||||
function ticketsup_prepare_head($object)
|
||||
{
|
||||
@ -69,21 +71,21 @@ function ticketsup_prepare_head($object)
|
||||
|
||||
$h = 0;
|
||||
$head = array();
|
||||
$head[$h][0] = dol_buildpath('/ticketsup/card.php', 1) . '?action=view&track_id=' . $object->track_id;
|
||||
$head[$h][0] = DOL_URL_ROOT.'/ticketsup/card.php?action=view&track_id=' . $object->track_id;
|
||||
$head[$h][1] = $langs->trans("Card");
|
||||
$head[$h][2] = 'tabTicketsup';
|
||||
$h++;
|
||||
|
||||
if (empty($user->socid)) {
|
||||
$head[$h][0] = dol_buildpath('/ticketsup/contacts.php', 1) . '?track_id=' . $object->track_id;
|
||||
$head[$h][0] = DOL_URL_ROOT.'/ticketsup/contacts.php?track_id=' . $object->track_id;
|
||||
$head[$h][1] = $langs->trans('Contacts');
|
||||
$head[$h][2] = 'tabTicketContacts';
|
||||
$h++;
|
||||
}
|
||||
|
||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'ticketsup');
|
||||
|
||||
|
||||
|
||||
|
||||
// Attached files
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
|
||||
$upload_dir = $conf->ticketsup->dir_output . "/" . $object->track_id;
|
||||
@ -99,15 +101,15 @@ function ticketsup_prepare_head($object)
|
||||
|
||||
|
||||
// History
|
||||
$head[$h][0] = dol_buildpath('/ticketsup/history.php', 1) . '?track_id=' . $object->track_id;
|
||||
$head[$h][0] = DOL_URL_ROOT.'/ticketsup/history.php?track_id=' . $object->track_id;
|
||||
$head[$h][1] = $langs->trans('TicketHistory');
|
||||
$head[$h][2] = 'tabTicketLogs';
|
||||
$h++;
|
||||
|
||||
|
||||
|
||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'ticketsup','remove');
|
||||
|
||||
|
||||
|
||||
return $head;
|
||||
}
|
||||
|
||||
|
||||
@ -1049,7 +1049,7 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
||||
{
|
||||
if (preg_match('/\.sql$/i',$file) && ! preg_match('/\.key\.sql$/i',$file) && substr($file,0,4) == 'llx_' && substr($file,0,4) != 'data')
|
||||
{
|
||||
$result=run_sql($dir.$file,1,'',1);
|
||||
$result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?0:1, '', 1);
|
||||
if ($result <= 0) $error++;
|
||||
}
|
||||
}
|
||||
@ -1067,7 +1067,7 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
||||
{
|
||||
if (preg_match('/\.key\.sql$/i',$file) && substr($file,0,4) == 'llx_' && substr($file,0,4) != 'data')
|
||||
{
|
||||
$result=run_sql($dir.$file,1,'',1);
|
||||
$result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?0:1, '', 1);
|
||||
if ($result <= 0) $error++;
|
||||
}
|
||||
}
|
||||
@ -1085,7 +1085,7 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
||||
{
|
||||
if (preg_match('/\.sql$/i',$file) && ! preg_match('/\.key\.sql$/i',$file) && substr($file,0,4) == 'data')
|
||||
{
|
||||
$result=run_sql($dir.$file,1,'',1);
|
||||
$result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?0:1, '', 1);
|
||||
if ($result <= 0) $error++;
|
||||
}
|
||||
}
|
||||
@ -1103,7 +1103,7 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
||||
{
|
||||
if (preg_match('/\.sql$/i',$file) && ! preg_match('/\.key\.sql$/i',$file) && substr($file,0,6) == 'update')
|
||||
{
|
||||
$result=run_sql($dir.$file,1,'',1);
|
||||
$result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?0:1, '', 1);
|
||||
if ($result <= 0) $error++;
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
* \brief File with class to manage the numbering module Simple for ticketsup references
|
||||
*/
|
||||
|
||||
dol_include_once('/ticketsup/core/modules/modules_ticketsup.php');
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/modules/modules_ticketsup.php';
|
||||
|
||||
/**
|
||||
* Class to manage the numbering module Simple for ticketsup references
|
||||
@ -73,7 +73,8 @@ class mod_ticketsup_simple extends ModeleNumRefTicketsup
|
||||
$posindice = 8;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM " . $posindice . ") AS SIGNED)) as max";
|
||||
$sql .= " FROM " . MAIN_DB_PREFIX . "ticketsup";
|
||||
$sql .= " WHERE ref LIKE '" . $this->prefix . "____-%'";
|
||||
$search = $this->prefix . "____-%";
|
||||
$sql .= " WHERE ref LIKE '" . $search ."'";
|
||||
$sql .= " AND entity = " . $conf->entity;
|
||||
$resql = $db->query($sql);
|
||||
if ($resql) {
|
||||
@ -107,7 +108,8 @@ class mod_ticketsup_simple extends ModeleNumRefTicketsup
|
||||
$posindice = 8;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM " . $posindice . ") AS SIGNED)) as max";
|
||||
$sql .= " FROM " . MAIN_DB_PREFIX . "ticketsup";
|
||||
$sql .= " WHERE ref like '" . $this->prefix . "____-%'";
|
||||
$search = $this->prefix . "____-%";
|
||||
$sql .= " WHERE ref LIKE '" . $search ."'";
|
||||
$sql .= " AND entity = " . $conf->entity;
|
||||
|
||||
$resql = $db->query($sql);
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
* \brief Fichier contenant la classe du modele de numerotation de reference de projet Universal
|
||||
*/
|
||||
|
||||
dol_include_once('/ticketsup/core/modules/modules_ticketsup.php');
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/modules/modules_ticketsup.php';
|
||||
|
||||
/**
|
||||
* Classe du modele de numerotation de reference de projet Universal
|
||||
|
||||
@ -134,8 +134,8 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
}
|
||||
|
||||
$message .= '</ul>';
|
||||
$message .= '<p>' . $langs->trans('Message') . ' : <br />' . $object->message . '</p>';
|
||||
$message .= '<p><a href="' . dol_buildpath('/ticketsup/card.php', 2) . '?track_id=' . $object->track_id . '">' . $langs->trans('SeeThisTicketIntomanagementInterface') . '</a><br /></p>';
|
||||
$message .= '<p>' . $langs->trans('Message') . ' : <br>' . $object->message . '</p>';
|
||||
$message .= '<p><a href="' . dol_buildpath('/ticketsup/card.php', 2) . '?track_id=' . $object->track_id . '">' . $langs->trans('SeeThisTicketIntomanagementInterface') . '</a></p>';
|
||||
|
||||
$sendto = $userstat->email;
|
||||
$from = dolGetFirstLastname($user->firstname, $user->lastname) . '<' . $user->email . '>';
|
||||
@ -202,7 +202,7 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
$message_admin.='<p>'.$langs->trans('Company'). ' : '.$object->thirdparty->name.'</p>';
|
||||
}
|
||||
|
||||
$message_admin.='<p>'.$langs->trans('Message').' : <br />'.$object->message.'</p>';
|
||||
$message_admin.='<p>'.$langs->trans('Message').' : <br>'.$object->message.'</p>';
|
||||
$message_admin.='<p><a href="'.dol_buildpath('/ticketsup/card.php', 2).'?track_id='.$object->track_id.'">'.$langs->trans('SeeThisTicketIntomanagementInterface').'</a></p>';
|
||||
|
||||
$from = $conf->global->MAIN_INFO_SOCIETE_NOM.'<'.$conf->global->TICKETS_NOTIFICATION_EMAIL_FROM.'>';
|
||||
@ -250,7 +250,7 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
}
|
||||
}
|
||||
$message_customer.='</ul>';
|
||||
$message_customer.='<p>'.$langs->trans('Message').' : <br />'.$object->message.'</p>';
|
||||
$message_customer.='<p>'.$langs->trans('Message').' : <br>'.$object->message.'</p>';
|
||||
$url_public_ticket = ($conf->global->TICKETS_URL_PUBLIC_INTERFACE?$conf->global->TICKETS_URL_PUBLIC_INTERFACE.'/':dol_buildpath('/ticketsup/public/view.php', 2)).'?track_id='.$object->track_id;
|
||||
$message_customer.='<p>' . $langs->trans('TicketNewEmailBodyInfosTrackUrlCustomer') . ' : <a href="'.$url_public_ticket.'">'.$url_public_ticket.'</a></p>';
|
||||
$message_customer.='<p>'.$langs->trans('TicketEmailPleaseDoNotReplyToThisEmail').'</p>';
|
||||
|
||||
@ -120,4 +120,106 @@ ALTER TABLE llx_societe_rib ADD COLUMN total_amount_of_all_payments double(24,8)
|
||||
ALTER TABLE llx_societe_rib ADD COLUMN stripe_card_ref varchar(128);
|
||||
ALTER TABLE llx_societe_rib ADD COLUMN status integer NOT NULL DEFAULT 1;
|
||||
|
||||
CREATE TABLE llx_ticketsup
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
entity integer DEFAULT 1,
|
||||
ref varchar(128) NOT NULL,
|
||||
track_id varchar(128) NOT NULL,
|
||||
fk_soc integer DEFAULT 0,
|
||||
fk_project integer DEFAULT 0,
|
||||
origin_email varchar(128),
|
||||
fk_user_create integer,
|
||||
fk_user_assign integer,
|
||||
subject varchar(255),
|
||||
message text,
|
||||
fk_statut integer,
|
||||
resolution integer,
|
||||
progress varchar(100),
|
||||
timing varchar(20),
|
||||
type_code varchar(32),
|
||||
category_code varchar(32),
|
||||
severity_code varchar(32),
|
||||
datec datetime,
|
||||
date_read datetime,
|
||||
date_close datetime,
|
||||
tms timestamp
|
||||
)ENGINE=innodb;
|
||||
|
||||
ALTER TABLE llx_ticketsup ADD UNIQUE uk_ticketsup_rowid_track_id (rowid, track_id);
|
||||
ALTER TABLE llx_ticketsup ADD INDEX id_ticketsup_track_id (track_id);
|
||||
|
||||
CREATE TABLE llx_ticketsup_msg
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
entity integer DEFAULT 1,
|
||||
fk_track_id varchar(128),
|
||||
fk_user_action integer,
|
||||
datec datetime,
|
||||
message text,
|
||||
private integer DEFAULT 0
|
||||
)ENGINE=innodb;
|
||||
|
||||
|
||||
ALTER TABLE llx_ticketsup_msg ADD CONSTRAINT fk_ticketsup_msg_fk_track_id FOREIGN KEY (fk_track_id) REFERENCES llx_ticketsup (track_id);
|
||||
|
||||
CREATE TABLE llx_ticketsup_logs
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
entity integer DEFAULT 1,
|
||||
fk_track_id varchar(128),
|
||||
fk_user_create integer,
|
||||
datec datetime,
|
||||
message text
|
||||
)ENGINE=innodb;
|
||||
|
||||
ALTER TABLE llx_ticketsup_logs ADD CONSTRAINT fk_ticketsup_logs_fk_track_id FOREIGN KEY (fk_track_id) REFERENCES llx_ticketsup (track_id);
|
||||
|
||||
CREATE TABLE llx_ticketsup_extrafields
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
tms timestamp,
|
||||
fk_object integer NOT NULL,
|
||||
import_key varchar(14)
|
||||
)ENGINE=innodb;
|
||||
|
||||
ALTER TABLE llx_c_ticketsup_category ADD INDEX idx_code (code);
|
||||
|
||||
CREATE TABLE llx_c_ticketsup_category
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
code varchar(32) NOT NULL,
|
||||
pos varchar(32) NOT NULL,
|
||||
label varchar(128) NOT NULL,
|
||||
active integer DEFAULT 1,
|
||||
use_default integer DEFAULT 1,
|
||||
description varchar(255)
|
||||
)ENGINE=innodb;
|
||||
|
||||
ALTER TABLE llx_c_ticketsup_severity ADD INDEX idx_code (code);
|
||||
|
||||
CREATE TABLE llx_c_ticketsup_severity
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
code varchar(32) NOT NULL,
|
||||
pos varchar(32) NOT NULL,
|
||||
label varchar(128) NOT NULL,
|
||||
color varchar(10) NOT NULL,
|
||||
active integer DEFAULT 1,
|
||||
use_default integer DEFAULT 1,
|
||||
description varchar(255)
|
||||
)ENGINE=innodb;
|
||||
|
||||
ALTER TABLE llx_c_ticketsup_type ADD INDEX idx_code (code);
|
||||
|
||||
CREATE TABLE llx_c_ticketsup_type
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
code varchar(32) NOT NULL,
|
||||
pos varchar(32) NOT NULL,
|
||||
label varchar(128) NOT NULL,
|
||||
active integer DEFAULT 1,
|
||||
use_default integer DEFAULT 1,
|
||||
description varchar(255)
|
||||
)ENGINE=innodb;
|
||||
|
||||
|
||||
@ -14,4 +14,5 @@
|
||||
-- You should have received a copy of the GNU General Public License
|
||||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
ALTER TABLE llx_ticketsup ADD UNIQUE uk_matable_field(rowid, track_id);
|
||||
ALTER TABLE llx_ticketsup ADD UNIQUE uk_ticketsup_rowid_track_id (rowid, track_id);
|
||||
ALTER TABLE llx_ticketsup ADD INDEX id_ticketsup_track_id (track_id);
|
||||
|
||||
@ -14,4 +14,4 @@
|
||||
-- You should have received a copy of the GNU General Public License
|
||||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
ALTER TABLE llx_ticketsup_logs ADD CONSTRAINT fk_ticketsup_logs_fk_track_id FOREIGN KEY (fk_track_id) REFERENCES llx_ticketsup (fk_track_id);
|
||||
ALTER TABLE llx_ticketsup_logs ADD CONSTRAINT fk_ticketsup_logs_fk_track_id FOREIGN KEY (fk_track_id) REFERENCES llx_ticketsup (track_id);
|
||||
|
||||
@ -275,7 +275,7 @@ if ($action == 'create_ticket' && GETPOST('add_ticket')) {
|
||||
}
|
||||
}
|
||||
$message_admin .= '</ul>';
|
||||
$message_admin .= '<p>' . $langs->trans('Message') . ' : <br />' . $object->message . '</p>';
|
||||
$message_admin .= '<p>' . $langs->trans('Message') . ' : <br>' . $object->message . '</p>';
|
||||
$message_admin .= '<p><a href="' . dol_buildpath('/ticketsup/card.php', 2) . '?track_id=' . $object->track_id . '">' . $langs->trans('SeeThisTicketIntomanagementInterface') . '</a></p>';
|
||||
|
||||
$from = $conf->global->MAIN_INFO_SOCIETE_NOM . '<' . $conf->global->TICKETS_NOTIFICATION_EMAIL_FROM . '>';
|
||||
@ -367,7 +367,7 @@ if ($action != "infos_success") {
|
||||
$formticket->showForm();
|
||||
} else {
|
||||
print '<div class="ok">' . $langs->trans('MesgInfosPublicTicketCreatedWithTrackId', '<strong>' . $object->track_id . '</strong>');
|
||||
print '<br />';
|
||||
print '<br>';
|
||||
print $langs->trans('PleaseRememberThisId');
|
||||
}
|
||||
print '</div>';
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) - 2013-2016 Jean-François FERRY <jfefe@aternatik.fr>
|
||||
/* Copyright (C) 2013-2016 Jean-François FERRY <jfefe@aternatik.fr>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -34,28 +34,10 @@ if (!defined("NOLOGIN")) {
|
||||
}
|
||||
// If this page is public (can be called outside logged session)
|
||||
|
||||
// Change this following line to use the correct relative path (../, ../../, etc)
|
||||
$res = 0;
|
||||
if (!$res && file_exists("../main.inc.php")) {
|
||||
$res = @include '../main.inc.php';
|
||||
}
|
||||
|
||||
if (!$res && file_exists("../../main.inc.php")) {
|
||||
$res = @include '../../main.inc.php';
|
||||
}
|
||||
|
||||
if (!$res && file_exists("../../../main.inc.php")) {
|
||||
$res = @include '../../../main.inc.php';
|
||||
}
|
||||
|
||||
if (!$res) {
|
||||
die("Include of main fails");
|
||||
}
|
||||
|
||||
// Change this following line to use the correct relative path from htdocs
|
||||
dol_include_once('/ticketsup/class/actions_ticketsup.class.php');
|
||||
dol_include_once('/ticketsup/class/html.formticketsup.class.php');
|
||||
dol_include_once('/ticketsup/lib/ticketsup.lib.php');
|
||||
require '../../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/ticketsup/class/actions_ticketsup.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/ticketsup/class/html.formticketsup.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/ticketsup/lib/ticketsup.lib.php';
|
||||
|
||||
// Load traductions files requiredby by page
|
||||
$langs->load("companies");
|
||||
@ -671,7 +653,7 @@ if ($action == "view_ticketlist") {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print '<div class="error">Not Allowed<br /><a href="' . $_SERVER['PHP_SELF'] . '?track_id=' . $object->dao->track_id . '">' . $langs->trans('Back') . '</a></div>';
|
||||
print '<div class="error">Not Allowed<br><a href="' . $_SERVER['PHP_SELF'] . '?track_id=' . $object->dao->track_id . '">' . $langs->trans('Back') . '</a></div>';
|
||||
}
|
||||
} else {
|
||||
print '<p style="text-align: center">' . $langs->trans("TicketPublicMsgViewLogIn") . '</p>';
|
||||
|
||||
19
htdocs/ticketsup/.gitignore
vendored
19
htdocs/ticketsup/.gitignore
vendored
@ -1,19 +0,0 @@
|
||||
# Generated binaries
|
||||
/build/*.zip
|
||||
# Doxygen generated documentation
|
||||
/build/doxygen/doxygen_warnings.log
|
||||
/doc/code/doxygen
|
||||
# Composer managed dependencies
|
||||
/vendor/
|
||||
/dev/bin
|
||||
# PHPdocumentor generated files
|
||||
/build/phpdoc
|
||||
/doc/code/phpdoc
|
||||
# Sphinx generated files
|
||||
/doc/user/build
|
||||
/.settings/
|
||||
/.buildpath
|
||||
/.project
|
||||
/test/report
|
||||
# PhpStorm generated files
|
||||
/.idea/
|
||||
@ -533,7 +533,7 @@ if ($action == 'view' || $action == 'add_message' || $action == 'close' || $acti
|
||||
$userstatic = new User($db);
|
||||
foreach (array('internal', 'external') as $source) {
|
||||
$tmpobject = $object->dao;
|
||||
$tab = $tmpobject->liste_contact(-1, $source);
|
||||
$tab = $tmpobject->listeContact(-1, $source);
|
||||
$num = count($tab);
|
||||
$i = 0;
|
||||
while ($i < $num) {
|
||||
|
||||
@ -343,7 +343,7 @@ class ActionsTicketsup
|
||||
if ($ret) {
|
||||
// Si déjà un user assigné on le supprime des contacts
|
||||
if ($useroriginassign > 0) {
|
||||
$internal_contacts = $this->dao->liste_contact(-1, 'internal');
|
||||
$internal_contacts = $this->dao->listeContact(-1, 'internal');
|
||||
|
||||
foreach ($internal_contacts as $key => $contact) {
|
||||
if ($contact['code'] == "SUPPORTTEC" && $contact['id'] == $useroriginassign) {
|
||||
@ -609,8 +609,8 @@ class ActionsTicketsup
|
||||
/**
|
||||
* Add new message on a ticket (private area)
|
||||
*
|
||||
* @param User $user Object user
|
||||
* @param string $action Action
|
||||
* @param User $user User for action
|
||||
* @param string $action Action string
|
||||
*/
|
||||
private function newMessage($user, &$action)
|
||||
{
|
||||
@ -820,8 +820,8 @@ class ActionsTicketsup
|
||||
/**
|
||||
* Add new message on a ticket (public area)
|
||||
*
|
||||
* @param User $user Object user
|
||||
* @param string $action Action
|
||||
* @param User $user User for action
|
||||
* @param string $action Action string
|
||||
*/
|
||||
private function newMessagePublic($user, &$action)
|
||||
{
|
||||
@ -964,10 +964,10 @@ class ActionsTicketsup
|
||||
/**
|
||||
* Fetch object
|
||||
*
|
||||
* @param int $id Id
|
||||
* @param int $track_id Track id
|
||||
* @param string $ref Ref
|
||||
* @return void
|
||||
* @param int $id ID of ticket
|
||||
* @param int $track_id Track ID of ticket (for public area)
|
||||
* @param string $ref Reference of ticket
|
||||
* @return void
|
||||
*/
|
||||
public function fetch($id = 0, $track_id = 0, $ref = '')
|
||||
{
|
||||
@ -977,8 +977,12 @@ class ActionsTicketsup
|
||||
|
||||
/**
|
||||
* print statut
|
||||
<<<<<<< HEAD
|
||||
*
|
||||
* @param int $mode Mode
|
||||
=======
|
||||
* @param int $mode Display mode
|
||||
>>>>>>> branch 'develop' of git@github.com:Dolibarr/dolibarr.git
|
||||
* @return void
|
||||
*/
|
||||
public function getLibStatut($mode = 0)
|
||||
@ -989,10 +993,9 @@ class ActionsTicketsup
|
||||
}
|
||||
|
||||
/**
|
||||
* Get ticket info
|
||||
* Get ticket info
|
||||
*
|
||||
* @param int $id Object id
|
||||
* @return void
|
||||
* @param int $id Object id
|
||||
*/
|
||||
public function getInfo($id)
|
||||
{
|
||||
@ -1004,10 +1007,9 @@ class ActionsTicketsup
|
||||
}
|
||||
|
||||
/**
|
||||
* Get action title
|
||||
* Get action title
|
||||
*
|
||||
* @param string $action Type of action
|
||||
* @return string Label
|
||||
* @param string $action Type of action
|
||||
*/
|
||||
public function getTitle($action = '')
|
||||
{
|
||||
@ -1029,8 +1031,7 @@ class ActionsTicketsup
|
||||
/**
|
||||
* View html list of logs
|
||||
*
|
||||
* @param boolean $show_user Show user who make action
|
||||
* @return void
|
||||
* @param boolean $show_user Show user who make action
|
||||
*/
|
||||
public function viewTicketLogs($show_user = true)
|
||||
{
|
||||
@ -1092,8 +1093,7 @@ class ActionsTicketsup
|
||||
/**
|
||||
* View list of logs with timeline view
|
||||
*
|
||||
* @param boolean $show_user Show user who make action
|
||||
* @return void
|
||||
* @param boolean $show_user Show user who make action
|
||||
*/
|
||||
public function viewTimelineTicketLogs($show_user = true)
|
||||
{
|
||||
@ -1139,9 +1139,8 @@ class ActionsTicketsup
|
||||
/**
|
||||
* Show ticket original message
|
||||
*
|
||||
* @param User $user Object user
|
||||
* @param string $action Action
|
||||
* @return void
|
||||
* @param User $user $user wich display
|
||||
* @param string $action Action mode
|
||||
*/
|
||||
public function viewTicketOriginalMessage($user, $action = '')
|
||||
{
|
||||
@ -1196,9 +1195,8 @@ class ActionsTicketsup
|
||||
/**
|
||||
* View html list of message for ticket
|
||||
*
|
||||
* @param boolean $show_private Show private messages
|
||||
* @param boolean $show_user Show user who make action
|
||||
* @return void
|
||||
* @param boolean $show_private Show private messages
|
||||
* @param boolean $show_user Show user who make action
|
||||
*/
|
||||
public function viewTicketMessages($show_private, $show_user = true)
|
||||
{
|
||||
@ -1268,9 +1266,8 @@ class ActionsTicketsup
|
||||
/**
|
||||
* View list of message for ticket with timeline display
|
||||
*
|
||||
* @param boolean $show_private Show private messages
|
||||
* @param boolean $show_user Show user who make action
|
||||
* @return void
|
||||
* @param boolean $show_private Show private messages
|
||||
* @param boolean $show_user Show user who make action
|
||||
*/
|
||||
public function viewTicketTimelineMessages($show_private, $show_user = true)
|
||||
{
|
||||
@ -1419,12 +1416,17 @@ class ActionsTicketsup
|
||||
|
||||
/**
|
||||
* Copy files into ticket directory
|
||||
*
|
||||
* Used for files linked into messages
|
||||
<<<<<<< HEAD
|
||||
*
|
||||
* @return void
|
||||
=======
|
||||
>>>>>>> branch 'develop' of git@github.com:Dolibarr/dolibarr.git
|
||||
*/
|
||||
public function copyFilesForTicket()
|
||||
{
|
||||
|
||||
global $conf;
|
||||
|
||||
// Create form object
|
||||
@ -1466,9 +1468,14 @@ class ActionsTicketsup
|
||||
|
||||
/**
|
||||
* Print html navbar with link to set ticket status
|
||||
<<<<<<< HEAD
|
||||
* $selected : 0=>'NotRead', 1=>'Read', 3=>'Answered', 4=>'Assigned', 5 => 'InProgress', 6=> 'Waiting', 8=>'Closed', 9=>'Deleted'
|
||||
*
|
||||
* @return void
|
||||
=======
|
||||
*
|
||||
* @global type $langs
|
||||
>>>>>>> branch 'develop' of git@github.com:Dolibarr/dolibarr.git
|
||||
*/
|
||||
public function viewStatusActions()
|
||||
{
|
||||
@ -1520,10 +1527,10 @@ class ActionsTicketsup
|
||||
/**
|
||||
* Hook to add email element template
|
||||
*
|
||||
* @param array $parameters Parameters
|
||||
* @param Object $object Object
|
||||
* @param string $action Action
|
||||
* @param HookManager $hookmanager Hookmanager
|
||||
* @param array $parameters Parameters
|
||||
* @param Ticketsup $object Object for action
|
||||
* @param string $action Action string
|
||||
* @param HookManager $hookmanager Hookmanager object
|
||||
* @return int
|
||||
*/
|
||||
public function emailElementlist($parameters, &$object, &$action, $hookmanager)
|
||||
|
||||
@ -533,14 +533,15 @@ class Ticketsup extends CommonObject
|
||||
/**
|
||||
* Load all objects in memory from database
|
||||
*
|
||||
* @param User $user Object user
|
||||
* @param string $sortorder Sort order
|
||||
* @param string $sortfield Sort field
|
||||
* @param int $limit page number
|
||||
* @param int $offset Offset
|
||||
* @param int $arch archive or not (not used)
|
||||
* @param array $filter Filter
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @param User $user User for action
|
||||
* @param string $sortorder Sort order
|
||||
* @param string $sortfield Sort field
|
||||
* @param int $limit page number
|
||||
* @param int $offset Offset for query
|
||||
* @param int $arch archive or not (not used)
|
||||
* @param array $filter Filter for query
|
||||
* output
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function fetchAll($user, $sortorder = 'ASC', $sortfield = 't.datec', $limit = '', $offset = 0, $arch = '', $filter = '')
|
||||
{
|
||||
@ -1052,7 +1053,7 @@ class Ticketsup extends CommonObject
|
||||
*
|
||||
* @return int Nb lignes chargees, 0 si deja chargees, <0 si ko
|
||||
*/
|
||||
function load_cache_categories_tickets()
|
||||
public function loadCacheCategoriesTickets()
|
||||
{
|
||||
global $langs;
|
||||
|
||||
@ -1128,17 +1129,19 @@ class Ticketsup extends CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return status label of object
|
||||
* Return status label of object
|
||||
*
|
||||
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
|
||||
* @return string Label
|
||||
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
|
||||
* @return string Label
|
||||
*/
|
||||
public function getLibStatut($mode = 0)
|
||||
{
|
||||
return $this->LibStatut($this->fk_statut, $mode);
|
||||
return $this->libStatut($this->fk_statut, $mode);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return status label of object
|
||||
*
|
||||
@ -1291,11 +1294,11 @@ class Ticketsup extends CommonObject
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoie nom clicable (avec eventuellement le picto)
|
||||
* Return clickable link to object
|
||||
*
|
||||
* @param int $withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul
|
||||
* @param string $option Sur quoi pointe le lien
|
||||
* @return string Chaine avec URL
|
||||
* @param int $withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul
|
||||
* @param string $option Sur quoi pointe le lien
|
||||
* @return string Chaine avec URL
|
||||
*/
|
||||
public function getNomUrl($withpicto = 0, $option = '')
|
||||
{
|
||||
@ -1330,9 +1333,9 @@ class Ticketsup extends CommonObject
|
||||
/**
|
||||
* Mark a message as read
|
||||
*
|
||||
* @param User $user Object user
|
||||
* @param int $notrigger No trigger
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @param User $user Object user
|
||||
* @param int $notrigger No trigger
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function markAsRead($user, $notrigger = 0)
|
||||
{
|
||||
@ -1431,10 +1434,10 @@ class Ticketsup extends CommonObject
|
||||
* 1- create entry into database for message storage
|
||||
* 2- if trigger, send an email to ticket contacts
|
||||
*
|
||||
* @param User $user User that create
|
||||
* @param string $message Log message
|
||||
* @param int $noemail 0=send email after, 1=disable emails
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @param User $user User that create
|
||||
* @param string $message Log message
|
||||
* @param int $noemail 0=send email after, 1=disable emails
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function createTicketLog(User $user, $message, $noemail = 0)
|
||||
{
|
||||
@ -1492,7 +1495,7 @@ class Ticketsup extends CommonObject
|
||||
* @param string $log_message Log message
|
||||
* @return int <0 if KO, >0 if OK (number of emails sent)
|
||||
*/
|
||||
private function sendLogByEmail($user, $log_message)
|
||||
private function sendLogByEmail($user, $message)
|
||||
{
|
||||
global $conf, $langs;
|
||||
|
||||
@ -1501,8 +1504,8 @@ class Ticketsup extends CommonObject
|
||||
$langs->load('ticketsup@ticketsup');
|
||||
|
||||
// Retrieve email of all contacts (internal and external)
|
||||
$contacts = $this->liste_contact(-1, 'internal');
|
||||
$contacts = array_merge($contacts, $this->liste_contact(-1, 'external'));
|
||||
$contacts = $this->listeContact(-1, 'internal');
|
||||
$contacts = array_merge($contacts, $this->listeContact(-1, 'external'));
|
||||
|
||||
/* If origin_email and no socid, we add email to the list * */
|
||||
if (!empty($this->origin_email) && empty($this->fk_soc)) {
|
||||
@ -2034,7 +2037,7 @@ class Ticketsup extends CommonObject
|
||||
*/
|
||||
public function getInfosTicketInternalContact()
|
||||
{
|
||||
return $this->liste_contact(-1, 'internal');
|
||||
return $this->listeContact(-1, 'internal');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2054,7 +2057,7 @@ class Ticketsup extends CommonObject
|
||||
*/
|
||||
public function getInfosTicketExternalContact()
|
||||
{
|
||||
return $this->liste_contact(-1, 'external');
|
||||
return $this->listeContact(-1, 'external');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2112,7 +2115,7 @@ class Ticketsup extends CommonObject
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if contact are linked to the ticket. If yes, send mail and save trace into llx_notify.
|
||||
* Send message
|
||||
*
|
||||
* @param string $subject Subject
|
||||
* @param string $texte Message to send
|
||||
@ -2243,10 +2246,9 @@ class Ticketsup extends CommonObject
|
||||
* @param int $statut Status of lines to get (-1=all)
|
||||
* @param string $source Source of contact: external or thirdparty (llx_socpeople) or internal (llx_user)
|
||||
* @param int $list 0:Return array contains all properties, 1:Return array contains just id
|
||||
* @param string $code Code
|
||||
* @return array Array of contacts
|
||||
*/
|
||||
function liste_contact($statut = -1, $source = 'external', $list = 0, $code = '')
|
||||
function liste_contact($statut = -1, $source = 'external', $list = 0)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
@ -2298,8 +2300,7 @@ class Ticketsup extends CommonObject
|
||||
}
|
||||
|
||||
$sql .= " ORDER BY t.lastname ASC";
|
||||
//echo $sql; exit;
|
||||
dol_syslog(get_class($this) . "::liste_contact sql=" . $sql);
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql) {
|
||||
$num = $this->db->num_rows($resql);
|
||||
|
||||
@ -347,7 +347,7 @@ if ($result) {
|
||||
|
||||
$db->free();
|
||||
} else {
|
||||
print '<tr><td colspan="5"><div class="info">' . $langs->trans('NoTicketsFound') . '</div></td></tr>';
|
||||
print '<tr><td colspan="6"><div class="info">' . $langs->trans('NoTicketsFound') . '</div></td></tr>';
|
||||
}
|
||||
|
||||
print "</table>";
|
||||
|
||||
1
htdocs/ticketsup/tpl/index.html
Normal file
1
htdocs/ticketsup/tpl/index.html
Normal file
@ -0,0 +1 @@
|
||||
|
||||
@ -16,6 +16,12 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
// Protection to avoid direct call of template
|
||||
if (empty($conf) || ! is_object($conf))
|
||||
{
|
||||
print "Error, template page can't be called as URL";
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
|
||||
<!-- BEGIN PHP TEMPLATE -->
|
||||
@ -55,4 +61,4 @@ foreach ($linkedObjectBlock as $object) {
|
||||
<?php } ?>
|
||||
</table>
|
||||
|
||||
<!-- END PHP TEMPLATE -->
|
||||
<!-- END PHP TEMPLATE -->
|
||||
|
||||
Loading…
Reference in New Issue
Block a user