* Add option to show only local toots in timeline preview Right know, toots from all the known fediverse are shown in the main page of an instance. That however doesn't reflect the instance itself. With this option the admin may choose to display only local toots so that users checking the instance get a better idea of internal conversations. * Fix issues pointed by codeclimate and eslint * Add default message for community timeline * Update pl.yml
		
			
				
	
	
		
			75 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| module Admin
 | |
|   class SettingsController < BaseController
 | |
|     ADMIN_SETTINGS = %w(
 | |
|       site_contact_username
 | |
|       site_contact_email
 | |
|       site_title
 | |
|       site_description
 | |
|       site_extended_description
 | |
|       site_terms
 | |
|       open_registrations
 | |
|       closed_registrations_message
 | |
|       open_deletion
 | |
|       timeline_preview
 | |
|       show_staff_badge
 | |
|       bootstrap_timeline_accounts
 | |
|       thumbnail
 | |
|       min_invite_role
 | |
|       activity_api_enabled
 | |
|       peers_api_enabled
 | |
|       show_known_fediverse_at_about_page
 | |
|     ).freeze
 | |
| 
 | |
|     BOOLEAN_SETTINGS = %w(
 | |
|       open_registrations
 | |
|       open_deletion
 | |
|       timeline_preview
 | |
|       show_staff_badge
 | |
|       activity_api_enabled
 | |
|       peers_api_enabled
 | |
|       show_known_fediverse_at_about_page
 | |
|     ).freeze
 | |
| 
 | |
|     UPLOAD_SETTINGS = %w(
 | |
|       thumbnail
 | |
|     ).freeze
 | |
| 
 | |
|     def edit
 | |
|       authorize :settings, :show?
 | |
|       @admin_settings = Form::AdminSettings.new
 | |
|     end
 | |
| 
 | |
|     def update
 | |
|       authorize :settings, :update?
 | |
| 
 | |
|       settings_params.each do |key, value|
 | |
|         if UPLOAD_SETTINGS.include?(key)
 | |
|           upload = SiteUpload.where(var: key).first_or_initialize(var: key)
 | |
|           upload.update(file: value)
 | |
|         else
 | |
|           setting = Setting.where(var: key).first_or_initialize(var: key)
 | |
|           setting.update(value: value_for_update(key, value))
 | |
|         end
 | |
|       end
 | |
| 
 | |
|       flash[:notice] = I18n.t('generic.changes_saved_msg')
 | |
|       redirect_to edit_admin_settings_path
 | |
|     end
 | |
| 
 | |
|     private
 | |
| 
 | |
|     def settings_params
 | |
|       params.require(:form_admin_settings).permit(ADMIN_SETTINGS)
 | |
|     end
 | |
| 
 | |
|     def value_for_update(key, value)
 | |
|       if BOOLEAN_SETTINGS.include?(key)
 | |
|         value == '1'
 | |
|       else
 | |
|         value
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |