updater.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. function updateSelf() {
  2. try {
  3. var query = "backend.php?op=pluginhandler&plugin=updater&method=updateSelf";
  4. if (dijit.byId("updateSelfDlg"))
  5. dijit.byId("updateSelfDlg").destroyRecursive();
  6. var dialog = new dijit.Dialog({
  7. id: "updateSelfDlg",
  8. title: __("Update Tiny Tiny RSS"),
  9. style: "width: 600px",
  10. closable: false,
  11. performUpdate: function(step) {
  12. dijit.byId("self_update_start_btn").attr("disabled", true);
  13. dijit.byId("self_update_stop_btn").attr("disabled", true);
  14. notify_progress("Loading, please wait...", true);
  15. new Ajax.Request("backend.php", {
  16. parameters: "op=pluginhandler&plugin=updater&method=performUpdate&step=" + step +
  17. "&params=" + param_escape(JSON.stringify(dialog.attr("update-params"))),
  18. onComplete: function(transport) {
  19. try {
  20. rv = JSON.parse(transport.responseText);
  21. if (rv) {
  22. notify('');
  23. rv['log'].each(function(line) {
  24. $("self_update_log").innerHTML += "<li>" + line + "</li>";
  25. });
  26. dialog.attr("update-params", rv['params']);
  27. if (!rv['stop']) {
  28. window.setTimeout("dijit.byId('updateSelfDlg').performUpdate("+(step+1)+")", 500);
  29. } else {
  30. dijit.byId("self_update_stop_btn").attr("disabled", false);
  31. }
  32. } else {
  33. console.log(transport.responseText);
  34. notify_error("Received invalid data from server.");
  35. }
  36. dialog.attr("updated", true);
  37. } catch (e) {
  38. exception_error("updateSelf/inner", e);
  39. }
  40. } });
  41. },
  42. close: function() {
  43. if (dialog.attr("updated")) {
  44. window.location.reload();
  45. } else {
  46. dialog.hide();
  47. }
  48. },
  49. start: function() {
  50. if (prompt(__("Backup your tt-rss directory before continuing. Please type 'yes' to continue.")) == 'yes') {
  51. dialog.performUpdate(0);
  52. }
  53. },
  54. href: query});
  55. dialog.show();
  56. } catch (e) {
  57. exception_error("batchSubscribe", e);
  58. }
  59. }