// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
// MIT License. See license.txt
wn.pages['Setup'].onload = function(wrapper) {
if(msg_dialog && msg_dialog.display) msg_dialog.hide();
wn.ui.make_app_page({
parent: wrapper,
title: wn._('Setup'),
single_column: true
});
wrapper.appframe.add_module_icon("Setup");
wrapper.appframe.set_title_right(wn._("Refresh"), function() {
wn.setup.make(wrapper);
});
wn.setup.make(wrapper);
}
wn.setup = {
make: function(wrapper) {
wn.call({
method: "webnotes.core.page.setup.setup.get",
callback: function(r) {
wn.setup.render(r.message, $(wrapper).find(".layout-main").empty())
}
})
},
render: function(data, wrapper) {
$('
').appendTo(wrapper);
var $sections = wrapper.find(".nav-pills");
$.each(data, function(i, d) {
d._label = d.label.toLowerCase().replace(/ /g, "_");
var $nav = $sections.find('[data-label="'+d._label+'"]');
if(!$sections.find('[data-label="'+d._label+'"]').length) {
$nav = $(' '
+ wn._(d.label)+'')
.attr("data-label", d._label)
.appendTo($sections);
var $content = $('')
.toggle(false)
.attr("id", d._label)
.appendTo(wrapper.find(".contents"))
$('').appendTo($content).html('
'
+ d.label);
var $list = $('
').appendTo($content);
} else {
var $content = $("#" + d._label);
var $list = $content.find(".list-group");
}
// add items
$.each(d.items, function(i, item) {
if((item.type==="doctype" && wn.model.can_read(item.name))
|| (item.type==="page" && wn.boot.page_info[item.name])) {
if(!item.label) {
item.label = item.name;
}
if(item.type==="doctype") {
item.icon = wn.boot.doctype_icons[item.name];
}
$list_item = $($r('- \
\
', item)).appendTo($list);
$list_item.find("a")
.attr("data-type", item.type)
.attr("data-name", item.link || item.name)
.on("click", function() {
if($(this).attr("data-type")==="doctype") {
wn.set_route("List", $(this).attr("data-name"))
}
else if($(this).attr("data-type")==="page") {
wn.set_route($(this).attr("data-name"))
}
});
}
})
})
// section selection (can't use tab api - routing)
$sections.find('a').click(function (e) {
e.preventDefault();
if($(this).parent().hasClass("active")) {
return;
}
$(this).parents("ul:first").find("li.active").removeClass("active");
$(this).parent().addClass("active");
wrapper.find(".panel").toggle(false);
$("#" + $(this).parent().attr("data-label")).toggle(true);
});
$sections.find('a:first').trigger("click");
}
}