hummingbird-me/kitsu-web

View on GitHub
app/routes/groups/group/group-page/members.js

Summary

Maintainability
A
3 hrs
Test Coverage
F
0%
import Route from '@ember/routing/route';
import { get, set } from '@ember/object';
import { inject as service } from '@ember/service';
import Pagination from 'kitsu-shared/mixins/pagination';

export default Route.extend(Pagination, {
  intl: service(),

  model() {
    const model = this.modelFor('groups.group.group-page');
    return {
      taskInstance: this.queryPaginated('group-member', this._getRequestOptions(model)),
      paginatedRecords: []
    };
  },

  afterModel(model) {
    const tags = this.setHeadTags(model);
    set(this, 'headTags', tags);
  },

  titleToken() {
    const model = this.modelFor('groups.group.group-page');
    const group = get(model, 'group.name');
    return get(this, 'intl').t('titles.groups.group.group-page.members', { group });
  },

  setHeadTags(model) {
    const description = `Group members of ${get(model, 'group.name')}.
      ${get(model, 'group.tagline')}`;
    return [{
      type: 'meta',
      tagId: 'meta-description',
      attrs: {
        property: 'description',
        content: description
      }
    }, {
      type: 'meta',
      tagId: 'meta-og-description',
      attrs: {
        property: 'og:description',
        content: description
      }
    }];
  },

  _getRequestOptions(model) {
    return {
      include: 'user',
      filter: { query_group: get(model, 'group.id') },
      fields: { users: ['avatar', 'coverImage', 'name', 'slug'].join(',') },
      page: { limit: 20 }
    };
  }
});