/*************************************************************************** * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * * http://phpsysinfo.sourceforge.net/ * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ //$Id: smart.js 707 2012-11-28 10:20:49Z namiltd $ /*global $, jQuery, genlang, formatTemp, plugin_translate, buildBlock, datetime */ "use strict"; var smart_show = false, smart_table; //appendcss("./plugins/SMART/css/SMART.css"); /** * fill the plugin block with table structure */ function smart_buildTable(xml) { var html = ""; html += "\n"; html += " \n"; html += " \n"; html += " \n"; $("Plugins Plugin_SMART columns column", xml).each(function smart_table_header() { html += " \n"; }); html += " \n"; html += " \n"; html += " \n"; html += " \n"; html += "
" + genlang(3, false, "SMART") + "" + genlang(100 + parseInt($(this).attr("id"), 10), false, "SMART") + "
\n"; $("#Plugin_SMART").append(html); smart_table = $("#Plugin_SMARTTable").dataTable({ "bPaginate": false, "bLengthChange": false, "bFilter": false, "bSort": true, "bInfo": false, "bProcessing": true, "bAutoWidth": false, "bStateSave": true }); } /** * insert content into table * @param {jQuery} xml plugin-XML */ function smart_populate(xml) { var name = "", columns = []; smart_table.fnClearTable(); // Get datas that the user want to be displayed $("Plugins Plugin_SMART columns column", xml).each(function smart_find_columns() { columns[parseInt($(this).attr("id"), 10)] = $(this).attr("name"); }); // Now we add selected datas in the table $("Plugins Plugin_SMART disks disk", xml).each(function smart_fill_table() { var values = [], display = [], i; name = $(this).attr("name"); $(this).find("attribute").each(function smart_fill_data() { if (columns[parseInt($(this).attr("id"), 10)] && columns[parseInt($(this).attr("id"), 10)] !== "") { values[parseInt($(this).attr("id"), 10)] = $(this).attr(columns[parseInt($(this).attr("id"), 10)]); } }); display.push("" + name + "" + name); // On "columns" so we get the right order // fixed for Firefox (fix wrong order) // for (i in columns) { $("Plugins Plugin_SMART columns column", xml).each(function smart_find_columns() { i = parseInt($(this).attr("id"), 10); if (typeof(values[i])==='undefined') { // values[i] = ""; display.push(""); } else if (i === 194) { display.push("" + values[i] + "" + formatTemp(values[i], xml)); } else { display.push("" + values[i] + "" + values[i]); } // } }); smart_table.fnAddData(display); }); smart_show = true; } /** * load the xml via ajax */ function smart_initTable() { $.ajax({ url: "xml.php?plugin=SMART", dataType: "xml", error: function smart_error() { $.jGrowl("Error loading XML document for Plugin SMART"); }, success: function smart_initBlock(xml) { smart_buildTable(xml); smart_populate(xml); if (smart_show) { plugin_translate("SMART"); $("#Plugin_SMART").show(); } } }); } /** * load the xml via ajax */ function smart_request() { $.ajax({ url: "xml.php?plugin=SMART", dataType: "xml", error: function smart_error() { $.jGrowl("Error loading XML document for Plugin SMART"); }, success: function smart_buildBlock(xml) { populateErrors(xml); smart_populate(xml); if (smart_show) { plugin_translate("SMART"); $("#Plugin_SMART").show(); } } }); } $(document).ready(function smart_buildpage() { var html = ""; $("#footer").before(buildBlock("SMART", 1, true)); $("#Plugin_SMART").css("width", "915px"); smart_initTable(); $("#Reload_SMARTTable").click(function smart_reload(id) { smart_request(); $("#Reload_SMARTTable").attr("title",datetime()); }); });