diff --git a/frappe/public/js/frappe/utils/common.js b/frappe/public/js/frappe/utils/common.js
index 9ff4ade761..e6f4ca293c 100644
--- a/frappe/public/js/frappe/utils/common.js
+++ b/frappe/public/js/frappe/utils/common.js
@@ -45,6 +45,18 @@ frappe.avatar = function (user, css_class, title, image_url = null) {
}
};
+frappe.avatar_group = function(users, limit=4, css_class="avatar avatar-small") {
+ let extra_count = users.length - limit;
+ let html = users.splice(0, limit).map((user) => frappe.avatar(user, css_class)).join('')
+ if (extra_count > 0) {
+ return `
${html}
+
+
`;
+ } else {
+ return `${html}
`;
+ }
+}
+
frappe.ui.scroll = function(element, animate, additional_offset) {
var header_offset = $(".navbar").height() + $(".page-head").height();
var top = $(element).offset().top - header_offset - cint(additional_offset);
diff --git a/frappe/public/scss/avatar.scss b/frappe/public/scss/avatar.scss
index a2ed696c8b..32f56797a9 100644
--- a/frappe/public/scss/avatar.scss
+++ b/frappe/public/scss/avatar.scss
@@ -39,6 +39,10 @@
height: 24px;
text-align: center;
+ .avatar-frame {
+ padding: 12px;
+ }
+
.standard-image {
font-size: $font-size-sm;
width: 24px;
@@ -55,6 +59,10 @@
width: 36px;
height: 36px;
+ .avatar-frame {
+ padding: 18px;
+ }
+
.standard-image {
font-size: 18px;
}
@@ -64,6 +72,11 @@
width: 72px;
height: 72px;
+ .avatar-frame {
+ padding: 36px;
+ }
+
+
.standard-image {
font-size: 36px;
}
@@ -73,14 +86,22 @@
width: 108px;
height: 108px;
+ .avatar-frame {
+ padding: 54px;
+ }
+
.standard-image {
font-size: 36px;
}
}
.avatar-xs {
- width: 17px;
- height: 17px;
+ width: 16px;
+ height: 16px;
+
+ .avatar-frame {
+ padding: 8px;
+ }
.standard-image {
font-size: 9px;
@@ -108,3 +129,30 @@
border: 1px solid $border-color;
font-weight: normal;
}
+
+.avatar-group {
+ display: flex;
+ align-items: center;
+
+ .avatar {
+ position: relative;
+ z-index: 2;
+
+ .avatar-frame {
+ border: 2px solid $white;
+ }
+
+ &:hover {
+ z-index: 3;
+ }
+ }
+
+ .extra-count {
+ margin-left: 8px;
+ margin-top: 2px;
+ }
+
+ .avatar+.avatar {
+ margin-left: -0.5rem;
+ }
+}
\ No newline at end of file