From a571efba35e40f69670768e8a6aff14522cb5718 Mon Sep 17 00:00:00 2001 From: Penar Musaraj Date: Tue, 16 Jul 2019 11:13:44 -0400 Subject: [PATCH] FIX: Rename deprecated icons, allow custom icons in badges - adds a migration renaming FA4 icon names in badges - allows all icons to be used in badges (previously was limited to icons prefixed with fa-) - renames remaining FA 4.7 icons equivalents --- .../admin/components/admin-web-hook-status.js.es6 | 2 +- .../admin/templates/customize-colors-show.hbs | 2 +- app/assets/javascripts/admin/templates/web-hooks.hbs | 2 +- .../discourse/helpers/icon-or-image.js.es6 | 2 +- .../javascripts/discourse/models/composer.js.es6 | 4 ++-- app/assets/javascripts/discourse/templates/about.hbs | 2 +- .../templates/components/shared-draft-controls.hbs | 2 +- .../discourse/widgets/post-admin-menu.js.es6 | 4 ++-- .../discourse/widgets/post-edits-indicator.js.es6 | 2 +- .../javascripts/discourse/widgets/post-menu.js.es6 | 2 +- .../select-kit/components/composer-actions.js.es6 | 4 ++-- config/locales/client.en.yml | 2 +- db/fixtures/006_badges.rb | 4 ++-- .../20190716014949_rename_deprecated_badge_icons.rb | 11 +++++++++++ test/javascripts/fixtures/user_fixtures.js.es6 | 6 +++--- test/javascripts/widgets/topic-status-test.js.es6 | 4 ++-- 16 files changed, 33 insertions(+), 22 deletions(-) create mode 100644 db/migrate/20190716014949_rename_deprecated_badge_icons.rb diff --git a/app/assets/javascripts/admin/components/admin-web-hook-status.js.es6 b/app/assets/javascripts/admin/components/admin-web-hook-status.js.es6 index 1dc7a27c351..6e325b2fe9e 100644 --- a/app/assets/javascripts/admin/components/admin-web-hook-status.js.es6 +++ b/app/assets/javascripts/admin/components/admin-web-hook-status.js.es6 @@ -5,7 +5,7 @@ import { bufferedRender } from "discourse-common/lib/buffered-render"; export default Ember.Component.extend( bufferedRender({ classes: ["text-muted", "text-danger", "text-successful", "text-muted"], - icons: ["circle-o", "times-circle", "circle", "circle"], + icons: ["far-circle", "times-circle", "circle", "circle"], @computed("deliveryStatuses", "model.last_delivery_status") status(deliveryStatuses, lastDeliveryStatus) { diff --git a/app/assets/javascripts/admin/templates/customize-colors-show.hbs b/app/assets/javascripts/admin/templates/customize-colors-show.hbs index fd44f997f6a..521cd8688c1 100644 --- a/app/assets/javascripts/admin/templates/customize-colors-show.hbs +++ b/app/assets/javascripts/admin/templates/customize-colors-show.hbs @@ -6,7 +6,7 @@ {{/unless}} - + {{#if model.theme_id}} {{i18n "admin.customize.theme_owner"}} {{#link-to "adminCustomizeThemes.show" model.theme_id}}{{model.theme_name}}{{/link-to}} diff --git a/app/assets/javascripts/admin/templates/web-hooks.hbs b/app/assets/javascripts/admin/templates/web-hooks.hbs index b48c0e37c35..389f7d48155 100644 --- a/app/assets/javascripts/admin/templates/web-hooks.hbs +++ b/app/assets/javascripts/admin/templates/web-hooks.hbs @@ -25,7 +25,7 @@ {{webHook.description}} {{#link-to 'adminWebHooks.show' webHook tagName='button' classNames='btn btn-default no-text'}}{{d-icon 'far-edit'}}{{/link-to}} - {{d-button class="destroy btn-danger" action=(action "destroy") actionParam=webHook icon="remove"}} + {{d-button class="destroy btn-danger" action=(action "destroy") actionParam=webHook icon="times"}} {{/each}} diff --git a/app/assets/javascripts/discourse/helpers/icon-or-image.js.es6 b/app/assets/javascripts/discourse/helpers/icon-or-image.js.es6 index 8e48171eee7..0751b6f0e29 100644 --- a/app/assets/javascripts/discourse/helpers/icon-or-image.js.es6 +++ b/app/assets/javascripts/discourse/helpers/icon-or-image.js.es6 @@ -6,7 +6,7 @@ export default htmlHelper(function({ icon, image }) { return ``; } - if (Ember.isEmpty(icon) || icon.indexOf("fa-") < 0) { + if (Ember.isEmpty(icon)) { return ""; } diff --git a/app/assets/javascripts/discourse/models/composer.js.es6 b/app/assets/javascripts/discourse/models/composer.js.es6 index 7e4f38a5854..cdce634ff27 100644 --- a/app/assets/javascripts/discourse/models/composer.js.es6 +++ b/app/assets/javascripts/discourse/models/composer.js.es6 @@ -69,11 +69,11 @@ export const SAVE_LABELS = { export const SAVE_ICONS = { [EDIT]: "pencil-alt", - [EDIT_SHARED_DRAFT]: "clipboard", + [EDIT_SHARED_DRAFT]: "far-clipboard", [REPLY]: "reply", [CREATE_TOPIC]: "plus", [PRIVATE_MESSAGE]: "envelope", - [CREATE_SHARED_DRAFT]: "clipboard" + [CREATE_SHARED_DRAFT]: "far-clipboard" }; const Composer = RestModel.extend({ diff --git a/app/assets/javascripts/discourse/templates/about.hbs b/app/assets/javascripts/discourse/templates/about.hbs index e0b3ca0c171..495a7a3db9b 100644 --- a/app/assets/javascripts/discourse/templates/about.hbs +++ b/app/assets/javascripts/discourse/templates/about.hbs @@ -58,7 +58,7 @@ args=(hash model=model)}}
-

{{d-icon "bar-chart"}} {{i18n 'about.stats'}}

+

{{d-icon "far-chart-bar"}} {{i18n 'about.stats'}}

diff --git a/app/assets/javascripts/discourse/templates/components/shared-draft-controls.hbs b/app/assets/javascripts/discourse/templates/components/shared-draft-controls.hbs index feeed4be439..0f458144831 100644 --- a/app/assets/javascripts/discourse/templates/components/shared-draft-controls.hbs +++ b/app/assets/javascripts/discourse/templates/components/shared-draft-controls.hbs @@ -17,7 +17,7 @@ action=(action "publish") label="shared_drafts.publish" class="btn-primary publish-shared-draft" - icon="clipboard"}} + icon="far-clipboard"}} {{/if}} {{/if}} diff --git a/app/assets/javascripts/discourse/widgets/post-admin-menu.js.es6 b/app/assets/javascripts/discourse/widgets/post-admin-menu.js.es6 index 2ae0a487bed..83e77347576 100644 --- a/app/assets/javascripts/discourse/widgets/post-admin-menu.js.es6 +++ b/app/assets/javascripts/discourse/widgets/post-admin-menu.js.es6 @@ -107,14 +107,14 @@ export function buildManageButtons(attrs, currentUser, siteSettings) { contents.push({ action: "toggleWiki", label: "post.controls.unwiki", - icon: "pencil-square-o", + icon: "far-edit", className: "btn-default wiki wikied" }); } else { contents.push({ action: "toggleWiki", label: "post.controls.wiki", - icon: "pencil-square-o", + icon: "far-edit", className: "btn-default wiki" }); } diff --git a/app/assets/javascripts/discourse/widgets/post-edits-indicator.js.es6 b/app/assets/javascripts/discourse/widgets/post-edits-indicator.js.es6 index 81f339d455d..46f7ed3f4d2 100644 --- a/app/assets/javascripts/discourse/widgets/post-edits-indicator.js.es6 +++ b/app/assets/javascripts/discourse/widgets/post-edits-indicator.js.es6 @@ -40,7 +40,7 @@ export default createWidget("post-edits-indicator", { let title; if (attrs.wiki) { - icon = "pencil-square-o"; + icon = "far-edit"; className = `${className || ""} wiki`.trim(); if (attrs.version > 1) { diff --git a/app/assets/javascripts/discourse/widgets/post-menu.js.es6 b/app/assets/javascripts/discourse/widgets/post-menu.js.es6 index e3d8c6ba3c5..4eadb59c0d2 100644 --- a/app/assets/javascripts/discourse/widgets/post-menu.js.es6 +++ b/app/assets/javascripts/discourse/widgets/post-menu.js.es6 @@ -178,7 +178,7 @@ registerButton("wiki-edit", attrs => { action: "editPost", className: "edit create", title: "post.controls.edit", - icon: "pencil-square-o", + icon: "far-edit", alwaysShowYours: true }; if (!attrs.mobileView) { diff --git a/app/assets/javascripts/select-kit/components/composer-actions.js.es6 b/app/assets/javascripts/select-kit/components/composer-actions.js.es6 index 2f95497511f..80f7f4c9ef7 100644 --- a/app/assets/javascripts/select-kit/components/composer-actions.js.es6 +++ b/app/assets/javascripts/select-kit/components/composer-actions.js.es6 @@ -67,7 +67,7 @@ export default DropdownSelectBoxComponent.extend({ content.title = I18n.t("composer.composer_actions.edit"); break; case CREATE_SHARED_DRAFT: - content.icon = "clipboard"; + content.icon = "far-clipboard"; content.title = I18n.t("composer.composer_actions.draft"); break; } @@ -167,7 +167,7 @@ export default DropdownSelectBoxComponent.extend({ items.push({ name: I18n.t("composer.composer_actions.shared_draft.label"), description: I18n.t("composer.composer_actions.shared_draft.desc"), - icon: "clipboard", + icon: "far-clipboard", id: "shared_draft" }); } diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index b59fb1f83a9..4e01d15691b 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -4240,7 +4240,7 @@ en: enabled: Enable badge icon: Icon image: Image - icon_help: "Use a Font Awesome class" + icon_help: "Enter a Font Awesome icon name (use prefix 'far-' for regular icons and 'fab-' for brand icons)" image_help: "Enter the URL of the image (overrides icon field if both are set)" query: Badge Query (SQL) target_posts: Query targets posts diff --git a/db/fixtures/006_badges.rb b/db/fixtures/006_badges.rb index 211a972f17f..c0b3b76dfcc 100644 --- a/db/fixtures/006_badges.rb +++ b/db/fixtures/006_badges.rb @@ -270,7 +270,7 @@ end Badge.seed do |b| b.id = Badge::Anniversary b.name = "Anniversary" - b.default_icon = "fa-clock-o" + b.default_icon = "far-clock" b.badge_type_id = BadgeType::Silver b.default_badge_grouping_id = BadgeGrouping::Community b.query = nil @@ -427,7 +427,7 @@ end Badge.seed do |b| b.id = id b.name = name - b.default_icon = "fa-eye" + b.default_icon = "far-eye" b.badge_type_id = level b.query = BadgeQueries.consecutive_visits(days) b.default_badge_grouping_id = BadgeGrouping::Community diff --git a/db/migrate/20190716014949_rename_deprecated_badge_icons.rb b/db/migrate/20190716014949_rename_deprecated_badge_icons.rb new file mode 100644 index 00000000000..e7eed38200a --- /dev/null +++ b/db/migrate/20190716014949_rename_deprecated_badge_icons.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +class RenameDeprecatedBadgeIcons < ActiveRecord::Migration[5.2] + def up + execute "UPDATE badges SET icon = 'far-clock' WHERE icon = 'fa-clock-o'" + execute "UPDATE badges SET icon = 'far-eye' WHERE icon = 'fa-eye'" + end + + def down + end +end diff --git a/test/javascripts/fixtures/user_fixtures.js.es6 b/test/javascripts/fixtures/user_fixtures.js.es6 index 4505893c6d5..e8a42c3d569 100644 --- a/test/javascripts/fixtures/user_fixtures.js.es6 +++ b/test/javascripts/fixtures/user_fixtures.js.es6 @@ -246,7 +246,7 @@ export default { browser: "Google Chrome", device: "Linux Computer", os: "Linux", - icon: "linux", + icon: "fab-linux", created_at: "2018-09-08T21:22:56.225Z", seen_at: "2018-09-08T21:22:56.512Z", is_active: false @@ -258,7 +258,7 @@ export default { browser: "Google Chrome", device: "Linux Computer", os: "Linux", - icon: "linux", + icon: "fab-linux", created_at: "2018-09-08T21:33:41.616Z", seen_at: "2018-09-08T21:33:42.209Z", is_active: true @@ -270,7 +270,7 @@ export default { browser: "Internet Explorer", device: "Windows Computer", os: "Windows", - icon: "windows", + icon: "fab-windows", created_at: "2018-09-07T21:44:41.616Z", seen_at: "2018-09-08T21:44:42.209Z", is_active: false diff --git a/test/javascripts/widgets/topic-status-test.js.es6 b/test/javascripts/widgets/topic-status-test.js.es6 index e0ed454fc31..c5888d4aa4d 100644 --- a/test/javascripts/widgets/topic-status-test.js.es6 +++ b/test/javascripts/widgets/topic-status-test.js.es6 @@ -21,7 +21,7 @@ widgetTest("extendability", { beforeEach(store) { TopicStatusIcons.addObject([ "has_accepted_answer", - "check-square-o", + "far-check-square", "solved" ]); this.set("args", { @@ -32,6 +32,6 @@ widgetTest("extendability", { }); }, test(assert) { - assert.ok(find(".topic-status .d-icon-check-square-o").length); + assert.ok(find(".topic-status .d-icon-far-check-square").length); } });