Subversion Repositories oidplus

Rev

Rev 833 | Rev 1292 | Go to most recent revision | View as "text/javascript" | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /*
  2.  * OIDplus 2.0
  3.  * Copyright 2019 - 2022 Daniel Marschall, ViaThinkSoft
  4.  *
  5.  * Licensed under the Apache License, Version 2.0 (the "License");
  6.  * you may not use this file except in compliance with the License.
  7.  * You may obtain a copy of the License at
  8.  *
  9.  *     http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */
  17.  
  18. var OIDplusPageAdminSoftwareUpdate = {
  19.  
  20.         oid: "1.3.6.1.4.1.37476.2.5.2.4.3.900",
  21.  
  22.         doUpdateOIDplus: function(rev, max) {
  23.                 $("#update_versioninfo").hide();
  24.                 $("#update_infobox").html(_L("Started update from %1 to %2",rev,max)+"\n");
  25.                 OIDplusPageAdminSoftwareUpdate._doUpdateOIDplus(rev, max);
  26.         },
  27.  
  28.         _doUpdateOIDplus: function(rev, max) {
  29.                 $("#update_header").text(_L("Updating to Revision %1 ...",rev)+"\n");
  30.  
  31.                 var msg = "Update to OIDplus version svn-"+rev+" is running..."; // TODO: If we would translate this to German, then we would also need to generate the serverside scripts to German. So we keep this in English.
  32.                 $("#update_infobox").html($("#update_infobox").html() + '<span class="severity_2"><strong>' + _L('INFO') + ":</strong></span> "+msg+"\n");
  33.  
  34.                 //show_waiting_anim();
  35.                 $.ajax({
  36.                         url: "ajax.php",
  37.                         type: "POST",
  38.                         beforeSend: function(jqXHR, settings) {
  39.                                 $.xhrPool.abortAll();
  40.                                 $.xhrPool.add(jqXHR);
  41.                         },
  42.                         complete: function(jqXHR, text) {
  43.                                 $.xhrPool.remove(jqXHR);
  44.                         },
  45.                         data: {
  46.                                 csrf_token:csrf_token,
  47.                                 plugin: OIDplusPageAdminSoftwareUpdate.oid,
  48.                                 rev: rev,
  49.                                 update_version: 2,
  50.                                 action: "update_now",
  51.                         },
  52.                         error:function(jqXHR, textStatus, errorThrown) {
  53.                                 //hide_waiting_anim();
  54.                                 if (errorThrown == "abort") {
  55.                                         $("#update_header").text(_L("Update aborted"));
  56.                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  57.                                         return;
  58.                                 } else {
  59.                                         $("#update_header").text(_L("Update failed"));
  60.                                         //alertError(_L("Error: %1",errorThrown));
  61.                                         $("#update_infobox").html($("#update_infobox").html() + "\n\n" + '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span> ' + errorThrown + "\n\n");
  62.                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  63.                                 }
  64.                         },
  65.                         success: function(data) {
  66.                                 //hide_waiting_anim();
  67.                                 if (typeof data === "object" && "error" in data) {
  68.                                         $("#update_header").text(_L("Update failed"));
  69.                                         //alertError(_L("Error: %1",data.error));
  70.                                         if (typeof data === "object" && "content" in data) {
  71.                                                 $("#update_infobox").html($("#update_infobox").html() + "\n\n" + data.content + "\n\n" + '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span> ' + data.error + "\n\n");
  72.                                         } else {
  73.                                                 $("#update_infobox").html($("#update_infobox").html() + "\n\n" + '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span> ' + data.error + "\n\n");
  74.                                         }
  75.                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  76.                                 } else if (typeof data === "object" && data.status >= 0) {
  77.  
  78.                                         if (!(typeof data === "object" && "update_file" in data)) {
  79.  
  80.                                                 output = data.content.trim();
  81.                                                 output = output.replace(/INFO:/g, '<span class="severity_2"><strong>' + _L('INFO') + ':</strong></span>');
  82.                                                 output = output.replace(/WARNING:/g, '<span class="severity_3"><strong>' + _L('WARNING') + ':</strong></span>');
  83.                                                 output = output.replace(/FATAL ERROR:/g, '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span>');
  84.                                                 $("#update_infobox").html($("#update_infobox").html() + output + "\n");
  85.                                                 rev = data.rev=="HEAD" ? max : data.rev;
  86.                                                 if (rev >= max) {
  87.                                                         $("#update_header").text(_L("Update finished"));
  88.                                                         $("#update_infobox").html($("#update_infobox").html() + "\n\n" + '<span class="severity_1"><strong> ' + _L('UPDATE FINISHED') + ':</strong></span> ' + _L('You are now at SVN revision %1', rev));
  89.                                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  90.                                                 } else {
  91.                                                         if (output.includes("FATAL ERROR:")) {
  92.                                                                 $("#update_header").text(_L("Update failed"));
  93.                                                                 $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  94.                                                         } else {
  95.                                                                 OIDplusPageAdminSoftwareUpdate._doUpdateOIDplus(parseInt(rev)+1, max);
  96.                                                         }
  97.                                                 }
  98.                                                 return;
  99.  
  100.                                         } else {
  101.  
  102.                                                 console.log("Execute update file " + data.update_file);
  103.  
  104.                                                 $.ajax({
  105.                                                         url: data.update_file,
  106.                                                         type: "GET",
  107.                                                         beforeSend: function(jqXHR, settings) {
  108.                                                                 $.xhrPool.abortAll();
  109.                                                                 $.xhrPool.add(jqXHR);
  110.                                                         },
  111.                                                         complete: function(jqXHR, text) {
  112.                                                                 $.xhrPool.remove(jqXHR);
  113.                                                         },
  114.                                                         data: {
  115.                                                         },
  116.                                                         error:function(jqXHR, textStatus, errorThrown) {
  117.                                                                 //hide_waiting_anim();
  118.                                                                 if (errorThrown == "abort") {
  119.                                                                         $("#update_header").text(_L("Update aborted"));
  120.                                                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  121.                                                                         return;
  122.                                                                 } else {
  123.                                                                         $("#update_header").text(_L("Update failed"));
  124.                                                                         //alertError(_L("Error: %1",errorThrown));
  125.                                                                         $("#update_infobox").html($("#update_infobox").html() + "\n\n" + '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span> ' + errorThrown + "\n\n");
  126.                                                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  127.                                                                 }
  128.                                                         },
  129.                                                         success: function(data2) {
  130.                                                                 //hide_waiting_anim();
  131.                                                                 output2 = data2.trim();
  132.                                                                 output2 = output2.replace(/INFO:/g, '<span class="severity_2"><strong>' + _L('INFO') + ':</strong></span>');
  133.                                                                 output2 = output2.replace(/WARNING:/g, '<span class="severity_3"><strong>' + _L('WARNING') + ':</strong></span>');
  134.                                                                 output2 = output2.replace(/FATAL ERROR:/g, '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span>');
  135.                                                                 $("#update_infobox").html($("#update_infobox").html() + output2 + "\n");
  136.                                                                 rev = data.rev=="HEAD" ? max : data.rev;
  137.                                                                 if (rev >= max) {
  138.                                                                         $("#update_header").text(_L("Update finished"));
  139.                                                                         $("#update_infobox").html($("#update_infobox").html() + "\n\n" + '<span class="severity_1"><strong> ' + _L('UPDATE FINISHED') + ':</strong></span> ' + _L('You are now at SVN revision %1', rev));
  140.                                                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  141.                                                                 } else {
  142.                                                                         if (output2.includes("FATAL ERROR:")) {
  143.                                                                                 $("#update_header").text(_L("Update failed"));
  144.                                                                                 $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  145.                                                                         } else {
  146.                                                                                 OIDplusPageAdminSoftwareUpdate._doUpdateOIDplus(parseInt(rev)+1, max);
  147.                                                                         }
  148.                                                                 }
  149.                                                                 return;
  150.                                                         },
  151.                                                         timeout:0 // infinite
  152.                                                 });
  153.  
  154.                                         }
  155.  
  156.                                         return;
  157.                                 } else {
  158.                                         $("#update_header").text(_L("Update failed"));
  159.                                         //alertError(_L("Error: %1",data));
  160.                                         if ("content" in data) {
  161.                                                 $("#update_infobox").html($("#update_infobox").html() + "\n\n" + data.content + "\n\n" + '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span> ' + data + "\n\n");
  162.                                         } else {
  163.                                                 $("#update_infobox").html($("#update_infobox").html() + "\n\n" + '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span> ' + data + "\n\n");
  164.                                         }
  165.                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  166.                                 }
  167.                         },
  168.                         timeout:0 // infinite
  169.                 });
  170.                 return false;
  171.         }
  172.  
  173. };
  174.