Commit graph

305 commits

Author SHA1 Message Date
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
Travis Ralston faeea3b3a5 Appease the linter some more 2017-12-22 22:17:09 -07:00
Travis Ralston 290e244a4e Actually remove widgets when requested 2017-12-22 22:02:52 -07:00
Travis Ralston c95ab2bbb2 Use templating for the edit/add views 2017-12-22 21:52:32 -07:00
Travis Ralston 0b63c8eb85 Make the whole box title clickable 2017-12-22 21:44:21 -07:00
Travis Ralston 63a3b6b4c2 Fix edit widget button 2017-12-22 21:42:43 -07:00
Travis Ralston dd02c6df2c Custom widget edit screen 2017-12-22 21:33:37 -07:00
Travis Ralston 6740571183 Prepare UI for editing of integrations 2017-12-22 21:11:27 -07:00
Travis Ralston fac404e16f Custom widgets are custom now 2017-12-20 21:47:35 -07:00
Travis Ralston 26530b1bec Use FA close icon 2017-12-20 21:39:06 -07:00
Travis Ralston 4965b61f2d Re-wire the UI to support the new backend
This still doesn't allow editing, but it supports showing the widgets at least.
2017-12-20 21:28:43 -07:00
Travis Ralston 826364e803 Re-implement the Scalar API in typescript
This is part of a rewrite for Dimension to better support integrations. Only the bare minimum scalar APIs are implemented at this point - dimension is non-functional.
2017-12-17 19:22:13 -07:00
Travis Ralston 7a8b27fa22 Update icons
The new custom widget icon is safe to use in a commercial setting. Licensed under the repo's license.
2017-12-15 22:35:57 -07:00
Travis Ralston 3a517be0c1 Styling for integration hover 2017-12-15 22:27:20 -07:00
Travis Ralston e3a32679c9 Fix circle ci for new project layout 2017-12-15 21:23:57 -07:00
Travis Ralston da01e93ac6 Merge branch 'master' into travis/ui-refresh 2017-12-15 21:23:02 -07:00
Travis Ralston a09a4d6b51 Styling for widgets (mostly) 2017-12-15 21:22:34 -07:00
MTRNord 17d6ab8367 Add CircleCI Integration
Signed-off-by: MTRNord <mtrnord1@gmail.com>
2017-12-15 14:13:45 +01:00
Travis Ralston ebe0048710 Use the correct title when we're also handling redirects and scalar tokens 2017-12-15 00:38:27 -07:00
Travis Ralston b7002ea4d6 Dynamic page titles 2017-12-15 00:33:32 -07:00
Travis Ralston d02830e170 Generify some widget wrappers 2017-12-14 23:52:36 -07:00
Travis Ralston e8f1167ec2 Organize the shared folder a bit 2017-12-14 23:46:17 -07:00
Travis Ralston 86a4d8dac2 Set up the correct routing and preparations for the "Riot" version of Dimension 2017-12-14 23:41:56 -07:00
Travis Ralston b5a8231a7a Update style and layout of header 2017-12-14 23:32:23 -07:00
Travis Ralston 6657d5dbf5 Start of a new UI for Dimension
Integrations need styling and the breadcrumbs don't work. Further, you can't actually add/edit anything.
2017-12-14 21:25:15 -07:00
Travis Ralston 618d6f44ee Use the scalar-defined widget types instead of our custom ones 2017-12-13 22:57:58 -07:00
Travis Ralston 983a2784c5 Use the new confId parameter 2017-12-13 22:57:39 -07:00
Travis Ralston 64a841f450 Don't assume we have a title 2017-12-13 22:56:59 -07:00
Travis Ralston 9ff1443878 Refactor how widgets are created/edited in the frontend
Creating and editing widgets is now done against the `dimension` object on a widget. This special object is used to translate the widget between the dirty and persisted states.
2017-12-13 22:44:20 -07:00
Travis Ralston fd5e367146 Add google calendar widget
Adds #135
Icon source: https://gsuite.google.com/setup/resources/logos/
2017-12-11 17:29:57 -07:00
Travis Ralston db2dcb459f Add google docs widget
Adds #90
2017-12-11 16:43:50 -07:00
Travis Ralston ff1653b392 Add google docs icon
Usage is in line with Google's current branding
2017-12-11 16:43:33 -07:00
Travis Ralston 3cf06845a3 Update youtube icon
Source: https://www.youtube.com/yt/about/brand-resources/
2017-12-11 16:19:41 -07:00
Travis Ralston dcba48d8b7 Update wikipedia icon
Usage is in line with Wikipedia's current branding
2017-12-11 16:16:44 -07:00
Travis Ralston a9ee14d534 Update twitch icon
Source: https://www.twitch.tv/p/brand/
2017-12-11 16:14:13 -07:00
Travis Ralston 407454b983 Update travis ci icon
Source: https://travis-ci.com/logo
2017-12-11 16:13:16 -07:00
Travis Ralston e136055120 Update rss icon
Source: http://www.iconarchive.com/show/simple-icons-by-danleech/rss-icon.html
2017-12-11 16:10:38 -07:00
Travis Ralston 24f01bd41a Update pollbot icon
It's the same icon that @pollbot:t2bot.io uses as an avatar
2017-12-11 16:06:39 -07:00
Travis Ralston f548199ca0 Update jitsi icon
Usage is in line with Jitsi's current branding
2017-12-11 16:02:04 -07:00
Travis Ralston ff6c87fdc5 Update IRC icon
Made specifically for Dimension, under the same license as the project.
2017-12-11 16:00:45 -07:00
Travis Ralston ce5b44b484 Update imgur icon
Usage is in line with Imgur's current branding.
2017-12-11 15:53:07 -07:00
Travis Ralston dc3379c53b Update guggy icon
Guggy's updated brand is now a fish.
2017-12-11 15:51:56 -07:00
Travis Ralston c118bbada2 Update google icon
Usage is in line with Google's current branding.
2017-12-11 15:47:47 -07:00
Travis Ralston df727cca4c Update giphy icon
Usage is in line with giphy's current branding.
2017-12-11 15:46:12 -07:00
Travis Ralston 71ec746ac5 Update etherpad icon
Source: etherpad.org
2017-12-11 15:42:50 -07:00
Travis Ralston 3e6a2752e5 Update github logo
Source: https://github.com/logos
2017-12-11 15:42:47 -07:00
Travis Ralston 84bcc64e30 Use avatars from the integration configurations 2017-12-11 15:42:42 -07:00
Travis Ralston 41e6dd078d Check for positive response for can_send_event earlier 2017-12-10 03:21:05 -07:00
Travis Ralston 914315ca1d Check if rooms are encrypted to warn users about adding widgets 2017-12-10 03:17:33 -07:00
Travis Ralston 51344656b2 Prevent people from adding widgets in rooms where they have no permission 2017-12-10 02:35:24 -07:00
Travis Ralston eb59940907 Also support editing Jitsi widgets 2017-12-10 01:08:32 -07:00
Travis Ralston 993dcdac21 Add Jitsi screensharing support
Self-hosted Jitsi Meet servers are possible for those running Dimension. The default server is Riot.IM's server.

Adds #87
2017-12-10 01:00:31 -07:00
Travis Ralston 99bc1eb660 Unwrap URL after saving 2017-12-09 16:35:40 -07:00
Travis Ralston e9aecabab4 Reformat code 2017-12-09 16:34:59 -07:00
Travis Ralston a45232998a Support custom Etherpad servers 2017-12-09 16:31:48 -07:00
MTRNord 2915f6df0a rework etherpad wrapUrl() hack 2017-11-19 11:34:41 +00:00
MTRNord 6e342f1075 fix etherpad avatar 2017-11-19 09:32:58 +00:00
Marcel e58d52d6ad
Add etherpad.png avatar 2017-11-18 23:49:26 +01:00
MTRNord e9f6543d2e prefix etherpad name with roomID 2017-11-18 22:23:43 +00:00
MTRNord 43e16f047b fix etherpad widget editing 2017-11-18 22:05:15 +00:00
MTRNord 95e658e0b9 add initial etherpad Widget logic 2017-11-18 21:33:47 +00:00
MTRNord 6fe4ed88cb Add missing space 2017-11-10 17:49:59 +00:00
Marcel 89c22b31ca
Add twitch.png avatar 2017-11-10 18:42:39 +01:00
MTRNord 1322b12cf6 Add Twitch Widget 2017-11-10 17:31:46 +00:00
Travis Ralston 2d3c140b26 Don't set the data object unless we have data to set.
Fixes #121
2017-10-10 22:32:08 -06:00
Travis Ralston 3eddf325b5 Remove debugging that was left behind 2017-10-10 22:26:35 -06:00
Travis Ralston c200020e55 Support video widgets (youtube, vimeo, dailymotion)
Adds #89
2017-10-10 20:44:09 -06:00
Travis Ralston 38ac6ec4e9 Linting 2017-10-09 22:00:29 -06:00
Travis Ralston 27abf3ec1d Support the edit widget button
Adds #120
2017-10-09 21:55:45 -06:00
Travis Ralston aecb1e33d4 Add a fullscreen button to the widget wrapper
Adds #103
2017-10-09 21:24:12 -06:00
Travis Ralston c5146d84ff Make the wrapper more generic in the event we support other wrappers 2017-10-09 20:58:56 -06:00
Travis Ralston 751e1b9c8c Add widget wrapper; Check to ensure content is embeddable
Adds #119
2017-10-09 20:26:46 -06:00
turt2live 0b37269014 Reorganize the UI into sections to make it a bit clearer on what everthing is 2017-09-08 20:53:52 -06:00
turt2live 7b8e5c0125 Slight change in avatar for custom widgets 2017-08-28 22:17:47 -06:00
turt2live c9571576fe Support custom widgets in the frontend
Adds #91
2017-08-28 22:09:00 -06:00
turt2live 91f6bfa7f9 Make tslint happy 2017-08-27 19:12:47 -06:00
turt2live b5633554cb Merge branch 'travis/github' 2017-08-27 19:06:46 -06:00
turt2live 3f360cb4ab Add Travis CI integration (scalar)
Adds #15
2017-08-27 19:05:38 -06:00
turt2live 7bfcd4f624 Merge branch 'master' into travis/github 2017-08-26 23:26:35 -06:00
turt2live 2f41826fd5 Make the build happy again 2017-08-26 23:26:00 -06:00
turt2live 3b5da30fd1 Merge branch 'master' into travis/github 2017-06-25 22:07:50 -06:00
turt2live b6b7cc5517 Make dev environment happy again 2017-06-25 22:07:41 -06:00
turt2live e0f9d3a624 Upgrade dependencies to be nodejs 6.11 & npm5 compatible
Closes #43, #41, #40, and #47
2017-06-25 21:57:13 -06:00
turt2live 27a5191ebe Make all icons 256x256 2017-06-10 22:56:18 -06:00
turt2live 980d1a2cd2 Github templating 2017-06-10 22:42:40 -06:00
turt2live 3426429105 Automatic refresh of IRC links 2017-06-10 19:09:51 -06:00
turt2live 76ebdf043c IRC channel linking and unlinking 2017-06-10 18:58:05 -06:00
turt2live a007e553a5 Change how always-on bridges are represented UI-wise 2017-06-10 14:56:29 -06:00
turt2live 30cfe080ce Start of the IRC bridge config: Pull networks and channels
TODO: 
* Provisioning support (IRC API)
* Deprovisioning support (IRC API)
* Ops query (IRC API)
* State update interval
2017-06-09 20:21:06 -06:00
turt2live a22175ef7a Actually clear the feed url after adding 2017-05-28 23:02:44 -06:00
turt2live 80c62b6eb3 Add missing return 2017-05-28 22:58:14 -06:00
turt2live e6fed9af5c Clear feed url after adding successfully 2017-05-28 22:57:40 -06:00
turt2live 58feb07119 Support vector's RSS bot. Adds #13
This has a side effect of adding #23 as well. A more performant caching method is probably needed (as this doesn't cache at all).
2017-05-28 22:51:04 -06:00
turt2live 3aa60b66a6 Remove integrations by type instead of by user ID
This is because the user ID might not exist for the integration (such as the case for RSS).
2017-05-28 17:39:02 -06:00
turt2live 69a0ea8118 Add pollbot. Adds #30 2017-05-28 17:34:18 -06:00
turt2live 9ebd87bd88 Minor layout changes 2017-05-28 14:37:09 -06:00
turt2live 0eb7855cf8 Move integrations to next line if needed 2017-05-28 14:36:22 -06:00
turt2live ebc77b7a07 Backend support for the RSS bot.
Part of #13
2017-05-28 14:33:57 -06:00
turt2live 5c74989604 Add close button to integrations manager 2017-05-28 00:53:12 -06:00
turt2live af2f5ba393 Use correct toast when removing an integration 2017-05-28 00:41:18 -06:00
turt2live 35559c9373 Change up bot structure to support hosted bots. Adds #12 2017-05-28 00:41:00 -06:00
turt2live 01ed07479e Update favicon 2017-05-27 21:27:08 -06:00
turt2live 9189c6f72b Add a splash page. Adds #21
Includes a self-made logo. Suggestions welcome.
2017-05-27 21:21:08 -06:00
turt2live e5585121ad fix warnings in typescript 2017-05-27 17:46:27 -06:00
turt2live 16e28019bc Support adding/removing matrix.org's simple bots.
This adds #11
2017-05-27 17:45:07 -06:00
turt2live 0c51d4424b UI for simple matrix.org bots
Part of #11

Needs actual scalar integration
2017-05-27 01:27:36 -06:00
turt2live f031a7833a Let's get this party started: Base structure 2017-05-26 21:51:48 -06:00