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}