Rev 1036 | Rev 1426 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
635 | daniel-mar | 1 | /* |
2 | * OIDplus 2.0 |
||
807 | daniel-mar | 3 | * Copyright 2019 - 2022 Daniel Marschall, ViaThinkSoft |
635 | daniel-mar | 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 | |||
647 | daniel-mar | 22 | doUpdateOIDplus: function(rev, max) { |
23 | $("#update_versioninfo").hide(); |
||
651 | daniel-mar | 24 | $("#update_infobox").html(_L("Started update from %1 to %2",rev,max)+"\n"); |
647 | daniel-mar | 25 | OIDplusPageAdminSoftwareUpdate._doUpdateOIDplus(rev, max); |
26 | }, |
||
27 | |||
28 | _doUpdateOIDplus: function(rev, max) { |
||
29 | $("#update_header").text(_L("Updating to Revision %1 ...",rev)+"\n"); |
||
797 | daniel-mar | 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. |
||
803 | daniel-mar | 32 | $("#update_infobox").html($("#update_infobox").html() + '<span class="severity_2"><strong>' + _L('INFO') + ":</strong></span> "+msg+"\n"); |
797 | daniel-mar | 33 | |
647 | daniel-mar | 34 | //show_waiting_anim(); |
635 | daniel-mar | 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, |
||
647 | daniel-mar | 48 | rev: rev, |
807 | daniel-mar | 49 | update_version: 2, |
635 | daniel-mar | 50 | action: "update_now", |
51 | }, |
||
52 | error:function(jqXHR, textStatus, errorThrown) { |
||
651 | daniel-mar | 53 | //hide_waiting_anim(); |
54 | if (errorThrown == "abort") { |
||
55 | $("#update_header").text(_L("Update aborted")); |
||
687 | daniel-mar | 56 | $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">'); |
651 | daniel-mar | 57 | return; |
58 | } else { |
||
59 | $("#update_header").text(_L("Update failed")); |
||
833 | daniel-mar | 60 | //alertError(_L("Error: %1",errorThrown)); |
659 | daniel-mar | 61 | $("#update_infobox").html($("#update_infobox").html() + "\n\n" + '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span> ' + errorThrown + "\n\n"); |
687 | daniel-mar | 62 | $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">'); |
651 | daniel-mar | 63 | } |
635 | daniel-mar | 64 | }, |
65 | success: function(data) { |
||
1292 | daniel-mar | 66 | // TODO: Use oidplus_ajax_success(), since this checks the existance of "error" in data, and checks if status>=0 |
647 | daniel-mar | 67 | //hide_waiting_anim(); |
1036 | daniel-mar | 68 | if (typeof data === "object" && "error" in data) { |
651 | daniel-mar | 69 | $("#update_header").text(_L("Update failed")); |
833 | daniel-mar | 70 | //alertError(_L("Error: %1",data.error)); |
1036 | daniel-mar | 71 | if (typeof data === "object" && "content" in data) { |
659 | daniel-mar | 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"); |
651 | daniel-mar | 73 | } else { |
659 | daniel-mar | 74 | $("#update_infobox").html($("#update_infobox").html() + "\n\n" + '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span> ' + data.error + "\n\n"); |
635 | daniel-mar | 75 | } |
687 | daniel-mar | 76 | $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">'); |
1036 | daniel-mar | 77 | } else if (typeof data === "object" && data.status >= 0) { |
807 | daniel-mar | 78 | |
1036 | daniel-mar | 79 | if (!(typeof data === "object" && "update_file" in data)) { |
807 | daniel-mar | 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)); |
||
696 | daniel-mar | 90 | $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">'); |
651 | daniel-mar | 91 | } else { |
807 | daniel-mar | 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 | } |
||
651 | daniel-mar | 98 | } |
807 | daniel-mar | 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")); |
||
833 | daniel-mar | 125 | //alertError(_L("Error: %1",errorThrown)); |
807 | daniel-mar | 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 | |||
647 | daniel-mar | 155 | } |
807 | daniel-mar | 156 | |
635 | daniel-mar | 157 | return; |
158 | } else { |
||
651 | daniel-mar | 159 | $("#update_header").text(_L("Update failed")); |
833 | daniel-mar | 160 | //alertError(_L("Error: %1",data)); |
635 | daniel-mar | 161 | if ("content" in data) { |
659 | daniel-mar | 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"); |
651 | daniel-mar | 163 | } else { |
659 | daniel-mar | 164 | $("#update_infobox").html($("#update_infobox").html() + "\n\n" + '<span class="severity_4"><strong>' + _L('FATAL ERROR') + ':</strong></span> ' + data + "\n\n"); |
635 | daniel-mar | 165 | } |
687 | daniel-mar | 166 | $("#update_infobox").html($("#update_infobox").html() + '\n\n<input type="button" onclick="location.reload()" value="'+_L('Reload page')+'">'); |
635 | daniel-mar | 167 | } |
168 | }, |
||
169 | timeout:0 // infinite |
||
170 | }); |
||
171 | return false; |
||
172 | } |
||
173 | |||
174 | }; |