static function displayAjaxValues($config, $request_data, $rand, $mode) { global $CFG_GLPI; $pfDeployPackage = new PluginFusioninventoryDeployPackage(); $pfDeployOrder = new PluginFusioninventoryDeployOrder(); if (isset($request_data['orders_id'])) { $pfDeployOrder->getFromDB($request_data['orders_id']); $pfDeployPackage->getFromDB($pfDeployOrder->fields['plugin_fusioninventory_deploypackages_id']); } else { $pfDeployPackage->getEmpty(); } /* * Get type from request params */ $type = NULL; if ($mode === 'create') { $type = $request_data['values']; } else { $type = $config['type']; $config_data = $config['data']; } /* * Set default values */ $value_type_1 = "input"; $value_1 = ""; $value_2 = ""; $retChecks = NULL; /* * set values from element's config in 'edit' mode */ switch ($type) { case 'move': case 'copy': $value_label_1 = __("From", 'fusioninventory'); $name_label_1 = "from"; $value_label_2 = __("To", 'fusioninventory'); $name_label_2 = "to"; if ($mode === 'edit') { $value_1 = $config_data['from']; $value_2 = $config_data['to']; } break; case 'cmd': $value_label_1 = __("exec", 'fusioninventory'); $name_label_1 = "exec"; $value_label_2 = FALSE; $value_type_1 = "textarea"; if ($mode === 'edit') { $value_1 = $config_data['exec']; if (isset($config_data['retChecks'])) { $retChecks = $config_data['retChecks']; } } break; case 'delete': case 'mkdir': $value_label_1 = __("path", 'fusioninventory'); $name_label_1 = "list[]"; $value_label_2 = FALSE; if ($mode === 'edit') { /* * TODO : Add list input like `retChecks` on `mkdir` and `delete` * because those methods are defined as list in specification */ $value_1 = array_shift($config_data['list']); } break; default: return FALSE; } echo "<table class='package_item'>"; echo "<tr>"; echo "<th>{$value_label_1}</th>"; echo "<td>"; switch ($value_type_1) { case "input": echo "<input type='text' name='{$name_label_1}' value='{$value_1}' />"; break; case "textarea": echo "<textarea name='{$name_label_1}' rows='3'>{$value_1}</textarea>"; break; } echo "</td>"; echo "</tr>"; if ($value_label_2 !== FALSE) { echo "<tr>"; echo "<th>{$value_label_2}</th>"; echo "<td><input type='text' name='{$name_label_2}' value='{$value_2}'/></td>"; echo "</tr>"; } //specific case for cmd : add retcheck form if ($type == "cmd") { echo "<tr>"; echo "<th>" . __("Execution checks", 'fusioninventory'); PluginFusioninventoryDeployPackage::plusButton("retchecks", ".table_retchecks.template"); echo "</th>"; echo "<td>"; $display = "style='display:none'"; if ($retChecks) { $display = "style='display:block'"; } echo "<span id='retchecks' style='display:block'>"; if (is_array($retChecks) && count($retChecks)) { foreach ($retChecks as $retcheck) { echo "<table class='table_retchecks'>"; echo "<tr>"; echo "<td>"; Dropdown::showFromArray('retchecks_type[]', self::retchecks_entries(), array('value' => $retcheck['type'])); echo "</td>"; echo "<td>"; echo "<input type='text' name='retchecks_value[]' value='" . $retcheck['values'][0] . "' />"; echo "</td>"; echo "<td><a class='edit' onclick='removeLine(this)'><img src='" . $CFG_GLPI["root_doc"] . "/pics/delete.png' /></a></td>"; echo "</tr>"; echo "</table>"; } } echo "<table class='table_retchecks template' style='display:none'>"; echo "<tr>"; echo "<td>"; //Toolbox::logDebug(self::retchecks_entries()); Dropdown::showFromArray('retchecks_type[]', self::retchecks_entries(), array()); echo "</td>"; echo "<td><input type='text' name='retchecks_value[]' /></td>"; echo "<td><a class='edit' onclick='removeLine(this)'><img src='" . $CFG_GLPI["root_doc"] . "/pics/delete.png' /></a></td>"; echo "</tr>"; echo "</table>"; echo "</span>"; echo "</td>"; echo "</tr>"; } echo "<tr>"; echo "<td></td><td>"; if ($pfDeployPackage->can($pfDeployPackage->getID(), UPDATE)) { if ($mode === 'edit') { echo "<input type='submit' name='save_item' value=\"" . _sx('button', 'Save') . "\" class='submit' >"; } else { echo "<input type='submit' name='add_item' value=\"" . _sx('button', 'Add') . "\" class='submit' >"; } } echo "</td>"; echo "</tr></table>"; echo "<script type='text/javascript'>\n function removeLine(item) {\n var tag_table = item.parentNode.parentNode.parentNode.parentNode;\n var parent = tag_table.parentNode;\n parent.removeChild(tag_table);\n }\n </script>"; }