]> lifelog.hopto.org Git - LifeLog.git/commitdiff
Bug 63.1 fixed.
authorwbudic <redacted>
Thu, 2 Sep 2021 10:49:23 +0000 (20:49 +1000)
committerwbudic <redacted>
Thu, 2 Sep 2021 10:49:23 +0000 (20:49 +1000)
htdocs/cgi-bin/config.cgi
htdocs/cgi-bin/main.cgi
htdocs/cgi-bin/system/modules/Settings.pm

index 64c0dac63cb3340d04da2c882d5e2f854532923e..e1ece41d2cbc53b49631125508610f9948e4b30a 100755 (executable)
@@ -31,6 +31,7 @@ require Settings;
 $CGI::POST_MAX = 1024 * 15000;
 ##
 
+
 my ($RDS,$TR_STATUS,$LOGOUT,$ERROR) = ("","",0,"");
 my $sys     = `uname -n`;
 my $db      = Settings::fetchDBSettings();
@@ -46,15 +47,16 @@ my $tz      = $cgi->param('tz');
 my $csvp    = $cgi->param('csv');
 my $CID     = 'rowid'; $CID = 'ID' if Settings::isProgressDB();
 
-exportToCSV() if ($csvp);
 
-if($cgi->param('bck'))            {&backup}
-elsif($_=$cgi->param('bck_del'))  {backupDelete($_)}
-elsif($cgi->param('data_bck'))    {&restore;}
-elsif($_=$cgi->param('bck_file')) {restore($_)}
-elsif($cgi->param('data_cat'))    {&importCatCSV}
-elsif($cgi->param('data_log'))    {&importLogCSV}
 
+    exportToCSV() if ($csvp);
+    if($cgi->param('bck'))            {&backup} #?bck=1 (js set)
+    elsif($_=$cgi->param('bck_del'))  {backupDelete($_)} #?bck_del=... (js set)
+    elsif($cgi->param('bck_upload'))  {&restore} #upload backup (form set)
+    elsif($_=$cgi->param('bck_file')) {restore($_)}
+    elsif($cgi->param('data_cat'))    {&importCatCSV}
+    elsif($cgi->param('data_log'))    {&importLogCSV}
 
 
 my $stmtCat = 'SELECT * FROM CAT ORDER BY ID;';
@@ -387,7 +389,7 @@ else{
 }
 
 my $inpRestore = qq(<b>Local File:</b>&nbsp;&nbsp;
-<input type="file" name="bck_file" />&nbsp;&nbsp;<input type="Submit" value="Restore"/>);
+<input name="bck_upload" id="bck_upload" type="file"/>&nbsp;&nbsp;<input type="Submit" value="Restore"/>);
 
 my $inpCVS = qq(<input type="button" onclick="return exportToCSV('log',0);" value="Export"/>&nbsp;
 <input type="button" onclick="return exportToCSV('log',1);" value="View"/>);
@@ -417,11 +419,13 @@ print qq(
 
                 <tr><td><div id="div_backups"><form id="frm_bck" action="config.cgi" method="post">$bck_list</form></div><hr></td></tr>                
 
-                <tr><td><form id="frm_restore" action="config.cgi" method="post" enctype="multipart/form-data">
+                <tr><td>Notice - Uploads might fail on large backups, corrupt file, and/or due to browser settings.<br>
+                        <form id="frmUpload" action="config.cgi" method="post" enctype="multipart/form-data">
                         $inpRestore
-                        </form>
-                <hr></td></tr>
-                
+                        <input type="hidden" name="upload" value="1"/>
+                        </form><hr>
+                </td></tr>
                 <form action="config.cgi" method="post" enctype="multipart/form-data">
                 <tr>
                 <td><H3>CSV File Format</H3>Notice: (<font color=red>This is an obsolete feature, use is not recommended!</font>)</td></tr>
@@ -1244,7 +1248,7 @@ sub restore {
     my $file = shift;
     my ($tar,$pipe,@br,$stdout,$b_db);
     my $pass = Settings::pass();
-    my $hndl = $cgi->param('data_bck');
+    my $hndl = $cgi->param('bck_upload');
     my $dbck = &Settings::logPath."bck/"; `mkdir $dbck` if (!-d $dbck);
     my $stage = "Initial";
     my $stamp = $today."\t"; $stamp =~ s/T/ /g;
@@ -1260,11 +1264,11 @@ my $stdout = capture_stdout {
         if($file){ #Open handle on server where backup is to be restored.
             my $f = &Settings::logPath.$file;
             open($hndl, '<', $f) or die "Can't open $f: $!";            
-            print $fhLog $stamp, "Uploading backup file -> $file\n";
+            print $fhLog $stamp, "Reading on server backup file -> $file\n";
             $tar = $dbck.$file;
         }        
         else{
-            print $fhLog $stamp, "Reading on server backup file -> $hndl\n";
+            print $fhLog $stamp, "Uploading to server backup file -> $hndl\n";
             $tar = $dbck.$hndl;
         }
         $tar =~ s/osz$/tar/;
@@ -1454,6 +1458,9 @@ catch{
     $ERROR = "<br><font color='red'><b>Full Restore Failed!</b></font><br>$@ \n";
     $ERROR .= "br:[@br]" if(@br);
     $ERROR .= "<br><b>Failed at stage:</b> $stage";
+    openlog(Settings::dsn(), 'cons,pid', "user");
+        syslog('err', '%s', $ERROR);
+    closelog();
 };
 
     my $back = $cgi->url( -relative => 1 );
@@ -1666,35 +1673,3 @@ sub error {
     exit;
 }
 
-
-    my %dates  = ();
-    #Hash is unreliable for returning sequential order of keys so array must do.
-    my @dlts = ();    
-    my $cntr_del =0;
-    my $existing;
-    my @row;
-
-        getHeader();
-        print "<body><pre>Started transaction!\n";
-
-        $db->do('BEGIN TRANSACTION;');
-        # Check for duplicates, which are possible during imports or migration as internal rowid is not primary in log.
-        # @TODO This should be done through an view?
-        if(Settings::isProgressDB()){
-            $dbs = Settings::selectRecords($db, 'SELECT ID, DATE FROM LOG ORDER BY DATE;');
-        }else{
-            $dbs = Settings::selectRecords($db, 'SELECT rowid, DATE FROM LOG ORDER BY DATE;');
-        }
-        while(@row = $dbs->fetchrow_array()) {
-            my $existing = $dates{$row[0]};
-            if($existing && $existing eq $row[1]){
-                $dlts[$cntr_del++] = $row[0];
-            }
-            else{
-                $dates{$row[0]} = $row[1];
-            }
-        }
-
-
-
-1;
\ No newline at end of file
index 526183e4c9e1dc2e76982debd12eeaf499f83058..5df22c5c8aa166c3bf66ddb788aaa2096ac2208d 100755 (executable)
@@ -763,7 +763,7 @@ my $auto_logoff = &Settings::autoLogoff;
 if($isPUBViewMode){
 }
 else{
-$log_output .= <<_TXT;
+$log_output .= <<HTML;
 <tr class="r0" id="brw_row"><td colspan="2" style="font-size:small;text-align:left;">Show All hidden &#10132;
 <a id="menu_close" href="#" onclick="return showAll();"><span  class="ui-icon ui-icon-heart" style="float:none;"></span></a>
 <a id="to_bottom" href="#top" title="Go to top of page.">&#8613;</a>
@@ -777,7 +777,7 @@ $log_output .= <<_TXT;
     <input type="submit" value="Date Diff" onclick="return dateDiffSelected()"/>&nbsp;
     <input type="submit" value="Export" onclick="return exportSelected()"/>&nbsp;        
     <input type="submit" value="Print" onclick="return viewSelected()"/>&nbsp;
-    <input id="del_sel" type="submit" value="Delete" onclick="display('Please Wait!')"/>
+    <input id="del_sel"  type="submit" value="Delete" onclick="display('Please Wait!')"/>
     </span>
 </td></tr>
 </TABLE>
@@ -787,8 +787,8 @@ $log_output .= <<_TXT;
     <input id="rs_keys2" name="keywords" type="text" size="60"/>
     <input type="submit" value="Search"/></td></tr>
     </TABLE>
-</form>);
-_TXT
+</form>
+HTML
 };
 
 
index ad53c35739b63c536d07a97005efcadb88acb93e..d3447ffbb2e11cb5d4c86a11decc44d2583ca574 100644 (file)
@@ -27,8 +27,9 @@ use experimental 'switch';
 BEGIN {
    sub handle_errors {
       my $msg = shift;
-      print "<h1>LifeLog Server Error</h1>";
-      print "<pre>@[$ENV{PWD}].Error: $msg</pre>";
+      print "<html><body><h2>LifeLog Server Error</h2>";
+      print "<pre>@[$ENV{PWD}].Error: $msg</pre></body></html>";
   }
   set_message(\&handle_errors);
 }