/** * Display the typologycriteria form, typology side * * @param PluginTypologyTypology $typo * @param bool $showAdd */ public static function showForTypology(PluginTypologyTypology $typo, $showAdd = true) { $ID = $typo->getField('id'); $crit = new PluginTypologyTypologyCriteria(); $canedit = $typo->can($ID, 'w'); $rand = mt_rand(); if ($canedit) { if ($showAdd) { echo "<div class='center first-bloc'>"; echo "<form name='typocrit_form{$rand}' id='typocrit_form{$rand}' method='post' action='"; echo Toolbox::getItemTypeFormURL(__CLASS__) . "'>"; echo "<table class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_1'><th colspan='7'>" . __('Add a criterion', 'typology') . "</tr>"; echo "<tr class='tab_bg_2'><td class='center'>" . __('Name') . "</td>"; echo "<input type='hidden' name='plugin_typology_typologies_id' value='{$ID}'>"; echo "<input type='hidden' name='entities_id' value='" . $typo->getEntityID() . "'>"; echo "<input type='hidden' name='is_recursive' value='" . $typo->isRecursive() . "'>"; echo "</td><td class='center'>"; Html::autocompletionTextField($crit, "name"); echo "</td><td class='center'>" . __('Item') . "</td><td class='center'>"; PluginTypologyTypologyCriteria::dropdownItemtype(); echo "</td><td>" . __('Logical operator') . "</td><td>"; Dropdown::showFromArray('link', array(0 => __('and'), 1 => __('or'))); echo "</td><td>"; echo "<input type='hidden' name='is_active' value='1'>"; echo "<input type='submit' name='add' value=\"" . _sx('button', 'Add') . "\" class='submit'>"; echo "</td></tr>"; echo "</table>"; Html::closeForm(); echo "</div>"; } // echo "<form name='massiveaction_form$rand' id='massiveaction_form$rand' method='post' // action=\"../ajax/massiveaction.php\">"; $restrict = "`plugin_typology_typologies_id` = '{$ID}'\n ORDER BY `itemtype`"; $criterias = getAllDatasFromTable('glpi_plugin_typology_typologycriterias', $restrict); Session::initNavigateListItems("PluginTypologyTypologyCriteria", PluginTypologyTypology::getTypeName(1) . " = " . $typo->getName()); if (!empty($criterias)) { echo "<div class='spaced'>"; if ($canedit) { Html::openMassiveActionsForm('mass' . __CLASS__ . $rand); $massiveactionparams = array(); Html::showMassiveActions(__CLASS__, $massiveactionparams); } echo "<table class='tab_cadre_fixe'>"; if ($canedit) { echo "<tr>"; echo "<th width='10'>" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand) . "</th>"; echo "<th colspan=5>" . __('Criteria\'s list', 'typology') . "</th>"; echo "</tr>"; } foreach ($criterias as $criteria) { Session::addToNavigateListItems("PluginTypologyTypologyCriteria", $criteria["id"]); if ($showAdd) { $colspan = 6; } else { $colspan = 5; } if ($showAdd) { $type = 'tab_cadre_fixehov'; } else { $type = 'tab_cadre'; } echo "<div class='center'><table class={$type}>"; if ($showAdd) { echo "<tr><th colspan={$colspan}>" . PluginTypologyTypologyCriteria::getTypeName(1) . "</th>"; } else { echo "<tr><th colspan={$colspan}>" . __('Detail of the assigned typology', 'typology') . "</th>"; } echo "</tr>"; echo "<tr class='tab_bg_2'>"; if ($showAdd) { echo "<th colspan='2'>" . __('Name') . "</th>"; } echo "<th class='center b'>" . __('Active') . "</th>"; echo "<th class='center b'>" . __('Item') . "</th>"; echo "<th class='center b'>" . __('Logical operator') . "</th>"; echo "<th class='center b'>" . PluginTypologyTypologyCriteriaDefinition::getTypeName(2) . "</th>"; echo "</tr>"; echo "<tr class='tab_bg_2'>"; if ($canedit && $showAdd) { echo "<td width='10'>"; // echo "<input type='checkbox' name='item[".$criteria["id"]."]' value='1'>"; Html::showMassiveActionCheckBox(__CLASS__, $criteria["id"]); echo "</td>"; } echo "<td width='10%'>"; if ($canedit) { echo "<a href='" . Toolbox::getItemTypeFormURL('PluginTypologyTypologyCriteria') . "?id=" . $criteria["id"] . "'>"; } echo $criteria["name"]; if (empty($criteria["name"])) { echo "(" . $criteria['id'] . ")"; } if ($canedit) { echo "</a>"; } echo "</td>"; echo "<td width='10%' align='center'>"; echo Dropdown::getYesNo($criteria['is_active']); echo "</td>"; $item = new $criteria['itemtype'](); echo "<td width='10%'>" . $item::getTypeName(0) . "</td>"; echo "<td width='10%' align='center'>"; if ($criteria['link'] == 0) { echo __('and'); } else { if ($criteria['link'] == 1) { echo __('or'); } } echo "</td><td>"; $condition = "`glpi_plugin_typology_typologycriteriadefinitions`.`plugin_typology_typologycriterias_id` " . " = '" . $criteria['id'] . "' ORDER BY `glpi_plugin_typology_typologycriteriadefinitions`.`id`"; $definitions = getAllDatasFromTable('glpi_plugin_typology_typologycriteriadefinitions', $condition); if (!empty($definitions)) { echo "<table class='tab_cadre' width='100%'>"; echo "<tr>"; echo "<th class='center b' width='33%'>" . _n('Field', 'Fields', 2) . "</th>"; echo "<th class='center b' width='33%'>" . __('Logical operator') . "</th>"; echo "<th class='center b'>" . __('Value') . "</th>"; echo "</tr>"; foreach ($definitions as $definition) { echo "<tr>"; $definition['itemtype'] = $criteria['itemtype']; PluginTypologyTypologyCriteriaDefinition::showMinimalDefinitionForm($definition); echo "</tr>"; } echo "</table>"; } echo "</td></tr>"; } echo "</table>"; if ($canedit) { $paramsma['ontop'] = false; Html::showMassiveActions(__CLASS__, $paramsma); Html::closeForm(); } echo "</div>"; // if ($showAdd){ // Html::openArrowMassives("massiveaction_form$rand",true); // self::dropdownMassiveAction($rand); // Html::closeArrowMassives(array()); // } } } // Html::closeForm(); }
/** * Display the add Definition form * * @param $typocrit_id typocrit ID **/ static function showForCriteria(PluginTypologyTypologyCriteria $typocrit) { global $DB; $typocrit_id = $typocrit->getField('id'); $query = "SELECT `glpi_plugin_typology_typologycriteriadefinitions`.`id`,\n `glpi_plugin_typology_typologycriterias`.`itemtype`,\n `glpi_plugin_typology_typologycriterias`.`link`,\n `glpi_plugin_typology_typologycriteriadefinitions`.`field`,\n `glpi_plugin_typology_typologycriteriadefinitions`.`action_type`,\n `glpi_plugin_typology_typologycriteriadefinitions`.`value`,\n `glpi_plugin_typology_typologycriteriadefinitions`.`plugin_typology_typologycriterias_id`\n FROM `glpi_plugin_typology_typologycriteriadefinitions`\n LEFT JOIN `glpi_plugin_typology_typologycriterias`\n ON (`glpi_plugin_typology_typologycriterias`.`id`\n = `glpi_plugin_typology_typologycriteriadefinitions`.`plugin_typology_typologycriterias_id`)\n WHERE `plugin_typology_typologycriterias_id` = '" . $typocrit_id . "'\n ORDER BY `glpi_plugin_typology_typologycriteriadefinitions`.`id`"; echo "<div class='firstbloc'>"; if ($result = $DB->query($query)) { echo "<form method='post' action='./typologycriteria.form.php'>"; echo "<table class='tab_cadre_fixe'>"; echo "<tr><th colspan='6'>" . PluginTypologyTypologyCriteriaDefinition::getTypeName(1) . "</tr>"; echo "<input type='hidden' name='plugin_typology_typologycriterias_id' value='{$typocrit_id}'>"; echo "<input type='hidden' name='entities_id' value='" . $typocrit->getField('entities_id') . "'>"; echo "<input type='hidden' name='is_recursive' value='" . $typocrit->getField('is_recursive') . "'>"; echo "<tr class='tab_bg_1 center'>"; echo "<td>" . _n('Field', 'Fields', 2) . "</td><td>"; PluginTypologyTypologyCriteriaDefinition::dropdownFields($typocrit_id); echo "</td>"; echo "<td>"; echo "<span id='span_actions' name='span_actions'></span></td>"; echo "<td>"; echo "<span id='span_values' name='span_values'></span></td>"; echo "<td class='tab_bg_2 left' width='80px'>"; echo "<input type='submit' name='add_action' value=\"" . _sx('button', 'Add') . "\" class='submit'>"; echo "</td></tr>\n"; echo "</table>"; Html::closeForm(); echo "</div>"; if ($DB->num_fields($result) > 0) { if (plugin_typology_haveRight('typology', 'w')) { echo "<form name='critDef_form' id='critDef_form' method='post' action='./typologycriteria.form.php'>"; } echo "<div class='center'><table class='tab_cadre_fixe'>"; echo "<tr><th colspan='4'>" . PluginTypologyTypologyCriteriaDefinition::getTypeName(2) . "</th></tr>"; echo "<tr class='tab_bg_1 center'>"; echo "<th colspan='2'>" . _n('Field', 'Fields', 2) . "</th>"; echo "<th class='center b'>" . __('Logical operator') . "</th>"; echo "<th class='center b'>" . __('Value') . "</th>"; echo "</tr>"; while ($ligne = $DB->fetch_array($result)) { echo "<tr class='tab_bg_2'>"; if (plugin_typology_haveRight('typology', 'w')) { echo "<td width='10'>"; echo "<input type='checkbox' name='item[" . $ligne["id"] . "]' value='1'>"; echo "<input type='hidden' name='plugin_typology_typologycriterias_id' value='{$typocrit_id}'>"; echo "</td>"; } self::showMinimalDefinitionForm($ligne); echo "</tr>"; } if (plugin_typology_haveRight('typology', 'w')) { Html::openArrowMassives("critDef_form", true); Html::closeArrowMassives(array('delete_action' => __('Delete permanently'))); } echo "</table></div>"; if (plugin_typology_haveRight('typology', 'w')) { Html::closeForm(); } } } }