Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 15 additions & 12 deletions rspack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,19 +40,22 @@ module.exports = defineConfig((env) => {
devtool: isDev ? 'cheap-source-map' : 'source-map',

entry: {
'admin-settings': path.join(__dirname, 'src', 'mainAdminSettings.js'),
collections: path.join(__dirname, 'src', 'collections.js'),
// Main app entry point (path is used by Talk Desktop)
main: path.join(__dirname, 'src', 'main.js'),
recording: path.join(__dirname, 'src', 'mainRecording.js'),
'files-sidebar': path.join(__dirname, 'src', 'mainFilesSidebarLoader.js'),
'public-share-auth-form': path.join(__dirname, 'src', 'publicShareAuthForm.ts'),
'public-share-auth-sidebar': path.join(__dirname, 'src', 'mainPublicShareAuthSidebar.js'),
'public-share-sidebar': path.join(__dirname, 'src', 'mainPublicShareSidebar.js'),
'floating-call': path.join(__dirname, 'src', 'mainFloatingCallTrigger.ts'),
flow: path.join(__dirname, 'src', 'flow.js'),
deck: path.join(__dirname, 'src', 'deck.js'),
maps: path.join(__dirname, 'src', 'maps.js'),
search: path.join(__dirname, 'src', 'search.js'),
'admin-settings': path.join(__dirname, 'src', 'mainAdminSettings.js'),
// Integration apps entry points
collections: path.join(__dirname, 'src', 'integrations', 'collections.js'),
recording: path.join(__dirname, 'src', 'integrations', 'recording.js'),
'files-sidebar': path.join(__dirname, 'src', 'integrations', 'filesSidebarLoader.js'),
'public-share-auth-form': path.join(__dirname, 'src', 'integrations', 'talkPasswordProtectedAuthForm.ts'),
'public-share-auth-sidebar': path.join(__dirname, 'src', 'integrations', 'filesPublicShareAuthSidebar.js'),
'public-share-sidebar': path.join(__dirname, 'src', 'integrations', 'filesPublicShareSidebar.js'),
'floating-call': path.join(__dirname, 'src', 'integrations', 'floatingCallLoader.ts'),
flow: path.join(__dirname, 'src', 'integrations', 'flow.js'),
deck: path.join(__dirname, 'src', 'integrations', 'deck.js'),
maps: path.join(__dirname, 'src', 'integrations', 'maps.js'),
search: path.join(__dirname, 'src', 'integrations', 'search.js'),
// Styles entry point (path is used by Talk Desktop)
icons: path.join(__dirname, 'src', 'icons.css'),
},

Expand Down
28 changes: 14 additions & 14 deletions src/views/AdminSettings.vue → src/AdminSettingsApp.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,23 @@
-->

<script setup lang="ts">
import type { InitialState } from '../types/index.ts'
import type { InitialState } from './types/index.ts'

import { loadState } from '@nextcloud/initial-state'
import { computed, ref } from 'vue'
import AllowedGroups from '../components/AdminSettings/AllowedGroups.vue'
import BotsSettings from '../components/AdminSettings/BotsSettings.vue'
import FederationSettings from '../components/AdminSettings/FederationSettings.vue'
import GeneralSettings from '../components/AdminSettings/GeneralSettings.vue'
import HostedSignalingServer from '../components/AdminSettings/HostedSignalingServer.vue'
import MatterbridgeIntegration from '../components/AdminSettings/MatterbridgeIntegration.vue'
import RecordingServers from '../components/AdminSettings/RecordingServers.vue'
import SignalingServers from '../components/AdminSettings/SignalingServers.vue'
import SIPBridge from '../components/AdminSettings/SIPBridge.vue'
import StunServers from '../components/AdminSettings/StunServers.vue'
import TurnServers from '../components/AdminSettings/TurnServers.vue'
import WebServerSetupChecks from '../components/AdminSettings/WebServerSetupChecks.vue'
import { hasTalkFeature } from '../services/CapabilitiesManager.ts'
import AllowedGroups from './components/AdminSettings/AllowedGroups.vue'
import BotsSettings from './components/AdminSettings/BotsSettings.vue'
import FederationSettings from './components/AdminSettings/FederationSettings.vue'
import GeneralSettings from './components/AdminSettings/GeneralSettings.vue'
import HostedSignalingServer from './components/AdminSettings/HostedSignalingServer.vue'
import MatterbridgeIntegration from './components/AdminSettings/MatterbridgeIntegration.vue'
import RecordingServers from './components/AdminSettings/RecordingServers.vue'
import SignalingServers from './components/AdminSettings/SignalingServers.vue'
import SIPBridge from './components/AdminSettings/SIPBridge.vue'
import StunServers from './components/AdminSettings/StunServers.vue'
import TurnServers from './components/AdminSettings/TurnServers.vue'
import WebServerSetupChecks from './components/AdminSettings/WebServerSetupChecks.vue'
import { hasTalkFeature } from './services/CapabilitiesManager.ts'

const hasValidSubscription = loadState<InitialState['spreed']['has_valid_subscription']>('spreed', 'has_valid_subscription')

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ import NcButton from '@nextcloud/vue/components/NcButton'
import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'
import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'
import NcNoteCard from '@nextcloud/vue/components/NcNoteCard'
import IconTalkApp from '../img/app.svg?raw'
import { getPublicShareAuthConversationToken } from './services/filesIntegrationServices.ts'
import { useTokenStore } from './stores/token.ts'
import { checkBrowser } from './utils/browserCheck.ts'
import IconTalkApp from '../../../img/app.svg?raw'
import { getPublicShareAuthConversationToken } from '../../services/filesIntegrationServices.ts'
import { useTokenStore } from '../../stores/token.ts'
import { checkBrowser } from '../../utils/browserCheck.ts'

const tokenStore = useTokenStore()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,30 +30,30 @@ import { getCurrentUser, getGuestNickname } from '@nextcloud/auth'
import { emit } from '@nextcloud/event-bus'
import { loadState } from '@nextcloud/initial-state'
import { t } from '@nextcloud/l10n'
import CallView from './components/CallView/CallView.vue'
import MediaSettings from './components/MediaSettings/MediaSettings.vue'
import PollManager from './components/PollViewer/PollManager.vue'
import PollViewer from './components/PollViewer/PollViewer.vue'
import InternalSignalingHint from './components/RightSidebar/InternalSignalingHint.vue'
import TopBar from './components/TopBar/TopBar.vue'
import TransitionWrapper from './components/UIShared/TransitionWrapper.vue'
import { useGetMessagesProvider } from './composables/useGetMessages.ts'
import { useHashCheck } from './composables/useHashCheck.js'
import { useRecordingStatusSync } from './composables/useRecordingStatusSync.ts'
import { useSessionIssueHandler } from './composables/useSessionIssueHandler.ts'
import { EventBus } from './services/EventBus.ts'
import CallView from '../../components/CallView/CallView.vue'
import MediaSettings from '../../components/MediaSettings/MediaSettings.vue'
import PollManager from '../../components/PollViewer/PollManager.vue'
import PollViewer from '../../components/PollViewer/PollViewer.vue'
import InternalSignalingHint from '../../components/RightSidebar/InternalSignalingHint.vue'
import TopBar from '../../components/TopBar/TopBar.vue'
import TransitionWrapper from '../../components/UIShared/TransitionWrapper.vue'
import { useGetMessagesProvider } from '../../composables/useGetMessages.ts'
import { useHashCheck } from '../../composables/useHashCheck.js'
import { useRecordingStatusSync } from '../../composables/useRecordingStatusSync.ts'
import { useSessionIssueHandler } from '../../composables/useSessionIssueHandler.ts'
import { EventBus } from '../../services/EventBus.ts'
import {
leaveConversationSync,
setGuestUserName,
} from './services/participantsService.js'
import SessionStorage from './services/SessionStorage.js'
import { useActorStore } from './stores/actor.ts'
import { useTokenStore } from './stores/token.ts'
import { signalingKill } from './utils/webrtc/index.js'
} from '../../services/participantsService.js'
import SessionStorage from '../../services/SessionStorage.js'
import { useActorStore } from '../../stores/actor.ts'
import { useTokenStore } from '../../stores/token.ts'
import { signalingKill } from '../../utils/webrtc/index.js'

export default {

name: 'PublicShareAuthSidebar',
name: 'FilesPublicShareAuthSidebar',

components: {
InternalSignalingHint,
Expand Down Expand Up @@ -217,7 +217,7 @@ export default {
</style>

<style lang="scss" scoped>
@use './assets/variables.scss' as *;
@use '../../assets/variables.scss' as *;

/* Styles based on the NcAppSidebar */
#talk-sidebar {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,33 +43,33 @@ import { loadState } from '@nextcloud/initial-state'
import { t } from '@nextcloud/l10n'
import NcButton from '@nextcloud/vue/components/NcButton'
import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'
import CallFailedDialog from './components/CallView/CallFailedDialog.vue'
import CallView from './components/CallView/CallView.vue'
import MediaSettings from './components/MediaSettings/MediaSettings.vue'
import PollManager from './components/PollViewer/PollManager.vue'
import PollViewer from './components/PollViewer/PollViewer.vue'
import InternalSignalingHint from './components/RightSidebar/InternalSignalingHint.vue'
import CallButton from './components/TopBar/CallButton.vue'
import TopBar from './components/TopBar/TopBar.vue'
import TransitionWrapper from './components/UIShared/TransitionWrapper.vue'
import { useGetMessagesProvider } from './composables/useGetMessages.ts'
import { useHashCheck } from './composables/useHashCheck.js'
import { useIsInCall } from './composables/useIsInCall.js'
import { useRecordingStatusSync } from './composables/useRecordingStatusSync.ts'
import { useSessionIssueHandler } from './composables/useSessionIssueHandler.ts'
import { EventBus } from './services/EventBus.ts'
import { getPublicShareConversationData } from './services/filesIntegrationServices.ts'
import CallFailedDialog from '../../components/CallView/CallFailedDialog.vue'
import CallView from '../../components/CallView/CallView.vue'
import MediaSettings from '../../components/MediaSettings/MediaSettings.vue'
import PollManager from '../../components/PollViewer/PollManager.vue'
import PollViewer from '../../components/PollViewer/PollViewer.vue'
import InternalSignalingHint from '../../components/RightSidebar/InternalSignalingHint.vue'
import CallButton from '../../components/TopBar/CallButton.vue'
import TopBar from '../../components/TopBar/TopBar.vue'
import TransitionWrapper from '../../components/UIShared/TransitionWrapper.vue'
import { useGetMessagesProvider } from '../../composables/useGetMessages.ts'
import { useHashCheck } from '../../composables/useHashCheck.js'
import { useIsInCall } from '../../composables/useIsInCall.js'
import { useRecordingStatusSync } from '../../composables/useRecordingStatusSync.ts'
import { useSessionIssueHandler } from '../../composables/useSessionIssueHandler.ts'
import { EventBus } from '../../services/EventBus.ts'
import { getPublicShareConversationData } from '../../services/filesIntegrationServices.ts'
import {
leaveConversationSync,
} from './services/participantsService.js'
import SessionStorage from './services/SessionStorage.js'
import { useActorStore } from './stores/actor.ts'
import { useTokenStore } from './stores/token.ts'
import { checkBrowser } from './utils/browserCheck.ts'
import { signalingKill } from './utils/webrtc/index.js'
} from '../../services/participantsService.js'
import SessionStorage from '../../services/SessionStorage.js'
import { useActorStore } from '../../stores/actor.ts'
import { useTokenStore } from '../../stores/token.ts'
import { checkBrowser } from '../../utils/browserCheck.ts'
import { signalingKill } from '../../utils/webrtc/index.js'

export default {
name: 'PublicShareSidebar',
name: 'FilesPublicShareSidebar',

components: {
InternalSignalingHint,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@

<script setup lang="ts">
import { onBeforeUnmount } from 'vue'
import CallView from '../components/CallView/CallView.vue'
import TopBar from '../components/TopBar/TopBar.vue'
import { useGetToken } from '../composables/useGetToken.ts'
import { useHashCheck } from '../composables/useHashCheck.js'
import { useSessionIssueHandler } from '../composables/useSessionIssueHandler.ts'
import CallView from '../../components/CallView/CallView.vue'
import TopBar from '../../components/TopBar/TopBar.vue'
import { useGetToken } from '../../composables/useGetToken.ts'
import { useHashCheck } from '../../composables/useHashCheck.js'
import { useSessionIssueHandler } from '../../composables/useSessionIssueHandler.ts'

useHashCheck()

Expand Down Expand Up @@ -84,7 +84,7 @@ header.app-sidebar-header.hidden-by-call > div:not(.talk-sidebar-callview), {
</style>

<style lang="scss" scoped>
@use '../assets/variables.scss' as *;
@use '../../assets/variables.scss' as *;

#call-container {
position: relative;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@

<script>

import CallFailedDialog from '../components/CallView/CallFailedDialog.vue'
import MediaSettings from '../components/MediaSettings/MediaSettings.vue'
import PollManager from '../components/PollViewer/PollManager.vue'
import PollViewer from '../components/PollViewer/PollViewer.vue'
import InternalSignalingHint from '../components/RightSidebar/InternalSignalingHint.vue'
import CallButton from '../components/TopBar/CallButton.vue'
import { useGetMessagesProvider } from '../composables/useGetMessages.ts'
import { useGetToken } from '../composables/useGetToken.ts'
import { useIsInCall } from '../composables/useIsInCall.js'
import CallFailedDialog from '../../components/CallView/CallFailedDialog.vue'
import MediaSettings from '../../components/MediaSettings/MediaSettings.vue'
import PollManager from '../../components/PollViewer/PollManager.vue'
import PollViewer from '../../components/PollViewer/PollViewer.vue'
import InternalSignalingHint from '../../components/RightSidebar/InternalSignalingHint.vue'
import CallButton from '../../components/TopBar/CallButton.vue'
import { useGetMessagesProvider } from '../../composables/useGetMessages.ts'
import { useGetToken } from '../../composables/useGetToken.ts'
import { useIsInCall } from '../../composables/useIsInCall.js'

export default {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'
import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'
import IconMessageOutline from 'vue-material-design-icons/MessageOutline.vue'
import IconShareVariant from 'vue-material-design-icons/ShareVariant.vue'
import IconTalk from '../img/app-dark.svg?raw'
import { getFileConversation } from './services/filesIntegrationServices.ts'
import IconTalk from '../../../img/app-dark.svg?raw'
import { getFileConversation } from '../../services/filesIntegrationServices.ts'

const props = defineProps<{
node: INode
Expand Down Expand Up @@ -114,7 +114,7 @@ async function joinConversation() {
token.value = (await getFileConversation(props.node.fileid!)).data.ocs.data.token || ''
}

import('./mainFilesSidebar.js')
import('./filesSidebar.js')
.then((module) => {
module.mountApp(appContainer.value, props, token.value)
isTalkSidebarMounted.value = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,18 @@
<script>
import { getCurrentUser } from '@nextcloud/auth'
import { loadState } from '@nextcloud/initial-state'
import FilesSidebarCallView from './views/FilesSidebarCallView.vue'
import FilesSidebarChatView from './views/FilesSidebarChatView.vue'
import { useIsInCall } from './composables/useIsInCall.js'
import { useRecordingStatusSync } from './composables/useRecordingStatusSync.ts'
import { useSessionIssueHandler } from './composables/useSessionIssueHandler.ts'
import { EventBus } from './services/EventBus.ts'
import { leaveConversationSync } from './services/participantsService.js'
import SessionStorage from './services/SessionStorage.js'
import { useActorStore } from './stores/actor.ts'
import { useTokenStore } from './stores/token.ts'
import { checkBrowser } from './utils/browserCheck.ts'
import { signalingKill, signalingWebRtcKill } from './utils/webrtc/index.js'
import FilesSidebarCallView from './FilesSidebarCallView.vue'
import FilesSidebarChatView from './FilesSidebarChatView.vue'
import { useIsInCall } from '../../composables/useIsInCall.js'
import { useRecordingStatusSync } from '../../composables/useRecordingStatusSync.ts'
import { useSessionIssueHandler } from '../../composables/useSessionIssueHandler.ts'
import { EventBus } from '../../services/EventBus.ts'
import { leaveConversationSync } from '../../services/participantsService.js'
import SessionStorage from '../../services/SessionStorage.js'
import { useActorStore } from '../../stores/actor.ts'
import { useTokenStore } from '../../stores/token.ts'
import { checkBrowser } from '../../utils/browserCheck.ts'
import { signalingKill, signalingWebRtcKill } from '../../utils/webrtc/index.js'

let fetchCurrentConversationIntervalId

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@

import { createApp } from 'vue'
import FilesSidebarTabApp from './FilesSidebarTabApp.vue'
import { initializeTalk } from './init.js'
import { createMemoryRouter } from './router/router.ts'
import store from './store/index.js'
import pinia from './stores/pinia.ts'
import { createMemoryRouter } from '../../router/router.ts'
import store from '../../store/index.js'
import pinia from '../../stores/pinia.ts'
import { initializeTalk } from '../../utils/init.js'

/**
* Mount a Talk integration app
Expand Down
Loading
Loading