@@ -87,11 +87,6 @@ $count = 0;
|
|||||||
}
|
}
|
||||||
//}
|
//}
|
||||||
|
|
||||||
if (!function_exists('dpuser_cmp')) {
|
|
||||||
function dpuser_cmp($a, $b) {
|
|
||||||
return strcasecmp($a, $b);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$datas = [];
|
$datas = [];
|
||||||
|
|
||||||
|
|||||||
@@ -18,31 +18,120 @@ if (!defined('GLPI_ROOT')) {
|
|||||||
|
|
||||||
Session::checkLoginUser();
|
Session::checkLoginUser();
|
||||||
|
|
||||||
|
$commoninputs = "<input type='hidden' name='items_id' value='".$_REQUEST['items_id']."'>".
|
||||||
|
"<input type='hidden' name='itemtype' value='".$_REQUEST['itemtype']."'>".
|
||||||
|
"<input type='hidden' name='cases_id' value='".$_REQUEST['cases_id']."'>".
|
||||||
|
"<input type='hidden' name='delIndex' value='".$_REQUEST['delIndex']."'>".
|
||||||
|
"<input type='hidden' name='users_id' value='".$_REQUEST['users_id']."'>".
|
||||||
|
"<input type='hidden' name='taskGuid' value='".$_REQUEST['taskGuid']."'>".
|
||||||
|
"<input type='hidden' name='delThread' value='".$_REQUEST['delThread']."'>".
|
||||||
|
"<input type='hidden' name='tasktype' value='".$_REQUEST['tasktype']."'>".
|
||||||
|
"<input type='hidden' name='tasks_id' value='".$_REQUEST['tasks_id']."'>";
|
||||||
|
|
||||||
$PM_SOAP = new PluginProcessmakerProcessmaker; // not used in this context, just here to define the type of $PM_SOAP
|
$PM_SOAP = new PluginProcessmakerProcessmaker; // not used in this context, just here to define the type of $PM_SOAP
|
||||||
$PM_DB = new PluginProcessmakerDB;
|
$PM_DB = new PluginProcessmakerDB;
|
||||||
$rand = rand();
|
$rand = rand();
|
||||||
|
|
||||||
echo "<form style='margin-bottom: 0px' name='processmaker_form_task$rand-".$_REQUEST['delIndex']."' id='processmaker_form_task$rand-".$_REQUEST['delIndex']."' method='post' action='".Toolbox::getItemTypeFormURL("PluginProcessmakerProcessmaker")."'>";
|
echo "<form style='margin-bottom: 0px' name='processmaker_form_task$rand-".$_REQUEST['delIndex']."' id='processmaker_form_task$rand-".$_REQUEST['delIndex']."' method='post' action='".Toolbox::getItemTypeFormURL("PluginProcessmakerProcessmaker")."'>";
|
||||||
echo __('Re-assign task to', 'processmaker')." ";
|
echo __('Re-assign task to', 'processmaker')." ";
|
||||||
echo "<input type='hidden' name='action' value='unpausecase_or_reassign_or_delete'>";
|
echo "<input type='hidden' name='action' value='reassign_reminder'>";
|
||||||
echo "<input type='hidden' name='items_id' value='".$_REQUEST['items_id']."'>";
|
echo "<input type='hidden' name='comment' value=''>";
|
||||||
echo "<input type='hidden' name='itemtype' value='".$_REQUEST['itemtype']."'>";
|
echo $commoninputs;
|
||||||
echo "<input type='hidden' name='cases_id' value='".$_REQUEST['cases_id']."'>";
|
|
||||||
echo "<input type='hidden' name='delIndex' value='".$_REQUEST['delIndex']."'>";
|
$can_unclaim = false; // by default
|
||||||
echo "<input type='hidden' name='users_id' value='".$_REQUEST['users_id']."'>";
|
$query = "SELECT TAS_GROUP_VARIABLE FROM TASK WHERE TAS_UID='".$_REQUEST['taskGuid']."' AND TAS_ASSIGN_TYPE='SELF_SERVICE';";
|
||||||
echo "<input type='hidden' name='taskGuid' value='".$_REQUEST['taskGuid']."'>";
|
$res = $PM_DB->query($query);
|
||||||
echo "<input type='hidden' name='delThread' value='".$_REQUEST['delThread']."'>";
|
if ($PM_DB->numrows($res) > 0) {
|
||||||
|
$can_unclaim = true;
|
||||||
|
}
|
||||||
|
|
||||||
PluginProcessmakerUser::dropdown( ['name' => 'users_id_recipient',
|
PluginProcessmakerUser::dropdown( ['name' => 'users_id_recipient',
|
||||||
'value' => $_REQUEST['users_id'],
|
'value' => $_REQUEST['users_id'],
|
||||||
'used' => [$_REQUEST['users_id']],
|
'used' => $_REQUEST['used'],
|
||||||
'entity' => 0, //$item->fields["entities_id"], // not used, as any user can be assigned to any tasks
|
'entity' => 0, //$item->fields["entities_id"], // not used, as any user can be assigned to any tasks
|
||||||
'entity_sons' => false, // not used, as any user can be assigned to any tasks
|
'entity_sons' => false, // not used, as any user can be assigned to any tasks
|
||||||
'right' => 'all',
|
'right' => 'all',
|
||||||
'rand' => $rand,
|
'rand' => $rand,
|
||||||
'width' => '',
|
'width' => '',
|
||||||
'specific_tags' => ['taskGuid' => $_REQUEST['taskGuid']]]);
|
'specific_tags' => ['taskGuid' => $_REQUEST['taskGuid']]
|
||||||
echo " ";
|
]);
|
||||||
echo "<input type='submit' name='reassign' value='".__('Re-assign', 'processmaker')."' class='submit'>";
|
|
||||||
Html::closeForm(true);
|
|
||||||
|
|
||||||
|
echo " ";
|
||||||
|
echo "<input type='submit' name='reassign$rand' value='".__('Re-assign', 'processmaker')."' class='submit'>";
|
||||||
|
echo "<input type='submit' name='reassign' value='".__('Re-assign', 'processmaker')."' class='submit' style='display:none'>";
|
||||||
|
|
||||||
|
echo HTML::scriptBlock("
|
||||||
|
$(function () {
|
||||||
|
// Dialog helpers
|
||||||
|
// Create the dialog with \"Re-assign\" button
|
||||||
|
function showCommentDlg(title, content, alttext) {
|
||||||
|
|
||||||
|
var dlgContents = {
|
||||||
|
title: title,
|
||||||
|
modal: true,
|
||||||
|
width: 'auto',
|
||||||
|
height: 'auto',
|
||||||
|
resizable: false,
|
||||||
|
close: function (event, ui) {
|
||||||
|
$(this).dialog('destroy').remove();
|
||||||
|
},
|
||||||
|
buttons: [{
|
||||||
|
text: alttext,
|
||||||
|
id: 'submit$rand',
|
||||||
|
disabled: 'disabled',
|
||||||
|
click: function() {
|
||||||
|
$('#processmaker_form_task$rand-".$_REQUEST['delIndex']." input[name=comment]').val($('#comment$rand').val());
|
||||||
|
//$('#processmaker_form_task$rand-".$_REQUEST['delIndex']."').submit();
|
||||||
|
$('input[name=reassign').click();
|
||||||
|
$('#submit$rand').button('disable');
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
show: true,
|
||||||
|
hide: true
|
||||||
|
}
|
||||||
|
$('<div id=reassign$rand></div>').appendTo($('#processmaker_form_task$rand-".$_REQUEST['delIndex']."'));
|
||||||
|
var locDlg = $('#reassign$rand').html(content + '<p><textarea id=comment$rand rows=6 cols=60></textarea></p><font color=red>Input at least 10 words in English to justify.</font>').dialog(dlgContents);
|
||||||
|
$('#comment$rand').focus();
|
||||||
|
$('#comment$rand').on('keydown keyup', function(e) {
|
||||||
|
if ($('#comment$rand').val().split(/\W+/).length > 10) {
|
||||||
|
$('#submit$rand').button('enable');
|
||||||
|
} else {
|
||||||
|
$('#submit$rand').button('disable');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return locDlg;
|
||||||
|
};
|
||||||
|
|
||||||
|
$('input[name=reassign$rand]').click(function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
if ($('input[name=users_id]').val() == $('input[name=users_id_recipient]').val()) {
|
||||||
|
// task is already assigned to this user
|
||||||
|
alert('".__('Task is already assigned to this user or group!', 'processmaker')."', '".__('Re-assign task', 'processmaker')."');
|
||||||
|
} else if ($('input[name=users_id_recipient]').val() == 0) {
|
||||||
|
// un-claim
|
||||||
|
if (".($can_unclaim ? 1 : 0)." && $('input[name=users_id]').val() != 0) {
|
||||||
|
showCommentDlg('".__('Un-claim task', 'processmaker')."',
|
||||||
|
'".__('Please input reason to un-claim<br/>(task will be re-assigned to former group):', 'processmaker')."',
|
||||||
|
'".__('Un-claim', 'processmaker')."');
|
||||||
|
} else {
|
||||||
|
// task can't be unclaim because it isn't SELF_SERVICE
|
||||||
|
alert('".__('Can\\\'t un-assign Task!', 'processmaker')."', '".__('Un-claim task', 'processmaker')."');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
showCommentDlg('".__('Re-assign task', 'processmaker')."',
|
||||||
|
'".__('Please input reason to re-assign:', 'processmaker')."',
|
||||||
|
'".__('Re-assign', 'processmaker')."');
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
})
|
||||||
|
");
|
||||||
|
|
||||||
|
|
||||||
|
if (Session::getLoginUserID() != $_REQUEST['users_id']) {
|
||||||
|
echo " ";
|
||||||
|
echo "<input type='submit' name='reminder' value='".__('Send reminder', 'processmaker')."' class='submit'>";
|
||||||
|
}
|
||||||
|
|
||||||
|
Html::closeForm(true);
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ switch ($_POST["action"]) {
|
|||||||
// Must show it...
|
// Must show it...
|
||||||
//
|
//
|
||||||
$rand = rand( );
|
$rand = rand( );
|
||||||
Html::redirect($CFG_GLPI['root_doc']."/plugins/processmaker/front/processmaker.helpdesk.form.php?processes_id=".$_POST['plugin_processmaker_processes_id']."&case_guid=".$resultCase->caseId."&rand=$rand&itilcategories_id=".$_POST["itilcategories_id"]."&type=".$_REQUEST["type"]."&entities_id=".$_REQUEST['entities_id']);
|
Html::redirect($CFG_GLPI['root_doc']."/plugins/processmaker/front/processmaker.helpdesk.form.php?processes_id=".$_POST['plugin_processmaker_processes_id']."&case_guid=".$resultCase->caseId."&rand=$rand&itilcategories_id=".$_POST["itilcategories_id"]."&type=".$_POST["type"]."&entities_id=".$_POST['entities_id']);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Session::addMessageAfterRedirect( PluginProcessmakerProcessmaker::getPMErrorMessage($resultCase->status_code)."<br>$resultCase->message ($resultCase->status_code)", true, ERROR);
|
Session::addMessageAfterRedirect( PluginProcessmakerProcessmaker::getPMErrorMessage($resultCase->status_code)."<br>$resultCase->message ($resultCase->status_code)", true, ERROR);
|
||||||
@@ -70,94 +70,55 @@ switch ($_POST["action"]) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'unpausecase_or_reassign_or_delete' :
|
case 'reassign_reminder' :
|
||||||
if (isset($_POST['unpause'])) {
|
if (isset($_POST['reassign'])) {
|
||||||
|
// here we should re-assign the current task to $_POST['users_id_recipient']
|
||||||
$locCase = new PluginProcessmakerCase;
|
$locCase = new PluginProcessmakerCase;
|
||||||
$locCase->getFromDB($_POST['cases_id']);
|
$locCase->getFromDB($_POST['cases_id']);
|
||||||
$pmResultUnpause = $locCase->unpauseCase($_POST['delIndex'], $_POST['users_id']);
|
if ($_POST['users_id_recipient'] != 0) {
|
||||||
if ($pmResultUnpause->status_code == 0) {
|
// we are assigning a new tech to a task
|
||||||
Html::back();
|
|
||||||
} else {
|
|
||||||
echo "Error unpausing case: ".$pmResultUnpause->message." \n";
|
|
||||||
}
|
|
||||||
} else if (isset($_POST['reassign'])) {
|
|
||||||
// here we should re-assign the current task to $_POST['users_id_recipient']
|
|
||||||
//$GLPINewPMUserId = PluginProcessmakerUser::getPMUserId( $_POST['users_id_recipient'] );
|
|
||||||
if ($_POST['users_id'] != $_POST['users_id_recipient'] && $_POST['users_id_recipient'] != 0) { // normally should be different as of the dropdown prevents already used
|
|
||||||
$locCase = new PluginProcessmakerCase;
|
|
||||||
$locCase->getFromDB($_POST['cases_id']);
|
|
||||||
|
|
||||||
$pmResponse = $locCase->reassignCase($_POST['delIndex'],
|
$pmResponse = $locCase->reassignCase($_POST['delIndex'],
|
||||||
$_POST['taskGuid'],
|
$_POST['taskGuid'],
|
||||||
$_POST['delThread'],
|
$_POST['delThread'],
|
||||||
$_POST['users_id'],
|
$_POST['users_id'],
|
||||||
$_POST['users_id_recipient']);
|
$_POST['users_id_recipient'],
|
||||||
|
['comment' => $_POST['comment']]);
|
||||||
if ($pmResponse) {
|
if ($pmResponse) {
|
||||||
Session::addMessageAfterRedirect(__('Task re-assigned!', 'processmaker'), true, INFO);
|
Session::addMessageAfterRedirect(__('Task re-assigned!', 'processmaker'), true, INFO);
|
||||||
} else {
|
} else {
|
||||||
Session::addMessageAfterRedirect(__('Error re-assigning task: ', 'processmaker').$pmResponse->message, true, ERROR);
|
Session::addMessageAfterRedirect(__('Error re-assigning task: ', 'processmaker').$pmResponse->message, true, ERROR);
|
||||||
}
|
}
|
||||||
} else {
|
} elseif ($_POST['users_id_recipient'] == 0) {
|
||||||
if ($_POST['users_id_recipient'] == 0) {
|
// we are unassigning a task, i.e.: task un-claim
|
||||||
Session::addMessageAfterRedirect(__('Can\'t un-assign Task!', 'processmaker'), true, ERROR);
|
$pmResponse = $locCase->unassignCase($_POST['delIndex'],
|
||||||
|
$_POST['taskGuid'],
|
||||||
|
$_POST['tasktype'],
|
||||||
|
$_POST['tasks_id'],
|
||||||
|
$_POST['itemtype'],
|
||||||
|
['comment' => $_POST['comment']]);
|
||||||
|
if ($pmResponse) {
|
||||||
|
Session::addMessageAfterRedirect(__('Task un-claimed!', 'processmaker'), true, INFO);
|
||||||
} else {
|
} else {
|
||||||
if ($_POST['users_id'] === $_POST['users_id_recipient'] ) { // normally should be different as of the dropdown prevents already used
|
Session::addMessageAfterRedirect(__("Can't un-claim task! Verify 'Assignement Rules' in the process definition.", 'processmaker'), true, ERROR);
|
||||||
Session::addMessageAfterRedirect(__('Task already assigned to this person!', 'processmaker'), true, ERROR);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//} else if (isset($_POST['delete'])) {
|
} elseif (isset($_POST['reminder'])) {
|
||||||
// // delete case from case table, this will also delete the tasks
|
// send notification remider as requested for this task
|
||||||
// $locCase = new PluginProcessmakerCase;
|
|
||||||
// if ($locCase->getFromDB($_POST['cases_id']) && $locCase->deleteCase()) {
|
|
||||||
// // request delete from pm itself
|
|
||||||
// $PM_SOAP->login(true);
|
|
||||||
|
|
||||||
// $resultPM = $PM_SOAP->deleteCase($locCase->fields['case_guid']);
|
$locCase = new PluginProcessmakerCase;
|
||||||
|
$locCase->getFromDB($_POST['cases_id']);
|
||||||
|
$glpi_item = new $_POST['itemtype'];
|
||||||
|
$glpi_item->getFromDB($_POST['items_id']);
|
||||||
|
$pm_task = new PluginProcessmakerTask($_POST['tasktype']);
|
||||||
|
$pm_task->getFromDB($_POST['tasks_id']);
|
||||||
|
$glpi_task = new $_POST['tasktype'];
|
||||||
|
$glpi_task->getFromDB($_POST['tasks_id']);
|
||||||
|
|
||||||
// if ($resultPM->status_code == 0) {
|
// send notification now!
|
||||||
// Session::addMessageAfterRedirect($LANG['processmaker']['item']['case']['deleted'], true, INFO);
|
$pm_task->sendNotification('task_reminder', $glpi_task, $glpi_item, $locCase);
|
||||||
// } else {
|
|
||||||
// Session::addMessageAfterRedirect($LANG['processmaker']['item']['case']['errordeleted'], true, ERROR);
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// Session::addMessageAfterRedirect($LANG['processmaker']['item']['case']['errordeleted'], true, ERROR);
|
|
||||||
// }
|
|
||||||
//} else if (isset($_POST['cancel'])) {
|
|
||||||
// // cancel case from PM
|
|
||||||
// $locCase = new PluginProcessmakerCase;
|
|
||||||
// $locCase->getFromDB($_POST['cases_id']);
|
|
||||||
// $resultPM = $PM_SOAP->cancelCase($locCase->fields['case_guid']); //, $_POST['plugin_processmaker_del_index'], $_POST['plugin_processmaker_users_id'] ) ;
|
|
||||||
// if ($resultPM->status_code === 0) {
|
|
||||||
// //$locCase = new PluginProcessmakerCase;
|
|
||||||
// //$locCase->getFromDB($_POST['cases_id']);
|
|
||||||
// if ($locCase->cancelCase()) {
|
|
||||||
// Session::addMessageAfterRedirect($LANG['processmaker']['item']['case']['cancelled'], true, INFO);
|
|
||||||
// } else {
|
|
||||||
// Session::addMessageAfterRedirect($LANG['processmaker']['item']['case']['errorcancelled'], true, ERROR);
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// if ($resultPM->status_code == 100 && $locCase->deleteCase()) { // case is draft then delete it
|
|
||||||
// // request delete from pm itself
|
|
||||||
// $PM_SOAP->login(true);
|
|
||||||
|
|
||||||
// $resultPM = $PM_SOAP->deleteCase($locCase->fields['case_guid']);
|
|
||||||
|
|
||||||
// if ($resultPM->status_code == 0) {
|
|
||||||
// Session::addMessageAfterRedirect($LANG['processmaker']['item']['case']['deleted'], true, INFO);
|
|
||||||
// } else {
|
|
||||||
// Session::addMessageAfterRedirect($LANG['processmaker']['item']['case']['errordeleted'], true, ERROR);
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// Session::addMessageAfterRedirect($LANG['processmaker']['item']['case']['errorcancelled']. " " . $resultPM->message, true, ERROR);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// to return to item
|
// to return to item
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ Html::helpHeader(__('New ticket'), $_SERVER['PHP_SELF'], $_SESSION["glpiname"]);
|
|||||||
if (isset($_REQUEST['case_guid'])) {
|
if (isset($_REQUEST['case_guid'])) {
|
||||||
$res = $DB->request(
|
$res = $DB->request(
|
||||||
'glpi_plugin_processmaker_cases', [
|
'glpi_plugin_processmaker_cases', [
|
||||||
' case_guid'=>$_REQUEST['case_guid']
|
'case_guid'=>$_REQUEST['case_guid']
|
||||||
]);
|
]);
|
||||||
$query = "SELECT * FROM glpi_plugin_processmaker_cases WHERE case_guid='".$_REQUEST['case_guid']."'";
|
$query = "SELECT * FROM glpi_plugin_processmaker_cases WHERE case_guid='".$_REQUEST['case_guid']."'";
|
||||||
//$res = $DB->query( $query );
|
//$res = $DB->query( $query );
|
||||||
|
|||||||
76
hook.php
76
hook.php
@@ -180,7 +180,10 @@ function plugin_pre_item_update_processmaker(CommonITILObject $parm) {
|
|||||||
* @param mixed $parm is the object
|
* @param mixed $parm is the object
|
||||||
*/
|
*/
|
||||||
function plugin_item_update_processmaker_satisfaction($parm) {
|
function plugin_item_update_processmaker_satisfaction($parm) {
|
||||||
|
global $PM_SOAP;
|
||||||
|
if (Session::isCron()) { // Task cron log with user admin
|
||||||
|
$PM_SOAP->login(true);
|
||||||
|
}
|
||||||
$cases = PluginProcessmakerCase::getIDsFromItem('Ticket', $parm->fields['tickets_id']);
|
$cases = PluginProcessmakerCase::getIDsFromItem('Ticket', $parm->fields['tickets_id']);
|
||||||
foreach ($cases as $cases_id) {
|
foreach ($cases as $cases_id) {
|
||||||
$locCase = new PluginProcessmakerCase;
|
$locCase = new PluginProcessmakerCase;
|
||||||
@@ -192,6 +195,33 @@ function plugin_item_update_processmaker_satisfaction($parm) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Summary of plugin_item_update_processmaker_user
|
||||||
|
* When a user login is changed, then must change it in the PM tables
|
||||||
|
* @param User $param is the user being changed
|
||||||
|
*/
|
||||||
|
function plugin_item_update_processmaker_user(User $param) {
|
||||||
|
// Must test if user login has been changed
|
||||||
|
// if yes, must change the login in the PM tables:
|
||||||
|
// USERS and RBAC_USERS, othewise the link in the processmaker_users table will be invalid
|
||||||
|
if (in_array('name', $param->updates)) {
|
||||||
|
// check if user is in the processmaker_user table
|
||||||
|
$pm_user = PluginProcessmakerUser::getPMUserId($param->getID());
|
||||||
|
if ($pm_user) {
|
||||||
|
// must update the user in PM tables
|
||||||
|
global $PM_SOAP;
|
||||||
|
if ($param->fields['is_active'] == 0 || $param->fields['is_deleted'] == 1) {
|
||||||
|
$status = "INACTIVE";
|
||||||
|
} else {
|
||||||
|
$status = "ACTIVE";
|
||||||
|
}
|
||||||
|
$PM_SOAP->login(true);
|
||||||
|
$pmResult = $PM_SOAP->updateUser( $pm_user, $param->fields['name'], $param->fields['firstname'], $param->fields['realname'], $status );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function plugin_processmaker_post_init() {
|
function plugin_processmaker_post_init() {
|
||||||
global $PM_DB, $PM_SOAP;
|
global $PM_DB, $PM_SOAP;
|
||||||
if (!isset($PM_DB)) {
|
if (!isset($PM_DB)) {
|
||||||
@@ -241,10 +271,11 @@ function plugin_item_update_processmaker_tasks($parm) {
|
|||||||
$locCase->getFromDB($pmTask->fields['plugin_processmaker_cases_id']);
|
$locCase->getFromDB($pmTask->fields['plugin_processmaker_cases_id']);
|
||||||
$srccase_guid = $locCase->fields['case_guid'];
|
$srccase_guid = $locCase->fields['case_guid'];
|
||||||
|
|
||||||
$msg = ' $locCase: '.str_replace("\n", "\n ", print_r($locCase, true))."\n";
|
//$msg = Toolbox::backtrace(false);
|
||||||
$msg .= ' $task: '.str_replace("\n", "\n ", print_r($parm, true))."\n";
|
//$msg .= ' $locCase: '.str_replace("\n", "\n ", print_r($locCase, true))."\n";
|
||||||
$msg .= ' $pmTask: '.str_replace("\n", "\n ", print_r($pmTask, true))."\n";
|
//$msg .= ' $task: '.str_replace("\n", "\n ", print_r($parm, true))."\n";
|
||||||
$msg .= "\n";
|
//$msg .= ' $pmTask: '.str_replace("\n", "\n ", print_r($pmTask, true))."\n";
|
||||||
|
//$msg .= "\n";
|
||||||
|
|
||||||
foreach ($DB->request( 'glpi_plugin_processmaker_caselinks', "is_active = 1 AND sourcetask_guid='".$pmTaskCat->fields['pm_task_guid']."'") as $targetTask) {
|
foreach ($DB->request( 'glpi_plugin_processmaker_caselinks', "is_active = 1 AND sourcetask_guid='".$pmTaskCat->fields['pm_task_guid']."'") as $targetTask) {
|
||||||
|
|
||||||
@@ -289,17 +320,17 @@ function plugin_item_update_processmaker_tasks($parm) {
|
|||||||
unset( $infoForTasks[ $casevar ] );
|
unset( $infoForTasks[ $casevar ] );
|
||||||
}
|
}
|
||||||
|
|
||||||
$msg .= " ***********\n";
|
//$msg .= " ***********\n";
|
||||||
$msg .= ' $targetTask: '.str_replace("\n", "\n ", print_r($targetTask, true))."\n";
|
//$msg .= ' $targetTask: '.str_replace("\n", "\n ", print_r($targetTask, true))."\n";
|
||||||
|
|
||||||
$targetTask['sourcecondition'] = str_replace( array_keys($infoForTasks), $infoForTasks, $targetTask['sourcecondition'] );
|
$targetTask['sourcecondition'] = str_replace( array_keys($infoForTasks), $infoForTasks, $targetTask['sourcecondition'] );
|
||||||
|
|
||||||
$eval = eval( "return (".$targetTask['sourcecondition']." ? 1 : 0);" );
|
$eval = eval( "return (".$targetTask['sourcecondition']." ? 1 : 0);" );
|
||||||
|
|
||||||
$msg .= ' $infoForTasks: '.str_replace("\n", "\n ", print_r($infoForTasks, true))."\n";
|
//$msg .= ' $infoForTasks: '.str_replace("\n", "\n ", print_r($infoForTasks, true))."\n";
|
||||||
$msg .= ' $targetTask[\'sourcecondition\']: '.str_replace("\n", "\n ", print_r($targetTask['sourcecondition'], true))."\n";
|
//$msg .= ' $targetTask[\'sourcecondition\']: '.str_replace("\n", "\n ", print_r($targetTask['sourcecondition'], true))."\n";
|
||||||
$msg .= ' $result: '."$eval\n";
|
//$msg .= ' $result: '."$eval\n";
|
||||||
$msg .= "\n";
|
//$msg .= "\n";
|
||||||
|
|
||||||
if ($eval) {
|
if ($eval) {
|
||||||
// look at each linked ticket if a case is attached and then if a task like $val is TO_DO
|
// look at each linked ticket if a case is attached and then if a task like $val is TO_DO
|
||||||
@@ -375,15 +406,22 @@ function plugin_item_update_processmaker_tasks($parm) {
|
|||||||
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Content-Length: ' . strlen($externalapplicationparams), 'Expect:']);
|
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Content-Length: ' . strlen($externalapplicationparams), 'Expect:']);
|
||||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
|
||||||
curl_setopt($ch, CURLOPT_VERBOSE, 1);
|
curl_setopt($ch, CURLOPT_VERBOSE, 1);
|
||||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $pmconfig->fields['ssl_verify']);
|
|
||||||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $pmconfig->fields['ssl_verify']);
|
|
||||||
|
|
||||||
//curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1 ) ;
|
if (isset($externalapplication['ssl_verify'])) {
|
||||||
//curl_setopt($ch, CURLOPT_PROXY, "localhost:8889");
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $externalapplication['ssl_verify']);
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $externalapplication['ssl_verify']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($externalapplication['proxy'])) {
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1 ) ;
|
||||||
|
curl_setopt($ch, CURLOPT_PROXY, $externalapplication['proxy']);
|
||||||
|
}
|
||||||
|
|
||||||
$response = curl_exec ($ch);
|
$response = curl_exec ($ch);
|
||||||
|
if ($response === false) {
|
||||||
//Toolbox::logDebug( $response ) ;
|
//throw new Exception(curl_error($ch), curl_errno($ch));
|
||||||
|
Toolbox::logDebug( curl_error($ch).":".curl_errno($ch) );
|
||||||
|
}
|
||||||
|
|
||||||
curl_close ($ch);
|
curl_close ($ch);
|
||||||
}
|
}
|
||||||
@@ -429,8 +467,8 @@ function plugin_item_update_processmaker_tasks($parm) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$msg .= "================\n";
|
//$msg .= "================\n";
|
||||||
Toolbox::logInFile("processmaker", $msg);
|
//Toolbox::logInFile("processmaker", $msg);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ class PluginProcessmakerCase extends CommonDBTM {
|
|||||||
//static public $items_id = 'items_id'; // Field name
|
//static public $items_id = 'items_id'; // Field name
|
||||||
static $rightname = 'plugin_processmaker_case';
|
static $rightname = 'plugin_processmaker_case';
|
||||||
|
|
||||||
|
private $process = null;
|
||||||
|
|
||||||
const DRAFT = 'DRAFT';
|
const DRAFT = 'DRAFT';
|
||||||
const TO_DO = 'TO_DO';
|
const TO_DO = 'TO_DO';
|
||||||
const COMPLETED = 'COMPLETED';
|
const COMPLETED = 'COMPLETED';
|
||||||
@@ -221,6 +223,123 @@ class PluginProcessmakerCase extends CommonDBTM {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Summary of unassignCase
|
||||||
|
* Will unassign the delIndex task, restoring the assigned group
|
||||||
|
* @param $delIndex int the delegation index
|
||||||
|
* @param $taskGuid string the GUID of the task
|
||||||
|
* @param $tasktype string the type of task (TicketTask, ChangeTask, ProblemTask)
|
||||||
|
* @param $tasks_id int the id of the task
|
||||||
|
* @param $itemtype string the type of the ITIL object (Ticket, Change, Problem)
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
function unassignCase($delIndex, $taskGuid, $tasktype, $tasks_id, $itemtype, $options) {
|
||||||
|
global $PM_DB, $PM_SOAP, $DB;
|
||||||
|
|
||||||
|
// un-claim task
|
||||||
|
// will unclaim the task
|
||||||
|
// to unclaim a task, we must un-assign the task in the APP_DELEGATION table
|
||||||
|
// and un-assign the task in glpi_itemtypeTask table
|
||||||
|
$groupname = '';
|
||||||
|
|
||||||
|
// should get the group that is assigned to the task in SELF_SERVICE assign type
|
||||||
|
$query = "SELECT TAS_GROUP_VARIABLE FROM TASK WHERE TAS_UID='".$taskGuid."' AND TAS_ASSIGN_TYPE='SELF_SERVICE' LIMIT 1;";
|
||||||
|
foreach($PM_DB->request($query) as $pmGroup) {
|
||||||
|
// should have only one record
|
||||||
|
if ($pmGroup['TAS_GROUP_VARIABLE'] == '') {
|
||||||
|
// then we are in the self-service with a group in the TASK_USER table
|
||||||
|
// TU_RELATION=2 is groups and TU_TYPE=1 means normal (= not adhoc)
|
||||||
|
// then get the group name from the CONTENT table
|
||||||
|
$query = "SELECT CONTENT.CON_VALUE FROM TASK_USER
|
||||||
|
JOIN CONTENT ON CONTENT.CON_ID=TASK_USER.USR_UID AND CONTENT.CON_CATEGORY='GRP_TITLE' AND CONTENT.CON_LANG = 'en'
|
||||||
|
WHERE TASK_USER.TAS_UID='".$taskGuid."' AND TASK_USER.TU_RELATION=2 AND TASK_USER.TU_TYPE=1 LIMIT 1;";
|
||||||
|
|
||||||
|
foreach ($PM_DB->request($query) as $onlyrec) {
|
||||||
|
$groupname = $onlyrec['CON_VALUE'];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// then we are in the self-service with a case variable that contains either a group either an array of users
|
||||||
|
// array of users is not yet supported by PM plugin, as GLPI tasks have one and only one users_id_tech.
|
||||||
|
// group guid (in the case variable) must be retrieved from APP DATA
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
// Currently this case is not manageable by GLPI
|
||||||
|
// as GLPI needs at least a user or a group to be assigned to a task
|
||||||
|
// and when using the self-service value based assignment, there
|
||||||
|
// is a case variable that contains a list of users. This list of users cannot be mapped to a group in GLI
|
||||||
|
// OR may be we may create an artificial group in GLPI that would contains the list of users
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// and then we get the name of the group from the CONTENT table
|
||||||
|
//$query = "SELECT CON_VALUE FROM CONTENT
|
||||||
|
// WHERE CONTENT.CON_ID='$groupId' AND CONTENT.CON_CATEGORY='GRP_TITLE' AND CONTENT.CON_LANG='en' ;";
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$groups_id_tech = PluginProcessmakerProcessmaker::getGLPIGroupId($groupname);
|
||||||
|
|
||||||
|
if ($groups_id_tech) {
|
||||||
|
// unclaim the case only when a GLPI group can be found
|
||||||
|
|
||||||
|
$query = "UPDATE APP_DELEGATION SET USR_UID='', DEL_INIT_DATE=NULL, USR_ID=0 WHERE APP_NUMBER=".$this->getID()." AND DEL_INDEX=$delIndex;";
|
||||||
|
$PM_DB->query($query);
|
||||||
|
|
||||||
|
$glpi_task = new $tasktype;
|
||||||
|
$glpi_task->getFromDB($tasks_id);
|
||||||
|
$foreignkey = getForeignKeyFieldForItemType( $itemtype );
|
||||||
|
|
||||||
|
$donotif = PluginProcessmakerNotificationTargetProcessmaker::saveNotificationState(false); // do not send notification yet
|
||||||
|
$glpi_task->update( ['id' => $glpi_task->getID(),
|
||||||
|
$foreignkey => $glpi_task->fields[$foreignkey],
|
||||||
|
'users_id_tech' => 0,
|
||||||
|
'groups_id_tech' => $groups_id_tech,
|
||||||
|
'update' => true] );
|
||||||
|
PluginProcessmakerNotificationTargetProcessmaker::restoreNotificationState($donotif);
|
||||||
|
|
||||||
|
// send notification now!
|
||||||
|
$pm_task = new PluginProcessmakerTask($tasktype);
|
||||||
|
$pm_task->getFromDB($tasks_id);
|
||||||
|
$glpi_item = new $itemtype;
|
||||||
|
$glpi_item->getFromDB($glpi_task->fields[$foreignkey]);
|
||||||
|
$pm_task->sendNotification('task_unclaim', $glpi_task, $glpi_item, $this);
|
||||||
|
|
||||||
|
// create an information task and add comment
|
||||||
|
$pm_process = $this->getProcess();
|
||||||
|
$dbu = new DbUtils;
|
||||||
|
$info = __('<b>Task un-claimed!</b><br/><b>Case: </b>%s<br/><b>Task: </b>"%s" has been un-assigned from "%s" and assigned to "%s" group.<br/><b>Reason: </b>%s', 'processmaker');
|
||||||
|
$info .= "<input name='caseid' type='hidden' value='".$this->getID()."'><input name='taskid' type='hidden' value='".$pm_task->getID()."'>";
|
||||||
|
$taskCat = new TaskCategory;
|
||||||
|
$taskCat->getFromDB( $glpi_task->fields['taskcategories_id'] );
|
||||||
|
$info = sprintf($info,
|
||||||
|
$this->getNameID(['forceid' => true]),
|
||||||
|
DropdownTranslation::getTranslatedValue($glpi_task->fields['taskcategories_id'], 'TaskCategory', 'name', $_SESSION['glpilanguage'], $taskCat->fields['name']),
|
||||||
|
Html::clean($dbu->getUserName(isset($glpi_task->oldvalues['users_id_tech']) ? $glpi_task->oldvalues['users_id_tech'] : 0)),
|
||||||
|
Html::clean($groupname),
|
||||||
|
$options['comment']
|
||||||
|
);
|
||||||
|
// unescape some chars and replace CRLF, CR or LF by <br/>
|
||||||
|
$info = str_replace(["\\'", '\\"', '\r\n', '\r', '\n'], ["'", '"', '<br>', '<br>', '<br>'], $info);
|
||||||
|
|
||||||
|
$glpi_task->add([$foreignkey => $glpi_task->fields[$foreignkey],
|
||||||
|
'is_private' => 0, // a post-only user can't create private task
|
||||||
|
'taskcategories_id' => $pm_process->fields['taskcategories_id'],
|
||||||
|
'content' => $DB->escape($info),
|
||||||
|
'users_id' => $PM_SOAP->taskWriter,
|
||||||
|
'state' => Planning::INFO,
|
||||||
|
'users_id_tech' => Session::getLoginUserID(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Summary of reassignCase
|
* Summary of reassignCase
|
||||||
* @param mixed $delIndex
|
* @param mixed $delIndex
|
||||||
@@ -230,7 +349,7 @@ class PluginProcessmakerCase extends CommonDBTM {
|
|||||||
* @param mixed $users_id_target
|
* @param mixed $users_id_target
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
function reassignCase($delIndex, $taskGuid, $delThread, $users_id_source, $users_id_target) {
|
function reassignCase($delIndex, $taskGuid, $delThread, $users_id_source, $users_id_target, $options) {
|
||||||
global $PM_SOAP;
|
global $PM_SOAP;
|
||||||
$users_guid_source = ''; // by default
|
$users_guid_source = ''; // by default
|
||||||
if ($users_id_source !== 0) { // when task is not 'to be claimed'
|
if ($users_id_source !== 0) { // when task is not 'to be claimed'
|
||||||
@@ -253,7 +372,7 @@ class PluginProcessmakerCase extends CommonDBTM {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->reassignTask($delIndex, $newDelIndex, $delThread, $newDelThread, $users_id_target );
|
$this->reassignTask($delIndex, $newDelIndex, $delThread, $newDelThread, $users_id_target, $options);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -266,15 +385,15 @@ class PluginProcessmakerCase extends CommonDBTM {
|
|||||||
* @param mixed $newDelIndex
|
* @param mixed $newDelIndex
|
||||||
* @param mixed $newTech
|
* @param mixed $newTech
|
||||||
*/
|
*/
|
||||||
public function reassignTask ($delIndex, $newDelIndex, $delThread, $newDelThread, $newTech) {
|
public function reassignTask ($delIndex, $newDelIndex, $delThread, $newDelThread, $newTech, $options) {
|
||||||
global $DB;
|
global $DB, $PM_SOAP;
|
||||||
|
|
||||||
$dbu = new DbUtils;
|
$dbu = new DbUtils;
|
||||||
$pm_task_row = $dbu->getAllDataFromTable(PluginProcessmakerTask::getTable(), ['plugin_processmaker_cases_id' => $this->getID(), 'del_index' => $delIndex, 'del_thread' => $delThread]);
|
$pm_task_row = $dbu->getAllDataFromTable(PluginProcessmakerTask::getTable(), ['plugin_processmaker_cases_id' => $this->getID(), 'del_index' => $delIndex, 'del_thread' => $delThread]);
|
||||||
if ($pm_task_row && count($pm_task_row) == 1) {
|
if ($pm_task_row && count($pm_task_row) == 1) {
|
||||||
$pm_task_row = array_shift($pm_task_row);
|
$pm_task_row = array_shift($pm_task_row);
|
||||||
$glpi_task = new $pm_task_row['itemtype'];
|
$glpi_task = new $pm_task_row['itemtype'];
|
||||||
$glpi_task->getFromDB( $pm_task_row['items_id'] );
|
$glpi_task->getFromDB($pm_task_row['items_id']);
|
||||||
|
|
||||||
$itilobject_itemtype = $this->fields['itemtype'];
|
$itilobject_itemtype = $this->fields['itemtype'];
|
||||||
$foreignkey = getForeignKeyFieldForItemType( $itilobject_itemtype );
|
$foreignkey = getForeignKeyFieldForItemType( $itilobject_itemtype );
|
||||||
@@ -289,37 +408,7 @@ class PluginProcessmakerCase extends CommonDBTM {
|
|||||||
'update' => true] );
|
'update' => true] );
|
||||||
PluginProcessmakerNotificationTargetProcessmaker::restoreNotificationState($donotif);
|
PluginProcessmakerNotificationTargetProcessmaker::restoreNotificationState($donotif);
|
||||||
|
|
||||||
// Notification management
|
|
||||||
// search if at least one active notification is existing for that pm task with that event 'task_update_'.$glpi_task->fields['taskcategories_id']
|
|
||||||
$res = PluginProcessmakerNotificationTargetTask::getNotifications('task_update', $glpi_task->fields['taskcategories_id'], $this->fields['entities_id']);
|
|
||||||
if ($res['notifications'] && count($res['notifications']) > 0) {
|
|
||||||
$pm_task = new PluginProcessmakerTask($pm_task_row['itemtype']);
|
|
||||||
$pm_task->getFromDB($pm_task_row['items_id']);
|
|
||||||
NotificationEvent::raiseEvent($res['event'],
|
|
||||||
$pm_task,
|
|
||||||
['plugin_processmaker_cases_id' => $this->getID(),
|
|
||||||
'itemtype' => $pm_task_row['itemtype'],
|
|
||||||
'task_id' => $glpi_task->getID(),
|
|
||||||
'old_users_id_tech' => $glpi_task->oldvalues['users_id_tech'],
|
|
||||||
'is_private' => isset($glpi_task->fields['is_private']) ? $glpi_task->fields['is_private'] : 0,
|
|
||||||
'entities_id' => $this->fields['entities_id'],
|
|
||||||
'case' => $this
|
|
||||||
]);
|
|
||||||
} else {
|
|
||||||
$item = new $itilobject_itemtype;
|
|
||||||
$item->getFromDB($glpi_task->fields[$foreignkey]);
|
|
||||||
NotificationEvent::raiseEvent('update_task',
|
|
||||||
$item,
|
|
||||||
['plugin_processmaker_cases_id' => $this->getID(),
|
|
||||||
'itemtype' => $pm_task_row['itemtype'],
|
|
||||||
'task_id' => $glpi_task->getID(),
|
|
||||||
'is_private' => isset($glpi_task->fields['is_private']) ? $glpi_task->fields['is_private'] : 0
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// then update the delIndex and delThread
|
// then update the delIndex and delThread
|
||||||
//$query = "UPDATE glpi_plugin_processmaker_tasks SET del_index = $newDelIndex, del_thread = $newDelThread WHERE id={$row['id']}; ";
|
|
||||||
//$res = $DB->query($query);
|
|
||||||
$DB->Update( 'glpi_plugin_processmaker_tasks', [
|
$DB->Update( 'glpi_plugin_processmaker_tasks', [
|
||||||
'del_index' => $newDelIndex,
|
'del_index' => $newDelIndex,
|
||||||
'del_thread' => $newDelThread
|
'del_thread' => $newDelThread
|
||||||
@@ -327,10 +416,69 @@ class PluginProcessmakerCase extends CommonDBTM {
|
|||||||
'id' => $pm_task_row['id']
|
'id' => $pm_task_row['id']
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// send notification now!
|
||||||
|
$pm_task = new PluginProcessmakerTask($pm_task_row['itemtype']);
|
||||||
|
$pm_task->getFromDB($pm_task_row['items_id']);
|
||||||
|
$glpi_item = new $itilobject_itemtype;
|
||||||
|
$glpi_item->getFromDB($glpi_task->fields[$foreignkey]);
|
||||||
|
$pm_task->sendNotification('task_reassign', $glpi_task, $glpi_item, $this);
|
||||||
|
|
||||||
|
// create an information task and add comment
|
||||||
|
$pm_process = $this->getProcess();
|
||||||
|
$old_users_tech_id = isset($glpi_task->oldvalues['users_id_tech']) ? $glpi_task->oldvalues['users_id_tech'] : 0;
|
||||||
|
$taskCat = new TaskCategory;
|
||||||
|
$taskCat->getFromDB( $glpi_task->fields['taskcategories_id'] );
|
||||||
|
$task_name = DropdownTranslation::getTranslatedValue($glpi_task->fields['taskcategories_id'], 'TaskCategory', 'name', $_SESSION['glpilanguage'], $taskCat->fields['name']);
|
||||||
|
$new_tech_name = Html::clean($dbu->getUserName($newTech));
|
||||||
|
if ($old_users_tech_id) {
|
||||||
|
$info = __('<b>Task re-assigned!</b><br/><b>Case: </b>%s<br/><b>Task: </b>"%s" has been re-assigned from "%s" to "%s".<br/><b>Reason: </b>%s', 'processmaker');
|
||||||
|
$info = sprintf($info,
|
||||||
|
$this->getNameID(['forceid' => true]),
|
||||||
|
$task_name,
|
||||||
|
Html::clean($dbu->getUserName(isset($glpi_task->oldvalues['users_id_tech']) ? $glpi_task->oldvalues['users_id_tech'] : 0)),
|
||||||
|
$new_tech_name,
|
||||||
|
$options['comment']
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$info = __('<b>Task assigned!</b><br/><b>Case: </b>%s<br/><b>Task: </b>"%s" has been assigned to "%s".<br/><b>Reason: </b>%s', 'processmaker');
|
||||||
|
$info = sprintf($info,
|
||||||
|
$this->getNameID(['forceid' => true]),
|
||||||
|
$task_name,
|
||||||
|
$new_tech_name,
|
||||||
|
$options['comment']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$info .= "<input name='caseid' type='hidden' value='".$this->getID()."'><input name='taskid' type='hidden' value='".$pm_task->getID()."'>";
|
||||||
|
|
||||||
|
// unescape some chars and replace CRLF, CR or LF by <br/>
|
||||||
|
$info = str_replace(["\\'", '\\"', '\r\n', '\r', '\n'], ["'", '"', '<br>', '<br>', '<br>'], $info);
|
||||||
|
|
||||||
|
$glpi_task->add([$foreignkey => $glpi_task->fields[$foreignkey],
|
||||||
|
'is_private' => 0, // a post-only user can't create private task
|
||||||
|
'taskcategories_id' => $pm_process->fields['taskcategories_id'],
|
||||||
|
'content' => $DB->escape($info),
|
||||||
|
'users_id' => $PM_SOAP->taskWriter,
|
||||||
|
'state' => Planning::INFO,
|
||||||
|
'users_id_tech' => Session::getLoginUserID(),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Summary of getProcess
|
||||||
|
* Returns process object
|
||||||
|
* @return bool|PluginProcessmakerProcess
|
||||||
|
*/
|
||||||
|
function getProcess() {
|
||||||
|
$pm_process = new PluginProcessmakerProcess;
|
||||||
|
if (!$this->process && $pm_process->getFromDB($this->fields['plugin_processmaker_processes_id'])) {
|
||||||
|
$this->process = $pm_process;
|
||||||
|
}
|
||||||
|
return $this->process;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Summary of showCaseProperties
|
* Summary of showCaseProperties
|
||||||
*/
|
*/
|
||||||
@@ -721,16 +869,13 @@ class PluginProcessmakerCase extends CommonDBTM {
|
|||||||
echo "<tr class='tab_bg_2'><td class='tab_bg_2'>";
|
echo "<tr class='tab_bg_2'><td class='tab_bg_2'>";
|
||||||
echo __('Select the process you want to add', 'processmaker');
|
echo __('Select the process you want to add', 'processmaker');
|
||||||
echo "</td><td class='tab_bg_2'>";
|
echo "</td><td class='tab_bg_2'>";
|
||||||
$condition[] = ['is_active' => 1];
|
$condition['is_active'] = 1;
|
||||||
if ($itemtype == 'Ticket') {
|
if ($itemtype == 'Ticket' && $item->fields['type'] == Ticket::INCIDENT_TYPE) {
|
||||||
$condition[] = ['is_incident' => 1];
|
$condition['is_incident'] = 1;
|
||||||
//$is_itemtype = "AND is_incident=1";
|
} else if ($itemtype == 'Ticket' && $item->fields['type'] == Ticket::DEMAND_TYPE) {
|
||||||
if ($item->fields['type'] == Ticket::DEMAND_TYPE) {
|
$condition['is_request'] = 1;
|
||||||
$condition[] = ['is_request' => 1];
|
|
||||||
//$is_itemtype = "AND is_request=1";
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
$condition[] = ['is_'.strtolower($itemtype) => 1];
|
$condition['is_'.strtolower($itemtype)] = 1;
|
||||||
//$is_itemtype = "AND is_".strtolower($itemtype)."=1";
|
//$is_itemtype = "AND is_".strtolower($itemtype)."=1";
|
||||||
}
|
}
|
||||||
PluginProcessmakerProcess::dropdown(['value' => 0,
|
PluginProcessmakerProcess::dropdown(['value' => 0,
|
||||||
|
|||||||
@@ -271,4 +271,15 @@ class PluginProcessmakerCaselink extends CommonDBTM {
|
|||||||
return $tab;
|
return $tab;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function prepareInputForUpdate($input) {
|
||||||
|
return Toolbox::unclean_cross_side_scripting_deep($input);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function prepareInputForAdd($input) {
|
||||||
|
return Toolbox::unclean_cross_side_scripting_deep($input);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ class PluginProcessmakerConfig extends CommonDBTM {
|
|||||||
if (!$config->fields['maintenance']) {
|
if (!$config->fields['maintenance']) {
|
||||||
|
|
||||||
echo "<tr class='tab_bg_1'>";
|
echo "<tr class='tab_bg_1'>";
|
||||||
echo "<td >".__('Server URL (must be in same domain than GLPI)', 'processmaker')."</td><td >";
|
echo "<td >".__('Server URL (must be in same domain than GLPI, if GLPI is using HTTPS, PM server must also use HTTPS)', 'processmaker')."</td><td >";
|
||||||
echo "<input size='50' type='text' name='pm_server_URL' value='".$config->fields['pm_server_URL']."'>";
|
echo "<input size='50' type='text' name='pm_server_URL' value='".$config->fields['pm_server_URL']."'>";
|
||||||
echo "</td></tr>\n";
|
echo "</td></tr>\n";
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,18 @@
|
|||||||
* PluginProcessmakerNotificationTargetProcessmaker short summary.
|
* PluginProcessmakerNotificationTargetProcessmaker short summary.
|
||||||
*
|
*
|
||||||
* PluginProcessmakerNotificationTargetProcessmaker description.
|
* PluginProcessmakerNotificationTargetProcessmaker description.
|
||||||
*
|
*
|
||||||
* Common notificationtarget class for cases and tasks
|
* Common notificationtarget class for cases and tasks
|
||||||
*
|
*
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @author MoronO
|
* @author MoronO
|
||||||
*/
|
*/
|
||||||
class PluginProcessmakerNotificationTargetProcessmaker extends NotificationTarget {
|
class PluginProcessmakerNotificationTargetProcessmaker extends NotificationTargetCommonITILObject {
|
||||||
|
|
||||||
|
const PM_USER_TYPE = 1000;
|
||||||
|
|
||||||
|
const OLD_TASK_TECH_IN_CHARGE = 1;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Summary of saveNotificationState
|
* Summary of saveNotificationState
|
||||||
@@ -58,11 +63,16 @@ class PluginProcessmakerNotificationTargetProcessmaker extends NotificationTarge
|
|||||||
'case.id' => __('Case id', 'processmaker'),
|
'case.id' => __('Case id', 'processmaker'),
|
||||||
'case.title' => __('Case title', 'processmaker'),
|
'case.title' => __('Case title', 'processmaker'),
|
||||||
'case.description' => __('Case description', 'processmaker'),
|
'case.description' => __('Case description', 'processmaker'),
|
||||||
'case.url' => __('URL'),
|
'case.url' => __('Case URL'),
|
||||||
'var.XXX' => __('Case variable \'XXX\'', 'processmaker'),
|
'var.XXX' => __('Case variable \'XXX\'', 'processmaker'),
|
||||||
'array.YYY' => __('List of values in \'YYY\' array', 'processmaker'),
|
'array.YYY' => __('List of values in \'YYY\' array', 'processmaker'),
|
||||||
'array.numberofYYY' => __('Number of rows in \'YYY\' array', 'processmaker'),
|
'array.numberofYYY' => __('Number of rows in \'YYY\' array', 'processmaker'),
|
||||||
'array.YYY.colname' => __('Value for colname in case array \'YYY\'', 'processamker')
|
'array.YYY.colname' => __('Value for colname in \'YYY\' array', 'processmaker'),
|
||||||
|
'1darray.ZZZ.key' => __('Value for key in \'ZZZ\' assoc array (1-dimension array)', 'processmaker'),
|
||||||
|
'item.type' => __('Item type', 'processmaker'),
|
||||||
|
'item.id' => __('Item id', 'processmaker'),
|
||||||
|
'item.url' => __('Item URL', 'processmaker'),
|
||||||
|
'item.title' => __('Item title', 'processmaker')
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($tags as $tag => $label) {
|
foreach ($tags as $tag => $label) {
|
||||||
@@ -76,6 +86,9 @@ class PluginProcessmakerNotificationTargetProcessmaker extends NotificationTarge
|
|||||||
$elt['allowed_values'] = [__('YYY is to be replaced by any array variables', 'processmaker')];
|
$elt['allowed_values'] = [__('YYY is to be replaced by any array variables', 'processmaker')];
|
||||||
$elt['foreach'] = true;
|
$elt['foreach'] = true;
|
||||||
}
|
}
|
||||||
|
if ($tag == '1darray.ZZZ.key') {
|
||||||
|
$elt['allowed_values'] = [__('ZZZ is to be replaced by any assoc array variables (1-dimension array with key/value pairs)', 'processmaker')];
|
||||||
|
}
|
||||||
$this->addTagToList($elt);
|
$this->addTagToList($elt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +100,7 @@ class PluginProcessmakerNotificationTargetProcessmaker extends NotificationTarge
|
|||||||
* Get all data needed for template processing
|
* Get all data needed for template processing
|
||||||
**/
|
**/
|
||||||
public function addDataForTemplate($event, $options = []) {
|
public function addDataForTemplate($event, $options = []) {
|
||||||
global $PM_DB, $CFG_GLPI;
|
global $CFG_GLPI, $PM_DB;
|
||||||
|
|
||||||
$excluded = ['_VAR_CHANGED_',
|
$excluded = ['_VAR_CHANGED_',
|
||||||
'PIN',
|
'PIN',
|
||||||
@@ -107,11 +120,6 @@ class PluginProcessmakerNotificationTargetProcessmaker extends NotificationTarge
|
|||||||
$process->getFromDB($options['case']->fields['plugin_processmaker_processes_id']);
|
$process->getFromDB($options['case']->fields['plugin_processmaker_processes_id']);
|
||||||
$taskcat_id = $process->fields['taskcategories_id'];
|
$taskcat_id = $process->fields['taskcategories_id'];
|
||||||
|
|
||||||
// set defaults to all
|
|
||||||
foreach ($this->tags as $key => $val) {
|
|
||||||
$this->data["##$key##"] = "-";
|
|
||||||
}
|
|
||||||
|
|
||||||
// get case variable values
|
// get case variable values
|
||||||
$res = $PM_DB->query("SELECT APP_DATA, APP_TITLE, APP_DESCRIPTION FROM APPLICATION WHERE APP_NUMBER = ".$options['case']->fields['id']);
|
$res = $PM_DB->query("SELECT APP_DATA, APP_TITLE, APP_DESCRIPTION FROM APPLICATION WHERE APP_NUMBER = ".$options['case']->fields['id']);
|
||||||
if ($res && $PM_DB->numrows($res) == 1) {
|
if ($res && $PM_DB->numrows($res) == 1) {
|
||||||
@@ -125,10 +133,16 @@ class PluginProcessmakerNotificationTargetProcessmaker extends NotificationTarge
|
|||||||
// add numberof for count of rows
|
// add numberof for count of rows
|
||||||
$this->data["##array.numberof$key##"] = count($val);
|
$this->data["##array.numberof$key##"] = count($val);
|
||||||
// get the keys/vals of the sub-array
|
// get the keys/vals of the sub-array
|
||||||
foreach ($val as $row) {
|
foreach ($val as $attribute => $row) {
|
||||||
foreach ($row as $col_name => $col_val) {
|
if (is_array($row)) {
|
||||||
$this->data["array.$key"][]["##array.$key.$col_name##"] = $col_val;
|
$index = isset($this->data["array.$key"]) ? count($this->data["array.$key"]) : 0;
|
||||||
$this->data["##lang.array.$key.$col_name##"] = $col_name;
|
foreach ($row as $col_name => $col_val) {
|
||||||
|
$this->data["array.$key"][$index]["##array.$key.$col_name##"] = $col_val;
|
||||||
|
$this->data["##lang.array.$key.$col_name##"] = $col_name;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$this->data["1darray.$key"]["##array.$key.$attribute##"] = $row;
|
||||||
|
$this->data["##lang.1darray.$key.$attribute##"] = $attribute;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -145,18 +159,29 @@ class PluginProcessmakerNotificationTargetProcessmaker extends NotificationTarge
|
|||||||
$this->data['##case.id##'] = $options['case']->fields['id'];
|
$this->data['##case.id##'] = $options['case']->fields['id'];
|
||||||
|
|
||||||
// case URL
|
// case URL
|
||||||
$this->data['##case.url##'] = $CFG_GLPI["url_base"]."/index.php?redirect=".urlencode("/plugins/processmaker/front/case.form.php?id=".$options['case']->fields['id']);
|
$this->data['##case.url##'] = $this->formatURL($options['additionnaloption']['usertype'],
|
||||||
|
urlencode(urlencode($CFG_GLPI["url_base"] .
|
||||||
|
PluginProcessmakerCase::getFormURLWithID($options['case']->fields['id'], false))));
|
||||||
// parent task information: meta data on process
|
// parent task information: meta data on process
|
||||||
// will get parent of task which is the process task category
|
// will get parent of task which is the process task category
|
||||||
$tmp_taskcatinfo['name'] = DropdownTranslation::getTranslatedValue( $taskcat_id, 'TaskCategory', 'name');
|
$tmp_taskcatinfo['name'] = DropdownTranslation::getTranslatedValue($taskcat_id, 'TaskCategory', 'name');
|
||||||
$tmp_taskcatinfo['comment'] = DropdownTranslation::getTranslatedValue( $taskcat_id, 'TaskCategory', 'comment');
|
$tmp_taskcatinfo['comment'] = DropdownTranslation::getTranslatedValue($taskcat_id, 'TaskCategory', 'comment');
|
||||||
// process title
|
// process title
|
||||||
$this->data['##process.categoryid##'] = $taskcat_id;
|
$this->data['##process.categoryid##'] = $taskcat_id;
|
||||||
$this->data['##process.category##'] = $tmp_taskcatinfo['name'];
|
$this->data['##process.category##'] = $tmp_taskcatinfo['name'];
|
||||||
$this->data['##process.categorycomment##'] = $tmp_taskcatinfo['comment'];
|
$this->data['##process.categorycomment##'] = $tmp_taskcatinfo['comment'];
|
||||||
|
|
||||||
// add labels
|
// add information about item that hosts the case
|
||||||
|
$item = new $options['case']->fields['itemtype'];
|
||||||
|
$item->getFromDB($options['case']->fields['items_id']);
|
||||||
|
$this->data['##item.type##'] = $item->getTypeName(1);
|
||||||
|
$this->data['##item.id##'] = sprintf("%07d", $options['case']->fields['items_id']); // to have items_id with 7 digits with leading 0
|
||||||
|
$this->data['##item.url##'] = $this->formatURL($options['additionnaloption']['usertype'],
|
||||||
|
urlencode(urlencode($CFG_GLPI["url_base"] .
|
||||||
|
$item::getFormURLWithID($options['case']->fields['items_id'], false))));
|
||||||
|
$this->data['##item.title##'] = HTML::entities_deep($item->fields['name']);
|
||||||
|
|
||||||
|
// add labels to tags that are not set
|
||||||
$this->getTags();
|
$this->getTags();
|
||||||
foreach ($this->tag_descriptions[NotificationTarget::TAG_LANGUAGE] as $tag => $values) {
|
foreach ($this->tag_descriptions[NotificationTarget::TAG_LANGUAGE] as $tag => $values) {
|
||||||
if (!isset($this->data[$tag])) {
|
if (!isset($this->data[$tag])) {
|
||||||
@@ -165,4 +190,36 @@ class PluginProcessmakerNotificationTargetProcessmaker extends NotificationTarge
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get header to add to content
|
||||||
|
**/
|
||||||
|
function getContentHeader() {
|
||||||
|
|
||||||
|
if ($this->getMode() == \Notification_NotificationTemplate::MODE_MAIL
|
||||||
|
&& MailCollector::getNumberOfActiveMailCollectors()
|
||||||
|
) {
|
||||||
|
return NotificationTargetTicket::HEADERTAG.' '.__('To answer by email, write above this line').' '.
|
||||||
|
NotificationTargetTicket::HEADERTAG;
|
||||||
|
}
|
||||||
|
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get footer to add to content
|
||||||
|
**/
|
||||||
|
function getContentFooter() {
|
||||||
|
|
||||||
|
if ($this->getMode() == \Notification_NotificationTemplate::MODE_MAIL
|
||||||
|
&& MailCollector::getNumberOfActiveMailCollectors()
|
||||||
|
) {
|
||||||
|
return NotificationTargetTicket::FOOTERTAG.' '.__('To answer by email, write under this line').' '.
|
||||||
|
NotificationTargetTicket::FOOTERTAG;
|
||||||
|
}
|
||||||
|
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -12,17 +12,33 @@ if (!defined('GLPI_ROOT')) {
|
|||||||
// Class NotificationTarget
|
// Class NotificationTarget
|
||||||
class PluginProcessmakerNotificationTargetTask extends PluginProcessmakerNotificationTargetProcessmaker {
|
class PluginProcessmakerNotificationTargetTask extends PluginProcessmakerNotificationTargetProcessmaker {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Summary of getDefaultEvents
|
* Summary of getDefaultEvents
|
||||||
* @return array[]
|
* @return array[]
|
||||||
*/
|
*/
|
||||||
private static function getDefaultEvents() {
|
private static function getDefaultEvents() {
|
||||||
return ['task_add' => ['event' => 'task_add_', 'label' => __('New task')],
|
return ['task_add' => ['event' => 'task_add_', 'label' => __('Task add'), 'glpi' => 'add_task'],
|
||||||
'task_update' => ['event' => 'task_update_', 'label' => __('Update of a task')]
|
'task_reassign' => ['event' => 'task_reassign_', 'label' => __('Task re-assign'), 'glpi' => 'update_task'],
|
||||||
|
'task_unclaim' => ['event' => 'task_unclaim_', 'label' => __('Task un-claim'), 'glpi' => 'update_task'],
|
||||||
|
'task_done' => ['event' => 'task_done_', 'label' => __('Task done'), 'glpi' => 'update_task'],
|
||||||
|
'task_reminder' => ['event' => 'task_reminder_', 'label' => __('Task reminder'), 'glpi' => 'update_task']
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Summary of getDefaultGLPIEvents
|
||||||
|
* Will return the GLPI default task event matching a self type
|
||||||
|
* @param string $type
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
static function getDefaultGLPIEvents($type) {
|
||||||
|
$events = self::getDefaultEvents();
|
||||||
|
return $events[$type]['glpi'];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Summary of getNotification
|
* Summary of getNotification
|
||||||
* @param mixed $evt
|
* @param mixed $evt
|
||||||
@@ -53,9 +69,7 @@ class PluginProcessmakerNotificationTargetTask extends PluginProcessmakerNotific
|
|||||||
$table = PluginProcessmakerTaskCategory::getTable();
|
$table = PluginProcessmakerTaskCategory::getTable();
|
||||||
$ptable = PluginProcessmakerProcess::getTable();
|
$ptable = PluginProcessmakerProcess::getTable();
|
||||||
$query = "SELECT $table.taskcategories_id AS taskcat, $ptable.taskcategories_id AS ptaskcat FROM $table
|
$query = "SELECT $table.taskcategories_id AS taskcat, $ptable.taskcategories_id AS ptaskcat FROM $table
|
||||||
LEFT JOIN $ptable ON $ptable.id=$table.plugin_processmaker_processes_id
|
LEFT JOIN $ptable ON $ptable.id=$table.plugin_processmaker_processes_id";
|
||||||
WHERE $table.is_active = 1
|
|
||||||
AND $ptable.is_active = 1";
|
|
||||||
|
|
||||||
$ptaskcats = [];
|
$ptaskcats = [];
|
||||||
$temp = new TaskCategory;
|
$temp = new TaskCategory;
|
||||||
@@ -66,8 +80,9 @@ class PluginProcessmakerNotificationTargetTask extends PluginProcessmakerNotific
|
|||||||
}
|
}
|
||||||
$temp->getFromDB($row['taskcat']);
|
$temp->getFromDB($row['taskcat']);
|
||||||
|
|
||||||
$actions[$defaultEvents['task_add']['event'].$row['taskcat']] = $ptaskcats[$row['ptaskcat']]." > ".$temp->fields['name'].": " . $defaultEvents['task_add']['label'];
|
foreach($defaultEvents as $events) {
|
||||||
$actions[$defaultEvents['task_update']['event'].$row['taskcat']] = $ptaskcats[$row['ptaskcat']]." > ".$temp->fields['name'].": " . $defaultEvents['task_update']['label'];
|
$actions[$events['event'].$row['taskcat']] = $ptaskcats[$row['ptaskcat']]." > ".$temp->fields['name'].": " . $events['label'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $actions;
|
return $actions;
|
||||||
@@ -80,7 +95,7 @@ class PluginProcessmakerNotificationTargetTask extends PluginProcessmakerNotific
|
|||||||
public function addDataForTemplate($event, $options = []) {
|
public function addDataForTemplate($event, $options = []) {
|
||||||
global $PM_DB, $CFG_GLPI;
|
global $PM_DB, $CFG_GLPI;
|
||||||
|
|
||||||
if (!isset($options['case'])) {
|
if (!isset($options['case']) || $options['case'] == null) {
|
||||||
$mycase = new PluginProcessmakerCase;
|
$mycase = new PluginProcessmakerCase;
|
||||||
$mycase->getFromDB($options['plugin_processmaker_cases_id']);
|
$mycase->getFromDB($options['plugin_processmaker_cases_id']);
|
||||||
$options['case'] = $mycase;
|
$options['case'] = $mycase;
|
||||||
@@ -92,12 +107,12 @@ class PluginProcessmakerNotificationTargetTask extends PluginProcessmakerNotific
|
|||||||
$baseevent = $locevent[0].'_'.$locevent[1];
|
$baseevent = $locevent[0].'_'.$locevent[1];
|
||||||
$taskcat_id = $locevent[2];
|
$taskcat_id = $locevent[2];
|
||||||
|
|
||||||
// task action: add or update
|
// task action: add, update or done
|
||||||
$this->data['##task.action##'] = $events[$baseevent]['label'];
|
$this->data['##task.action##'] = $events[$baseevent]['label'];
|
||||||
|
|
||||||
// task category information: meta data on task
|
// task category information: meta data on task
|
||||||
$tmp_taskcatinfo['name'] = DropdownTranslation::getTranslatedValue( $taskcat_id, 'TaskCategory', 'name');
|
$tmp_taskcatinfo['name'] = DropdownTranslation::getTranslatedValue($taskcat_id, 'TaskCategory', 'name');
|
||||||
$tmp_taskcatinfo['comment'] = DropdownTranslation::getTranslatedValue( $taskcat_id, 'TaskCategory', 'comment');
|
$tmp_taskcatinfo['comment'] = DropdownTranslation::getTranslatedValue($taskcat_id, 'TaskCategory', 'comment');
|
||||||
$this->data['##task.categoryid##'] = $taskcat_id;
|
$this->data['##task.categoryid##'] = $taskcat_id;
|
||||||
$this->data['##task.category##'] = $tmp_taskcatinfo['name'];
|
$this->data['##task.category##'] = $tmp_taskcatinfo['name'];
|
||||||
$this->data['##task.categorycomment##'] = $tmp_taskcatinfo['comment'];
|
$this->data['##task.categorycomment##'] = $tmp_taskcatinfo['comment'];
|
||||||
@@ -131,7 +146,21 @@ class PluginProcessmakerNotificationTargetTask extends PluginProcessmakerNotific
|
|||||||
$this->data['##task.lastupdater##'] = Html::clean($dbu->getUserName($taskobj->fields['users_id_editor']));
|
$this->data['##task.lastupdater##'] = Html::clean($dbu->getUserName($taskobj->fields['users_id_editor']));
|
||||||
|
|
||||||
// task technician
|
// task technician
|
||||||
$this->data['##task.user##'] = Html::clean($dbu->getUserName($taskobj->fields['users_id_tech']));
|
$this->data['##task.user##'] = '';
|
||||||
|
$this->data['##task.user.login##'] = ''; // by default
|
||||||
|
$tech = new User;
|
||||||
|
if ($taskobj->fields['users_id_tech'] > 0
|
||||||
|
&& $tech->getFromDB($taskobj->fields['users_id_tech'])) {
|
||||||
|
$this->data['##task.user##'] = Html::clean($dbu->getUserName($taskobj->fields['users_id_tech']));
|
||||||
|
$this->data['##task.user.login##'] = $tech->fields['name'];
|
||||||
|
}
|
||||||
|
$oldtech = new User;
|
||||||
|
if (isset($options['old_users_id_tech'])
|
||||||
|
&& $options['old_users_id_tech'] > 0
|
||||||
|
&& $oldtech->getFromDB($options['old_users_id_tech'])) {
|
||||||
|
$this->data['##task.former.user##'] = Html::clean($dbu->getUserName($options['old_users_id_tech']));
|
||||||
|
$this->data['##task.former.user.login##'] = $oldtech->fields['name'];
|
||||||
|
}
|
||||||
|
|
||||||
// task group technician
|
// task group technician
|
||||||
$this->data['##task.group##'] = Html::clean(Toolbox::clean_cross_side_scripting_deep(Dropdown::getDropdownName("glpi_groups", $taskobj->fields['groups_id_tech'])), true, 2, false);
|
$this->data['##task.group##'] = Html::clean(Toolbox::clean_cross_side_scripting_deep(Dropdown::getDropdownName("glpi_groups", $taskobj->fields['groups_id_tech'])), true, 2, false);
|
||||||
@@ -146,7 +175,7 @@ class PluginProcessmakerNotificationTargetTask extends PluginProcessmakerNotific
|
|||||||
// task duration
|
// task duration
|
||||||
$this->data['##task.time##'] = Html::timestampToString($taskobj->fields['actiontime'], false);
|
$this->data['##task.time##'] = Html::timestampToString($taskobj->fields['actiontime'], false);
|
||||||
|
|
||||||
// add labels
|
// add labels to tags that are not set
|
||||||
$this->getTags();
|
$this->getTags();
|
||||||
foreach ($this->tag_descriptions[NotificationTarget::TAG_LANGUAGE] as $tag => $values) {
|
foreach ($this->tag_descriptions[NotificationTarget::TAG_LANGUAGE] as $tag => $values) {
|
||||||
if (!isset($this->data[$tag])) {
|
if (!isset($this->data[$tag])) {
|
||||||
@@ -173,6 +202,9 @@ class PluginProcessmakerNotificationTargetTask extends PluginProcessmakerNotific
|
|||||||
'task.categorycomment' => __('Category comment'),
|
'task.categorycomment' => __('Category comment'),
|
||||||
'task.time' => __('Total duration'),
|
'task.time' => __('Total duration'),
|
||||||
'task.user' => __('User assigned to task'),
|
'task.user' => __('User assigned to task'),
|
||||||
|
'task.user.login' => __('User login assigned to task'),
|
||||||
|
'task.former.user' => __('Former user assigned to task'),
|
||||||
|
'task.former.user.login' => __('Former user login assigned to task'),
|
||||||
'task.group' => __('Group assigned to task'),
|
'task.group' => __('Group assigned to task'),
|
||||||
'task.begin' => __('Start date'),
|
'task.begin' => __('Start date'),
|
||||||
'task.end' => __('End date'),
|
'task.end' => __('End date'),
|
||||||
@@ -201,6 +233,11 @@ class PluginProcessmakerNotificationTargetTask extends PluginProcessmakerNotific
|
|||||||
$this->addTarget(Notification::TASK_ASSIGN_TECH, __('Technician in charge of the task'));
|
$this->addTarget(Notification::TASK_ASSIGN_TECH, __('Technician in charge of the task'));
|
||||||
$this->addTarget(Notification::TASK_ASSIGN_GROUP, __('Group in charge of the task'));
|
$this->addTarget(Notification::TASK_ASSIGN_GROUP, __('Group in charge of the task'));
|
||||||
|
|
||||||
|
$this->addTarget(Notification::OBSERVER_GROUP, __('Watcher group'));
|
||||||
|
$this->addTarget(Notification::OBSERVER, __('Watcher'));
|
||||||
|
|
||||||
|
$this->addTarget(Notification::AUTHOR, __('Requester'), PluginProcessmakerNotificationTargetProcessmaker::PM_USER_TYPE);
|
||||||
|
|
||||||
if (strpos($event, 'task_update_') === 0) {
|
if (strpos($event, 'task_update_') === 0) {
|
||||||
$this->addTarget(Notification::OLD_TECH_IN_CHARGE,
|
$this->addTarget(Notification::OLD_TECH_IN_CHARGE,
|
||||||
__('Former technician in charge of the task'));
|
__('Former technician in charge of the task'));
|
||||||
@@ -216,12 +253,35 @@ class PluginProcessmakerNotificationTargetTask extends PluginProcessmakerNotific
|
|||||||
*/
|
*/
|
||||||
function addSpecificTargets($data, $options) {
|
function addSpecificTargets($data, $options) {
|
||||||
|
|
||||||
//Look for all targets whose type is Notification::ITEM_USER
|
$obj = $this->obj;
|
||||||
|
$this->obj = $options['obj'];
|
||||||
|
|
||||||
switch ($data['type']) {
|
switch ($data['type']) {
|
||||||
|
case PluginProcessmakerNotificationTargetProcessmaker::PM_USER_TYPE :
|
||||||
|
|
||||||
|
switch ($data['items_id']) {
|
||||||
|
|
||||||
|
//Send to the requester of the ITIL object
|
||||||
|
case Notification::AUTHOR :
|
||||||
|
$this->addItemAuthor();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case Notification::USER_TYPE :
|
case Notification::USER_TYPE :
|
||||||
|
|
||||||
switch ($data['items_id']) {
|
switch ($data['items_id']) {
|
||||||
|
|
||||||
|
//Notification to the ITIL object's observer group
|
||||||
|
case Notification::OBSERVER_GROUP :
|
||||||
|
$this->addLinkedGroupByType(CommonITILActor::OBSERVER);
|
||||||
|
break;
|
||||||
|
|
||||||
|
//Notification to the ITIL object's observer user
|
||||||
|
case Notification::OBSERVER :
|
||||||
|
$this->addLinkedUserByType(CommonITILActor::OBSERVER);
|
||||||
|
break;
|
||||||
|
|
||||||
//Send to the ITIL object followup author
|
//Send to the ITIL object followup author
|
||||||
case Notification::TASK_ASSIGN_TECH :
|
case Notification::TASK_ASSIGN_TECH :
|
||||||
$this->addTaskAssignUser($options);
|
$this->addTaskAssignUser($options);
|
||||||
@@ -239,72 +299,15 @@ class PluginProcessmakerNotificationTargetTask extends PluginProcessmakerNotific
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->obj = $obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add user assigned to task
|
* Summary of addOldAssignTechnician
|
||||||
*
|
* @param $options
|
||||||
* @param array $options Options
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
function addTaskAssignUser($options = []) {
|
|
||||||
global $DB;
|
|
||||||
|
|
||||||
// In case of delete task pass user id
|
|
||||||
if (isset($options['task_users_id_tech'])) {
|
|
||||||
$query = $this->getDistinctUserSql()."
|
|
||||||
FROM `glpi_users` ".
|
|
||||||
$this->getProfileJoinSql()."
|
|
||||||
WHERE `glpi_users`.`id` = '".$options['task_users_id_tech']."'";
|
|
||||||
|
|
||||||
foreach ($DB->request($query) as $data) {
|
|
||||||
$this->addToRecipientsList($data);
|
|
||||||
}
|
|
||||||
} else if (isset($options['task_id'])) {
|
|
||||||
$dbu = new DbUtils;
|
|
||||||
$tasktable = $dbu->getTableForItemType($options['itemtype']); //getTableForItemType($this->obj->getType().'Task');
|
|
||||||
|
|
||||||
$query = $this->getDistinctUserSql()."
|
|
||||||
FROM `$tasktable`
|
|
||||||
INNER JOIN `glpi_users`
|
|
||||||
ON (`glpi_users`.`id` = `$tasktable`.`users_id_tech`)".
|
|
||||||
$this->getProfileJoinSql()."
|
|
||||||
WHERE `$tasktable`.`id` = '".$options['task_id']."'";
|
|
||||||
|
|
||||||
foreach ($DB->request($query) as $data) {
|
|
||||||
$this->addToRecipientsList($data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add group assigned to the task
|
|
||||||
*
|
|
||||||
* @param array $options Options
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function addTaskAssignGroup($options = []) {
|
|
||||||
global $DB;
|
|
||||||
|
|
||||||
// In case of delete task pass user id
|
|
||||||
if (isset($options['task_groups_id_tech'])) {
|
|
||||||
$this->addForGroup(0, $options['task_groups_id_tech']);
|
|
||||||
|
|
||||||
} else if (isset($options['task_id'])) {
|
|
||||||
$dbu = new DbUtils;
|
|
||||||
$tasktable = $dbu->getTableForItemType($options['itemtype']); //getTableForItemType($this->obj->getType().'Task');
|
|
||||||
foreach ($DB->request([$tasktable, 'glpi_groups'], "`glpi_groups`.`id` = `$tasktable`.`groups_id_tech`
|
|
||||||
AND `$tasktable`.`id` = '".$options['task_id']."'") as $data) {
|
|
||||||
$this->addForGroup(0, $data['groups_id_tech']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function addOldAssignTechnician($options = []) {
|
function addOldAssignTechnician($options = []) {
|
||||||
global $DB;
|
global $DB;
|
||||||
|
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
private $pmWorkspace = "";
|
private $pmWorkspace = "";
|
||||||
private $pmAdminSession = false;
|
private $pmAdminSession = false;
|
||||||
|
|
||||||
private $taskWriter = 0;
|
var $taskWriter = 0;
|
||||||
private $pm_group_guid = ''; // guid for default user group in Process Maker is used for all GLPI user synchronization into ProcessMaker
|
private $pm_group_guid = ''; // guid for default user group in Process Maker is used for all GLPI user synchronization into ProcessMaker
|
||||||
var $lasterror;
|
var $lasterror;
|
||||||
var $lang;
|
var $lang;
|
||||||
@@ -143,24 +143,24 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
public function addItemFollowup($itemtype, $itemId, $txtForFollowup, $users_id = null) {
|
public function addItemFollowup($itemtype, $itemId, $txtForFollowup, $users_id = null) {
|
||||||
global $DB;
|
global $DB;
|
||||||
$fu = new ITILFollowup();//new TicketFollowup();
|
$fu = new ITILFollowup();//new TicketFollowup();
|
||||||
$fu->getEmpty(); // to get default values
|
//$fu->getEmpty(); // to get default values
|
||||||
$input = $fu->fields;
|
$input = $fu->fields;
|
||||||
if (isset( $txtForFollowup['GLPI_TICKET_FOLLOWUP_CONTENT'] )) {
|
if (isset( $txtForFollowup['GLPI_TICKET_FOLLOWUP_CONTENT']) && $txtForFollowup['GLPI_TICKET_FOLLOWUP_CONTENT'] != "" ) {
|
||||||
$input['content'] = $DB->escape($txtForFollowup['GLPI_TICKET_FOLLOWUP_CONTENT']);
|
$input['content'] = $DB->escape($txtForFollowup['GLPI_TICKET_FOLLOWUP_CONTENT']);
|
||||||
}
|
}
|
||||||
if (isset( $txtForFollowup['GLPI_ITEM_FOLLOWUP_CONTENT'] )) {
|
if (isset( $txtForFollowup['GLPI_ITEM_FOLLOWUP_CONTENT']) && $txtForFollowup['GLPI_ITEM_FOLLOWUP_CONTENT'] != "" ) {
|
||||||
$input['content'] = $DB->escape($txtForFollowup['GLPI_ITEM_FOLLOWUP_CONTENT']);
|
$input['content'] = $DB->escape($txtForFollowup['GLPI_ITEM_FOLLOWUP_CONTENT']);
|
||||||
}
|
}
|
||||||
if (isset( $txtForFollowup['GLPI_TICKET_FOLLOWUP_IS_PRIVATE'] )) {
|
if (isset( $txtForFollowup['GLPI_TICKET_FOLLOWUP_IS_PRIVATE'] ) && $txtForFollowup['GLPI_TICKET_FOLLOWUP_IS_PRIVATE'] != "") {
|
||||||
$input['is_private'] = $txtForFollowup['GLPI_TICKET_FOLLOWUP_IS_PRIVATE'];
|
$input['is_private'] = $txtForFollowup['GLPI_TICKET_FOLLOWUP_IS_PRIVATE'];
|
||||||
}
|
}
|
||||||
if (isset( $txtForFollowup['GLPI_ITEM_FOLLOWUP_IS_PRIVATE'] )) {
|
if (isset( $txtForFollowup['GLPI_ITEM_FOLLOWUP_IS_PRIVATE'] ) && $txtForFollowup['GLPI_TICKET_FOLLOWUP_IS_PRIVATE'] != "") {
|
||||||
$input['is_private'] = $txtForFollowup['GLPI_ITEM_FOLLOWUP_IS_PRIVATE'];
|
$input['is_private'] = $txtForFollowup['GLPI_ITEM_FOLLOWUP_IS_PRIVATE'];
|
||||||
}
|
}
|
||||||
if (isset( $txtForFollowup['GLPI_TICKET_FOLLOWUP_REQUESTTYPES_ID'] )) {
|
if (isset( $txtForFollowup['GLPI_TICKET_FOLLOWUP_REQUESTTYPES_ID'] ) && $txtForFollowup['GLPI_TICKET_FOLLOWUP_REQUESTTYPES_ID'] != "") {
|
||||||
$input['requesttypes_id'] = $txtForFollowup['GLPI_TICKET_FOLLOWUP_REQUESTTYPES_ID'];
|
$input['requesttypes_id'] = $txtForFollowup['GLPI_TICKET_FOLLOWUP_REQUESTTYPES_ID'];
|
||||||
}
|
}
|
||||||
if (isset( $txtForFollowup['GLPI_ITEM_FOLLOWUP_REQUESTTYPES_ID'] )) {
|
if (isset( $txtForFollowup['GLPI_ITEM_FOLLOWUP_REQUESTTYPES_ID'] ) && $txtForFollowup['GLPI_ITEM_FOLLOWUP_REQUESTTYPES_ID'] != "") {
|
||||||
$input['requesttypes_id'] = $txtForFollowup['GLPI_ITEM_FOLLOWUP_REQUESTTYPES_ID'];
|
$input['requesttypes_id'] = $txtForFollowup['GLPI_ITEM_FOLLOWUP_REQUESTTYPES_ID'];
|
||||||
}
|
}
|
||||||
$input['items_id'] = $itemId;//$input['tickets_id'] = $itemId;
|
$input['items_id'] = $itemId;//$input['tickets_id'] = $itemId;
|
||||||
@@ -385,9 +385,9 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
* routes a case (i.e., moves the case to the next task in the process according to its routing rules).
|
* routes a case (i.e., moves the case to the next task in the process according to its routing rules).
|
||||||
* Embedded routeCase() PM web service call (definition: http://wiki.processmaker.com/index.php/2.0/ProcessMaker_WSDL_Web_Services#routeCase.28.29)
|
* Embedded routeCase() PM web service call (definition: http://wiki.processmaker.com/index.php/2.0/ProcessMaker_WSDL_Web_Services#routeCase.28.29)
|
||||||
* A session must be open before with login()
|
* A session must be open before with login()
|
||||||
* @param $case_guid The case ID, which can be obtained with the caseList() function
|
* @param $case_guid string The case GUID, which can be obtained with the caseList() function
|
||||||
* @param $delIndex The delegation index, which is a positive integer to identify the current task of the case. If empty then use current delIndex.
|
* @param $delIndex integer The delegation index, which is a positive integer to identify the current task of the case. If empty then use current delIndex.
|
||||||
* @return a routeCaseResponse object, or false exception occured. routing is normalized to be always an array of routeListStruct
|
* @return stdClass|boolean routeCaseResponse object or false when exception occured. routing is normalized to be always an array of routeListStruct
|
||||||
*/
|
*/
|
||||||
function routeCase($case_guid, $delIndex) {
|
function routeCase($case_guid, $delIndex) {
|
||||||
try {
|
try {
|
||||||
@@ -1330,9 +1330,9 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
// insert into DB the link between glpi users and pm user
|
// insert into DB the link between glpi users and pm user
|
||||||
$pmuser = new PluginProcessmakerUser;
|
$pmuser = new PluginProcessmakerUser;
|
||||||
if ($pmuser->getFromDB( $user['id'] )) {
|
if ($pmuser->getFromDB( $user['id'] )) {
|
||||||
$pmuser->update( [ 'id' => $user['id'], 'pm_users_id' => $pmResult->userUID, 'password' => md5( $pass ) ] );
|
$pmuser->update( [ 'id' => $user['id'], 'pm_users_id' => $pmResult->userUID ] );
|
||||||
} else {
|
} else {
|
||||||
$pmuser->add( [ 'id' => $user['id'], 'pm_users_id' => $pmResult->userUID, 'password' => md5( $pass ) ] );
|
$pmuser->add( [ 'id' => $user['id'], 'pm_users_id' => $pmResult->userUID ] );
|
||||||
}
|
}
|
||||||
$actionCode = 1;
|
$actionCode = 1;
|
||||||
|
|
||||||
@@ -1747,8 +1747,25 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
$res = $PM_DB->request([
|
$res = $PM_DB->request([
|
||||||
'SELECT' => 'CONTENT.CON_VALUE',
|
'SELECT' => 'CONTENT.CON_VALUE',
|
||||||
'FROM' => 'TASK_USER',
|
'FROM' => 'TASK_USER',
|
||||||
'INNER JOIN' => ['CONTENT' => ['AND' => ['FKEY' => ['CONTENT' => 'CON_ID', 'TASK_USER' => 'USR_UID'], ['CONTENT' => 'CON_CATEGORY', 'GRP_TITLE'], ['CONTENT' => 'CON_LANG', 'en']]]],
|
'INNER JOIN' => [
|
||||||
'WHERE' => ['AND' => ['TASK_USER.TAS_UID' => $pmTaskId, 'TASK_USER.TU_RELATION' => 2, 'TASK_USER.TU_TYPE' => 1]],
|
'CONTENT' => [
|
||||||
|
'AND' => [
|
||||||
|
'FKEY' => [
|
||||||
|
'CONTENT' => 'CON_ID',
|
||||||
|
'TASK_USER' => 'USR_UID'
|
||||||
|
],
|
||||||
|
['CONTENT.CON_CATEGORY' => 'GRP_TITLE'],
|
||||||
|
['CONTENT.CON_LANG' => 'en']
|
||||||
|
]
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'WHERE' => [
|
||||||
|
'AND' => [
|
||||||
|
'TASK_USER.TAS_UID' => $pmTaskId,
|
||||||
|
'TASK_USER.TU_RELATION' => 2,
|
||||||
|
'TASK_USER.TU_TYPE' => 1
|
||||||
|
]
|
||||||
|
],
|
||||||
'LIMIT' => 1
|
'LIMIT' => 1
|
||||||
]);
|
]);
|
||||||
//$query = "SELECT CONTENT.CON_VALUE FROM TASK_USER
|
//$query = "SELECT CONTENT.CON_VALUE FROM TASK_USER
|
||||||
@@ -1758,7 +1775,13 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
$res = $PM_DB->request([
|
$res = $PM_DB->request([
|
||||||
'SELECT' => 'CON_VALUE',
|
'SELECT' => 'CON_VALUE',
|
||||||
'FROM' => 'CONTENT',
|
'FROM' => 'CONTENT',
|
||||||
'WHERE' => ['AND' => ['CONTENT.CON_ID' => $groupId, 'CONTENT.CON_CATEGORY' => 'GRP_TITLE', 'CONTENT.CON_LANG' => 'en']]
|
'WHERE' => [
|
||||||
|
'AND' => [
|
||||||
|
'CONTENT.CON_ID' => $groupId,
|
||||||
|
'CONTENT.CON_CATEGORY' => 'GRP_TITLE',
|
||||||
|
'CONTENT.CON_LANG' => 'en'
|
||||||
|
]
|
||||||
|
]
|
||||||
]);
|
]);
|
||||||
//$query = "SELECT CON_VALUE FROM CONTENT
|
//$query = "SELECT CON_VALUE FROM CONTENT
|
||||||
// WHERE CONTENT.CON_ID='$groupId' AND CONTENT.CON_CATEGORY='GRP_TITLE' AND CONTENT.CON_LANG='en' ;";
|
// WHERE CONTENT.CON_ID='$groupId' AND CONTENT.CON_CATEGORY='GRP_TITLE' AND CONTENT.CON_LANG='en' ;";
|
||||||
@@ -1809,7 +1832,7 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
|
|
||||||
$input['is_private'] = 0;
|
$input['is_private'] = 0;
|
||||||
$input['actiontime'] = 0;
|
$input['actiontime'] = 0;
|
||||||
$input['state'] = 1; // == TO_DO
|
$input['state'] = Planning::TODO; // == TO_DO
|
||||||
$input['users_id_tech'] = 0; // by default as it can't be empty
|
$input['users_id_tech'] = 0; // by default as it can't be empty
|
||||||
if ($techId) {
|
if ($techId) {
|
||||||
$input['users_id_tech'] = $techId;
|
$input['users_id_tech'] = $techId;
|
||||||
@@ -1854,41 +1877,59 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
//$query = "INSERT INTO glpi_plugin_processmaker_tasks (items_id, itemtype, plugin_processmaker_cases_id, plugin_processmaker_taskcategories_id, del_index, del_thread)
|
//$query = "INSERT INTO glpi_plugin_processmaker_tasks (items_id, itemtype, plugin_processmaker_cases_id, plugin_processmaker_taskcategories_id, del_index, del_thread)
|
||||||
// VALUES ({$glpi_task->getId()}, '{$glpi_task->getType()}', $cases_id, {$pmtaskcat->fields['id']}, $delIndex, $delThread);";
|
// VALUES ({$glpi_task->getId()}, '{$glpi_task->getType()}', $cases_id, {$pmtaskcat->fields['id']}, $delIndex, $delThread);";
|
||||||
//$DB->query( $query );
|
//$DB->query( $query );
|
||||||
|
//}
|
||||||
|
|
||||||
|
// send notification if needed for new task as now we have the PluginProcessmakerTask in the DB
|
||||||
|
$donotif = PluginProcessmakerNotificationTargetProcessmaker::saveNotificationState($options['notif']);
|
||||||
|
// Notification management
|
||||||
|
$item = new $itemtype;
|
||||||
|
$item->getFromDB($items_id);
|
||||||
|
// search if at least one active notification is existing for that pm task with that event 'task_update_'.$glpi_task->fields['taskcategories_id']
|
||||||
|
$res = PluginProcessmakerNotificationTargetTask::getNotifications('task_add', $glpi_task->fields['taskcategories_id'], $item->fields['entities_id']);
|
||||||
|
if ($res['notifications'] && count($res['notifications']) > 0) {
|
||||||
|
$pm_task = new PluginProcessmakerTask($glpi_task->getType());
|
||||||
|
$pm_task->getFromDB($glpi_task->getId());
|
||||||
|
NotificationEvent::raiseEvent($res['event'],
|
||||||
|
$pm_task,
|
||||||
|
['plugin_processmaker_cases_id' => $cases_id,
|
||||||
|
'itemtype' => $glpi_task->getType(),
|
||||||
|
'task_id' => $glpi_task->getID(),
|
||||||
|
'is_private' => isset($glpi_task->fields['is_private']) ? $glpi_task->fields['is_private'] : 0,
|
||||||
|
'entities_id' => $item->fields['entities_id']
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
NotificationEvent::raiseEvent('add_task',
|
||||||
|
$item,
|
||||||
|
['plugin_processmaker_cases_id' => $cases_id,
|
||||||
|
'itemtype' => $itemtype,
|
||||||
|
'task_id' => $glpi_task->getID(),
|
||||||
|
'is_private' => isset($glpi_task->fields['is_private']) ? $glpi_task->fields['is_private'] : 0
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
PluginProcessmakerNotificationTargetProcessmaker::restoreNotificationState($donotif);
|
||||||
}
|
}
|
||||||
|
|
||||||
// send notification if needed for new task as now we have the PluginProcessmakerTask in the DB
|
|
||||||
$donotif = PluginProcessmakerNotificationTargetProcessmaker::saveNotificationState($options['notif']);
|
|
||||||
// Notification management
|
|
||||||
$item = new $itemtype;
|
|
||||||
$item->getFromDB($items_id);
|
|
||||||
// search if at least one active notification is existing for that pm task with that event 'task_update_'.$glpi_task->fields['taskcategories_id']
|
|
||||||
$res = PluginProcessmakerNotificationTargetTask::getNotifications('task_add', $glpi_task->fields['taskcategories_id'], $item->fields['entities_id']);
|
|
||||||
if ($res['notifications'] && count($res['notifications']) > 0) {
|
|
||||||
$pm_task = new PluginProcessmakerTask($glpi_task->getType());
|
|
||||||
$pm_task->getFromDB($glpi_task->getId());
|
|
||||||
NotificationEvent::raiseEvent($res['event'],
|
|
||||||
$pm_task,
|
|
||||||
['plugin_processmaker_cases_id' => $cases_id,
|
|
||||||
'itemtype' => $glpi_task->getType(),
|
|
||||||
'task_id' => $glpi_task->getID(),
|
|
||||||
'is_private' => isset($glpi_task->fields['is_private']) ? $glpi_task->fields['is_private'] : 0,
|
|
||||||
'entities_id' => $item->fields['entities_id']
|
|
||||||
]);
|
|
||||||
} else {
|
|
||||||
NotificationEvent::raiseEvent('add_task',
|
|
||||||
$item,
|
|
||||||
['plugin_processmaker_cases_id' => $cases_id,
|
|
||||||
'itemtype' => $itemtype,
|
|
||||||
'task_id' => $glpi_task->getID(),
|
|
||||||
'is_private' => isset($glpi_task->fields['is_private']) ? $glpi_task->fields['is_private'] : 0
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
PluginProcessmakerNotificationTargetProcessmaker::restoreNotificationState($donotif);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Summary of getGLPIGroupId
|
||||||
|
* returns GLPI group id from pm group name
|
||||||
|
* returns false when not found
|
||||||
|
* @param string $pmGroupName
|
||||||
|
* @return bool|integer
|
||||||
|
*/
|
||||||
|
static function getGLPIGroupId(string $pmGroupName) {
|
||||||
|
global $DB;
|
||||||
|
$query = "SELECT id AS glpi_group_id FROM glpi_groups WHERE name LIKE '$pmGroupName';";
|
||||||
|
$res = $DB->query($query);
|
||||||
|
if ($DB->numrows($res) > 0) {
|
||||||
|
$row = $DB->fetch_array($res);
|
||||||
|
return $row['glpi_group_id'];
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Summary of add1stTask
|
* Summary of add1stTask
|
||||||
* adds a GLPI task to ticket
|
* adds a GLPI task to ticket
|
||||||
@@ -1958,10 +1999,12 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
* @param mixed $newtitle
|
* @param mixed $newtitle
|
||||||
*/
|
*/
|
||||||
public function setItemTitle($itemtype, $itemId, $newtitle) {
|
public function setItemTitle($itemtype, $itemId, $newtitle) {
|
||||||
|
global $DB;
|
||||||
|
|
||||||
$dbu = new DbUtils;
|
$dbu = new DbUtils;
|
||||||
$item = $dbu->getItemForItemtype( $itemtype );
|
$item = $dbu->getItemForItemtype( $itemtype );
|
||||||
if ($item->getFromDB( $itemId )) {
|
if ($item->getFromDB( $itemId )) {
|
||||||
$item->update( ['id' => $itemId, 'name' => $newtitle] );
|
$item->update( ['id' => $itemId, 'name' => $DB->escape($newtitle)] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1988,6 +2031,8 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
* @param mixed $casevariablevalues
|
* @param mixed $casevariablevalues
|
||||||
*/
|
*/
|
||||||
public function setItemSolution($itemType, $itemId, $casevariablevalues) {
|
public function setItemSolution($itemType, $itemId, $casevariablevalues) {
|
||||||
|
global $DB;
|
||||||
|
|
||||||
$dbu = new DbUtils;
|
$dbu = new DbUtils;
|
||||||
$item = $dbu->getItemForItemtype( $itemType );
|
$item = $dbu->getItemForItemtype( $itemType );
|
||||||
if ($item->getFromDB( $itemId )) {
|
if ($item->getFromDB( $itemId )) {
|
||||||
@@ -2035,7 +2080,7 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
if ($solution != '') {
|
if ($solution != '') {
|
||||||
$solution .= "\n";
|
$solution .= "\n";
|
||||||
}
|
}
|
||||||
$solution .= $casevariablevalues[ 'GLPI_ITEM_APPEND_TO_SOLUTION_DESCRIPTION' ];
|
$solution .= $DB->escape($casevariablevalues[ 'GLPI_ITEM_APPEND_TO_SOLUTION_DESCRIPTION' ]);
|
||||||
$to_update = true;
|
$to_update = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2078,7 +2123,7 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
* 'begin' => is the new begin date of the task
|
* 'begin' => is the new begin date of the task
|
||||||
* 'end' => is the new end date of the task
|
* 'end' => is the new end date of the task
|
||||||
* 'toInformation' => is the new status of the task (usually set to INFORMATION)
|
* 'toInformation' => is the new status of the task (usually set to INFORMATION)
|
||||||
*
|
* @return false|object the solved task, when found
|
||||||
*/
|
*/
|
||||||
public function solveTask($cases_id, $delIndex, $options = []) {
|
public function solveTask($cases_id, $delIndex, $options = []) {
|
||||||
global $DB;
|
global $DB;
|
||||||
@@ -2098,7 +2143,6 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
$hostItem->getFromDB( $glpi_task->fields[ $itemFKField ] );
|
$hostItem->getFromDB( $glpi_task->fields[ $itemFKField ] );
|
||||||
|
|
||||||
// change current glpi_currenttime to be sure that date_mode for solved task will not be identical than date_mode of the newly started task
|
// change current glpi_currenttime to be sure that date_mode for solved task will not be identical than date_mode of the newly started task
|
||||||
//$end_date = new DateTime( $_SESSION["glpi_currenttime"] );
|
|
||||||
$saved_date_time = $_SESSION["glpi_currenttime"];
|
$saved_date_time = $_SESSION["glpi_currenttime"];
|
||||||
$_SESSION["glpi_currenttime"] = (new DateTime($saved_date_time))->sub(new DateInterval("PT1S"))->format("Y-m-d H:i:s");
|
$_SESSION["glpi_currenttime"] = (new DateTime($saved_date_time))->sub(new DateInterval("PT1S"))->format("Y-m-d H:i:s");
|
||||||
|
|
||||||
@@ -2132,18 +2176,49 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
//'groups_id_tech' => 0,
|
//'groups_id_tech' => 0,
|
||||||
'content' => $DB->escape($glpi_task->fields[ 'content' ].$options['txtToAppend'])
|
'content' => $DB->escape($glpi_task->fields[ 'content' ].$options['txtToAppend'])
|
||||||
];
|
];
|
||||||
$donotif = PluginProcessmakerNotificationTargetProcessmaker::saveNotificationState($options['notif']);
|
|
||||||
|
$donotif = PluginProcessmakerNotificationTargetProcessmaker::saveNotificationState(false); // do not send notification yet
|
||||||
$glpi_task->update($params);
|
$glpi_task->update($params);
|
||||||
PluginProcessmakerNotificationTargetProcessmaker::restoreNotificationState($donotif);
|
PluginProcessmakerNotificationTargetProcessmaker::restoreNotificationState($donotif);
|
||||||
|
|
||||||
// Close the task
|
// Close the task
|
||||||
//$DB->query("UPDATE glpi_plugin_processmaker_tasks SET del_thread_status = '".PluginProcessmakerTask::CLOSED."' WHERE id = {$row['id']}");
|
//$DB->query("UPDATE glpi_plugin_processmaker_tasks SET del_thread_status = '".PluginProcessmakerTask::CLOSED."' WHERE id = {$row['id']}");
|
||||||
$DB->update('glpi_plugin_processmaker_tasks', ['del_thread_status' => PluginProcessmakerTask::CLOSED], ['id' => $row['id']]);
|
$DB->update('glpi_plugin_processmaker_tasks', ['del_thread_status' => PluginProcessmakerTask::CLOSED], ['id' => $row['id']]);
|
||||||
|
|
||||||
|
// send notification if needed for new task as now the PluginProcessmakerTask has been updated in the DB
|
||||||
|
$donotif = PluginProcessmakerNotificationTargetProcessmaker::saveNotificationState($options['notif']);
|
||||||
|
// Notification management
|
||||||
|
// search if at least one active notification is existing for that pm task with that event 'task_update_'.$glpi_task->fields['taskcategories_id']
|
||||||
|
$res = PluginProcessmakerNotificationTargetTask::getNotifications('task_done', $glpi_task->fields['taskcategories_id'], $hostItem->fields['entities_id']);
|
||||||
|
if ($res['notifications'] && count($res['notifications']) > 0) {
|
||||||
|
$pm_task = new PluginProcessmakerTask($glpi_task->getType());
|
||||||
|
$pm_task->getFromDB($glpi_task->getId());
|
||||||
|
NotificationEvent::raiseEvent($res['event'],
|
||||||
|
$pm_task,
|
||||||
|
['plugin_processmaker_cases_id' => $cases_id,
|
||||||
|
'itemtype' => $glpi_task->getType(),
|
||||||
|
'task_id' => $glpi_task->getID(),
|
||||||
|
'is_private' => isset($glpi_task->fields['is_private']) ? $glpi_task->fields['is_private'] : 0,
|
||||||
|
'entities_id' => $hostItem->fields['entities_id']
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
NotificationEvent::raiseEvent('update_task',
|
||||||
|
$hostItem,
|
||||||
|
['plugin_processmaker_cases_id' => $cases_id,
|
||||||
|
'itemtype' => $hostItem->getType(),
|
||||||
|
'task_id' => $glpi_task->getID(),
|
||||||
|
'is_private' => isset($glpi_task->fields['is_private']) ? $glpi_task->fields['is_private'] : 0
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
PluginProcessmakerNotificationTargetProcessmaker::restoreNotificationState($donotif);
|
||||||
|
|
||||||
// restore current glpi time
|
// restore current glpi time
|
||||||
$_SESSION["glpi_currenttime"] = $saved_date_time;
|
$_SESSION["glpi_currenttime"] = $saved_date_time;
|
||||||
|
|
||||||
|
return $glpi_task;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2285,10 +2360,24 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
*/
|
*/
|
||||||
public static function pre_show_item_processmaker($params) {
|
public static function pre_show_item_processmaker($params) {
|
||||||
|
|
||||||
if (!is_array($params['item']) && is_subclass_of( $params['item'], 'CommonITILTask')) {
|
if (!is_array($params['item']) && is_subclass_of($params['item'], 'CommonITILTask')) {
|
||||||
// must check if Task is bound to a PM task
|
// must check if Task is bound to a PM task
|
||||||
$pmTask = new PluginProcessmakerTask($params['item']->getType());
|
$pmTask = new PluginProcessmakerTask($params['item']->getType());
|
||||||
if ($pmTask->getFromDB($params['item']->getId())) {//$pmTask->getFromDBByQuery("WHERE itemtype='".$params['item']->getType()."' and items_id=".$params['item']->getId())) {
|
$is_pmtask = $pmTask->getFromDB($params['item']->getId());
|
||||||
|
if (!$is_pmtask && $params['item']->fields['state'] == Planning::INFO) {
|
||||||
|
// look if it is a meta task for this process
|
||||||
|
// means a re-assign or an un-claim task info
|
||||||
|
$pm_process = new PluginProcessmakerProcess;
|
||||||
|
if ($pm_process->getFromDBByQuery( " WHERE `taskcategories_id` = ".$params['item']->fields['taskcategories_id'])) {
|
||||||
|
// then look into content to get case id
|
||||||
|
$re = '/<input name=\'caseid\' type=\'hidden\' value=\'(?\'caseid\'\d+)\'><input name=\'taskid\' type=\'hidden\' value=\'(?\'taskid\'\d+)\'>/';
|
||||||
|
if (preg_match($re, $params['item']->fields['content'], $matches)) {
|
||||||
|
// here we get the case id and the task id
|
||||||
|
$is_pmtask = $pmTask->getFromDB($matches['taskid']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($is_pmtask) {
|
||||||
$params['item']->fields['can_edit'] = false; // to prevent task edition
|
$params['item']->fields['can_edit'] = false; // to prevent task edition
|
||||||
|
|
||||||
// replace ##ticket.url##_PluginProcessmakerCase$processmakercases by a setActiveTab to the Case panel
|
// replace ##ticket.url##_PluginProcessmakerCase$processmakercases by a setActiveTab to the Case panel
|
||||||
@@ -2301,7 +2390,7 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
} else {
|
} else {
|
||||||
$params['item']->fields['content'] = str_replace( '##processmaker.taskcomment##', $taskComment, $params['item']->fields['content'] );
|
$params['item']->fields['content'] = str_replace( '##processmaker.taskcomment##', $taskComment, $params['item']->fields['content'] );
|
||||||
}
|
}
|
||||||
$taskJSId = "viewitem".$params['item']->getType().$params['item']->getId().$params['options']['rand'];
|
$taskJSId = strtolower("viewitem".$params['item']->getType().$params['item']->getId());
|
||||||
|
|
||||||
// special case for <hr> which will provoke the rendering to be split into several <p>
|
// special case for <hr> which will provoke the rendering to be split into several <p>
|
||||||
// add <p></p> which othervise will be missing
|
// add <p></p> which othervise will be missing
|
||||||
@@ -2574,7 +2663,10 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
// ### 2nd call to save Data POST ###
|
// ### 2nd call to save Data POST ###
|
||||||
curl_setopt($ch, CURLOPT_URL, $this->serverURL."/cases/cases_SaveData?UID=".$request['UID']."&APP_UID=".$request['APP_UID'] );
|
curl_setopt($ch, CURLOPT_URL, $this->serverURL."/cases/cases_SaveData?UID=".$request['UID']."&APP_UID=".$request['APP_UID'] );
|
||||||
$response = curl_exec ($ch);
|
$response = curl_exec ($ch);
|
||||||
|
if ($response === false) {
|
||||||
|
//throw new Exception(curl_error($ch), curl_errno($ch));
|
||||||
|
Toolbox::logInFile( "pmtrace", curl_error($ch).":".curl_errno($ch)."\n" );
|
||||||
|
}
|
||||||
curl_close ($ch);
|
curl_close ($ch);
|
||||||
if ($loggable) {
|
if ($loggable) {
|
||||||
Toolbox::logInFile( "pmtrace", "URL:\n".$this->serverURL."/cases/cases_SaveData?UID=".$request['UID']."&APP_UID=".$request['APP_UID']."\nData:\n".print_r($data, true )."\nResponse:\n".$response."\n\n\n" );
|
Toolbox::logInFile( "pmtrace", "URL:\n".$this->serverURL."/cases/cases_SaveData?UID=".$request['UID']."&APP_UID=".$request['APP_UID']."\nData:\n".print_r($data, true )."\nResponse:\n".$response."\n\n\n" );
|
||||||
@@ -2896,13 +2988,15 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
*/
|
*/
|
||||||
public function derivateCase($myCase, $request, $users_id = null) {
|
public function derivateCase($myCase, $request, $users_id = null) {
|
||||||
//$cookies,
|
//$cookies,
|
||||||
global $PM_DB, $CFG_GLPI;
|
global $PM_DB, $CFG_GLPI, $DB;
|
||||||
|
|
||||||
$itemtype = $myCase->getField('itemtype');
|
$itemtype = $myCase->getField('itemtype');
|
||||||
$items_id = $myCase->getField('items_id');
|
$items_id = $myCase->getField('items_id');
|
||||||
$item = new $itemtype;
|
$item = new $itemtype;
|
||||||
$item->getFromDB($items_id);
|
$item->getFromDB($items_id);
|
||||||
|
|
||||||
|
//Toolbox::logInFile("processmaker_derivate", Toolbox::backtrace(false) . "derivateCase: myCase = " . print_r($myCase, true) . "\nrequest = " . print_r($request, true) . "\nusers_id = " . print_r($users_id, true) );
|
||||||
|
|
||||||
// save the dynaform variables into the current case
|
// save the dynaform variables into the current case
|
||||||
if (isset($request['UID']) && isset($request['APP_UID']) && isset($request['__DynaformName__'])) {
|
if (isset($request['UID']) && isset($request['APP_UID']) && isset($request['__DynaformName__'])) {
|
||||||
$resultSave = $this->saveForm( $request );
|
$resultSave = $this->saveForm( $request );
|
||||||
@@ -2910,6 +3004,16 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
|
|
||||||
// now derivate the case !!!
|
// now derivate the case !!!
|
||||||
$pmRouteCaseResponse = $this->routeCase($myCase->fields['case_guid'], $request['DEL_INDEX']);
|
$pmRouteCaseResponse = $this->routeCase($myCase->fields['case_guid'], $request['DEL_INDEX']);
|
||||||
|
//Toolbox::logInFile("processmaker_derivate", "routeCase: pmRouteCaseResponse = " . print_r($pmRouteCaseResponse, true));
|
||||||
|
|
||||||
|
if ($pmRouteCaseResponse->status_code != 0) {
|
||||||
|
Session::addMessageAfterRedirect(sprintf(__('Unable to derivate case! Retry in a moment, or ask your administrator.<hr>Error code: %u<br/>Error message: %s<br/>', 'processmaker'),
|
||||||
|
$pmRouteCaseResponse->status_code,
|
||||||
|
$pmRouteCaseResponse->message),
|
||||||
|
true,
|
||||||
|
ERROR);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$casevariables = ["GLPI_ITEM_TASK_CONTENT",
|
$casevariables = ["GLPI_ITEM_TASK_CONTENT",
|
||||||
"GLPI_ITEM_APPEND_TO_TASK",
|
"GLPI_ITEM_APPEND_TO_TASK",
|
||||||
@@ -2935,12 +3039,18 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
"GLPI_ITEM_APPEND_TO_SOLUTION_DESCRIPTION",
|
"GLPI_ITEM_APPEND_TO_SOLUTION_DESCRIPTION",
|
||||||
"GLPI_ITEM_INITIAL_DUE_DATE",
|
"GLPI_ITEM_INITIAL_DUE_DATE",
|
||||||
"GLPI_ITEM_DUE_DATE",
|
"GLPI_ITEM_DUE_DATE",
|
||||||
"GLPI_SEND_EMAIL"
|
"GLPI_SEND_EMAIL",
|
||||||
|
"GLPI_ITEM_INFORMATION_TASK"
|
||||||
];
|
];
|
||||||
|
|
||||||
// now tries to get some variables to setup content for new task and to append text to solved task
|
// now tries to get some variables to setup content for new task and to append text to solved task
|
||||||
$casevariablevalues = $myCase->getVariables($casevariables);
|
$casevariablevalues = $myCase->getVariables($casevariables);
|
||||||
|
|
||||||
|
$information_task = '';
|
||||||
|
if (array_key_exists( 'GLPI_ITEM_INFORMATION_TASK', $casevariablevalues ) && $casevariablevalues[ 'GLPI_ITEM_INFORMATION_TASK' ] != '') {
|
||||||
|
$information_task = $casevariablevalues[ 'GLPI_ITEM_INFORMATION_TASK' ];
|
||||||
|
}
|
||||||
|
|
||||||
$sendemail = '';
|
$sendemail = '';
|
||||||
if (array_key_exists( 'GLPI_SEND_EMAIL', $casevariablevalues ) && $casevariablevalues[ 'GLPI_SEND_EMAIL' ] != '') {
|
if (array_key_exists( 'GLPI_SEND_EMAIL', $casevariablevalues ) && $casevariablevalues[ 'GLPI_SEND_EMAIL' ] != '') {
|
||||||
$sendemail = json_decode($casevariablevalues[ 'GLPI_SEND_EMAIL' ], true);
|
$sendemail = json_decode($casevariablevalues[ 'GLPI_SEND_EMAIL' ], true);
|
||||||
@@ -3034,23 +3144,23 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
// reset those variables
|
// reset those variables
|
||||||
$resetcasevariables = [];
|
$resetcasevariables = [];
|
||||||
foreach ($casevariables as $val) {
|
foreach ($casevariables as $val) {
|
||||||
$resetcasevariables[$val] = '';
|
if (!empty($casevariablevalues[$val])) {
|
||||||
|
$resetcasevariables[$val] = '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$resultSave = $myCase->sendVariables($resetcasevariables);
|
$resultSave = $myCase->sendVariables($resetcasevariables);
|
||||||
|
|
||||||
// print_r( $pmRouteCaseResponse ) ;
|
|
||||||
// die() ;
|
|
||||||
|
|
||||||
// now manage tasks associated with item
|
// now manage tasks associated with item
|
||||||
// switch own task to 'done' and create a new one
|
// switch own task to 'done' and create a new one
|
||||||
$this->solveTask($myCase->getID(),
|
$glpi_task = $this->solveTask($myCase->getID(),
|
||||||
$request['DEL_INDEX'],
|
$request['DEL_INDEX'],
|
||||||
['txtToAppend' => $txtToAppendToTask,
|
['txtToAppend' => $txtToAppendToTask,
|
||||||
'users_id_tech' => $users_id,
|
'users_id_tech' => $users_id,
|
||||||
'begin' => $solvedTaskStartDate,
|
'begin' => $solvedTaskStartDate,
|
||||||
'end' => $solvedTaskEndDate,
|
'end' => $solvedTaskEndDate,
|
||||||
'toInformation' => $solvedTaskSetToInformation
|
'toInformation' => $solvedTaskSetToInformation
|
||||||
] );
|
]
|
||||||
|
);
|
||||||
|
|
||||||
// create a followup if requested
|
// create a followup if requested
|
||||||
if ($createFollowup) { // && $itemtype == 'Ticket') {
|
if ($createFollowup) { // && $itemtype == 'Ticket') {
|
||||||
@@ -3081,6 +3191,38 @@ class PluginProcessmakerProcessmaker extends CommonDBTM {
|
|||||||
// get the new case info
|
// get the new case info
|
||||||
$caseInfo = $myCase->getCaseInfo($request['DEL_INDEX']); // not sure that it should passed this
|
$caseInfo = $myCase->getCaseInfo($request['DEL_INDEX']); // not sure that it should passed this
|
||||||
|
|
||||||
|
// create an information task if requested
|
||||||
|
if ($information_task != '' && $glpi_task) {
|
||||||
|
// create an information task and add comment
|
||||||
|
// $information_task is the content of the task
|
||||||
|
$pm_process = $myCase->getProcess();
|
||||||
|
$taskCat = new TaskCategory;
|
||||||
|
$taskCat->getFromDB($glpi_task->fields['taskcategories_id']);
|
||||||
|
// we may replace ##casename## by the name of the case, and ##taskname## by the task name
|
||||||
|
$search = ['##casename##',
|
||||||
|
'##taskname##'
|
||||||
|
];
|
||||||
|
$replace = [$caseInfo->caseName." (".$myCase->getID().")",
|
||||||
|
DropdownTranslation::getTranslatedValue($glpi_task->fields['taskcategories_id'], 'TaskCategory', 'name', $_SESSION['glpilanguage'], $taskCat->fields['name'])
|
||||||
|
];
|
||||||
|
$info = str_replace($search, $replace, $information_task);
|
||||||
|
|
||||||
|
$info .= "<input name='caseid' type='hidden' value='".$myCase->getID()."'><input name='taskid' type='hidden' value='".$glpi_task->getID()."'>";
|
||||||
|
|
||||||
|
// unescape some chars and replace CRLF, CR or LF by <br/>
|
||||||
|
$info = str_replace(["\\'", '\\"', '\r\n', '\r', '\n'], ["'", '"', '<br>', '<br>', '<br>'], $info);
|
||||||
|
|
||||||
|
$foreignkey = getForeignKeyFieldForItemType($glpi_task->getItilObjectItemType());
|
||||||
|
$glpi_task->add([$foreignkey => $glpi_task->fields[$foreignkey],
|
||||||
|
'is_private' => 1,
|
||||||
|
'taskcategories_id' => $pm_process->fields['taskcategories_id'],
|
||||||
|
'content' => $DB->escape($info),
|
||||||
|
'users_id' => $this->taskWriter,
|
||||||
|
'state' => Planning::INFO,
|
||||||
|
'users_id_tech' => Session::getLoginUserID(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
// now create the new tasks if any
|
// now create the new tasks if any
|
||||||
if (property_exists( $pmRouteCaseResponse, 'routing' )) {
|
if (property_exists( $pmRouteCaseResponse, 'routing' )) {
|
||||||
|
|
||||||
|
|||||||
@@ -67,6 +67,15 @@ class PluginProcessmakerTask extends CommonITILTask
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Summary of getPMTaskID
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
function getPMTaskID() {
|
||||||
|
return $this->fields['items_id'];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Summary of getToDoTasks
|
* Summary of getToDoTasks
|
||||||
* returns all 'to do' tasks associated with this case
|
* returns all 'to do' tasks associated with this case
|
||||||
@@ -377,31 +386,53 @@ class PluginProcessmakerTask extends CommonITILTask
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($currentUser)) {
|
if (isset($currentUser)) {
|
||||||
if (/*$currentUser->userId &&*/ $task[$tabnum]['del_index']) {
|
if ($task[$tabnum]['del_index']) {
|
||||||
// to load users for task re-assign only when task is not a sub-case
|
// to load users for task re-assign only when task is not a sub-case
|
||||||
|
|
||||||
echo "<div class='tab_bg_2' id='divUsers-".$currentUser->delIndex."'><div class='loadingindicator'>".__('Loading...')."</div></div>";
|
echo "<div class='tab_bg_2' id='divUsers-".$currentUser->delIndex."'><div class='loadingindicator'>".__('Loading...')."</div></div>";
|
||||||
echo "<script>$('#divUsers-{$task[$tabnum]['del_index']}').load( '".$CFG_GLPI["root_doc"]."/plugins/processmaker/ajax/task_users.php?cases_id="
|
|
||||||
.$case->getID()
|
// try to get users whom can't be assigned to this task
|
||||||
."&items_id="
|
// already assigned user can't be assigned again to this task
|
||||||
.$case->fields['items_id']
|
$current_assigned_user = PluginProcessmakerUser::getGLPIUserId($currentUser->userId);
|
||||||
."&itemtype="
|
// and then any forbiden users defined from the case itself
|
||||||
.$case->fields['itemtype']
|
$casevariablevalues = $case->getVariables(['GLPI_TASK_PREVENT_REASSIGN']);
|
||||||
."&users_id="
|
$prevent_assign = [];
|
||||||
.PluginProcessmakerUser::getGLPIUserId($currentUser->userId)
|
if (array_key_exists( 'GLPI_TASK_PREVENT_REASSIGN', $casevariablevalues ) && $casevariablevalues[ 'GLPI_TASK_PREVENT_REASSIGN' ] != '') {
|
||||||
."&taskGuid="
|
$prevent_assign = json_decode($casevariablevalues[ 'GLPI_TASK_PREVENT_REASSIGN' ], true);
|
||||||
.$currentUser->taskId
|
}
|
||||||
."&delIndex={$task[$tabnum]['del_index']}&delThread={$currentUser->delThread}&rand=$rand' ); </script>";
|
|
||||||
//} else {
|
|
||||||
// // manages the claim
|
$used_users = [];
|
||||||
// // current task is to be claimed
|
$used_users[] = $current_assigned_user;
|
||||||
// // get the assigned group to the item task
|
if (array_key_exists($currentUser->taskId, $prevent_assign)) {
|
||||||
// $itemtask = $dbu->getItemForItemtype( $task[$tabnum]['itemtype'] );
|
if (is_array($prevent_assign[$currentUser->taskId])) {
|
||||||
// $itemtask->getFromDB( $task[$tabnum]['items_id'] );
|
foreach ($prevent_assign[$currentUser->taskId] as $pmuser) {
|
||||||
// // check if this group can be found in the current user's groups
|
$usr_id = PluginProcessmakerUser::getGlpiIdFromAny($pmuser);
|
||||||
// if (!isset($_SESSION['glpigroups']) || !in_array( $itemtask->fields['groups_id_tech'], $_SESSION['glpigroups'] )) {
|
if ($usr_id) {
|
||||||
// $hide_claim_button=true;
|
$used_users[] = $usr_id;
|
||||||
// }
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$usr_id = PluginProcessmakerUser::getGlpiIdFromAny($prevent_assign[$currentUser->taskId]);
|
||||||
|
if ($usr_id) {
|
||||||
|
$used_users[] = $usr_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = "{
|
||||||
|
cases_id : {$case->getID()},
|
||||||
|
items_id : {$case->fields['items_id']},
|
||||||
|
itemtype : '{$case->fields['itemtype']}',
|
||||||
|
tasktype : '{$task[$tabnum]['itemtype']}',
|
||||||
|
tasks_id : {$task[$tabnum]['items_id']},
|
||||||
|
users_id : {$current_assigned_user},
|
||||||
|
taskGuid : '{$currentUser->taskId}',
|
||||||
|
delIndex : {$task[$tabnum]['del_index']},
|
||||||
|
delThread : {$currentUser->delThread},
|
||||||
|
used : [".join(',', array_unique($used_users))."]
|
||||||
|
}";
|
||||||
|
echo html::scriptBlock("$('#divUsers-{$task[$tabnum]['del_index']}').load('".$CFG_GLPI["root_doc"]."/plugins/processmaker/ajax/task_users.php', $data);");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$currentUser->userId || !$task[$tabnum]['del_index']) {
|
if (!$currentUser->userId || !$task[$tabnum]['del_index']) {
|
||||||
@@ -422,18 +453,6 @@ class PluginProcessmakerTask extends CommonITILTask
|
|||||||
|
|
||||||
$csrf = Session::getNewCSRFToken();
|
$csrf = Session::getNewCSRFToken();
|
||||||
|
|
||||||
//echo "<iframe id='caseiframe-task-{$task[$tabnum]['del_index']}' onload=\"onTaskFrameLoad( event, {$task[$tabnum]['del_index']}, "
|
|
||||||
// .($hide_claim_button?"true":"false")
|
|
||||||
// .", '$csrf' );\" style='border:none;' class='tab_bg_2' width='100%' src='";
|
|
||||||
//echo $PM_SOAP->serverURL
|
|
||||||
// ."/cases/cases_Open?sid="
|
|
||||||
// .$PM_SOAP->getPMSessionID()
|
|
||||||
// ."&APP_UID="
|
|
||||||
// .$case->fields['case_guid']
|
|
||||||
// ."&DEL_INDEX="
|
|
||||||
// .$task[$tabnum]['del_index']
|
|
||||||
// ."&action=TO_DO";
|
|
||||||
//echo "&rand=$rand&glpi_domain={$config->fields['domain']}'></iframe></div>";
|
|
||||||
$url = $PM_SOAP->serverURL
|
$url = $PM_SOAP->serverURL
|
||||||
."/cases/cases_Open?sid=".$PM_SOAP->getPMSessionID()
|
."/cases/cases_Open?sid=".$PM_SOAP->getPMSessionID()
|
||||||
."&APP_UID=".$case->fields['case_guid']
|
."&APP_UID=".$case->fields['case_guid']
|
||||||
@@ -471,6 +490,42 @@ class PluginProcessmakerTask extends CommonITILTask
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
");
|
");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Summary of sendNotification
|
||||||
|
* Will send either dedicated notification, or standard one
|
||||||
|
* @param string $type is 'task_add', 'task_reassign', 'task_done', 'task_reminder'
|
||||||
|
* @param CommonITILTask $task is the task (TicketTask,...)
|
||||||
|
* @param CommonITILObject $item is the ITIL item (Ticket,...)
|
||||||
|
* @param PluginProcessmakerCase $case is the case
|
||||||
|
*/
|
||||||
|
function sendNotification(string $type, CommonITILTask $task, CommonITILObject $item, PluginProcessmakerCase $case = null) {
|
||||||
|
// Notification management
|
||||||
|
// search if at least one active notification is existing for that pm task with that event 'task_update_'.$glpi_task->fields['taskcategories_id']
|
||||||
|
$res = PluginProcessmakerNotificationTargetTask::getNotifications($type, $task->fields['taskcategories_id'], $item->fields['entities_id']);
|
||||||
|
if ($res['notifications'] && count($res['notifications']) > 0) {
|
||||||
|
NotificationEvent::raiseEvent($res['event'],
|
||||||
|
$this,
|
||||||
|
['plugin_processmaker_cases_id' => $this->fields['plugin_processmaker_cases_id'],
|
||||||
|
'itemtype' => $item->getType(),
|
||||||
|
'task_id' => $task->getID(),
|
||||||
|
'old_users_id_tech' => isset($task->oldvalues['users_id_tech']) ? $task->oldvalues['users_id_tech'] : 0,
|
||||||
|
'is_private' => isset($task->fields['is_private']) ? $task->fields['is_private'] : 0,
|
||||||
|
'entities_id' => $item->fields['entities_id'],
|
||||||
|
'case' => $case,
|
||||||
|
'obj' => $item
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
NotificationEvent::raiseEvent(PluginProcessmakerNotificationTargetTask::getDefaultGLPIEvents($type),
|
||||||
|
$item,
|
||||||
|
['plugin_processmaker_cases_id' => $this->fields['plugin_processmaker_cases_id'],
|
||||||
|
'itemtype' => $item->getType(),
|
||||||
|
'task_id' => $task->getID(),
|
||||||
|
'is_private' => isset($task->fields['is_private']) ? $task->fields['is_private'] : 0
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -295,6 +295,7 @@ class PluginProcessmakerUser extends CommonDBTM {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Summary of getPMUserId
|
* Summary of getPMUserId
|
||||||
* returns processmaker user id for given GLPI user id
|
* returns processmaker user id for given GLPI user id
|
||||||
@@ -309,6 +310,31 @@ class PluginProcessmakerUser extends CommonDBTM {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Summary of getGlpiIdFromAny
|
||||||
|
* Returns the GLPI id of the user or false if not found
|
||||||
|
* Accept either PM GUID, GLPI logon, or GLPI ID
|
||||||
|
* @param $any
|
||||||
|
* @return mixed GLPI ID of the user or fasle if not found
|
||||||
|
*/
|
||||||
|
public static function getGlpiIdFromAny($any) {
|
||||||
|
$ret = self::getGLPIUserId($any);
|
||||||
|
if ($ret) {
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
$ret = self::getPMUserId($any);
|
||||||
|
if ($ret) {
|
||||||
|
return $any;
|
||||||
|
}
|
||||||
|
$usr = new User;
|
||||||
|
if ($usr->getFromDBbyName($any)) {
|
||||||
|
return $usr->getId();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///**
|
///**
|
||||||
// * Summary of getNewPassword
|
// * Summary of getNewPassword
|
||||||
// * @param mixed $username
|
// * @param mixed $username
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ CREATE TABLE IF NOT EXISTS `glpi_plugin_processmaker_configs` (
|
|||||||
`domain` varchar(50) DEFAULT '',
|
`domain` varchar(50) DEFAULT '',
|
||||||
`maintenance` tinyint(1) NOT NULL DEFAULT '0',
|
`maintenance` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
`ssl_verify` tinyint(1) NOT NULL DEFAULT '0',
|
`ssl_verify` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
`db_version` varchar(10) NOT NULL DEFAULT '3.4.9',
|
`db_version` varchar(10) NOT NULL DEFAULT '3.4.10',
|
||||||
`max_cases_per_item` int(11) NOT NULL DEFAULT '0',
|
`max_cases_per_item` int(11) NOT NULL DEFAULT '0',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|||||||
@@ -44,6 +44,10 @@ function processmaker_update() {
|
|||||||
// will upgrade 3.3.8 to 3.4.9
|
// will upgrade 3.3.8 to 3.4.9
|
||||||
include_once(GLPI_ROOT."/plugins/processmaker/install/update_3_3_8_to_3_4_9.php");
|
include_once(GLPI_ROOT."/plugins/processmaker/install/update_3_3_8_to_3_4_9.php");
|
||||||
$new_version = update_3_3_8_to_3_4_9();
|
$new_version = update_3_3_8_to_3_4_9();
|
||||||
|
case '3.4.9' :
|
||||||
|
// will upgrade 3.4.9 to 3.4.10
|
||||||
|
include_once(GLPI_ROOT."/plugins/processmaker/install/update_3_4_9_to_3_4_10.php");
|
||||||
|
$new_version = update_3_4_9_to_3_4_10();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($new_version)) {
|
if (isset($new_version)) {
|
||||||
|
|||||||
12
install/update_3_4_9_to_3_4_10.php
Normal file
12
install/update_3_4_9_to_3_4_10.php
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
function update_3_4_9_to_3_4_10() {
|
||||||
|
global $DB;
|
||||||
|
|
||||||
|
// needs to change _update_ into _reassign_ in the events field of the glpi_notifications table
|
||||||
|
|
||||||
|
$query = "UPDATE `glpi_notifications` SET `event` = REPLACE( `event`, '_update_', '_reassign_') WHERE `event` LIKE '%_update_%' AND `itemtype` = 'PluginProcessmakerTask';";
|
||||||
|
$DB->query($query) or die("error when updating event field in glpi_notifications" . $DB->error());
|
||||||
|
|
||||||
|
return '3.4.10';
|
||||||
|
}
|
||||||
@@ -7,10 +7,12 @@ function onClickContinue(obj) {
|
|||||||
//debugger;
|
//debugger;
|
||||||
contentDocument = caseIFrame.contentDocument;
|
contentDocument = caseIFrame.contentDocument;
|
||||||
var txtAreaUserRequestSumUp = contentDocument.getElementById('form[UserRequestSumUp]');
|
var txtAreaUserRequestSumUp = contentDocument.getElementById('form[UserRequestSumUp]');
|
||||||
if (txtAreaUserRequestSumUp) {
|
if ($("textarea[name='content']").val() == '') {
|
||||||
$("textarea[name='content']").val($(txtAreaUserRequestSumUp).val());
|
if (txtAreaUserRequestSumUp) {
|
||||||
} else {
|
tinymce.activeEditor.setContent($(txtAreaUserRequestSumUp).val().replace(/(\r\n)|(\r)|(\n)/g, '<br>'));
|
||||||
$("textarea[name='content']").val('_');
|
} else {
|
||||||
|
tinymce.activeEditor.setContent('_');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// call old handler if any
|
// call old handler if any
|
||||||
|
|||||||
BIN
locales/fr_FR.mo
BIN
locales/fr_FR.mo
Binary file not shown.
508
locales/fr_FR.po
508
locales/fr_FR.po
@@ -1,22 +1,23 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: processmaker-plugin\n"
|
"Project-Id-Version: processmaker-plugin\n"
|
||||||
"POT-Creation-Date: 2018-08-06 14:32+0200\n"
|
"POT-Creation-Date: 2020-07-13 09:41+0200\n"
|
||||||
"PO-Revision-Date: 2018-08-06 14:44+0200\n"
|
"PO-Revision-Date: 2020-07-13 11:02+0200\n"
|
||||||
"Last-Translator: tomolimo\n"
|
"Last-Translator: tomolimo\n"
|
||||||
"Language-Team: French\n"
|
"Language-Team: French\n"
|
||||||
"Language: fr_FR\n"
|
"Language: fr_FR\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.1.1\n"
|
"X-Generator: Poedit 2.3.1\n"
|
||||||
"X-Poedit-Basepath: ..\n"
|
"X-Poedit-Basepath: ..\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
"X-Poedit-KeywordsList: ;__:1,2t;_e:1,2t;_x:1c,2,3t;_n:1,2,4t;__s:1,2t;"
|
"X-Poedit-KeywordsList: ;__:1,2t;_e:1,2t;_x:1c,2,3t;_n:1,2,4t;__s:1,2t;_ex:1c,2,3t;_sx:1c,2,3t;_nx:1c,2,3,5t\n"
|
||||||
"_ex:1c,2,3t;_sx:1c,2,3t;_nx:1c,2,3,5t\n"
|
|
||||||
"X-Crowdin-Project: processmaker-plugin\n"
|
"X-Crowdin-Project: processmaker-plugin\n"
|
||||||
|
"X-Crowdin-Project-ID: 310131\n"
|
||||||
"X-Crowdin-Language: fr\n"
|
"X-Crowdin-Language: fr\n"
|
||||||
"X-Crowdin-File: /3.3.0/source.po\n"
|
"X-Crowdin-File: /3.4 - GLPI 9.2/source.po\n"
|
||||||
|
"X-Crowdin-File-ID: 20\n"
|
||||||
"X-Poedit-SearchPath-0: ajax\n"
|
"X-Poedit-SearchPath-0: ajax\n"
|
||||||
"X-Poedit-SearchPath-1: front\n"
|
"X-Poedit-SearchPath-1: front\n"
|
||||||
"X-Poedit-SearchPath-2: inc\n"
|
"X-Poedit-SearchPath-2: inc\n"
|
||||||
@@ -25,239 +26,306 @@ msgstr ""
|
|||||||
"X-Poedit-SearchPath-5: hook.php\n"
|
"X-Poedit-SearchPath-5: hook.php\n"
|
||||||
"X-Poedit-SearchPath-6: setup.php\n"
|
"X-Poedit-SearchPath-6: setup.php\n"
|
||||||
|
|
||||||
#: ajax/task_users.php:25
|
#: ajax/task_users.php:36
|
||||||
msgid "Re-assign task to"
|
msgid "Re-assign task to"
|
||||||
msgstr "Ré-affecter tâche à"
|
msgstr "Ré-affecter tâche à"
|
||||||
|
|
||||||
#: ajax/task_users.php:45
|
#: ajax/task_users.php:60 ajax/task_users.php:61 ajax/task_users.php:124
|
||||||
msgid "Re-assign"
|
msgid "Re-assign"
|
||||||
msgstr "Ré-affecter"
|
msgstr "Ré-affecter"
|
||||||
|
|
||||||
#: front/case.form.php:35
|
#: ajax/task_users.php:110
|
||||||
|
#| msgid "Task already assigned to this person!"
|
||||||
|
msgid "Task is already assigned to this user or group!"
|
||||||
|
msgstr "La tâche est déjà affectée à cet utilisateur (ou ce groupe) !"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:110 ajax/task_users.php:122
|
||||||
|
#| msgid "Re-assign task to"
|
||||||
|
msgid "Re-assign task"
|
||||||
|
msgstr "Ré-affecter tâche"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:114 ajax/task_users.php:119
|
||||||
|
#| msgid "Claim target task"
|
||||||
|
msgid "Un-claim task"
|
||||||
|
msgstr "Annuler affectation de la tâche"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:115
|
||||||
|
msgid "Please input reason to un-claim<br/>(task will be re-assigned to former group):"
|
||||||
|
msgstr "Saisir la raison pour l'annulation de l'affectation<br/>(la tâche sera ré-affectée au groupe précédent) :"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:116
|
||||||
|
msgid "Un-claim"
|
||||||
|
msgstr "Annulation de l'affectation"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:119
|
||||||
|
msgid "Can\\'t un-assign Task!"
|
||||||
|
msgstr "Annulation de l'affectation impossible !"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:123
|
||||||
|
msgid "Please input reason to re-assign:"
|
||||||
|
msgstr "Saisir la raison pour la ré-affectation :"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:134
|
||||||
|
msgid "Send reminder"
|
||||||
|
msgstr "Envoyer un rappel"
|
||||||
|
|
||||||
|
#: front/case.form.php:32
|
||||||
msgid "Case has been deleted!"
|
msgid "Case has been deleted!"
|
||||||
msgstr "Le cas a été effacé !"
|
msgstr "Le cas a été effacé !"
|
||||||
|
|
||||||
#: front/case.form.php:37
|
#: front/case.form.php:34
|
||||||
msgid "Unable to delete case!"
|
msgid "Unable to delete case!"
|
||||||
msgstr "Impossible d'effacer le cas !"
|
msgstr "Impossible d'effacer le cas !"
|
||||||
|
|
||||||
#: front/case.form.php:50
|
#: front/case.form.php:46
|
||||||
msgid "Case has been cancelled!"
|
msgid "Case has been cancelled!"
|
||||||
msgstr "Le cas a été annulé !"
|
msgstr "Le cas a été annulé !"
|
||||||
|
|
||||||
#: front/case.form.php:52 front/case.form.php:55
|
#: front/case.form.php:48 front/case.form.php:51
|
||||||
msgid "Unable to cancel case!"
|
msgid "Unable to cancel case!"
|
||||||
msgstr "Impossible d'annuler le cas !"
|
msgstr "Impossible d'annuler le cas !"
|
||||||
|
|
||||||
#: front/case.form.php:76 front/case.form.php:78 inc/case.class.php:1018
|
#: front/case.form.php:70 front/case.form.php:72 inc/case.class.php:1310
|
||||||
msgid "Process cases"
|
msgid "Process cases"
|
||||||
msgstr "Cas des processus"
|
msgstr "Cas des processus"
|
||||||
|
|
||||||
#: front/case.php:5 front/caselink.form.php:27 front/caselink.php:5
|
#: front/case.php:5 front/caselink.form.php:29 front/caselink.php:5
|
||||||
#: front/process.form.php:25 front/process.php:5 inc/caselink.class.php:143
|
#: front/process.form.php:27 front/process.php:5 inc/caselink.class.php:157
|
||||||
#: inc/config.class.php:50 inc/config.class.php:354 inc/process.class.php:393
|
#: inc/config.class.php:50 inc/config.class.php:363 inc/process.class.php:409
|
||||||
#: inc/profile.class.php:52 inc/profile.class.php:83
|
#: inc/profile.class.php:52 inc/profile.class.php:83
|
||||||
msgid "ProcessMaker"
|
msgid "ProcessMaker"
|
||||||
msgstr "ProcessMaker"
|
msgstr "ProcessMaker"
|
||||||
|
|
||||||
#: front/processmaker.form.php:85
|
#: front/processmaker.form.php:80
|
||||||
msgid "Task re-assigned!"
|
msgid "Task re-assigned!"
|
||||||
msgstr "Tâche ré-affectée !"
|
msgstr "Tâche ré-affectée !"
|
||||||
|
|
||||||
#: front/processmaker.form.php:87
|
#: front/processmaker.form.php:82
|
||||||
msgid "Error re-assigning task: "
|
msgid "Error re-assigning task: "
|
||||||
msgstr "Impossible de re-affecter cette tâche : "
|
msgstr "Impossible de ré-affecter cette tâche :"
|
||||||
|
|
||||||
#: front/processmaker.form.php:90
|
#: front/processmaker.form.php:93
|
||||||
msgid "Task already assigned to this person!"
|
#| msgid "Task name"
|
||||||
msgstr "Tâche déjà affectée à cette personne !"
|
msgid "Task un-claimed!"
|
||||||
|
msgstr "Annulation de l'affectation de la tâche effectuée !"
|
||||||
|
|
||||||
|
#: front/processmaker.form.php:95
|
||||||
|
msgid "Can't un-claim task! Verify 'Assignement Rules' in the process definition."
|
||||||
|
msgstr "Annulation de l'affectation impossible ! Vérifiez les règles d'assignation dans la définition du Processus."
|
||||||
|
|
||||||
#: front/processmaker.helpdesk.form.php:21
|
#: front/processmaker.helpdesk.form.php:21
|
||||||
msgid "Process - Case"
|
msgid "Process - Case"
|
||||||
msgstr "Processus - Cas"
|
msgstr "Processus - Cas"
|
||||||
|
|
||||||
#: front/processmaker.helpdesk.form.php:24 inc/case.class.php:605
|
#: front/processmaker.helpdesk.form.php:24 inc/case.class.php:799
|
||||||
msgid "Select the process you want to add"
|
msgid "Select the process you want to add"
|
||||||
msgstr "Choisir le processus à démarrer"
|
msgstr "Choisir le processus à démarrer"
|
||||||
|
|
||||||
#: hook.php:31 inc/taskcategory.class.php:98
|
#: hook.php:9 inc/taskcategory.class.php:214
|
||||||
msgid "Synchronize Task List"
|
msgid "Synchronize Task List"
|
||||||
msgstr "Synchroniser la liste des Tâches"
|
msgstr "Synchroniser la liste des Tâches"
|
||||||
|
|
||||||
#: hook.php:158 inc/case.class.php:77
|
#: hook.php:76 inc/case.class.php:89
|
||||||
msgid "Case"
|
msgid "Case"
|
||||||
msgstr "Cas"
|
msgstr "Cas"
|
||||||
|
|
||||||
#: hook.php:158 inc/case.class.php:586 inc/case.class.php:1062
|
#: hook.php:76 inc/case.class.php:778 inc/case.class.php:1355
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Statut"
|
msgstr "Statut"
|
||||||
|
|
||||||
#: inc/case.class.php:23 inc/case.class.php:90 inc/case.class.php:92
|
#: inc/case.class.php:25 inc/case.class.php:102 inc/case.class.php:104
|
||||||
msgid "Process case"
|
msgid "Process case"
|
||||||
msgid_plural "Process cases"
|
msgid_plural "Process cases"
|
||||||
msgstr[0] "Cas du processus"
|
msgstr[0] "Cas du processus"
|
||||||
msgstr[1] "Cas des processus"
|
msgstr[1] "Cas des processus"
|
||||||
|
|
||||||
#: inc/case.class.php:80
|
#: inc/case.class.php:92
|
||||||
msgid "Sub-case"
|
msgid "Sub-case"
|
||||||
msgstr "Sous-cas"
|
msgstr "Sous-cas"
|
||||||
|
|
||||||
#: inc/case.class.php:312
|
#: inc/case.class.php:303
|
||||||
|
#, php-format
|
||||||
|
msgid "<b>Task un-claimed!</b><br/><b>Case: </b>%s<br/><b>Task: </b>\"%s\" has been un-assigned from \"%s\" and assigned to \"%s\" group.<br/><b>Reason: </b>%s"
|
||||||
|
msgstr "<b>Annulation de l'affection de la tâche effectuée !</b><br/><b>Cas : </b>%s<br/><b>Tâche : </b>\"%s\" a été libérée de \"%s\" et assignée au groupe \"%s\".<br/><b>Motif : </b>%s"
|
||||||
|
|
||||||
|
#: inc/case.class.php:420
|
||||||
|
#, php-format
|
||||||
|
msgid "<b>Task re-assigned!</b><br/><b>Case: </b>%s<br/><b>Task: </b>\"%s\" has been re-assigned from \"%s\" to \"%s\".<br/><b>Reason: </b>%s"
|
||||||
|
msgstr "<b>Tâche ré-assignée !</b><br/><b>Cas : </b>%s<br/><b>Tâche : </b>\"%s\" a été ré-assignée de \"%s\" à \"%s\".<br/><b>Motif : </b>%s"
|
||||||
|
|
||||||
|
#: inc/case.class.php:429
|
||||||
|
#, php-format
|
||||||
|
msgid "<b>Task assigned!</b><br/><b>Case: </b>%s<br/><b>Task: </b>\"%s\" has been assigned to \"%s\".<br/><b>Reason: </b>%s"
|
||||||
|
msgstr "<b>Tâche assignée !</b><br/><b>Cas : </b>%s<br/><b>Tâche : </b>\"%s\" a été asignée à \"%s\".<br/><b>Motif : </b>%s"
|
||||||
|
|
||||||
|
#: inc/case.class.php:510
|
||||||
msgid "Current task(s) properties"
|
msgid "Current task(s) properties"
|
||||||
msgstr "Propriétés des tâches en cours"
|
msgstr "Propriétés des tâches en cours"
|
||||||
|
|
||||||
#: inc/case.class.php:316 inc/task.class.php:263
|
#: inc/case.class.php:514 inc/task.class.php:283
|
||||||
msgid "Task"
|
msgid "Task"
|
||||||
msgstr "Tâche"
|
msgstr "Tâche"
|
||||||
|
|
||||||
#: inc/case.class.php:317 inc/task.class.php:264
|
#: inc/case.class.php:515 inc/task.class.php:284
|
||||||
msgid "Task guid"
|
msgid "Task guid"
|
||||||
msgstr "Guid de la tâche"
|
msgstr "Guid de la tâche"
|
||||||
|
|
||||||
#: inc/case.class.php:318 inc/task.class.php:265
|
#: inc/case.class.php:516 inc/task.class.php:285
|
||||||
msgid "Current user"
|
msgid "Current user"
|
||||||
msgstr "Utilisateur actuel"
|
msgstr "Utilisateur actuel"
|
||||||
|
|
||||||
#: inc/case.class.php:319 inc/task.class.php:266
|
#: inc/case.class.php:517 inc/task.class.php:286
|
||||||
msgid "Task delegation date"
|
msgid "Task delegation date"
|
||||||
msgstr "Date de délégation de tâche"
|
msgstr "Date de délégation de tâche"
|
||||||
|
|
||||||
#: inc/case.class.php:341 inc/task.class.php:275
|
#: inc/case.class.php:539 inc/task.class.php:295
|
||||||
msgid "To be claimed"
|
msgid "To be claimed"
|
||||||
msgstr "A réclamer"
|
msgstr "A réclamer"
|
||||||
|
|
||||||
#: inc/case.class.php:377
|
#: inc/case.class.php:575
|
||||||
msgid "Sub-case properties"
|
msgid "Sub-case properties"
|
||||||
msgstr "Propriétés du sous-cas"
|
msgstr "Propriétés du sous-cas"
|
||||||
|
|
||||||
#: inc/case.class.php:380
|
#: inc/case.class.php:578
|
||||||
msgid "Parent case properties"
|
msgid "Parent case properties"
|
||||||
msgstr "Propriétés du cas parent"
|
msgstr "Propriétés du cas parent"
|
||||||
|
|
||||||
#: inc/case.class.php:382
|
#: inc/case.class.php:580
|
||||||
msgid "Case properties"
|
msgid "Case properties"
|
||||||
msgstr "Propriétés du cas"
|
msgstr "Propriétés du cas"
|
||||||
|
|
||||||
#: inc/case.class.php:387 inc/case.class.php:584 inc/case.class.php:1036
|
#: inc/case.class.php:585 inc/case.class.php:776 inc/case.class.php:1328
|
||||||
#: inc/process.class.php:548
|
#: inc/process.class.php:576
|
||||||
msgid "Process"
|
msgid "Process"
|
||||||
msgstr "Processus"
|
msgstr "Processus"
|
||||||
|
|
||||||
#: inc/case.class.php:388
|
#: inc/case.class.php:586 inc/notificationtargetprocessmaker.class.php:64
|
||||||
msgid "Case title"
|
msgid "Case title"
|
||||||
msgstr "Titre du cas"
|
msgstr "Titre du cas"
|
||||||
|
|
||||||
#: inc/case.class.php:389
|
#: inc/case.class.php:587
|
||||||
msgid "Case number"
|
msgid "Case number"
|
||||||
msgstr "Numéro du cas"
|
msgstr "Numéro du cas"
|
||||||
|
|
||||||
#: inc/case.class.php:390
|
#: inc/case.class.php:588
|
||||||
msgid "Case status"
|
msgid "Case status"
|
||||||
msgstr "Statut du cas"
|
msgstr "Statut du cas"
|
||||||
|
|
||||||
#: inc/case.class.php:391
|
#: inc/case.class.php:589
|
||||||
msgid "Case guid"
|
msgid "Case guid"
|
||||||
msgstr "Guid du cas"
|
msgstr "Guid du cas"
|
||||||
|
|
||||||
#: inc/case.class.php:392
|
#: inc/case.class.php:590
|
||||||
msgid "Creator"
|
msgid "Creator"
|
||||||
msgstr "Créateur"
|
msgstr "Créateur"
|
||||||
|
|
||||||
#: inc/case.class.php:393
|
#: inc/case.class.php:591 inc/case.class.php:1370
|
||||||
msgid "Creation date"
|
msgid "Creation date"
|
||||||
msgstr "Date de création"
|
msgstr "Date de création"
|
||||||
|
|
||||||
#: inc/case.class.php:394
|
#: inc/case.class.php:592
|
||||||
msgid "Last update"
|
msgid "Last update"
|
||||||
msgstr "Dernière mise à jour"
|
msgstr "Dernière mise à jour"
|
||||||
|
|
||||||
#: inc/case.class.php:479
|
#: inc/case.class.php:675
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Case is linked to a %1s"
|
msgid "Case is linked to a %1s"
|
||||||
msgstr "Le cas est lié à un %1s"
|
msgstr "Le cas est lié à un %1s"
|
||||||
|
|
||||||
#: inc/case.class.php:481
|
#: inc/case.class.php:677
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Sub-case is linked to a %1s"
|
msgid "Sub-case is linked to a %1s"
|
||||||
msgstr "Le sous-cas est lié à un %1s"
|
msgstr "Le sous-cas est lié à un %1s"
|
||||||
|
|
||||||
#: inc/case.class.php:506
|
#: inc/case.class.php:698
|
||||||
msgid "Case cancellation"
|
msgid "Case cancellation"
|
||||||
msgstr "Annulation du cas"
|
msgstr "Annulation du cas"
|
||||||
|
|
||||||
#: inc/case.class.php:507
|
#: inc/case.class.php:699
|
||||||
msgid "Cancel case"
|
msgid "Cancel case"
|
||||||
msgstr "Annuler cas"
|
msgstr "Annuler cas"
|
||||||
|
|
||||||
#: inc/case.class.php:511
|
#: inc/case.class.php:703
|
||||||
msgid "Confirm cancellation?"
|
msgid "Confirm cancellation?"
|
||||||
msgstr "Confirmer l’annulation ?"
|
msgstr "Confirmer l’annulation ?"
|
||||||
|
|
||||||
#: inc/case.class.php:511 inc/profile.class.php:23
|
#: inc/case.class.php:703 inc/profile.class.php:23
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annuler"
|
msgstr "Annuler"
|
||||||
|
|
||||||
#: inc/case.class.php:532
|
#: inc/case.class.php:717
|
||||||
msgid "Case deletion"
|
msgid "Case deletion"
|
||||||
msgstr "Suppression du cas"
|
msgstr "Suppression du cas"
|
||||||
|
|
||||||
#: inc/case.class.php:533
|
#: inc/case.class.php:777 inc/case.class.php:1321
|
||||||
msgid "Delete case"
|
|
||||||
msgstr "Supprimer le cas"
|
|
||||||
|
|
||||||
#: inc/case.class.php:585 inc/case.class.php:1029
|
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Titre"
|
msgstr "Titre"
|
||||||
|
|
||||||
#: inc/case.class.php:587 inc/case.class.php:1070
|
#: inc/case.class.php:779 inc/case.class.php:1362
|
||||||
msgid "Sub-case of"
|
msgid "Sub-case of"
|
||||||
msgstr "Sous-cas de"
|
msgstr "Sous-cas de"
|
||||||
|
|
||||||
#: inc/case.class.php:602
|
#: inc/case.class.php:796
|
||||||
msgid "Add a new case"
|
msgid "Add a new case"
|
||||||
msgstr "Ajouter un nouveau cas"
|
msgstr "Ajouter un nouveau cas"
|
||||||
|
|
||||||
#: inc/case.class.php:995
|
#: inc/case.class.php:1227
|
||||||
msgctxt "case_status"
|
msgctxt "case_status"
|
||||||
msgid "Draft"
|
msgid "Draft"
|
||||||
msgstr "Brouillon"
|
msgstr "Brouillon"
|
||||||
|
|
||||||
#: inc/case.class.php:996
|
#: inc/case.class.php:1228
|
||||||
msgctxt "case_status"
|
msgctxt "case_status"
|
||||||
msgid "To do"
|
msgid "To do"
|
||||||
msgstr "A faire"
|
msgstr "A faire"
|
||||||
|
|
||||||
#: inc/case.class.php:997
|
#: inc/case.class.php:1229
|
||||||
msgctxt "case_status"
|
msgctxt "case_status"
|
||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr "Terminé"
|
msgstr "Terminé"
|
||||||
|
|
||||||
#: inc/case.class.php:998
|
#: inc/case.class.php:1230
|
||||||
msgctxt "case_status"
|
msgctxt "case_status"
|
||||||
msgid "Cancelled"
|
msgid "Cancelled"
|
||||||
msgstr "Annulé"
|
msgstr "Annulé"
|
||||||
|
|
||||||
#: inc/case.class.php:1022
|
#: inc/case.class.php:1314
|
||||||
msgid "ID"
|
msgid "ID"
|
||||||
msgstr "ID"
|
msgstr "ID"
|
||||||
|
|
||||||
#: inc/case.class.php:1049
|
#: inc/case.class.php:1335 inc/notificationtargetprocessmaker.class.php:72
|
||||||
|
#| msgid "Item entity"
|
||||||
|
msgid "Item type"
|
||||||
|
msgstr "Type de l'item"
|
||||||
|
|
||||||
|
#: inc/case.class.php:1342
|
||||||
msgid "Item"
|
msgid "Item"
|
||||||
msgstr "Item"
|
msgstr "Item"
|
||||||
|
|
||||||
#: inc/case.class.php:1056
|
#: inc/case.class.php:1349
|
||||||
msgid "Item entity"
|
msgid "Item entity"
|
||||||
msgstr "Entité de l'item"
|
msgstr "Entité de l'item"
|
||||||
|
|
||||||
#: inc/casechangelog.class.php:35
|
#: inc/case.class.php:1379
|
||||||
|
#| msgid "Last update"
|
||||||
|
msgid "Last update date"
|
||||||
|
msgstr "Date de dernière mise à jour"
|
||||||
|
|
||||||
|
#: inc/case.class.php:1392
|
||||||
|
#, php-format
|
||||||
|
#| msgid "Case status"
|
||||||
|
msgid "Case status is '%s'"
|
||||||
|
msgstr "L'état du cas est '%s'"
|
||||||
|
|
||||||
|
#: inc/casechangelog.class.php:36
|
||||||
msgid "Change log"
|
msgid "Change log"
|
||||||
msgstr "Evolution"
|
msgstr "Evolution"
|
||||||
|
|
||||||
#: inc/casedynaform.class.php:80
|
#: inc/casedynaform.class.php:83
|
||||||
msgid "Dynaforms"
|
msgid "Dynaforms"
|
||||||
msgstr "DynaForms"
|
msgstr "DynaForms"
|
||||||
|
|
||||||
#: inc/casehistory.class.php:35
|
#: inc/casehistory.class.php:36
|
||||||
msgid "History"
|
msgid "History"
|
||||||
msgstr "Historique"
|
msgstr "Historique"
|
||||||
|
|
||||||
@@ -269,43 +337,51 @@ msgstr "Liens-cas"
|
|||||||
msgid "Case-link"
|
msgid "Case-link"
|
||||||
msgstr "Lien-cas"
|
msgstr "Lien-cas"
|
||||||
|
|
||||||
#: inc/caselink.class.php:75 inc/caselink.class.php:165
|
#: inc/caselink.class.php:75
|
||||||
|
msgid "Synchronous"
|
||||||
|
msgstr "Synchrone"
|
||||||
|
|
||||||
|
#: inc/caselink.class.php:80 inc/caselink.class.php:179
|
||||||
msgid "External data"
|
msgid "External data"
|
||||||
msgstr "Données externes"
|
msgstr "Données externes"
|
||||||
|
|
||||||
#: inc/caselink.class.php:80 inc/caselink.class.php:171
|
#: inc/caselink.class.php:85 inc/caselink.class.php:185
|
||||||
msgid "Self"
|
msgid "Self"
|
||||||
msgstr "Self"
|
msgstr "Self"
|
||||||
|
|
||||||
#: inc/caselink.class.php:85 inc/caselink.class.php:189
|
#: inc/caselink.class.php:90 inc/caselink.class.php:203
|
||||||
msgid "Source task GUID"
|
msgid "Source task GUID"
|
||||||
msgstr "GUID de la tâche source"
|
msgstr "GUID de la tâche source"
|
||||||
|
|
||||||
#: inc/caselink.class.php:93 inc/caselink.class.php:195
|
#: inc/caselink.class.php:98 inc/caselink.class.php:209
|
||||||
msgid "Target task GUID"
|
msgid "Target task GUID"
|
||||||
msgstr "GUID de la tâche cible"
|
msgstr "GUID de la tâche cible"
|
||||||
|
|
||||||
#: inc/caselink.class.php:101 inc/caselink.class.php:207
|
#: inc/caselink.class.php:106 inc/caselink.class.php:221
|
||||||
msgid "Target process GUID"
|
msgid "Target process GUID"
|
||||||
msgstr "GUID du Processus cible"
|
msgstr "GUID du Processus cible"
|
||||||
|
|
||||||
#: inc/caselink.class.php:110 inc/caselink.class.php:201
|
#: inc/caselink.class.php:115 inc/caselink.class.php:215
|
||||||
msgid "Target dynaform GUID"
|
msgid "Target dynaform GUID"
|
||||||
msgstr "GUID du dynaform cible"
|
msgstr "GUID du dynaform cible"
|
||||||
|
|
||||||
#: inc/caselink.class.php:115 inc/caselink.class.php:213
|
#: inc/caselink.class.php:120 inc/caselink.class.php:227
|
||||||
msgid "Source condition"
|
msgid "Source condition"
|
||||||
msgstr "Condition d'activation du lien"
|
msgstr "Condition d'activation du lien"
|
||||||
|
|
||||||
#: inc/caselink.class.php:121 inc/caselink.class.php:177
|
#: inc/caselink.class.php:126 inc/caselink.class.php:191
|
||||||
msgid "Claim target task"
|
msgid "Claim target task"
|
||||||
msgstr "Tâche cible 'à réclamer'"
|
msgstr "Tâche cible 'à réclamer'"
|
||||||
|
|
||||||
#: inc/caselink.class.php:126 inc/caselink.class.php:183
|
#: inc/caselink.class.php:136
|
||||||
|
msgid "Impersonate target task user"
|
||||||
|
msgstr "Personnifier l'utilisateur de la tâche cible"
|
||||||
|
|
||||||
|
#: inc/caselink.class.php:141 inc/caselink.class.php:197
|
||||||
msgid "External application JSON config"
|
msgid "External application JSON config"
|
||||||
msgstr "Configuration JSON de l'application externe"
|
msgstr "Configuration JSON de l'application externe"
|
||||||
|
|
||||||
#: inc/casemap.class.php:43
|
#: inc/casemap.class.php:44
|
||||||
msgid "Map"
|
msgid "Map"
|
||||||
msgstr "Carte"
|
msgstr "Carte"
|
||||||
|
|
||||||
@@ -314,190 +390,294 @@ msgid "ProcessMaker setup"
|
|||||||
msgstr "Configuration du serveur ProcessMaker"
|
msgstr "Configuration du serveur ProcessMaker"
|
||||||
|
|
||||||
#: inc/config.class.php:159
|
#: inc/config.class.php:159
|
||||||
msgid "Server URL (must be in same domain than GLPI)"
|
#| msgid "Server URL (must be in same domain than GLPI)"
|
||||||
msgstr "URL du serveur (doit être dans le même domaine que GLPI)"
|
msgid "Server URL (must be in same domain than GLPI, if GLPI is using HTTPS, PM server must also use HTTPS)"
|
||||||
|
msgstr "URL du serveur (doit être dans le même domaine que GLPI, si GLPI utilise HTTPS, alors PM doit aussi utiliser HTTPS)"
|
||||||
|
|
||||||
#: inc/config.class.php:164
|
#: inc/config.class.php:163
|
||||||
msgid "Common domain with GLPI"
|
msgid "Common domain with GLPI"
|
||||||
msgstr "Domaine commun avec GLPI"
|
msgstr "Domaine commun avec GLPI"
|
||||||
|
|
||||||
#: inc/config.class.php:193
|
#: inc/config.class.php:192
|
||||||
msgid "None!"
|
msgid "None!"
|
||||||
msgstr "Aucun !"
|
msgstr "Aucun !"
|
||||||
|
|
||||||
#: inc/config.class.php:202
|
#: inc/config.class.php:201
|
||||||
|
msgid "Verify SSL certificate"
|
||||||
|
msgstr "Verification du certificat SSL"
|
||||||
|
|
||||||
|
#: inc/config.class.php:206
|
||||||
msgid "Workspace Name"
|
msgid "Workspace Name"
|
||||||
msgstr "Nom du Workspace"
|
msgstr "Nom du Workspace"
|
||||||
|
|
||||||
#: inc/config.class.php:207
|
#: inc/config.class.php:211
|
||||||
msgid "Server administrator name"
|
msgid "Server administrator name"
|
||||||
msgstr "Non de l'administreur du server ProcessMaker"
|
msgstr "Non de l'administreur du server ProcessMaker"
|
||||||
|
|
||||||
#: inc/config.class.php:212
|
#: inc/config.class.php:216
|
||||||
msgid "Server administrator password"
|
msgid "Server administrator password"
|
||||||
msgstr "Mot de passe de l'administrateur du serveur ProcessMaker"
|
msgstr "Mot de passe de l'administrateur du serveur ProcessMaker"
|
||||||
|
|
||||||
#: inc/config.class.php:218 inc/config.class.php:258
|
#: inc/config.class.php:222 inc/config.class.php:262
|
||||||
msgid "Connection status"
|
msgid "Connection status"
|
||||||
msgstr "Status de la connexion"
|
msgstr "Status de la connexion"
|
||||||
|
|
||||||
#: inc/config.class.php:234
|
#: inc/config.class.php:238
|
||||||
msgid "SQL server setup"
|
msgid "SQL server setup"
|
||||||
msgstr "Configuration du serveur SQL"
|
msgstr "Configuration du serveur SQL"
|
||||||
|
|
||||||
#: inc/config.class.php:237
|
#: inc/config.class.php:241
|
||||||
msgid "SQL server (MariaDB or MySQL)"
|
msgid "SQL server (MariaDB or MySQL)"
|
||||||
msgstr "SQL server (MariaDB ou MySQL)"
|
msgstr "SQL server (MariaDB ou MySQL)"
|
||||||
|
|
||||||
#: inc/config.class.php:242
|
#: inc/config.class.php:246
|
||||||
msgid "Database name"
|
msgid "Database name"
|
||||||
msgstr "Nom de la base de données"
|
msgstr "Nom de la base de données"
|
||||||
|
|
||||||
#: inc/config.class.php:247
|
#: inc/config.class.php:251
|
||||||
msgid "SQL user"
|
msgid "SQL user"
|
||||||
msgstr "Utilisateur SQL"
|
msgstr "Utilisateur SQL"
|
||||||
|
|
||||||
#: inc/config.class.php:252
|
#: inc/config.class.php:256
|
||||||
msgid "SQL password"
|
msgid "SQL password"
|
||||||
msgstr "Mot de passe SQL"
|
msgstr "Mot de passe SQL"
|
||||||
|
|
||||||
#: inc/config.class.php:269
|
#: inc/config.class.php:273
|
||||||
msgid "Theme Name"
|
msgid "Theme Name"
|
||||||
msgstr "Nom du thème"
|
msgstr "Nom du thème"
|
||||||
|
|
||||||
#: inc/config.class.php:275
|
#: inc/config.class.php:279
|
||||||
msgid "Main Task Category (edit to change name)"
|
msgid "Main Task Category (edit to change name)"
|
||||||
msgstr "Catégorie principale des tâches (éditer pour changer le nom)"
|
msgstr "Catégorie principale des tâches (éditer pour changer le nom)"
|
||||||
|
|
||||||
#: inc/config.class.php:282
|
#: inc/config.class.php:286
|
||||||
msgid "Task Writer (edit to change name)"
|
msgid "Task Writer (edit to change name)"
|
||||||
msgstr "Auteur des tâches (éditer pour changer le nom)"
|
msgstr "Auteur des tâches (éditer pour changer le nom)"
|
||||||
|
|
||||||
#: inc/config.class.php:302
|
#: inc/config.class.php:306
|
||||||
msgid "Group in ProcessMaker which will contain all GLPI users"
|
msgid "Group in ProcessMaker which will contain all GLPI users"
|
||||||
msgstr "Groupe dans ProcessMaker qui contiendra les utilisateurs de GLPI"
|
msgstr "Groupe dans ProcessMaker qui contiendra les utilisateurs de GLPI"
|
||||||
|
|
||||||
#: inc/config.class.php:331
|
#: inc/config.class.php:321 inc/process.class.php:510 inc/process.class.php:637
|
||||||
|
msgid "Max cases per item (0=unlimited)"
|
||||||
|
msgstr "Nombre de cas maxi par item (0 = pas de limite)"
|
||||||
|
|
||||||
|
#: inc/config.class.php:340
|
||||||
msgid "Processmaker system information"
|
msgid "Processmaker system information"
|
||||||
msgstr "Informations système du serveur ProcessMaker"
|
msgstr "Informations système du serveur ProcessMaker"
|
||||||
|
|
||||||
#: inc/config.class.php:334 inc/config.class.php:344
|
#: inc/config.class.php:343 inc/config.class.php:353
|
||||||
msgid "Version"
|
msgid "Version"
|
||||||
msgstr "Version"
|
msgstr "Version"
|
||||||
|
|
||||||
#: inc/config.class.php:335
|
#: inc/config.class.php:344
|
||||||
msgid "Web server"
|
msgid "Web server"
|
||||||
msgstr "Serveur web"
|
msgstr "Serveur web"
|
||||||
|
|
||||||
#: inc/config.class.php:336
|
#: inc/config.class.php:345
|
||||||
msgid "Server name"
|
msgid "Server name"
|
||||||
msgstr "Nom du serveur"
|
msgstr "Nom du serveur"
|
||||||
|
|
||||||
#: inc/config.class.php:337
|
#: inc/config.class.php:346
|
||||||
msgid "PHP version"
|
msgid "PHP version"
|
||||||
msgstr "Version de PHP"
|
msgstr "Version de PHP"
|
||||||
|
|
||||||
#: inc/config.class.php:338
|
#: inc/config.class.php:347
|
||||||
msgid "DB version"
|
msgid "DB version"
|
||||||
msgstr "Version de la Db"
|
msgstr "Version de la Db"
|
||||||
|
|
||||||
#: inc/config.class.php:339
|
#: inc/config.class.php:348
|
||||||
msgid "DB server IP"
|
msgid "DB server IP"
|
||||||
msgstr "IP du serveur DB"
|
msgstr "IP du serveur DB"
|
||||||
|
|
||||||
#: inc/config.class.php:340
|
#: inc/config.class.php:349
|
||||||
msgid "DB name"
|
msgid "DB name"
|
||||||
msgstr "Nom de la BD"
|
msgstr "Nom de la BD"
|
||||||
|
|
||||||
#: inc/config.class.php:341
|
#: inc/config.class.php:350
|
||||||
msgid "User browser"
|
msgid "User browser"
|
||||||
msgstr "Navigateur de l’utilisateur"
|
msgstr "Navigateur de l’utilisateur"
|
||||||
|
|
||||||
#: inc/config.class.php:342
|
#: inc/config.class.php:351
|
||||||
msgid "User IP"
|
msgid "User IP"
|
||||||
msgstr "IP de l'utilisateur"
|
msgstr "IP de l'utilisateur"
|
||||||
|
|
||||||
#: inc/config.class.php:344
|
#: inc/config.class.php:353
|
||||||
msgid "Not yet!"
|
msgid "Not yet!"
|
||||||
msgstr "Pas encore !"
|
msgstr "Pas encore !"
|
||||||
|
|
||||||
#: inc/process.class.php:350
|
#: inc/notificationtargetcase.class.php:26
|
||||||
|
msgid "Send email"
|
||||||
|
msgstr "Envoi d'email"
|
||||||
|
|
||||||
|
#: inc/notificationtargetcase.class.php:37
|
||||||
|
msgid "eMail recipients"
|
||||||
|
msgstr "Destinataires des emails"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:60
|
||||||
|
#| msgid "Process case"
|
||||||
|
#| msgid_plural "Process cases"
|
||||||
|
msgid "Process category"
|
||||||
|
msgstr "Catégorie du processus"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:61
|
||||||
|
#| msgid "Process case"
|
||||||
|
#| msgid_plural "Process cases"
|
||||||
|
msgid "Process category id"
|
||||||
|
msgstr "ID de la catégorie du processus"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:62
|
||||||
|
#| msgid "Process case task"
|
||||||
|
#| msgid_plural "Process case tasks"
|
||||||
|
msgid "Process category comment"
|
||||||
|
msgstr "Commentaire de la catégorie du processus"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:63
|
||||||
|
#| msgid "Case guid"
|
||||||
|
msgid "Case id"
|
||||||
|
msgstr "ID du cas"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:65
|
||||||
|
#| msgid "Case deletion"
|
||||||
|
msgid "Case description"
|
||||||
|
msgstr "Description du cas"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:67
|
||||||
|
msgid "Case variable 'XXX'"
|
||||||
|
msgstr "Variable de cas 'XXX'"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:68
|
||||||
|
msgid "List of values in 'YYY' array"
|
||||||
|
msgstr "Liste des valeurs du tableau 'YYY'"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:69
|
||||||
|
msgid "Number of rows in 'YYY' array"
|
||||||
|
msgstr "Nombre de lignes du tableau 'YYY'"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:70
|
||||||
|
msgid "Value for colname in 'YYY' array"
|
||||||
|
msgstr "Valeur de la colonne 'colname' du tableau 'YYY'"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:71
|
||||||
|
msgid "Value for key in 'ZZZ' assoc array (1-dimension array)"
|
||||||
|
msgstr "Valeur pour la clé 'key' du tableau associatif à une dimension 'ZZZ'"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:73
|
||||||
|
#| msgid "Item"
|
||||||
|
msgid "Item id"
|
||||||
|
msgstr "ID de l'item"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:74
|
||||||
|
#| msgid "Item"
|
||||||
|
msgid "Item URL"
|
||||||
|
msgstr "URL de l'item"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:75
|
||||||
|
#| msgid "Item entity"
|
||||||
|
msgid "Item title"
|
||||||
|
msgstr "Titre de l'item"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:83
|
||||||
|
msgid "XXX is to be replaced by any case variable names"
|
||||||
|
msgstr "XXX doit être remplacé par n'importe quel nom de variable de cas"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:86
|
||||||
|
msgid "YYY is to be replaced by any array variables"
|
||||||
|
msgstr "YYY doit être remplacé par n'importe quel nom de tableau"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:90
|
||||||
|
msgid "ZZZ is to be replaced by any assoc array variables (1-dimension array with key/value pairs)"
|
||||||
|
msgstr "ZZZ doit être replacé par n'importe quel nom de tableau associatif à une dimension (paire clé/valeur)"
|
||||||
|
|
||||||
|
#: inc/notificationtargettask.class.php:195
|
||||||
|
#| msgid "Task delegation date"
|
||||||
|
msgid "Task action"
|
||||||
|
msgstr "Action de la tâche"
|
||||||
|
|
||||||
|
#: inc/process.class.php:366
|
||||||
msgid "Synchronize Process List"
|
msgid "Synchronize Process List"
|
||||||
msgstr "Synchroniser la liste des processus"
|
msgstr "Synchroniser la liste des processus"
|
||||||
|
|
||||||
#: inc/process.class.php:427 inc/process.class.php:589
|
#: inc/process.class.php:443 inc/process.class.php:617
|
||||||
msgid "Process GUID"
|
msgid "Process GUID"
|
||||||
msgstr "GUID du Processus"
|
msgstr "GUID du Processus"
|
||||||
|
|
||||||
#: inc/process.class.php:433
|
#: inc/process.class.php:449
|
||||||
msgid "Process type"
|
msgid "Process type"
|
||||||
msgstr "Type de processus"
|
msgstr "Type de processus"
|
||||||
|
|
||||||
#: inc/process.class.php:439
|
#: inc/process.class.php:455
|
||||||
msgid "Hide case num. & title"
|
msgid "Hide case num. & title"
|
||||||
msgstr "Cacher num. et titre du cas"
|
msgstr "Cacher num. et titre du cas"
|
||||||
|
|
||||||
#: inc/process.class.php:445
|
#: inc/process.class.php:461
|
||||||
msgid "Insert Task Category"
|
msgid "Insert Task Category"
|
||||||
msgstr "Insérer la catégorie des tâches"
|
msgstr "Insérer la catégorie des tâches"
|
||||||
|
|
||||||
#: inc/process.class.php:457
|
#: inc/process.class.php:473
|
||||||
msgid "Ticket type (self-service)"
|
msgid "Ticket type (self-service)"
|
||||||
msgstr "Type de ticket (self-service)"
|
msgstr "Type de ticket (self-service)"
|
||||||
|
|
||||||
#: inc/process.class.php:464 inc/process.class.php:609
|
#: inc/process.class.php:480 inc/process.class.php:642
|
||||||
msgid "Visible in Incident for Central interface"
|
msgid "Visible in Incident for Central interface"
|
||||||
msgstr "Visible pour un Incident sur l'interface Centrale"
|
msgstr "Visible pour un Incident sur l'interface Centrale"
|
||||||
|
|
||||||
#: inc/process.class.php:470 inc/process.class.php:614
|
#: inc/process.class.php:486 inc/process.class.php:647
|
||||||
msgid "Visible in Request for Central interface"
|
msgid "Visible in Request for Central interface"
|
||||||
msgstr "Visible pour une demande sur l'interface Centrale"
|
msgstr "Visible pour une demande sur l'interface Centrale"
|
||||||
|
|
||||||
#: inc/process.class.php:476 inc/process.class.php:666
|
#: inc/process.class.php:492 inc/process.class.php:699
|
||||||
msgid "Visible in Change"
|
msgid "Visible in Change"
|
||||||
msgstr "Visible dans un Changement"
|
msgstr "Visible dans un Changement"
|
||||||
|
|
||||||
#: inc/process.class.php:482 inc/process.class.php:671
|
#: inc/process.class.php:498 inc/process.class.php:704
|
||||||
msgid "Visible in Problem"
|
msgid "Visible in Problem"
|
||||||
msgstr "Visible dans un Problème"
|
msgstr "Visible dans un Problème"
|
||||||
|
|
||||||
#: inc/process.class.php:519
|
#: inc/process.class.php:504
|
||||||
|
msgid "Maintenance"
|
||||||
|
msgstr "Maintenance"
|
||||||
|
|
||||||
|
#: inc/process.class.php:547
|
||||||
msgctxt "process_type"
|
msgctxt "process_type"
|
||||||
msgid "Classic"
|
msgid "Classic"
|
||||||
msgstr "Classique"
|
msgstr "Classique"
|
||||||
|
|
||||||
#: inc/process.class.php:520
|
#: inc/process.class.php:548
|
||||||
msgctxt "process_type"
|
msgctxt "process_type"
|
||||||
msgid "BPMN"
|
msgid "BPMN"
|
||||||
msgstr "BPMN"
|
msgstr "BPMN"
|
||||||
|
|
||||||
#: inc/process.class.php:546
|
#: inc/process.class.php:574
|
||||||
msgid "Processes"
|
msgid "Processes"
|
||||||
msgstr "Processus"
|
msgstr "Processus"
|
||||||
|
|
||||||
#: inc/process.class.php:599
|
#: inc/process.class.php:627
|
||||||
msgid "Hide case number and title in task descriptions"
|
msgid "Hide case number and title in task descriptions"
|
||||||
msgstr "Masquer numéro et titre des cas dans les descriptions des tâches"
|
msgstr "Masquer numéro et titre des cas dans les descriptions des tâches"
|
||||||
|
|
||||||
#: inc/process.class.php:604
|
#: inc/process.class.php:632
|
||||||
msgid "Insert Task Category comments in Task Description"
|
msgid "Insert Task Category comments in Task Description"
|
||||||
msgstr ""
|
msgstr "Insérer les commentaires des Catégories de Tâches dans les descriptions des Tâches"
|
||||||
"Insérer les commentaires des Catégories de Tâches dans les descriptions des "
|
|
||||||
"Tâches"
|
|
||||||
|
|
||||||
#: inc/process.class.php:619
|
#: inc/process.class.php:652
|
||||||
msgid "ITIL Category for Self-service interface (left empty to disable)"
|
msgid "ITIL Category for Self-service interface (left empty to disable)"
|
||||||
msgstr ""
|
msgstr "Catégorie ITIL pour l'interface libre-service (laissez vide pour désactiver)"
|
||||||
"Catégorie ITIL pour l'interface libre-service (laissez vide pour désactiver)"
|
|
||||||
|
|
||||||
#: inc/process.class.php:646
|
#: inc/process.class.php:679
|
||||||
msgid "Type for Self-service interface"
|
msgid "Type for Self-service interface"
|
||||||
msgstr "Type de ticket pour l'interface libre-service"
|
msgstr "Type de ticket pour l'interface libre-service"
|
||||||
|
|
||||||
#: inc/process.class.php:676
|
#: inc/process.class.php:709
|
||||||
msgid "Process type (to be changed only if not up-to-date)"
|
msgid "Process type (to be changed only if not up-to-date)"
|
||||||
msgstr "Type de processus (à modifier uniquement si pas à jour)"
|
msgstr "Type de processus (à modifier uniquement si pas à jour)"
|
||||||
|
|
||||||
|
#: inc/process.class.php:862
|
||||||
|
#, php-format
|
||||||
|
#| msgid "ProcessMaker plugin is under maintenance, please retry later, thank you."
|
||||||
|
msgid "Process '%s' is under maintenance, please retry later, thank you."
|
||||||
|
msgstr "Le processus '%s' est en maintenance, ré-essayez plus tard, merci."
|
||||||
|
|
||||||
#: inc/process_profile.class.php:26 inc/process_profile.class.php:45
|
#: inc/process_profile.class.php:26 inc/process_profile.class.php:45
|
||||||
msgid "Authorizations"
|
msgid "Authorizations"
|
||||||
msgstr "Autorisations"
|
msgstr "Autorisations"
|
||||||
@@ -516,40 +696,42 @@ msgctxt "errors"
|
|||||||
msgid "Can't create case: no rights for it!"
|
msgid "Can't create case: no rights for it!"
|
||||||
msgstr "Impossible de créer le cas : pas de droits pour cela !"
|
msgstr "Impossible de créer le cas : pas de droits pour cela !"
|
||||||
|
|
||||||
#: inc/processmaker.class.php:984
|
#: inc/processmaker.class.php:1012
|
||||||
msgid "Syncs GLPI users and groups into ProcessMaker."
|
msgid "Syncs GLPI users and groups into ProcessMaker."
|
||||||
msgstr "Synchronisation des utilisateurs GLPI et des groups avec ProcessMaker."
|
msgstr "Synchronisation des utilisateurs GLPI et des groups avec ProcessMaker."
|
||||||
|
|
||||||
#: inc/processmaker.class.php:986
|
#: inc/processmaker.class.php:1014
|
||||||
msgid "Cleaning of orphan cases."
|
msgid "Cleaning of orphan cases."
|
||||||
msgstr "Nettoyage des cas orphelins."
|
msgstr "Nettoyage des cas orphelins."
|
||||||
|
|
||||||
#: inc/processmaker.class.php:986
|
#: inc/processmaker.class.php:1014
|
||||||
msgid "Number of days to keep orphan cases"
|
msgid "Number of days to keep orphan cases"
|
||||||
msgstr "Nombre de jours avant nettoyage des cas orphelins"
|
msgstr "Nombre de jours avant nettoyage des cas orphelins"
|
||||||
|
|
||||||
#: inc/processmaker.class.php:988
|
#: inc/processmaker.class.php:1016
|
||||||
msgid "To apply task actions between cases."
|
msgid "To apply task actions between cases."
|
||||||
msgstr "Pour appliquer des actions de tâches entre cas."
|
msgstr "Pour appliquer des actions de tâches entre cas."
|
||||||
|
|
||||||
#: inc/processmaker.class.php:1696
|
#: inc/processmaker.class.php:1720
|
||||||
msgid "Case title: "
|
msgid "Case title: "
|
||||||
msgstr "Titre du cas : "
|
msgstr "Titre du cas : "
|
||||||
|
|
||||||
#: inc/processmaker.class.php:2178
|
#: inc/processmaker.class.php:2275
|
||||||
msgid "A 'Case' is running!"
|
msgid "A 'Case' is running!"
|
||||||
msgstr "Un 'Cas' est en cours !"
|
msgstr "Un 'Cas' est en cours !"
|
||||||
|
|
||||||
#: inc/processmaker.class.php:2179
|
#: inc/processmaker.class.php:2276
|
||||||
msgid "You must manage it first (see 'Process - Case' tab)!"
|
msgid "You must manage it first (see 'Process - Case' tab)!"
|
||||||
msgstr "Vous devez d'abord le terminer (voir onglet 'Processus - Cas') !"
|
msgstr "Vous devez d'abord le terminer (voir onglet 'Processus - Cas') !"
|
||||||
|
|
||||||
#: inc/processmaker.class.php:3038
|
#: inc/processmaker.class.php:2774
|
||||||
msgid ""
|
#, php-format
|
||||||
"ProcessMaker plugin is under maintenance, please retry later, thank you."
|
msgid "Unable to derivate case! Retry in a moment, or ask your administrator.<hr>Error code: %u<br/>Error message: %s<br/>"
|
||||||
msgstr ""
|
msgstr "Impossible de dériver le cas ! Ré-essayez dans un moment, ou demandez à votre administrateur.<hr>Code d'erreur : %u<br/>Message d'erreur : %s<br/>"
|
||||||
"Le plugin ProcessMaker est en maintenance, veuillez ré-essayer plus tard, "
|
|
||||||
"merci."
|
#: inc/processmaker.class.php:3281
|
||||||
|
msgid "ProcessMaker plugin is under maintenance, please retry later, thank you."
|
||||||
|
msgstr "Le plugin ProcessMaker est en maintenance, veuillez ré-essayer plus tard, merci."
|
||||||
|
|
||||||
#: inc/profile.class.php:17
|
#: inc/profile.class.php:17
|
||||||
msgid "Process configuration"
|
msgid "Process configuration"
|
||||||
@@ -559,36 +741,62 @@ msgstr "Configuration des Processus"
|
|||||||
msgid "Cases"
|
msgid "Cases"
|
||||||
msgstr "Cas"
|
msgstr "Cas"
|
||||||
|
|
||||||
|
#: inc/profile.class.php:23
|
||||||
|
msgid "Ad Hoc user re-assign"
|
||||||
|
msgstr "Ré-assignation d'un utilisateur Ad Hoc"
|
||||||
|
|
||||||
#: inc/task.class.php:29
|
#: inc/task.class.php:29
|
||||||
msgid "Process case task"
|
msgid "Process case task"
|
||||||
msgid_plural "Process case tasks"
|
msgid_plural "Process case tasks"
|
||||||
msgstr[0] "Tâche d'un cas"
|
msgstr[0] "Tâche d'un cas"
|
||||||
msgstr[1] "Tâches d'un cas"
|
msgstr[1] "Tâches d'un cas"
|
||||||
|
|
||||||
#: inc/task.class.php:258
|
#: inc/task.class.php:278
|
||||||
msgid "Sub-case task(s)"
|
msgid "Sub-case task(s)"
|
||||||
msgstr "Tache(s) du sous-cas"
|
msgstr "Tache(s) du sous-cas"
|
||||||
|
|
||||||
#: inc/taskcategory.class.php:21 inc/taskcategory.class.php:31
|
#: inc/taskcategory.class.php:24 inc/taskcategory.class.php:116
|
||||||
|
#| msgid "Process case"
|
||||||
|
#| msgid_plural "Process cases"
|
||||||
|
msgid "Process task"
|
||||||
|
msgstr "Tâche du processus"
|
||||||
|
|
||||||
|
#: inc/taskcategory.class.php:29
|
||||||
|
#| msgid "Task List"
|
||||||
|
msgid "Task list"
|
||||||
|
msgstr "List des tâches"
|
||||||
|
|
||||||
|
#: inc/taskcategory.class.php:39
|
||||||
msgid "Task List"
|
msgid "Task List"
|
||||||
msgstr "Liste des tâches"
|
msgstr "Liste des tâches"
|
||||||
|
|
||||||
#: inc/taskcategory.class.php:32
|
#: inc/taskcategory.class.php:40 inc/taskcategory.class.php:118
|
||||||
msgid "Task name"
|
msgid "Task name"
|
||||||
msgstr "Nom de la Tâche"
|
msgstr "Nom de la Tâche"
|
||||||
|
|
||||||
#: inc/taskcategory.class.php:34 inc/taskcategory.class.php:60
|
#: inc/taskcategory.class.php:42 inc/taskcategory.class.php:68
|
||||||
|
#: inc/taskcategory.class.php:121 inc/taskcategory.class.php:155
|
||||||
msgid "Start"
|
msgid "Start"
|
||||||
msgstr "Démarrer"
|
msgstr "Démarrer"
|
||||||
|
|
||||||
#: inc/taskcategory.class.php:35
|
#: inc/taskcategory.class.php:43 inc/taskcategory.class.php:122
|
||||||
msgid "Task GUID"
|
msgid "Task GUID"
|
||||||
msgstr "GUID de la Tâche"
|
msgstr "GUID de la Tâche"
|
||||||
|
|
||||||
#: inc/taskcategory.class.php:38 inc/taskcategory.class.php:78
|
#: inc/taskcategory.class.php:46 inc/taskcategory.class.php:86
|
||||||
|
#: inc/taskcategory.class.php:125 inc/taskcategory.class.php:173
|
||||||
msgid "Sub-process"
|
msgid "Sub-process"
|
||||||
msgstr "Sous-processus"
|
msgstr "Sous-processus"
|
||||||
|
|
||||||
|
#: inc/taskcategory.class.php:117
|
||||||
|
#| msgid "Process case"
|
||||||
|
#| msgid_plural "Process cases"
|
||||||
|
msgid "Process name"
|
||||||
|
msgstr "Nom du procesus"
|
||||||
|
|
||||||
|
#~ msgid "Delete case"
|
||||||
|
#~ msgstr "Delete case"
|
||||||
|
|
||||||
#~ msgid "Case item"
|
#~ msgid "Case item"
|
||||||
#~ msgstr "Case item"
|
#~ msgstr "Case item"
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Processmaker plugin 3.3.0\n"
|
"Project-Id-Version: Processmaker plugin 3.3.0\n"
|
||||||
"POT-Creation-Date: 2018-08-06 14:32+0200\n"
|
"POT-Creation-Date: 2020-07-13 09:41+0200\n"
|
||||||
"PO-Revision-Date: 2018-08-06 14:33+0200\n"
|
"PO-Revision-Date: 2020-07-13 11:03+0200\n"
|
||||||
"Last-Translator: tomolimo\n"
|
"Last-Translator: tomolimo\n"
|
||||||
"Language-Team: en_GB\n"
|
"Language-Team: en_GB\n"
|
||||||
"Language: en_GB\n"
|
"Language: en_GB\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.1.1\n"
|
"X-Generator: Poedit 2.3.1\n"
|
||||||
"X-Poedit-Basepath: ..\n"
|
"X-Poedit-Basepath: ..\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
"X-Poedit-KeywordsList: ;__:1,2t;_e:1,2t;_x:1c,2,3t;_n:1,2,4t;__s:1,2t;"
|
"X-Poedit-KeywordsList: ;__:1,2t;_e:1,2t;_x:1c,2,3t;_n:1,2,4t;__s:1,2t;"
|
||||||
@@ -22,239 +22,324 @@ msgstr ""
|
|||||||
"X-Poedit-SearchPath-5: hook.php\n"
|
"X-Poedit-SearchPath-5: hook.php\n"
|
||||||
"X-Poedit-SearchPath-6: setup.php\n"
|
"X-Poedit-SearchPath-6: setup.php\n"
|
||||||
|
|
||||||
#: ajax/task_users.php:25
|
#: ajax/task_users.php:36
|
||||||
msgid "Re-assign task to"
|
msgid "Re-assign task to"
|
||||||
msgstr "Re-assign task to"
|
msgstr "Re-assign task to"
|
||||||
|
|
||||||
#: ajax/task_users.php:45
|
#: ajax/task_users.php:60 ajax/task_users.php:61 ajax/task_users.php:124
|
||||||
msgid "Re-assign"
|
msgid "Re-assign"
|
||||||
msgstr "Re-assign"
|
msgstr "Re-assign"
|
||||||
|
|
||||||
#: front/case.form.php:35
|
#: ajax/task_users.php:110
|
||||||
|
#| msgid "Task already assigned to this person!"
|
||||||
|
msgid "Task is already assigned to this user or group!"
|
||||||
|
msgstr "Task is already assigned to this user or group!"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:110 ajax/task_users.php:122
|
||||||
|
#| msgid "Re-assign task to"
|
||||||
|
msgid "Re-assign task"
|
||||||
|
msgstr "Re-assign task"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:114 ajax/task_users.php:119
|
||||||
|
#| msgid "Claim target task"
|
||||||
|
msgid "Un-claim task"
|
||||||
|
msgstr "Un-claim task"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:115
|
||||||
|
msgid ""
|
||||||
|
"Please input reason to un-claim<br/>(task will be re-assigned to former "
|
||||||
|
"group):"
|
||||||
|
msgstr ""
|
||||||
|
"Please input reason to un-claim<br/>(task will be re-assigned to former "
|
||||||
|
"group):"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:116
|
||||||
|
msgid "Un-claim"
|
||||||
|
msgstr "Un-claim"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:119
|
||||||
|
msgid "Can\\'t un-assign Task!"
|
||||||
|
msgstr "Can\\'t un-assign Task!"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:123
|
||||||
|
msgid "Please input reason to re-assign:"
|
||||||
|
msgstr "Please input reason to re-assign:"
|
||||||
|
|
||||||
|
#: ajax/task_users.php:134
|
||||||
|
msgid "Send reminder"
|
||||||
|
msgstr "Send reminder"
|
||||||
|
|
||||||
|
#: front/case.form.php:32
|
||||||
msgid "Case has been deleted!"
|
msgid "Case has been deleted!"
|
||||||
msgstr "Case has been deleted!"
|
msgstr "Case has been deleted!"
|
||||||
|
|
||||||
#: front/case.form.php:37
|
#: front/case.form.php:34
|
||||||
msgid "Unable to delete case!"
|
msgid "Unable to delete case!"
|
||||||
msgstr "Unable to delete case!"
|
msgstr "Unable to delete case!"
|
||||||
|
|
||||||
#: front/case.form.php:50
|
#: front/case.form.php:46
|
||||||
msgid "Case has been cancelled!"
|
msgid "Case has been cancelled!"
|
||||||
msgstr "Case has been cancelled!"
|
msgstr "Case has been cancelled!"
|
||||||
|
|
||||||
#: front/case.form.php:52 front/case.form.php:55
|
#: front/case.form.php:48 front/case.form.php:51
|
||||||
msgid "Unable to cancel case!"
|
msgid "Unable to cancel case!"
|
||||||
msgstr "Unable to cancel case!"
|
msgstr "Unable to cancel case!"
|
||||||
|
|
||||||
#: front/case.form.php:76 front/case.form.php:78 inc/case.class.php:1018
|
#: front/case.form.php:70 front/case.form.php:72 inc/case.class.php:1310
|
||||||
msgid "Process cases"
|
msgid "Process cases"
|
||||||
msgstr "Process cases"
|
msgstr "Process cases"
|
||||||
|
|
||||||
#: front/case.php:5 front/caselink.form.php:27 front/caselink.php:5
|
#: front/case.php:5 front/caselink.form.php:29 front/caselink.php:5
|
||||||
#: front/process.form.php:25 front/process.php:5 inc/caselink.class.php:143
|
#: front/process.form.php:27 front/process.php:5 inc/caselink.class.php:157
|
||||||
#: inc/config.class.php:50 inc/config.class.php:354 inc/process.class.php:393
|
#: inc/config.class.php:50 inc/config.class.php:363 inc/process.class.php:409
|
||||||
#: inc/profile.class.php:52 inc/profile.class.php:83
|
#: inc/profile.class.php:52 inc/profile.class.php:83
|
||||||
msgid "ProcessMaker"
|
msgid "ProcessMaker"
|
||||||
msgstr "ProcessMaker"
|
msgstr "ProcessMaker"
|
||||||
|
|
||||||
#: front/processmaker.form.php:85
|
#: front/processmaker.form.php:80
|
||||||
msgid "Task re-assigned!"
|
msgid "Task re-assigned!"
|
||||||
msgstr "Task re-assigned!"
|
msgstr "Task re-assigned!"
|
||||||
|
|
||||||
#: front/processmaker.form.php:87
|
#: front/processmaker.form.php:82
|
||||||
msgid "Error re-assigning task: "
|
msgid "Error re-assigning task: "
|
||||||
msgstr "Error re-assigning task: "
|
msgstr "Error re-assigning task: "
|
||||||
|
|
||||||
#: front/processmaker.form.php:90
|
#: front/processmaker.form.php:93
|
||||||
msgid "Task already assigned to this person!"
|
#| msgid "Task name"
|
||||||
msgstr "Task already assigned to this person!"
|
msgid "Task un-claimed!"
|
||||||
|
msgstr "Task un-claimed!"
|
||||||
|
|
||||||
|
#: front/processmaker.form.php:95
|
||||||
|
msgid ""
|
||||||
|
"Can't un-claim task! Verify 'Assignement Rules' in the process definition."
|
||||||
|
msgstr ""
|
||||||
|
"Can't un-claim task! Verify 'Assignement Rules' in the process definition."
|
||||||
|
|
||||||
#: front/processmaker.helpdesk.form.php:21
|
#: front/processmaker.helpdesk.form.php:21
|
||||||
msgid "Process - Case"
|
msgid "Process - Case"
|
||||||
msgstr "Process - Case"
|
msgstr "Process - Case"
|
||||||
|
|
||||||
#: front/processmaker.helpdesk.form.php:24 inc/case.class.php:605
|
#: front/processmaker.helpdesk.form.php:24 inc/case.class.php:799
|
||||||
msgid "Select the process you want to add"
|
msgid "Select the process you want to add"
|
||||||
msgstr "Select the process you want to add"
|
msgstr "Select the process you want to add"
|
||||||
|
|
||||||
#: hook.php:31 inc/taskcategory.class.php:98
|
#: hook.php:9 inc/taskcategory.class.php:214
|
||||||
msgid "Synchronize Task List"
|
msgid "Synchronize Task List"
|
||||||
msgstr "Synchronize Task List"
|
msgstr "Synchronize Task List"
|
||||||
|
|
||||||
#: hook.php:158 inc/case.class.php:77
|
#: hook.php:76 inc/case.class.php:89
|
||||||
msgid "Case"
|
msgid "Case"
|
||||||
msgstr "Case"
|
msgstr "Case"
|
||||||
|
|
||||||
#: hook.php:158 inc/case.class.php:586 inc/case.class.php:1062
|
#: hook.php:76 inc/case.class.php:778 inc/case.class.php:1355
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Status"
|
msgstr "Status"
|
||||||
|
|
||||||
#: inc/case.class.php:23 inc/case.class.php:90 inc/case.class.php:92
|
#: inc/case.class.php:25 inc/case.class.php:102 inc/case.class.php:104
|
||||||
msgid "Process case"
|
msgid "Process case"
|
||||||
msgid_plural "Process cases"
|
msgid_plural "Process cases"
|
||||||
msgstr[0] "Process case"
|
msgstr[0] "Process case"
|
||||||
msgstr[1] "Process cases"
|
msgstr[1] "Process cases"
|
||||||
|
|
||||||
#: inc/case.class.php:80
|
#: inc/case.class.php:92
|
||||||
msgid "Sub-case"
|
msgid "Sub-case"
|
||||||
msgstr "Sub-case"
|
msgstr "Sub-case"
|
||||||
|
|
||||||
#: inc/case.class.php:312
|
#: inc/case.class.php:303
|
||||||
|
#, php-format
|
||||||
|
msgid ""
|
||||||
|
"<b>Task un-claimed!</b><br/><b>Case: </b>%s<br/><b>Task: </b>\"%s\" has been "
|
||||||
|
"un-assigned from \"%s\" and assigned to \"%s\" group.<br/><b>Reason: </b>%s"
|
||||||
|
msgstr ""
|
||||||
|
"<b>Task un-claimed!</b><br/><b>Case: </b>%s<br/><b>Task: </b>\"%s\" has been "
|
||||||
|
"un-assigned from \"%s\" and assigned to \"%s\" group.<br/><b>Reason: </b>%s"
|
||||||
|
|
||||||
|
#: inc/case.class.php:420
|
||||||
|
#, php-format
|
||||||
|
msgid ""
|
||||||
|
"<b>Task re-assigned!</b><br/><b>Case: </b>%s<br/><b>Task: </b>\"%s\" has "
|
||||||
|
"been re-assigned from \"%s\" to \"%s\".<br/><b>Reason: </b>%s"
|
||||||
|
msgstr ""
|
||||||
|
"<b>Task re-assigned!</b><br/><b>Case: </b>%s<br/><b>Task: </b>\"%s\" has "
|
||||||
|
"been re-assigned from \"%s\" to \"%s\".<br/><b>Reason: </b>%s"
|
||||||
|
|
||||||
|
#: inc/case.class.php:429
|
||||||
|
#, php-format
|
||||||
|
msgid ""
|
||||||
|
"<b>Task assigned!</b><br/><b>Case: </b>%s<br/><b>Task: </b>\"%s\" has been "
|
||||||
|
"assigned to \"%s\".<br/><b>Reason: </b>%s"
|
||||||
|
msgstr ""
|
||||||
|
"<b>Task assigned!</b><br/><b>Case: </b>%s<br/><b>Task: </b>\"%s\" has been "
|
||||||
|
"assigned to \"%s\".<br/><b>Reason: </b>%s"
|
||||||
|
|
||||||
|
#: inc/case.class.php:510
|
||||||
msgid "Current task(s) properties"
|
msgid "Current task(s) properties"
|
||||||
msgstr "Current task(s) properties"
|
msgstr "Current task(s) properties"
|
||||||
|
|
||||||
#: inc/case.class.php:316 inc/task.class.php:263
|
#: inc/case.class.php:514 inc/task.class.php:283
|
||||||
msgid "Task"
|
msgid "Task"
|
||||||
msgstr "Task"
|
msgstr "Task"
|
||||||
|
|
||||||
#: inc/case.class.php:317 inc/task.class.php:264
|
#: inc/case.class.php:515 inc/task.class.php:284
|
||||||
msgid "Task guid"
|
msgid "Task guid"
|
||||||
msgstr "Task guid"
|
msgstr "Task guid"
|
||||||
|
|
||||||
#: inc/case.class.php:318 inc/task.class.php:265
|
#: inc/case.class.php:516 inc/task.class.php:285
|
||||||
msgid "Current user"
|
msgid "Current user"
|
||||||
msgstr "Current user"
|
msgstr "Current user"
|
||||||
|
|
||||||
#: inc/case.class.php:319 inc/task.class.php:266
|
#: inc/case.class.php:517 inc/task.class.php:286
|
||||||
msgid "Task delegation date"
|
msgid "Task delegation date"
|
||||||
msgstr "Task delegation date"
|
msgstr "Task delegation date"
|
||||||
|
|
||||||
#: inc/case.class.php:341 inc/task.class.php:275
|
#: inc/case.class.php:539 inc/task.class.php:295
|
||||||
msgid "To be claimed"
|
msgid "To be claimed"
|
||||||
msgstr "To be claimed"
|
msgstr "To be claimed"
|
||||||
|
|
||||||
#: inc/case.class.php:377
|
#: inc/case.class.php:575
|
||||||
msgid "Sub-case properties"
|
msgid "Sub-case properties"
|
||||||
msgstr "Sub-case properties"
|
msgstr "Sub-case properties"
|
||||||
|
|
||||||
#: inc/case.class.php:380
|
#: inc/case.class.php:578
|
||||||
msgid "Parent case properties"
|
msgid "Parent case properties"
|
||||||
msgstr "Parent case properties"
|
msgstr "Parent case properties"
|
||||||
|
|
||||||
#: inc/case.class.php:382
|
#: inc/case.class.php:580
|
||||||
msgid "Case properties"
|
msgid "Case properties"
|
||||||
msgstr "Case properties"
|
msgstr "Case properties"
|
||||||
|
|
||||||
#: inc/case.class.php:387 inc/case.class.php:584 inc/case.class.php:1036
|
#: inc/case.class.php:585 inc/case.class.php:776 inc/case.class.php:1328
|
||||||
#: inc/process.class.php:548
|
#: inc/process.class.php:576
|
||||||
msgid "Process"
|
msgid "Process"
|
||||||
msgstr "Process"
|
msgstr "Process"
|
||||||
|
|
||||||
#: inc/case.class.php:388
|
#: inc/case.class.php:586 inc/notificationtargetprocessmaker.class.php:64
|
||||||
msgid "Case title"
|
msgid "Case title"
|
||||||
msgstr "Case title"
|
msgstr "Case title"
|
||||||
|
|
||||||
#: inc/case.class.php:389
|
#: inc/case.class.php:587
|
||||||
msgid "Case number"
|
msgid "Case number"
|
||||||
msgstr "Case number"
|
msgstr "Case number"
|
||||||
|
|
||||||
#: inc/case.class.php:390
|
#: inc/case.class.php:588
|
||||||
msgid "Case status"
|
msgid "Case status"
|
||||||
msgstr "Case status"
|
msgstr "Case status"
|
||||||
|
|
||||||
#: inc/case.class.php:391
|
#: inc/case.class.php:589
|
||||||
msgid "Case guid"
|
msgid "Case guid"
|
||||||
msgstr "Case guid"
|
msgstr "Case guid"
|
||||||
|
|
||||||
#: inc/case.class.php:392
|
#: inc/case.class.php:590
|
||||||
msgid "Creator"
|
msgid "Creator"
|
||||||
msgstr "Creator"
|
msgstr "Creator"
|
||||||
|
|
||||||
#: inc/case.class.php:393
|
#: inc/case.class.php:591 inc/case.class.php:1370
|
||||||
msgid "Creation date"
|
msgid "Creation date"
|
||||||
msgstr "Creation date"
|
msgstr "Creation date"
|
||||||
|
|
||||||
#: inc/case.class.php:394
|
#: inc/case.class.php:592
|
||||||
msgid "Last update"
|
msgid "Last update"
|
||||||
msgstr "Last update"
|
msgstr "Last update"
|
||||||
|
|
||||||
#: inc/case.class.php:479
|
#: inc/case.class.php:675
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Case is linked to a %1s"
|
msgid "Case is linked to a %1s"
|
||||||
msgstr "Case is linked to a %1s"
|
msgstr "Case is linked to a %1s"
|
||||||
|
|
||||||
#: inc/case.class.php:481
|
#: inc/case.class.php:677
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Sub-case is linked to a %1s"
|
msgid "Sub-case is linked to a %1s"
|
||||||
msgstr "Sub-case is linked to a %1s"
|
msgstr "Sub-case is linked to a %1s"
|
||||||
|
|
||||||
#: inc/case.class.php:506
|
#: inc/case.class.php:698
|
||||||
msgid "Case cancellation"
|
msgid "Case cancellation"
|
||||||
msgstr "Case cancellation"
|
msgstr "Case cancellation"
|
||||||
|
|
||||||
#: inc/case.class.php:507
|
#: inc/case.class.php:699
|
||||||
msgid "Cancel case"
|
msgid "Cancel case"
|
||||||
msgstr "Cancel case"
|
msgstr "Cancel case"
|
||||||
|
|
||||||
#: inc/case.class.php:511
|
#: inc/case.class.php:703
|
||||||
msgid "Confirm cancellation?"
|
msgid "Confirm cancellation?"
|
||||||
msgstr "Confirm cancellation?"
|
msgstr "Confirm cancellation?"
|
||||||
|
|
||||||
#: inc/case.class.php:511 inc/profile.class.php:23
|
#: inc/case.class.php:703 inc/profile.class.php:23
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancel"
|
msgstr "Cancel"
|
||||||
|
|
||||||
#: inc/case.class.php:532
|
#: inc/case.class.php:717
|
||||||
msgid "Case deletion"
|
msgid "Case deletion"
|
||||||
msgstr "Case deletion"
|
msgstr "Case deletion"
|
||||||
|
|
||||||
#: inc/case.class.php:533
|
#: inc/case.class.php:777 inc/case.class.php:1321
|
||||||
msgid "Delete case"
|
|
||||||
msgstr "Delete case"
|
|
||||||
|
|
||||||
#: inc/case.class.php:585 inc/case.class.php:1029
|
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Title"
|
msgstr "Title"
|
||||||
|
|
||||||
#: inc/case.class.php:587 inc/case.class.php:1070
|
#: inc/case.class.php:779 inc/case.class.php:1362
|
||||||
msgid "Sub-case of"
|
msgid "Sub-case of"
|
||||||
msgstr "Sub-case of"
|
msgstr "Sub-case of"
|
||||||
|
|
||||||
#: inc/case.class.php:602
|
#: inc/case.class.php:796
|
||||||
msgid "Add a new case"
|
msgid "Add a new case"
|
||||||
msgstr "Add a new case"
|
msgstr "Add a new case"
|
||||||
|
|
||||||
#: inc/case.class.php:995
|
#: inc/case.class.php:1227
|
||||||
msgctxt "case_status"
|
msgctxt "case_status"
|
||||||
msgid "Draft"
|
msgid "Draft"
|
||||||
msgstr "Draft"
|
msgstr "Draft"
|
||||||
|
|
||||||
#: inc/case.class.php:996
|
#: inc/case.class.php:1228
|
||||||
msgctxt "case_status"
|
msgctxt "case_status"
|
||||||
msgid "To do"
|
msgid "To do"
|
||||||
msgstr "To do"
|
msgstr "To do"
|
||||||
|
|
||||||
#: inc/case.class.php:997
|
#: inc/case.class.php:1229
|
||||||
msgctxt "case_status"
|
msgctxt "case_status"
|
||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr "Completed"
|
msgstr "Completed"
|
||||||
|
|
||||||
#: inc/case.class.php:998
|
#: inc/case.class.php:1230
|
||||||
msgctxt "case_status"
|
msgctxt "case_status"
|
||||||
msgid "Cancelled"
|
msgid "Cancelled"
|
||||||
msgstr "Cancelled"
|
msgstr "Cancelled"
|
||||||
|
|
||||||
#: inc/case.class.php:1022
|
#: inc/case.class.php:1314
|
||||||
msgid "ID"
|
msgid "ID"
|
||||||
msgstr "ID"
|
msgstr "ID"
|
||||||
|
|
||||||
#: inc/case.class.php:1049
|
#: inc/case.class.php:1335 inc/notificationtargetprocessmaker.class.php:72
|
||||||
|
#| msgid "Item entity"
|
||||||
|
msgid "Item type"
|
||||||
|
msgstr "Item type"
|
||||||
|
|
||||||
|
#: inc/case.class.php:1342
|
||||||
msgid "Item"
|
msgid "Item"
|
||||||
msgstr "Item"
|
msgstr "Item"
|
||||||
|
|
||||||
#: inc/case.class.php:1056
|
#: inc/case.class.php:1349
|
||||||
msgid "Item entity"
|
msgid "Item entity"
|
||||||
msgstr "Item entity"
|
msgstr "Item entity"
|
||||||
|
|
||||||
#: inc/casechangelog.class.php:35
|
#: inc/case.class.php:1379
|
||||||
|
#| msgid "Last update"
|
||||||
|
msgid "Last update date"
|
||||||
|
msgstr "Last update date"
|
||||||
|
|
||||||
|
#: inc/case.class.php:1392
|
||||||
|
#, php-format
|
||||||
|
#| msgid "Case status"
|
||||||
|
msgid "Case status is '%s'"
|
||||||
|
msgstr "Case status is '%s'"
|
||||||
|
|
||||||
|
#: inc/casechangelog.class.php:36
|
||||||
msgid "Change log"
|
msgid "Change log"
|
||||||
msgstr "Change log"
|
msgstr "Change log"
|
||||||
|
|
||||||
#: inc/casedynaform.class.php:80
|
#: inc/casedynaform.class.php:83
|
||||||
msgid "Dynaforms"
|
msgid "Dynaforms"
|
||||||
msgstr "Dynaforms"
|
msgstr "Dynaforms"
|
||||||
|
|
||||||
#: inc/casehistory.class.php:35
|
#: inc/casehistory.class.php:36
|
||||||
msgid "History"
|
msgid "History"
|
||||||
msgstr "History"
|
msgstr "History"
|
||||||
|
|
||||||
@@ -266,43 +351,51 @@ msgstr "Case-links"
|
|||||||
msgid "Case-link"
|
msgid "Case-link"
|
||||||
msgstr "Case-link"
|
msgstr "Case-link"
|
||||||
|
|
||||||
#: inc/caselink.class.php:75 inc/caselink.class.php:165
|
#: inc/caselink.class.php:75
|
||||||
|
msgid "Synchronous"
|
||||||
|
msgstr "Synchronous"
|
||||||
|
|
||||||
|
#: inc/caselink.class.php:80 inc/caselink.class.php:179
|
||||||
msgid "External data"
|
msgid "External data"
|
||||||
msgstr "External data"
|
msgstr "External data"
|
||||||
|
|
||||||
#: inc/caselink.class.php:80 inc/caselink.class.php:171
|
#: inc/caselink.class.php:85 inc/caselink.class.php:185
|
||||||
msgid "Self"
|
msgid "Self"
|
||||||
msgstr "Self"
|
msgstr "Self"
|
||||||
|
|
||||||
#: inc/caselink.class.php:85 inc/caselink.class.php:189
|
#: inc/caselink.class.php:90 inc/caselink.class.php:203
|
||||||
msgid "Source task GUID"
|
msgid "Source task GUID"
|
||||||
msgstr "Source task GUID"
|
msgstr "Source task GUID"
|
||||||
|
|
||||||
#: inc/caselink.class.php:93 inc/caselink.class.php:195
|
#: inc/caselink.class.php:98 inc/caselink.class.php:209
|
||||||
msgid "Target task GUID"
|
msgid "Target task GUID"
|
||||||
msgstr "Target task GUID"
|
msgstr "Target task GUID"
|
||||||
|
|
||||||
#: inc/caselink.class.php:101 inc/caselink.class.php:207
|
#: inc/caselink.class.php:106 inc/caselink.class.php:221
|
||||||
msgid "Target process GUID"
|
msgid "Target process GUID"
|
||||||
msgstr "Target process GUID"
|
msgstr "Target process GUID"
|
||||||
|
|
||||||
#: inc/caselink.class.php:110 inc/caselink.class.php:201
|
#: inc/caselink.class.php:115 inc/caselink.class.php:215
|
||||||
msgid "Target dynaform GUID"
|
msgid "Target dynaform GUID"
|
||||||
msgstr "Target dynaform GUID"
|
msgstr "Target dynaform GUID"
|
||||||
|
|
||||||
#: inc/caselink.class.php:115 inc/caselink.class.php:213
|
#: inc/caselink.class.php:120 inc/caselink.class.php:227
|
||||||
msgid "Source condition"
|
msgid "Source condition"
|
||||||
msgstr "Source condition"
|
msgstr "Source condition"
|
||||||
|
|
||||||
#: inc/caselink.class.php:121 inc/caselink.class.php:177
|
#: inc/caselink.class.php:126 inc/caselink.class.php:191
|
||||||
msgid "Claim target task"
|
msgid "Claim target task"
|
||||||
msgstr "Claim target task"
|
msgstr "Claim target task"
|
||||||
|
|
||||||
#: inc/caselink.class.php:126 inc/caselink.class.php:183
|
#: inc/caselink.class.php:136
|
||||||
|
msgid "Impersonate target task user"
|
||||||
|
msgstr "Impersonate target task user"
|
||||||
|
|
||||||
|
#: inc/caselink.class.php:141 inc/caselink.class.php:197
|
||||||
msgid "External application JSON config"
|
msgid "External application JSON config"
|
||||||
msgstr "External application JSON config"
|
msgstr "External application JSON config"
|
||||||
|
|
||||||
#: inc/casemap.class.php:43
|
#: inc/casemap.class.php:44
|
||||||
msgid "Map"
|
msgid "Map"
|
||||||
msgstr "Map"
|
msgstr "Map"
|
||||||
|
|
||||||
@@ -311,187 +404,303 @@ msgid "ProcessMaker setup"
|
|||||||
msgstr "ProcessMaker setup"
|
msgstr "ProcessMaker setup"
|
||||||
|
|
||||||
#: inc/config.class.php:159
|
#: inc/config.class.php:159
|
||||||
msgid "Server URL (must be in same domain than GLPI)"
|
#| msgid "Server URL (must be in same domain than GLPI)"
|
||||||
msgstr "Server URL (must be in same domain than GLPI)"
|
msgid ""
|
||||||
|
"Server URL (must be in same domain than GLPI, if GLPI is using HTTPS, PM "
|
||||||
|
"server must also use HTTPS)"
|
||||||
|
msgstr ""
|
||||||
|
"Server URL (must be in same domain than GLPI, if GLPI is using HTTPS, PM "
|
||||||
|
"server must also use HTTPS)"
|
||||||
|
|
||||||
#: inc/config.class.php:164
|
#: inc/config.class.php:163
|
||||||
msgid "Common domain with GLPI"
|
msgid "Common domain with GLPI"
|
||||||
msgstr "Common domain with GLPI"
|
msgstr "Common domain with GLPI"
|
||||||
|
|
||||||
#: inc/config.class.php:193
|
#: inc/config.class.php:192
|
||||||
msgid "None!"
|
msgid "None!"
|
||||||
msgstr "None!"
|
msgstr "None!"
|
||||||
|
|
||||||
#: inc/config.class.php:202
|
#: inc/config.class.php:201
|
||||||
|
msgid "Verify SSL certificate"
|
||||||
|
msgstr "Verify SSL certificate"
|
||||||
|
|
||||||
|
#: inc/config.class.php:206
|
||||||
msgid "Workspace Name"
|
msgid "Workspace Name"
|
||||||
msgstr "Workspace Name"
|
msgstr "Workspace Name"
|
||||||
|
|
||||||
#: inc/config.class.php:207
|
#: inc/config.class.php:211
|
||||||
msgid "Server administrator name"
|
msgid "Server administrator name"
|
||||||
msgstr "Server administrator name"
|
msgstr "Server administrator name"
|
||||||
|
|
||||||
#: inc/config.class.php:212
|
#: inc/config.class.php:216
|
||||||
msgid "Server administrator password"
|
msgid "Server administrator password"
|
||||||
msgstr "Server administrator password"
|
msgstr "Server administrator password"
|
||||||
|
|
||||||
#: inc/config.class.php:218 inc/config.class.php:258
|
#: inc/config.class.php:222 inc/config.class.php:262
|
||||||
msgid "Connection status"
|
msgid "Connection status"
|
||||||
msgstr "Connection status"
|
msgstr "Connection status"
|
||||||
|
|
||||||
#: inc/config.class.php:234
|
#: inc/config.class.php:238
|
||||||
msgid "SQL server setup"
|
msgid "SQL server setup"
|
||||||
msgstr "SQL server setup"
|
msgstr "SQL server setup"
|
||||||
|
|
||||||
#: inc/config.class.php:237
|
#: inc/config.class.php:241
|
||||||
msgid "SQL server (MariaDB or MySQL)"
|
msgid "SQL server (MariaDB or MySQL)"
|
||||||
msgstr "SQL server (MariaDB or MySQL)"
|
msgstr "SQL server (MariaDB or MySQL)"
|
||||||
|
|
||||||
#: inc/config.class.php:242
|
#: inc/config.class.php:246
|
||||||
msgid "Database name"
|
msgid "Database name"
|
||||||
msgstr "Database name"
|
msgstr "Database name"
|
||||||
|
|
||||||
#: inc/config.class.php:247
|
#: inc/config.class.php:251
|
||||||
msgid "SQL user"
|
msgid "SQL user"
|
||||||
msgstr "SQL user"
|
msgstr "SQL user"
|
||||||
|
|
||||||
#: inc/config.class.php:252
|
#: inc/config.class.php:256
|
||||||
msgid "SQL password"
|
msgid "SQL password"
|
||||||
msgstr "SQL password"
|
msgstr "SQL password"
|
||||||
|
|
||||||
#: inc/config.class.php:269
|
#: inc/config.class.php:273
|
||||||
msgid "Theme Name"
|
msgid "Theme Name"
|
||||||
msgstr "Theme Name"
|
msgstr "Theme Name"
|
||||||
|
|
||||||
#: inc/config.class.php:275
|
#: inc/config.class.php:279
|
||||||
msgid "Main Task Category (edit to change name)"
|
msgid "Main Task Category (edit to change name)"
|
||||||
msgstr "Main Task Category (edit to change name)"
|
msgstr "Main Task Category (edit to change name)"
|
||||||
|
|
||||||
#: inc/config.class.php:282
|
#: inc/config.class.php:286
|
||||||
msgid "Task Writer (edit to change name)"
|
msgid "Task Writer (edit to change name)"
|
||||||
msgstr "Task Writer (edit to change name)"
|
msgstr "Task Writer (edit to change name)"
|
||||||
|
|
||||||
#: inc/config.class.php:302
|
#: inc/config.class.php:306
|
||||||
msgid "Group in ProcessMaker which will contain all GLPI users"
|
msgid "Group in ProcessMaker which will contain all GLPI users"
|
||||||
msgstr "Group in ProcessMaker which will contain all GLPI users"
|
msgstr "Group in ProcessMaker which will contain all GLPI users"
|
||||||
|
|
||||||
#: inc/config.class.php:331
|
#: inc/config.class.php:321 inc/process.class.php:510 inc/process.class.php:637
|
||||||
|
msgid "Max cases per item (0=unlimited)"
|
||||||
|
msgstr "Max cases per item (0=unlimited)"
|
||||||
|
|
||||||
|
#: inc/config.class.php:340
|
||||||
msgid "Processmaker system information"
|
msgid "Processmaker system information"
|
||||||
msgstr "Processmaker system information"
|
msgstr "Processmaker system information"
|
||||||
|
|
||||||
#: inc/config.class.php:334 inc/config.class.php:344
|
#: inc/config.class.php:343 inc/config.class.php:353
|
||||||
msgid "Version"
|
msgid "Version"
|
||||||
msgstr "Version"
|
msgstr "Version"
|
||||||
|
|
||||||
#: inc/config.class.php:335
|
#: inc/config.class.php:344
|
||||||
msgid "Web server"
|
msgid "Web server"
|
||||||
msgstr "Web server"
|
msgstr "Web server"
|
||||||
|
|
||||||
#: inc/config.class.php:336
|
#: inc/config.class.php:345
|
||||||
msgid "Server name"
|
msgid "Server name"
|
||||||
msgstr "Server name"
|
msgstr "Server name"
|
||||||
|
|
||||||
#: inc/config.class.php:337
|
#: inc/config.class.php:346
|
||||||
msgid "PHP version"
|
msgid "PHP version"
|
||||||
msgstr "PHP version"
|
msgstr "PHP version"
|
||||||
|
|
||||||
#: inc/config.class.php:338
|
#: inc/config.class.php:347
|
||||||
msgid "DB version"
|
msgid "DB version"
|
||||||
msgstr "DB version"
|
msgstr "DB version"
|
||||||
|
|
||||||
#: inc/config.class.php:339
|
#: inc/config.class.php:348
|
||||||
msgid "DB server IP"
|
msgid "DB server IP"
|
||||||
msgstr "DB server IP"
|
msgstr "DB server IP"
|
||||||
|
|
||||||
#: inc/config.class.php:340
|
#: inc/config.class.php:349
|
||||||
msgid "DB name"
|
msgid "DB name"
|
||||||
msgstr "DB name"
|
msgstr "DB name"
|
||||||
|
|
||||||
#: inc/config.class.php:341
|
#: inc/config.class.php:350
|
||||||
msgid "User browser"
|
msgid "User browser"
|
||||||
msgstr "User browser"
|
msgstr "User browser"
|
||||||
|
|
||||||
#: inc/config.class.php:342
|
#: inc/config.class.php:351
|
||||||
msgid "User IP"
|
msgid "User IP"
|
||||||
msgstr "User IP"
|
msgstr "User IP"
|
||||||
|
|
||||||
#: inc/config.class.php:344
|
#: inc/config.class.php:353
|
||||||
msgid "Not yet!"
|
msgid "Not yet!"
|
||||||
msgstr "Not yet!"
|
msgstr "Not yet!"
|
||||||
|
|
||||||
#: inc/process.class.php:350
|
#: inc/notificationtargetcase.class.php:26
|
||||||
|
msgid "Send email"
|
||||||
|
msgstr "Send email"
|
||||||
|
|
||||||
|
#: inc/notificationtargetcase.class.php:37
|
||||||
|
msgid "eMail recipients"
|
||||||
|
msgstr "eMail recipients"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:60
|
||||||
|
#| msgid "Process case"
|
||||||
|
#| msgid_plural "Process cases"
|
||||||
|
msgid "Process category"
|
||||||
|
msgstr "Process category"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:61
|
||||||
|
#| msgid "Process case"
|
||||||
|
#| msgid_plural "Process cases"
|
||||||
|
msgid "Process category id"
|
||||||
|
msgstr "Process category id"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:62
|
||||||
|
#| msgid "Process case task"
|
||||||
|
#| msgid_plural "Process case tasks"
|
||||||
|
msgid "Process category comment"
|
||||||
|
msgstr "Process category comment"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:63
|
||||||
|
#| msgid "Case guid"
|
||||||
|
msgid "Case id"
|
||||||
|
msgstr "Case id"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:65
|
||||||
|
#| msgid "Case deletion"
|
||||||
|
msgid "Case description"
|
||||||
|
msgstr "Case description"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:67
|
||||||
|
msgid "Case variable 'XXX'"
|
||||||
|
msgstr "Case variable 'XXX'"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:68
|
||||||
|
msgid "List of values in 'YYY' array"
|
||||||
|
msgstr "List of values in 'YYY' array"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:69
|
||||||
|
msgid "Number of rows in 'YYY' array"
|
||||||
|
msgstr "Number of rows in 'YYY' array"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:70
|
||||||
|
msgid "Value for colname in 'YYY' array"
|
||||||
|
msgstr "Value for colname in 'YYY' array"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:71
|
||||||
|
msgid "Value for key in 'ZZZ' assoc array (1-dimension array)"
|
||||||
|
msgstr "Value for key in 'ZZZ' assoc array (1-dimension array)"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:73
|
||||||
|
#| msgid "Item"
|
||||||
|
msgid "Item id"
|
||||||
|
msgstr "Item id"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:74
|
||||||
|
#| msgid "Item"
|
||||||
|
msgid "Item URL"
|
||||||
|
msgstr "Item URL"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:75
|
||||||
|
#| msgid "Item entity"
|
||||||
|
msgid "Item title"
|
||||||
|
msgstr "Item title"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:83
|
||||||
|
msgid "XXX is to be replaced by any case variable names"
|
||||||
|
msgstr "XXX is to be replaced by any case variable names"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:86
|
||||||
|
msgid "YYY is to be replaced by any array variables"
|
||||||
|
msgstr "YYY is to be replaced by any array variables"
|
||||||
|
|
||||||
|
#: inc/notificationtargetprocessmaker.class.php:90
|
||||||
|
msgid ""
|
||||||
|
"ZZZ is to be replaced by any assoc array variables (1-dimension array with "
|
||||||
|
"key/value pairs)"
|
||||||
|
msgstr ""
|
||||||
|
"ZZZ is to be replaced by any assoc array variables (1-dimension array with "
|
||||||
|
"key/value pairs)"
|
||||||
|
|
||||||
|
#: inc/notificationtargettask.class.php:195
|
||||||
|
#| msgid "Task delegation date"
|
||||||
|
msgid "Task action"
|
||||||
|
msgstr "Task action"
|
||||||
|
|
||||||
|
#: inc/process.class.php:366
|
||||||
msgid "Synchronize Process List"
|
msgid "Synchronize Process List"
|
||||||
msgstr "Synchronize Process List"
|
msgstr "Synchronize Process List"
|
||||||
|
|
||||||
#: inc/process.class.php:427 inc/process.class.php:589
|
#: inc/process.class.php:443 inc/process.class.php:617
|
||||||
msgid "Process GUID"
|
msgid "Process GUID"
|
||||||
msgstr "Process GUID"
|
msgstr "Process GUID"
|
||||||
|
|
||||||
#: inc/process.class.php:433
|
#: inc/process.class.php:449
|
||||||
msgid "Process type"
|
msgid "Process type"
|
||||||
msgstr "Process type"
|
msgstr "Process type"
|
||||||
|
|
||||||
#: inc/process.class.php:439
|
#: inc/process.class.php:455
|
||||||
msgid "Hide case num. & title"
|
msgid "Hide case num. & title"
|
||||||
msgstr "Hide case num. & title"
|
msgstr "Hide case num. & title"
|
||||||
|
|
||||||
#: inc/process.class.php:445
|
#: inc/process.class.php:461
|
||||||
msgid "Insert Task Category"
|
msgid "Insert Task Category"
|
||||||
msgstr "Insert Task Category"
|
msgstr "Insert Task Category"
|
||||||
|
|
||||||
#: inc/process.class.php:457
|
#: inc/process.class.php:473
|
||||||
msgid "Ticket type (self-service)"
|
msgid "Ticket type (self-service)"
|
||||||
msgstr "Ticket type (self-service)"
|
msgstr "Ticket type (self-service)"
|
||||||
|
|
||||||
#: inc/process.class.php:464 inc/process.class.php:609
|
#: inc/process.class.php:480 inc/process.class.php:642
|
||||||
msgid "Visible in Incident for Central interface"
|
msgid "Visible in Incident for Central interface"
|
||||||
msgstr "Visible in Incident for Central interface"
|
msgstr "Visible in Incident for Central interface"
|
||||||
|
|
||||||
#: inc/process.class.php:470 inc/process.class.php:614
|
#: inc/process.class.php:486 inc/process.class.php:647
|
||||||
msgid "Visible in Request for Central interface"
|
msgid "Visible in Request for Central interface"
|
||||||
msgstr "Visible in Request for Central interface"
|
msgstr "Visible in Request for Central interface"
|
||||||
|
|
||||||
#: inc/process.class.php:476 inc/process.class.php:666
|
#: inc/process.class.php:492 inc/process.class.php:699
|
||||||
msgid "Visible in Change"
|
msgid "Visible in Change"
|
||||||
msgstr "Visible in Change"
|
msgstr "Visible in Change"
|
||||||
|
|
||||||
#: inc/process.class.php:482 inc/process.class.php:671
|
#: inc/process.class.php:498 inc/process.class.php:704
|
||||||
msgid "Visible in Problem"
|
msgid "Visible in Problem"
|
||||||
msgstr "Visible in Problem"
|
msgstr "Visible in Problem"
|
||||||
|
|
||||||
#: inc/process.class.php:519
|
#: inc/process.class.php:504
|
||||||
|
msgid "Maintenance"
|
||||||
|
msgstr "Maintenance"
|
||||||
|
|
||||||
|
#: inc/process.class.php:547
|
||||||
msgctxt "process_type"
|
msgctxt "process_type"
|
||||||
msgid "Classic"
|
msgid "Classic"
|
||||||
msgstr "Classic"
|
msgstr "Classic"
|
||||||
|
|
||||||
#: inc/process.class.php:520
|
#: inc/process.class.php:548
|
||||||
msgctxt "process_type"
|
msgctxt "process_type"
|
||||||
msgid "BPMN"
|
msgid "BPMN"
|
||||||
msgstr "BPMN"
|
msgstr "BPMN"
|
||||||
|
|
||||||
#: inc/process.class.php:546
|
#: inc/process.class.php:574
|
||||||
msgid "Processes"
|
msgid "Processes"
|
||||||
msgstr "Processes"
|
msgstr "Processes"
|
||||||
|
|
||||||
#: inc/process.class.php:599
|
#: inc/process.class.php:627
|
||||||
msgid "Hide case number and title in task descriptions"
|
msgid "Hide case number and title in task descriptions"
|
||||||
msgstr "Hide case number and title in task descriptions"
|
msgstr "Hide case number and title in task descriptions"
|
||||||
|
|
||||||
#: inc/process.class.php:604
|
#: inc/process.class.php:632
|
||||||
msgid "Insert Task Category comments in Task Description"
|
msgid "Insert Task Category comments in Task Description"
|
||||||
msgstr "Insert Task Category comments in Task Description"
|
msgstr "Insert Task Category comments in Task Description"
|
||||||
|
|
||||||
#: inc/process.class.php:619
|
#: inc/process.class.php:652
|
||||||
msgid "ITIL Category for Self-service interface (left empty to disable)"
|
msgid "ITIL Category for Self-service interface (left empty to disable)"
|
||||||
msgstr "ITIL Category for Self-service interface (left empty to disable)"
|
msgstr "ITIL Category for Self-service interface (left empty to disable)"
|
||||||
|
|
||||||
#: inc/process.class.php:646
|
#: inc/process.class.php:679
|
||||||
msgid "Type for Self-service interface"
|
msgid "Type for Self-service interface"
|
||||||
msgstr "Type for Self-service interface"
|
msgstr "Type for Self-service interface"
|
||||||
|
|
||||||
#: inc/process.class.php:676
|
#: inc/process.class.php:709
|
||||||
msgid "Process type (to be changed only if not up-to-date)"
|
msgid "Process type (to be changed only if not up-to-date)"
|
||||||
msgstr "Process type (to be changed only if not up-to-date)"
|
msgstr "Process type (to be changed only if not up-to-date)"
|
||||||
|
|
||||||
|
#: inc/process.class.php:862
|
||||||
|
#, php-format
|
||||||
|
#| msgid ""
|
||||||
|
#| "ProcessMaker plugin is under maintenance, please retry later, thank you."
|
||||||
|
msgid "Process '%s' is under maintenance, please retry later, thank you."
|
||||||
|
msgstr "Process '%s' is under maintenance, please retry later, thank you."
|
||||||
|
|
||||||
#: inc/process_profile.class.php:26 inc/process_profile.class.php:45
|
#: inc/process_profile.class.php:26 inc/process_profile.class.php:45
|
||||||
msgid "Authorizations"
|
msgid "Authorizations"
|
||||||
msgstr "Authorizations"
|
msgstr "Authorizations"
|
||||||
@@ -510,35 +719,44 @@ msgctxt "errors"
|
|||||||
msgid "Can't create case: no rights for it!"
|
msgid "Can't create case: no rights for it!"
|
||||||
msgstr "Can't create case: no rights for it!"
|
msgstr "Can't create case: no rights for it!"
|
||||||
|
|
||||||
#: inc/processmaker.class.php:984
|
#: inc/processmaker.class.php:1012
|
||||||
msgid "Syncs GLPI users and groups into ProcessMaker."
|
msgid "Syncs GLPI users and groups into ProcessMaker."
|
||||||
msgstr "Syncs GLPI users and groups into ProcessMaker."
|
msgstr "Syncs GLPI users and groups into ProcessMaker."
|
||||||
|
|
||||||
#: inc/processmaker.class.php:986
|
#: inc/processmaker.class.php:1014
|
||||||
msgid "Cleaning of orphan cases."
|
msgid "Cleaning of orphan cases."
|
||||||
msgstr "Cleaning of orphan cases."
|
msgstr "Cleaning of orphan cases."
|
||||||
|
|
||||||
#: inc/processmaker.class.php:986
|
#: inc/processmaker.class.php:1014
|
||||||
msgid "Number of days to keep orphan cases"
|
msgid "Number of days to keep orphan cases"
|
||||||
msgstr "Number of days to keep orphan cases"
|
msgstr "Number of days to keep orphan cases"
|
||||||
|
|
||||||
#: inc/processmaker.class.php:988
|
#: inc/processmaker.class.php:1016
|
||||||
msgid "To apply task actions between cases."
|
msgid "To apply task actions between cases."
|
||||||
msgstr "To apply task actions between cases."
|
msgstr "To apply task actions between cases."
|
||||||
|
|
||||||
#: inc/processmaker.class.php:1696
|
#: inc/processmaker.class.php:1720
|
||||||
msgid "Case title: "
|
msgid "Case title: "
|
||||||
msgstr "Case title: "
|
msgstr "Case title: "
|
||||||
|
|
||||||
#: inc/processmaker.class.php:2178
|
#: inc/processmaker.class.php:2275
|
||||||
msgid "A 'Case' is running!"
|
msgid "A 'Case' is running!"
|
||||||
msgstr "A 'Case' is running!"
|
msgstr "A 'Case' is running!"
|
||||||
|
|
||||||
#: inc/processmaker.class.php:2179
|
#: inc/processmaker.class.php:2276
|
||||||
msgid "You must manage it first (see 'Process - Case' tab)!"
|
msgid "You must manage it first (see 'Process - Case' tab)!"
|
||||||
msgstr "You must manage it first (see 'Process - Case' tab)!"
|
msgstr "You must manage it first (see 'Process - Case' tab)!"
|
||||||
|
|
||||||
#: inc/processmaker.class.php:3038
|
#: inc/processmaker.class.php:2774
|
||||||
|
#, php-format
|
||||||
|
msgid ""
|
||||||
|
"Unable to derivate case! Retry in a moment, or ask your administrator."
|
||||||
|
"<hr>Error code: %u<br/>Error message: %s<br/>"
|
||||||
|
msgstr ""
|
||||||
|
"Unable to derivate case! Retry in a moment, or ask your administrator."
|
||||||
|
"<hr>Error code: %u<br/>Error message: %s<br/>"
|
||||||
|
|
||||||
|
#: inc/processmaker.class.php:3281
|
||||||
msgid ""
|
msgid ""
|
||||||
"ProcessMaker plugin is under maintenance, please retry later, thank you."
|
"ProcessMaker plugin is under maintenance, please retry later, thank you."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -552,36 +770,62 @@ msgstr "Process configuration"
|
|||||||
msgid "Cases"
|
msgid "Cases"
|
||||||
msgstr "Cases"
|
msgstr "Cases"
|
||||||
|
|
||||||
|
#: inc/profile.class.php:23
|
||||||
|
msgid "Ad Hoc user re-assign"
|
||||||
|
msgstr "Ad Hoc user re-assign"
|
||||||
|
|
||||||
#: inc/task.class.php:29
|
#: inc/task.class.php:29
|
||||||
msgid "Process case task"
|
msgid "Process case task"
|
||||||
msgid_plural "Process case tasks"
|
msgid_plural "Process case tasks"
|
||||||
msgstr[0] "Process case task"
|
msgstr[0] "Process case task"
|
||||||
msgstr[1] "Process case tasks"
|
msgstr[1] "Process case tasks"
|
||||||
|
|
||||||
#: inc/task.class.php:258
|
#: inc/task.class.php:278
|
||||||
msgid "Sub-case task(s)"
|
msgid "Sub-case task(s)"
|
||||||
msgstr "Sub-case task(s)"
|
msgstr "Sub-case task(s)"
|
||||||
|
|
||||||
#: inc/taskcategory.class.php:21 inc/taskcategory.class.php:31
|
#: inc/taskcategory.class.php:24 inc/taskcategory.class.php:116
|
||||||
|
#| msgid "Process case"
|
||||||
|
#| msgid_plural "Process cases"
|
||||||
|
msgid "Process task"
|
||||||
|
msgstr "Process task"
|
||||||
|
|
||||||
|
#: inc/taskcategory.class.php:29
|
||||||
|
#| msgid "Task List"
|
||||||
|
msgid "Task list"
|
||||||
|
msgstr "Task list"
|
||||||
|
|
||||||
|
#: inc/taskcategory.class.php:39
|
||||||
msgid "Task List"
|
msgid "Task List"
|
||||||
msgstr "Task List"
|
msgstr "Task List"
|
||||||
|
|
||||||
#: inc/taskcategory.class.php:32
|
#: inc/taskcategory.class.php:40 inc/taskcategory.class.php:118
|
||||||
msgid "Task name"
|
msgid "Task name"
|
||||||
msgstr "Task name"
|
msgstr "Task name"
|
||||||
|
|
||||||
#: inc/taskcategory.class.php:34 inc/taskcategory.class.php:60
|
#: inc/taskcategory.class.php:42 inc/taskcategory.class.php:68
|
||||||
|
#: inc/taskcategory.class.php:121 inc/taskcategory.class.php:155
|
||||||
msgid "Start"
|
msgid "Start"
|
||||||
msgstr "Start"
|
msgstr "Start"
|
||||||
|
|
||||||
#: inc/taskcategory.class.php:35
|
#: inc/taskcategory.class.php:43 inc/taskcategory.class.php:122
|
||||||
msgid "Task GUID"
|
msgid "Task GUID"
|
||||||
msgstr "Task GUID"
|
msgstr "Task GUID"
|
||||||
|
|
||||||
#: inc/taskcategory.class.php:38 inc/taskcategory.class.php:78
|
#: inc/taskcategory.class.php:46 inc/taskcategory.class.php:86
|
||||||
|
#: inc/taskcategory.class.php:125 inc/taskcategory.class.php:173
|
||||||
msgid "Sub-process"
|
msgid "Sub-process"
|
||||||
msgstr "Sub-process"
|
msgstr "Sub-process"
|
||||||
|
|
||||||
|
#: inc/taskcategory.class.php:117
|
||||||
|
#| msgid "Process case"
|
||||||
|
#| msgid_plural "Process cases"
|
||||||
|
msgid "Process name"
|
||||||
|
msgstr "Process name"
|
||||||
|
|
||||||
|
#~ msgid "Delete case"
|
||||||
|
#~ msgstr "Delete case"
|
||||||
|
|
||||||
#~ msgid "Case item"
|
#~ msgid "Case item"
|
||||||
#~ msgstr "Case item"
|
#~ msgstr "Case item"
|
||||||
|
|
||||||
|
|||||||
@@ -29,15 +29,15 @@
|
|||||||
<compatibility>9.1</compatibility>
|
<compatibility>9.1</compatibility>
|
||||||
</version>
|
</version>
|
||||||
<version>
|
<version>
|
||||||
<num>3.4.14</num>
|
<num>3.4.25</num>
|
||||||
<compatibility>9.2</compatibility>
|
<compatibility>9.2</compatibility>
|
||||||
</version>
|
</version>
|
||||||
<version>
|
<version>
|
||||||
<num>3.5.5</num>
|
<num>3.5.10</num>
|
||||||
<compatibility>9.3</compatibility>
|
<compatibility>9.3</compatibility>
|
||||||
</version>
|
</version>
|
||||||
<version>
|
<version>
|
||||||
<num>3.6.5</num>
|
<num>3.6.16</num>
|
||||||
<compatibility>9.4</compatibility>
|
<compatibility>9.4</compatibility>
|
||||||
</version>
|
</version>
|
||||||
</versions>
|
</versions>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
define('PROCESSMAKER_VERSION', '3.6.5');
|
define('PROCESSMAKER_VERSION', '3.6.16');
|
||||||
|
|
||||||
// used for case cancellation
|
// used for case cancellation
|
||||||
define("CANCEL", 256);
|
define("CANCEL", 256);
|
||||||
@@ -67,7 +67,8 @@ function plugin_init_processmaker() {
|
|||||||
}
|
}
|
||||||
$PLUGIN_HOOKS['pre_item_update']['processmaker'] = $hooks;
|
$PLUGIN_HOOKS['pre_item_update']['processmaker'] = $hooks;
|
||||||
|
|
||||||
$hooks = ['TicketSatisfaction' => 'plugin_item_update_processmaker_satisfaction'];
|
$hooks = ['TicketSatisfaction' => 'plugin_item_update_processmaker_satisfaction',
|
||||||
|
'User' => 'plugin_item_update_processmaker_user'];
|
||||||
foreach ($objects as $obj) {
|
foreach ($objects as $obj) {
|
||||||
$hooks[$obj.'Task'] = 'plugin_item_update_processmaker_tasks';
|
$hooks[$obj.'Task'] = 'plugin_item_update_processmaker_tasks';
|
||||||
}
|
}
|
||||||
@@ -91,6 +92,7 @@ function plugin_init_processmaker() {
|
|||||||
}
|
}
|
||||||
$PLUGIN_HOOKS['item_get_pdfdatas']['processmaker'] = $hooks;
|
$PLUGIN_HOOKS['item_get_pdfdatas']['processmaker'] = $hooks;
|
||||||
|
|
||||||
|
// Javascript
|
||||||
$plugin = new Plugin();
|
$plugin = new Plugin();
|
||||||
if ($plugin->isActivated('processmaker')
|
if ($plugin->isActivated('processmaker')
|
||||||
&& Session::getLoginUserID() ) {
|
&& Session::getLoginUserID() ) {
|
||||||
|
|||||||
Reference in New Issue
Block a user