123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- import Ember from 'ember';
- export function updateObjProps(obj, props) {
- if (props) {
- return Ember.$.extend({}, obj, props);
- } else {
- return Ember.$.extend({}, obj);
- }
- }
- export function paginatedJSON(results, count, page, per_page, orphans) {
- count = count || 0;
- var pages = 0;
- if (count && per_page) {
- pages = Math.ceil(count / per_page);
- }
- if (orphans && pages > 1 && count - (pages - 1) * per_page <= orphans) {
- pages -= 1;
- }
- var next = null;
- var last = null;
- if (page < pages) {
- last = pages;
- if (page + 1 < pages) {
- next = page + 1;
- }
- }
- var previous = null;
- var first = null;
- if (page > 1) {
- first = 1;
- if (page > 2) {
- previous = page - 1;
- }
- }
- var before = 0;
- if (page > 1) {
- before = (page - 1) * per_page;
- }
- var more = 0;
- if (last) {
- more = count - before - per_page;
- }
- return {
- 'results': results || [],
- 'count': count,
- 'pages': pages,
- 'next': next,
- 'last': last,
- 'previous': previous,
- 'first': first,
- 'before': before,
- 'more': more
- };
- }
- export function rankJSON(id, props) {
- var mock = {
- 'id': id,
- 'name': 'Members',
- 'slug': 'members',
- 'description': '',
- 'title': '',
- 'css_class': '',
- 'is_tab': false
- };
- return updateObjProps(mock, props);
- }
- export function userJSON(id, props) {
- var mock = {
- 'id': id,
- 'username': 'MockedUser' + id,
- 'slug': 'mockeduser' + id,
- 'avatar_hash': 'h4sh',
- 'title': null,
- 'rank': rankJSON(1),
- 'state': {
- 'is_offline_hidden': false,
- 'is_online_hidden': false,
- 'is_offline': true,
- 'is_online': false,
- 'is_banned': false,
- 'last_click': '2015-07-05T16:06:44.010Z',
- 'is_hidden': false,
- 'banned_until': null
- },
- 'signature': null
- };
- return updateObjProps(mock, props);
- }
|