This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/lib
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
..
active_record/connection_adapters DEV: Allow custom value when pausing sidekiq to aid in debugging. 2019-02-19 10:55:53 +08:00
auth FEATURE: Allow API requests to specify the DISCOURSE_VISIBLE header 2019-04-15 17:34:34 +01:00
autospec DEV: Remove trailing blank line 2019-04-02 15:49:23 +01:00
backup_restore FIX: Restoring backup shouldn't change disable_emails from "yes" to "non-staff" 2019-04-16 11:48:07 +02:00
common_passwords Make rubocop happy again. 2018-06-07 13:28:18 +08:00
content_security_policy FEATURE: Calculate CSP based on active themes (#6976) 2019-02-11 12:32:04 +00:00
demon FEATURE: introduce ultra_low priority queue 2019-01-17 14:53:19 +11:00
email DEV: stop mutating inputs as a side effect 2019-04-30 10:25:53 +10:00
emoji FIX: correctly uses woman version of previously genderless emojis (#7285) 2019-03-29 10:53:29 +01:00
es6_module_transpiler DEV: Enable Style/SingleLineMethods and Style/Semicolon in Rubocop (#6717) 2018-12-04 11:48:13 +08:00
file_store FIX: Error when trying to move the same file to tombstone. 2019-04-24 16:47:36 +08:00
freedom_patches HTTPSify links (#7046) 2019-02-22 16:29:27 +01:00
generators REFACTOR: Move queue_jobs out of SiteSetting 2019-03-14 10:47:38 -04:00
guardian FIX: prevent anonymous users from changing their email/username/name (#7311) 2019-04-17 18:05:02 +10:00
highlight_js DEV: already defined constant 'HIGHLIGHTJS_DIR' 2019-01-21 10:12:23 +01:00
i18n REFACTOR: Use keyword argument for fallback_to_english flag 2019-02-19 15:28:47 +01:00
import Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
import_export Enable Lint/ShadowingOuterLocalVariable for Rubocop. 2018-09-04 10:16:42 +08:00
javascripts REFACTOR: {{avatar}} and {{date}} helpers in vdom templates 2019-04-30 15:22:38 -04:00
middleware FEATURE: Optional detailed performance logging for Sidekiq jobs (#7091) 2019-03-05 11:19:11 +00:00
migration DEV: Enable Style/SingleLineMethods and Style/Semicolon in Rubocop (#6717) 2018-12-04 11:48:13 +08:00
onebox Upgrade to FontAwesome 5 (take two) (#6673) 2018-11-26 16:49:57 -05:00
plugin DEV: Expose a way to extend a method that returns a list 2019-04-08 14:42:36 -03:00
pretty_text UX: Better emoji escaping for topic title (#7218) 2019-03-21 09:11:33 +01:00
rate_limiter Add specs for RateLimiter::LimitExceeded#description. 2018-06-19 07:48:03 +08:00
reviewable FIX: Approved posts were not enqueueing alerts 2019-04-23 17:30:12 -04:00
scheduler FEATURE: log long running jobs in the defer queue 2018-10-12 17:03:47 +11:00
search FIX: Post blurb incorrect when search contains a phrase match. 2019-03-26 17:01:52 +08:00
seed_data FIX: Forcing permissions of seeded categories shouldn't fail 2019-03-26 10:39:07 +01:00
sidekiq Fix deadblock in 615a22a579. 2019-02-20 10:25:43 +08:00
site_settings DEV: add site setting type group_list for a list of groups 2019-04-29 16:15:22 -04:00
stylesheet FEATURE: Multiple SCSS file support for themes (#7351) 2019-04-12 11:36:08 +01:00
svg_sprite UX: Replace staff notice icon with user-shield. 2019-04-23 10:37:33 +03:00
tasks FEATURE: Automatically generate optimized site metadata icons (#7372) 2019-05-01 14:44:45 +01:00
theme_store FEATURE: Multiple SCSS file support for themes (#7351) 2019-04-12 11:36:08 +01:00
validators DEV: stop mutating inputs as a side effect 2019-04-30 10:25:53 +10:00
wizard FEATURE: Automatically generate optimized site metadata icons (#7372) 2019-05-01 14:44:45 +01:00
admin_confirmation.rb SECURITY: Confirm new administrator accounts via email 2017-04-04 15:59:01 -04:00
admin_constraint.rb FIX: Don't update User#last_seen_at when PG is readonly take 2. 2019-01-21 13:49:08 +08:00
admin_user_index_query.rb DEV: stop mutating inputs as a side effect 2019-04-30 10:25:53 +10:00
age_words.rb reused value of Time.now in a method 2015-12-01 21:06:37 +00:00
archetype.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
auth.rb DEV: Introduce Auth::ManagedAuthenticator 2018-11-30 11:18:11 +00:00
avatar_lookup.rb UX: show full name on /latest page 2018-08-23 14:41:06 +05:30
badge_posts_view_manager.rb Extract badge_posts view management logic into a service object. 2018-09-03 09:51:35 +08:00
badge_queries.rb FIX: grant first quote at the date post was created 2019-04-03 16:41:52 +11:00
base62.rb remove constant warning in base62 file 2018-01-19 19:52:42 +01:00
browser_detection.rb UX: detect DiscourseHub user agent in recently used devices 2019-04-16 13:50:47 -04:00
cache.rb FIX: Don't use Redis#keys in production. 2018-12-25 15:12:59 +02:00
canonical_url.rb FIX: absolute canonical link on topic pages 2013-12-12 17:24:00 +01:00
category_badge.rb FIX: avoid using absolute positioning for box category style in emails (#6607) 2018-11-15 14:35:50 +01:00
comment_migration.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10:00
composer_messages_finder.rb FEATURE: Improve avatar education link (#7240) 2019-03-22 02:20:48 -07:00
configurable_urls.rb Don't blow up if Redis switches to READONLY 2015-04-24 14:37:16 -04:00
content_buffer.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
content_security_policy.rb FEATURE: Calculate CSP based on active themes (#6976) 2019-02-11 12:32:04 +00:00
cooked_post_processor.rb FIX: rescue InvalidURIError when removing user ids from links 2019-04-25 12:36:31 +05:30
crawler_detection.rb FIX: cubot android devices were detected as crawlers 2018-06-21 10:56:46 +10:00
current_user.rb FIX: Do not check for suspicious login when impersonating. (#6534) 2018-11-12 15:34:12 +01:00
custom_renderer.rb Initial release of Discourse 2013-02-05 14:16:51 -05:00
custom_setting_providers.rb Plugins can register providers for global settings 2017-01-09 17:18:58 -05:00
db_helper.rb FIX: Handle BBCode in migrate_to_s3 task as well. 2019-03-22 16:47:06 +08:00
directory_helper.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
discourse_cookie_store.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
discourse_diff.rb FIX: don't add diff classes more than once 2018-04-16 15:41:45 +02:00
discourse_event.rb Revert "PERF: Call web hook events in a new thread (#7451)" (#7456) 2019-04-29 18:50:34 +10:00
discourse_hub.rb DEV: Remove the use of stubs on Rails.logger in our test suite. 2018-10-10 09:34:50 +08:00
discourse_iife.rb Allow the loader to understand when files are moved 2016-11-15 11:41:16 -05:00
discourse_ip_info.rb FIX: Ensure TarReader is closed. 2019-04-10 13:37:04 +03:00
discourse_logstash_logger.rb FIX: Incorrect formatter used when logstash formatter is enabled. 2018-04-17 12:07:52 +08:00
discourse_plugin_registry.rb DEV: Yarn-manage moment and moment-timezone libraries 2019-02-12 13:57:52 -05:00
discourse_plugin.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
discourse_redis.rb Follow up to f6f2c38183. 2019-01-22 12:51:59 +08:00
discourse_tagging.rb DEV: stop mutating inputs as a side effect 2019-04-30 10:25:53 +10:00
discourse_updates.rb DEV: Fix rubocop after update. 2019-01-02 05:47:29 +08:00
discourse.rb FEATURE: Create new helper method 'Discourse.stats' (#7388) 2019-04-17 12:45:04 +05:30
disk_space.rb FEATURE: Improve backup stats on admin dashboard 2018-12-17 11:35:11 +01:00
distributed_cache.rb REFACTOR: distributed_cache is moved to the message_bus gem 2018-10-15 15:01:45 -04:00
distributed_memoizer.rb DEV: Properly flush DistributedMemoizer in spec. 2019-02-21 15:17:37 +08:00
distributed_mutex.rb DEV: Prevent warning about already initialized constant 2019-02-28 21:57:20 +01:00
edit_rate_limiter.rb Add better error messages for rate limits. 2015-09-24 13:52:46 -04:00
email_backup_token.rb FEATURE: further restrict downloading of backups 2017-03-01 08:28:34 -07:00
email_cook.rb replace indentation with non-breaking spaces when cooking emails 2017-11-18 17:16:44 +01:00
email_updater.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
email.rb FEATURE: Include "via <site_name>" in email From header 2019-01-04 17:06:19 +01:00
encodings.rb Use rchardet instead of charlock_holmes gem 2018-08-01 10:41:20 +02:00
enum_site_setting.rb Enum site settings can have translatable names in dropdown. Add setting for how often users get digest emails by default: default_digest_email_frequency. 2013-08-23 17:36:25 -04:00
enum.rb Enums that are used in tables need to be stable 2016-01-08 20:43:11 +05:30
excerpt_parser.rb Revert "FIX: strip spoilers in notification excerpts" 2019-04-15 10:15:17 -04:00
feed_element_installer.rb FEATURE: Replace SimpleRSS with Ruby RSS module (#5311) 2017-12-06 10:45:09 +11:00
feed_item_accessor.rb FEATURE: Replace SimpleRSS with Ruby RSS module (#5311) 2017-12-06 10:45:09 +11:00
file_helper.rb PERF: reduce workload when optimizing images 2019-01-09 12:28:18 +11:00
filter_best_posts.rb PERF: Remove Object#present? check introduced in e0d5d9670a. 2017-09-07 21:36:27 +08:00
final_destination.rb FIX: GET request didn't use headers 2019-03-08 21:36:49 +01:00
flag_query.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
flag_settings.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
gaps.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
global_path.rb FIX: Incorrect CDN URL for site setting uploads when s3 is enabled. 2019-01-04 07:52:13 +08:00
guardian.rb FIX: prevent anonymous users from changing their email/username/name (#7311) 2019-04-17 18:05:02 +10:00
has_errors.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
headless-ember.js JSHint headless-ember 2014-03-11 03:18:57 -04:00
hijack.rb Take 2 of 0f5161af19. 2019-04-29 16:41:35 +08:00
homepage_constraint.rb FIX: Don't update User#last_seen_at when PG is readonly take 2. 2019-01-21 13:49:08 +08:00
html_prettify.rb Update Rubocop to 0.60 2018-12-04 10:48:16 +01:00
html_to_markdown.rb FIX: skip <br> inside <p> if next character is \n 2019-04-14 14:44:54 +05:30
image_sizer.rb FIX: raise exception when getting dimensions of missing image 2018-12-03 10:19:49 -05:00
inline_oneboxer.rb FIX: Cache url data for failed inline oneboxes 2018-11-13 01:44:20 +05:30
introduction_updater.rb FEATURE: Locale support for seeded categories and topics (#7110) 2019-03-18 21:09:13 +01:00
ip_addr.rb Replace certain uses of 'gsub' with 'tr' or 'chomp' for a speed 2016-06-10 22:08:37 -05:00
js_locale_helper.rb DEV: Prevent warnings in specs 2019-04-16 11:41:27 +02:00
json_error.rb FEATURE: Support backup uploads/downloads directly to/from S3. 2018-10-15 09:43:31 +08:00
letter_avatar.rb FIX: don't generate an exception when trying to cleanup unexisting tmp letter avatars 2018-05-30 15:33:58 +02:00
markdown_linker.rb FIX: subfolder digest emails have incorrect URLs 2018-08-07 16:38:17 -04:00
mem_info.rb do not pull hotlinked images when max_image_size_kb == 0 2013-11-13 17:30:48 +01:00
message_bus_diags.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
method_profiler.rb FEATURE: Optional detailed performance logging for Sidekiq jobs (#7091) 2019-03-05 11:19:11 +00:00
mini_sql_multisite_connection.rb FEATURE: mini_sql upgrade 2019-02-25 16:02:32 +11:00
mobile_detection.rb FEATURE: add ability to clear previously set mobile_view with mobile_view=auto 2019-02-22 10:44:49 -08:00
new_post_manager.rb FIX: nil error in list, incorrect count in reviewable pending 2019-04-22 12:18:57 -04:00
new_post_result.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
notification_levels.rb Server side code for Watching First Post Only 2016-07-07 11:21:50 -04:00
oneboxer.rb FIX: Onebox discourse user not respecting enable names (#7245) 2019-03-25 12:50:14 +05:30
onpdiff.rb add onpdiff tests 2013-12-16 18:39:49 +01:00
pbkdf2.rb more prep work for jRuby 2018-02-26 10:25:58 +11:00
permalink_constraint.rb FIX: permalink normalization not applied at constraint 2015-07-22 13:40:45 +10:00
pinned_check.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
plain_text_to_markdown.rb FEATURE: convert plain text emails to markdown 2017-12-06 01:47:51 +01:00
plugin_gem.rb Override problematic .gemrc setting 2018-10-17 15:31:58 +11:00
post_action_creator.rb FIX: Take action should agree with all pending flags 2019-04-08 12:39:18 -04:00
post_action_destroyer.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
post_action_result.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
post_creator.rb DEV: remove update_attributes which is deprecated in Rails 6 2019-04-29 17:32:25 +10:00
post_destroyer.rb DEV: remove update_attributes which is deprecated in Rails 6 2019-04-29 17:32:25 +10:00
post_jobs_enqueuer.rb FEATURE: Remove full quotes only from new posts. (#6862) 2019-01-17 13:24:32 +11:00
post_locker.rb FEATURE: Staff members can lock posts 2018-01-26 14:01:30 -05:00
post_merger.rb FIX: Revised post not updated correctly when merging posts. 2016-08-11 09:01:54 +08:00
post_revisor.rb FIX: Publish web hooks when topic archetype is converted. 2019-04-16 15:18:39 +08:00
pretty_text.rb FIX: get vimeo URL from data-original-href iframe attribute 2019-04-26 17:12:07 +05:30
primary_group_lookup.rb PERF: Remove N+1 query when generating posters summary. 2017-09-14 12:07:35 +08:00
promotion.rb FIX: Clarify User.group_locked_trust_level. 2018-11-07 10:27:44 +08:00
quote_comparer.rb FEATURE: Add quote-modified class if a quote has been modified 2018-03-13 13:41:06 -04:00
rate_limiter.rb correct return value 2018-04-25 08:44:07 +10:00
remap.rb FEATURE: Automatically generate optimized site metadata icons (#7372) 2019-05-01 14:44:45 +01:00
retrieve_title.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
route_format.rb FEATURE: Add support for Unicode usernames and group names 2019-04-23 13:00:27 +02:00
rtl.rb DEV: Move RTL into lib where it belongs 2017-07-03 15:26:57 -04:00
s3_helper.rb DEV: Remove SiteSetting.s3_force_path_style (#7210) 2019-03-20 14:58:20 +01:00
s3_inventory.rb FEATURE: Create new helper method 'Discourse.stats' (#7388) 2019-04-17 12:45:04 +05:30
score_calculator.rb PERF: we have no use for topic percent rank 2018-07-05 15:10:19 +10:00
screening_model.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
search.rb FEATURE: Added unlisted topics option to advanced search (#7447) 2019-05-01 12:31:13 +10:00
secure_session.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
single_sign_on_provider.rb FIX: move sso provider into its own class so it doesn't interfere with sso client (#6767) 2018-12-19 10:22:10 +01:00
single_sign_on.rb DEV: allow nonce expiry time to be extended cleanly from a plugin 2019-03-19 17:33:38 +11:00
site_icon_manager.rb FEATURE: Automatically generate optimized site metadata icons (#7372) 2019-05-01 14:44:45 +01:00
site_setting_extension.rb FEATURE: Automatically generate optimized site metadata icons (#7372) 2019-05-01 14:44:45 +01:00
slug.rb FIX: Generate ASCII slug with default locale 2019-04-29 18:29:58 +02:00
socket_server.rb Improve error messaging in SocketServer. 2018-09-19 09:11:10 +08:00
source_url.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
spam_handler.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
sql_builder.rb DEV: remove all calls to SqlBuilder use DB.build instead 2018-06-20 17:53:49 +10:00
staff_constraint.rb FIX: Don't update User#last_seen_at when PG is readonly take 2. 2019-01-21 13:49:08 +08:00
staff_message_format.rb More extensibility for custom silence/suspend messages 2018-01-19 11:35:19 -05:00
suggested_topics_builder.rb tweaks to related message list generation 2018-10-29 16:09:58 +11:00
system_message.rb FEATURE: Add site contact group. (#7152) 2019-03-13 11:34:47 +01:00
text_cleaner.rb DEV: stop mutating inputs as a side effect 2019-04-30 10:25:53 +10:00
text_sentinel.rb FIX: skip some checks for CJK locale in TextSentinel (#7322) 2019-04-05 15:07:49 +02:00
theme_javascript_compiler.rb FIX: Prevent duplicate params for raw template theme handlebars helpers 2019-02-08 12:54:00 +00:00
theme_settings_manager.rb FEATURE: Allow string theme settings to display with multiple lines 2019-02-05 14:14:53 +00:00
theme_settings_parser.rb FEATURE: Allow string theme settings to display with multiple lines 2019-02-05 14:14:53 +00:00
theme_translation_manager.rb FEATURE: Support for localized themes (#6848) 2019-01-17 11:46:11 +00:00
theme_translation_parser.rb FIX: Circular argument reference 2019-01-25 17:44:02 +00:00
timeline_lookup.rb PERF: Don't pluck all the columns just to retrieve a single value. 2018-06-27 11:41:35 +08:00
topic_creator.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
topic_list_responder.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
topic_publisher.rb FIX: Missing topic edited web hook when publishing a topic. 2019-04-16 14:28:23 +08:00
topic_query_sql.rb DEV: Rails 5.2 upgrade and global gem upgrade 2018-06-07 14:21:33 +10:00
topic_query.rb DEV: stop mutating inputs as a side effect 2019-04-30 10:25:53 +10:00
topic_retriever.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
topic_subtype.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
topic_view.rb FEATURE: Let staff add custom post notices. (#7377) 2019-04-19 17:53:58 +03:00
topics_bulk_action.rb FIX: Bulk deleting topics should ignore already deleted topics 2018-08-14 16:37:52 +02:00
trust_level.rb FIX: admin trust level user list URL should be consistent with new naming 2015-11-23 14:28:56 +05:30
twitter_api.rb FIX: allow Twitter videos to go fullscreen 2018-07-19 10:22:36 +05:30
unread.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
upload_creator.rb FIX: whitelist 'feGaussianBlur' and 'filter' svg elements 2019-04-01 12:56:47 +02:00
upload_fixer.rb typo in error message 2018-08-10 11:34:01 +10:00
upload_recovery.rb FIX: should look through posts for image markdown 2019-04-10 13:52:35 +05:30
url_helper.rb FIX: detect local assets for subfolder installs 2019-04-13 10:35:23 -07:00
user_name_suggester.rb DEV: stop mutating inputs as a side effect 2019-04-30 10:25:53 +10:00
version.rb Version bump to v2.3.0.beta9 2019-04-24 16:22:00 +02:00
wizard.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00