Make liked_by popover scrollable
This commit is contained in:
parent
171289a309
commit
f4e7ff05cf
4 changed files with 37 additions and 24 deletions
|
|
@ -85,26 +85,30 @@ frappe.ui.click_toggle_like = function() {
|
|||
return false;
|
||||
}
|
||||
|
||||
frappe.ui.setup_like_popover = function($parent, selector, check_not_liked=true) {
|
||||
frappe.ui.setup_like_popover = ($parent, selector, check_not_liked=true) => {
|
||||
if (frappe.dom.is_touchscreen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$parent.on("mouseover", selector, function() {
|
||||
var $wrapper = $(this);
|
||||
|
||||
$wrapper.popover({
|
||||
$parent.on('mouseover', selector, function() {
|
||||
const target_element = $(this);
|
||||
target_element.popover({
|
||||
animation: true,
|
||||
placement: "right",
|
||||
content: function() {
|
||||
var liked_by = $wrapper.attr('data-liked-by');
|
||||
placement: 'right',
|
||||
trigger: 'manual',
|
||||
template:`<div class="liked-by-popover popover">
|
||||
<div class="arrow"></div>
|
||||
<div class="popover-content"></div>
|
||||
</div>`,
|
||||
content: () => {
|
||||
let liked_by = target_element.attr('data-liked-by');
|
||||
liked_by = liked_by ? decodeURI(liked_by) : '[]';
|
||||
liked_by = JSON.parse(liked_by);
|
||||
|
||||
var user = frappe.session.user;
|
||||
const user = frappe.session.user;
|
||||
// hack
|
||||
if (check_not_liked) {
|
||||
if ($wrapper.find(".not-liked").length) {
|
||||
if (target_element.find(".not-liked").length) {
|
||||
if (liked_by.indexOf(user)!==-1) {
|
||||
liked_by.splice(liked_by.indexOf(user), 1);
|
||||
}
|
||||
|
|
@ -118,16 +122,25 @@ frappe.ui.setup_like_popover = function($parent, selector, check_not_liked=true)
|
|||
if (!liked_by.length) {
|
||||
return "";
|
||||
}
|
||||
return frappe.render_template("liked_by", {"liked_by": liked_by});
|
||||
return frappe.render_template('liked_by', {'liked_by': liked_by});
|
||||
},
|
||||
html: true,
|
||||
container: 'body'
|
||||
});
|
||||
|
||||
$wrapper.popover('show');
|
||||
target_element.popover('show');
|
||||
|
||||
$(".popover").on("mouseleave", () => {
|
||||
target_element.popover('hide');
|
||||
});
|
||||
|
||||
target_element.on('mouseout', () => {
|
||||
setTimeout(() => {
|
||||
if (!$('.popover:hover').length) {
|
||||
target_element.popover('hide');
|
||||
}
|
||||
}, 100);
|
||||
});
|
||||
});
|
||||
|
||||
$parent.on("mouseout", selector, function() {
|
||||
$(this).popover('destroy');
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<ul class="list-unstyled liked-by-popover">
|
||||
<ul class="list-unstyled">
|
||||
{% for (var i in liked_by) { var liked_by_user = liked_by[i]; %}
|
||||
<li>
|
||||
{%= frappe.avatar(liked_by_user) %}
|
||||
|
|
|
|||
|
|
@ -457,12 +457,14 @@ li.user-progress {
|
|||
|
||||
// like pop-over
|
||||
.liked-by-popover {
|
||||
.popover-content {
|
||||
padding: 0px;
|
||||
overflow: scroll;
|
||||
max-height: 150px;
|
||||
}
|
||||
min-width: 100px;
|
||||
margin-top: -10px;
|
||||
margin-bottom: -10px;
|
||||
|
||||
li {
|
||||
margin: 15px 0px;
|
||||
margin: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,9 +11,6 @@ body[data-route*="social"] {
|
|||
}
|
||||
.liked-by-popover {
|
||||
font-size: @text-small;
|
||||
li {
|
||||
margin: 10px 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.wall-container {
|
||||
|
|
@ -56,6 +53,7 @@ body[data-route*="social"] {
|
|||
min-height: 70px;
|
||||
border: 1px solid @border-color;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
.content {
|
||||
font-size: 14px;
|
||||
img, iframe {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue