discourse/app/controllers
David Taylor 0e303c7f5d
FEATURE: Automatically generate optimized site metadata icons (#7372)
This change automatically resizes icons for various purposes. Admins can now upload `logo` and `logo_small`, and everything else will be auto-generated. Specific icons can still be uploaded separately if required.

## Core

- Adds an SiteIconManager module which manages automatic resizing and fallback

- Icons are looked up in the OptimizedImage table at runtime, and then cached in Redis. If the resized version is missing for some reason, then most icons will fall back to the original files. Some icons (e.g. PWA Manifest) will return `nil` (because an incorrectly sized icon is worse than a missing icon). 

- `SiteSetting.site_large_icon_url` will return the optimized version, including any fallback. `SiteSetting.large_icon` continues to return the upload object. This means that (almost) no changes are required in core/plugins to support this new system.

- Icons are resized whenever a relevant site setting is changed, and during post-deploy migrations

## Wizard

- Allows `requiresRefresh` wizard steps to reload data via AJAX instead of a full page reload

- Add placeholders to the **icons** step of the wizard, which automatically update from the "Square Logo"

- Various copy updates to support the changes

- Remove the "upload-time" resizing for `large_icon`. This is no longer required.

## Site Settings UX

- Move logo/icon settings under a new "Branding" tab

- Various copy changes to support the changes

- Adds placeholder support to the `image-uploader` component

- Automatically reloads site settings after saving. This allows setting placeholders to change based on changes to other settings

- Upload site settings will be assigned a placeholder if SiteIconManager `responds_to?` an icon of the same name

## Dashboard Warnings

- Remove PWA icon and PWA title warnings. Both are now handled automatically.

## Bonus

- Updated the sketch logos to use @awesomerobot's new high-res designs
2019-05-01 14:44:45 +01:00
..
admin FIX: Mark invited admins as 'approved' (#7459) 2019-04-30 17:26:39 +01:00
users FIX: don't redirect incorrectly after full screen login (#7170) 2019-03-19 12:39:13 +00:00
about_controller.rb FIX: static page title should be consistent on client side and server side 2018-11-27 22:03:52 +05:30
application_controller.rb FIX: double render error with delegated authentication 2019-04-01 22:13:53 -04:00
badges_controller.rb DEV: remove update_attributes which is deprecated in Rails 6 2019-04-29 17:32:25 +10:00
categories_controller.rb FEATURE: Category Reviewable by Group 2019-04-30 15:23:06 -04:00
category_hashtags_controller.rb Refactor requires login logic, reduce duplicate code 2018-02-01 15:17:59 +11:00
clicks_controller.rb FEATURE: Always track clicks using AJAX. (#7373) 2019-04-23 12:41:36 +03:00
composer_controller.rb Refactor requires login logic, reduce duplicate code 2018-02-01 15:17:59 +11:00
composer_messages_controller.rb Refactor requires login logic, reduce duplicate code 2018-02-01 15:17:59 +11:00
csp_reports_controller.rb allow CSP reports to be sent when header isn't set by Discourse (#6594) 2018-11-14 16:23:29 -05:00
directory_items_controller.rb FEATURE: show avatar flair on group, badges and directory pages (#6732) 2018-12-06 12:18:52 +01:00
draft_controller.rb FIX: only check for conflict on edit drafts 2018-11-15 13:14:07 +11:00
drafts_controller.rb raise error early in drafts controller 2018-09-13 08:40:57 -04:00
email_controller.rb FEATURE: Allow users to tone down digest emails (#7353) 2019-04-17 12:14:40 -03:00
embed_controller.rb FIX: store the topic links using the cooked upload url 2018-08-14 12:23:32 +02:00
exceptions_controller.rb UX: Replace Google search with Discourse search on not found page 2018-08-15 11:53:04 +10:00
export_csv_controller.rb FEATURE: Log entity export in staff logs 2018-09-19 03:16:45 +05:30
extra_locales_controller.rb FEATURE: Enforce two-factor authentication. (#6348) 2019-03-15 13:09:37 +02:00
finish_installation_controller.rb FEATURE: Make initial admins TL1 2018-08-22 15:45:24 +10:00
forums_controller.rb FIX: `ForumsController` doesn't need to inherit from `ApplicationController`. 2019-01-21 14:37:04 +08:00
groups_controller.rb FIX: Loading more broken on groups page. 2019-04-30 10:35:17 +08:00
highlight_js_controller.rb Fix all the errors to get our tests green on Rails 5.1. 2017-09-25 13:48:58 +08:00
inline_onebox_controller.rb Use hijack in inline onebox controller 2018-11-13 02:39:20 +05:30
invites_controller.rb FIX: save registration IP address for invited users 2019-04-13 13:04:25 +05:30
list_controller.rb add no_subcategories query param in url only if its true (#7439) 2019-04-29 15:10:59 +08:00
metadata_controller.rb FEATURE: Automatically generate optimized site metadata icons (#7372) 2019-05-01 14:44:45 +01:00
notifications_controller.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
offline_controller.rb FIX: offline controller regression 2017-10-31 15:44:50 +11:00
onebox_controller.rb FIX: include title in local onebox when linking to a different topic 2018-02-19 22:40:14 +01:00
permalinks_controller.rb FIX: if we have not target available do not redirect 2018-08-20 13:10:59 +10:00
post_action_users_controller.rb UX: cap likes 2 (#5237) 2017-11-15 11:28:54 +11:00
post_actions_controller.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
posts_controller.rb FEATURE: Let staff add custom post notices. (#7377) 2019-04-19 17:53:58 +03:00
push_notification_controller.rb Feature: Push notifications for Android (#5792) 2018-05-04 15:31:48 -07:00
queued_posts_controller.rb UX: Update post actions to "Approve Post" and "Reject Post" 2019-04-23 12:19:11 -04:00
qunit_controller.rb DEV: Don't require login for QUit test path. 2018-11-23 13:50:19 +08:00
reviewables_controller.rb FEATURE: Include a user's pending posts in the topic view 2019-04-12 14:25:12 -04:00
robots_txt_controller.rb FIX: simplify so we ban all auth paths 2018-08-16 19:16:47 +10:00
safe_mode_controller.rb Allow staff members to enable safe mode, even if disabled 2018-04-25 11:49:57 -04:00
search_controller.rb FIX: prevents exception when search q params is a hash (#7437) 2019-04-29 15:09:25 +08:00
session_controller.rb FEATURE: use failed_to_login for SSO error (#7394) 2019-04-24 16:38:56 +10:00
similar_topics_controller.rb display 'similar to' earlier when composing a post 2017-09-16 01:03:29 +02:00
site_controller.rb Update Rubocop to 0.60 2018-12-04 10:48:16 +01:00
static_controller.rb FEATURE: Automatically generate optimized site metadata icons (#7372) 2019-05-01 14:44:45 +01:00
steps_controller.rb Refactor requires login logic, reduce duplicate code 2018-02-01 15:17:59 +11:00
stylesheets_controller.rb FEATURE: backend support for user-selectable components 2018-08-08 14:46:34 +10:00
svg_sprite_controller.rb FEATURE: support custom icons in themes (#7155) 2019-03-15 17:16:15 +11:00
tag_groups_controller.rb FIX: tag groups page should only be visible to staff 2018-09-17 11:41:18 -04:00
tags_controller.rb FIX: Disable 'Create Topic' button if tag is staff-only. (#6984) 2019-03-12 19:23:36 +11:00
theme_javascripts_controller.rb PERF: include content-length header for CDN 2019-02-22 11:21:07 +11:00
themes_controller.rb fix theme previewing (#6245) 2018-08-08 10:58:45 +03:00
topics_controller.rb FIX: Missing topic edited web hook when publishing a topic. 2019-04-16 14:28:23 +08:00
uploads_controller.rb UX: Lightbox support for image uploader. (#7034) 2019-02-21 10:13:37 +08:00
user_actions_controller.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
user_api_keys_controller.rb FEATURE: Delegated authentication via user api keys (#7272) 2019-04-01 13:18:53 -04:00
user_avatars_controller.rb FIX: Handle missing letter avatar 2019-04-24 23:20:46 +02:00
user_badges_controller.rb FIX: use discourse route_for function to check url route 2019-01-11 14:58:45 +08:00
users_controller.rb FEATURE: Add support for Unicode usernames and group names 2019-04-23 13:00:27 +02:00
users_email_controller.rb FEATURE: Second factor backup 2018-06-28 10:12:32 +02:00
webhooks_controller.rb FEATURE: AWS SNS bounce notifications webhooks 2019-02-13 21:26:40 +01:00
wizard_controller.rb Refactor requires login logic, reduce duplicate code 2018-02-01 15:17:59 +11:00