diff --git a/frappe/apps.py b/frappe/apps.py index ab76365fd9..6a96010a09 100644 --- a/frappe/apps.py +++ b/frappe/apps.py @@ -64,3 +64,9 @@ def get_default_path(): elif is_desk_apps(_apps): return "/app" return "/apps" + + +@frappe.whitelist() +def set_app_as_default(app_name): + frappe.db.set_value("User", frappe.session.user, "default_app", app_name) + return True diff --git a/frappe/www/apps.css b/frappe/www/apps.css index c8732faf1e..296a571f2b 100644 --- a/frappe/www/apps.css +++ b/frappe/www/apps.css @@ -41,6 +41,17 @@ align-items: center; justify-content: center; text-decoration: none; + position: relative; +} + +.app-icon:hover .set-default { + display: block !important; +} + +.set-default { + position: absolute; + top: -20px; + right: -20px; } .app-logo { diff --git a/frappe/www/apps.html b/frappe/www/apps.html index 6ae8591c51..df3a164023 100644 --- a/frappe/www/apps.html +++ b/frappe/www/apps.html @@ -14,6 +14,15 @@ endblock -%} {%- block footer -%} {%- endblock -%} {% block content %}
{{ app.title }}
+
+ + + +
{% endfor %} @@ -39,3 +48,19 @@ endblock -%} {%- block footer -%} {%- endblock -%} {% block content %} {% endblock %} + +{% block script %} + +{% endblock %} diff --git a/frappe/www/apps.py b/frappe/www/apps.py index a8dddefa38..292b282212 100644 --- a/frappe/www/apps.py +++ b/frappe/www/apps.py @@ -13,4 +13,13 @@ def get_context(): if frappe.session.data.user_type == "Website User": frappe.throw(_("You are not permitted to access this page."), frappe.PermissionError) - return {"apps": get_apps()} + system_default_app = frappe.get_system_settings("default_app") + user_default_app = frappe.db.get_value("User", frappe.session.user, "default_app") + default_app = user_default_app if user_default_app else system_default_app + + all_apps = get_apps() + + for app in all_apps: + app["is_default"] = True if app.get("name") == default_app else False + + return {"apps": all_apps}