[ 
https://issues.apache.org/jira/browse/OPENMEETINGS-2332?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17099610#comment-17099610
 ] 

Konstantin Kuzov edited comment on OPENMEETINGS-2332 at 5/5/20, 8:00 AM:
-------------------------------------------------------------------------

As I previously wrote default.landing.zone is not working for exit from the 
room because the public room list is hardcoded for exit. And even if it worked 
I can see a case when admin would want different pages in case of room exit and 
in case of default landing page after sign-in. So I proposed introduction of 
new setting so they can be set separately.

As for manually editing url IMHO requiring a user to manually edit url is not a 
good sign on behalf of usability. User as well can just be asked to made 
browser bookmarks of all rooms beforehand but that's just ridiculous. 

But I still cannot understand the reasoning against original proposal of 
redirecting user to related room list on room exit. It's IMHO still be more 
logical than the current behaviour.
 Like this:
{code:java}
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
@@ -22,8 +22,11 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REDIRECT_URL_FOR_EXTERNAL;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.isMyRoomsEnabled;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static 
org.apache.openmeetings.web.util.GroupLogoResourceReference.getUrl;
+import static org.apache.openmeetings.web.util.OmUrlFragment.ROOMS_GROUP;
+import static org.apache.openmeetings.web.util.OmUrlFragment.ROOMS_MY;
 import static org.apache.openmeetings.web.util.OmUrlFragment.ROOMS_PUBLIC;

 import java.util.ArrayList;
@@ -247,8 +250,14 @@ public class RoomMenuPanel extends Panel {

        public void exit(IPartialPageRequestHandler handler) {
                cm.exitRoom(room.getClient());
+               final Room r = room.getRoom();
                if (WebSession.getRights().contains(User.Right.DASHBOARD)) {
-                       room.getMainPanel().updateContents(ROOMS_PUBLIC, 
handler);
+                       if (isMyRoomsEnabled() && r != null && r.getOwnerId() 
!= null && r.getOwnerId().equals(getUserId()))
+                               room.getMainPanel().updateContents(ROOMS_MY, 
handler);
+                       else if (r != null && !r.getIspublic())
+                               room.getMainPanel().updateContents(ROOMS_GROUP, 
handler);
+                       else
+                               
room.getMainPanel().updateContents(ROOMS_PUBLIC, handler);
                } else {
                        String url = 
cfgDao.getString(CONFIG_REDIRECT_URL_FOR_EXTERNAL, "");
                        throw new RedirectToUrlException(Strings.isEmpty(url) ? 
getBaseUrl() : url);
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
@@ -80,7 +80,9 @@ public class OmUrlFragment implements Serializable {
        public static final OmUrlFragment PROFILE_EDIT = new 
OmUrlFragment(AreaKeys.profile, TYPE_EDIT);
        public static final OmUrlFragment PROFILE_MESSAGES = new 
OmUrlFragment(AreaKeys.profile, TYPE_MESSAGES);
        public static final OmUrlFragment CALENDAR = new 
OmUrlFragment(AreaKeys.user, TYPE_CALENDAR);
+       public static final OmUrlFragment ROOMS_GROUP = new 
OmUrlFragment(AreaKeys.rooms, TYPE_GROUP);
        public static final OmUrlFragment ROOMS_PUBLIC = new 
OmUrlFragment(AreaKeys.rooms, TYPE_PUBLIC);
+       public static final OmUrlFragment ROOMS_MY = new 
OmUrlFragment(AreaKeys.rooms, TYPE_MY);

        public enum AreaKeys {
                user
{code}
It can be enchanced with some new override setting if we want to provide admin 
with ability to override page to which user will be redirected on exit. But for 
my case it is sufficient.


was (Author: nosferatu):
As I previously wrote default.landing.zone is not working for exit from the 
room because the public room list is hardcoded for exit. And even if it worked 
I can see a case when user want different pages in case of room exit and in 
case of default landing page after sign-in. So I proposed introduction of new 
setting so they can be set separately.

As for manually editing url IMHO requiring a user to manually edit url is not a 
good sign on behalf of usability. User as well can just be asked to made 
browser bookmarks of all rooms beforehand but that's just ridiculous. 

But I still cannot understand the reasoning against original proposal of 
redirecting user to related room list on room exit. It's IMHO still be more 
logical than the current behaviour.
 Like this:
{code:java}
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
@@ -22,8 +22,11 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REDIRECT_URL_FOR_EXTERNAL;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.isMyRoomsEnabled;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static 
org.apache.openmeetings.web.util.GroupLogoResourceReference.getUrl;
+import static org.apache.openmeetings.web.util.OmUrlFragment.ROOMS_GROUP;
+import static org.apache.openmeetings.web.util.OmUrlFragment.ROOMS_MY;
 import static org.apache.openmeetings.web.util.OmUrlFragment.ROOMS_PUBLIC;

 import java.util.ArrayList;
@@ -247,8 +250,14 @@ public class RoomMenuPanel extends Panel {

        public void exit(IPartialPageRequestHandler handler) {
                cm.exitRoom(room.getClient());
+               final Room r = room.getRoom();
                if (WebSession.getRights().contains(User.Right.DASHBOARD)) {
-                       room.getMainPanel().updateContents(ROOMS_PUBLIC, 
handler);
+                       if (isMyRoomsEnabled() && r != null && r.getOwnerId() 
!= null && r.getOwnerId().equals(getUserId()))
+                               room.getMainPanel().updateContents(ROOMS_MY, 
handler);
+                       else if (r != null && !r.getIspublic())
+                               room.getMainPanel().updateContents(ROOMS_GROUP, 
handler);
+                       else
+                               
room.getMainPanel().updateContents(ROOMS_PUBLIC, handler);
                } else {
                        String url = 
cfgDao.getString(CONFIG_REDIRECT_URL_FOR_EXTERNAL, "");
                        throw new RedirectToUrlException(Strings.isEmpty(url) ? 
getBaseUrl() : url);
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
@@ -80,7 +80,9 @@ public class OmUrlFragment implements Serializable {
        public static final OmUrlFragment PROFILE_EDIT = new 
OmUrlFragment(AreaKeys.profile, TYPE_EDIT);
        public static final OmUrlFragment PROFILE_MESSAGES = new 
OmUrlFragment(AreaKeys.profile, TYPE_MESSAGES);
        public static final OmUrlFragment CALENDAR = new 
OmUrlFragment(AreaKeys.user, TYPE_CALENDAR);
+       public static final OmUrlFragment ROOMS_GROUP = new 
OmUrlFragment(AreaKeys.rooms, TYPE_GROUP);
        public static final OmUrlFragment ROOMS_PUBLIC = new 
OmUrlFragment(AreaKeys.rooms, TYPE_PUBLIC);
+       public static final OmUrlFragment ROOMS_MY = new 
OmUrlFragment(AreaKeys.rooms, TYPE_MY);

        public enum AreaKeys {
                user
{code}
It can be enchanced with some new override setting if we want to provide user 
with ability to override page to which user will be redirected on exit. But for 
my case it is sufficient.

> Room exit always redirects to public room list
> ----------------------------------------------
>
>                 Key: OPENMEETINGS-2332
>                 URL: https://issues.apache.org/jira/browse/OPENMEETINGS-2332
>             Project: Openmeetings
>          Issue Type: Bug
>          Components: Room
>    Affects Versions: 5.0.0-M4
>            Reporter: Konstantin Kuzov
>            Assignee: Maxim Solodovnik
>            Priority: Minor
>
> When exiting the room user is always redirected to public room list. Even 
> when user was in private or personal room.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to