fix(routes): minor fixes to route, favion, setup-wizard

This commit is contained in:
Rushabh Mehta 2020-12-18 13:17:08 +05:30
parent 45f67aa9d6
commit 90363f4ba9
11 changed files with 50 additions and 54 deletions

View file

@ -144,7 +144,7 @@ frappe.setup.SetupWizard = class SetupWizard extends frappe.ui.Slides {
if (id + 1 === this.slides.length) {
this.$next_btn.removeClass("btn-primary").hide();
this.$complete_btn.addClass("btn-primary").show()
.on('click', this.action_on_complete.bind(this));
.on('click', () => this.action_on_complete());
} else {
this.$next_btn.addClass("btn-primary").show();
@ -201,7 +201,7 @@ frappe.setup.SetupWizard = class SetupWizard extends frappe.ui.Slides {
this.abort_setup(r.message.fail);
}
},
error: this.abort_setup.bind(this, "Error in setup", true)
error: this.abort_setup("Error in setup", true)
});
}

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="400px" height="400px" viewBox="0 0 400 400" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<style>
polygon {
fill: #0E253A;
}
@media (prefers-color-scheme: dark) {
polygon {
fill: #0089FF;
}
}
</style>
<g id="Artboard" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="favicon" transform="translate(110.000000, 66.000000)" fill="#0089FF" fill-rule="nonzero">
<polygon id="Path" points="0 0 0 47.1807692 57.2278846 47.1807692 167.313462 47.1807692 179.203846 47.1807692 179.203846 0"></polygon>
<polygon id="Path" points="0 120.297115 0 268.052885 57.2278846 268.052885 57.2278846 167.477885 167.313462 167.477885 167.313462 120.297115 57.2278846 120.297115"></polygon>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 877 B

View file

@ -254,8 +254,8 @@ frappe.Application = Class.extend({
load_bootinfo: function() {
if(frappe.boot) {
frappe.modules = {};
(frappe.boot.allowed_modules || []).forEach(function(m) {
frappe.modules[m.module_name]=m;
(frappe.boot.allowed_workspaces || []).forEach(function(m) {
frappe.modules[m.module]=m;
});
frappe.model.sync(frappe.boot.docs);
$.extend(frappe._messages, frappe.boot.__messages);
@ -613,24 +613,6 @@ frappe.get_module = function(m, default_module) {
return module;
}
if(module.type==="module" && !module.link) {
module.link = "modules/" + module.module_name;
}
if(module.type==="list" && !module.link) {
module.link = "List/" + module._doctype;
}
if (!module.link) module.link = "";
if (!module._id) {
// links can have complex values that range beyond simple plain text names, and so do not make for robust IDs.
// an example from python: "link": r"javascript:eval('window.open(\'timetracking\', \'_self\')')"
// this snippet allows a module to open a custom html page in the same window.
module._id = module.module_name.toLowerCase();
}
if(!module.label) {
module.label = m;
}
@ -639,10 +621,6 @@ frappe.get_module = function(m, default_module) {
module._label = __(module.label);
}
if(!module._doctype) {
module._doctype = '';
}
module._setup = true;
return module;

View file

@ -457,17 +457,11 @@ frappe.ui.form.Form = class FrappeForm {
return this.script_manager.trigger("onload_post_render");
}
},
() => this.focus_on_first_input(),
() => this.run_after_load_hook(),
() => this.dashboard.after_refresh()
]);
// focus on first input
if(this.is_new()) {
var first = this.form_wrapper.find('.form-layout input:first');
if(!in_list(["Date", "Datetime"], first.attr("data-fieldtype"))) {
first.focus();
}
}
} else {
this.refresh_header(switched);
}
@ -481,6 +475,13 @@ frappe.ui.form.Form = class FrappeForm {
this.scroll_to_element();
}
focus_on_first_input() {
let first = this.form_wrapper.find('.form-layout :input:visible:first');
if(!in_list(["Date", "Datetime"], first.attr("data-fieldtype"))) {
first.focus();
}
}
run_after_load_hook() {
if (frappe.route_hooks.after_load) {
let route_callback = frappe.route_hooks.after_load;
@ -1041,11 +1042,6 @@ frappe.ui.form.Form = class FrappeForm {
});
}
focus_on_first_input() {
let $first_input_el = $(frappe.container.page).find('.frappe-control:visible').eq(0);
$first_input_el.find('input, select, textarea').focus();
}
rename_doc() {
frappe.model.rename_doc(this.doctype, this.docname, () => this.refresh_header());
}

View file

@ -109,6 +109,7 @@ frappe.router = {
},
parse(route) {
if (!route) return [];
route = this.get_sub_path_string(route).split('/');
route = $.map(route, this.decode_component);
this.set_route_options_from_url(route);
@ -267,7 +268,7 @@ frappe.router = {
route = route[0];
}
if (route.length===1 && route[0].includes('/')) {
if (route.length===1 && route[0] && route[0].includes('/')) {
// called as frappe.set_route('a/b/c')
route = $.map(route[0].split('/'), this.decode_component);
}

View file

@ -63,7 +63,8 @@ frappe.breadcrumbs = {
this.set_workspace_breadcrumb(breadcrumbs);
// form / print
const view = frappe.get_route()[0].toLowerCase();
let view = frappe.get_route()[0];
view = view ? view.toLowerCase() : null;
if (breadcrumbs.doctype && ["print", "form"].includes(view)) {
this.set_list_breadcrumb(breadcrumbs);
this.set_form_breadcrumb(breadcrumbs, view);
@ -86,7 +87,7 @@ frappe.breadcrumbs = {
}
if (breadcrumbs.workspace) {
if(!breadcrumbs.module_info.blocked && frappe.visible_modules.includes(breadcrumbs.module_info.module_name)) {
if(!breadcrumbs.module_info.blocked && frappe.visible_modules.includes(breadcrumbs.module_info.module)) {
$(repl('<li><a href="/app/space/%(module)s">%(label)s</a></li>',
{ module: breadcrumbs.workspace, label: __(breadcrumbs.workspace) }))
.appendTo(this.$breadcrumbs);
@ -163,8 +164,8 @@ frappe.breadcrumbs = {
setup_modules() {
if(!frappe.visible_modules) {
frappe.visible_modules = $.map(frappe.boot.allowed_modules, (m) => {
return m.module_name;
frappe.visible_modules = $.map(frappe.boot.allowed_workspaces, (m) => {
return m.module;
});
}
},

View file

@ -21,7 +21,7 @@ frappe.views.pageview = {
// cached in local storage
frappe.model.sync(JSON.parse(localStorage["_page:" + name]));
callback();
} else {
} else if (name) {
// get fresh
return frappe.call({
method: 'frappe.desk.desk_page.getpage',

View file

@ -81,7 +81,7 @@
.slide-footer {
margin: var(--margin-md) 0;
padding: 0 var(--padding-sm);
padding: 0 var(--padding-lg);
.btn {
box-shadow: none;

View file

@ -15,7 +15,7 @@
{% block favicon %}
<link
rel="shortcut icon"
href="{{ (favicon or "/assets/frappe/images/favicon.png") | abs_url }}"
href="{{ (favicon or "/assets/frappe/images/frappe-favicon.svg") | abs_url }}"
type="image/x-icon"
>
{% endblock %}

View file

@ -17,6 +17,7 @@ from six.moves.urllib.parse import quote, urljoin
from html2text import html2text
from markdown2 import markdown, MarkdownError
from six import iteritems, text_type, string_types, integer_types
from frappe.desk.utils import get_doctype_route
DATE_FORMAT = "%Y-%m-%d"
TIME_FORMAT = "%H:%M:%S.%f"
@ -1058,25 +1059,25 @@ def get_link_to_report(name, label=None, report_type=None, doctype=None, filters
return """<a href='{0}'>{1}</a>""".format(get_url_to_report(name, report_type, doctype), label)
def get_absolute_url(doctype, name):
return "desk/app/Form/{0}/{1}".format(quoted(doctype), quoted(name))
return "/app/{0}/{1}".format(quoted(get_doctype_route(doctype)), quoted(name))
def get_url_to_form(doctype, name):
return get_url(uri = "desk/app/Form/{0}/{1}".format(quoted(doctype), quoted(name)))
return get_url(uri = "/app/{0}/{1}".format(quoted(get_doctype_route(doctype)), quoted(name)))
def get_url_to_list(doctype):
return get_url(uri = "desk/app/List/{0}".format(quoted(doctype)))
return get_url(uri = "/app/{0}".format(quoted(get_doctype_route(doctype))))
def get_url_to_report(name, report_type = None, doctype = None):
if report_type == "Report Builder":
return get_url(uri = "desk#Report/{0}/{1}".format(quoted(doctype), quoted(name)))
return get_url(uri = "/app/{0}/view/report/{1}".format(quoted(get_doctype_route(doctype)), quoted(name)))
else:
return get_url(uri = "desk#query-report/{0}".format(quoted(name)))
return get_url(uri = "/app/query-report/{0}".format(quoted(name)))
def get_url_to_report_with_filters(name, filters, report_type = None, doctype = None):
if report_type == "Report Builder":
return get_url(uri = "desk#Report/{0}?{1}".format(quoted(doctype), filters))
return get_url(uri = "/app/{0}/view/report?{1}".format(quoted(doctype), filters))
else:
return get_url(uri = "desk#query-report/{0}?{1}".format(quoted(name), filters))
return get_url(uri = "/app/query-report/{0}?{1}".format(quoted(name), filters))
operator_map = {
# startswith

View file

@ -150,7 +150,7 @@ def get_website_settings(context=None):
add_website_theme(context)
if not context.get("favicon"):
context["favicon"] = "/assets/frappe/images/favicon.png"
context["favicon"] = "/assets/frappe/images/frappe-favicon.svg"
if settings.favicon and settings.favicon != "attach_files:":
context["favicon"] = settings.favicon