diff --git a/wol/scripts/wakeonlanservice.sh b/wol/scripts/wakeonlanservice.sh index 3b831f8f0bd472e260476781ded9415fa0a56fbb..2772378448bbb96c12dfc1051f47bc61e52c6d95 100755 --- a/wol/scripts/wakeonlanservice.sh +++ b/wol/scripts/wakeonlanservice.sh @@ -45,7 +45,7 @@ do break fi done - elif [ $MAC == "get_registry" ] + elif [ $MAC == "getRegistry" ] then hostfile="/etc/registry/hosts" while read line diff --git a/wol/www/index.php b/wol/www/index.php index 3f6fd1c4bb07ad171ac14383c6591f18627c9e8f..c1e1c8a1552e7f678104bff6da6d4abe599bedd3 100644 --- a/wol/www/index.php +++ b/wol/www/index.php @@ -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 à jour apt en attente</th> - <th style="text-align:center;" >État 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 à jour apt en attente</th> + <th style="text-align:center;" data-sort="string" >État 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; } } diff --git a/wol/www/stupidtable.min.js b/wol/www/stupidtable.min.js new file mode 100644 index 0000000000000000000000000000000000000000..1deb3aa5e7266b262247d3da537c961265190f53 --- /dev/null +++ b/wol/www/stupidtable.min.js @@ -0,0 +1,7 @@ +(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);