diff options
-rw-r--r-- | app/controllers/phones_controller.rb | 14 | ||||
-rw-r--r-- | app/views/phones/_index_core.html.haml | 11 |
2 files changed, 21 insertions, 4 deletions
diff --git a/app/controllers/phones_controller.rb b/app/controllers/phones_controller.rb index 3672390..cfa6d7b 100644 --- a/app/controllers/phones_controller.rb +++ b/app/controllers/phones_controller.rb @@ -6,7 +6,13 @@ class PhonesController < ApplicationController before_filter :set_and_authorize_parent before_filter :spread_breadcrumbs + helper_method :sort_column, :sort_descending + def index + @phones = @parent.phones.order(sort_column + ' ' + (sort_descending ? 'DESC' : 'ASC')).paginate( + :page => params[:page], + :per_page => GsParameter.get('DEFAULT_PAGINATION_ENTRIES_PER_PAGE') + ) end def show @@ -85,5 +91,13 @@ class PhonesController < ApplicationController end @fallback_sip_accounts = SipAccount.where(:sip_accountable_type => 'Tenant') - SipAccount.where(:id => used_sip_account_ids) end + + def sort_descending + params[:desc].to_s == 'true' + end + + def sort_column + Phone.column_names.include?(params[:sort]) ? params[:sort] : 'id' + end end diff --git a/app/views/phones/_index_core.html.haml b/app/views/phones/_index_core.html.haml index 9a865f0..a77395c 100644 --- a/app/views/phones/_index_core.html.haml +++ b/app/views/phones/_index_core.html.haml @@ -1,18 +1,21 @@ +- if defined?(phones.total_pages) + = will_paginate phones, :renderer => BootstrapPagination::Rails, :previous_label => raw('<i class = "icon-chevron-left"></i>'), :next_label => raw('<i class = "icon-chevron-right"></i>') + %table.table.table-striped %thead %tr - %th= t('phones.index.mac_address') + %th= sortable :mac_address, t('phones.index.mac_address') %th %span.hidden-phone - = t('phones.index.phone_model_id') + = sortable :phone_model_id, t('phones.index.phone_model_id') %span.visible-phone = truncate(t('phones.index.phone_model_id'), :length => 9) %th %span.hidden-phone - = t('phones.index.hot_deskable') + = sortable :hot_deskable, t('phones.index.hot_deskable') %th %span.hidden-phone - = t('phones.index.ip_address') + = sortable :ip_address, t('phones.index.ip_address') %tbody - for phone in phones |