Fix several FontAwesome 5 issues

add missing icons, update SvgSprite methods (to fix ruby 2.4 issues), update whisper icon in composer, fix alignment issues
This commit is contained in:
Penar Musaraj 2018-11-07 22:20:53 -05:00
parent 3365753bd0
commit 09dc922b3b
15 changed files with 49 additions and 52 deletions

View File

@ -26,12 +26,12 @@ const REPLACEMENTS = {
"notification.liked_many": "heart",
"notification.private_message": "far-envelope",
"notification.invited_to_private_message": "far-envelope",
"notification.invited_to_topic": "far-hand-point-right",
"notification.invited_to_topic": "hand-point-right",
"notification.invitee_accepted": "user",
"notification.moved_post": "sign-out",
"notification.linked": "link",
"notification.granted_badge": "certificate",
"notification.topic_reminder": "hand-o-right",
"notification.topic_reminder": "hand-point-right",
"notification.watching_first_post": "far-dot-circle",
"notification.group_message_summary": "group"
};
@ -60,6 +60,7 @@ const fa4Replacements = {
"github-square": "fab-github-square",
"hacker-news": "fab-hacker-news",
"hand-grab-o": "far-hand-rock",
"hand-o-right": "hand-point-right",
"id-badge": "far-id-badge",
"internet-explorer": "fab-internet-explorer",
"line-chart": "chart-line",

View File

@ -186,15 +186,6 @@ export default Ember.Controller.extend({
);
},
@computed("model.whisper", "model.unlistTopic")
whisperOrUnlistTopicText(whisper, unlistTopic) {
if (whisper) {
return I18n.t("composer.whisper");
} else if (unlistTopic) {
return I18n.t("composer.unlist");
}
},
@computed
isStaffUser() {
const currentUser = this.currentUser;

View File

@ -206,7 +206,7 @@ export default Ember.Controller.extend(ModalFunctionality, {
this.set("inviteIcon", "envelope");
return I18n.t("topic.invite_reply.to_topic_email");
} else {
this.set("inviteIcon", "hand-o-right");
this.set("inviteIcon", "hand-point-right");
return I18n.t("topic.invite_reply.to_topic_username");
}
}

View File

@ -382,8 +382,11 @@ const Composer = RestModel.extend({
return this.get("titleLength") <= this.siteSettings.max_topic_title_length;
}.property("minimumTitleLength", "titleLength", "post.static_doc"),
@computed("action")
saveIcon(action) {
@computed("action", "whisper")
saveIcon(action, whisper) {
if (whisper) {
return "eye-slash";
}
return SAVE_ICONS[action];
},

View File

@ -19,8 +19,11 @@
{{composer-action-title model=model canWhisper=canWhisper tabindex=8}}
{{#unless site.mobileView}}
{{#if whisperOrUnlistTopicText}}
<span class='whisper'>({{whisperOrUnlistTopicText}})</span>
{{#if model.whisper}}
<span class='whisper'>{{d-icon 'eye-slash'}}</span>
{{/if}}
{{#if model.unlistTopic}}
<span class='whisper'>({{i18n 'composer.unlist'}})</span>
{{/if}}
{{#if model.noBump}}
<span class="no-bump">{{d-icon "anchor"}}</span>

View File

@ -53,7 +53,7 @@ const icons = {
removed_group: "minus-circle",
public_topic: "comment",
private_topic: "envelope",
autobumped: "hand-o-right"
autobumped: "hand-point-right"
};
export function addPostSmallActionIcon(key, icon) {

View File

@ -101,6 +101,10 @@
max-width: calc(100% - 60px);
flex: 1 1 auto;
white-space: nowrap;
.d-icon {
opacity: 0.8;
}
}
.composer-action-title {
display: inline-flex;

View File

@ -28,7 +28,9 @@
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: middle;
a {
vertical-align: middle;
color: dark-light-choose($primary-high, $secondary-low);
}
}
@ -838,11 +840,6 @@ a.mention-group {
display: none;
}
}
.names {
span {
display: block;
}
}
.user-title {
float: left;
clear: left;

View File

@ -15,8 +15,7 @@
.d-icon {
display: block;
margin-top: 2px;
margin-bottom: 2px;
margin: 2px auto;
transform: rotate(90deg);
}
}

View File

@ -172,4 +172,8 @@
.add-warning {
margin: 0 0 5px 5px;
}
.whisper {
margin-right: 5px;
}
}

View File

@ -7,9 +7,7 @@ class SvgSpriteController < ApplicationController
RailsMultisite::ConnectionManagement.with_hostname(params[:hostname]) do
current_version = SvgSprite.version(SvgSprite.all_icons.to_s)
if current_version != params[:version]
if SvgSprite.version != params[:version]
return redirect_to path(SvgSprite.path)
end

View File

@ -13,9 +13,11 @@ module SvgSprite
"backward",
"ban",
"bars",
"bed",
"bold",
"book",
"bookmark",
"briefcase",
"calendar-alt",
"caret-down",
"caret-left",
@ -73,6 +75,7 @@ module SvgSprite
"far-list-alt",
"far-smile",
"far-square",
"far-sun",
"far-thumbs-down",
"far-thumbs-up",
"far-trash-alt",
@ -82,10 +85,12 @@ module SvgSprite
"file-alt",
"flag",
"folder",
"folder-open",
"forward",
"gavel",
"globe",
"globe-americas",
"hand-point-right",
"heading",
"heart",
"info-circle",
@ -96,6 +101,7 @@ module SvgSprite
"list-ol",
"list-ul",
"lock",
"magic",
"microphone-slash",
"minus",
"mobile-alt",
@ -103,6 +109,8 @@ module SvgSprite
"pencil-alt",
"plug",
"plus",
"plus-circle",
"plus-square",
"power-off",
"question",
"question-circle",
@ -181,13 +189,14 @@ module SvgSprite
@svg_subset << '</svg>'
end
def self.version(svg_subset)
(@svg_subset_cache ||= {})[svg_subset] ||=
Digest::SHA1.hexdigest(svg_subset)
def self.version
icon_subset = all_icons.sort.join('|')
(@svg_subset_cache ||= {})[icon_subset] ||=
Digest::SHA1.hexdigest(icon_subset)
end
def self.path
"/svg-sprite/#{Discourse.current_hostname}/#{version all_icons.to_s}.svg"
"/svg-sprite/#{Discourse.current_hostname}/#{version}.svg"
end
def self.plugin_icons

View File

@ -7,11 +7,11 @@ describe SvgSprite do
expect(bundle).to match(/angle-double-down/)
end
it 'can get a version string' do
version1 = SvgSprite.version("heart|caret-down")
version2 = SvgSprite.version("heart|caret-down|caret-up")
it 'can get a consistent version string' do
version1 = SvgSprite.version
version2 = SvgSprite.version
expect(version1).not_to eq(version2)
expect(version1).to eq(version2)
end
it 'includes Font Awesome 4.7 icons from badges' do

View File

@ -88,11 +88,7 @@ QUnit.test("replying to post - toggle_whisper", async assert => {
await composerActions.expand();
await composerActions.selectRowByValue("toggle_whisper");
assert.ok(
find(".composer-fields .whisper")
.text()
.indexOf(I18n.t("composer.whisper")) > 0
);
assert.ok(find(".composer-fields .whisper .d-icon-eye-slash").length === 1);
});
QUnit.test("replying to post - reply_as_new_topic", async assert => {

View File

@ -375,9 +375,7 @@ QUnit.test("Composer can toggle whispers", async assert => {
);
assert.ok(
find(".composer-fields .whisper")
.text()
.indexOf(I18n.t("composer.whisper")) > 0,
find(".composer-fields .whisper .d-icon-eye-slash").length === 1,
"it sets the post type to whisper"
);
@ -387,9 +385,7 @@ QUnit.test("Composer can toggle whispers", async assert => {
);
assert.ok(
find(".composer-fields .whisper")
.text()
.indexOf(I18n.t("composer.whisper")) <= 0,
find(".composer-fields .whisper .d-icon-eye-slash").length === 0,
"it removes the whisper mode"
);
});
@ -406,9 +402,7 @@ QUnit.test(
);
assert.ok(
find(".composer-fields .whisper")
.text()
.indexOf(I18n.t("composer.whisper")) > 0,
find(".composer-fields .whisper .d-icon-eye-slash").length === 1,
"it sets the post type to whisper"
);
@ -417,9 +411,7 @@ QUnit.test(
await click("#create-topic");
assert.ok(
find(".composer-fields .whisper")
.text()
.indexOf(I18n.t("composer.whisper")) === -1,
find(".composer-fields .whisper .d-icon-eye-slash").length === 0,
"it should reset the state of the composer's model"
);