GNOME Bugzilla – Bug 709846
No feedback when connection to server fails
Last modified: 2017-10-28 19:19:21 UTC
When I try to connect to a room on irc.gnome.org it is failing with no feedback. This is what I see in Empathy. What I would rather see is: New room * We connect to the server when the user selects that server in the list of available servers (if not already connected) * Use the list of available channels on the server to help the user select the room * Use the room list to validate the user's entry * Show error messages directly in the dialog * When the Join button is clicked create a new entry in the sidebar and select it. * If any additional setup or connecting needs to occur show it as a notification or infobar in the room's view. Existing room * If showing a room that has already been created and used (from sidebar), we immediately switch to it and display the existing log * If any additional setup or connecting needs to occur show it as a notification or infobar in the room's view.
*** Bug 709893 has been marked as a duplicate of this bug. ***
*** Bug 709985 has been marked as a duplicate of this bug. ***
Created attachment 302362 [details] [review] joinDialog: Connect to server when server is selected patch to adress point 1: "We connect to the server when the user selects that server in the list of available servers (if not already connected)".
Created attachment 302363 [details] [review] joinDialog: Connect to server when server is selected point 1: quick update
Created attachment 302364 [details] [review] [WIP] joinDialog: use channels on server for name Completion proposal for point 2: "Use the list of available channels on the server to help the user select the room" It's all comments, I just wanted to give an insight on what I had in mind for this so far. Am I going in the right direction for this? Also had an idea that point 2 possibly could be extended so that you also have auto completion when writing "/join <room-name>" in chatView maybe.
Created attachment 302989 [details] [review] joinDialog: Use channels on server for name completion with this patch, polari fetches a list of rooms from the currently selected server and appends them to the GtkEntryCompletion object for our 'Room Name' GtkEntry. I also took the liberty to create the function '_appendToComboModel' to reduce code duplication. However, at the moment I am not handling duplicate entries inserted from the log and the server - I don't know if that is worth the trouble?
Review of attachment 302363 [details] [review]: Just like for normal channels, this is already done implicitly when requesting the room list
(In reply to Bastian from comment #6) > I also took the liberty to create the function '_appendToComboModel' to > reduce code duplication. Sure, however ... > However, at the moment I am not handling duplicate > entries inserted from the log and the server - I don't know if that is worth > the trouble? ... the simplest solution here would be to *replace* the history-based completion instead of adding to it - by definition, rooms that are in the history and not the room list are empty, so not too interesting anyway (I have a couple of those that I used for testing at one point or another, but I still don't see the usefulness)
Created attachment 303956 [details] [review] joinDialog: Use channels on server for name completion proof-of-concept / wip. I'm battling a few remaining issues: * There is a significant delay between connecting to freenode and fetching its roomlist. The join dialog is not indiciating anything within those 10 seconds. * If you open the join Dialog fast twice (before it manages to connect for the first time), then you break fetching the roomlist.. not sure what to do here. * I have some problems aligning the text 'loading roomlist' label with the spinner. The GtkBox for the spinner seem to get unnecessarily wide enough to push the GtkLabel to the right.
On large networks, fetching the channel list would take a lot of time. Additionally, users might want to join hidden channels (you can set a special flag on your IRC channel to make it hidden from the channel list). Using the list to "validate" the channel input would mean users won't be able to join hidden channel or create new channel.
(In reply to William Jon McCann from comment #0) > * Show error messages directly in the dialog I created the following branch do adress this: https://git.gnome.org/browse/polari/log/?h=wip/bastianilso/error-handling The branch is documented at: https://blogs.gnome.org/bastian/2015/08/02/error-handling-in-polari/ Will get back to the join dialog later.
Created attachment 309221 [details] [review] app: Don't treat network unavailability as app error If we receive a disconnect error and the network is unavailable, then the error is not specific to Polari.
Created attachment 309222 [details] [review] app: Always save channels requested by the user When the user joins a room it makes sense to also join it next time polari is started, even if the room was never successfully connected to.
Created attachment 309223 [details] [review] Indicate server status in the roomList instead Instead of displaying notifications when connecting to a server, use less attention grabbing status indicators in the roomlist for displaying status of the servers individually.
Created attachment 309224 [details] [review] ConnectionDetails: higlight entry and display error When a error requires the user to edit the details of the connection, guide the user to the errornous entry using a higlight and display a detailed description of the network error in the bottom.
(In reply to Bastian Ilsø from comment #9) > Created attachment 303956 [details] [review] [review] > joinDialog: Use channels on server for name completion This patch has been obsoleted by including the channel list in the join dialog itself. As the other patches have landed, I think we can consider this fixed.