Commit Graph

356 Commits

Author SHA1 Message Date
Perflyst
8c8b296483
Fix build error 2019-04-14 09:06:11 +02:00
Perflyst
642a1d733d
Revert bootstrap changes 2019-04-14 08:57:02 +02:00
Perflyst
ae2ad21996
Use correct path 2019-04-14 08:49:05 +02:00
Travis Ralston
52f3c72db6 Add a bit of safety around the IRC bridge and other integrations 2019-04-13 16:31:02 -06:00
Travis Ralston
0c66f0f5d2 Don't let the title attribute carry into child elements 2019-04-13 16:29:53 -06:00
Travis Ralston
5a7997450d Upgrade web packages too 2019-04-13 14:37:56 -06:00
Perflyst
e31f975ae8
Move fonts into public folder 2019-04-12 14:58:45 +02:00
Perflyst
aad1f1fa40
Add opensans100-roboto300.ttf locally 2019-04-06 19:24:09 +02:00
Perflyst
2f66cd228a
Use local assets 2019-04-06 19:17:02 +02:00
Travis Ralston
f8b7f9dd82 Acknowledge OpenID credentials are received
This stops Riot from printing irrelevant stack traces
2019-04-01 19:40:40 -06:00
Travis Ralston
0c0429df46 Merge branch 'travis/token-security' 2019-03-27 08:30:12 -06:00
Travis Ralston
71a1491548 Ensure stickers actually load when the widget is reopened 2019-03-25 22:48:24 -06:00
Travis Ralston
97fb43d233 Use m.* widget types where possible
Fixes https://github.com/turt2live/matrix-dimension/issues/260
2019-03-24 18:03:21 -06:00
Travis Ralston
4e414d8236 Unpack Etherpad widgets from scalar correctly
Fixes https://github.com/turt2live/matrix-dimension/issues/142
2019-03-24 17:45:55 -06:00
Travis Ralston
f10abf95e5 Add a url parameter to all widgets for compatibility
Fixes https://github.com/turt2live/matrix-dimension/issues/181
Fixes https://github.com/turt2live/matrix-dimension/issues/177
Fixes https://github.com/turt2live/matrix-dimension/issues/180
Part of https://github.com/turt2live/matrix-dimension/issues/141
2019-03-24 17:30:19 -06:00
Travis Ralston
3ab0bbbfd2 Use template variables and convert Google Calendar widgets to new format
Fixes https://github.com/turt2live/matrix-dimension/issues/179

Part of https://github.com/turt2live/matrix-dimension/issues/141
2019-03-24 16:56:14 -06:00
Travis Ralston
5f6658a194 Use template variables and proper data attributes for Jitsi
Fixes https://github.com/turt2live/matrix-dimension/issues/176
Part of https://github.com/turt2live/matrix-dimension/issues/141
2019-03-24 15:37:39 -06:00
Travis Ralston
a529fc5f9f Fix 'no stickerpacks' placeholder to not have a scrollbar 2019-03-24 15:09:40 -06:00
Travis Ralston
2a5351404f Try requesting the user's identity when the stickerpick fails to auth
Fixes https://github.com/turt2live/matrix-dimension/issues/259
2019-03-24 15:07:03 -06:00
Travis Ralston
5e50e9641c Use new utility functions in reauth demo 2019-03-24 14:52:55 -06:00
Travis Ralston
bb874b1fa0 Add an integration manager test widget
Fixes https://github.com/turt2live/matrix-dimension/issues/244
2019-03-24 14:37:51 -06:00
Travis Ralston
83b2062d87 Move API version check to CapableWidget 2019-03-24 13:13:30 -06:00
Travis Ralston
630a236d7d Always add the stickerpicker widget when importing packs
Fixes https://github.com/turt2live/matrix-dimension/issues/255
2019-03-23 18:44:06 -06:00
Travis Ralston
e2f27ad3a3 Read author and license information for sticker packs 2019-03-23 18:42:09 -06:00
Travis Ralston
0405d76ebf Add some documentation for custom stickers and support disabling them 2019-03-20 23:53:10 -06:00
Travis Ralston
147ef2104e Support custom stickerpacks 2019-03-20 22:32:29 -06:00
Travis Ralston
dce6bcde56 Require ?v=1.1 on Scalar /register and /account
For upstream compatibility and security.
2019-03-15 22:05:35 -06:00
Travis Ralston
0287e472f8 Add a button to log everyone out 2019-03-15 22:00:38 -06:00
Travis Ralston
70c5471df7 Clear state message after the client is known to be supported 2019-03-15 20:53:38 -06:00
Travis Ralston
d29e8531d9 Detect API version of Riot before rendering widget 2019-03-15 20:49:48 -06:00
Travis Ralston
11ed6342f6 First iteration of OpenID reauth widget example 2019-03-15 20:36:52 -06:00
Travis Ralston
34653eb223 Fix Jitsi widget not staying on screen correctly
The "Join Conference" screen should not be sticky. We also need to make sure we have a widget ID set so that when we say to be stuck on screen or not, the request actually passes.
2019-03-15 20:32:54 -06:00
Travis Ralston
43473f7d4d Fix indentation of jitsi widget wrapper 2019-03-15 20:32:54 -06:00
Travis Ralston
005b471dc7 Always send a request_id to Riot
Fixes https://github.com/turt2live/matrix-dimension/issues/241

Cherry picked from 17eb46e48d3bd40a76579735966eff3fd535e479
2019-03-15 20:16:13 -06:00
Travis Ralston
38ea8d30db Support MSC1708 (and co.) and prepare for MSC1711
Fixes https://github.com/turt2live/matrix-dimension/issues/234

Later support for MSC1711 will be done in https://github.com/turt2live/matrix-dimension/issues/238
2019-02-07 21:18:58 -07:00
Travis Ralston
31b802f9c3 Fix local development builds 2019-02-07 20:40:11 -07:00
Travis Ralston
363003199a Add an option to force a default jitsi domain on the widget
Fixes https://github.com/turt2live/matrix-dimension/issues/231
2018-12-22 19:30:25 -07:00
Travis Ralston
32a639ef95 Support importing sticker packs from Telegram 2018-12-22 17:37:31 -07:00
Travis Ralston
9d88e59aae
Merge pull request #226 from anoadragon453/anoa/jitsi_ptt
Jitsi widget supports audio mute manipulation
2018-11-06 19:30:46 -07:00
Andrew Morgan
490df9a21f Remove TODO comment 2018-11-07 03:07:27 +01:00
Andrew Morgan
8eb52712bf Jitsi widget supports muting/unmuting at will 2018-11-01 19:48:05 +01:00
Travis Ralston
4eae11f624 Add Slack to the promo page 2018-10-24 23:10:32 -06:00
Travis Ralston
99e0647cd7 Self-service Slack provisioning
Fixes https://github.com/turt2live/matrix-dimension/issues/5
Fixes https://github.com/turt2live/matrix-dimension/issues/8
2018-10-24 22:51:04 -06:00
Travis Ralston
02e58e7a8d Admin section for Slack bridges 2018-10-24 20:56:38 -06:00
Travis Ralston
a103f3ca6b Re-use existing sticker picker widgets
There's a potential for a race condition by deleting then recreating the widget. Instead, we'll just re-use the widget and change the properties of it.

Fixes https://github.com/turt2live/matrix-dimension/issues/200

Note that the actual change may not be reflected due to https://github.com/vector-im/riot-web/issues/7547
2018-10-24 00:28:09 -06:00
Travis Ralston
9ae83f3dae Improve "no stickers" view
Fixes https://github.com/turt2live/matrix-dimension/issues/186
2018-10-23 23:55:29 -06:00
Travis Ralston
f59d30c2b6 Fix promo page on narrow screens and update content
Fixes https://github.com/turt2live/matrix-dimension/issues/219
2018-10-22 22:28:26 -06:00
Travis Ralston
cc01a9ea93 Remove duplicate guggy from the promo page
Fixes https://github.com/turt2live/matrix-dimension/issues/220
2018-10-22 22:12:50 -06:00
Travis Ralston
82343da942 Support simple custom bots
Fixes https://github.com/turt2live/matrix-dimension/issues/165
2018-10-22 22:10:28 -06:00
Travis Ralston
c1a55ade7c Use the light theme when no theme is supplied 2018-10-22 01:16:55 -06:00
Travis Ralston
82e3e72037 Make the linter happy 2018-10-22 00:47:42 -06:00
Travis Ralston
c9bb3aba37 Add a dark theme
Fixes https://github.com/turt2live/matrix-dimension/issues/153
2018-10-22 00:41:35 -06:00
Travis Ralston
52708afa7c Add Spotify widget
Fixes https://github.com/turt2live/matrix-dimension/issues/133
2018-10-21 17:00:10 -06:00
Travis Ralston
ea834d826a Add TradingView widget
Fixes https://github.com/turt2live/matrix-dimension/issues/132
2018-10-21 16:26:57 -06:00
Travis Ralston
9bdba2d474 Add Grafana widget
Fixes https://github.com/turt2live/matrix-dimension/issues/86
2018-10-21 15:17:21 -06:00
Travis Ralston
1f5ca1f01b Add Gitter to the promo page 2018-10-21 14:32:00 -06:00
Travis Ralston
edbbd3b8c0 Add the frontend for Gitter bridging
Fixes https://github.com/turt2live/matrix-dimension/issues/4
Fixes https://github.com/turt2live/matrix-dimension/issues/7
2018-10-21 14:20:37 -06:00
Travis Ralston
2e844a707f Add admin section for Gitter bridge configuration 2018-10-21 13:22:55 -06:00
Travis Ralston
5d8857381a Add backend support for self-hosted and matrix.org gitter bridges 2018-10-21 13:00:58 -06:00
Travis Ralston
ef22391743 Move 'Made for Matrix' to the footer; Promote stickers; 2018-10-20 23:55:24 -06:00
Travis Ralston
0b460b9423 New UI for the splash page 2018-10-20 23:04:25 -06:00
Travis Ralston
b8a01cc848 Support the webhooks bridge in private rooms 2018-10-20 18:57:54 -06:00
Travis Ralston
3823788cc2 Add the frontend for self-service of webhooks 2018-10-20 18:33:01 -06:00
Travis Ralston
7b5285cd57 Add the admin section for the webhooks bridge 2018-10-20 14:07:30 -06:00
Travis Ralston
a0467c46e2 Merge branch 'master' into travis/telegram 2018-10-17 22:13:36 -06:00
Travis Ralston
235d8051fe Package updates 2018-10-17 22:11:40 -06:00
Travis Ralston
c5e887bfd0 Linting 2018-10-17 21:51:18 -06:00
Travis Ralston
83c06c8591 Warn the user when they try to bridge chats that are already bridged 2018-10-17 21:37:29 -06:00
Travis Ralston
c0936745c0 Frontend interface for basic bridging and unbridging of chats
Requires https://github.com/tulir/mautrix-telegram/pull/235

Puppeting is scheduled to be handled in https://github.com/turt2live/matrix-dimension/issues/214

The TODO comments about asking for unbridge/permission denied will be handled in a later commit.
2018-10-17 21:09:19 -06:00
Travis Ralston
b7ba9d2c8d Add a log statement when a toWidget request comes in 2018-10-17 19:53:46 -06:00
Andrew Morgan
c811b273dd Jitsi widget supports audio toggling programmatically 2018-10-18 01:46:29 +02:00
ImgBotApp
532bf6747a
[ImgBot] optimizes images
*Total -- 162.56kb -> 132.63kb (18.41%)

/web/public/img/infrastructure.png -- 13.02kb -> 4.94kb (62.07%)
/web/public/img/avatars/github.png -- 4.73kb -> 2.62kb (44.71%)
/web/public/img/avatars/circleci.png -- 4.38kb -> 2.43kb (44.48%)
/web/public/img/avatars/twitch.png -- 3.76kb -> 2.12kb (43.61%)
/web/public/img/avatars/irc.png -- 3.56kb -> 2.11kb (40.88%)
/web/public/img/logo/banner-sm.png -- 3.55kb -> 2.37kb (33.34%)
/web/public/img/avatars/rssbot.png -- 5.63kb -> 4.33kb (23.1%)
/web/public/img/avatars/youtube.png -- 3.61kb -> 2.82kb (21.98%)
/web/public/img/avatars/echo.png -- 4.40kb -> 3.45kb (21.57%)
/web/public/img/avatars/etherpad.png -- 6.90kb -> 5.46kb (20.93%)
/web/public/img/avatars/jira.png -- 4.10kb -> 3.25kb (20.82%)
/web/public/img/avatars/imgur.png -- 3.44kb -> 2.76kb (19.85%)
/web/public/img/avatars/customwidget.png -- 10.98kb -> 9.85kb (10.26%)
/web/public/img/logo/favicon/android-chrome-512x512.png -- 7.42kb -> 6.69kb (9.8%)
/web/public/img/avatars/google.png -- 5.70kb -> 5.19kb (9.04%)
/web/public/img/avatars/travisci.png -- 19.72kb -> 18.21kb (7.68%)
/web/public/img/avatars/wikipedia.png -- 19.33kb -> 17.86kb (7.6%)
/web/public/img/avatars/jitsi.png -- 9.18kb -> 8.54kb (7.04%)
/web/public/img/avatars/guggy.png -- 8.89kb -> 8.30kb (6.57%)
/web/public/img/avatars/giphy.png -- 3.18kb -> 2.98kb (6.39%)
/web/public/img/avatars/googlecalendar.png -- 5.44kb -> 5.16kb (5.08%)
/web/public/img/avatars/googledocs.png -- 5.07kb -> 4.82kb (4.97%)
/web/public/img/logo/favicon/mstile-150x150.png -- 2.06kb -> 1.98kb (3.85%)
/web/public/img/logo/favicon/android-chrome-192x192.png -- 2.33kb -> 2.26kb (3.02%)
/web/public/img/logo/favicon/apple-touch-icon.png -- 2.17kb -> 2.16kb (0.81%)
2018-10-09 05:20:10 +00:00
Travis Ralston
242ad3bf3a Admin interface for managing Telegram bridges
Currently only one bridge is supported at a time, however in the future we may wish to load balance between bridges or something.
2018-09-16 02:26:10 -06:00
Travis Ralston
6b21ac4443 Support always on screen Jitsi widgets
Fixes #202
2018-07-30 21:55:57 -06:00
Travis Ralston
a706f29f44 Document Riot 0.16's new config.json parameter 2018-07-30 21:55:27 -06:00
Travis Ralston
339f6a7c60 Fix background color on jitsi widget 2018-07-30 21:53:56 -06:00
Travis Ralston
7f446c7b9c Move the author information to below the pack name 2018-06-17 12:10:58 -06:00
Travis Ralston
31c565abc9 Make sure the auth error message is shown 2018-05-20 18:25:37 -06:00
Travis Ralston
a249d6dd68 Revert "Change the authorization flow for the sticker picker"
This reverts commit f28f817ca2.
2018-05-20 18:24:24 -06:00
Travis Ralston
11772f54e7 Make the app blend in less with the Riot light theme
Fixes #188.
2018-05-20 18:16:13 -06:00
Travis Ralston
f468226148 Add target=_blank to licenses in the sticker picker
Fixes #187
2018-05-20 17:44:20 -06:00
Travis Ralston
d750530a2e Add a temporary notice that there's no sticker packs
This obviously needs improving, and CSS. This will work for now though. Part of #186
2018-05-20 17:43:09 -06:00
Travis Ralston
f28f817ca2 Change the authorization flow for the sticker picker
This probably still needs to be reviewed though.
2018-05-20 17:41:06 -06:00
Travis Ralston
6c4e8f75d4 Add a sticker picker
The useful bit for sending stickers. Implements the rest of #156
2018-05-13 22:32:13 -06:00
Travis Ralston
d2c672cf00 Add a hint as to how to get to your sticker packs from the landing page
Part of #156
2018-05-12 23:51:58 -06:00
Travis Ralston
7a0af05ac4 Sticker pack selection (without widget)
This is the UI where the user can pick which stickers they want. This does not add the widget yet though.

Helps towards #156
2018-05-12 23:51:31 -06:00
Travis Ralston
e8274c9d87 Sticker pack administration
The first step towards #156
2018-05-12 21:55:02 -06:00
Travis Ralston
e2ed9a8839 Move capabilities to their own class 2018-05-12 16:46:08 -06:00
Travis Ralston
afd9d6f6c1 Send the raw payload over postMessage
Blobs don't covert to JSON very nicely.
2018-05-12 15:58:23 -06:00
Travis Ralston
17656e8cf7 Implement basic postMessage widget API components
This implements a 'screenshot' button on the generic widget wrapper, although there's several bugs with the current Riot implementation that prevent it from working and that is why it is commented out.

Fixes #155. Even if it doesn't work.
2018-05-11 21:58:10 -06:00
Travis Ralston
25716ac54f Improve wording on the home page 2018-04-01 10:22:22 -06:00
Travis Ralston
b47693561f Fix the colspan for go-neb and the IRC bridge tables 2018-03-31 22:10:28 -06:00
Travis Ralston
e490007cec Update the profile for self-hosted go-neb instances
Fixes #166
2018-03-31 22:01:23 -06:00
Travis Ralston
ca8c6b1d95 Prevent unauthorized people from editing integrations 2018-03-31 16:47:30 -06:00
Travis Ralston
a6dae219a5 Add the missing "embed-ability" api for widgets 2018-03-31 16:38:55 -06:00
Travis Ralston
9a8041ea38 Self-service removal of channel links 2018-03-31 15:48:20 -06:00
Travis Ralston
f33f7e5716 Self-service requests to bridge IRC channels 2018-03-31 14:37:36 -06:00
Travis Ralston
1e437a2f8b Add ability to add self-hosted IRC bridges 2018-03-31 11:45:19 -06:00
Travis Ralston
aa8ec0ed58 API and UI for toggling IRC networks 2018-03-31 11:26:00 -06:00
Travis Ralston
61ca805b19 Initial admin APIs for managing IRC bridges
Missing functionality:
* Toggle networks
* Add self-hosted
2018-03-30 23:12:31 -06:00
Travis Ralston
76931819af Add the shell for configuring IRC bridges 2018-03-30 19:22:15 -06:00
Travis Ralston
4365cb0753 Support Travis CI completely
Webhooks are generated eagerly but have lazily set targets so that we can give the user a webhook URL to set in their config. go-neb (upstream & standalone) doesn't give a webhook URL until after the repositories are configured.

Fixes #16
2018-03-30 14:59:25 -06:00
Travis Ralston
606b6d9f56 Front end for travis-ci self-service management
TODO:
* Backend (needs research)
* Webhook URL (probably proxy this)
2018-03-28 22:18:33 -06:00
Travis Ralston
18597db540 Add self-service configuration for the RSS bot
Fixes #14
2018-03-26 21:48:44 -06:00
Travis Ralston
2c1366d9d7 Very early support for configuring complex bots
Using the RSS Bot as an example. Notably missing features:
* Configuration (feeds) not retrieved
* No actual configuration page
2018-03-25 21:02:32 -06:00
Travis Ralston
b5aec06c04 Add a dialog for configuring simple bots 2018-03-25 19:17:09 -06:00
Travis Ralston
87121150cc Support removing simple bots from rooms 2018-03-25 16:20:15 -06:00
Travis Ralston
017f5e00cd Appease the linter 2018-03-25 13:21:53 -06:00
Travis Ralston
009b510779 Special case each integration, forcing simple bots to go through an NebProxy
This is so the different needs of each can be accounted for. For example, widgets are fairly unrestricted, so nothing really needs to prevent them. Bots on the other hand require an upstream token otherwise we can't get the bot IDs from Modular.
2018-03-25 13:13:50 -06:00
Travis Ralston
04bfccc95f Consider the lack of membership event as not being in the room 2018-03-25 13:12:00 -06:00
Travis Ralston
d4166477f0 Add a log statement to identify Dimension in Riot's logs 2018-03-25 13:11:41 -06:00
Travis Ralston
947ecd43cd Early support for managing bots in the room
Known drawbacks:
* Cannot remove bots
* Cannot use upstream neb instances
2018-03-25 00:45:57 -06:00
Travis Ralston
a5173fff85 Remove wikipedia from the list of bots with a configuration screen
Wikipedia doesn't have any additional configuration in go-neb
2018-03-24 21:57:14 -06:00
Travis Ralston
6b4f33de24 Add the configuration screen for Imgur 2018-03-24 21:55:35 -06:00
Travis Ralston
0ccd0cbb81 Add the configuration screen for Google 2018-03-24 21:50:30 -06:00
Travis Ralston
d00058cbff Add the configuration screen for Guggy 2018-03-24 21:44:05 -06:00
Travis Ralston
21aba80f54 Add the configuration screen for Giphy 2018-03-24 21:17:44 -06:00
Travis Ralston
18a2d63b6f Update the infrastructure diagram 2018-03-24 20:03:20 -06:00
Travis Ralston
03f71a6b0f Update the homepage and branding 2018-03-24 19:58:01 -06:00
Travis Ralston
0d520a763f Update webapp to match naming angular naming conventions 2018-03-24 17:16:52 -06:00
Travis Ralston
8cdae3359d Support explicit setting of the federation/client URLs
The client/server URL is needed for go-neb to work correctly, and to remove our complete dependence on federation.

The federation URL is also configurable so servers that don't wish to federate can specify a local address.
2018-03-24 17:09:34 -06:00
Travis Ralston
58f8ca8335 Support provisioning bots in go-neb
This is so far only possible for the bots that don't require additional configuration in go-neb.
2018-03-24 14:54:12 -06:00
Travis Ralston
51810cce8f Fix not being able to edit go-neb instances
The linter required us to use === later on, but this breaks the navigation. We now cast the parameter.
2018-03-24 12:19:29 -06:00
Travis Ralston
62d81ed842 Show the appservice configuration after saving; Make the show config button work
Includes the ability to 'test' the appservice. This doesn't bother checking if the URL is set up correctly because we don't actually care about the transactions.
2018-03-24 12:18:38 -06:00
Travis Ralston
656d208059 Minor styling improvements for widget configuration pages 2018-03-23 22:13:15 -06:00
Travis Ralston
fa7fb651c0 Bring the ibox chevron in a little bit, and always display it as a down arrow 2018-03-23 22:12:59 -06:00
Travis Ralston
2e5530179b Add some animation to the iboxes 2018-03-23 22:12:34 -06:00
Travis Ralston
73acbb586f Update linting to include the web project as well 2018-03-23 21:29:48 -06:00
Travis Ralston
51740308a2 Fix a bug where all bots are considered handled 2018-03-23 20:15:59 -06:00
Travis Ralston
42315de8df List the enabled bots on the go-neb page 2018-03-23 20:15:51 -06:00
Travis Ralston
51ea270fba Adjust the widget configuration button alignment to be better aligned
Using `top` was really just a hack
2018-03-23 20:15:29 -06:00
Travis Ralston
b8591b51e4 Fix the edit button alignment on the self-hosted bot configuration 2018-03-23 20:15:03 -06:00
Travis Ralston
9a62b34fb7 Fix type parameters coming from parsed URLs 2018-03-22 12:55:50 -06:00
Travis Ralston
74054c3962 Add ability to create self-hosted go-neb instances
They can't be provisioned or configured correctly yet, but they exist.
2018-01-31 16:30:08 -07:00
Travis Ralston
8b3f6e37ce Support configuring the upstream go-neb bots 2017-12-28 18:22:50 -07:00
Travis Ralston
0a6c8b7037 Start of support for go-neb via appservices 2017-12-24 02:03:02 -07:00
Travis Ralston
3f694c2b28 Admin section for enabling, disabling, and configuring widgets 2017-12-23 21:44:04 -07:00
Travis Ralston
441bef5606 Add a landing page of sorts to the admin section 2017-12-23 19:46:07 -07:00
Travis Ralston
3f0f816007 Start of an admin section 2017-12-23 18:47:41 -07:00
Travis Ralston
ffdb09d028 Update homepage and branding 2017-12-23 16:20:59 -07:00
Travis Ralston
941524f43c Add video widgets 2017-12-23 15:30:57 -07:00
Travis Ralston
2bf7841290 Add twitch livestreams 2017-12-23 15:03:24 -07:00
Travis Ralston
a72177b530 Add jitsi widgets 2017-12-23 14:16:22 -07:00
Travis Ralston
41c887f390 Add google docs configuration 2017-12-23 13:44:19 -07:00
Travis Ralston
2fbd655c46 Add google calendar configuration 2017-12-23 13:32:07 -07:00
Travis Ralston
00b7ddcc1a Fix auto-expanding the edit screen for widgets 2017-12-23 13:17:29 -07:00
Travis Ralston
fce6f2174a Add etherpad widget configuration 2017-12-23 13:16:05 -07:00
Travis Ralston
7fd674a8ff Remove legacy configurations for now 2017-12-23 13:15:54 -07:00
Travis Ralston
111423cc7d Move widget configuration template out to its own component 2017-12-22 23:30:42 -07:00
Travis Ralston
1407718999 Upgrade to font awesome 5 (free) 2017-12-22 23:19:30 -07:00