diff --git a/backend/.gitignore b/backend/.gitignore index 14422bd..11f8a4f 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -1,4 +1,3 @@ .stack-work/ *~ dist-newstyle -result diff --git a/backend/converted.nix b/backend/converted.nix deleted file mode 100644 index 584d831..0000000 --- a/backend/converted.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ mkDerivation -, aeson -, base -, bytestring -, classy-prelude -, http-types -, lib -, lifted-base -, mtl -, text -, uuid -, wai -, warp -, websockets -}: -mkDerivation { - pname = "jitsi-rooms"; - version = "0.1.0.0"; - src = ./.; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson - base - bytestring - classy-prelude - http-types - lifted-base - mtl - text - uuid - wai - warp - websockets - ]; - executableHaskellDepends = [ - aeson - base - bytestring - classy-prelude - http-types - lifted-base - mtl - text - uuid - wai - warp - websockets - ]; - homepage = "https://github.com/githubuser/jitsi-rooms#readme"; - license = lib.licenses.bsd3; - mainProgram = "jitsi-rooms-exe"; - enableSharedExecutables = false; - postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc"; -} diff --git a/backend/default.nix b/backend/default.nix deleted file mode 100644 index 6492594..0000000 --- a/backend/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -let - config = { - packageOverrides = pkgs: rec { - haskellPackages = pkgs.haskellPackages.override { - overrides = haskellPackagesNew: haskellPackagesOld: rec { - jitsi-rooms = - haskellPackagesNew.callPackage ./converted.nix { }; - }; - }; - }; - }; - pkgs = import { inherit config; }; - - -in -pkgs.dockerTools.buildImage { - name = "jitsi-rooms"; - tag = "latest"; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - paths = [ - pkgs.bash - pkgs.coreutils - ]; - pathsToLink = [ "/bin" ]; - }; - config = { - Cmd = [ "${pkgs.haskellPackages.jitsi-rooms}/bin/jitsi-rooms-exe" ]; - ExposedPorts = { - "9160/tcp" = { }; - "8081/tcp" = { }; - }; - }; -} diff --git a/backend/deploy.sh b/backend/deploy.sh deleted file mode 100755 index fc69a4e..0000000 --- a/backend/deploy.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -nix-build - -scp ./result ffs:/home/ffsys/jitsi-rooms-docker-image diff --git a/backend/jitsi-rooms.cabal b/backend/jitsi-rooms.cabal index e789efa..8b8d6d1 100644 --- a/backend/jitsi-rooms.cabal +++ b/backend/jitsi-rooms.cabal @@ -91,3 +91,28 @@ executable jitsi-rooms-exe , websockets default-language: Haskell2010 +test-suite jitsi-rooms-test + type: exitcode-stdio-1.0 + main-is: Spec.hs + other-modules: + Paths_jitsi_rooms + hs-source-dirs: + test + default-extensions: + NoImplicitPrelude,OverloadedStrings,ImportQualifiedPost + ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N + build-depends: + aeson + , base >=4.7 && <5 + , bytestring + , classy-prelude + , http-types + , jitsi-rooms + , lifted-base + , mtl + , text + , uuid + , wai + , warp + , websockets + default-language: Haskell2010 diff --git a/backend/src/WebSocket/MonadWebSocketSession.hs b/backend/src/WebSocket/MonadWebSocketSession.hs index 7893af5..68b57f6 100644 --- a/backend/src/WebSocket/MonadWebSocketSession.hs +++ b/backend/src/WebSocket/MonadWebSocketSession.hs @@ -6,7 +6,6 @@ module WebSocket.MonadWebSocketSession ) where -import BroadcastUserData (MonadBroadcast, broadcastUserData) import ClassyPrelude import Data.Aeson ( FromJSON, @@ -17,7 +16,6 @@ import State.ConnectedClientsState ( MonadConnectedClientsModify, removeWSClient, ) -import State.RoomDataState (MonadRoomDataStateRead) import Types.ConnectionState (Client (..)) import Types.WebSocketMessages.WebSocketMessages (SetClientInfo (..)) import WebSocket.Messages @@ -58,12 +56,9 @@ newClientGeneric clientInfo = do disconnectWsClient :: ( MonadConnectedClientsModify m, - MonadRoomDataStateRead m, - MonadBroadcast m, MonadWebSocketSession m ) => m () disconnectWsClient = do clientId <- getSesssionId removeWSClient clientId - broadcastUserData diff --git a/backend/src/WebSocket/Server.hs b/backend/src/WebSocket/Server.hs index 666a8e0..cafd046 100644 --- a/backend/src/WebSocket/Server.hs +++ b/backend/src/WebSocket/Server.hs @@ -18,9 +18,9 @@ runWebSocketServer :: ) => m () runWebSocketServer = do - putStrLn "Websocket up at 0.0.0.0:9160" + putStrLn "Websocket up at 127.0.0.1:9160" wsApp' <- runWSApp - liftIO $ WS.runServer "0.0.0.0" 9160 wsApp' + liftIO $ WS.runServer "127.0.0.1" 9160 wsApp' runWSApp :: ( MonadIO m, diff --git a/frontend/deploy.sh b/frontend/deploy.sh deleted file mode 100755 index 45ee4f6..0000000 --- a/frontend/deploy.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env sh - - -yarn build -scp -r dist/* ffs:/home/ffsys/apps/static/jitsi-rooms diff --git a/frontend/dev-with-remote-backend.sh b/frontend/dev-with-remote-backend.sh deleted file mode 100644 index b5f736e..0000000 --- a/frontend/dev-with-remote-backend.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh - - -ssh -L 9160:localhost:9160 ffs diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 5901c6c..f21b806 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,42 +1,28 @@ -import { useState } from "react"; import "./App.css"; import Meeting from "./components/meeting/Meeting"; import Sidebar from "./components/sidebar/Sidebar"; import useBackendData from "./hooks/useBackendData"; import useConferenceData from "./hooks/useConferenceData"; import useLocalUser from "./hooks/useLocalUser"; -import { useRoomName } from "./hooks/useRoomName"; function App() { const { userInfo, setUserInfo } = useLocalUser(); - const { roomName, updateRoomName, updateAndSubmitRoomName, submitRoomName } = useRoomName(); const { roomData, sendMessage } = useBackendData(userInfo); const { conferenceData, setConferenceData } = useConferenceData( sendMessage, setUserInfo ); - const [meetingStarted, setMeetingStarted] = useState(false); console.log(roomData); if (roomData && userInfo) { return (
- { - updateAndSubmitRoomName(roomName) - setMeetingStarted(true) - }} - /> +
); diff --git a/frontend/src/background/constants.ts b/frontend/src/background/constants.ts index e0f8da1..01ea4ca 100644 --- a/frontend/src/background/constants.ts +++ b/frontend/src/background/constants.ts @@ -1,5 +1,7 @@ const ISPROD = window.location.protocol == "https:"; -const JITSI_DOMAIN = "thisisnotajitsi.filefighter.de"; +const JITSI_DOMAIN = ISPROD + ? "thisisnotajitsi.filefighter.de" + : "localhost:8443"; const WEBSOCKET_URL = "ws" + (ISPROD ? "s" : "") + diff --git a/frontend/src/components/meeting/Meeting.tsx b/frontend/src/components/meeting/Meeting.tsx index f767894..e6cb556 100644 --- a/frontend/src/components/meeting/Meeting.tsx +++ b/frontend/src/components/meeting/Meeting.tsx @@ -9,12 +9,11 @@ interface Props { conferenceData: ConferenceData | undefined; setConferenceData: (newData: ConferenceData) => void; userInfo: UserInfo; - //@ts-ignore - roomName, updateRoomName, submitRoomName - meetingStarted: Boolean, setMeetingStarted: Function } -function Meeting({ conferenceData, setConferenceData, userInfo, roomName, updateRoomName, submitRoomName, meetingStarted, setMeetingStarted }: Props) { +function Meeting({ conferenceData, setConferenceData, userInfo }: Props) { + const { roomName, updateRoomName, submitRoomName } = useRoomName(); + const [meetingStarted, setMeetingStarted] = useState(false); const startMeeting = useCallback(() => { submitRoomName(); diff --git a/frontend/src/components/sidebar/Sidebar.tsx b/frontend/src/components/sidebar/Sidebar.tsx index 17d5414..7e2479d 100644 --- a/frontend/src/components/sidebar/Sidebar.tsx +++ b/frontend/src/components/sidebar/Sidebar.tsx @@ -5,7 +5,6 @@ import { UsersData } from "../../background/types/roomData"; interface Props { usersData: UsersData; - updateAndSubmitRoomName: Function } function Sidebar(props: Props) { @@ -15,17 +14,17 @@ function Sidebar(props: Props) { return (
+
+

No room

+ {props.usersData.usersWithOutRoom.map((username) => ( +
{username}
+ ))} +
{props.usersData.roomsData.map((roomData) => { return ( <> -

- { - props.updateAndSubmitRoomName(roomData.roomName) - }}> - {roomData.roomName} - -

+

{roomData.roomName}

{roomData.participants.map((participant) => (
{participant.displayName}
))} @@ -33,12 +32,6 @@ function Sidebar(props: Props) { ); })}
-
-

No room

- {props.usersData.usersWithOutRoom.map((username) => ( -
{username}
- ))} -
diff --git a/frontend/src/hooks/useRoomName.ts b/frontend/src/hooks/useRoomName.ts index 1639237..2e352d9 100644 --- a/frontend/src/hooks/useRoomName.ts +++ b/frontend/src/hooks/useRoomName.ts @@ -11,22 +11,12 @@ function useRoomName() { [setRoomName] ); - const updateAndSubmitRoomName = useCallback( - (newName: string) => { - setRoomName(newName); - setRoomNameInUrl(newName); - setRoomNameInTitle(newName); - console.log("[Rooms] update and submit room name", newName); - }, - [setRoomName] - ) - const submitRoomName = useCallback(() => { setRoomNameInUrl(roomName); setRoomNameInTitle(roomName); }, [roomName]); - return { roomName, updateRoomName, updateAndSubmitRoomName, submitRoomName }; + return { roomName, updateRoomName, submitRoomName }; } function getRoomNameFromUrl(): string { diff --git a/prodsody/.env b/prodsody/.env index 790549b..0154b4c 100644 --- a/prodsody/.env +++ b/prodsody/.env @@ -211,7 +211,7 @@ JIBRI_XMPP_PASSWORD=662f13288a07ca64afb4b9b97b4feed6 # # Container restart policy -RESTART_POLICY=no +#RESTART_POLICY=unless-stopped # Jitsi image version (useful for local development) #JITSI_IMAGE_VERSION=latest diff --git a/prodsody/docker-compose.yml b/prodsody/docker-compose.yml index 08feefc..e9b2d49 100644 --- a/prodsody/docker-compose.yml +++ b/prodsody/docker-compose.yml @@ -346,15 +346,6 @@ services: networks: meet.jitsi: - jitsi-rooms: - image: jitsi-rooms:67y5d9y2zbi7wkqm2jpcjj1k2614qwx2 - restart: ${RESTART_POLICY:-unless-stopped} - ports: - - '9160:9160' - networks: - meet.jitsi: - - # Custom network so all services can communicate using a FQDN networks: meet.jitsi: