mirror of
https://github.com/discourse/discourse.git
synced 2024-11-21 00:24:16 -06:00
UX: Upgrade to fontawesome 6.6.0 (#28778)
This upgrade is designed to be fully backwards-compatible. Any icon names which have changed will be automatically remapped to the new name. For now, this will happen silently. In future, once core & official themes/plugins have been updated, we will start raising deprecation errors to help theme/plugin authors update their code. Extracted from https://github.com/discourse/discourse/pull/28715 Announcement at https://meta.discourse.org/t/were-upgrading-our-icons-to-font-awesome-6/325349 Co-authored-by: awesomerobot <kris.aubuchon@discourse.org>
This commit is contained in:
parent
70e27b3476
commit
7d8974d02f
@ -9,6 +9,10 @@ const DEPRECATION_WORKFLOW = [
|
||||
handler: "silence",
|
||||
matchId: "discourse.decorate-widget.hamburger-widget-links",
|
||||
},
|
||||
{
|
||||
handler: "silence",
|
||||
matchId: "discourse.fontawesome-6-upgrade",
|
||||
},
|
||||
];
|
||||
|
||||
export default DEPRECATION_WORKFLOW;
|
||||
|
@ -29,7 +29,7 @@ export const REPLACEMENTS = {
|
||||
"notification.replied": "reply",
|
||||
"notification.posted": "discourse-bell-exclamation",
|
||||
"notification.watching_category_or_tag": "discourse-bell-exclamation",
|
||||
"notification.edited": "pencil-alt",
|
||||
"notification.edited": "pencil",
|
||||
"notification.bookmark_reminder": "discourse-bookmark-clock",
|
||||
"notification.liked": "heart",
|
||||
"notification.liked_2": "heart",
|
||||
@ -39,7 +39,7 @@ export const REPLACEMENTS = {
|
||||
"notification.invited_to_private_message": "envelope",
|
||||
"notification.invited_to_topic": "hand-point-right",
|
||||
"notification.invitee_accepted": "user",
|
||||
"notification.moved_post": "sign-out-alt",
|
||||
"notification.moved_post": "right-from-bracket",
|
||||
"notification.linked": "link",
|
||||
"notification.linked_consolidated": "link",
|
||||
"notification.granted_badge": "certificate",
|
||||
@ -53,11 +53,14 @@ export const REPLACEMENTS = {
|
||||
"notification.votes_released": "plus",
|
||||
"notification.chat_quoted": "quote-right",
|
||||
"user_menu.replies": "reply",
|
||||
"user_menu.drafts": "pencil-alt",
|
||||
"user_menu.drafts": "pencil",
|
||||
"sidebar.all_categories": "list",
|
||||
};
|
||||
|
||||
export function replaceIcon(source, destination) {
|
||||
source = handleDeprecatedIcon(source);
|
||||
destination = handleDeprecatedIcon(destination);
|
||||
|
||||
REPLACEMENTS[source] = destination;
|
||||
}
|
||||
|
||||
@ -132,6 +135,24 @@ export function isExistingIconId(id) {
|
||||
return _iconList?.includes(id);
|
||||
}
|
||||
|
||||
function handleDeprecatedIcon(id) {
|
||||
let newId = id;
|
||||
|
||||
newId = convertIconClass(newId); // Remap from FA4
|
||||
newId = remapFromFA5(newId);
|
||||
|
||||
if (newId !== id) {
|
||||
deprecated(
|
||||
`The icon name "${id}" has been updated to "${newId}". Please use the new name in your code. Old names will be removed in Q2 2025.`,
|
||||
{
|
||||
id: "discourse.fontawesome-6-upgrade",
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
return newId;
|
||||
}
|
||||
|
||||
function warnIfMissing(id) {
|
||||
if (warnMissingIcons && isDevelopment() && !isExistingIconId(id)) {
|
||||
console.warn(`The icon "${id}" is missing from the SVG subset.`); // eslint-disable-line no-console
|
||||
@ -144,6 +165,8 @@ function handleIconId(icon) {
|
||||
// TODO: clean up "thumbtack unpinned" at source instead of here
|
||||
id = id.replace(" unpinned", "");
|
||||
|
||||
id = handleDeprecatedIcon(id); // Automatically remap deprecated icon names
|
||||
|
||||
warnIfMissing(id);
|
||||
return id;
|
||||
}
|
||||
@ -222,3 +245,706 @@ registerIconRenderer({
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
function remapFromFA5(id) {
|
||||
let lookupId = id;
|
||||
let prefix;
|
||||
|
||||
if (id.startsWith("far-")) {
|
||||
prefix = "far";
|
||||
lookupId = id.replace("far-", "");
|
||||
} else if (id.startsWith("fab-")) {
|
||||
prefix = "fab";
|
||||
lookupId = id.replace("fab-", "");
|
||||
}
|
||||
|
||||
if (FA5_REMAPS.hasOwnProperty(lookupId)) {
|
||||
let newId = FA5_REMAPS[lookupId];
|
||||
|
||||
if (prefix) {
|
||||
newId = `${prefix}-${newId}`;
|
||||
}
|
||||
return newId;
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
// We don't want to carry this list forever, so let's remove it a little after the 3.4 stable release ~Q2 2025
|
||||
const FA5_REMAPS = {
|
||||
adjust: "circle-half-stroke",
|
||||
"air-freshener": "spray-can-sparkles",
|
||||
"alien-monster": "alien-8bit",
|
||||
allergies: "hand-dots",
|
||||
ambulance: "truck-medical",
|
||||
"american-sign-language-interpreting": "hands-asl-interpreting",
|
||||
analytics: "chart-mixed",
|
||||
"angle-double-down": "angles-down",
|
||||
"angle-double-left": "angles-left",
|
||||
"angle-double-right": "angles-right",
|
||||
"angle-double-up": "angles-up",
|
||||
angry: "face-angry",
|
||||
"apple-alt": "apple-whole",
|
||||
"apple-crate": "crate-apple",
|
||||
archive: "box-archive",
|
||||
"arrow-alt-circle-down": "circle-down",
|
||||
"arrow-alt-circle-left": "circle-left",
|
||||
"arrow-alt-circle-right": "circle-right",
|
||||
"arrow-alt-circle-up": "circle-up",
|
||||
"arrow-alt-down": "down",
|
||||
"arrow-alt-from-bottom": "up-from-line",
|
||||
"arrow-alt-from-left": "right-from-line",
|
||||
"arrow-alt-from-right": "left-from-line",
|
||||
"arrow-alt-from-top": "down-from-line",
|
||||
"arrow-alt-left": "left",
|
||||
"arrow-alt-right": "right",
|
||||
"arrow-alt-square-down": "square-down",
|
||||
"arrow-alt-square-left": "square-left",
|
||||
"arrow-alt-square-right": "square-right",
|
||||
"arrow-alt-square-up": "square-up",
|
||||
"arrow-alt-to-bottom": "down-to-line",
|
||||
"arrow-alt-to-left": "left-to-line",
|
||||
"arrow-alt-to-right": "right-to-line",
|
||||
"arrow-alt-to-top": "up-to-line",
|
||||
"arrow-alt-up": "up",
|
||||
"arrow-circle-down": "circle-arrow-down",
|
||||
"arrow-circle-left": "circle-arrow-left",
|
||||
"arrow-circle-right": "circle-arrow-right",
|
||||
"arrow-circle-up": "circle-arrow-up",
|
||||
"arrow-from-bottom": "arrow-up-from-line",
|
||||
"arrow-from-left": "arrow-right-from-line",
|
||||
"arrow-from-right": "arrow-left-from-line",
|
||||
"arrow-from-top": "arrow-down-from-line",
|
||||
"arrow-square-down": "square-arrow-down",
|
||||
"arrow-square-left": "square-arrow-left",
|
||||
"arrow-square-right": "square-arrow-right",
|
||||
"arrow-square-up": "square-arrow-up",
|
||||
"arrow-to-bottom": "arrow-down-to-line",
|
||||
"arrow-to-left": "arrow-left-to-line",
|
||||
"arrow-to-right": "arrow-right-to-line",
|
||||
"arrow-to-top": "arrow-up-to-line",
|
||||
arrows: "arrows-up-down-left-right",
|
||||
"arrows-alt": "up-down-left-right",
|
||||
"arrows-alt-h": "left-right",
|
||||
"arrows-alt-v": "up-down",
|
||||
"arrows-h": "arrows-left-right",
|
||||
"arrows-v": "arrows-up-down",
|
||||
"assistive-listening-systems": "ear-listen",
|
||||
atlas: "book-atlas",
|
||||
"atom-alt": "atom-simple",
|
||||
backspace: "delete-left",
|
||||
"balance-scale": "scale-balanced",
|
||||
"balance-scale-left": "scale-unbalanced",
|
||||
"balance-scale-right": "scale-unbalanced-flip",
|
||||
"band-aid": "bandage",
|
||||
"barcode-alt": "rectangle-barcode",
|
||||
"baseball-ball": "baseball",
|
||||
"basketball-ball": "basketball",
|
||||
"bed-alt": "bed-front",
|
||||
beer: "beer-mug-empty",
|
||||
betamax: "cassette-betamax",
|
||||
bible: "book-bible",
|
||||
biking: "person-biking",
|
||||
"biking-mountain": "person-biking-mountain",
|
||||
"birthday-cake": "cake-candles",
|
||||
blind: "person-walking-with-cane",
|
||||
"book-alt": "book-blank",
|
||||
"book-dead": "book-skull",
|
||||
"book-reader": "book-open-reader",
|
||||
"book-spells": "book-sparkles",
|
||||
"border-style": "border-top-left",
|
||||
"border-style-alt": "border-bottom-right",
|
||||
"box-alt": "box-taped",
|
||||
"box-fragile": "square-fragile",
|
||||
"box-full": "box-open-full",
|
||||
"box-up": "square-this-way-up",
|
||||
"box-usd": "box-dollar",
|
||||
boxes: "boxes-stacked",
|
||||
"boxes-alt": "boxes-stacked",
|
||||
brackets: "brackets-square",
|
||||
"broadcast-tower": "tower-broadcast",
|
||||
burn: "fire-flame-simple",
|
||||
"bus-alt": "bus-simple",
|
||||
"calculator-alt": "calculator-simple",
|
||||
"calendar-alt": "calendar-days",
|
||||
"calendar-edit": "calendar-pen",
|
||||
"calendar-times": "calendar-xmark",
|
||||
"camera-alt": "camera",
|
||||
"camera-home": "camera-security",
|
||||
"car-alt": "car-rear",
|
||||
"car-crash": "car-burst",
|
||||
"car-mechanic": "car-wrench",
|
||||
"caravan-alt": "caravan-simple",
|
||||
"caret-circle-down": "circle-caret-down",
|
||||
"caret-circle-left": "circle-caret-left",
|
||||
"caret-circle-right": "circle-caret-right",
|
||||
"caret-circle-up": "circle-caret-up",
|
||||
"caret-square-down": "square-caret-down",
|
||||
"caret-square-left": "square-caret-left",
|
||||
"caret-square-right": "square-caret-right",
|
||||
"caret-square-up": "square-caret-up",
|
||||
cctv: "camera-cctv",
|
||||
"chalkboard-teacher": "chalkboard-user",
|
||||
"chart-pie-alt": "chart-pie-simple",
|
||||
"check-circle": "circle-check",
|
||||
"check-square": "square-check",
|
||||
cheeseburger: "burger-cheese",
|
||||
"chess-bishop-alt": "chess-bishop-piece",
|
||||
"chess-clock-alt": "chess-clock-flip",
|
||||
"chess-king-alt": "chess-king-piece",
|
||||
"chess-knight-alt": "chess-knight-piece",
|
||||
"chess-pawn-alt": "chess-pawn-piece",
|
||||
"chess-queen-alt": "chess-queen-piece",
|
||||
"chess-rook-alt": "chess-rook-piece",
|
||||
"chevron-circle-down": "circle-chevron-down",
|
||||
"chevron-circle-left": "circle-chevron-left",
|
||||
"chevron-circle-right": "circle-chevron-right",
|
||||
"chevron-circle-up": "circle-chevron-up",
|
||||
"chevron-double-down": "chevrons-down",
|
||||
"chevron-double-left": "chevrons-left",
|
||||
"chevron-double-right": "chevrons-right",
|
||||
"chevron-double-up": "chevrons-up",
|
||||
"chevron-square-down": "square-chevron-down",
|
||||
"chevron-square-left": "square-chevron-left",
|
||||
"chevron-square-right": "square-chevron-right",
|
||||
"chevron-square-up": "square-chevron-up",
|
||||
"clinic-medical": "house-chimney-medical",
|
||||
"cloud-download": "cloud-arrow-down",
|
||||
"cloud-download-alt": "cloud-arrow-down",
|
||||
"cloud-upload": "cloud-arrow-up",
|
||||
"cloud-upload-alt": "cloud-arrow-up",
|
||||
cocktail: "martini-glass-citrus",
|
||||
coffee: "mug-saucer",
|
||||
"coffee-togo": "cup-togo",
|
||||
cog: "gear",
|
||||
cogs: "gears",
|
||||
columns: "table-columns",
|
||||
"comment-alt": "message",
|
||||
"comment-alt-check": "message-check",
|
||||
"comment-alt-dollar": "message-dollar",
|
||||
"comment-alt-dots": "message-dots",
|
||||
"comment-alt-edit": "message-pen",
|
||||
"comment-alt-exclamation": "message-exclamation",
|
||||
"comment-alt-lines": "message-lines",
|
||||
"comment-alt-medical": "message-medical",
|
||||
"comment-alt-minus": "message-minus",
|
||||
"comment-alt-music": "message-music",
|
||||
"comment-alt-plus": "message-plus",
|
||||
"comment-alt-slash": "message-slash",
|
||||
"comment-alt-smile": "message-smile",
|
||||
"comment-alt-times": "message-xmark",
|
||||
"comment-edit": "comment-pen",
|
||||
"comment-times": "comment-xmark",
|
||||
"comments-alt": "messages",
|
||||
"comments-alt-dollar": "messages-dollar",
|
||||
"compress-alt": "down-left-and-up-right-to-center",
|
||||
"compress-arrows-alt": "minimize",
|
||||
"concierge-bell": "bell-concierge",
|
||||
construction: "triangle-person-digging",
|
||||
"conveyor-belt-alt": "conveyor-belt-boxes",
|
||||
"cowbell-more": "cowbell-circle-plus",
|
||||
cricket: "cricket-bat-ball",
|
||||
"crop-alt": "crop-simple",
|
||||
curling: "curling-stone",
|
||||
cut: "scissors",
|
||||
deaf: "ear-deaf",
|
||||
debug: "ban-bug",
|
||||
"desktop-alt": "desktop",
|
||||
dewpoint: "droplet-degree",
|
||||
diagnoses: "person-dots-from-line",
|
||||
digging: "person-digging",
|
||||
"digital-tachograph": "tachograph-digital",
|
||||
directions: "diamond-turn-right",
|
||||
dizzy: "face-dizzy",
|
||||
"dolly-flatbed": "cart-flatbed",
|
||||
"dolly-flatbed-alt": "cart-flatbed-boxes",
|
||||
"dolly-flatbed-empty": "cart-flatbed-empty",
|
||||
donate: "circle-dollar-to-slot",
|
||||
"dot-circle": "circle-dot",
|
||||
"drafting-compass": "compass-drafting",
|
||||
"drone-alt": "drone-front",
|
||||
"dryer-alt": "dryer-heat",
|
||||
"eclipse-alt": "moon-over-sun",
|
||||
edit: "pen-to-square",
|
||||
"ellipsis-h": "ellipsis",
|
||||
"ellipsis-h-alt": "ellipsis-stroke",
|
||||
"ellipsis-v": "ellipsis-vertical",
|
||||
"ellipsis-v-alt": "ellipsis-stroke-vertical",
|
||||
"envelope-square": "square-envelope",
|
||||
exchange: "arrow-right-arrow-left",
|
||||
"exchange-alt": "right-left",
|
||||
"exclamation-circle": "circle-exclamation",
|
||||
"exclamation-square": "square-exclamation",
|
||||
"exclamation-triangle": "triangle-exclamation",
|
||||
"expand-alt": "up-right-and-down-left-from-center",
|
||||
"expand-arrows": "arrows-maximize",
|
||||
"expand-arrows-alt": "maximize",
|
||||
"external-link": "arrow-up-right-from-square",
|
||||
"external-link-alt": "up-right-from-square",
|
||||
"external-link-square": "square-arrow-up-right",
|
||||
"external-link-square-alt": "square-up-right",
|
||||
eyedropper: "eye-dropper",
|
||||
"fast-backward": "backward-fast",
|
||||
"fast-forward": "forward-fast",
|
||||
"feather-alt": "feather-pointed",
|
||||
female: "person-dress",
|
||||
"field-hockey": "field-hockey-stick-ball",
|
||||
"fighter-jet": "jet-fighter",
|
||||
"file-alt": "file-lines",
|
||||
"file-archive": "file-zipper",
|
||||
"file-chart-line": "file-chart-column",
|
||||
"file-download": "file-arrow-down",
|
||||
"file-edit": "file-pen",
|
||||
"file-medical-alt": "file-waveform",
|
||||
"file-search": "file-magnifying-glass",
|
||||
"file-times": "file-xmark",
|
||||
"file-upload": "file-arrow-up",
|
||||
"film-alt": "film-simple",
|
||||
"fire-alt": "fire-flame-curved",
|
||||
"first-aid": "kit-medical",
|
||||
"fist-raised": "hand-fist",
|
||||
"flag-alt": "flag-swallowtail",
|
||||
flame: "fire-flame",
|
||||
"flask-poison": "flask-round-poison",
|
||||
"flask-potion": "flask-round-potion",
|
||||
flushed: "face-flushed",
|
||||
fog: "cloud-fog",
|
||||
"folder-download": "folder-arrow-down",
|
||||
"folder-times": "folder-xmark",
|
||||
"folder-upload": "folder-arrow-up",
|
||||
"font-awesome-alt": "square-font-awesome-stroke",
|
||||
"font-awesome-flag": "font-awesome",
|
||||
"font-awesome-logo-full": "font-awesome",
|
||||
"football-ball": "football",
|
||||
fragile: "wine-glass-crack",
|
||||
"frosty-head": "snowman-head",
|
||||
frown: "face-frown",
|
||||
"frown-open": "face-frown-open",
|
||||
"funnel-dollar": "filter-circle-dollar",
|
||||
"game-board-alt": "game-board-simple",
|
||||
"gamepad-alt": "gamepad-modern",
|
||||
"glass-champagne": "champagne-glass",
|
||||
"glass-cheers": "champagne-glasses",
|
||||
"glass-martini": "martini-glass-empty",
|
||||
"glass-martini-alt": "martini-glass",
|
||||
"glass-whiskey": "whiskey-glass",
|
||||
"glass-whiskey-rocks": "whiskey-glass-ice",
|
||||
"glasses-alt": "glasses-round",
|
||||
"globe-africa": "earth-africa",
|
||||
"globe-americas": "earth-americas",
|
||||
"globe-asia": "earth-asia",
|
||||
"globe-europe": "earth-europe",
|
||||
"golf-ball": "golf-ball-tee",
|
||||
grimace: "face-grimace",
|
||||
grin: "face-grin",
|
||||
"grin-alt": "face-grin-wide",
|
||||
"grin-beam": "face-grin-beam",
|
||||
"grin-beam-sweat": "face-grin-beam-sweat",
|
||||
"grin-hearts": "face-grin-hearts",
|
||||
"grin-squint": "face-grin-squint",
|
||||
"grin-squint-tears": "face-grin-squint-tears",
|
||||
"grin-stars": "face-grin-stars",
|
||||
"grin-tears": "face-grin-tears",
|
||||
"grin-tongue": "face-grin-tongue",
|
||||
"grin-tongue-squint": "face-grin-tongue-squint",
|
||||
"grin-tongue-wink": "face-grin-tongue-wink",
|
||||
"grin-wink": "face-grin-wink",
|
||||
"grip-horizontal": "grip",
|
||||
"h-square": "square-h",
|
||||
hamburger: "burger",
|
||||
"hand-holding-usd": "hand-holding-dollar",
|
||||
"hand-holding-water": "hand-holding-droplet",
|
||||
"hand-paper": "hand",
|
||||
"hand-receiving": "hands-holding-diamond",
|
||||
"hand-rock": "hand-back-fist",
|
||||
"hands-heart": "hands-holding-heart",
|
||||
"hands-helping": "handshake-angle",
|
||||
"hands-usd": "hands-holding-dollar",
|
||||
"hands-wash": "hands-bubbles",
|
||||
"handshake-alt": "handshake-simple",
|
||||
"handshake-alt-slash": "handshake-simple-slash",
|
||||
"hard-hat": "helmet-safety",
|
||||
hdd: "hard-drive",
|
||||
"head-vr": "head-side-goggles",
|
||||
"headphones-alt": "headphones-simple",
|
||||
"heart-broken": "heart-crack",
|
||||
"heart-circle": "circle-heart",
|
||||
"heart-rate": "wave-pulse",
|
||||
"heart-square": "square-heart",
|
||||
heartbeat: "heart-pulse",
|
||||
hiking: "person-hiking",
|
||||
history: "clock-rotate-left",
|
||||
home: "house",
|
||||
"home-alt": "house",
|
||||
"home-heart": "house-heart",
|
||||
"home-lg": "house-chimney",
|
||||
"home-lg-alt": "house",
|
||||
"hospital-alt": "hospital",
|
||||
"hospital-symbol": "circle-h",
|
||||
"hot-tub": "hot-tub-person",
|
||||
"hourglass-half": "hourglass",
|
||||
"house-damage": "house-chimney-crack",
|
||||
"house-leave": "house-person-leave",
|
||||
"house-return": "house-person-return",
|
||||
hryvnia: "hryvnia-sign",
|
||||
humidity: "droplet-percent",
|
||||
"icons-alt": "symbols",
|
||||
"id-card-alt": "id-card-clip",
|
||||
"industry-alt": "industry-windows",
|
||||
"info-circle": "circle-info",
|
||||
"info-square": "square-info",
|
||||
innosoft: "42-group",
|
||||
inventory: "shelves",
|
||||
"journal-whills": "book-journal-whills",
|
||||
kiss: "face-kiss",
|
||||
"kiss-beam": "face-kiss-beam",
|
||||
"kiss-wink-heart": "face-kiss-wink-heart",
|
||||
"landmark-alt": "landmark-dome",
|
||||
"laptop-house": "house-laptop",
|
||||
laugh: "face-laugh",
|
||||
"laugh-beam": "face-laugh-beam",
|
||||
"laugh-squint": "face-laugh-squint",
|
||||
"laugh-wink": "face-laugh-wink",
|
||||
"level-down": "arrow-turn-down",
|
||||
"level-down-alt": "turn-down",
|
||||
"level-up": "arrow-turn-up",
|
||||
"level-up-alt": "turn-up",
|
||||
"list-alt": "rectangle-list",
|
||||
location: "location-crosshairs",
|
||||
"location-circle": "circle-location-arrow",
|
||||
"location-slash": "location-crosshairs-slash",
|
||||
"lock-alt": "lock-keyhole",
|
||||
"lock-open-alt": "lock-keyhole-open",
|
||||
"long-arrow-alt-down": "down-long",
|
||||
"long-arrow-alt-left": "left-long",
|
||||
"long-arrow-alt-right": "right-long",
|
||||
"long-arrow-alt-up": "up-long",
|
||||
"long-arrow-down": "arrow-down-long",
|
||||
"long-arrow-left": "arrow-left-long",
|
||||
"long-arrow-right": "arrow-right-long",
|
||||
"long-arrow-up": "arrow-up-long",
|
||||
"low-vision": "eye-low-vision",
|
||||
luchador: "luchador-mask",
|
||||
"luggage-cart": "cart-flatbed-suitcase",
|
||||
magic: "wand-magic",
|
||||
"mail-bulk": "envelopes-bulk",
|
||||
male: "person",
|
||||
"map-marked": "map-location",
|
||||
"map-marked-alt": "map-location-dot",
|
||||
"map-marker": "location-pin",
|
||||
"map-marker-alt": "location-dot",
|
||||
"map-marker-alt-slash": "location-dot-slash",
|
||||
"map-marker-check": "location-check",
|
||||
"map-marker-edit": "location-pen",
|
||||
"map-marker-exclamation": "location-exclamation",
|
||||
"map-marker-minus": "location-minus",
|
||||
"map-marker-plus": "location-plus",
|
||||
"map-marker-question": "location-question",
|
||||
"map-marker-slash": "location-pin-slash",
|
||||
"map-marker-smile": "location-smile",
|
||||
"map-marker-times": "location-xmark",
|
||||
"map-signs": "signs-post",
|
||||
"mars-stroke-h": "mars-stroke-right",
|
||||
"mars-stroke-v": "mars-stroke-up",
|
||||
"medium-m": "medium",
|
||||
medkit: "suitcase-medical",
|
||||
meh: "face-meh",
|
||||
"meh-blank": "face-meh-blank",
|
||||
"meh-rolling-eyes": "face-rolling-eyes",
|
||||
"microphone-alt": "microphone-lines",
|
||||
"microphone-alt-slash": "microphone-lines-slash",
|
||||
"mind-share": "brain-arrow-curved-right",
|
||||
"minus-circle": "circle-minus",
|
||||
"minus-hexagon": "hexagon-minus",
|
||||
"minus-octagon": "octagon-minus",
|
||||
"minus-square": "square-minus",
|
||||
"mobile-alt": "mobile-screen-button",
|
||||
"mobile-android": "mobile",
|
||||
"mobile-android-alt": "mobile-screen",
|
||||
"money-bill-alt": "money-bill-1",
|
||||
"money-bill-wave-alt": "money-bill-1-wave",
|
||||
"money-check-alt": "money-check-dollar",
|
||||
"money-check-edit": "money-check-pen",
|
||||
"money-check-edit-alt": "money-check-dollar-pen",
|
||||
"monitor-heart-rate": "monitor-waveform",
|
||||
mouse: "computer-mouse",
|
||||
"mouse-alt": "computer-mouse-scrollwheel",
|
||||
"mouse-pointer": "arrow-pointer",
|
||||
"music-alt": "music-note",
|
||||
"music-alt-slash": "music-note-slash",
|
||||
"oil-temp": "oil-temperature",
|
||||
"page-break": "file-dashed-line",
|
||||
"paint-brush": "paintbrush",
|
||||
"paint-brush-alt": "paintbrush-fine",
|
||||
"paint-brush-fine": "paintbrush-fine",
|
||||
"pallet-alt": "pallet-boxes",
|
||||
"paragraph-rtl": "paragraph-left",
|
||||
parking: "square-parking",
|
||||
"parking-circle": "circle-parking",
|
||||
"parking-circle-slash": "ban-parking",
|
||||
"parking-slash": "square-parking-slash",
|
||||
pastafarianism: "spaghetti-monster-flying",
|
||||
"pause-circle": "circle-pause",
|
||||
"paw-alt": "paw-simple",
|
||||
"pen-alt": "pen-clip",
|
||||
"pen-square": "square-pen",
|
||||
"pencil-alt": "pencil",
|
||||
"pencil-paintbrush": "pen-paintbrush",
|
||||
"pencil-ruler": "pen-ruler",
|
||||
pennant: "flag-pennant",
|
||||
"people-arrows": "people-arrows-left-right",
|
||||
"people-carry": "people-carry-box",
|
||||
percentage: "percent",
|
||||
"person-carry": "person-carry-box",
|
||||
"phone-alt": "phone-flip",
|
||||
"phone-laptop": "laptop-mobile",
|
||||
"phone-square": "square-phone",
|
||||
"phone-square-alt": "square-phone-flip",
|
||||
"photo-video": "photo-film",
|
||||
"plane-alt": "plane-engines",
|
||||
"play-circle": "circle-play",
|
||||
"plus-circle": "circle-plus",
|
||||
"plus-hexagon": "hexagon-plus",
|
||||
"plus-octagon": "octagon-plus",
|
||||
"plus-square": "square-plus",
|
||||
poll: "square-poll-vertical",
|
||||
"poll-h": "square-poll-horizontal",
|
||||
"portal-enter": "person-to-portal",
|
||||
"portal-exit": "person-from-portal",
|
||||
portrait: "image-portrait",
|
||||
"pound-sign": "sterling-sign",
|
||||
pray: "person-praying",
|
||||
"praying-hands": "hands-praying",
|
||||
"prescription-bottle-alt": "prescription-bottle-medical",
|
||||
presentation: "presentation-screen",
|
||||
"print-search": "print-magnifying-glass",
|
||||
procedures: "bed-pulse",
|
||||
"project-diagram": "diagram-project",
|
||||
"question-circle": "circle-question",
|
||||
"question-square": "square-question",
|
||||
quran: "book-quran",
|
||||
"rabbit-fast": "rabbit-running",
|
||||
"radiation-alt": "circle-radiation",
|
||||
"radio-alt": "radio-tuner",
|
||||
random: "shuffle",
|
||||
"rectangle-landscape": "rectangle",
|
||||
"rectangle-portrait": "rectangle-vertical",
|
||||
redo: "arrow-rotate-right",
|
||||
"redo-alt": "rotate-right",
|
||||
"remove-format": "text-slash",
|
||||
"repeat-1-alt": "arrows-repeat-1",
|
||||
"repeat-alt": "arrows-repeat",
|
||||
"retweet-alt": "arrows-retweet",
|
||||
"rss-square": "square-rss",
|
||||
running: "person-running",
|
||||
"sad-cry": "face-sad-cry",
|
||||
"sad-tear": "face-sad-tear",
|
||||
save: "floppy-disk",
|
||||
"sax-hot": "saxophone-fire",
|
||||
"scalpel-path": "scalpel-line-dashed",
|
||||
"scanner-image": "scanner",
|
||||
search: "magnifying-glass",
|
||||
"search-dollar": "magnifying-glass-dollar",
|
||||
"search-location": "magnifying-glass-location",
|
||||
"search-minus": "magnifying-glass-minus",
|
||||
"search-plus": "magnifying-glass-plus",
|
||||
"sensor-alert": "sensor-triangle-exclamation",
|
||||
"sensor-smoke": "sensor-cloud",
|
||||
"share-alt": "share-nodes",
|
||||
"share-alt-square": "square-share-nodes",
|
||||
"share-square": "share-from-square",
|
||||
"shield-alt": "shield-halved",
|
||||
"shipping-fast": "truck-fast",
|
||||
"shipping-timed": "truck-clock",
|
||||
"shopping-bag": "bag-shopping",
|
||||
"shopping-basket": "basket-shopping",
|
||||
"shopping-cart": "cart-shopping",
|
||||
"shuttle-van": "van-shuttle",
|
||||
sign: "sign-hanging",
|
||||
"sign-in": "arrow-right-to-bracket",
|
||||
"sign-in-alt": "right-to-bracket",
|
||||
"sign-language": "hands",
|
||||
"sign-out": "arrow-right-from-bracket",
|
||||
"sign-out-alt": "right-from-bracket",
|
||||
"signal-1": "signal-weak",
|
||||
"signal-2": "signal-fair",
|
||||
"signal-3": "signal-good",
|
||||
"signal-4": "signal-strong",
|
||||
"signal-alt": "signal-bars",
|
||||
"signal-alt-1": "signal-bars-weak",
|
||||
"signal-alt-2": "signal-bars-fair",
|
||||
"signal-alt-3": "signal-bars-good",
|
||||
"signal-alt-slash": "signal-bars-slash",
|
||||
skating: "person-skating",
|
||||
"ski-jump": "person-ski-jumping",
|
||||
"ski-lift": "person-ski-lift",
|
||||
skiing: "person-skiing",
|
||||
"skiing-nordic": "person-skiing-nordic",
|
||||
"slack-hash": "slack",
|
||||
sledding: "person-sledding",
|
||||
"sliders-h": "sliders",
|
||||
"sliders-h-square": "square-sliders",
|
||||
"sliders-v": "sliders-up",
|
||||
"sliders-v-square": "square-sliders-vertical",
|
||||
smile: "face-smile",
|
||||
"smile-beam": "face-smile-beam",
|
||||
"smile-plus": "face-smile-plus",
|
||||
"smile-wink": "face-smile-wink",
|
||||
"smoking-ban": "ban-smoking",
|
||||
sms: "comment-sms",
|
||||
"snapchat-ghost": "snapchat",
|
||||
snowboarding: "person-snowboarding",
|
||||
snowmobile: "person-snowmobiling",
|
||||
"sort-alpha-down": "arrow-down-a-z",
|
||||
"sort-alpha-down-alt": "arrow-down-z-a",
|
||||
"sort-alpha-up": "arrow-up-a-z",
|
||||
"sort-alpha-up-alt": "arrow-up-z-a",
|
||||
"sort-alt": "arrow-down-arrow-up",
|
||||
"sort-amount-down": "arrow-down-wide-short",
|
||||
"sort-amount-down-alt": "arrow-down-short-wide",
|
||||
"sort-amount-up": "arrow-up-wide-short",
|
||||
"sort-amount-up-alt": "arrow-up-short-wide",
|
||||
"sort-circle": "circle-sort",
|
||||
"sort-circle-down": "circle-sort-down",
|
||||
"sort-circle-up": "circle-sort-up",
|
||||
"sort-numeric-down": "arrow-down-1-9",
|
||||
"sort-numeric-down-alt": "arrow-down-9-1",
|
||||
"sort-numeric-up": "arrow-up-1-9",
|
||||
"sort-numeric-up-alt": "arrow-up-9-1",
|
||||
"sort-shapes-down": "arrow-down-triangle-square",
|
||||
"sort-shapes-down-alt": "arrow-down-square-triangle",
|
||||
"sort-shapes-up": "arrow-up-triangle-square",
|
||||
"sort-shapes-up-alt": "arrow-up-square-triangle",
|
||||
"sort-size-down": "arrow-down-big-small",
|
||||
"sort-size-down-alt": "arrow-down-small-big",
|
||||
"sort-size-up": "arrow-up-big-small",
|
||||
"sort-size-up-alt": "arrow-up-small-big",
|
||||
soup: "bowl-hot",
|
||||
"space-shuttle": "shuttle-space",
|
||||
"space-station-moon-alt": "space-station-moon-construction",
|
||||
"square-root-alt": "square-root-variable",
|
||||
"star-half-alt": "star-half-stroke",
|
||||
"starfighter-alt": "starfighter-twin-ion-engine",
|
||||
"step-backward": "backward-step",
|
||||
"step-forward": "forward-step",
|
||||
"sticky-note": "note-sticky",
|
||||
"stop-circle": "circle-stop",
|
||||
"store-alt": "shop",
|
||||
"store-alt-slash": "shop-slash",
|
||||
stream: "bars-staggered",
|
||||
subway: "train-subway",
|
||||
surprise: "face-surprise",
|
||||
swimmer: "person-swimming",
|
||||
"swimming-pool": "water-ladder",
|
||||
sync: "arrows-rotate",
|
||||
"sync-alt": "rotate",
|
||||
"table-tennis": "table-tennis-paddle-ball",
|
||||
"tablet-alt": "tablet-screen-button",
|
||||
"tablet-android": "tablet",
|
||||
"tablet-android-alt": "tablet-screen",
|
||||
tachometer: "gauge-simple",
|
||||
"tachometer-alt": "gauge",
|
||||
"tachometer-alt-average": "gauge-med",
|
||||
"tachometer-alt-fast": "gauge",
|
||||
"tachometer-alt-fastest": "gauge-max",
|
||||
"tachometer-alt-slow": "gauge-low",
|
||||
"tachometer-alt-slowest": "gauge-min",
|
||||
"tachometer-average": "gauge-simple-med",
|
||||
"tachometer-fast": "gauge-simple",
|
||||
"tachometer-fastest": "gauge-simple-max",
|
||||
"tachometer-slow": "gauge-simple-low",
|
||||
"tachometer-slowest": "gauge-simple-min",
|
||||
tanakh: "book-tanakh",
|
||||
tasks: "list-check",
|
||||
"tasks-alt": "bars-progress",
|
||||
"telegram-plane": "telegram",
|
||||
"temperature-down": "temperature-arrow-down",
|
||||
"temperature-frigid": "temperature-snow",
|
||||
"temperature-hot": "temperature-sun",
|
||||
"temperature-up": "temperature-arrow-up",
|
||||
tenge: "tenge-sign",
|
||||
th: "table-cells",
|
||||
"th-large": "table-cells-large",
|
||||
"th-list": "table-list",
|
||||
"theater-masks": "masks-theater",
|
||||
"thermometer-empty": "temperature-empty",
|
||||
"thermometer-full": "temperature-full",
|
||||
"thermometer-half": "temperature-half",
|
||||
"thermometer-quarter": "temperature-quarter",
|
||||
"thermometer-three-quarters": "temperature-three-quarters",
|
||||
"thumb-tack": "thumbtack",
|
||||
thunderstorm: "cloud-bolt",
|
||||
"thunderstorm-moon": "cloud-bolt-moon",
|
||||
"thunderstorm-sun": "cloud-bolt-sun",
|
||||
"ticket-alt": "ticket-simple",
|
||||
times: "xmark",
|
||||
"times-circle": "circle-xmark",
|
||||
"times-hexagon": "hexagon-xmark",
|
||||
"times-octagon": "octagon-xmark",
|
||||
"times-square": "square-xmark",
|
||||
tint: "droplet",
|
||||
"tint-slash": "droplet-slash",
|
||||
tired: "face-tired",
|
||||
"toilet-paper-alt": "toilet-paper-blank",
|
||||
"tombstone-alt": "tombstone-blank",
|
||||
tools: "screwdriver-wrench",
|
||||
torah: "scroll-torah",
|
||||
tram: "train-tram",
|
||||
"transgender-alt": "transgender",
|
||||
"trash-alt": "trash-can",
|
||||
"trash-restore": "trash-arrow-up",
|
||||
"trash-restore-alt": "trash-can-arrow-up",
|
||||
"trash-undo-alt": "trash-can-undo",
|
||||
"tree-alt": "tree-deciduous",
|
||||
"triangle-music": "triangle-instrument",
|
||||
"trophy-alt": "trophy-star",
|
||||
"truck-couch": "truck-ramp-couch",
|
||||
"truck-loading": "truck-ramp-box",
|
||||
tshirt: "shirt",
|
||||
"tv-alt": "tv",
|
||||
undo: "arrow-rotate-left",
|
||||
"undo-alt": "rotate-left",
|
||||
university: "building-columns",
|
||||
unlink: "link-slash",
|
||||
"unlock-alt": "unlock-keyhole",
|
||||
"usd-circle": "circle-dollar",
|
||||
"usd-square": "square-dollar",
|
||||
"user-alt": "user-large",
|
||||
"user-alt-slash": "user-large-slash",
|
||||
"user-chart": "chart-user",
|
||||
"user-circle": "circle-user",
|
||||
"user-cog": "user-gear",
|
||||
"user-edit": "user-pen",
|
||||
"user-friends": "user-group",
|
||||
"user-hard-hat": "user-helmet-safety",
|
||||
"user-md": "user-doctor",
|
||||
"user-md-chat": "user-doctor-message",
|
||||
"user-times": "user-xmark",
|
||||
"users-class": "screen-users",
|
||||
"users-cog": "users-gear",
|
||||
"users-crown": "user-group-crown",
|
||||
"utensil-fork": "fork",
|
||||
"utensil-knife": "knife",
|
||||
"utensil-spoon": "spoon",
|
||||
"utensils-alt": "fork-knife",
|
||||
vhs: "cassette-vhs",
|
||||
"volleyball-ball": "volleyball",
|
||||
"volume-down": "volume-low",
|
||||
"volume-mute": "volume-xmark",
|
||||
"volume-up": "volume-high",
|
||||
"vote-nay": "xmark-to-slot",
|
||||
"vote-yea": "check-to-slot",
|
||||
walking: "person-walking",
|
||||
"warehouse-alt": "warehouse-full",
|
||||
washer: "washing-machine",
|
||||
"water-lower": "water-arrow-down",
|
||||
"water-rise": "water-arrow-up",
|
||||
"waveform-path": "waveform-lines",
|
||||
webcam: "camera-web",
|
||||
"webcam-slash": "camera-web-slash",
|
||||
weight: "weight-scale",
|
||||
"wifi-1": "wifi-weak",
|
||||
"wifi-2": "wifi-fair",
|
||||
"window-alt": "window-flip",
|
||||
"window-close": "rectangle-xmark",
|
||||
"wine-glass-alt": "wine-glass-empty",
|
||||
};
|
||||
|
@ -96,7 +96,7 @@ function buildImageShowAltTextControls(altText) {
|
||||
<span class="alt-text-edit-btn"
|
||||
title="${I18n.t("composer.image_alt_text.title")}"
|
||||
>
|
||||
<svg aria-hidden="true" class="fa d-icon d-icon-pencil svg-icon svg-string"><use href="#pencil-alt"></use></svg>
|
||||
<svg aria-hidden="true" class="fa d-icon d-icon-pencil svg-icon svg-string"><use href="#pencil"></use></svg>
|
||||
</span>
|
||||
<span class="alt-text"
|
||||
aria-label="${I18n.t("composer.image_alt_text.aria_label")}"
|
||||
@ -113,7 +113,7 @@ function buildImageEditAltTextControls(altText) {
|
||||
<svg class="fa d-icon d-icon-check svg-icon svg-string"><use href="#check"></use></svg>
|
||||
</button>
|
||||
<button class="alt-text-edit-cancel btn btn-default">
|
||||
<svg class="fa d-icon d-icon-times svg-icon svg-string"><use href="#times"></use></svg>
|
||||
<svg class="fa d-icon d-icon-xmark svg-icon svg-string"><use href="#xmark"></use></svg>
|
||||
</button>
|
||||
</span>
|
||||
`;
|
||||
@ -125,8 +125,8 @@ function buildImageDeleteButton() {
|
||||
title="${I18n.t("composer.delete_image_button")}"
|
||||
aria-label="${I18n.t("composer.delete_image_button")}"
|
||||
>
|
||||
<svg class="fa d-icon d-icon-trash-alt svg-icon svg-string" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#far-trash-alt"></use>
|
||||
<svg class="fa d-icon d-icon-trash-can svg-icon svg-string" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#trash-can"></use>
|
||||
</svg>
|
||||
</span>
|
||||
`;
|
||||
@ -137,8 +137,8 @@ function buildImageGalleryControl(imageCount) {
|
||||
<span class="wrap-image-grid-button" title="${I18n.t(
|
||||
"composer.toggle_image_grid"
|
||||
)}" data-image-count="${imageCount}">
|
||||
<svg class="fa d-icon d-icon-th svg-icon svg-string" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#th"></use>
|
||||
<svg class="fa d-icon d-icon-table-cells svg-icon svg-string" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#table-cells"></use>
|
||||
</svg>
|
||||
</span>
|
||||
`;
|
||||
@ -212,8 +212,8 @@ export function setup(helper) {
|
||||
"span.alt-text-readonly-container.alt-text",
|
||||
"span.alt-text-readonly-container.alt-text-edit-btn",
|
||||
"svg[class=fa d-icon d-icon-pencil svg-icon svg-string]",
|
||||
"use[href=#pencil-alt]",
|
||||
"use[href=#far-trash-alt]",
|
||||
"use[href=#pencil]",
|
||||
"use[href=#trash-can]",
|
||||
|
||||
"span.alt-text-edit-container",
|
||||
"span.delete-image-button",
|
||||
@ -224,14 +224,14 @@ export function setup(helper) {
|
||||
"svg[class=fa d-icon d-icon-check svg-icon svg-string]",
|
||||
"use[href=#check]",
|
||||
"button[class=alt-text-edit-cancel btn btn-default]",
|
||||
"svg[class=fa d-icon d-icon-times svg-icon svg-string]",
|
||||
"svg[class=fa d-icon d-icon-trash-alt svg-icon svg-string]",
|
||||
"use[href=#times]",
|
||||
"svg[class=fa d-icon d-icon-xmark svg-icon svg-string]",
|
||||
"svg[class=fa d-icon d-icon-trash-can svg-icon svg-string]",
|
||||
"use[href=#xmark]",
|
||||
|
||||
"span.wrap-image-grid-button",
|
||||
"span.wrap-image-grid-button[data-image-count]",
|
||||
"svg[class=fa d-icon d-icon-th svg-icon svg-string]",
|
||||
"use[href=#th]",
|
||||
"svg[class=fa d-icon d-icon-table-cells svg-icon svg-string]",
|
||||
"use[href=#table-cells]",
|
||||
|
||||
...apiExtraButtonAllowList,
|
||||
]);
|
||||
|
@ -45,4 +45,23 @@ module("Unit | Utility | icon-library", function (hooks) {
|
||||
});
|
||||
assert.ok(html.includes("aria-label='<script>alert(1)'"));
|
||||
});
|
||||
|
||||
test("fa5 remaps", function (assert) {
|
||||
const adjustIcon = iconHTML("adjust");
|
||||
assert.true(adjustIcon.includes("d-icon-adjust"), "class is maintained");
|
||||
assert.true(
|
||||
adjustIcon.includes('href="#circle-half-stroke"'),
|
||||
"has remapped icon"
|
||||
);
|
||||
|
||||
const farIcon = iconHTML("far-dot-circle");
|
||||
assert.true(
|
||||
farIcon.includes("d-icon-far-dot-circle"),
|
||||
"class is maintained"
|
||||
);
|
||||
assert.true(
|
||||
farIcon.includes('href="#far-circle-dot"'),
|
||||
"has remapped icon"
|
||||
);
|
||||
});
|
||||
});
|
||||
|
@ -23,7 +23,7 @@
|
||||
<% if staff? %>
|
||||
<p><a href='<%= @topic.url %>'>
|
||||
<svg class="fa d-icon d-icon-pencil-alt svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#pencil-alt"></use>
|
||||
<use href="#pencil"></use>
|
||||
</svg>
|
||||
<%= t 'edit_this_page' %>
|
||||
</a></p>
|
||||
|
14
db/post_migrate/20240909121255_rebake_user_onebox.rb
Normal file
14
db/post_migrate/20240909121255_rebake_user_onebox.rb
Normal file
@ -0,0 +1,14 @@
|
||||
# frozen_string_literal: true
|
||||
class RebakeUserOnebox < ActiveRecord::Migration[7.1]
|
||||
def up
|
||||
# Rebake user onebox posts for fontawesome6 upgrade
|
||||
execute <<~SQL
|
||||
UPDATE posts SET baked_version = 0
|
||||
WHERE cooked LIKE '%d-icon-map-marker-alt%'
|
||||
SQL
|
||||
end
|
||||
|
||||
def down
|
||||
# do nothing
|
||||
end
|
||||
end
|
@ -8,16 +8,16 @@
|
||||
{{/name}}
|
||||
{{#location}}
|
||||
<span class="location">
|
||||
<svg class="fa d-icon d-icon-map-marker-alt svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#map-marker-alt"></use>
|
||||
<svg class="fa d-icon d-icon-location-dot svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#location-dot"></use>
|
||||
</svg>
|
||||
{{{location}}}
|
||||
</span>
|
||||
{{/location}}
|
||||
{{#website}}
|
||||
<span>
|
||||
<svg class="fa d-icon d-icon-globe-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#globe-americas"></use>
|
||||
<svg class="fa d-icon d-icon-earth-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#earth-americas"></use>
|
||||
</svg>
|
||||
<a href="{{website}}">{{{website_name}}}</a>
|
||||
</span>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,7 @@
|
||||
"@babel/plugin-proposal-decorators": "^7.24.7",
|
||||
"@discourse/lint-configs": "^1.3.10",
|
||||
"@discourse/moment-timezone-names-translations": "^1.0.0",
|
||||
"@fortawesome/fontawesome-free": "5.15.4",
|
||||
"@fortawesome/fontawesome-free": "6.6.0",
|
||||
"@glint/core": "^1.4.1-unstable.01b8deb",
|
||||
"@glint/environment-ember-loose": "^1.4.1-unstable.01b8deb",
|
||||
"@glint/environment-ember-template-imports": "^1.4.1-unstable.01b8deb",
|
||||
|
@ -41,7 +41,7 @@ export function applyLocalDates(dates, siteSettings) {
|
||||
element.innerText = "";
|
||||
element.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
`${iconHTML("globe-americas")}
|
||||
`${iconHTML("earth-americas")}
|
||||
<span class="relative-time">${localDateBuilder.formatted}</span>`
|
||||
);
|
||||
element.setAttribute("aria-label", localDateBuilder.textPreview);
|
||||
|
@ -31,8 +31,8 @@ acceptance("Local Dates - quoting", function (needs) {
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#clock" />
|
||||
</svg> 5:00 PM" data-title="This is a new topic to check on chat quote issues">
|
||||
<svg class="fa d-icon d-icon-globe-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#globe-americas"></use>
|
||||
<svg class="fa d-icon d-icon-earth-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#earth-americas"></use>
|
||||
</svg>
|
||||
<span class="relative-time">June 17, 2022 8:00 AM (Perth)</span>
|
||||
</span></div>`;
|
||||
@ -65,13 +65,13 @@ acceptance("Local Dates - quoting range", function (needs) {
|
||||
const topicResponse = cloneJSON(topicFixtures["/t/280/1.json"]);
|
||||
const firstPost = topicResponse.post_stream.posts[0];
|
||||
firstPost.cooked += `<div class='select-local-date-test'><p dir="ltr">Some text <span data-date="2022-06-17" data-time="09:30:00" class="discourse-local-date cooked-date past" data-format="LL" data-range="true" data-timezones="Africa/Accra|Australia/Brisbane|Europe/Paris" data-timezone="Australia/Brisbane" data-email-preview="2022-06-16T23:30:00Z UTC" aria-label="Brisbane Friday, June 17, 2022 9:30 AM → Saturday, June 18, 2022 10:30 AM, Accra Thursday, June 16, 2022 11:30 PM → Saturday, June 18, 2022 12:30 AM, Paris Friday, June 17, 2022 1:30 AM → Saturday, June 18, 2022 2:30 AM" data-title="This is a new topic to check on chat quote issues">
|
||||
<svg class="fa d-icon d-icon-globe-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#globe-americas"></use>
|
||||
<svg class="fa d-icon d-icon-earth-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#earth-americas"></use>
|
||||
</svg>
|
||||
<span class="relative-time">June 17, 2022</span>
|
||||
</span>→<span data-date="2022-06-18" data-time="10:30:00" class="discourse-local-date cooked-date past" data-format="LL" data-range="true" data-timezones="Africa/Accra|Australia/Brisbane|Europe/Paris" data-timezone="Australia/Brisbane" data-email-preview="2022-06-18T00:30:00Z UTC" aria-label="Brisbane Friday, June 17, 2022 9:30 AM → Saturday, June 18, 2022 10:30 AM, Accra Thursday, June 16, 2022 11:30 PM → Saturday, June 18, 2022 12:30 AM, Paris Friday, June 17, 2022 1:30 AM → Saturday, June 18, 2022 2:30 AM" data-title="This is a new topic to check on chat quote issues">
|
||||
<svg class="fa d-icon d-icon-globe-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#globe-americas"></use>
|
||||
<svg class="fa d-icon d-icon-earth-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#earth-americas"></use>
|
||||
</svg>
|
||||
<span class="relative-time">June 18, 2022</span>
|
||||
</span></p></div>`;
|
||||
@ -106,14 +106,14 @@ acceptance(
|
||||
const topicResponse = cloneJSON(topicFixtures["/t/280/1.json"]);
|
||||
const firstPost = topicResponse.post_stream.posts[0];
|
||||
firstPost.cooked += `<div class='select-local-date-test'><p dir="ltr">Testing countdown <span data-date="2022-06-21" data-time="09:30:00" class="discourse-local-date cooked-date" data-format="LL" data-countdown="true" data-timezone="Australia/Brisbane" data-email-preview="2022-06-20T23:30:00Z UTC" aria-label="Brisbane Tuesday, June 21, 2022 <br /><svg class='fa d-icon d-icon-clock svg-icon svg-string' xmlns="http://www.w3.org/2000/svg"><use href="#clock" /></svg> 9:30 AM, Paris Tuesday, June 21, 2022 <br /><svg class='fa d-icon d-icon-clock svg-icon svg-string' xmlns="http://www.w3.org/2000/svg"><use href="#clock" /></svg> 1:30 AM, Los Angeles Monday, June 20, 2022 <br /><svg class='fa d-icon d-icon-clock svg-icon svg-string' xmlns="http://www.w3.org/2000/svg"><use href="#clock" /></svg> 4:30 PM" data-title="This is a new topic to check on chat quote issues">
|
||||
<svg class="fa d-icon d-icon-globe-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#globe-americas"></use>
|
||||
<svg class="fa d-icon d-icon-earth-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#earth-americas"></use>
|
||||
</svg>
|
||||
<span class="relative-time">21 hours</span>
|
||||
</span></p>
|
||||
<p dir="ltr">Testing recurring <span data-date="2022-06-22" class="discourse-local-date cooked-date" data-timezone="Australia/Brisbane" data-recurring="2.weeks" data-email-preview="2022-06-21T14:00:00Z UTC" aria-label="Brisbane Wednesday, June 22, 2022 12:00 AM → Thursday, June 23, 2022 12:00 AM, Paris Tuesday, June 21, 2022 4:00 PM → Wednesday, June 22, 2022 4:00 PM, Los Angeles Tuesday, June 21, 2022 7:00 AM → Wednesday, June 22, 2022 7:00 AM" data-title="This is a new topic to check on chat quote issues">
|
||||
<svg class="fa d-icon d-icon-globe-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#globe-americas"></use>
|
||||
<svg class="fa d-icon d-icon-earth-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
|
||||
<use href="#earth-americas"></use>
|
||||
</svg>
|
||||
<span class="relative-time">Wednesday</span>
|
||||
</span></p></div>`;
|
||||
|
@ -38,8 +38,8 @@ importers:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
'@fortawesome/fontawesome-free':
|
||||
specifier: 5.15.4
|
||||
version: 5.15.4
|
||||
specifier: 6.6.0
|
||||
version: 6.6.0
|
||||
'@glint/core':
|
||||
specifier: ^1.4.1-unstable.01b8deb
|
||||
version: 1.4.1-unstable.ff9ea6c(typescript@5.5.4)
|
||||
@ -2134,8 +2134,8 @@ packages:
|
||||
'@floating-ui/utils@0.2.7':
|
||||
resolution: {integrity: sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==}
|
||||
|
||||
'@fortawesome/fontawesome-free@5.15.4':
|
||||
resolution: {integrity: sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg==}
|
||||
'@fortawesome/fontawesome-free@6.6.0':
|
||||
resolution: {integrity: sha512-60G28ke/sXdtS9KZCpZSHHkCbdsOGEhIUGlwq6yhY74UpTiToIh8np7A8yphhM4BWsvNFtIvLpi4co+h9Mr9Ow==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
'@gar/promisify@1.1.3':
|
||||
@ -9785,7 +9785,7 @@ snapshots:
|
||||
|
||||
'@floating-ui/utils@0.2.7': {}
|
||||
|
||||
'@fortawesome/fontawesome-free@5.15.4': {}
|
||||
'@fortawesome/fontawesome-free@6.6.0': {}
|
||||
|
||||
'@gar/promisify@1.1.3': {}
|
||||
|
||||
|
@ -11,7 +11,7 @@ RSpec.describe SvgSprite do
|
||||
it "can generate a bundle" do
|
||||
bundle = SvgSprite.bundle
|
||||
expect(bundle).to match(/heart/)
|
||||
expect(bundle).to match(/angle-double-down/)
|
||||
expect(bundle).to match(/angles-down/)
|
||||
end
|
||||
|
||||
it "can generate paths" do
|
||||
@ -200,16 +200,16 @@ RSpec.describe SvgSprite do
|
||||
end
|
||||
|
||||
it "includes icons from SiteSettings" do
|
||||
SiteSetting.svg_icon_subset = "blender|drafting-compass|fab-bandcamp"
|
||||
SiteSetting.svg_icon_subset = "blender|compass-drafting|fab-bandcamp"
|
||||
|
||||
all_icons = SvgSprite.all_icons
|
||||
expect(all_icons).to include("blender")
|
||||
expect(all_icons).to include("drafting-compass")
|
||||
expect(all_icons).to include("compass-drafting")
|
||||
expect(all_icons).to include("fab-bandcamp")
|
||||
|
||||
SiteSetting.svg_icon_subset = nil
|
||||
SvgSprite.expire_cache
|
||||
expect(SvgSprite.all_icons).not_to include("drafting-compass")
|
||||
expect(SvgSprite.all_icons).not_to include("compass-drafting")
|
||||
|
||||
# does not fail on non-string setting
|
||||
SiteSetting.svg_icon_subset = false
|
||||
|
@ -93,7 +93,7 @@ RSpec.describe SvgSpriteController do
|
||||
|
||||
data = response.parsed_body
|
||||
expect(data.length).to eq(200)
|
||||
expect(data[0]["id"]).to eq("ad")
|
||||
expect(data[0]["id"]).to eq("0")
|
||||
end
|
||||
|
||||
it "should filter" do
|
||||
@ -113,12 +113,12 @@ RSpec.describe SvgSpriteController do
|
||||
|
||||
get "/svg-sprite/picker-search"
|
||||
data = response.parsed_body
|
||||
beer_icon = response.parsed_body.find { |i| i["id"] == "beer" }
|
||||
beer_icon = response.parsed_body.find { |i| i["id"] == "beer-mug-empty" }
|
||||
expect(beer_icon).to be_present
|
||||
|
||||
get "/svg-sprite/picker-search", params: { only_available: "true" }
|
||||
data = response.parsed_body
|
||||
beer_icon = response.parsed_body.find { |i| i["id"] == "beer" }
|
||||
beer_icon = response.parsed_body.find { |i| i["id"] == "beer-mug-empty" }
|
||||
expect(beer_icon).to be nil
|
||||
expect(data.length).to eq(200)
|
||||
end
|
||||
|
@ -43,7 +43,7 @@ describe "Admin Badges Page", type: :system do
|
||||
badges_page.form.field("enabled").accept
|
||||
badges_page.form.field("name").fill_in("a name")
|
||||
badges_page.form.field("badge_type_id").select(BadgeType::Bronze)
|
||||
badges_page.form.field("icon").select("ambulance")
|
||||
badges_page.form.field("icon").select("truck-medical")
|
||||
badges_page.form.field("description").fill_in("a description")
|
||||
badges_page.form.field("long_description").fill_in("a long_description")
|
||||
badges_page.form.field("badge_grouping_id").select(BadgeGrouping::GettingStarted)
|
||||
@ -75,11 +75,11 @@ describe "Admin Badges Page", type: :system do
|
||||
badge = Badge.find(Badge::Autobiographer)
|
||||
badge.update!(image_upload_id: Fabricate(:image_upload).id)
|
||||
|
||||
badges_page.visit_page(Badge::Autobiographer).choose_icon("ambulance").submit_form
|
||||
badges_page.visit_page(Badge::Autobiographer).choose_icon("truck-medical").submit_form
|
||||
|
||||
expect(badges_page).to have_saved_form
|
||||
expect(badge.reload.image_upload_id).to be_blank
|
||||
expect(badge.icon).to eq("ambulance")
|
||||
expect(badge.icon).to eq("truck-medical")
|
||||
end
|
||||
end
|
||||
|
||||
@ -102,7 +102,7 @@ describe "Admin Badges Page", type: :system do
|
||||
badges_page.form.field("enabled").accept
|
||||
badges_page.form.field("name").fill_in("a name")
|
||||
badges_page.form.field("badge_type_id").select(BadgeType::Bronze)
|
||||
badges_page.form.field("icon").select("ambulance")
|
||||
badges_page.form.field("icon").select("truck-medical")
|
||||
badges_page.submit_form
|
||||
expect(badges_page).to have_saved_form
|
||||
badges_page.form.field("name").fill_in("another name")
|
||||
|
@ -23,7 +23,7 @@ RSpec.describe "Editing Sidebar Community Section", type: :system do
|
||||
visit("/latest")
|
||||
|
||||
expect(sidebar.primary_section_icons("community")).to eq(
|
||||
%w[layer-group user flag wrench ellipsis-v],
|
||||
%w[layer-group user flag wrench ellipsis-vertical],
|
||||
)
|
||||
|
||||
modal = sidebar.click_community_section_more_button.click_customize_community_section_button
|
||||
@ -37,7 +37,7 @@ RSpec.describe "Editing Sidebar Community Section", type: :system do
|
||||
)
|
||||
|
||||
expect(sidebar.primary_section_icons("community")).to eq(
|
||||
%w[user paper-plane flag wrench ellipsis-v],
|
||||
%w[user paper-plane flag wrench ellipsis-vertical],
|
||||
)
|
||||
|
||||
modal = sidebar.click_community_section_more_button.click_customize_community_section_button
|
||||
@ -50,7 +50,7 @@ RSpec.describe "Editing Sidebar Community Section", type: :system do
|
||||
)
|
||||
|
||||
expect(sidebar.primary_section_icons("community")).to eq(
|
||||
%w[layer-group user flag wrench ellipsis-v],
|
||||
%w[layer-group user flag wrench ellipsis-vertical],
|
||||
)
|
||||
end
|
||||
|
||||
|
@ -35,7 +35,7 @@ module PageObjects
|
||||
|
||||
def choose_icon(name)
|
||||
form.choose_conditional("choose-icon")
|
||||
form.field("icon").select("ambulance")
|
||||
form.field("icon").select("truck-medical")
|
||||
self
|
||||
end
|
||||
|
||||
|
2865
vendor/assets/svg-icons/fontawesome/brands.svg
vendored
2865
vendor/assets/svg-icons/fontawesome/brands.svg
vendored
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 462 KiB After Width: | Height: | Size: 496 KiB |
952
vendor/assets/svg-icons/fontawesome/regular.svg
vendored
952
vendor/assets/svg-icons/fontawesome/regular.svg
vendored
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 115 KiB |
7198
vendor/assets/svg-icons/fontawesome/solid.svg
vendored
7198
vendor/assets/svg-icons/fontawesome/solid.svg
vendored
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 640 KiB After Width: | Height: | Size: 870 KiB |
Loading…
Reference in New Issue
Block a user