diff --git a/src/patches/MemberListView-OCavatar.patch b/src/patches/MemberListView-OCavatar.patch deleted file mode 100644 index 3320fc1f..00000000 --- a/src/patches/MemberListView-OCavatar.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git b/js/3rdparty/webodf/editor/MemberListView.js a/js/3rdparty/webodf/editor/MemberListView.js -index 83074ba..9f604c7 100644 ---- b/js/3rdparty/webodf/editor/MemberListView.js -+++ a/js/3rdparty/webodf/editor/MemberListView.js -@@ -76,6 +76,11 @@ define("webodf/editor/MemberListView", - 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 +100,7 @@ define("webodf/editor/MemberListView", - 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"; -@@ -113,7 +118,7 @@ define("webodf/editor/MemberListView", - avatarDiv.onclick = function () { - var caret = editorSession.sessionView.getCaret(memberId); - if (caret) { -- caret.toggleHandleVisibility(); -+ //caret.toggleHandleVisibility(); - } - }; - memberListDiv.appendChild(avatarDiv); diff --git a/src/patches/MemberListView-OCnick.patch b/src/patches/MemberListView-OCnick.patch deleted file mode 100644 index 36d3436a..00000000 --- a/src/patches/MemberListView-OCnick.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- MemberListView-old.js 2014-03-21 20:54:57.764793256 +0300 -+++ MemberListView.js 2014-03-21 20:55:12.761110324 +0300 -@@ -116,6 +116,7 @@ - //avatar.getCaret().hideHandle(); - }; - avatarDiv.onclick = function () { -+ documentsMain.onNickChange(memberId, fullnameNode); - var caret = editorSession.sessionView.getCaret(memberId); - if (caret) { - //caret.toggleHandleVisibility(); diff --git a/src/patches/MemberListView.js.patch b/src/patches/MemberListView.js.patch new file mode 100644 index 00000000..96fa346a --- /dev/null +++ b/src/patches/MemberListView.js.patch @@ -0,0 +1,91 @@ +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); + } + diff --git a/src/updateWebODF.sh b/src/updateWebODF.sh index 7e2cbb93..edb8b2be 100755 --- a/src/updateWebODF.sh +++ b/src/updateWebODF.sh @@ -32,8 +32,7 @@ cp "$WEBODF_BUILDDIR"/programs/editor/editor.css ./css/3rdparty/webodf # patches against upstream patch -p1 -i src/patches/fontsCssPath.patch patch -p1 -i src/patches/hideCaretAvatar.patch -patch -p1 -i src/patches/MemberListView-OCavatar.patch -patch -p1 -i src/patches/MemberListView-OCnick.patch +patch -p1 -i src/patches/MemberListView.js.patch patch -p1 -i src/patches/keepBodyStyle.patch