diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-12-05 23:02:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-05 23:02:27 +0100 |
commit | e20895f251d28b3631b1f5768302517a5b687b04 (patch) | |
tree | 88e86cef53df51df32e964921d444c08f34dd3a5 /app/controllers/api | |
parent | 12cea76634d8380e24c3b218b18955b551995e1e (diff) |
Add list of lists component to web UI (#5811)
* Add list of lists component to web UI * Add list adding * Add list removing * List editor modal * Add API account search limited by following=true relation * Rework list editor modal * Remove mandatory pagination of GET /api/v1/lists/:id/accounts * Adjust search input placeholder * Fix rspec (#5890) * i18n: (zh-CN) Add missing translations for #5811 (#5891) * i18n: (zh-CN) yarn manage:translations -- zh-CN * i18n: (zh-CN) Add missing translations for #5811 * Fix some issues - Display loading/missing state for list timelines - Order lists alphabetically in overview - Fix async list editor reset - Redirect to /lists after deleting unpinned list - Redirect to / after pinning a list * Remove dead list columns when a list is deleted or fetch returns 404
Diffstat (limited to 'app/controllers/api')
-rw-r--r-- | app/controllers/api/v1/accounts/search_controller.rb | 9 | ||||
-rw-r--r-- | app/controllers/api/v1/lists/accounts_controller.rb | 18 |
2 files changed, 22 insertions, 5 deletions
diff --git a/app/controllers/api/v1/accounts/search_controller.rb b/app/controllers/api/v1/accounts/search_controller.rb index 2a5cac547..11e647c3c 100644 --- a/app/controllers/api/v1/accounts/search_controller.rb +++ b/app/controllers/api/v1/accounts/search_controller.rb @@ -17,12 +17,13 @@ class Api::V1::Accounts::SearchController < Api::BaseController AccountSearchService.new.call( params[:q], limit_param(DEFAULT_ACCOUNTS_LIMIT), - resolving_search?, - current_account + current_account, + resolve: truthy_param?(:resolve), + following: truthy_param?(:following) ) end - def resolving_search? - params[:resolve] == 'true' + def truthy_param?(key) + params[key] == 'true' end end diff --git a/app/controllers/api/v1/lists/accounts_controller.rb b/app/controllers/api/v1/lists/accounts_controller.rb index 40c485e8d..c29c73b3e 100644 --- a/app/controllers/api/v1/lists/accounts_controller.rb +++ b/app/controllers/api/v1/lists/accounts_controller.rb @@ -10,7 +10,7 @@ class Api::V1::Lists::AccountsController < Api::BaseController after_action :insert_pagination_headers, only: :show def show - @accounts = @list.accounts.paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id]) + @accounts = load_accounts render json: @accounts, each_serializer: REST::AccountSerializer end @@ -35,6 +35,14 @@ class Api::V1::Lists::AccountsController < Api::BaseController @list = List.where(account: current_account).find(params[:list_id]) end + def load_accounts + if unlimited? + @list.accounts.all + else + @list.accounts.paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id]) + end + end + def list_accounts Account.find(account_ids) end @@ -52,12 +60,16 @@ class Api::V1::Lists::AccountsController < Api::BaseController end def next_path + return if unlimited? + if records_continue? api_v1_list_accounts_url pagination_params(max_id: pagination_max_id) end end def prev_path + return if unlimited? + unless @accounts.empty? api_v1_list_accounts_url pagination_params(since_id: pagination_since_id) end @@ -78,4 +90,8 @@ class Api::V1::Lists::AccountsController < Api::BaseController def pagination_params(core_params) params.permit(:limit).merge(core_params) end + + def unlimited? + params[:limit] == '0' + end end |