diff --git a/frappe/patches.txt b/frappe/patches.txt
index e34fe93223..9e09d6364f 100644
--- a/frappe/patches.txt
+++ b/frappe/patches.txt
@@ -320,3 +320,4 @@ frappe.patches.v13_0.remove_custom_link
execute:frappe.delete_doc("DocType", "Footer Item")
frappe.patches.v13_0.replace_field_target_with_open_in_new_tab
frappe.core.doctype.role.patches.v13_set_default_desk_properties
+frappe.patches.v13_0.add_switch_theme_to_navbar_settings
\ No newline at end of file
diff --git a/frappe/patches/v13_0/add_switch_theme_to_navbar_settings.py b/frappe/patches/v13_0/add_switch_theme_to_navbar_settings.py
new file mode 100644
index 0000000000..29b99464b5
--- /dev/null
+++ b/frappe/patches/v13_0/add_switch_theme_to_navbar_settings.py
@@ -0,0 +1,21 @@
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+ navbar_settings = frappe.get_single("Navbar Settings")
+
+ if frappe.db.exists('Navbar Item', {'item_label': 'Toggle Theme'}):
+ return
+
+ for navbar_item in navbar_settings.settings_dropdown[6:]:
+ navbar_item.idx = navbar_item.idx + 1
+
+ navbar_settings.append('settings_dropdown', {
+ 'item_label': 'Toggle Theme',
+ 'item_type': 'Action',
+ 'action': 'new frappe.ui.ThemeSwitcher().show()',
+ 'is_standard': 1,
+ 'idx': 7
+ })
+
+ navbar_settings.save()
\ No newline at end of file
diff --git a/frappe/public/js/frappe/form/controls/multiselect_list.js b/frappe/public/js/frappe/form/controls/multiselect_list.js
index 4e851b384a..5884a18753 100644
--- a/frappe/public/js/frappe/form/controls/multiselect_list.js
+++ b/frappe/public/js/frappe/form/controls/multiselect_list.js
@@ -210,7 +210,7 @@ frappe.ui.form.ControlMultiSelectList = frappe.ui.form.ControlData.extend({
${option.label}
${option.description}
-
+ ${frappe.utils.icon('tick', 'xs')}
`;
}).join('');
if (!html) {
diff --git a/frappe/public/js/frappe/router.js b/frappe/public/js/frappe/router.js
index a4e8bc081f..914cf8a74f 100644
--- a/frappe/public/js/frappe/router.js
+++ b/frappe/public/js/frappe/router.js
@@ -279,7 +279,8 @@ frappe.router = {
// ["Form", "Sales Order", "SO-0001"] => /sales-order/SO-0001
// ["Tree", "Account"] = /account/view/tree
- const view = route[0].toLowerCase();
+ // route[0] is not available for home "/app"
+ const view = route[0] && route[0].toLowerCase();
if (view === 'list') {
if (route[2] && route[2] !== 'list') {
const new_route = [this.slug(route[1]), 'view', route[2].toLowerCase()];
diff --git a/frappe/public/scss/desk/controls.scss b/frappe/public/scss/desk/controls.scss
index 9748aacb71..1925de7878 100644
--- a/frappe/public/scss/desk/controls.scss
+++ b/frappe/public/scss/desk/controls.scss
@@ -33,11 +33,49 @@
background-color: var(--control-bg);
}
+/* multiselect list */
.multiselect-list {
.status-text {
position: absolute;
top: 4px;
}
+
+ .dropdown-menu {
+ width: 100%;
+ }
+
+ li {
+ padding: var(--padding-sm);
+ }
+
+ .selectable-item {
+ cursor: pointer;
+ @include flex(flex, space-between, center, null);
+ .icon {
+ display: none;
+ }
+ }
+
+ .selectable-item.selected {
+ background-color: var(--yellow-highlight-color);
+
+ .icon {
+ display: block;
+ }
+ }
+
+ .selectable-item:hover, .selectable-item.highlighted {
+ background-color: var(--fg-hover-color);
+ }
+
+ .selectable-items {
+ max-height: 200px;
+ overflow: auto;
+
+ .multiselect-check {
+ margin-left: var(--margin-sm);
+ }
+ }
}
.frappe-control {
diff --git a/frappe/public/scss/desk/css_variables.scss b/frappe/public/scss/desk/css_variables.scss
index 92ac33ad8d..524c7ccd3e 100644
--- a/frappe/public/scss/desk/css_variables.scss
+++ b/frappe/public/scss/desk/css_variables.scss
@@ -219,10 +219,13 @@
--page-head-height: 75px;
--page-bottom-margin: 60px;
+ // input
+ --input-height: $input-height;
+
// timeline
--timeline-item-icon-size: 34px;
--timeline-item-left-margin: var(--margin-xl);
--timeline-item-bottom-margin: var(--margin-sm);
--timeline-content-max-width: 700px;
- --timeline-left-padding: calc(var(--padding-xl) + var(--timeline-item-icon-size)/2)
+ --timeline-left-padding: calc(var(--padding-xl) + var(--timeline-item-icon-size)/2);
}
\ No newline at end of file
diff --git a/frappe/public/scss/desk/form.scss b/frappe/public/scss/desk/form.scss
index f6813def5d..55f1ec364b 100644
--- a/frappe/public/scss/desk/form.scss
+++ b/frappe/public/scss/desk/form.scss
@@ -85,9 +85,10 @@
}
.like-disabled-input {
- min-height: $input-height;
+ min-height: var(--input-height);
border-radius: $border-radius;
font-weight: 400;
+ padding: 8px 12px;
cursor: default;
color: var(--gray-500);
background-color: var(--control-bg);