diff --git a/app/assets/javascripts/discourse/components/user-stat.js.es6 b/app/assets/javascripts/discourse/components/user-stat.js.es6 new file mode 100644 index 000000000..290aae5a9 --- /dev/null +++ b/app/assets/javascripts/discourse/components/user-stat.js.es6 @@ -0,0 +1,3 @@ +export default Ember.Component.extend({ + classNames: ['user-stat'] +}); diff --git a/app/assets/javascripts/discourse/templates/components/user-stat.hbs b/app/assets/javascripts/discourse/templates/components/user-stat.hbs new file mode 100644 index 000000000..e2e456151 --- /dev/null +++ b/app/assets/javascripts/discourse/templates/components/user-stat.hbs @@ -0,0 +1,5 @@ +<span class='value'> + {{#if icon}}{{fa-icon icon}}{{/if}} + {{number value}} +</span> +<span class='label'>{{i18n label}}</span> diff --git a/app/assets/javascripts/discourse/templates/mobile/users.hbs b/app/assets/javascripts/discourse/templates/mobile/users.hbs new file mode 100644 index 000000000..cea25c3a6 --- /dev/null +++ b/app/assets/javascripts/discourse/templates/mobile/users.hbs @@ -0,0 +1,39 @@ +<div class="container"> + <div class='directory'> + + <div class='clearfix user-controls'> + {{period-chooser period=period}} + {{text-field value=nameInput placeholderKey="directory.filter_name" class="filter-name"}} + </div> + + {{#conditional-loading-spinner condition=model.loading}} + {{#if model.length}} + <div class='total-rows'>{{i18n "directory.total_rows" count=model.totalRows}}</div> + + {{#each ic in model itemController="directory-item"}} + <div class="user {{if ic.me 'me'}}"> + {{#with ic.model as |it|}} + {{user-small user=it.user}} + {{user-stat value=it.likes_received label="directory.likes_received" icon="heart"}} + {{user-stat value=it.likes_given label="directory.likes_given" icon="heart"}} + {{user-stat value=it.topic_count label="directory.topic_count"}} + {{user-stat value=it.post_count label="directory.post_count"}} + {{user-stat value=it.topics_entered label="directory.topics_entered"}} + {{user-stat value=it.posts_read label="directory.posts_read"}} + {{user-stat value=it.days_visited label="directory.days_visited"}} + {{#if showTimeRead}} + <div class='time-read'>{{unbound it.time_read}}</div> + {{/if}} + {{/with}} + </div> + {{/each}} + + {{conditional-loading-spinner condition=model.loadingMore}} + {{else}} + <div class='clearfix'></div> + <p>{{i18n "directory.no_results"}}</p> + {{/if}} + {{/conditional-loading-spinner}} + + </div> +</div> diff --git a/app/assets/javascripts/discourse/templates/users.hbs b/app/assets/javascripts/discourse/templates/users.hbs index 45ea960e7..3d4ba1001 100644 --- a/app/assets/javascripts/discourse/templates/users.hbs +++ b/app/assets/javascripts/discourse/templates/users.hbs @@ -25,19 +25,21 @@ {{/if}} </thead> <tbody> - {{#each item in model itemController="directory-item"}} - <tr {{bind-attr class="item.me"}}> - <td>{{user-small user=item.model.user}}</td> - <td>{{number item.model.likes_received}}</td> - <td>{{number item.model.likes_given}}</td> - <td>{{number item.model.topic_count}}</td> - <td>{{number item.model.post_count}}</td> - <td>{{number item.model.topics_entered}}</td> - <td>{{number item.model.posts_read}}</td> - <td>{{number item.model.days_visited}}</td> - {{#if showTimeRead}} - <td><span class='time-read'>{{unbound item.model.time_read}}</span></td> - {{/if}} + {{#each ic in model itemController="directory-item"}} + <tr class="{{if ic.me 'me'}}"> + {{#with ic.model as |it|}} + <td>{{user-small user=it.user}}</td> + <td>{{number it.likes_received}}</td> + <td>{{number it.likes_given}}</td> + <td>{{number it.topic_count}}</td> + <td>{{number it.post_count}}</td> + <td>{{number it.topics_entered}}</td> + <td>{{number it.posts_read}}</td> + <td>{{number it.days_visited}}</td> + {{#if showTimeRead}} + <td><span class='time-read'>{{unbound it.time_read}}</span></td> + {{/if}} + {{/with}} </tr> {{/each}} </tbody> diff --git a/app/assets/stylesheets/mobile.scss b/app/assets/stylesheets/mobile.scss index 58636be4c..91bf389d1 100644 --- a/app/assets/stylesheets/mobile.scss +++ b/app/assets/stylesheets/mobile.scss @@ -17,6 +17,7 @@ @import "mobile/upload"; @import "mobile/user"; @import "mobile/history"; +@import "mobile/directory"; /* These files doesn't actually exist, they are injected by DiscourseSassImporter. */ diff --git a/app/assets/stylesheets/mobile/directory.scss b/app/assets/stylesheets/mobile/directory.scss new file mode 100644 index 000000000..0442df9d3 --- /dev/null +++ b/app/assets/stylesheets/mobile/directory.scss @@ -0,0 +1,49 @@ +.directory { + .period-chooser button { + margin: 0; + } + .period-chooser { + li { + text-align: left; + } + } +} + +.user-controls { + padding: 1em; +} + +.total-rows { + padding: 0.25em 0.5em; +} + +.user { + border-top: 1px solid dark-light-diff($primary, $secondary, 80%, -20%); + padding: 1em; + + + &.me { + background-color: dark-light-diff($highlight, $secondary, 70%, -80%); + + .username a, .name, .title, .number, .time-read, .user-stat .label { + color: scale-color($highlight, $lightness: -50%); + } + } + .user-stat { + margin-left: 55px; + font-size: 13px; + + .value { + font-weight: bold; + } + .label { + margin-left: 0.2em; + color: dark-light-diff($primary, $secondary, 50%, -50%); + } + + i.fa-heart { + color: $love; + } + } + margin-bottom: 1em; +}