Subversion Repositories oidplus

Rev

Rev 1036 | Rev 1426 | 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.                                 // TODO: Use oidplus_ajax_success(), since this checks the existance of "error" in data, and checks if status>=0
  67.                                 //hide_waiting_anim();
  68.                                 if (typeof data === "object" && "error" in data) {
  69.                                         $("#update_header").text(_L("Update failed"));
  70.                                         //alertError(_L("Error: %1",data.error));
  71.                                         if (typeof data === "object" && "content" in data) {
  72.                                                 $("#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");
  73.                                         } else {
  74.                                                 $("#update_infobox").html($("#update_infobox").html() + "\n\n" + '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span> ' + data.error + "\n\n");
  75.                                         }
  76.                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  77.                                 } else if (typeof data === "object" && data.status >= 0) {
  78.  
  79.                                         if (!(typeof data === "object" && "update_file" in data)) {
  80.  
  81.                                                 output = data.content.trim();
  82.                                                 output = output.replace(/INFO:/g, '<span class="severity_2"><strong>' + _L('INFO') + ':</strong></span>');
  83.                                                 output = output.replace(/WARNING:/g, '<span class="severity_3"><strong>' + _L('WARNING') + ':</strong></span>');
  84.                                                 output = output.replace(/FATAL ERROR:/g, '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span>');
  85.                                                 $("#update_infobox").html($("#update_infobox").html() + output + "\n");
  86.                                                 rev = data.rev=="HEAD" ? max : data.rev;
  87.                                                 if (rev >= max) {
  88.                                                         $("#update_header").text(_L("Update finished"));
  89.                                                         $("#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));
  90.                                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  91.                                                 } else {
  92.                                                         if (output.includes("FATAL ERROR:")) {
  93.                                                                 $("#update_header").text(_L("Update failed"));
  94.                                                                 $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  95.                                                         } else {
  96.                                                                 OIDplusPageAdminSoftwareUpdate._doUpdateOIDplus(parseInt(rev)+1, max);
  97.                                                         }
  98.                                                 }
  99.                                                 return;
  100.  
  101.                                         } else {
  102.  
  103.                                                 console.log("Execute update file " + data.update_file);
  104.  
  105.                                                 $.ajax({
  106.                                                         url: data.update_file,
  107.                                                         type: "GET",
  108.                                                         beforeSend: function(jqXHR, settings) {
  109.                                                                 $.xhrPool.abortAll();
  110.                                                                 $.xhrPool.add(jqXHR);
  111.                                                         },
  112.                                                         complete: function(jqXHR, text) {
  113.                                                                 $.xhrPool.remove(jqXHR);
  114.                                                         },
  115.                                                         data: {
  116.                                                         },
  117.                                                         error:function(jqXHR, textStatus, errorThrown) {
  118.                                                                 //hide_waiting_anim();
  119.                                                                 if (errorThrown == "abort") {
  120.                                                                         $("#update_header").text(_L("Update aborted"));
  121.                                                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  122.                                                                         return;
  123.                                                                 } else {
  124.                                                                         $("#update_header").text(_L("Update failed"));
  125.                                                                         //alertError(_L("Error: %1",errorThrown));
  126.                                                                         $("#update_infobox").html($("#update_infobox").html() + "\n\n" + '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span> ' + errorThrown + "\n\n");
  127.                                                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  128.                                                                 }
  129.                                                         },
  130.                                                         success: function(data2) {
  131.                                                                 //hide_waiting_anim();
  132.                                                                 output2 = data2.trim();
  133.                                                                 output2 = output2.replace(/INFO:/g, '<span class="severity_2"><strong>' + _L('INFO') + ':</strong></span>');
  134.                                                                 output2 = output2.replace(/WARNING:/g, '<span class="severity_3"><strong>' + _L('WARNING') + ':</strong></span>');
  135.                                                                 output2 = output2.replace(/FATAL ERROR:/g, '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span>');
  136.                                                                 $("#update_infobox").html($("#update_infobox").html() + output2 + "\n");
  137.                                                                 rev = data.rev=="HEAD" ? max : data.rev;
  138.                                                                 if (rev >= max) {
  139.                                                                         $("#update_header").text(_L("Update finished"));
  140.                                                                         $("#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));
  141.                                                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  142.                                                                 } else {
  143.                                                                         if (output2.includes("FATAL ERROR:")) {
  144.                                                                                 $("#update_header").text(_L("Update failed"));
  145.                                                                                 $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  146.                                                                         } else {
  147.                                                                                 OIDplusPageAdminSoftwareUpdate._doUpdateOIDplus(parseInt(rev)+1, max);
  148.                                                                         }
  149.                                                                 }
  150.                                                                 return;
  151.                                                         },
  152.                                                         timeout:0 // infinite
  153.                                                 });
  154.  
  155.                                         }
  156.  
  157.                                         return;
  158.                                 } else {
  159.                                         $("#update_header").text(_L("Update failed"));
  160.                                         //alertError(_L("Error: %1",data));
  161.                                         if ("content" in data) {
  162.                                                 $("#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");
  163.                                         } else {
  164.                                                 $("#update_infobox").html($("#update_infobox").html() + "\n\n" + '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span> ' + data + "\n\n");
  165.                                         }
  166.                                         $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">');
  167.                                 }
  168.                         },
  169.                         timeout:0 // infinite
  170.                 });
  171.                 return false;
  172.         }
  173.  
  174. };
  175.