You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
4.0 KiB
Diff
92 lines
4.0 KiB
Diff
diff --git a/js/3rdparty/webodf/editor/MemberListView.js b/js/3rdparty/webodf/editor/MemberListView.js
|
|
--- a/js/3rdparty/webodf/editor/MemberListView.js 2014-11-19 19:53:11.134235411 +0300
|
|
+++ b/js/3rdparty/webodf/editor/MemberListView.js 2014-11-19 19:56:27.562381909 +0300
|
|
@@ -69,6 +69,8 @@
|
|
|
|
while (node) {
|
|
if (node.memberId === memberId) {
|
|
+ node.setAttribute('uid', memberDetails.uid);
|
|
+ node.setAttribute('count', 1);
|
|
node = node.firstChild;
|
|
while (node) {
|
|
if (node.localName === "img") {
|
|
@@ -76,6 +78,11 @@
|
|
node.src = memberDetails.imageUrl;
|
|
// update border color
|
|
node.style.borderColor = memberDetails.color;
|
|
+ } else if (node.localName === "span" && memberDetails.imageUrl){
|
|
+ try {
|
|
+ $(node).avatar(memberDetails.imageUrl, 60);
|
|
+ } catch (e){}
|
|
+ node.style.borderColor = memberDetails.color;
|
|
} else if (node.localName === "div") {
|
|
node.setAttribute('fullname', memberDetails.fullName);
|
|
}
|
|
@@ -95,7 +102,7 @@
|
|
var doc = memberListDiv.ownerDocument,
|
|
htmlns = doc.documentElement.namespaceURI,
|
|
avatarDiv = doc.createElementNS(htmlns, "div"),
|
|
- imageElement = doc.createElement("img"),
|
|
+ imageElement = doc.createElement("span"),
|
|
fullnameNode = doc.createElement("div");
|
|
|
|
avatarDiv.className = "memberListButton";
|
|
@@ -111,12 +118,15 @@
|
|
//avatar.getCaret().hideHandle();
|
|
};
|
|
avatarDiv.onclick = function () {
|
|
- var caret = editorSession.sessionView.getCaret(memberId);
|
|
- if (caret) {
|
|
- caret.toggleHandleVisibility();
|
|
+ if (memberId === editorSession.sessionController.getInputMemberId()){
|
|
+ documentsMain.onNickChange(memberId, fullnameNode);
|
|
}
|
|
};
|
|
- memberListDiv.appendChild(avatarDiv);
|
|
+ if (memberId === editorSession.sessionController.getInputMemberId()){
|
|
+ memberListDiv.insertBefore(avatarDiv, memberListDiv.firstChild);
|
|
+ } else {
|
|
+ memberListDiv.appendChild(avatarDiv);
|
|
+ }
|
|
}
|
|
|
|
/**
|
|
@@ -127,7 +137,12 @@
|
|
var node = memberListDiv.firstChild;
|
|
while (node) {
|
|
if (node.memberId === memberId) {
|
|
- memberListDiv.removeChild(node);
|
|
+ var count = parseInt(node.getAttribute('count'));
|
|
+ if (count>1){
|
|
+ node.setAttribute('count', count-1);
|
|
+ } else {
|
|
+ memberListDiv.removeChild(node);
|
|
+ }
|
|
return;
|
|
}
|
|
node = node.nextSibling;
|
|
@@ -140,8 +155,21 @@
|
|
*/
|
|
function addMember(memberId) {
|
|
var member = editorSession.getMember(memberId),
|
|
- properties = member.getProperties();
|
|
- createAvatarButton(memberId);
|
|
+ properties = member.getProperties(),
|
|
+ node = memberListDiv.firstChild,
|
|
+ found = false;
|
|
+ while (node) {
|
|
+ if (node.getAttribute('uid') === properties.uid) {
|
|
+ var count = parseInt(node.getAttribute('count'));
|
|
+ node.setAttribute('count', count+1);
|
|
+ found = true;
|
|
+ break;
|
|
+ }
|
|
+ node = node.nextSibling;
|
|
+ }
|
|
+ if (!found){
|
|
+ createAvatarButton(memberId);
|
|
+ }
|
|
updateAvatarButton(memberId, properties);
|
|
}
|
|
|