public function testName() { $testName = "TEST_GROUP_2"; $this->assertEquals($this::TEST_GROUP, $this->group->getName()); $this->group->setName($testName); $this->assertEquals($testName, $this->group->getName()); }
protected function tearDown() { $user = $this->userRepository->findOneBy(["email" => $this->user->getEmail()]); $group = $this->groupRepository->findOneBy(["name" => $this->group->getName()]); if (!empty($user)) { $this->entityManager->remove($user); } if (!empty($group)) { $this->entityManager->remove($group); } $this->entityManager->flush(); }
public static function display() { if (!is_numeric($_GET['id'])) { cc_redirect(Admin::link('users')); } if ($_POST['cc_form'] == 'edit-group') { $id = $_GET['id']; $previous = (array) unserialize(urldecode($_POST['previous'])); $group = $_POST['group']; $permissions = (array) $_POST['permissions']; $new = array_merge($previous, $permissions); foreach ($new as $k => $v) { if ($v == "1") { $new[$k] = true; } if (!array_key_exists($k, $permissions)) { $new[$k] = false; } } if (DB::update('users', array('name', 'data'), array($group, serialize(filter('admin_edit_group_data', array('permissions' => $new)))), array('users_id = ?', $id))) { $message = Message::success(__('admin', 'group-information-updated')); } else { $message = Message::error(__('admin', 'database-error')); } } $p = Permissions::getAll(); $g = new Group((int) $_GET['id']); $p_form = new Form(''); $p_form->setCC_Form('edit-group'); $p_form->startFieldset(__('admin', 'group-information')); $p_form->addInput(__('admin', 'group-name'), 'text', 'group', $g->getName()); $p_form->endFieldset(); $p_form->addHTML(sprintf("<h3>%s</h3>", __('admin', 'permissions'))); $p_table = new Table('permissions'); $p_table->addHeader(array('Name', 'Allowed')); foreach ($p as $k => $v) { $previous[$v['name']] = $g->isAllowed($v['name']); $p_table->addRow(array(__('permissions', $v['name']), sprintf('<input type="checkbox" name="permissions[%s]"%svalue="1"/>', $v['name'], $g->isAllowed($v['name']) ? ' checked="checked"' : ''))); } $p_form->addHidden('previous', urlencode(serialize($previous))); $p_form->addHTML($p_table->html()); $p_form->addSubmit('', 'save-permissions', __('admin', 'save-changes')); return array(sprintf('%s: %s', __('admin', 'edit-group'), $g->getName()), $message . $p_form->html()); }
function plugin_init_escalation() { global $PLUGIN_HOOKS, $CFG_GLPI; $PLUGIN_HOOKS['change_profile']['escalation'] = array('PluginEscalationProfile', 'changeprofile'); $PLUGIN_HOOKS['csrf_compliant']['escalation'] = true; // After escalation, if user can't see the ticket (dan't see all ticket right), it redirect to ticket list if (isset($_SERVER['HTTP_REFERER']) and strstr($_SERVER['HTTP_REFERER'], "escalation/front/group_group.form.php")) { if (isset($_GET['id'])) { $ticket = new Ticket(); $ticket->getFromDB($_GET['id']); if (!$ticket->canViewItem()) { // Can't see ticket, go in ticket list $ticket->redirectToList(); } } } if (isset($_SESSION["glpiID"])) { $plugin = new Plugin(); if ($plugin->isActivated('escalation')) { Plugin::registerClass('PluginEscalationProfile', array('addtabon' => array('Profile'))); Plugin::registerClass('PluginEscalationTicketCopy', array('addtabon' => array('Ticket'))); Plugin::registerClass('PluginEscalationConfig', array('addtabon' => array('Entity'))); Plugin::registerClass('PluginEscalationGroup_Group', array('addtabon' => array('Ticket', 'Group'))); $PLUGIN_HOOKS['menu_entry']['escalation'] = false; PluginEscalationGroup_Group::convertNewTicket(); // limit group $peConfig = new PluginEscalationConfig(); if ($peConfig->getValue('limitgroup', $_SESSION['glpidefault_entity']) == '1') { if (strpos($_SERVER['PHP_SELF'], "ticket.form.php") && !isset($_GET['id'])) { $group = new Group(); $a_groups = array(); $a_groups[0] = Dropdown::EMPTY_VALUE; foreach ($_SESSION['glpigroups'] as $groups_id) { $group->getFromDB($groups_id); $a_groups[$groups_id] = $group->getName(); } $_SESSION['plugin_escalation_requestergroups'] = $a_groups; register_shutdown_function('plugin_escalation_on_exit'); ob_start(); } } // end limit group } $PLUGIN_HOOKS['pre_item_add']['escalation'] = array('Ticket' => array('PluginEscalationGroup_Group', 'selectGroupOnAdd')); $PLUGIN_HOOKS['item_add']['escalation'] = array('Ticket' => array('PluginEscalationTicketCopy', 'finishAdd')); // $PLUGIN_HOOKS['pre_item_update']['escalation'] = array('Ticket' => array('PluginEscalationGroup_Group', 'notMultiple')); } }
static function pdfForGroup(PluginPdfSimplePDF $pdf, Group $group, $tree) { global $DB, $CFG_GLPI; $used = array(); $ids = array(); // Retrieve member list $entityrestrict = Group_User::getDataForGroup($group, $used, $ids, '', $tree); $title = "<b>" . sprintf(__('%1$s (%2$s)'), _n('User', 'Users', 2) . "</b>", __('D=Dynamic')); $number = count($used); if ($number > $_SESSION['glpilist_limit']) { $title = sprintf(__('%1$s (%2$s)'), $title, $_SESSION['glpilist_limit'] . "/" . $number); } else { $title = sprintf(__('%1$s (%2$s)'), $title, $number); } $pdf->setColumnsSize(100); $pdf->displayTitle($title); if ($number) { $user = new User(); $group = new Group(); if ($tree) { $pdf->setColumnsSize(35, 45, 10, 10); $pdf->displayTitle(User::getTypeName(1), Group::getTypeName(1), __('Manager'), __('Delegatee')); } else { $pdf->setColumnsSize(60, 20, 20); $pdf->displayTitle(User::getTypeName(1), __('Manager'), __('Delegatee')); } for ($i = 0; $i < $number && $i < $_SESSION['glpilist_limit']; $i++) { $data = $used[$i]; $name = Html::clean(getUserName($data["id"])); if ($data["is_dynamic"]) { $name = sprintf(__('%1$s (%2$s)'), $name, '<b>' . __('D') . '</b>'); } if ($tree) { $group->getFromDB($data["groups_id"]); $pdf->displayLine($name, $group->getName(), Dropdown::getYesNo($data['is_manager']), Dropdown::getYesNo($data['is_userdelegate'])); } else { $pdf->displayLine($name, Dropdown::getYesNo($data['is_manager']), Dropdown::getYesNo($data['is_userdelegate'])); } } } else { $pdf->setColumnsAlign('center'); $pdf->displayLine(__('No item found')); } $pdf->displaySpace(); }
/** * Returns the data used by the weekly report. * * @param string $usr_id The ID of the user this report is for. * @param int $prj_id The project id * @param string|DateTime $start The start date of this report. * @param string|DateTime $end The end date of this report. * @param array $options extra options for report: * - $separate_closed If closed issues should be separated from other issues. * - $ignore_statuses If issue status changes should be ignored in report. * - $separate_not_assigned_to_user Separate Issues Not Assigned to User * - $show_per_issue Add time spent on issue to issues * - $separate_no_time Separate No time spent issues * @return array An array of data containing all the elements of the weekly report. */ public static function getWeeklyReport($usr_id, $prj_id, $start, $end, $options = array()) { // figure out timezone $user_prefs = Prefs::get($usr_id); $tz = $user_prefs['timezone']; // if start or end is string, convert assume min and max date are specified if (!$start instanceof DateTime) { $start = Date_Helper::getDateTime($start, $tz)->setTime(0, 0, 0); } if (!$end instanceof DateTime) { $end = Date_Helper::getDateTime($end, $tz)->setTime(23, 59, 59); } $start_ts = Date_Helper::getSqlDateTime($start); $end_ts = Date_Helper::getSqlDateTime($end); $time_tracking = Time_Tracking::getSummaryByUser($usr_id, $prj_id, $start_ts, $end_ts); // replace spaces in index with _ and calculate total time $total_time = 0; foreach ($time_tracking as $category => $data) { unset($time_tracking[$category]); $time_tracking[str_replace(' ', '_', $category)] = $data; $total_time += $data['total_time']; } // get count of issues assigned in week of report. $stmt = 'SELECT COUNT(*) FROM {{%issue}}, {{%issue_user}}, {{%status}} WHERE iss_id = isu_iss_id AND iss_sta_id = sta_id AND isu_usr_id = ? AND iss_prj_id = ? AND isu_assigned_date BETWEEN ? AND ?'; $params = array($usr_id, Auth::getCurrentProject(), $start_ts, $end_ts); try { $newly_assigned = DB_Helper::getInstance()->getOne($stmt, $params); } catch (DbException $e) { $newly_assigned = null; } $email_count = array('associated' => Support::getSentEmailCountByUser($usr_id, $start_ts, $end_ts, true), 'other' => Support::getSentEmailCountByUser($usr_id, $start_ts, $end_ts, false)); $htt_exclude = array(); if (!empty($options['ignore_statuses'])) { $htt_exclude[] = 'status_changed'; $htt_exclude[] = 'status_auto_changed'; $htt_exclude[] = 'remote_status_change'; } $issue_list = History::getTouchedIssuesByUser($usr_id, $prj_id, $start_ts, $end_ts, $htt_exclude); $issues = array('no_time' => array(), 'not_mine' => array(), 'closed' => array(), 'other' => array()); // organize issues into categories if ($issue_list) { if (!empty($options['show_per_issue']) || !empty($options['separate_no_time'])) { Time_Tracking::fillTimeSpentByIssueAndTime($issue_list, $usr_id, $start_ts, $end_ts); } foreach ($issue_list as $row) { if (!empty($row['iss_customer_id']) && CRM::hasCustomerIntegration($row['iss_prj_id'])) { $row['customer_name'] = CRM::getCustomerName($row['iss_prj_id'], $row['iss_customer_id']); } else { $row['customer_name'] = null; } if (!empty($options['separate_closed']) && $row['sta_is_closed'] == 1) { $issues['closed'][] = $row; } elseif (!empty($options['separate_not_assigned_to_user']) && !Issue::isAssignedToUser($row['iss_id'], $usr_id)) { $issues['not_mine'][] = $row; } elseif (!empty($options['separate_no_time']) && empty($row['it_spent'])) { $issues['no_time'][] = $row; } else { $issues['other'][] = $row; } } $sort_function = function ($a, $b) { return strcasecmp($a['customer_name'], $b['customer_name']); }; usort($issues['closed'], $sort_function); usort($issues['other'], $sort_function); } return array('start' => $start_ts, 'end' => $end_ts, 'user' => User::getDetails($usr_id), 'group_name' => Group::getName(User::getGroupID($usr_id)), 'issues' => $issues, 'status_counts' => History::getTouchedIssueCountByStatus($usr_id, $prj_id, $start_ts, $end_ts), 'new_assigned_count' => $newly_assigned, 'time_tracking' => $time_tracking, 'email_count' => $email_count, 'phone_count' => Phone_Support::getCountByUser($usr_id, $start_ts, $end_ts), 'note_count' => Note::getCountByUser($usr_id, $start_ts, $end_ts), 'total_time' => Misc::getFormattedTime($total_time, false)); }
public static function getAddEditForm($target = '/admin/User') { $form = new Form('group_addedit', 'POST', $target, '', array('class' => 'admin')); if (@$_REQUEST['id']) { $group = new Group($_REQUEST['id']); $form->setConstants(array('id' => $_REQUEST['id'])); $form->addElement('hidden', 'id'); } else { $group = new Group(); } $form->setConstants(array('section' => 'groupsaddedit')); $form->addElement('hidden', 'section'); $form->addElement('text', 'name', 'Group Name'); $form->addElement('submit', 'submit', 'Save'); $form->addElement('reset', 'cancel', 'Cancel'); $defaultValues['name'] = $group->getName(); $form->setDefaults($defaultValues); if ($form->validate() && isset($_REQUEST['submit'])) { $group->setName($_REQUEST['name']); $group->save(); } return $form; }
/** * Returns whether the Schema has the given Group or not. * * @param Group $group * * @return bool */ public function hasGroup(Group $group) { return array_key_exists($group->getName(), $this->groups); }
/** * @todo Implement testSetName(). */ public function testSetName() { $this->object->setName('testgroup'); $this->assertEquals($this->object->getName(), 'testgroup'); }
</span> <span class="badge" style="width: 30px" data-toggle="tooltip" data-placement="right" title="Number of lines passed through the filter"><?php echo $number_of_lines; ?> </span> </div> </td> <td class="description"><?php echo $dashboard->prepareDescription(); ?> </td> <td> <?php try { $dashboard_s_group = new Group($dashboard->getGroupId()); echo $dashboard_s_group->getName(); } catch (fNotFoundException $e) { echo "No group found"; } ?> </td> <td><?php echo $dashboard->prepareColumns(); ?> </td> <td><?php echo $dashboard->prepareBackgroundColor(); ?> </td> <td> <a href="<?php
/** * Show the Form edit form the the adminsitrator in the config page * * @param Array $options Optional options * * @return NULL Nothing, just display the form */ public function showForm($options = array()) { $rand = mt_rand(); $obj = new PluginFormcreatorTarget(); $found = $obj->find("itemtype = '" . __CLASS__ . "' AND items_id = " . (int) $this->getID()); $target = array_shift($found); $form = new PluginFormcreatorForm(); $form->getFromDB($target['plugin_formcreator_forms_id']); echo '<div class="center" style="width: 950px; margin: 0 auto;">'; echo '<form name="form_target" method="post" action="' . $GLOBALS['CFG_GLPI']['root_doc'] . '/plugins/formcreator/front/targetticket.form.php">'; // General information : name echo '<table class="tab_cadre_fixe">'; echo '<tr><th colspan="2">' . __('Edit a destination', 'formcreator') . '</th></tr>'; echo '<tr class="line1">'; echo '<td width="15%"><strong>' . __('Name') . ' <span style="color:red;">*</span></strong></td>'; echo '<td width="85%"><input type="text" name="name" style="width:704px;" value="' . $target['name'] . '"></textarea</td>'; echo '</tr>'; echo '</table>'; // Ticket information : title, template... echo '<table class="tab_cadre_fixe">'; echo '<tr><th colspan="4">' . _n('Target ticket', 'Target tickets', 1, 'formcreator') . '</th></tr>'; echo '<tr class="line1">'; echo '<td><strong>' . __('Ticket title', 'formcreator') . ' <span style="color:red;">*</span></strong></td>'; echo '<td colspan="3"><input type="text" name="title" style="width:704px;" value="' . $this->fields['name'] . '"></textarea</td>'; echo '</tr>'; echo '<tr class="line0">'; echo '<td><strong>' . __('Description') . ' <span style="color:red;">*</span></strong></td>'; echo '<td colspan="3">'; echo '<textarea name="comment" style="width:700px;" rows="15">' . $this->fields['comment'] . '</textarea>'; if ($GLOBALS['CFG_GLPI']["use_rich_text"]) { Html::initEditorSystem('comment'); } echo '</td>'; echo '</tr>'; // Ticket Template echo '<tr class="line1">'; echo '<td width="15%">' . _n('Ticket template', 'Ticket templates', 1) . '</td>'; echo '<td width="25%">'; Dropdown::show('TicketTemplate', array('name' => 'tickettemplates_id', 'value' => $this->fields['tickettemplates_id'])); echo '</td>'; echo '<td width="15%">' . __('Due date') . '</td>'; echo '<td width="45%">'; // ------------------------------------------------------------------------------------------- // Due date type selection // ------------------------------------------------------------------------------------------- Dropdown::showFromArray('due_date_rule', array('' => Dropdown::EMPTY_VALUE, 'answer' => __('equals to the answer to the question', 'formcreator'), 'ticket' => __('calculated from the ticket creation date', 'formcreator'), 'calcul' => __('calculated from the answer to the question', 'formcreator')), array('value' => $this->fields['due_date_rule'], 'on_change' => 'formcreatorChangeDueDate(this.value)')); // for each section ... $questions_list = array(Dropdown::EMPTY_VALUE); $query = "SELECT s.id, s.name\n FROM glpi_plugin_formcreator_targets t\n INNER JOIN glpi_plugin_formcreator_sections s ON s.plugin_formcreator_forms_id = t.plugin_formcreator_forms_id\n WHERE t.items_id = " . (int) $this->getID() . "\n ORDER BY s.order"; $result = $GLOBALS['DB']->query($query); while ($section = $GLOBALS['DB']->fetch_array($result)) { // select all date and datetime questions $query2 = "SELECT q.id, q.name\n FROM glpi_plugin_formcreator_questions q\n INNER JOIN glpi_plugin_formcreator_sections s ON s.id = q.plugin_formcreator_sections_id\n WHERE s.id = {$section['id']}\n AND q.fieldtype IN ('date', 'datetime')"; $result2 = $GLOBALS['DB']->query($query2); $section_questions = array(); while ($question = $GLOBALS['DB']->fetch_array($result2)) { $section_questions[$question['id']] = $question['name']; } if (count($section_questions) > 0) { $questions_list[$section['name']] = $section_questions; } } // List questions if ($this->fields['due_date_rule'] != 'answer' && $this->fields['due_date_rule'] != 'calcul') { echo '<div id="due_date_questions" style="display:none">'; } else { echo '<div id="due_date_questions">'; } Dropdown::showFromArray('due_date_question', $questions_list, array('value' => $this->fields['due_date_question'])); echo '</div>'; if ($this->fields['due_date_rule'] != 'ticket' && $this->fields['due_date_rule'] != 'calcul') { echo '<div id="due_date_time" style="display:none">'; } else { echo '<div id="due_date_time">'; } Dropdown::showNumber("due_date_value", array('value' => $this->fields['due_date_value'], 'min' => -30, 'max' => 30)); Dropdown::showFromArray('due_date_period', array('minute' => _n('Minute', 'Minutes', 2), 'hour' => _n('Hour', 'Hours', 2), 'day' => _n('Day', 'Days', 2), 'month' => __('Month')), array('value' => $this->fields['due_date_period'])); echo '</div>'; echo '</td>'; echo '</tr>'; // ------------------------------------------------------------------------------------------- // Due date type selection end // ------------------------------------------------------------------------------------------- if ($form->fields['validation_required']) { echo '<tr class="line0">'; echo '<td colspan="4">'; echo '<input type="hidden" name="validation_followup" value="0" />'; echo '<input type="checkbox" name="validation_followup" id="validation_followup" value="1" '; if (!isset($this->fields['validation_followup']) || $this->fields['validation_followup'] == 1) { echo ' checked="checked"'; } echo '/>'; echo ' <label for="validation_followup">'; echo __('Add validation message as first ticket followup', 'formcreator'); echo '</label>'; echo '</td>'; echo '</tr>'; } echo '</table>'; // Buttons echo '<table class="tab_cadre_fixe">'; echo '<tr class="line1">'; echo '<td colspan="5" class="center">'; echo '<input type="reset" name="reset" class="submit_button" value="' . __('Cancel', 'formcreator') . '" onclick="document.location = \'form.form.php?id=' . $target['plugin_formcreator_forms_id'] . '\'" /> '; echo '<input type="hidden" name="id" value="' . $this->getID() . '" />'; echo '<input type="submit" name="update" class="submit_button" value="' . __('Save') . '" />'; echo '</td>'; echo '</tr>'; echo '</table>'; Html::closeForm(); // Get available questions for actors lists $questions_user_list = array(Dropdown::EMPTY_VALUE); $questions_group_list = array(Dropdown::EMPTY_VALUE); $questions_supplier_list = array(Dropdown::EMPTY_VALUE); $query = "SELECT s.id, s.name\n FROM glpi_plugin_formcreator_targets t\n INNER JOIN glpi_plugin_formcreator_sections s ON s.plugin_formcreator_forms_id = t.plugin_formcreator_forms_id\n WHERE t.items_id = " . (int) $this->getID() . "\n ORDER BY s.order"; $result = $GLOBALS['DB']->query($query); while ($section = $GLOBALS['DB']->fetch_array($result)) { // select all user, group or supplier questions (GLPI Object) $query2 = "SELECT q.id, q.name, q.values\n FROM glpi_plugin_formcreator_questions q\n INNER JOIN glpi_plugin_formcreator_sections s ON s.id = q.plugin_formcreator_sections_id\n WHERE s.id = {$section['id']}\n AND q.fieldtype = 'glpiselect'\n AND q.values IN ('User', 'Group', 'Supplier')"; $result2 = $GLOBALS['DB']->query($query2); $section_questions_user = array(); $section_questions_group = array(); $section_questions_supplier = array(); while ($question = $GLOBALS['DB']->fetch_array($result2)) { switch ($question['values']) { case 'User': $section_questions_user[$question['id']] = $question['name']; break; case 'Group': $section_questions_group[$question['id']] = $question['name']; break; case 'Supplier': $section_questions_supplier[$question['id']] = $question['name']; break; } } $questions_user_list[$section['name']] = $section_questions_user; $questions_group_list[$section['name']] = $section_questions_group; $questions_supplier_list[$section['name']] = $section_questions_supplier; } // Get available questions for actors lists $actors = array('requester' => array(), 'observer' => array(), 'assigned' => array()); $query = "SELECT id, actor_role, actor_type, actor_value, use_notification\n FROM glpi_plugin_formcreator_targettickets_actors\n WHERE plugin_formcreator_targettickets_id = " . $this->getID(); $result = $GLOBALS['DB']->query($query); while ($actor = $GLOBALS['DB']->fetch_array($result)) { $actors[$actor['actor_role']][$actor['id']] = array('actor_type' => $actor['actor_type'], 'actor_value' => $actor['actor_value'], 'use_notification' => $actor['use_notification']); } $img_user = '******' . __('User') . '" title="' . __('User') . '" width="20" />'; $img_group = '<img src="../../../pics/groupes.png" alt="' . __('Group') . '" title="' . __('Group') . '" width="20" />'; $img_supplier = '<img src="../../../pics/supplier.png" alt="' . __('Supplier') . '" title="' . __('Supplier') . '" width="20" />'; $img_mail = '<img src="../pics/email.png" alt="' . __('Yes') . '" title="' . __('Email followup') . ' ' . __('Yes') . '" />'; $img_nomail = '<img src="../pics/email-no.png" alt="' . __('No') . '" title="' . __('Email followup') . ' ' . __('No') . '" />'; echo '<table class="tab_cadre_fixe">'; echo '<tr><th colspan="3">' . __('Ticket actors', 'formcreator') . '</th></tr>'; echo '<tr>'; echo '<th width="33%">'; echo _n('Requester', 'Requesters', 1) . ' '; echo '<img title="Ajouter" alt="Ajouter" onclick="displayRequesterForm()" class="pointer" id="btn_add_requester" src="../../../pics/add_dropdown.png">'; echo '<img title="Annuler" alt="Annuler" onclick="hideRequesterForm()" class="pointer" id="btn_cancel_requester" src="../../../pics/delete.png" style="display:none">'; echo '</th>'; echo '<th width="34%">'; echo _n('Watcher', 'Watchers', 1) . ' '; echo '<img title="Ajouter" alt="Ajouter" onclick="displayWatcherForm()" class="pointer" id="btn_add_watcher" src="../../../pics/add_dropdown.png">'; echo '<img title="Annuler" alt="Annuler" onclick="hideWatcherForm()" class="pointer" id="btn_cancel_watcher" src="../../../pics/delete.png" style="display:none">'; echo '</th>'; echo '<th width="33%">'; echo __('Assigned to') . ' '; echo '<img title="Ajouter" alt="Ajouter" onclick="displayAssignedForm()" class="pointer" id="btn_add_assigned" src="../../../pics/add_dropdown.png">'; echo '<img title="Annuler" alt="Annuler" onclick="hideAssignedForm()" class="pointer" id="btn_cancel_assigned" src="../../../pics/delete.png" style="display:none">'; echo '</th>'; echo '</tr>'; echo '<tr>'; // Requester echo '<td valign="top">'; // => Add requester form echo '<form name="form_target" id="form_add_requester" method="post" style="display:none" action="' . $GLOBALS['CFG_GLPI']['root_doc'] . '/plugins/formcreator/front/targetticket.form.php">'; Dropdown::showFromArray('actor_type', array('' => Dropdown::EMPTY_VALUE, 'creator' => __('Form requester', 'formcreator'), 'validator' => __('Form validator', 'formcreator'), 'person' => __('Specific person', 'formcreator'), 'question_person' => __('Person from the question', 'formcreator'), 'group' => __('Specific group', 'formcreator'), 'question_group' => __('Group from the question', 'formcreator')), array('on_change' => 'formcreatorChangeActorRequester(this.value)')); echo '<div id="block_requester_user" style="display:none">'; User::dropdown(array('name' => 'actor_value_person', 'right' => 'all', 'all' => 0)); echo '</div>'; echo '<div id="block_requester_group" style="display:none">'; Group::dropdown(array('name' => 'actor_value_group')); echo '</div>'; echo '<div id="block_requester_question_user" style="display:none">'; Dropdown::showFromArray('actor_value_question_person', $questions_user_list, array('value' => $this->fields['due_date_question'])); echo '</div>'; echo '<div id="block_requester_question_group" style="display:none">'; Dropdown::showFromArray('actor_value_question_group', $questions_group_list, array('value' => $this->fields['due_date_question'])); echo '</div>'; echo '<div>'; echo __('Email followup'); Dropdown::showYesNo('use_notification', 1); echo '</div>'; echo '<p align="center">'; echo '<input type="hidden" name="id" value="' . $this->getID() . '" />'; echo '<input type="hidden" name="actor_role" value="requester" />'; echo '<input type="submit" value="' . __('Add') . '" class="submit_button" />'; echo '</p>'; echo "<hr>"; Html::closeForm(); // => List of saved requesters foreach ($actors['requester'] as $id => $values) { echo '<div>'; switch ($values['actor_type']) { case 'creator': echo $img_user . ' <b>' . __('Form requester', 'formcreator') . '</b>'; break; case 'validator': echo $img_user . ' <b>' . __('Form validator', 'formcreator') . '</b>'; break; case 'person': $user = new User(); $user->getFromDB($values['actor_value']); echo $img_user . ' <b>' . __('User') . ' </b> "' . $user->getName() . '"'; break; case 'question_person': $question = new PluginFormcreatorQuestion(); $question->getFromDB($values['actor_value']); echo $img_user . ' <b>' . __('Person from the question', 'formcreator') . '</b> "' . $question->getName() . '"'; break; case 'group': $group = new Group(); $group->getFromDB($values['actor_value']); echo $img_user . ' <b>' . __('Group') . ' </b> "' . $group->getName() . '"'; break; case 'question_group': $question = new PluginFormcreatorQuestion(); $question->getFromDB($values['actor_value']); echo $img_group . ' <b>' . __('Group from the question', 'formcreator') . '</b> "' . $question->getName() . '"'; break; } echo $values['use_notification'] ? ' ' . $img_mail . ' ' : ' ' . $img_nomail . ' '; echo self::getDeleteImage($id); echo '</div>'; } echo '</td>'; // Observer echo '<td valign="top">'; // => Add observer form echo '<form name="form_target" id="form_add_watcher" method="post" style="display:none" action="' . $GLOBALS['CFG_GLPI']['root_doc'] . '/plugins/formcreator/front/targetticket.form.php">'; Dropdown::showFromArray('actor_type', array('' => Dropdown::EMPTY_VALUE, 'creator' => __('Form requester', 'formcreator'), 'validator' => __('Form validator', 'formcreator'), 'person' => __('Specific person', 'formcreator'), 'question_person' => __('Person from the question', 'formcreator'), 'group' => __('Specific group', 'formcreator'), 'question_group' => __('Group from the question', 'formcreator')), array('on_change' => 'formcreatorChangeActorWatcher(this.value)')); echo '<div id="block_watcher_user" style="display:none">'; User::dropdown(array('name' => 'actor_value_person', 'right' => 'all', 'all' => 0)); echo '</div>'; echo '<div id="block_watcher_group" style="display:none">'; Group::dropdown(array('name' => 'actor_value_group')); echo '</div>'; echo '<div id="block_watcher_question_user" style="display:none">'; Dropdown::showFromArray('actor_value_question_person', $questions_user_list, array('value' => $this->fields['due_date_question'])); echo '</div>'; echo '<div id="block_watcher_question_group" style="display:none">'; Dropdown::showFromArray('actor_value_question_group', $questions_group_list, array('value' => $this->fields['due_date_question'])); echo '</div>'; echo '<div>'; echo __('Email followup'); Dropdown::showYesNo('use_notification', 1); echo '</div>'; echo '<p align="center">'; echo '<input type="hidden" name="id" value="' . $this->getID() . '" />'; echo '<input type="hidden" name="actor_role" value="observer" />'; echo '<input type="submit" value="' . __('Add') . '" class="submit_button" />'; echo '</p>'; echo "<hr>"; Html::closeForm(); // => List of saved observers foreach ($actors['observer'] as $id => $values) { echo '<div>'; switch ($values['actor_type']) { case 'creator': echo $img_user . ' <b>' . __('Form requester', 'formcreator') . '</b>'; break; case 'validator': echo $img_user . ' <b>' . __('Form validator', 'formcreator') . '</b>'; break; case 'person': $user = new User(); $user->getFromDB($values['actor_value']); echo $img_user . ' <b>' . __('User') . ' </b> "' . $user->getName() . '"'; break; case 'question_person': $question = new PluginFormcreatorQuestion(); $question->getFromDB($values['actor_value']); echo $img_user . ' <b>' . __('Person from the question', 'formcreator') . '</b> "' . $question->getName() . '"'; break; case 'group': $group = new Group(); $group->getFromDB($values['actor_value']); echo $img_user . ' <b>' . __('Group') . ' </b> "' . $group->getName() . '"'; break; case 'question_group': $question = new PluginFormcreatorQuestion(); $question->getFromDB($values['actor_value']); echo $img_group . ' <b>' . __('Group from the question', 'formcreator') . '</b> "' . $question->getName() . '"'; break; } echo $values['use_notification'] ? ' ' . $img_mail . ' ' : ' ' . $img_nomail . ' '; echo self::getDeleteImage($id); echo '</div>'; } echo '</td>'; // Assigned to echo '<td valign="top">'; // => Add assigned to form echo '<form name="form_target" id="form_add_assigned" method="post" style="display:none" action="' . $GLOBALS['CFG_GLPI']['root_doc'] . '/plugins/formcreator/front/targetticket.form.php">'; Dropdown::showFromArray('actor_type', array('' => Dropdown::EMPTY_VALUE, 'creator' => __('Form requester', 'formcreator'), 'validator' => __('Form validator', 'formcreator'), 'person' => __('Specific person', 'formcreator'), 'question_person' => __('Person from the question', 'formcreator'), 'group' => __('Specific group', 'formcreator'), 'question_group' => __('Group from the question', 'formcreator'), 'supplier' => __('Specific supplier', 'formcreator'), 'question_supplier' => __('Supplier from the question', 'formcreator')), array('on_change' => 'formcreatorChangeActorAssigned(this.value)')); echo '<div id="block_assigned_user" style="display:none">'; User::dropdown(array('name' => 'actor_value_person', 'right' => 'all', 'all' => 0)); echo '</div>'; echo '<div id="block_assigned_group" style="display:none">'; Group::dropdown(array('name' => 'actor_value_group')); echo '</div>'; echo '<div id="block_assigned_supplier" style="display:none">'; Supplier::dropdown(array('name' => 'actor_value_supplier')); echo '</div>'; echo '<div id="block_assigned_question_user" style="display:none">'; Dropdown::showFromArray('actor_value_question_person', $questions_user_list, array('value' => $this->fields['due_date_question'])); echo '</div>'; echo '<div id="block_assigned_question_group" style="display:none">'; Dropdown::showFromArray('actor_value_question_group', $questions_group_list, array('value' => $this->fields['due_date_question'])); echo '</div>'; echo '<div id="block_assigned_question_supplier" style="display:none">'; Dropdown::showFromArray('actor_value_question_supplier', $questions_supplier_list, array('value' => $this->fields['due_date_question'])); echo '</div>'; echo '<div>'; echo __('Email followup'); Dropdown::showYesNo('use_notification', 1); echo '</div>'; echo '<p align="center">'; echo '<input type="hidden" name="id" value="' . $this->getID() . '" />'; echo '<input type="hidden" name="actor_role" value="assigned" />'; echo '<input type="submit" value="' . __('Add') . '" class="submit_button" />'; echo '</p>'; echo "<hr>"; Html::closeForm(); // => List of saved assigned to foreach ($actors['assigned'] as $id => $values) { echo '<div>'; switch ($values['actor_type']) { case 'creator': echo $img_user . ' <b>' . __('Form requester', 'formcreator') . '</b>'; break; case 'validator': echo $img_user . ' <b>' . __('Form validator', 'formcreator') . '</b>'; break; case 'person': $user = new User(); $user->getFromDB($values['actor_value']); echo $img_user . ' <b>' . __('User') . ' </b> "' . $user->getName() . '"'; break; case 'question_person': $question = new PluginFormcreatorQuestion(); $question->getFromDB($values['actor_value']); echo $img_user . ' <b>' . __('Person from the question', 'formcreator') . '</b> "' . $question->getName() . '"'; break; case 'group': $group = new Group(); $group->getFromDB($values['actor_value']); echo $img_user . ' <b>' . __('Group') . ' </b> "' . $group->getName() . '"'; break; case 'question_group': $question = new PluginFormcreatorQuestion(); $question->getFromDB($values['actor_value']); echo $img_group . ' <b>' . __('Group from the question', 'formcreator') . '</b> "' . $question->getName() . '"'; break; case 'supplier': $group = new Group(); $group->getFromDB($values['actor_value']); echo $img_supplier . ' <b>' . __('Supplier') . ' </b> "' . $group->getName() . '"'; break; case 'question_supplier': $question = new PluginFormcreatorQuestion(); $question->getFromDB($values['actor_value']); echo $img_supplier . ' <b>' . __('Supplier from the question', 'formcreator') . '</b> "' . $question->getName() . '"'; break; } echo $values['use_notification'] ? ' ' . $img_mail . ' ' : ' ' . $img_nomail . ' '; echo self::getDeleteImage($id); echo '</div>'; } echo '</td>'; echo '</tr>'; echo '</table>'; // List of available tags echo '<table class="tab_cadre_fixe">'; echo '<tr><th colspan="5">' . __('List of available tags') . '</th></tr>'; echo '<tr>'; echo '<th width="40%" colspan="2">' . _n('Question', 'Questions', 1, 'formcreator') . '</th>'; echo '<th width="20%">' . __('Title') . '</th>'; echo '<th width="20%">' . _n('Answer', 'Answers', 1, 'formcreator') . '</th>'; echo '<th width="20%">' . _n('Section', 'Sections', 1, 'formcreator') . '</th>'; echo '</tr>'; echo '<tr class="line0">'; echo '<td colspan="2"><strong>' . __('Full form', 'formcreator') . '</strong></td>'; echo '<td align="center"><code>-</code></td>'; echo '<td align="center"><code><strong>##FULLFORM##</strong></code></td>'; echo '<td align="center">-</td>'; echo '</tr>'; $table_questions = getTableForItemType('PluginFormcreatorQuestion'); $table_sections = getTableForItemType('PluginFormcreatorSection'); $query = "SELECT q.`id`, q.`name` AS question, s.`name` AS section\n FROM {$table_questions} q\n LEFT JOIN {$table_sections} s ON q.`plugin_formcreator_sections_id` = s.`id`\n WHERE s.`plugin_formcreator_forms_id` = " . $target['plugin_formcreator_forms_id'] . "\n ORDER BY s.`order`, q.`order`"; $result = $GLOBALS['DB']->query($query); $i = 0; while ($question = $GLOBALS['DB']->fetch_array($result)) { $i++; echo '<tr class="line' . $i % 2 . '">'; echo '<td colspan="2">' . $question['question'] . '</td>'; echo '<td align="center"><code>##question_' . $question['id'] . '##</code></td>'; echo '<td align="center"><code>##answer_' . $question['id'] . '##</code></td>'; echo '<td align="center">' . $question['section'] . '</td>'; echo '</tr>'; } echo '</table>'; echo '</div>'; }
$p->addTab("tablaunch", _T("Launch Actions", 'msc'), "", "modules/msc/msc/launch.php", array('uuid'=>$machine->uuid, 'hostname'=>$machine->hostname)); $p->addTab("tabbundle", _T("Launch Bundle", 'msc'), "", "modules/msc/msc/launch_bundle.php", array('uuid'=>$machine->uuid, 'hostname'=>$machine->hostname)); $p->addTab("tablogs", _T("Logs", 'msc'), "", "modules/msc/msc/logs.php", array('uuid'=>$machine->uuid, 'hostname'=>$machine->hostname)); $p->addTab("tabhistory", _T("History", 'msc'), "", "modules/msc/msc/history.php", array('uuid'=>$machine->uuid, 'hostname'=>$machine->hostname)); $p->display(); } } elseif ($_GET['gid']) { $p = new TabbedPageGenerator(); $p->setSideMenu($sidemenu); require("modules/dyngroup/includes/includes.php"); $group = new Group($_GET['gid'], true, true); if ($group->exists == False) { $msc_host = new RenderedMSCGroupDontExists($_GET['gid']); $msc_host->headerDisplay(); } else { $p->addTop(sprintf(_T("%s's group secure control", 'msc'), $group->getName()), "modules/msc/msc/header.php"); if (!$group->all_params['ro']) { $p->addTab("grouptablaunch", _T("Launch Actions", 'msc'), "", "modules/msc/msc/launch.php", array('gid'=>$_GET['gid'])); $p->addTab("grouptabbundle", _T("Launch Bundle", 'msc'), "", "modules/msc/msc/launch_bundle.php", array('gid'=>$_GET['gid'])); } $p->addTab("grouptablogs", _T("Logs", 'msc'), "", "modules/msc/msc/logs.php", array('gid'=>$_GET['gid'])); $p->addTab("grouptabhistory", _T("History", 'msc'), "", "modules/msc/msc/history.php", array('gid'=>$_GET['gid'])); } $p->display(); } else { $p = new PageGenerator(); $p->setSideMenu($sidemenu); $p->display(); print _T("Not enough informations", "msc"); }
/** * Return display name property. (readonly) * * @author KnowledgeTree Team * @access public * @return string */ public function getName() { return $this->group->getName(); }
function actionSaveGroup($currentUser) { $backUrl = $this->context->getFlowScopeAttr("backUrl"); $group = new Group(); $groupErrs = array(); $group->setId($this->context->getRequestAttr("id")); $group->setName($this->context->getRequestAttr("name")); if (!is_null($group->getName())) { $group->setName(trim($group->getName())); if (strlen($group->getName()) < 1) { $group->setName(null); } } if (is_null($group->getName())) { $groupErrs["name"] = "field.error.empty"; } $group->setDescription($this->context->getRequestAttr("description")); if (!is_null($group->getDescription())) { $group->setDescription(trim($group->getDescription())); if (strlen($group->getDescription()) < 1) { $group->setDescription(null); } } $projects = $this->context->getRequestAttr("projects"); if (!is_null($projects)) { $projects = json_encode($projects); $group->setProjects($projects); } else { $group->setProjects(json_encode(array())); } $timeZone = new DateTimeZone("Europe/Vilnius"); $time = new DateTime("now", $timeZone); $group->setOwner($currentUser->getId()); $group->setR_date($time->format("Y-m-d H:i:s")); $group->setR_user($currentUser->getId()); $this->context->setFlashScopeAttr("group", $group); $this->context->setFlashScopeAttr("groupErrs", $groupErrs); if (count($groupErrs) >= 1) { if (!is_null($backUrl)) { header("Location: " . $backUrl); return true; } return false; } $store = $this->storeGroup($group); if (!$store) { if (!is_null($backUrl)) { header("Location: " . $backUrl); return true; } return false; } $this->context->setRequestScopeAttr("success", "groups.success.stored"); $this->context->setFlashScopeAttr("viewGroup", $group); $this->cancelGroupEdit(); if (!is_null($backUrl)) { header("Location: " . $backUrl); return true; } return false; }
# TODO need to use a generic widget! $msc_host = new RenderedMSCGroupDontExists($_GET['gid']); $msc_host->headerDisplay(); } else { $ret = xmlrpc_getProfileSynchroState($params['target_uuid']); if (isset($_POST["bresetsynchrostate"])) { if (xmlrpc_resetSynchroState($params['target_uuid'], $params['type'])) { new NotifyWidgetSuccess(sprintf(_T("Reset synchronisation state for %s (%s) succeed", "imaging"), $params['target_name'], $params['target_uuid'])); header("Location: " . urlStrRedirect("base/computers/imgtabs", $params)); exit; } else { new NotifyWidgetFailure(sprintf(_T("Failed to reset synchronise state.", "imaging"))); } } if ($ret['id'] == $SYNCHROSTATE_RUNNING) { $p = new PageGenerator(sprintf(_T("%s's profile imaging", 'imaging'), $group->getName())); $sidemenu->forceActiveItem("index"); $p->setSideMenu($sidemenu); $p->display(); $a_href_open = "<a href=''>"; $msg = sprintf(_T("Generating boot menu... Please wait or reload the page %shere%s.<br/>", "imaging"), $a_href_open, '</a>'); $t1 = new TitleElement($msg, 3); $t1->display(); $msg = sprintf(_T("If the processing exceeds 5 minutes, please reset the synchro state of this computer.", "imaging")); $t2 = new TitleElement($msg, 3); $t2->display(); $f = new ValidatingForm(); $f->add(new HiddenTpl("gid"), array("value" => $params['target_uuid'], "hide" => True)); $f->add(new HiddenTpl("groupname"), array("value" => $params['target_name'], "hide" => True)); $f->add(new HiddenTpl("type"), array("value" => $params['type'], "hide" => True)); $f->addButton("bresetsynchrostate", _T("Reset Synchro state", "imaging"));
$msc_host = new RenderedMSCHost($machine, web_probe_order_on_demand()); $msc_host->ajaxDisplay(); } } $msc_actions = new RenderedMSCActions(msc_script_list_file(), $machine->hostname, array('uuid' => $_GET['uuid'])); $msc_actions->display(); $ajax = new AjaxFilter(urlStrRedirect("base/computers/ajaxPackageFilter"), "container", array("uuid" => $machine->uuid, "hostname" => $machine->hostname)); $ajax->display(); $ajax->displayDivToUpdate(); } /* group display */ if (!isset($_GET['badvanced']) && isset($_GET['gid']) && !isset($_POST['launchAction']) && !isset($_GET['uuid'])) { $group = new Group($_GET['gid'], true); if ($group->exists != False) { // Display the actions list $msc_actions = new RenderedMSCActions(msc_script_list_file(), $group->getName(), array("gid" => $_GET['gid'])); $msc_actions->display(); $ajax = new AjaxFilter(urlStrRedirect("base/computers/ajaxPackageFilter"), "container", array("gid" => $_GET['gid'])); $ajax->display(); print "<br/>"; $ajax->displayDivToUpdate(); } else { $msc_host = new RenderedMSCGroupDontExists(); $msc_host->headerDisplay(); } } ?> <style> .primary_list { } .secondary_list { background-color: #e1e5e6 !important;
$msc_host->headerDisplay(); } else { $ret = xmlrpc_getProfileSynchroState($params['target_uuid']); if (isset($_POST["bresetsynchrostate"])) { if (xmlrpc_resetSynchroState($params['target_uuid'], $params['type'])) { new NotifyWidgetSuccess(sprintf(_T("Reset synchronisation state for %s (%s) succeed", "imaging"), $params['target_name'], $params['target_uuid'])); header("Location: ".urlStrRedirect("base/computers/imgtabs", $params)); exit; } else { new NotifyWidgetFailure(sprintf(_T("Failed to reset synchronise state.", "imaging"))); } } if ($ret['id'] == $SYNCHROSTATE_RUNNING) { $p = new PageGenerator(sprintf(_T("%s's profile imaging", 'imaging'), $group->getName())); $sidemenu->forceActiveItem("index"); $p->setSideMenu($sidemenu); $p->display(); $a_href_open = "<a href=''>"; $msg = sprintf(_T("The synchro is currently running, please wait or reload the page %shere%s.<br/>", "imaging"), $a_href_open, '</a>'); $t1 = new TitleElement($msg, 3); $t1->display(); $msg = sprintf(_T("If the synchro runs since more than 5 minutes, please reset the synchro state of this computer's menu.", "imaging")); $t2 = new TitleElement($msg, 3); $t2->display(); $f = new ValidatingForm(); $f->add(new HiddenTpl("gid"), array("value" => $params['target_uuid'], "hide" => True)); $f->add(new HiddenTpl("groupname"), array("value" => $params['target_name'], "hide" => True));
/** * Returns an array of active filters * * @param array $options The options array * @return array */ public static function getActiveFilters($options) { $prj_id = Auth::getCurrentProject(); $filter_info = self::getFiltersInfo(); $return = array(); foreach ($filter_info as $filter_key => $filter) { $display = false; if (isset($filter['param']) && isset($options[$filter['param']])) { $filter_details = $options[$filter['param']]; } if (isset($filter['is_custom'])) { // custom fields $fld_id = $filter['fld_id']; if (!isset($options['custom_field'][$fld_id]) || empty($options['custom_field'][$fld_id])) { continue; } elseif ($filter['fld_type'] == 'date' && empty($options['custom_field'][$fld_id]['Year'])) { continue; } elseif ($filter['fld_type'] == 'integer') { if (!isset($options['custom_field'][$fld_id]['value']) || empty($options['custom_field'][$fld_id]['value'])) { continue; } else { $filter_details = $options['custom_field'][$fld_id]; switch ($filter_details['filter_type']) { case 'ge': $display = ev_gettext('%1$s or greater', $filter_details['value']); break; case 'le': $display = ev_gettext('%1$s or less', $filter_details['value']); break; case 'gt': $display = ev_gettext('Greater than %1$s', $filter_details['value']); break; case 'lt': $display = ev_gettext('Less than %1$s', $filter_details['value']); break; default: $display = $filter_details['value']; } } } elseif (in_array($filter['fld_type'], array('multiple', 'combo'))) { $display = implode(', ', Custom_Field::getOptions($fld_id, $options['custom_field'][$fld_id])); } else { $display = $options['custom_field'][$fld_id]; } } elseif (!isset($options[$filter['param']]) || empty($options[$filter['param']]) || in_array($filter_key, array('sort_order', 'sort_by', 'rows', 'search_type'))) { continue; } elseif (isset($filter['is_date']) && $filter['is_date'] == true) { if (!empty($filter_details['Year']) || isset($filter_details['time_period'])) { switch ($filter_details['filter_type']) { case 'in_past': $display = ev_gettext('In Past %1$s hours', $filter_details['time_period']); break; case 'null': $display = ev_gettext('Is NULL'); break; case 'between': $end = $options[$filter['param'] . '_end']; $display = ev_gettext('Is between %1$s-%2$s-%3$s AND %4$s-%5$s-%6$s', $filter_details['Year'], $filter_details['Month'], $filter_details['Day'], $end['Year'], $end['Month'], $end['Day']); break; case 'greater': $display = ev_gettext('Is greater than %1$s-%2$s-%3$s', $filter_details['Year'], $filter_details['Month'], $filter_details['Day']); break; case 'less': $display = ev_gettext('Is less than %1$s-%2$s-%3$s', $filter_details['Year'], $filter_details['Month'], $filter_details['Day']); } } } elseif ($filter['param'] == 'status') { $statuses = Status::getAssocStatusList($prj_id); $display = $statuses[$filter_details]; } elseif ($filter['param'] == 'category') { $categories = Category::getAssocList($prj_id); if (is_array($filter_details)) { $active_categories = array(); foreach ($filter_details as $category) { $active_categories[] = $categories[$category]; } $display = implode(', ', $active_categories); } else { $display = $categories[$filter_details]; } } elseif ($filter['param'] == 'priority') { $priorities = Priority::getAssocList($prj_id); $display = $priorities[$filter_details]; } elseif ($filter['param'] == 'severity') { $severities = Severity::getAssocList($prj_id); $display = $severities[$filter_details]; } elseif ($filter['param'] == 'users') { if ($filter_details == -1) { $display = ev_gettext('un-assigned'); } elseif ($filter_details == -2) { $display = ev_gettext('myself and un-assigned'); } elseif ($filter_details == -3) { $display = ev_gettext('myself and my group'); } elseif ($filter_details == -4) { $display = ev_gettext('myself, un-assigned and my group'); } elseif (substr($filter_details, 0, 3) == 'grp') { $display = ev_gettext('%1$s Group', Group::getName(substr($filter_details, 4))); } else { $display = User::getFullName($filter_details); } } elseif ($filter['param'] == 'hide_closed') { if ($filter_details == true) { $display = ev_gettext('Yes'); } } elseif ($filter['param'] == 'reporter') { $display = User::getFullName($filter_details); } elseif ($filter['param'] == 'release') { $display = Release::getTitle($filter_details); } elseif ($filter['param'] == 'customer_id') { try { $crm = CRM::getInstance($prj_id); $customer = $crm->getCustomer($filter_details); $display = $customer->getName(); } catch (CRMException $e) { $display = $filter_details; } } elseif ($filter['param'] == 'product') { $display = Product::getTitle($filter_details); } else { $display = $filter_details; } if ($display != false) { $return[$filter['title']] = array('value' => $display, 'remove_link' => 'list.php?view=clearandfilter&' . self::buildUrl($filter_info, $options, $filter_key, true)); } } return $return; }
/** * donne les groupes d'utilisateurs utilisables par une fundation pour faire sa tambouille * @return String $csvGroups */ public function getAvailableGroups() { $rtn = new ComplexData(); $req = $this->db->query("SELECT grp_id, grp_name FROM t_group_grp WHERE (fun_id = '%u' OR grp_public = '1') AND grp_removed = '0';", array($this->Fundation->getId())); while ($don = $this->db->fetchArray($req)) { $grp = new Group($don['grp_id']); $rtn->addLine(array($don['grp_id'], $grp->getName())); } return $rtn->csvArrays(); }
function send_mail($title, $text) { require_once ROOT_DIR . 'functions/mail/class.phpmailer.php'; require ROOT_DIR . 'functions/mail/class.smtp.php'; // get global user object global $user; $userEmail = nl2br("Email: " . $user->getEmail() . ",\n"); $userTitle = nl2br($user->getTitle() . " "); $userName = nl2br($user->getGivenname() . ",\n"); $userStudentGroups = ""; $studentGroups = get_user_student_groups($user->getId()); if (!empty($studentGroups)) { $userStudentGroups = nl2br("Студент в:\n"); $i = 1; foreach ($studentGroups as $group_id) { $group = new Group(); $group->get_from_db($group_id); $userStudentGroups .= nl2br($i . ". " . $group->getName() . ",\n"); $i++; } } $userStaffGroups = ""; $staffGroups = get_user_staff_groups($user->getId()); if (!empty($staffGroups)) { $userStaffGroups = nl2br("Служител в:\n"); $i = 1; foreach ($staffGroups as $group_id) { $group = new Group(); $group->get_from_db($group_id); $userStaffGroups .= nl2br($i . ". " . $group->getName() . ",\n"); $i++; } } // format the message $text .= nl2br("\n\n" . "Съобщението е изпратено от:\n") . $userTitle . $userName . $userEmail . $userStudentGroups . $userStaffGroups; // set message data $mailFrom = '*****@*****.**'; $mailFromName = 'SU Survey'; // get admin email data $admin_email_data = get_admin_email_data(); $mail = new PHPMailer(); $mail->IsSMTP(); // Set mailer to use SMTP $mail->CharSet = 'utf-8'; // Set the message charset $mail->Host = 'mailbox.uni-sofia.bg'; // Specify main and backup server $mail->Port = 465; // Specify server port '465' or '587' $mail->SMTPAuth = true; // Enable SMTP authentication $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail $mail->Username = '******'; // SMTP username $mail->Password = '******'; // SMTP password $mail->From = "{$mailFrom}"; // Sender email $mail->FromName = "{$mailFromName}"; // Sender name foreach ($admin_email_data as $admin) { // Add a recipient $AddAddress = $admin['email']; $AddName = $admin['givenname']; $mail->AddAddress("{$AddAddress}", "{$AddName}"); } $mail->WordWrap = 50; // set line lenght $mail->AddAttachment(ROOT_DIR . 'images/su_logo.png', 'SU_Logo.png'); // Optional attachments name $mail->IsHTML(true); // Set email format to HTML $mail->Subject = "{$title}"; // set message subject $mail->Body = "{$text}"; // set message body $mail->AltBody = "{$text}"; // set alternative message body $mail->SMTPDebug = 1; // set smtp debug to show eror if (!$mail->Send()) { $mail_error = $mail->ErrorInfo; $error = "User: '******' failed sending message: '{$mail_error}'"; error($error); // set message cookie $cookie_key = 'msg'; $cookie_value = 'Съжаляваме, за причиненото неудобство!<br/>Възникна техническа грешка, поради която съобщението не може да бъде изпратено!'; setcookie($cookie_key, $cookie_value, time() + 1); header('location:' . ROOT_DIR . '?page=survey_role'); } $info = "User: '******' sent message '{$title}'"; info($info); }
/** * Method used to get the list of users available in the system. * * @param boolean $show_customers Whether to return customers or not * @return array The list of users */ public static function getList($show_customers, $show_inactive) { // FIXME: what about other statuses like "pending"? $stmt = 'SELECT * FROM {{%user}} WHERE usr_id != ?'; $params = array(APP_SYSTEM_USER_ID); if (!$show_inactive) { $stmt .= ' AND usr_status != ?'; $params[] = 'inactive'; } $stmt .= ' ORDER BY usr_status ASC, usr_full_name ASC'; try { $res = DB_Helper::getInstance()->getAll($stmt, $params); } catch (DbException $e) { return ''; } $data = array(); foreach ($res as &$row) { $roles = Project::getAssocList($row['usr_id'], false, true); $role = current($roles); $role = $role['pru_role']; if ($show_customers == false && (@$roles[Auth::getCurrentProject()]['pru_role'] == self::getRoleID('Customer') || count($roles) == 1 && $role == self::getRoleID('Customer'))) { continue; } $row['roles'] = $roles; if (!empty($row['usr_grp_id'])) { $row['group_name'] = Group::getName($row['usr_grp_id']); } if (!empty($row['usr_par_code'])) { $row['partner_name'] = Partner::getName($row['usr_par_code']); } // add email aliases $row['aliases'] = User::getAliases($row['usr_id']); $data[] = $row; } return $data; }
// Imaging group if (in_array("imaging", $_SESSION["modulesList"])) { // Get Current Location include 'modules/imaging/includes/xmlrpc.inc.php'; $location = xmlrpc_getProfileLocation($id); } } $group->delete(); if ($type == 1) { // Imaging group if (in_array("imaging", $_SESSION["modulesList"])) { // Synchro Location xmlrpc_synchroLocation($location); } header("Location: " . urlStrRedirect("imaging/manage/list{$stype}")); new NotifyWidgetSuccess(sprintf(_T("Imaging group %s was successfully deleted", "imaging"), $group->getName())); } else { // simple group header("Location: " . urlStrRedirect("base/computers/list{$stype}")); new NotifyWidgetSuccess(sprintf(_T("Group %s was successfully deleted", "imaging"), $group->getName())); } exit; } ?> <h2><?php echo $title; ?> </h2> <form action="<?php
require_once 'modules/msc/includes/machines.inc.php'; require_once 'modules/msc/includes/widgets.inc.php'; require_once 'modules/msc/includes/utilities.php'; $group = null; if (!empty($_GET['gid'])) { require_once "modules/dyngroup/includes/utilities.php"; require_once "modules/dyngroup/includes/querymanager_xmlrpc.php"; require_once "modules/dyngroup/includes/xmlrpc.php"; require_once "modules/dyngroup/includes/dyngroup.php"; $group = new Group($_GET['gid'], true); } require_once "modules/msc/includes/package_api.php"; if ($_GET['uuid']) { $label = new RenderedLabel(3, sprintf(_T('These packages can be installed on computer "%s"', 'msc'), $_GET['hostname'])); } else { $label = new RenderedLabel(3, sprintf(_T('These packages can be installed on group "%s"', 'msc'), $group->getName())); } $label->display(); echo "<br><br>"; function getConvergenceStatus($mountpoint, $pid, $group_convergence_status, $associateinventory) { $return = 0; if ($associateinventory) { if (array_key_exists($mountpoint, $group_convergence_status)) { if (array_key_exists($pid, $group_convergence_status[$mountpoint])) { if ($group_convergence_status[$mountpoint][$pid]) { $return = 1; } else { $return = 2; } }
/** * Display notification registered for a group * * @since version 0.83 * * @param $group Group object * * @return nothing **/ static function showForGroup(Group $group) { global $DB; if (!Notification::canView()) { return false; } $sql = "SELECT `glpi_notifications`.`id`\n FROM `glpi_notificationtargets`\n INNER JOIN `glpi_notifications`\n ON (`glpi_notifications`.`id` = `glpi_notificationtargets`.`notifications_id`)\n WHERE `items_id` = '" . $group->getID() . "'\n AND (`type` = '" . Notification::SUPERVISOR_GROUP_TYPE . "'\n OR `type` = '" . Notification::GROUP_TYPE . "') " . getEntitiesRestrictRequest('AND', 'glpi_notifications', '', '', true); $req = $DB->request($sql); echo "<table class='tab_cadre_fixe'>"; if ($req->numrows()) { echo "<tr><th>" . __('Name') . "</th>"; echo "<th>" . Entity::getTypeName(1) . "</th>"; echo "<th>" . __('Active') . "</th>"; echo "<th>" . __('Type') . "</th>"; echo "<th>" . __('Notification method') . "</th>"; echo "<th>" . NotificationEvent::getTypeName(1) . "</th>"; echo "<th>" . NotificationTemplate::getTypeName(1) . "</th></tr>"; $notif = new Notification(); Session::initNavigateListItems('Notification', sprintf(__('%1$s = %2$s'), Group::getTypeName(1), $group->getName())); foreach ($req as $data) { Session::addToNavigateListItems('Notification', $data['id']); if ($notif->getFromDB($data['id'])) { echo "<tr class='tab_bg_2'><td>" . $notif->getLink(); echo "</td><td>" . Dropdown::getDropdownName('glpi_entities', $notif->getEntityID()); echo "</td><td>" . Dropdown::getYesNo($notif->getField('is_active')) . "</td><td>"; $itemtype = $notif->getField('itemtype'); if ($tmp = getItemForItemtype($itemtype)) { echo $tmp->getTypeName(1); } else { echo " "; } echo "</td><td>" . Notification::getMode($notif->getField('mode')); echo "</td><td>" . NotificationEvent::getEventName($itemtype, $notif->getField('event')); echo "</td>" . "<td>" . Dropdown::getDropdownName('glpi_notificationtemplates', $notif->getField('notificationtemplates_id')); echo "</td></tr>"; } } } else { echo "<tr class='tab_bg_2'><td class='b center'>" . __('No item found') . "</td></tr>"; } echo "</table>"; }
/** * Sets the group of the issue. * * @param integer $issue_id The ID of the issue * @param integer $group_id The ID of the group * @return integer 1 if successful, -1 or -2 otherwise */ public function setGroup($issue_id, $group_id) { $issue_id = (int) $issue_id; $group_id = (int) $group_id; $current = self::getDetails($issue_id); if ($current['iss_grp_id'] == $group_id) { return -2; } $stmt = 'UPDATE {{%issue}} SET iss_grp_id = ? WHERE iss_id = ?'; try { DB_Helper::getInstance()->query($stmt, array($group_id, $issue_id)); } catch (DbException $e) { return -1; } $usr_id = Auth::getUserID(); if (!$usr_id) { $usr_id = APP_SYSTEM_USER_ID; } History::add($issue_id, $usr_id, 'group_changed', 'Group changed ({changes}) by {user}', array('changes' => History::formatChanges(Group::getName($current['iss_grp_id']), Group::getName($group_id)), 'user' => User::getFullName($usr_id))); return 1; }
/** * Display a single line of planning filter. * See self::showPlanningFilter function * * @param $filter_key : identify curent line of filter * @param $filter_data : array of filter date, must contains : * * 'show_delete' (boolean): show delete button * * 'filter_color_index' (integer): index of the color to use in self::$palette_bg * @param $options * * @return Nothing (display function) */ static function showSingleLinePlanningFilter($filter_key, $filter_data, $options = array()) { global $CFG_GLPI; $params['show_delete'] = true; $params['filter_color_index'] = 0; if (is_array($options) && count($options)) { foreach ($options as $key => $val) { $params[$key] = $val; } } $actor = explode('_', $filter_key); $uID = 0; $gID = 0; if ($filter_data['type'] == 'user') { $uID = $actor[1]; $user = new User(); $user->getFromDB($actor[1]); $title = $user->getName(); } else { if ($filter_data['type'] == 'group_users') { $group = new Group(); $group->getFromDB($actor[1]); $title = $group->getName(); } else { if ($filter_data['type'] == 'group') { $gID = $actor[1]; $group = new Group(); $group->getFromDB($actor[1]); $title = $group->getName(); } else { if ($filter_data['type'] == 'event_filter') { $title = $filter_key::getTypeName(); } } } } echo "<li event_type='" . $filter_data['type'] . "'\n event_name='{$filter_key}'\n class='" . $filter_data['type'] . "'>"; Html::showCheckbox(array('name' => 'filters[]', 'value' => $filter_key, 'title' => $title, 'checked' => $filter_data['display'])); if ($filter_data['type'] != 'event_filter') { $icon_type = explode('_', $filter_data['type']); echo "<img class='actor_icon' src='" . $CFG_GLPI['root_doc'] . "/pics/" . $icon_type[0] . ".png'>"; } echo "<label for='{$filter_key}'>{$title}</label>"; $color = self::$palette_bg[$params['filter_color_index']]; if (isset($filter_data['color']) && !empty($filter_data['color'])) { $color = $filter_data['color']; } else { $params['filter_color_index']++; if (!isset(self::$palette_bg[$params['filter_color_index']])) { $params['filter_color_index'] = 0; $color = self::$palette_bg[$params['filter_color_index']]; } } if ($filter_data['type'] != 'event_filter') { echo "<span class='filter_option'>"; echo "<img class='pointer' src='" . $CFG_GLPI['root_doc'] . "/pics/down.png' />"; echo "<ul>"; if ($params['show_delete']) { echo "<li class='delete_planning' value='{$filter_key}'>" . __("Delete") . "</li>"; } if ($filter_data['type'] != 'group_users') { $url = parse_url($CFG_GLPI["url_base"]); $port = 80; if (isset($url['port'])) { $port = $url['port']; } else { if (isset($url['scheme']) && $url["scheme"] == 'https') { $port = 443; } } $cal_url = "/front/planning.php?genical=1&uID=" . $uID . "&gID=" . $gID . "&entities_id=" . $_SESSION["glpiactive_entity"] . "&is_recursive=" . $_SESSION["glpiactive_entity_recursive"] . "&token=" . User::getPersonalToken(Session::getLoginUserID(true)); echo "<li><a target='_blank' href='" . $CFG_GLPI["root_doc"] . "{$cal_url}'>" . _sx("button", "Export") . " - " . __("Ical") . "</a></li>"; echo "<li><a target='_blank' href='webcal://" . $url['host'] . ":{$port}" . (isset($url['path']) ? $url['path'] : '') . "{$cal_url}'>" . _sx("button", "Export") . " - " . __("Webcal") . "</a></li>"; } echo "</ul>"; echo "</span>"; } // colors not for groups if ($filter_data['type'] != 'group_users') { echo "<span class='color_input'>"; Html::showColorField($filter_key . "_color", array('value' => $color)); echo "</span>"; } if ($filter_data['type'] == 'group_users') { echo "<span class='toggle pointer' />"; } if ($filter_data['type'] == 'group_users') { echo "<ul class='group_listofusers filters'>"; foreach ($filter_data['users'] as $user_key => $userdata) { self::showSingleLinePlanningFilter($user_key, $userdata, array('show_delete' => false, 'filter_color_index' => $params['filter_color_index'])); } echo "</ul>"; } echo "</li>"; }
$uuid = $_GET['uuid']; } else { $uuid = null; } if (!empty($_GET['gid'])) { $gid = $_GET['gid']; } else { $gid = null; } $pid = $_GET['pid']; $p_api = new ServerAPI(); $p_api->fromURI($_GET["papi"]); $cible = $hostname; if ($gid) { $group = new Group($_GET['gid'], true); $cible = $group->getName(); } $params["papi"] = $p_api; $params["name"] = $hostname; $params["hostname"] = $hostname; $params["uuid"] = $uuid; $params["gid"] = $gid; $params["from"] = $from; $params["pid"] = $pid; $params["ltitle"] = get_def_package_label($name, $version); $params["create_directory"] = 'on'; $params["start_script"] = 'on'; $params["clean_on_success"] = 'on'; $params["do_reboot"] = getPackageHasToReboot($p_api, $_GET["pid"]) == 1 ? 'on' : ''; $params["do_wol"] = web_def_awake() == 1 ? 'on' : ''; $params["do_inventory"] = web_def_inventory() == 1 ? 'on' : '';
/** * Edit a group properties and rights. * @param string $groupname Name of a group to be edited. * @param string $error message name of the error to display */ function editGroupForm($groupID = 0, $error = '') { global $wgOut; if ($error) { $errText = wfMsg($error); $wgOut->addHTML("<p class='error'>{$errText}</p>"); } if ($this->mRequest->getVal('edit')) { // fetch data if we edit a group $g = Group::newFromID($groupID); $fieldname = 'editgroup'; } else { // default data when we add a group $g = new Group(); $fieldname = 'addgroup'; } $gName = htmlspecialchars($g->getName()); $gDescription = htmlspecialchars($g->getDescription()); $wgOut->addHTML("<form name=\"editGroup\" action=\"{$this->action}\" method=\"post\">\n" . '<input type="hidden" name="editgroup-oldname" value="' . $gName . "\" />\n"); $wgOut->addHTML($this->fieldset($fieldname, '<p>' . wfMsg('groups-editgroup-preamble') . "</p>\n" . $this->textbox('editgroup-name', $gName) . $this->textareabox('editgroup-description', $gDescription) . '<br /><table border="0" align="center"><tr><td>' . HTMLSelectRights($g->getRights()) . '</td></tr></table>' . "\n" . '<input type="submit" name="savegroup" value="' . wfMsg('savegroup') . '" />')); $wgOut->addHTML("</form>\n"); }
/** * @inheritdoc */ public function visitGroup(Group $role) { echo "Role: " . $role->getName(); }
exit; } ?> <h2><?php echo _T("Remove a computer", "dyngroup"); ?> </h2> <?php ?> <form action="<?php echo urlStr("base/computers/remove_machine", array('gid' => $gid, 'hostname' => $machine, 'objectUUID' => $uuid)); ?> " method="post"> <p> <? printf(_T("You will remove computer <b>%s</b> from group <b>%s</b>.", "dyngroup"), $machine, $group->getName()); ?> </p> <input name='valid' type="submit" class="btnPrimary" value="<?php echo _T("Remove Computer", "dyngroup"); ?> " /> <input name="bback" type="submit" class="btnSecondary" value="<?php echo _T("Cancel", "dyngroup"); ?> " onClick="new Effect.Fade('popup'); return false;"/> </form>