diff --git a/frappe/public/js/frappe/widgets/shortcut_widget.js b/frappe/public/js/frappe/widgets/shortcut_widget.js
index 689c57f361..a60903f7dc 100644
--- a/frappe/public/js/frappe/widgets/shortcut_widget.js
+++ b/frappe/public/js/frappe/widgets/shortcut_widget.js
@@ -2,7 +2,6 @@ import Widget from "./base_widget.js";
frappe.provide("frappe.utils");
-const INDICATOR_COLORS = ["Grey", "Green", "Red", "Orange", "Pink", "Yellow", "Blue", "Cyan", "Teal"];
export default class ShortcutWidget extends Widget {
constructor(opts) {
opts.shadow = true;
@@ -79,7 +78,7 @@ export default class ShortcutWidget extends Widget {
this.action_area.empty();
const label = get_label();
- let color = INDICATOR_COLORS.includes(this.color) && count ? this.color.toLowerCase() : 'gray';
+ let color = this.color && count ? this.color.toLowerCase() : 'gray';
$(`
${label}
`).appendTo(this.action_area);
}
}
diff --git a/frappe/public/js/frappe/widgets/widget_dialog.js b/frappe/public/js/frappe/widgets/widget_dialog.js
index fce2a35539..14b09e78bc 100644
--- a/frappe/public/js/frappe/widgets/widget_dialog.js
+++ b/frappe/public/js/frappe/widgets/widget_dialog.js
@@ -237,9 +237,19 @@ class ShortcutDialog extends WidgetDialog {
hidden: 1,
},
{
- fieldtype: "Color",
+ fieldtype: "Select",
fieldname: "color",
label: __("Color"),
+ options: ["Grey", "Green", "Red", "Orange", "Pink", "Yellow", "Blue", "Cyan", "Teal"],
+ default: "Grey",
+ onchange: () => {
+ let color = this.dialog.fields_dict.color.value.toLowerCase();
+ let $select = this.dialog.fields_dict.color.$input;
+ if (!$select.parent().find('.color-box').get(0)) {
+ $(``).insertBefore($select.get(0));
+ }
+ $select.parent().find('.color-box').get(0).style.backgroundColor = color;
+ }
},
{
fieldtype: "Column Break",
diff --git a/frappe/public/scss/common/global.scss b/frappe/public/scss/common/global.scss
index 726b3a98a6..e9646b30e5 100644
--- a/frappe/public/scss/common/global.scss
+++ b/frappe/public/scss/common/global.scss
@@ -76,6 +76,22 @@ input[type="checkbox"] {
@include card();
}
+.frappe-control[data-fieldtype="Select"].frappe-control[data-fieldname="color"] {
+ select {
+ padding-left: 40px;
+ }
+
+ .color-box {
+ position: absolute;
+ top: calc(50% - 11px);
+ left: 8px;
+ width: 22px;
+ height: 22px;
+ border-radius: 5px;
+ z-index: 1;
+ }
+}
+
.frappe-control[data-fieldtype="Select"] .control-input,
.frappe-control[data-fieldtype="Select"].form-group {
position: relative;