"; echo "
"; echo ""; echo ""; echo "
".$LANG['processmaker']['item']['tab']."
"; echo $LANG['processmaker']['item']['selectprocess']." "; echo ""; echo ""; echo ""; // Dropdown::show('PluginProcessmakerProcessmaker', array( 'name' => 'plugin_processmaker_process_id', 'condition' => "is_active=1 and is_helpdeskvisible=1")); // condition is used to prevent start of none-active and none-helpdesk-visible cases PluginProcessmakerProcess::dropdown( array( 'entity' => $_SESSION['glpiactive_entity'], 'name' => 'plugin_processmaker_process_id' )); echo ""; echo ""; echo "
"; Html::closeForm(); } /** * Print the helpdesk form * * @param $ID int : ID of the user who want to display the Helpdesk * @param $ticket_template int : ID ticket template for preview : false if not used for preview * * @return nothing (print the helpdesk) **/ function showFormHelpdesk($ID, $pmItem, $caseInfo, $ticket_template=false) { global $DB, $CFG_GLPI, $LANG; if (!Session::haveRight("create_ticket","1")) { return false; } $query = "SELECT `realname`, `firstname`, `name` FROM `glpi_users` WHERE `id` = '$ID'"; $result = $DB->query($query); $email = UserEmail::getDefaultForUser($ID); // Set default values... $default_values = array('_users_id_requester_notif' => array('use_notification' => ($email==""?0:1), 'alternative_email' => ''), 'nodelegate' => 1, '_users_id_requester' => 0, 'name' => '', 'content' => '', 'itilcategories_id' => 0, 'urgency' => 3, 'itemtype' => '', 'entities_id' => $_SESSION['glpiactive_entity'], 'items_id' => 0, 'plan' => array(), 'global_validation' => 'none', 'due_date' => 'NULL', 'slas_id' => 0, '_add_validation' => 0, 'type' => EntityData::getUsedConfig('tickettype', $_SESSION['glpiactive_entity'], '', Ticket::INCIDENT_TYPE), '_right' => "id"); if (!$ticket_template) { $options = $_REQUEST; } // Restore saved value or override with page parameter foreach ($default_values as $name => $value) { if (!isset($options[$name])) { if (isset($_SESSION["helpdeskSaved"][$name])) { $options[$name] = $_SESSION["helpdeskSaved"][$name]; } else { $options[$name] = $value; } } } // Clean text fields $options['name'] = stripslashes($options['name']); $options['content'] = Html::cleanPostForTextArea($options['content']); if (!$ticket_template) { echo "
"; } $delegating = User::getDelegateGroupsForUser($options['entities_id']); if (count($delegating)) { echo "
"; echo ""; echo ""; echo "
".$LANG['job'][69]." : "; $rand = Dropdown::showYesNo("nodelegate", $options['nodelegate']); $params = array ('nodelegate' => '__VALUE__', 'rand' => $rand, 'right' => "delegate", '_users_id_requester' => $options['_users_id_requester'], '_users_id_requester_notif' => $options['_users_id_requester_notif'], 'use_notification' => $options['_users_id_requester_notif']['use_notification'], 'entity_restrict' => $_SESSION["glpiactive_entity"]); Ajax::UpdateItemOnSelectEvent("dropdown_nodelegate".$rand, "show_result".$rand, $CFG_GLPI["root_doc"]."/ajax/dropdownDelegationUsers.php", $params); echo "
"; echo "
"; $self = new Ticket(); if ($options["_users_id_requester"] == 0) { $options['_users_id_requester'] = Session::getLoginUserID(); } else { $options['_right'] = "delegate"; } $self->showActorAddFormOnCreate(Ticket::REQUESTER, $options); echo "
"; echo "
"; echo ""; } echo ""; echo ""; // Load ticket template if available : $tt = new TicketTemplate(); // First load default entity one if ($template_id = EntityData::getUsedConfig('tickettemplates_id', $_SESSION["glpiactive_entity"])) { // with type and categ $tt->getFromDBWithDatas($template_id, true); } $field = ''; if ($options['type'] && $options['itilcategories_id']) { $categ = new ITILCategory(); if ($categ->getFromDB($options['itilcategories_id'])) { switch ($options['type']) { case Ticket::INCIDENT_TYPE : $field = 'tickettemplates_id_incident'; break; case Ticket::DEMAND_TYPE : $field = 'tickettemplates_id_demand'; break; } if (!empty($field) && $categ->fields[$field]) { // without type and categ $tt->getFromDBWithDatas($categ->fields[$field], false); } } } if ($ticket_template) { // with type and categ $tt->getFromDBWithDatas($ticket_template, true); } // Predefined fields from template : reset them if (isset($options['_predefined_fields'])) { $options['_predefined_fields'] = unserialize(rawurldecode(stripslashes($options['_predefined_fields']))); } else { $options['_predefined_fields'] = array(); } // Store predefined fields to be able not to take into account on change template $predefined_fields = array(); if (isset($tt->predefined) && count($tt->predefined)) { foreach ($tt->predefined as $predeffield => $predefvalue) { if (isset($options[$predeffield]) && isset($default_values[$predeffield])) { // Is always default value : not set // Set if already predefined field // Set if ticket template change if ($options[$predeffield] == $default_values[$predeffield] || (isset($options['_predefined_fields'][$predeffield]) && $options[$predeffield] == $options['_predefined_fields'][$predeffield]) || (isset($options['_tickettemplates_id']) && $options['_tickettemplates_id'] != $tt->getID())) { $options[$predeffield] = $predefvalue; $predefined_fields[$predeffield] = $predefvalue; } } else { // Not defined options set as hidden field echo ""; } } } else { // No template load : reset predefined values if (count($options['_predefined_fields'])) { foreach ($options['_predefined_fields'] as $predeffield => $predefvalue) { if ($options[$predeffield] == $predefvalue) { $options[$predeffield] = $default_values[$predeffield]; } } } } unset($_SESSION["helpdeskSaved"]); if ($CFG_GLPI['urgency_mask']==(1<<3) || $tt->isHiddenField('urgency')) { // Dont show dropdown if only 1 value enabled or field is hidden echo ""; } // Display predefined fields if hidden if ($tt->isHiddenField('itemtype')) { echo ""; echo ""; } echo ""; echo "
"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; if ($CFG_GLPI['urgency_mask']!=(1<<3)) { if (!$tt->isHiddenField('urgency')) { echo ""; echo ""; echo ""; } } if (empty($delegating) && NotificationTargetTicket::isAuthorMailingActivatedForHelpdesk()) { echo ""; echo ""; echo ""; } if ($_SESSION["glpiactiveprofile"]["helpdesk_hardware"] != 0) { if (!$tt->isHiddenField('itemtype')) { echo ""; echo ""; echo ""; } } if (!$tt->isHiddenField('name') || $tt->isPredefinedField('name')) { echo ""; echo ""; echo ""; } if (!$tt->isHiddenField('content') || $tt->isPredefinedField('content')) { echo ""; echo ""; echo ""; } echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; if (!$ticket_template) { echo ""; echo ""; } echo "
".$caseInfo->processName." : "; if (Session::isMultiEntitiesMode()) { echo " (".Dropdown::getDropdownName("glpi_entities", $_SESSION["glpiactive_entity"]).")"; } echo "
".$LANG['joblist'][29]." :".$tt->getMandatoryMark('urgency').""; Ticket::dropdownUrgency("urgency", $options['urgency']); echo "
".$LANG['help'][8]." : "; if ($options["_users_id_requester"] == 0) { $options['_users_id_requester'] = Session::getLoginUserID(); } $_REQUEST['value'] = $options['_users_id_requester']; $_REQUEST['field'] = '_users_id_requester_notif'; $_REQUEST['use_notification'] = $options['_users_id_requester_notif']['use_notification']; include (GLPI_ROOT."/ajax/uemailUpdate.php"); echo "
 "; echo "
"; $rand = rand(); $pmCaseUser = $caseInfo->currentUsers[0] ; // by default $paramsURL = "DEL_INDEX=".$pmCaseUser->delIndex."&action=".$caseInfo->caseStatus ; echo ""; echo "
 "; echo "
".$LANG['document'][2]." (".Document::getMaxUploadSize().") : "; echo "".
            $LANG["; echo " "; Ticket::showDocumentAddButton(60); echo "
"; echo "
"; if (!$ticket_template) { Html::closeForm(); } } function processMakerShowCase( $ID, $from_helpdesk ) { global $LANG ; Html::helpHeader($LANG['job'][13], $_SERVER['PHP_SELF'], $_SESSION["glpiname"]); //$userGLPI = new User(); //$userGLPI->getFromDB( $ID ) ; //if( $userGLPI->fields['language'] != null ) // $lang = substr( $userGLPI->fields['language'], 0, 2) ; //else // $lang = "en" ; $pmItem = new PluginProcessmakerProcessmaker( ) ; $pmItem->login( ) ; //if( isset( $_REQUEST['sid'] )) { // $pmItem->useSession( $_REQUEST['sid'], $lang ) ; //} //else { // $pmItem->openSession( $userGLPI->fields['name'], "md5:37d442efb43ebb80ec6f9649b375ab72", $lang ) ; //} $caseInfo = $pmItem->getCaseInfo( $_REQUEST['case_id'] ) ; if ($caseInfo->status_code == 0){ // case is created // Must show it... // we may input this case into a temporary case table with session id for key // we need some more info, del_index... // $pmCaseUser = $caseInfo->currentUsers[0] ; // by default $rand = rand(); // echo "