seitime-frappe/core/page/update_manager/update_manager.js
2013-04-19 13:01:31 +05:30

65 lines
1.9 KiB
JavaScript

wn.pages['update-manager'].onload = function(wrapper) {
wn.ui.make_app_page({
parent: wrapper,
title: 'Update This Application',
single_column: true
});
wrapper.update_this_app = new wn.UpdateThisApp(wrapper);
};
wn.UpdateThisApp = Class.extend({
init: function(wrapper) {
this.wrapper = wrapper;
this.body = $(this.wrapper).find(".layout-main");
this.wrapper.appframe.add_home_breadcrumb();
this.wrapper.appframe.add_module_icon("Setup");
this.wrapper.appframe.add_breadcrumb("icon-magnet");
this.make();
},
make: function() {
var me = this;
if(wn.boot && wn.boot.expires_on) {
wn.utils.set_intro(this.wrapper, $("<div></div>").appendTo(this.body),
wn._('This feature is only applicable to self hosted instances'));
} else {
this.wrapper.appframe.add_button(wn._("Get Latest Updates"),
function() { me.update_this_app(this); }, "icon-rss");
this.wrapper.update_output = $('<pre class="update-output"></pre>')
.appendTo(this.body);
this.wrapper.update_output.toggle(false);
this.wrapper.progress_bar = $('<div class="app-update-progress-bar well"></div>')
.appendTo(this.body);
this.wrapper.progress_bar.text(wn._('Click on "Get Latest Updates"'));
}
},
update_this_app: function(btn) {
var me = this;
me.wrapper.update_output.toggle(false);
me.wrapper.progress_bar.empty().toggle(true);
this.wrapper.progress_bar.html('<div class="progress progress-striped active"> \
<div class="bar" style="width: 100%;"></div> \
</div> \
<div>' + wn._("Update is in progress. This may take some time.") + '</div>');
wn.call({
module: "core",
page: "update_manager",
method: "update_this_app",
callback: function(r) {
me.wrapper.update_output.toggle(true);
me.wrapper.progress_bar.empty().toggle(false);
me.wrapper.update_output.text(r.message);
},
btn: btn,
});
},
});