// Copyright 2013 Web Notes Technologies Pvt Ltd // License: MIT. See license.txt // wn._("Form") wn.ui.AppFrame = Class.extend({ init: function(parent, title, module) { this.set_document_title = true; this.buttons = {}; this.$w = $('
').prependTo(parent); $('\
\

\

\
\
\ ').appendTo(this.$w); this.$w.find('.close').click(function() { window.history.back(); }) if(title) this.set_title(title); }, get_title_area: function() { return this.$w.find(".title-area"); }, set_title: function(txt, full_text) { this.title = txt; this.$w.find(".breadcrumb .appframe-title").html(txt); this.$w.find(".title-text").html(txt); }, set_sub_title: function(txt) { this.$w.find(".sub-title-area").html(txt); }, clear_breadcrumbs: function() { this.$w.find(".breadcrumb").empty(); }, add_breadcrumb: function(icon, link, title) { if(link) { $(repl('
  • \ /
  • ', { icon: icon, link: link, title: wn._(title) })).appendTo(this.$w.find(".breadcrumb")); } else { $(repl("
  • \ \
  • ", { icon: icon, })).appendTo(this.$w.find(".breadcrumb")); if(this.title) this.set_title(this.title); } }, add_home_breadcrumb: function() { this.add_breadcrumb("icon-home", wn.home_page, "Home"); }, add_list_breadcrumb: function(doctype) { this.add_breadcrumb("icon-list", "List/" + encodeURIComponent(doctype), doctype + " List"); }, add_module_icon: function(module) { var module_info = wn.modules[module]; if(module_info) { this.$w.find(".title-icon").html(' ') .css({"cursor":"pointer"}) .attr("module-name", module) .click(function() { wn.set_route(wn.modules[$(this).attr("module-name")].link); }); } }, set_views_for: function(doctype, active_view) { this.doctype = doctype; var me = this; var views = [{ icon: "icon-file-alt", route: "", type: "form", set_route: function() { if(wn.views.formview[me.doctype]) { wn.set_route("Form", me.doctype, wn.views.formview[me.doctype].frm.docname); } else { new_doc(doctype); } } }]; if(!locals.DocType[doctype].issingle) { views.push({ icon: "icon-list", route: "List/" + doctype, type: "list" }); } if(locals.DocType[doctype].__calendar_js) { views.push({ icon: "icon-calendar", route: "Calendar/" + doctype, type: "calendar" }); } if(wn.model.can_get_report(doctype)) { views.push({ icon: "icon-table", route: "Report2/" + doctype, type: "report" }); } this.set_views(views, active_view); }, set_views: function(views, active_view) { var me = this; $right = this.$w.find(".appframe-right .btn-group"); $.each(views, function(i, e) { var btn = $(repl('', e)) .click(e.set_route || function() { window.location.hash = "#" + $(this).attr("data-route"); }) .css({ width: "39px" }) .attr("title", wn._(toTitle(e.type))) .appendTo($right); if(e.type==active_view) { btn.addClass("btn-inverse"); } }); }, add_help_button: function(txt) { this.add_toolbar(); $('') .data('help-text', txt) .click(function() { msgprint($(this).data('help-text'), 'Help'); }) .appendTo(this.toolbar); }, clear_buttons: function() { this.toolbar && this.toolbar.empty(); $(".custom-menu").remove(); }, add_toolbar: function() { if(!this.toolbar) { this.toolbar = $('').appendTo(this.$w.find(".toolbar-area")).find(".nav"); } }, add_button: function(label, click, icon) { this.add_toolbar(); args = { label: label, icon:'' }; if(icon) { args.icon = ''; } this.buttons[label] = $(repl('
  • \ %(icon)s %(label)s
  • ', args)) .appendTo(this.toolbar) .find("a") .click(click); return this.buttons[label]; }, add_title_button: function(label, click, icon) { args = { label: label, icon:'' }; if(icon) { args.icon = ''; } this.buttons[label] = $(repl('', args)) .appendTo(this.$w.find(".title-button-area")) .click(click); return this.buttons[label]; }, add_dropdown: function(label) { this.add_toolbar(); this.buttons[label] = $('
  • ').appendTo(menu); } return $('
  • '+label+'
  • ') .appendTo(menu) .find("a") .click(function() { click(); return false; }); }, add_label: function(label) { return $(""+label+" ") .appendTo($("
  • ").appendTo(this.toolbar)); }, add_select: function(label, options) { this.add_toolbar(); return $("") .appendTo($("
  • ").appendTo(this.toolbar)); }, add_date: function(label, date) { this.add_toolbar(); return $("").datepicker({ dateFormat: sys_defaults.date_format.replace("yyyy", "yy"), changeYear: true, }).val(dateutil.str_to_user(date) || "") .appendTo($("
  • ").appendTo(this.toolbar)); }, add_check: function(label) { this.add_toolbar(); return $("") .appendTo($("
  • ").appendTo(this.toolbar)) .find("input"); }, add_ripped_paper_effect: function(wrapper) { if(!wrapper) var wrapper = wn.container.page; var layout_main = $(wrapper).find('.layout-main'); if(!layout_main.length) { layout_main = $(wrapper).find('.layout-main-section'); } layout_main.css({"padding-top":"25px"}); $('
    ') .prependTo(layout_main) .css({"width": $(layout_main).width()}); } }); // parent, title, single_column // standard page with appframe wn.ui.make_app_page = function(opts) { if(opts.single_column) { $('
    \
    \
    \
    ').appendTo(opts.parent); } else { $('
    \
    \
    \
    \
    \
    \
    ').appendTo(opts.parent); } opts.parent.appframe = new wn.ui.AppFrame($(opts.parent).find('.layout-appframe')); if(opts.set_document_title!==undefined) opts.parent.appframe.set_document_title = opts.set_document_title; if(opts.title) opts.parent.appframe.set_title(opts.title); }