-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for multiple HumHub Sites #79
Comments
Maybe, in a first time, we could save the previously URLs entered in the form, and show them as a suggestion to avoid having to type the hole URL each time we switch instance? And if we can go back to the instance URL form without login out, we could switch instance quite easily. Of course, it's not perfect, mainly for notifications, but if it's simple to develop it can help the time beeing. |
Hey @marc-farre, as you suggested, I've prepared a quick demo. Users can switch between instances using a dropdown list in the TextFormField. When they are connected to an instance, a swipe gesture on the WebView will reveal a back button for quick navigation back to the opener. Reconnecting to logged-in instances is instantaneous (current session inside WebView). Push notifications are configured per instance, so there's no problem here, and the redirect should continue to work. My concern is only how we can indicate to users that this exists, considering the hidden nature of the back button. Screen.Recording.2023-11-11.at.18.04.10.mov@luke- any thoughts? |
@PrimozRatej Thanks! That's awesome! Maybe it will solve #139 ? Perhaps we could add an entry in the account menu, next to the "Logout" entry, called something like "Return to form URL"? Another idea: adding a "Clear" button on the URL form to quickly remove the current URL and access to the URLs dropdown list? |
@marc-farre I like the idea of offering an additional menu item "Back to app" or similar when using the app. We can recognize and display this. But then we have to somehow collect currently logged in HumHub instances and offer a logout (clear) option. |
Hey @luke - we could use the JS channels for this and a custom app header, as you mentioned, and the logic will stay on the web side, I like the idea here. Regarding saving currently logged-in instances, I don't think that would be necessary. Instead, we can simply save the instances that the user has ever connected to, not necessarily logged in. If the issue you see involves push notifications (those will be sent to the user if the user hasn't logged out of a particular instance), when the user clicks on a specific push notification, they will be redirected to that instance, and then they can log out. We can save the connected instances on the mobile device itself in local storage. |
@PrimozRatej Do I understand correctly that we only save the instances that have ever been entered? But the user is only logged in to one installation at a time and should therefore only receive push notifications from this one. Later, we can expand the feature to allow multiple "Logged In" instances in parallel, including push notifications. |
@PrimozRatej Do you plan to release this new feature? It would be very useful! Thanks! |
@marc-farre We should definitely get push notifications for one site to work reliably first. Before we start with multi-site support :-) |
Hey @marc-farre, @luke-, do you think now is the time to support this feature? |
@PrimozRatej I would say we must focus on:
@luke- ? |
I think that with multi HumHub support, we have a clear argument in favour of apple app approval. Here is a mockup masterpiece of how I would see this feature.
What you think? Should we focus on this topic? (After Branded Apps.) |
If it helps for the Apple store and it's not too much work developing it, then yes of course, it would be great to have. For the UX experience, I feel like it's not intuitive to switch from an instance to another. |
Perhaps we can find another feature that is quicker and easier to implement.
|
@luke- I would suggest to position Above |
@Eladnarlea I would prefer above Log Out |
I share with you how https://www.mightynetworks.com allows switching instances on their mobile app. |
@PrimozRatej I have sent you a pm via Element to discuss possibilities of UI elements to use. After your validation I would post it to this issue. |
Please find the suggested design solution below. The idea:
@PrimozRatej I know that I already asked you if it was possible to display the fav-icon. But do you maybe know whether you can also show the logo of the network in the app preview? I guess so, but please confirm :) Screen.Recording.2024-08-14.at.9.59.21.AM.mov |
@Eladnarlea, I can access the favicon through https://community.humhub.com/manifest.json. I assume the network's logo is different, so I think we would need to add it to the manifest or make it accessible through some kind of open API. |
@Eladnarlea, there's no need. If there are any changes, we can address them in the second iteration. |
@PrimozRatej In older versions, once logged in to a HumHub instance, it was possible to display the app homepage form (to enter another HumHub instance) URL, by swiping right from the left edge (or clicking on the Android return button). |
This is the current impl. https://github.com/user-attachments/assets/af215d4a-0658-43ff-a278-4d40e25931c3 The idea I had here is to implement a JS channel, similar to what we did for To allow the user to stay logged in while still switching between instances, we would need a 'Switch Instance' button. I was thinking this could be placed in the menu. When this is clicked, the JS channel NOTE: To maintain backward compatibility, we do not want to show this button to users with an older version of the mobile app that does not yet support 'Multiple HumHub Sites.' For this, I can add a custom header |
I think that's perfect. The @luke- do you approve the idea? Do we keep |
Ah, I forgot about white-labeled apps. I think we should support a "Switch Instance" button on all instances, including white-labeled ones. This is because in case users use both the opener app and white-labeled app for same instance. For white-labeled apps, we can add an additional header:
I think |
A thought on
|
@luke- Yes, that sounds good. We had a discussion with @PrimozRatej about the For the |
Ok. By the way, we already have detection for whitelabel apps via https://github.com/humhub/fcm-push/blob/master/helpers/MobileAppHelper.php#L66-L80 |
I think we should leave the isHideOpener state as it is. This state determines whether the app should navigate using the WebView or the native opener screen. If we remove it, navigation back to the native opener screen when the user logs out would no longer work. Also, if the user was using a particular instance before closing the app, it should reopen to the last used instance when launched again if we don't track the state we can't do this.
I completely forgot about this. Maybe we could use the existing What do you think @luke- ? |
I think we should allow White Labelled mobile apps having multiple instances. |
Ok, then let's keep the
That's right, actually we could already implement the button using the existing JS channel. As soon we detect the @marc-farre Can you implement this in FCM Push? |
Good point. But this is something for the future. So we should not completly remove it. |
Yes. |
@luke- @PrimozRatej PR humhub/fcm-push#60 I have renamed |
Looks good for me. Probably we'll rename the link in the next time. But for now it's fine. Let me know when i should merge and release a new verison. |
@luke- Primoz is currently testing it on an instance of mine. We'll let you know when it's OK to merge. |
@Eladnarlea Shouldn't we have the same button hight? |
@luke- PR humhub/fcm-push#60 is now ready and tested. I had to change quite a few things:
Can you review this please? humhub/fcm-push#60 (comment) |
@marc-farre Thanks. Looks good for me, but I'm not tested it. Just looked over the source. Btw: I'm also not that happy with my original implementation using the session variables (etc.). But I can't actually think of a better solution here. Maybe we should revise this again at a later date. The code is currently very difficult to debug/understand. (Set session var, new request, check if, ...) |
@marc-farre, @luke- In this PR, some major changes were introduced regarding the opener page. I am attaching the APK file so that it can be tested internally before we push it to production. demo_video.mov |
I've only seen the video and haven't tested it myself, but it looks really good! That will be a really great feature! Should @mbumpalumpa take a look regarding design? |
Yes, @mbumpalumpa if you can advise if the button heights are fine or if they should be the same on the same row (for the "Add Network" button, and when the button name takes 2 lines)? |
No description provided.
The text was updated successfully, but these errors were encountered: