about summary refs log tree commit diff
path: root/app/views
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2019-02-04 04:25:59 +0100
committerGitHub <noreply@github.com>2019-02-04 04:25:59 +0100
commit364f2ff9aa2b4bf601d68a12bce758aeb5530467 (patch)
tree6e47b26ef9148d3b88dd9748460d8cf51beac748 /app/views
parentd14c276e58f0f223b0e4889d342a948c961081b2 (diff)
Add featured hashtags to profiles (#9755)
* Add hashtag filter to profiles

GET /@:username/tagged/:hashtag
GET /api/v1/accounts/:id/statuses?tagged=:hashtag

* Display featured hashtags on public profile

* Use separate model for featured tags

* Update featured hashtag counters on-write

* Limit featured tags to 10
Diffstat (limited to 'app/views')
-rw-r--r--app/views/accounts/show.html.haml13
-rw-r--r--app/views/settings/featured_tags/index.html.haml27
2 files changed, 40 insertions, 0 deletions
diff --git a/app/views/accounts/show.html.haml b/app/views/accounts/show.html.haml
index 0ee9dd7de..23a595205 100644
--- a/app/views/accounts/show.html.haml
+++ b/app/views/accounts/show.html.haml
@@ -63,4 +63,17 @@
         - @endorsed_accounts.each do |account|
           = account_link_to account
 
+    - @account.featured_tags.each do |featured_tag|
+      .directory__tag{ class: params[:tag] == featured_tag.name ? 'active' : nil }
+        = link_to short_account_tag_path(@account, featured_tag.tag) do
+          %h4
+            = fa_icon 'hashtag'
+            = featured_tag.name
+            %small
+              - if featured_tag.last_status_at.nil?
+                = t('accounts.nothing_here')
+              - else
+                %time{ datetime: featured_tag.last_status_at.iso8601, title: l(featured_tag.last_status_at) }= l featured_tag.last_status_at
+          .trends__item__current= number_to_human featured_tag.statuses_count, strip_insignificant_zeros: true
+
     = render 'application/sidebar'
diff --git a/app/views/settings/featured_tags/index.html.haml b/app/views/settings/featured_tags/index.html.haml
new file mode 100644
index 000000000..5f69517f3
--- /dev/null
+++ b/app/views/settings/featured_tags/index.html.haml
@@ -0,0 +1,27 @@
+- content_for :page_title do
+  = t('settings.featured_tags')
+
+= simple_form_for @featured_tag, url: settings_featured_tags_path do |f|
+  = render 'shared/error_messages', object: @featured_tag
+
+  .fields-group
+    = f.input :name, wrapper: :with_block_label, hint: safe_join([t('simple_form.hints.featured_tag.name'), safe_join(@most_used_tags.map { |tag| link_to("##{tag.name}", settings_featured_tags_path(featured_tag: { name: tag.name }), method: :post) }, ', ')], ' ')
+
+  .actions
+    = f.button :button, t('featured_tags.add_new'), type: :submit
+
+%hr.spacer/
+
+- @featured_tags.each do |featured_tag|
+  .directory__tag{ class: params[:tag] == featured_tag.name ? 'active' : nil }
+    %div
+      %h4
+        = fa_icon 'hashtag'
+        = featured_tag.name
+        %small
+          - if featured_tag.last_status_at.nil?
+            = t('accounts.nothing_here')
+          - else
+            %time{ datetime: featured_tag.last_status_at.iso8601, title: l(featured_tag.last_status_at) }= l featured_tag.last_status_at
+          = table_link_to 'trash', t('filters.index.delete'), settings_featured_tag_path(featured_tag), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
+      .trends__item__current= number_to_human featured_tag.statuses_count, strip_insignificant_zeros: true