Subversion Repositories oidplus

Rev

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
};