learnersguild / echo-chat Goto Github PK
View Code? Open in Web Editor NEWThis project forked from rocketchat/rocket.chat
Have your own Slack like online chat, built with Meteor.
Home Page: https://rocket.chat/
License: MIT License
This project forked from rocketchat/rocket.chat
Have your own Slack like online chat, built with Meteor.
Home Page: https://rocket.chat/
License: MIT License
@jeffreywescott commented on Thu May 12 2016
Specifically:
Related: learning-os-software/#43
@jeffreywescott commented on Thu May 12 2016
/cc @tannerwelsh (in your UX role)
@tannerwelsh commented on Tue May 24 2016
Thanks @jeffreywescott - I want to establish a consistent pattern here and so created issue LearnersGuild/learning-os-software#47
@jeffreywescott commented on Tue May 24 2016
Okay. Should we close this issue?
@tannerwelsh commented on Tue May 24 2016
Yes, let's close it. It doesn't really belong in this repo anyway, right?
@jeffreywescott commented on Tue May 24 2016
Two ways to look at it. I had created the issue in this repository because that's where the work will be done to "make it so". If you think it requires more detailed documentation in the GitBook, that's fine with me. Eventually, whatever you decide will generate one (or more) issues on this repository.
@tannerwelsh commented on Wed May 25 2016
Got it. Will re-open then and leave for future assignment.
We need a way to disable "default" Rocket.Chat features and interface. For example:
/tableflip
. why.)We shouldn't dump stack traces here, since we're gracefully moving on. We should just log something like "couldn't set avatar using GitHub".
Nov 28 16:12:52 echo app/web.1: Error while handling the setting of the avatar from a url (https://github.com/manoloish.png?s=200) for manoloish: { [Error: failed [404] Not Found] stack: [Getter] }
Nov 28 16:12:52 echo app/web.1: Exception while invoking method 'createOrUpdateUserFromJWT' TypeError: Object [object Object] has no method 'split'
Nov 28 16:12:52 echo app/web.1: at [object Object].createOrUpdateUserFromJWT (server/sso.js:69:17)
Nov 28 16:12:52 echo app/web.1: at [object Object].methodsMap.(anonymous function) (server/lib/debug.js:17:26)
Nov 28 16:12:52 echo app/web.1: at [object Object].methodMap.(anonymous function) (packages/meteorhacks_kadira/lib/hijack/wrap_session.js:164:1)
Nov 28 16:12:52 echo app/web.1: at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
Nov 28 16:12:52 echo app/web.1: at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
Nov 28 16:12:52 echo app/web.1: at [object Object]._.extend.protocol_handlers.method (livedata_server.js:678:23)
Nov 28 16:12:52 echo app/web.1: at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
Nov 28 16:12:52 echo app/web.1: at [object Object].sessionProto.protocol_handlers.method (packages/meteorhacks_kadira/lib/hijack/wrap_session.js:51:1)
@harmanlearns commented on Sat Aug 13 2016
What were you attempting to do? What actually happened?
I changed my github username to match my email and website. It caused echo to have issues in terms of private groups and having the same permissions as a user in channels.
I can not see any of the previous private channels and no more gear icon next to a post in certain channels.
How can you reproduce the bug? Include as much detail as you can.
-Change github username
-try to use echo again in same channels as previous username
What versions of relevant external software were you using (browser, OS, etc.)?
Chrome on Mac.
@jeffreywescott commented on Mon Aug 15 2016
Thanks for reporting this, @harmanlearns. Is this blocking you from being able to work / collaborate (trying to prioritize)?
@harmanlearns commented on Mon Aug 15 2016
@jeffrey: This is not blocking me from working right now. I can send and receive messages.
This can be fixed when there is time available. I mainly cannot:
-react to messages
-edit messages after sending on some channels
-access private channels
Thanks!
On Aug 15, 2016, at 4:55 AM, Jeffrey Wescott [email protected] wrote:
Thanks for reporting this, @harmanlearns. Is this blocking you from being able to work / collaborate (trying to prioritize)?
โ
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
@jeffreywescott commented on Mon Aug 15 2016
Related: RocketChat#3545
Found via rocketchat-lg-sso code review w/ @bundacia ...
We should be querying on:
services.lgSSO.lgUser.id
instead of emails.address
See #59
One option here would be to just temporarily re-enable the ability for users to change their username and then change @harmanlearns username back to the old value and then back to the new one. That should trigger all the right cleanup.
@jeffreywescott commented on Tue May 17 2016
It just shows a progress bar ... forever.
Instead, it should:
viewCycleVotingResults
, but isn't a player (e.g., backoffice
and moderator
roles):
viewCycleVotingResults
, an error message should be returned to the chat interface saying "You don't have permission to do that."@jeffreywescott commented on Wed May 18 2016
@prattsj -- this could be a nice, self-contained first issue for you to tackle. LMK what you think.
@jeffreywescott commented on Wed Jun 01 2016
Related: game/#115.
but it does work if you click the "group" icon in the right-hand side.
@shereefb commented on Tue Jul 05 2016
@jeffreywescott commented on Wed Jul 06 2016
If only.
This would take major rework inside of Rocket.Chat -- slash commands are not stored anywhere after being issued, so we'd have to wholesale replace their slash command handler.
FWIW, up arrow in Slack doesn't do anything w/ slash commands, either.
@shereefb commented on Tue Jul 05 2016
If project name is missing we should infer from channel. For example, if we are issuing reflection commands in the project channel, there's no need to add the project name.
@prattsj commented on Sun Jul 10 2016
@shereefb: was thinking about this today during a chat w/ @bundacia about the retro changes in progress. do you think it also makes sense to go a step further and actually require that project-specific commands be issued from the project's channel?
@shereefb commented on Sun Jul 10 2016
It's a good question. I like the idea of relying more on channels for context.
I worry a little about the user experience of someone who is reviewing a bunch of projects, and having to navigate to different channels to log their project reviews. Gut sense, I think it simplifies things to use channel as a context.
@jeffreywescott commented on Sun Jul 10 2016
I'm against the idea of having to be in a certain channel to issue a command. That's just not how commands work. Furthermore, we will eventually have this same toolbelt of commands available from their terminal, so I don't want to go down a path where we're reliant on a chat context for certain information.
@prattsj commented on Sun Jul 10 2016
Sometimes, it is sort of how commands work. In a terminal, "context" is often drawn from the directory in which you're issuing the command.
@prattsj commented on Sun Jul 10 2016
I actually like this idea very much. It links the project-related activity in my mind as a player to this one specific space (and only this space) for discussion with my project's team. We don't have any working directory to look to for additional context as needed the way that a program might when a command is issued in a terminal, and it seems the room name can serve that purpose well by reducing the cognitive load for the user and, in a very practical sense, by reducing typing effort required by anyone who currently needs to specify project names due to being in multiple projects.
@prattsj commented on Sun Jul 10 2016
...we will eventually have this same toolbelt of commands available from their terminal, so I don't want to go down a path where we're reliant on a chat context for certain information.
A requirement for pulling the project name from the channel a command issued in in Echo and a requirement for cleanly supporting a terminal command line interface aren't mutually exclusive.
I'm just thinking...if we infer project name from the room at all...then it seems safest for the user that we do it this way exclusively. It's not hard to imagine a player on multiple teams accidentally issuing a command meant for one project in the room for another project. Sure, players on multiple teams would then have to switch channels, but that seems easier to me than having to type project names all the time, and when I think about how little effort it requires to switch between, say, the #los
and #player-support
channels in LG slack, I'm not concerned about it at all.
@jeffreywescott commented on Sun Jul 10 2016
The risk of someone making a mistake is much higher when we infer things ... if we force people to be explicit, then they'd have to explicitly type the wrong project to do something wrong. Furthermore, because project names are prefixed with #
, they auto-complete, so the typing to me doesn't seem to be a huge burden.
When you say "do it this way exclusively", do you mean we shouldn't allow them to pass a project name to override it? I don't like this -- I really want the command syntax to remain consistent across different environments -- it's much less cognitive load that way. I imagine that (long term) many commands will be preferable to issue inside of echo
(like /vote
), whereas others will make more sense to do from the terminal (like /review
). But regardless, I don't want the users to have to know different command syntaxes depending on where they are.
I'm okay with having a notion of "context", which in echo
could be the channel that they are in, in the terminal might be the git repo they are in, etc. But context should be able to be overridden. It's kinda like if I'm in a certain directory and I type ls
I get a file list for that directory, but if I do ls /tmp
I get the list of files in /tmp
.
@prattsj commented on Sun Jul 10 2016
Ok. So...project-specific commands should be issued from within a project channel, from which we'll infer project name by default but which can be overridden with an explicit project name param? And an attempt to make a project-specific command outside of a project channel without specifying the project would throw an error?
@jeffreywescott commented on Sun Jul 10 2016
That sounds about right.
Your Rocket.Chat version: (make sure you are running the latest)
@prattsj commented on Tue Aug 02 2016
Fortunately, we won't have to wade in any real Meteor/Rocket.Chat ๐ฉ to get it done. Found sufficient (though unfortunately, undocumented) support already built into RC for sending direct messages through the API.
Setup:
@tannerwelsh commented on Wed Jun 15 2016
When typing just a forward slash, players should see the commands from game-cli
in the list of available commands.
In other words, they shouldn't have to start typing the command in order to see the usage message.
Depends on LearnersGuild/echo-cli#36
As a new user, I would like to quickly know who posted what (even before I memorize everybody's github/username), so that I can feel a part of an actual community and engage with a minimum of frustration.
The best way I can think of is showing the full name on hovering over the username... either in a message window (currently no hover text) or in direct messages (currently hover text is just the username again).
after retreat play-testing
Your Rocket.Chat version: (make sure you are running the latest)
See: LearnersGuild/los#4
Related to #50.
Currently, we're using a sort of hacky solution w/ webhooks to post direct messages through the API.
Ideally, this feature would be supported by a more solid custom API endpoint. Perhaps something like POST /api/lg/messages/@username
.
For @shereefb demo purposes (board meetings, fundraising, etc.)
@prattsj commented on Fri Jul 08 2016
Now that we're up and running in prod (๐), should we set up a shared dev/staging environment?
https://echo-staging.learnersguild.org
@jeffreywescott commented on Fri Jul 08 2016
Let's definitely talk about this. In general, I am 1000% against staging environments as a concept (continuous delivery #ftw -- happy to explain my reasoning), but I am in favor of the idea of getting our development and production environments as sync'ed as possible. IMO, the best approach to this is to Docker-ize our setup. Let's discuss along with the rest of the "non-user-facing" stuff we wanna chat about.
Depends on: LearnersGuild/echo-cli#21
When a user types /stats
, open the correct view in a side panel. The "correct view" depends on whether or not the STAT_NAME
argument is passed. See LearnersGuild/echo-cli#21 for more info.
Your Rocket.Chat version: (make sure you are running the latest)
There are a few places in the code where we're comparing the user's current domain to determine the service URL for game or IDM. We should externalize these URLs into environment variables / configuration somehow.
@tannerwelsh commented on Thu Oct 27 2016
Everybody benefits. Nobody loses. ๐ฐ for the ๐ง
From Echo, issuing the slash command /playbook
will open the side panel with an iframe with location https://playbook.learnersguild.org/.
Bonus points: arguments passed to /playbook
would be passed to the search feature of gitbook, so /playbook stats
would open up https://playbook.learnersguild.org/?q=stats
.
@tannerwelsh commented on Thu Oct 27 2016
Ready for review @LearnersGuild/software
@bundacia commented on Thu Oct 27 2016
LGTM
@tannerwelsh commented on Tue Nov 01 2016
RFI @jeffreywescott
I hit echo-chat
(locally) and attempted a command. I expected an error response, but not one that was related to authentication.
Received the message:
Error: You are not authorized to do that.. Try
--help
for usage.
The game
server had logged the following:
Error getting user from JWT: jwt expired
Logging out and back in resolved the problem, but if the token was expired, I should have been redirected to login again as soon as I attempted to load the chat app.
We have two issues:
Your Rocket.Chat version: (make sure you are running the latest)
We recently had downtime (see LearnersGuild/echo#578) because the redis package upgraded underneath us. This should not happen.
Related to LearnersGuild/echo#214.
If a user's github account is authenticated and their idm user is retrieve but a player account cannot be found in the game service, the user gets stuck at the splash/loading screen. Instead, we should display an error and perhaps direct the user to contact an administrator.
Your Rocket.Chat version: Not important
Summary
We should add a package.json
file and leverage the capabilities of npm when developing and testing echo-chat locally.
Example nice-to-haves:
Automatically update local versions of rocketchat-lg-*
packages and create links:
$ npm run update
Start the app (replacing /learners-guild/start.sh
):
$ npm start
@shereefb commented on Tue Jul 05 2016
During playtesting, I used the "member list" on the channel multiple times to figure out who is part of my project/team. The "show all" link expands the list, but it's limited to 5 by default. That limit should be increased to 10.
For teams size of 4 it's easy to miss the last person on the team.
@shereefb commented on Tue Jul 05 2016
@tannerwelsh assigning to you for UX approval.
From Echo, issuing the slash command /playbook
will open the side panel with an iframe with location https://playbook.learnersguild.org/.
Arguments passed to /playbook
would be passed to the search feature of gitbook, so /playbook stats
would open up https://playbook.learnersguild.org/?q=stats
.
@shereefb commented on Thu Jun 16 2016
The big rocket emoji that shows up when switching between channels
@jeffreywescott commented on Thu Jun 16 2016
Rocket.Chat doesn't (yet) support theming.
As such, to accomplish this, we'd need to:
rocketchat-ui-master
package (e.g., to rocketchat-lg-ui-master
)loading.html
template from the animated SVG to our own loading animationrocketchat-ui-master
with the cloned package in .meteor/packages
and .meteor/versions
It's worth noting that, if we go this route, and changes are made to rocketchat-ui-master
, we will not automatically get them when we merge with upstream. This will be the first "breaking" deviation from RC proper.
@shereefb do we have an animation that you'd like to use for loading, or just anything that's not the rocket for now?
@jeffreywescott commented on Thu Jun 16 2016
A "quick and dirty" hack might be to just make it invisible with custom CSS, as described here: RocketChat#2011
@jeffreywescott commented on Thu Jun 16 2016
I've just done a display: none
on the Rocket for now.
@jeffreywescott commented on Thu Jun 16 2016
@shereefb LMK if this is sufficient for v0
. I'd rather wait for RC to support proper theming before we go hog-wild on interface changes.
@shereefb commented on Fri Jun 17 2016
I think hiding it is an improvement from a branding perspective, and a downgrade from a usability perspective. But I prefer it that way.
Regarding gif, the look and feel we should use the loading screen before redirecting to IDM with our logo and the blue-line.
If this is too much of a PIA for now it's totally fine to punt to V1 and just use the css hack for now. (although, speaking of css hacks, couldn't we css to display another gif?)
@jeffreywescott commented on Fri Jun 17 2016
Okay, I've hidden it for v0
and changed the milestone for this to v1
.
Unfortunately, the best we can do with the CSS hack is to hide the SVG. It's not a GIF, and there's out outer container for the SVG: https://github.com/RocketChat/Rocket.Chat/blob/develop/packages/rocketchat-ui-master/master/loading.html
Consider:
packages
dir of our fork?Typing #
in rocket.chat causes a list of autosuggested channel names to appear. We're able to use this as a hack for getting autosuggest/autocomplete of project names since every project created has a channel with the same name as the project.
However, as time goes on and the number of projects (and therefore channels) increases, this list is going to grow to such a length that it'll negatively impact the user experience.
Is there a way that we can filter out channels for projects that are no longer active? For example, if we were to automatically archive a project's channel on /cycle end
, would that cause it to be excluded from the autosuggest list?
should make things run way faster in development
@deadlyicon commented on Fri Jul 01 2016
i want to hit up in echo (rocket) and see my pervious command. every time. I got some way old command :(
enter a command like /vote 1 2
hit up
you wont see that command
n/a
See: RocketChat#3697
@jeffreywescott commented on Thu May 12 2016
Related: learning-os-software/#43
@shereefb commented on Tue Jul 12 2016
We are missing a learner today, and their team needed to reach out to NeEddra to get his phone number.
Let's make these easily accessible from the echo in the user profile. And ask everyone to fill them out in the welcome message.
@jeffreywescott commented on Thu Jul 14 2016
Related: LearnersGuild/los#29
@shereefb commented on Tue Jul 05 2016
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.