/** * 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(); }