Open gjaekel opened 3 years ago
@deleolajide
As a copy of the changes for "meetings", I made a verified patch for plugins/pade/classes/docs7inverse/index.js
for function _createAvatar()
, but I can't locate this file in the sources?!
# diff index.js.20210104-081414 index.js
1762,1764c1762,1764
< if (!width) width = 32;
< if (!height) height = 32;
< if (!font) font = "16px Arial";
---
> if (!width) width = 128;
> if (!height) height = 128;
> if (!font) font = "64px Arial";
1780,1783c1780,1784
< var name = nickname.split(" ");
< if (name.length == 1) name = nickname.split(".");
< if (name.length == 1) name = nickname.split("-");
< var l = name.length - 1;
---
> console.debug("_createAvatar: " + nickname );
> // try to split nickname into words at different symbols with preference
> let words = nickname.split(/[, ]/); // "John W. Doe" -> "John "W." "Doe" or "Doe,John W." -> "Doe" "John" "W."
> if (words.length == 1) words = nickname.split("."); // "John.Doe" -> "John" "Doe" or "John.W.Doe" -> "John" "W" "Doe"
> if (words.length == 1) words = nickname.split("-"); // "John-Doe" -> "John" "Doe" or "John-W-Doe" -> "John" "W" "Doe"
1785c1786
< if (name && name[0] && name.first != '')
---
> if (words && words[0] && words.first != '')
1787,1788d1787
< first = name[0][0];
< last = name[l] && name[l] != '' && l > 0 ? name[l][0] : null;
1790,1792c1789,1802
< if (last) {
< var initials = first + last;
< context.fillText(initials.toUpperCase(), 3, 23);
---
> const firstInitial = words[0][0]; // first letter of first word
> var lastInitial = null; // first letter of last word, if any
>
> const lastWordIdx = words.length - 1; // index of last word
> if (lastWordIdx > 0 && words[lastWordIdx] && words[lastWordIdx] != '')
> {
> lastInitial = words[lastWordIdx][0]; // first letter of last word
> }
>
> // if nickname consist of more than one words, compose the initials as two letter
> if (lastInitial) {
> // if any comma is in the nickname, treat it to have the lastname in front, i.e. compose reversed
> const initials = nickname.indexOf(",") == -1 ? firstInitial + lastInitial : lastInitial + firstInitial;
> context.fillText(initials.toUpperCase(), 20, 88);
1794,1795c1804
< var initials = first;
< context.fillText(initials.toUpperCase(), 10, 23);
---
> context.fillText(firstInitial.toUpperCase(), 44, 88);
1796a1806,1807
>
>
I see, source for Pàdé is at this repo. :smile:
I found the identical code at https://github.com/igniterealtime/pade/blob/f828f42f2708b1ec5c7a0dd26f2b39ea614e8e0d/docs/js/background.js#L1591 ?!? Is this used or is it an artefact?
But I don't change js/background.js::createAvatar()
, just inverse/index.js::_createAvatar()
to see the expected results.
Update the algorithm for choosing the Initials for the default avatar introduced in "OFMeet". This will respect the common European syntax for display names ("lastname, firstname" -> "FL")