Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
07ebe4f
Initial Commit for Mover Status rc3+
SimonFair Mar 8, 2022
70a3707
Code clean up
SimonFair Mar 8, 2022
0b933a9
Add additional lines and progress barss
SimonFair Mar 9, 2022
942ce08
Update ArrayOperation.page
SimonFair Apr 2, 2022
2ef7202
Revert "Update ArrayOperation.page"
SimonFair Apr 2, 2022
5f68b82
Merge branch 'master' into Mover-Progress-NCHAN-rc3+
SimonFair Apr 2, 2022
41d9842
Merge branch 'master' into Mover-Progress-NCHAN-rc3+
SimonFair May 9, 2022
cd6293f
Merge branch 'master' into Mover-Progress-NCHAN-rc3+
SimonFair May 9, 2022
33080ba
Merge branch 'limetech:master' into Mover-Progress-NCHAN-rc3+
SimonFair May 9, 2022
6d638d3
Merge branch 'Mover-Progress-NCHAN-rc3+' of https://github.com/SimonF…
SimonFair May 9, 2022
b9461fc
Merge remote-tracking branch 'upstream/master' into Mover-Progress-NC…
SimonFair Feb 11, 2023
8a6de1a
Merge remote-tracking branch 'upstream/master' into Mover-Progress-NC…
SimonFair Nov 26, 2023
298a997
Add mover file.
SimonFair Nov 26, 2023
ce37cb7
Update mover
SimonFair Nov 26, 2023
d8dd7ed
Update mover
SimonFair Nov 26, 2023
6e69743
Change processing.
SimonFair Nov 27, 2023
2dc0d78
Update mover files
SimonFair Nov 28, 2023
534b0a2
Add bash version
SimonFair Nov 28, 2023
ac6aa90
Make script executable
SimonFair Nov 28, 2023
a91f1d5
Add new options to mover.
SimonFair Nov 28, 2023
d0b67d4
Add help text
SimonFair Nov 28, 2023
ffa1b10
Merge remote-tracking branch 'upstream/master' into Mover-Progress-NC…
SimonFair Dec 2, 2023
8713e5b
Update parity_list
SimonFair Dec 2, 2023
50f5930
Update parity_list
SimonFair Dec 2, 2023
7d08940
Update parity_list
SimonFair Dec 2, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions emhttp/languages/en_US/helptext.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2011,6 +2011,10 @@ For the other schedules choose here the time of the day the mover should start.
Write mover messages to the syslog file.
:end

:mover_progress_help:
Enable progress display and allow a user override.
:end

:notifications_display_help:
In *Detailed* view all notifications will be displayed on screen as soon as they arrive.<br>
Notifications can be acknowledged individually or all at once.
Expand Down
44 changes: 44 additions & 0 deletions emhttp/plugins/dynamix/ArrayOperation.page
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,7 @@ toggle_diskio(true);

<?if (_var($var,'fsState')=='Started'):?>
var mymonitor = new NchanSubscriber('/sub/mymonitor',{subscriber:'websocket'});
var maxmoverlines = 5 ;
mymonitor.on('message', function(state) {
switch (state) {
case '0': // normal operation
Expand All @@ -263,6 +264,9 @@ mymonitor.on('message', function(state) {
<?if (_var($var,'shareUser')=='e' && $pool_devices):?>
$('#mover-button').prop('disabled',false);
$('#mover-text').html("<b>_(Move)_</b> _(will immediately invoke the Mover)_.&nbsp;<a href=\"/Main/Settings/Scheduler\"<?if($tabbed):?> onclick=\"$.cookie('one','tab2')\"<?endif;?>>(_(Schedule)_)</a>");
for (let i = 0; i < maxmoverlines; i++) {
$('#moverrow'+i ).hide();
}
<?endif;?>
break;
case '1': // parity running
Expand All @@ -275,6 +279,9 @@ mymonitor.on('message', function(state) {
<?if (_var($var,'shareUser')=='e' && $pool_devices):?>
$('#mover-button').prop('disabled',true);
$('#mover-text').html("_(Disabled)_ -- _(Parity operation is running)_");
for (let i = 0; i < maxmoverlines; i++) {
$('#moverrow'+i ).hide();
}
<?endif;?>
break;
case '2': // mover running
Expand All @@ -283,6 +290,8 @@ mymonitor.on('message', function(state) {
<?if (_var($var,'shareUser')=='e' && $pool_devices):?>
$('#mover-button').prop('disabled',true);
$('#mover-text').html("_(Disabled)_ - _(Mover is running)_.");


<?endif;?>
break;
case '3': // btrfs running
Expand All @@ -291,6 +300,9 @@ mymonitor.on('message', function(state) {
<?if (_var($var,'shareUser')=='e' && $pool_devices):?>
$('#mover-button').prop('disabled',true);
$('#mover-text').html("_(Disabled)_ -- _(BTRFS operation is running)_");
for (let i = 0; i < maxmoverlines; i++) {
$('#moverrow'+i ).hide();
}
<?endif;?>
break;
}
Expand All @@ -303,6 +315,33 @@ arraymonitor.on('message', function(state) {
if (state==1 && !timers.arraymonitor) timers.arraymonitor = setTimeout(refresh,1250);
});

var moverStatus = new NchanSubscriber('/sub/mover',{subscriber:'websocket'});
moverStatus.on('message', function(moverdata) {
var moverlines = 0;
var selectlines = [] ;
$.each(moverdata.split(';'),function(k,v) {
var keydata = v.split('#');
if(keydata[0]=="Showlines") {moverlines=keydata[1];}
if(keydata[0]=="Selectlines") {selectlines=keydata[1].split(',');}
$('#'+keydata[0]).html(keydata[1]);
});

if(moverlines > maxmoverlines) moverlines = maxmoverlines;
if(moverlines == 0) {
for (let i = 0; i < 5; i++) {
$('#moverrow'+i ).hide();
};
};
for (let i = 0; i < moverlines; i++) {
var selectline = i + 1;
var selectlinestr = selectline.toString();
var checkselectline = selectlines.includes(selectlinestr);
if (checkselectline == true) $('#moverrow'+i ).show(); else $('#moverrow'+i ).hide();
};
});

moverStatus.start();

var devices = new NchanSubscriber('/sub/devices<?=$spot?",parity":""?>',{subscriber:'websocket'});
devices.on('message', function(msg,meta) {
switch (<?if($spot):?>meta.id.channel()<?else:?>0<?endif;?>) {
Expand Down Expand Up @@ -670,6 +709,11 @@ window.onunload = function(){
<form name="mover_schedule" method="POST" action="/update.htm" target="progressFrame">
<table markdown="1" class="array_status noshift">
<tr><td></td><td><input type="submit" id="mover-button" name="cmdStartMover" value="_(Move)_"></td><td id="mover-text"></td></tr>
<tr id="moverrow0" hidden><td></td><td><span id="movertitle0">_(File being processed)_</span></td><td id="moverline0"></td><td></td></tr>
<tr id="moverrow1" hidden><td></td><td id="movertitle1">_(Action)_</td><td id="moverline1"></td><td></td></tr>
<tr id="moverrow2" hidden><td></td><td id="movertitle2">_(Progress)_</td><td><span id="moverline2" style="width:50"></span></td><td></td></tr>
<tr id="moverrow3" hidden><td></td><td id="movertitle3">_(Transfering To Array)_:</td><td id="moverline3"></td><td></td></tr>
<tr id="moverrow4" hidden><td></td><td id="movertitle4">_(Transfering From Array)_:</td><td id="moverline4"></td><td></td></tr>
</table>
</form>
<?endif;?>
Expand Down
9 changes: 9 additions & 0 deletions emhttp/plugins/dynamix/MoverSettings.page
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,15 @@ _(Mover logging)_:

:mover_logging_help:

_(Mover Progress)_:
: <select name="shareMoverProgress">
<?=mk_option($var['shareMoverProgress'], "moverprogress", _("Enabled"))?>
<?=mk_option($var['shareMoverProgress'], "mover", _("Disabled"))?>
<?=mk_option($var['shareMoverProgress'], "moveruser", _("User Defined"))?>
</select>

:mover_progress_help:

<?endif;?>
<?if ($setup):?>
<?if ($pool_devices):?>
Expand Down
51 changes: 51 additions & 0 deletions emhttp/plugins/dynamix/nchan/parity_list
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ $md5_old = -1;
$spot_old = -1;
$fs_old = -1;
$proc_old = -1;
$mover_old = -1;

require_once "$docroot/webGui/include/Helpers.php";
require_once "$docroot/webGui/include/publish.php";
Expand Down Expand Up @@ -117,6 +118,51 @@ while (true) {
elseif (exec("zpool status|grep -c 'scrub in progress'")>0) $process = 4;
else $process = 0;


if ($process == 2) {
$moverdata = [];
if ( file_exists("$varroot/mover.ini")) {
$moverstat = parse_ini_file("$varroot/mover.ini");
$mover = $moverstat;
$perc = $moverstat["Filepercent"];
$value1 = "<div class='usage-disk' style='width:50%'><span style='width:$perc%' class='greenbar'></span><span>$perc%</span></div>";
if ($moverstat["TotalToArray"]>0) {
$toperc = ($moverstat["TotalToArray"]-$moverstat["RemainToArray"])/$moverstat["TotalToArray"] * 100;
if ($moverstat["RemainToArray"]>0) {
$perc= round($toperc,2) ;
$value2 = "<div class='usage-disk' style='width:50%'><span style='width:$perc%' class='greenbar'></span><span>"._("Percentage Complete ").$perc."%</span></div>";
} else {$value2 = _("Transfer complete") ;}
} else {
$value2 = _("Nothing to transfer") ;}
if ($moverstat["TotalFromArray"]>0) {
$fromperc = ($moverstat["TotalFromArray"] - $moverstat["RemainFromArray"])/$moverstat["TotalFromArray"] * 100;
if ($moverstat["RemainFromArray"]>0) {
$perc= round($fromperc,2) ;
$value3 = "<div class='usage-disk' style='width:50%'><span style='width:$perc%' class='greenbar'></span><span>"._("Percentage Complete ").$perc."%</span></div>";
} else {$value3 = _("Transfer complete") ;}
} else {
$value3 = _("Nothing to transfer") ;}
$moverdata = [];
$moverdata[] = "Showlines#{$moverstat['Showlines']}";
$moverdata[] = "Selectlines#{$moverstat['Selectlines']}";
$moverdata[] = "movertitle0#"._($moverstat['movertitle1']);
$moverdata[] = "movertitle1#"._($moverstat['movertitle2']);
$moverdata[] = "movertitle2#"._($moverstat['movertitle3']);
$moverdata[] = "movertitle3#"._($moverstat['movertitle4']);
$moverdata[] = "movertitle4#"._($moverstat['movertitle5']);
$moverdata[] = "moverline0#{$moverstat['File']}";
$moverdata[] = "moverline1#{$moverstat['Action']}";
$moverdata[] = "moverline2#$value1";
$moverdata[] = "moverline3#$value2";
$moverdata[] = "moverline4#$value3";
} else {
$moverdata[] = "Showlines#0"; $mover = -1 ;
}
} else {
$moverdata = [];
$moverdata[] = "Showlines#0"; $mover = -1 ;
}

$echo = implode(';',$data);
$md5_new = md5($echo,true);
if ($md5_new !== $md5_old) {
Expand All @@ -135,6 +181,11 @@ while (true) {
publish('mymonitor', $process);
$proc_old = $process;
}
if ($mover !== $mover_old){
publish('mover', implode(';',$moverdata));
$mover_old = $mover;
}

sleep(1);
}
?>
Loading