parent
08b96f1b9f
commit
56d998cbdb
@ -1,16 +1,46 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
require 'csv' |
||||
|
||||
class Settings::ExportsController < ApplicationController |
||||
layout 'admin' |
||||
|
||||
before_action :authenticate_user! |
||||
before_action :set_account |
||||
|
||||
def show; end |
||||
def show |
||||
@total_storage = current_account.media_attachments.sum(:file_file_size) |
||||
@total_follows = current_account.following.count |
||||
@total_blocks = current_account.blocking.count |
||||
end |
||||
|
||||
def download_following_list |
||||
@accounts = current_account.following |
||||
|
||||
respond_to do |format| |
||||
format.csv { render text: accounts_list_to_csv(@accounts) } |
||||
end |
||||
end |
||||
|
||||
def download_blocking_list |
||||
@accounts = current_account.blocking |
||||
|
||||
respond_to do |format| |
||||
format.csv { render text: accounts_list_to_csv(@accounts) } |
||||
end |
||||
end |
||||
|
||||
private |
||||
|
||||
def set_account |
||||
@account = current_user.account |
||||
end |
||||
|
||||
def accounts_list_to_csv(list) |
||||
CSV.generate do |csv| |
||||
list.each do |account| |
||||
csv << [(account.local? ? "#{account.username}@#{Rails.configuration.x.local_domain}" : account.acct)] |
||||
end |
||||
end |
||||
end |
||||
end |
||||
|
@ -1,2 +1,17 @@ |
||||
- content_for :page_title do |
||||
= t('settings.export') |
||||
|
||||
%table.table |
||||
%tbody |
||||
%tr |
||||
%th= t('exports.storage') |
||||
%td= number_to_human_size @total_storage |
||||
%td |
||||
%tr |
||||
%th= t('exports.follows') |
||||
%td= @total_follows |
||||
%td= table_link_to 'download', t('exports.csv'), follows_settings_export_path(format: :csv) |
||||
%tr |
||||
%th= t('exports.blocks') |
||||
%td= @total_blocks |
||||
%td= table_link_to 'download', t('exports.csv'), blocks_settings_export_path(format: :csv) |
||||
|
Loading…
Reference in new issue