Merge pull request #3615 from techAPJ/patch-1

UX: include more details on Permalinks page
This commit is contained in:
Sam 2015-07-20 21:28:22 +10:00
commit 45e37d557a
5 changed files with 69 additions and 15 deletions

View File

@ -1,7 +1,25 @@
<div class="col first url">{{url}}</div> <div class="col first url">{{url}}</div>
<div class="col topic_id">{{topic_id}}</div> <div class="col topic_id">
<div class="col post_id">{{post_id}}</div> {{#if topic_id}}
<div class="col category_id">{{category_id}}</div> {{topic_id}}
<div class="col external_url">{{external_url}}</div> (<a href='{{unbound topic_url}}'>{{topic_title}}</a>)
{{/if}}
</div>
<div class="col post_id">
{{#if post_id}}
<a href='{{unbound post_url}}'>{{post_id}}</a>
{{/if}}
</div>
<div class="col category_id">
{{#if category_id}}
{{category_id}}
(<a href='{{unbound category_url}}'>{{category_name}}</a>)
{{/if}}
</div>
<div class="col external_url">
{{#if external_url}}
<a href='{{unbound external_url}}'>{{external_url}}</a>
{{/if}}
</div>
<div class="col action"><button class="btn btn-danger" {{action "destroy" this}}><i class="fa fa-trash-o"></i></button></div> <div class="col action"><button class="btn btn-danger" {{action "destroy" this}}><i class="fa fa-trash-o"></i></button></div>
<div class="clearfix"></div> <div class="clearfix"></div>

View File

@ -1473,12 +1473,22 @@ table#user-badges {
// Permalinks // Permalinks
.permalinks { .permalinks {
.url, .external_url { .url, .topic_id, .category_id, .external_url {
width: 300px; text-overflow: ellipsis;
white-space: nowrap;
} }
.action, .topic_id, .post_id, .category_id { .url {
width: 200px;
}
.topic_id, .external_url {
width: 220px;
}
.category_id {
width: 160px;
}
.action, .post_id {
text-align: center; text-align: center;
width: 9.9099%; width: 8%;
} }
} }

View File

@ -3,12 +3,8 @@ class Admin::PermalinksController < Admin::AdminController
before_filter :fetch_permalink, only: [:destroy] before_filter :fetch_permalink, only: [:destroy]
def index def index
filter = params[:filter] url = params[:filter]
permalinks = Permalink.filter_by(url)
permalinks = Permalink
permalinks = permalinks.where('url ILIKE :filter OR external_url ILIKE :filter', filter: "%#{params[:filter]}%") if filter.present?
permalinks = permalinks.limit(100).order('created_at desc').to_a
render_serialized(permalinks, PermalinkSerializer) render_serialized(permalinks, PermalinkSerializer)
end end

View File

@ -80,6 +80,16 @@ class Permalink < ActiveRecord::Base
return category.url if category return category.url if category
nil nil
end end
def self.filter_by(url=nil)
permalinks = Permalink
.includes(:topic, :post, :category)
.order('permalinks.created_at desc')
permalinks.where!('url ILIKE :url OR external_url ILIKE :url', url: "%#{url}%") if url.present?
permalinks.limit!(100)
permalinks.to_a
end
end end
# == Schema Information # == Schema Information

View File

@ -1,3 +1,23 @@
class PermalinkSerializer < ApplicationSerializer class PermalinkSerializer < ApplicationSerializer
attributes :id, :url, :topic_id, :post_id, :category_id, :external_url attributes :id, :url, :topic_id, :topic_title, :topic_url, :post_id, :post_url, :category_id, :category_name, :category_url, :external_url
def topic_title
object.try(:topic).try(:title)
end
def topic_url
object.try(:topic).try(:url)
end
def post_url
object.try(:post).try(:url)
end
def category_name
object.try(:category).try(:name)
end
def category_url
object.try(:category).try(:url)
end
end end