Skip to content
Snippets Groups Projects
Verified Commit a9e501aa authored by David Beniamine's avatar David Beniamine
Browse files

Actions and sortable table

parent 9e6f26d1
No related branches found
No related tags found
No related merge requests found
......@@ -45,7 +45,7 @@ do
break
fi
done
elif [ $MAC == "get_registry" ]
elif [ $MAC == "getRegistry" ]
then
hostfile="/etc/registry/hosts"
while read line
......
......@@ -19,6 +19,7 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="jquery-3.3.1.min.js"></script>
<script src="stupidtable.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
......@@ -33,7 +34,7 @@ error_reporting(E_ALL);
extract($_POST);
if(!isset($action)){
exec("../scripts/action.sh get_registry", $lines, $code);
exec("../scripts/actions.sh getRegistry", $lines, $code);
?>
<p>
<?php
......@@ -61,19 +62,25 @@ if(!isset($action)){
<input type="submit" value="Télécharger le dernier log de mise à jour" title="Télécharger le dernier log de mise à jour">
</form>
<h2> Gestion des postes </h2>
<p>
Vous pouvez trier la table ci dessous en cliquant sur la colonne que vous voulez.
</p>
<div class="table-responsive">
<table class="table-striped table-bordered table-hover" style="text-align:center;">
<thead>
<tr>
<th style="text-align:center;" >Nom</th>
<th style="text-align:center;" >IP(s)</th>
<th style="text-align:center;" >MAC</th>
<th style="text-align:center;" >Version Debian</th>
<th style="text-align:center;" >Version Primtux</th>
<th style="text-align:center;" >Mises&nbsp;à&nbsp;jour apt&nbsp;en&nbsp;attente</th>
<th style="text-align:center;" >État&nbsp;git</th>
<th style="text-align:center;" >Date dernier contact</th>
<th style="text-align:center;" data-sort="string" data-sort-onload="yes" >Nom</th>
<th style="text-align:center;" data-sort="string" >IP(s)</th>
<th style="text-align:center;" data-sort="string" >MAC</th>
<th style="text-align:center;" data-sort="string" >Version Debian</th>
<th style="text-align:center;" data-sort="string" >Version Primtux</th>
<th style="text-align:center;" data-sort="string" >Mises&nbsp;à&nbsp;jour apt&nbsp;en&nbsp;attente</th>
<th style="text-align:center;" data-sort="string" >État&nbsp;git</th>
<th style="text-align:center;" data-sort="string" >Date dernier contact</th>
<th style="text-align:center;" >Actions</th>
</tr>
</thead>
<tbody>
<?php
$registry = array();
foreach($lines as $line){
......@@ -128,6 +135,7 @@ if(!isset($action)){
}
}
?>
</tbody>
</table>
<!-- Script to add titles to each td -->
......@@ -140,6 +148,8 @@ if(!isset($action)){
$(' td').attr('title', function (index, attr) {
return titles[$(this).index()];
});
// Make table sortable
$("table").stupidtable();
});
</script>
</div>
......@@ -181,22 +191,21 @@ if(!isset($action)){
<?php
break;
case "upgradeAll" :
echo "I should upgradeAll machines, not implemented yet";
breaK;
echo "Sending request to upgrade all machines";
echo "Todo see log";
case "upgradeAllApt" :
echo "I should upgradeAllApt machines, not implemented yet";
breaK;
echo "Sending request to upgrade all machines with apt";
case "getLogAll" :
echo "I should download all logs, not implemented yet";
exec("../scripts/action.sh $action", $lines, $code);
break;
case "upgrade" :
echo "I should upgrade $mac, not implemented yet";
break;
case "upgradeAPT" :
echo "I should upgrade $mac with apt, not implemented yet";
break;
case "getLog" :
echo "I should download logs for $mac, not implemented yet";
exec("../scripts/action.sh $action ".escapeshellarg($mac), $lines, $code);
break;
}
}
......
(function(c){c.fn.stupidtable=function(a){return this.each(function(){var b=c(this);a=a||{};a=c.extend({},c.fn.stupidtable.default_sort_fns,a);b.data("sortFns",a);b.stupidtable_build();b.on("click.stupidtable","thead th",function(){c(this).stupidsort()});b.find("th[data-sort-onload=yes]").eq(0).stupidsort()})};c.fn.stupidtable.default_settings={should_redraw:function(a){return!0},will_manually_build_table:!1};c.fn.stupidtable.dir={ASC:"asc",DESC:"desc"};c.fn.stupidtable.default_sort_fns={"int":function(a,
b){return parseInt(a,10)-parseInt(b,10)},"float":function(a,b){return parseFloat(a)-parseFloat(b)},string:function(a,b){return a.toString().localeCompare(b.toString())},"string-ins":function(a,b){a=a.toString().toLocaleLowerCase();b=b.toString().toLocaleLowerCase();return a.localeCompare(b)}};c.fn.stupidtable_settings=function(a){return this.each(function(){var b=c(this),f=c.extend({},c.fn.stupidtable.default_settings,a);b.stupidtable.settings=f})};c.fn.stupidsort=function(a){var b=c(this),f=b.data("sort")||
null;if(null!==f){var d=b.closest("table"),e={$th:b,$table:d,datatype:f};d.stupidtable.settings||(d.stupidtable.settings=c.extend({},c.fn.stupidtable.default_settings));e.compare_fn=d.data("sortFns")[f];e.th_index=h(e);e.sort_dir=k(a,e);b.data("sort-dir",e.sort_dir);d.trigger("beforetablesort",{column:e.th_index,direction:e.sort_dir,$th:b});d.css("display");setTimeout(function(){d.stupidtable.settings.will_manually_build_table||d.stupidtable_build();var a=l(e),a=m(a,e);if(d.stupidtable.settings.should_redraw(e)){d.children("tbody").append(a);
var a=e.$table,c=e.$th,f=c.data("sort-dir");a.find("th").data("sort-dir",null).removeClass("sorting-desc sorting-asc");c.data("sort-dir",f).addClass("sorting-"+f);d.trigger("aftertablesort",{column:e.th_index,direction:e.sort_dir,$th:b});d.css("display")}},10);return b}};c.fn.updateSortVal=function(a){var b=c(this);b.is("[data-sort-value]")&&b.attr("data-sort-value",a);b.data("sort-value",a);return b};c.fn.stupidtable_build=function(){return this.each(function(){var a=c(this),b=[];a.children("tbody").children("tr").each(function(a,
d){var e={$tr:c(d),columns:[],index:a};c(d).children("td").each(function(a,b){var d=c(b).data("sort-value");"undefined"===typeof d&&(d=c(b).text(),c(b).data("sort-value",d));e.columns.push(d)});b.push(e)});a.data("stupidsort_internaltable",b)})};var l=function(a){var b=a.$table.data("stupidsort_internaltable"),f=a.th_index,d=a.$th.data("sort-multicolumn"),d=d?d.split(","):[],e=c.map(d,function(b,d){var c=a.$table.find("th"),e=parseInt(b,10),f;e||0===e?f=c.eq(e):(f=c.siblings("#"+b),e=c.index(f));
return{index:e,$e:f}});b.sort(function(b,c){for(var d=e.slice(0),g=a.compare_fn(b.columns[f],c.columns[f]);0===g&&d.length;){var g=d[0],h=g.$e.data("sort"),g=(0,a.$table.data("sortFns")[h])(b.columns[g.index],c.columns[g.index]);d.shift()}return 0===g?b.index-c.index:g});a.sort_dir!=c.fn.stupidtable.dir.ASC&&b.reverse();return b},m=function(a,b){var f=c.map(a,function(a,c){return[[a.columns[b.th_index],a.$tr,c]]});b.column=f;return c.map(a,function(a){return a.$tr})},k=function(a,b){var f,d=b.$th,
e=c.fn.stupidtable.dir;a?f=a:(f=a||d.data("sort-default")||e.ASC,d.data("sort-dir")&&(f=d.data("sort-dir")===e.ASC?e.DESC:e.ASC));return f},h=function(a){var b=0,f=a.$th.index();a.$th.parents("tr").find("th").slice(0,f).each(function(){var a=c(this).attr("colspan")||1;b+=parseInt(a,10)});return b}})(jQuery);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment