|
26 |
* /usr/share/common-licenses/AGPL-3; if not, see |
26 |
* /usr/share/common-licenses/AGPL-3; if not, see |
27 |
* <http://www.gnu.org/licenses/>. |
27 |
* <http://www.gnu.org/licenses/>. |
28 |
*/ |
28 |
*/ |
29 |
/*global define,console,setTimeout*/ |
29 |
/*global define,console*/ |
30 |
|
30 |
|
31 |
define([ |
31 |
define([ |
32 |
"dojo/_base/declare", |
32 |
"dojo/_base/declare", |
Lines 37-46
define([
|
Link Here
|
---|
|
37 |
"dojo/topic", |
37 |
"dojo/topic", |
38 |
"dojo/Deferred", |
38 |
"dojo/Deferred", |
39 |
"dojox/string/sprintf", |
39 |
"dojox/string/sprintf", |
40 |
"umc/dialog", |
|
|
41 |
"umc/app", |
40 |
"umc/app", |
42 |
"umc/tools", |
41 |
"umc/tools", |
43 |
"umc/store", |
42 |
"umc/store", |
|
|
43 |
"umc/modules/lib/server", |
44 |
"umc/widgets/TitlePane", |
44 |
"umc/widgets/TitlePane", |
45 |
"umc/widgets/Text", |
45 |
"umc/widgets/Text", |
46 |
"umc/widgets/HiddenInput", |
46 |
"umc/widgets/HiddenInput", |
Lines 48-57
define([
|
Link Here
|
---|
|
48 |
"umc/modules/updater/Page", |
48 |
"umc/modules/updater/Page", |
49 |
"umc/modules/updater/Form", |
49 |
"umc/modules/updater/Form", |
50 |
"umc/i18n!umc/modules/updater" |
50 |
"umc/i18n!umc/modules/updater" |
51 |
], function(declare, lang, array, all, domClass, topic, Deferred, sprintf, dialog, UMCApplication, tools, store, TitlePane, Text, HiddenInput, ComboBox, Page, Form, _) { |
51 |
], function(declare, lang, array, all, domClass, topic, Deferred, sprintf, UMCApplication, tools, store, server, TitlePane, Text, HiddenInput, ComboBox, Page, Form, _) { |
52 |
return declare("umc.modules.updater.UpdatesPage", Page, { |
52 |
return declare("umc.modules.updater.UpdatesPage", Page, { |
53 |
|
53 |
|
54 |
_last_reboot: false, |
|
|
55 |
_update_prohibited: false, |
54 |
_update_prohibited: false, |
56 |
standby: null, // parents standby method must be passed. weird IE-Bug (#29587) |
55 |
standby: null, // parents standby method must be passed. weird IE-Bug (#29587) |
57 |
standbyDuring: null, // parents standby method must be passed. weird IE-Bug (#29587) |
56 |
standbyDuring: null, // parents standby method must be passed. weird IE-Bug (#29587) |
Lines 76-90
define([
|
Link Here
|
---|
|
76 |
name: 'reboot_required' |
75 |
name: 'reboot_required' |
77 |
}, { |
76 |
}, { |
78 |
type: Text, |
77 |
type: Text, |
79 |
name: 'reboot_progress_text', |
|
|
80 |
label: '', |
81 |
size: 'Two', |
82 |
content: _("The computer is now rebooting. ") + |
83 |
_("This may take some time. Please be patient. ") + |
84 |
_("During reboot, the connection to the system will be lost. ") + |
85 |
_("When the connection is back you will be prompted to authenticate yourself again.") |
86 |
}, { |
87 |
type: Text, |
88 |
name: 'reboot_text', |
78 |
name: 'reboot_text', |
89 |
label: ' ', |
79 |
label: ' ', |
90 |
content: _("In order to complete the recently executed action, it is required to reboot the system."), |
80 |
content: _("In order to complete the recently executed action, it is required to reboot the system."), |
Lines 329-335
define([
|
Link Here
|
---|
|
329 |
name: 'reboot', |
319 |
name: 'reboot', |
330 |
label: _("Reboot"), |
320 |
label: _("Reboot"), |
331 |
callback: lang.hitch(this, function() { |
321 |
callback: lang.hitch(this, function() { |
332 |
this._reboot(); |
322 |
server.askReboot(); |
333 |
topic.publish('/umc/actions', this.moduleID, this.moduleFlavor, 'reboot'); |
323 |
topic.publish('/umc/actions', this.moduleID, this.moduleFlavor, 'reboot'); |
334 |
}), |
324 |
}), |
335 |
style: 'margin:0', |
325 |
style: 'margin:0', |
Lines 349-355
define([
|
Link Here
|
---|
|
349 |
var layout = [{ |
339 |
var layout = [{ |
350 |
label: _("Reboot required"), |
340 |
label: _("Reboot required"), |
351 |
layout: [ |
341 |
layout: [ |
352 |
['reboot_progress_text'], |
|
|
353 |
['reboot_text', 'reboot'] |
342 |
['reboot_text', 'reboot'] |
354 |
] |
343 |
] |
355 |
}, { |
344 |
}, { |
Lines 443-449
define([
|
Link Here
|
---|
|
443 |
var ebu = this._form._buttons.easy_upgrade; |
432 |
var ebu = this._form._buttons.easy_upgrade; |
444 |
domClass.toggle(ebu.domNode, 'dijitHidden', ! ava); |
433 |
domClass.toggle(ebu.domNode, 'dijitHidden', ! ava); |
445 |
|
434 |
|
446 |
this._show_reboot_pane(values.reboot_required); |
435 |
this._show_reboot_pane(tools.isTrue(values.reboot_required)); |
447 |
|
436 |
|
448 |
} catch(error) { |
437 |
} catch(error) { |
449 |
console.error("onLoaded: " + error.message); |
438 |
console.error("onLoaded: " + error.message); |
Lines 488-518
define([
|
Link Here
|
---|
|
488 |
|
477 |
|
489 |
}, |
478 |
}, |
490 |
|
479 |
|
491 |
_attemptReconnect: function() { |
|
|
492 |
tools.umcpCommand('updater/poll', {}, false).then( |
493 |
lang.hitch(this, function() { |
494 |
this.onQuerySuccess('updater/poll'); |
495 |
// most probably not restarted yet |
496 |
setTimeout(lang.hitch(this, function() { |
497 |
this._attemptReconnect(); |
498 |
}), 5000); |
499 |
}), |
500 |
lang.hitch(this, function(data) { |
501 |
var result = tools.parseError(data); |
502 |
if (result.status == 401) { |
503 |
// to reset this._updates_available |
504 |
// see this._check_dist_upgrade() |
505 |
this.refreshPage(true); |
506 |
} else { |
507 |
setTimeout(lang.hitch(this, function() { |
508 |
this._attemptReconnect(); |
509 |
}), 5000); |
510 |
} |
511 |
this.onQueryError('updater/poll', data); |
512 |
}) |
513 |
); |
514 |
}, |
515 |
|
516 |
_get_errata_link: function(version) { |
480 |
_get_errata_link: function(version) { |
517 |
var versionWithoutPatchlevel; |
481 |
var versionWithoutPatchlevel; |
518 |
try { |
482 |
try { |
Lines 614-668
define([
|
Link Here
|
---|
|
614 |
} |
578 |
} |
615 |
}, |
579 |
}, |
616 |
|
580 |
|
617 |
// Switches visibility of the reboot pane on or off. Second arg 'inprogress' |
581 |
// Switches visibility of the reboot pane on or off |
618 |
// switches between 'affordance to reboot' (progress=false) and |
582 |
_show_reboot_pane: function(yes) { |
619 |
// 'reboot in progress' (progress=true). |
583 |
domClass.toggle(this._titlepanes.reboot.domNode, 'dijitHidden', !yes); |
620 |
// |
|
|
621 |
_show_reboot_pane: function(yes, progress) { |
622 |
|
623 |
if (typeof(yes) == 'string') { |
624 |
yes = (yes == 'true'); |
625 |
} |
626 |
|
627 |
// pop a message up whenever the 'on' value changes |
628 |
if (yes != this._last_reboot) { |
629 |
this._last_reboot = yes; |
630 |
} |
631 |
|
632 |
domClass.toggle(this._titlepanes.reboot.domNode, 'dijitHidden', ! yes); |
633 |
|
584 |
|
634 |
if (yes) { |
585 |
if (yes) { |
635 |
if (progress === undefined) { |
586 |
this._form.showWidget('reboot_text', yes); |
636 |
progress = false; |
|
|
637 |
} |
638 |
this._form.showWidget('reboot_text', ! progress); |
639 |
this._form.showWidget('reboot_progress_text', progress); |
640 |
|
587 |
|
641 |
var but = this._form._buttons.reboot; |
588 |
var but = this._form._buttons.reboot; |
642 |
domClass.toggle(but.domNode, 'dijitHidden', progress); |
589 |
domClass.toggle(but.domNode, 'dijitHidden', false); |
643 |
} |
590 |
} |
644 |
|
591 |
|
645 |
}, |
592 |
}, |
646 |
|
593 |
|
647 |
// called when the 'reboot' button is pressed. |
|
|
648 |
// now with confirmation that doesn't depend on the 'confirmations' setting. |
649 |
_reboot: function() { |
650 |
|
651 |
dialog.confirm(_("Do you really want to reboot the machine?"), [{ |
652 |
label: _("Cancel"), |
653 |
'default': true |
654 |
}, { |
655 |
label: _("Reboot"), |
656 |
callback: lang.hitch(this, function() { |
657 |
this.standbyDuring(tools.umcpCommand('updater/installer/reboot').then(lang.hitch(this, function() { |
658 |
this._show_reboot_pane(true, true); |
659 |
this._attemptReconnect(); |
660 |
}))); |
661 |
}) |
662 |
}]); |
663 |
|
664 |
}, |
665 |
|
666 |
// First page refresh doesn't work properly when invoked in 'buildRendering()' so |
594 |
// First page refresh doesn't work properly when invoked in 'buildRendering()' so |
667 |
// we defer it until the UI is being shown |
595 |
// we defer it until the UI is being shown |
668 |
startup: function() { |
596 |
startup: function() { |