diff --git a/ghost/admin/app/components/gh-member-avatar.js b/ghost/admin/app/components/gh-member-avatar.js index f8351eeec3..e225a6ea9c 100644 --- a/ghost/admin/app/components/gh-member-avatar.js +++ b/ghost/admin/app/components/gh-member-avatar.js @@ -14,7 +14,7 @@ const stringToHslColor = function (str, saturation, lightness) { export default Component.extend({ tagName: '', - + containerClass: '', member: null, initialsClass: computed('sizeClass', function () { return this.sizeClass || 'gh-member-list-avatar'; diff --git a/ghost/admin/app/helpers/gravatar.js b/ghost/admin/app/helpers/gravatar.js new file mode 100644 index 0000000000..0924f06c54 --- /dev/null +++ b/ghost/admin/app/helpers/gravatar.js @@ -0,0 +1,20 @@ +import Helper from '@ember/component/helper'; +import md5 from 'blueimp-md5'; +import {isEmpty} from '@ember/utils'; +import {inject as service} from '@ember/service'; + +export default Helper.extend({ + config: service(), + + compute([email], {size = 180, d = 'blank'}/*, hash*/) { + if (!this.get('config.useGravatar')) { + return; + } + + if (!email || isEmpty(email)) { + return; + } + + return `https://www.gravatar.com/avatar/${md5(email)}?s=${size}&d=${d}`; + } +}); diff --git a/ghost/admin/app/styles/layouts/members.css b/ghost/admin/app/styles/layouts/members.css index 60f49b761d..ac3e8a7a73 100644 --- a/ghost/admin/app/styles/layouts/members.css +++ b/ghost/admin/app/styles/layouts/members.css @@ -1,10 +1,41 @@ /* Global /* ----------------------------------------- */ + +/* Members avatar +/* ----------------------------------------- */ +.gh-member-gravatar { + position: relative; +} + .gh-member-avatar-label { display: block; color: #fff; } +.gh-member-avatar-image { + display: block; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + box-sizing: content-box; + background-position: center center; + background-size: cover; + border-radius: 100%; +} + +.gh-member-initials { + border: none; + box-shadow: 0 0 0 1px var(--white); +} + +.gh-member-detail-avatar .gh-member-initials { + box-shadow: 0 0 0 1px var(--main-bg-color); +} + /* Members list /* ----------------------------------------- */ diff --git a/ghost/admin/app/templates/components/gh-member-avatar.hbs b/ghost/admin/app/templates/components/gh-member-avatar.hbs index 8db2094df2..e6e14e2ebe 100644 --- a/ghost/admin/app/templates/components/gh-member-avatar.hbs +++ b/ghost/admin/app/templates/components/gh-member-avatar.hbs @@ -1,3 +1,6 @@ -