diff --git a/backend/api/views/training.py b/backend/api/views/training.py index 3bb6f2da..10b045d6 100644 --- a/backend/api/views/training.py +++ b/backend/api/views/training.py @@ -211,6 +211,7 @@ def new_train(role): # TODO: Remove this so that it is a job in the background new_train_id = train.id + hub_url = "" if int(role) == Account.MENTOR: recipients = MentorProfile.objects.only("email", "preferred_language") elif int(role) == Account.MENTEE: @@ -219,7 +220,7 @@ def new_train(role): recipients = PartnerProfile.objects.only("email", "preferred_language") else: hub_users = Hub.objects.filter(id=hub_id).only( - "email", "preferred_language" + "email", "preferred_language", "url" ) partners = PartnerProfile.objects.filter(hub_id=hub_id).only( "email", "preferred_language" @@ -227,10 +228,14 @@ def new_train(role): recipients = [] for hub_user in hub_users: recipients.append(hub_user) + if hub_url == "": + hub_url = hub_user.url + "/" for partner_user in partners: recipients.append(partner_user) front_url = request.form["front_url"] - target_url = front_url + "new_training/" + role + "/" + str(new_train_id) + target_url = ( + front_url + hub_url + "new_training/" + role + "/" + str(new_train_id) + ) for recipient in recipients: res, res_msg = send_email( diff --git a/frontend/src/app/App.js b/frontend/src/app/App.js index a70d38e8..1453e567 100644 --- a/frontend/src/app/App.js +++ b/frontend/src/app/App.js @@ -116,7 +116,6 @@ function App() { {role && } {role && } - {role == ACCOUNT_TYPE.HUB && } @@ -356,6 +355,9 @@ function App() { > + + + ); })} @@ -567,6 +569,7 @@ function App() { + {role == ACCOUNT_TYPE.HUB && } diff --git a/frontend/src/components/CreateMeetingLink.js b/frontend/src/components/CreateMeetingLink.js index 024dcf3e..f18744f3 100644 --- a/frontend/src/components/CreateMeetingLink.js +++ b/frontend/src/components/CreateMeetingLink.js @@ -21,14 +21,17 @@ function Meeting() { const copyToClipboard = async () => { try { - if (AppID===""){ + if (AppID === "") { const response = await getToken(); setTimeout(() => { - navigator.clipboard.writeText('https://8x8.vc/' + response.appID + '/' + RoomName); + navigator.clipboard.writeText( + "https://8x8.vc/" + response.appID + "/" + RoomName + ); }, 100); - } - else{ - navigator.clipboard.writeText('https://8x8.vc/' + AppID + '/' + RoomName); + } else { + navigator.clipboard.writeText( + "https://8x8.vc/" + AppID + "/" + RoomName + ); } message.success(t("meeting.copyMessage")); } catch (error) { @@ -172,4 +175,4 @@ function Meeting() { ); } -export default Meeting; \ No newline at end of file +export default Meeting; diff --git a/frontend/src/components/GroupMessageChatArea.js b/frontend/src/components/GroupMessageChatArea.js index 42890860..f510a386 100644 --- a/frontend/src/components/GroupMessageChatArea.js +++ b/frontend/src/components/GroupMessageChatArea.js @@ -133,7 +133,7 @@ function GroupMessageChatArea(props) { ) : (
)} -
+
{messages && messages.map((block) => { diff --git a/frontend/src/components/PrivateRoute.js b/frontend/src/components/PrivateRoute.js index b77c4399..05844517 100644 --- a/frontend/src/components/PrivateRoute.js +++ b/frontend/src/components/PrivateRoute.js @@ -3,6 +3,12 @@ import { Route, Redirect } from "react-router-dom"; import { getRole } from "utils/auth.service"; function PrivateRoute({ children, ...rest }) { + var path = rest.path; + var login_url = "/login"; + if (path.indexOf("/new_training") > 0) { + login_url = "/" + path.split("/")[1]; + } + return ( diff --git a/frontend/src/components/css/Messages.scss b/frontend/src/components/css/Messages.scss index 26db222c..3bb47629 100644 --- a/frontend/src/components/css/Messages.scss +++ b/frontend/src/components/css/Messages.scss @@ -6,6 +6,7 @@ margin-left: auto; margin-right: auto; max-height: 100%; + // height: calc(100% - 50px); } .messages-sidebar-background { @@ -16,7 +17,7 @@ .messages-sidebar { overflow: auto; width: 100%; - height: 80%; + height: calc(100vh - 113px - 90px); padding-bottom: 2%; } @@ -122,9 +123,10 @@ overflow-y: auto; flex: 1; padding: 12px; - max-height: calc( - 100vh - #{($nav-header-height + $footer-gap)} - var(--chat-header-height) - ); + max-height: calc(100vh - #{($nav-header-height + $footer-gap)} - 90px); +} +.group-conversation-content { + max-height: calc(100vh - #{($nav-header-height + $footer-gap)}); } .no-messages { diff --git a/frontend/src/components/css/Navigation.scss b/frontend/src/components/css/Navigation.scss index 68c6e669..c322fc6a 100644 --- a/frontend/src/components/css/Navigation.scss +++ b/frontend/src/components/css/Navigation.scss @@ -26,7 +26,7 @@ .navigation-footer { display: flex; justify-content: end; - position: absolute; + // position: absolute; bottom: 0; right: 0; padding: 5px; diff --git a/frontend/src/components/css/_app.scss b/frontend/src/components/css/_app.scss index 5a12cf82..1d32a3bd 100644 --- a/frontend/src/components/css/_app.scss +++ b/frontend/src/components/css/_app.scss @@ -18,7 +18,7 @@ $appointments-tab-item-selected-color: #fff7e2; // Navigation constants $nav-header-height: 88px; -$footer-gap: 16px; +$footer-gap: 25px; $nav-header-color: #fbecc1; $nav-menu-item-color: White; $nav-menu-item-hover-background-color: #fcf6ea;