Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117768681
D2014.1775235491.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
9 KB
Referenced Files
None
Subscribers
None
D2014.1775235491.diff
View Options
diff --git a/src/app/Utils.php b/src/app/Utils.php
--- a/src/app/Utils.php
+++ b/src/app/Utils.php
@@ -382,10 +382,7 @@
$env['view'] = 'root';
$env['jsapp'] = 'user.js';
- if ($path == 'meet' || strpos($path, 'meet/') === 0) {
- $env['view'] = 'meet';
- $env['jsapp'] = 'meet.js';
- } elseif ($req_domain == "admin.$sys_domain") {
+ if ($req_domain == "admin.$sys_domain") {
$env['jsapp'] = 'admin.js';
}
diff --git a/src/resources/js/meet.js b/src/resources/js/meet.js
deleted file mode 100644
--- a/src/resources/js/meet.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * Application code for the Meet UI
- */
-
-import routes from './routes-meet.js'
-
-window.routes = routes
-window.isAdmin = false
-
-require('./app')
-
-// Register additional icons
-import { library } from '@fortawesome/fontawesome-svg-core'
-
-import {
- faAlignLeft,
- faCompress,
- faDesktop,
- faExpand,
- faMicrophone,
- faPowerOff,
- faUser,
- faShieldAlt,
- faVideo,
- faVolumeMute
-} from '@fortawesome/free-solid-svg-icons'
-
-// Register only these icons we need
-library.add(
- faAlignLeft,
- faCompress,
- faDesktop,
- faExpand,
- faMicrophone,
- faPowerOff,
- faUser,
- faShieldAlt,
- faVideo,
- faVolumeMute
-)
diff --git a/src/resources/js/routes-meet.js b/src/resources/js/routes-meet.js
deleted file mode 100644
--- a/src/resources/js/routes-meet.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import PageComponent from '../vue/Page'
-import LogoutComponent from '../vue/Logout'
-import RoomComponent from '../vue/Meet/Room'
-
-const routes = [
- {
- component: LogoutComponent,
- name: 'logout',
- path: '/logout'
- },
- {
- component: RoomComponent,
- name: 'room',
- path: '/meet/:room'
- },
- {
- component: PageComponent,
- name: '404',
- path: '*'
- }
-]
-
-export default routes
diff --git a/src/resources/js/routes-user.js b/src/resources/js/routes-user.js
--- a/src/resources/js/routes-user.js
+++ b/src/resources/js/routes-user.js
@@ -13,7 +13,26 @@
import UserProfileDeleteComponent from '../vue/User/ProfileDelete'
import WalletComponent from '../vue/Wallet'
+const RoomComponent = () => ({
+ // The component to load (should be a Promise)
+ component: import(/* webpackChunkName: "room" */ '../vue/Meet/Room.vue'),
+ // A component to use while the async component is loading
+ // loading: LoadingComponent,
+ // A component to use if the load fails
+ // error: PageComponent,
+ // Delay before showing the loading component. Default: 200ms.
+ delay: 0,
+ // The error component will be displayed if a timeout is
+ // provided and exceeded. Default: Infinity.
+ // timeout: 3000
+})
+
const routes = [
+ {
+ component: RoomComponent,
+ name: 'room',
+ path: '/meet/:room'
+ },
{
path: '/dashboard',
name: 'dashboard',
diff --git a/src/resources/views/meet.blade.php b/src/resources/views/meet.blade.php
deleted file mode 100644
--- a/src/resources/views/meet.blade.php
+++ /dev/null
@@ -1,10 +0,0 @@
-@extends('layouts.app')
-@section('title', "Meet")
-@section('content')
-<div id="app">
- <menu-component mode="header"></menu-component>
- <app-component></app-component>
- <div class="filler"></div>
- <menu-component mode="footer" footer="{{ config('app.company.footer') }}"></menu-component>
-</div>
-@endsection
diff --git a/src/resources/vue/Meet/Room.vue b/src/resources/vue/Meet/Room.vue
--- a/src/resources/vue/Meet/Room.vue
+++ b/src/resources/vue/Meet/Room.vue
@@ -129,6 +129,36 @@
import LogonForm from '../Login'
import SessionSecurityOptions from './SessionSecurityOptions'
+// Register additional icons
+import { library } from '@fortawesome/fontawesome-svg-core'
+
+import {
+ faAlignLeft,
+ faCompress,
+ faDesktop,
+ faExpand,
+ faMicrophone,
+ faPowerOff,
+ faUser,
+ faShieldAlt,
+ faVideo,
+ faVolumeMute
+} from '@fortawesome/free-solid-svg-icons'
+
+// Register only these icons we need
+library.add(
+ faAlignLeft,
+ faCompress,
+ faDesktop,
+ faExpand,
+ faMicrophone,
+ faPowerOff,
+ faUser,
+ faShieldAlt,
+ faVideo,
+ faVolumeMute
+)
+
let roomRequest
export default {
@@ -372,7 +402,7 @@
// FIXME: Where exactly the user should land? Currently he'll land
// on dashboard (if he's logged in) or login form (if he's not).
- window.location = window.config['app.url']
+ this.$router.push({ name: 'dashboard' })
}).modal()
}
}
@@ -389,7 +419,7 @@
const logout = () => {
this.meet.leaveRoom()
this.meet = null
- window.location = window.config['app.url']
+ this.$router.push({ name: 'dashboard' })
}
if (this.session.owner) {
diff --git a/src/resources/vue/Rooms.vue b/src/resources/vue/Rooms.vue
--- a/src/resources/vue/Rooms.vue
+++ b/src/resources/vue/Rooms.vue
@@ -12,7 +12,7 @@
attendance. Use this URL to invite people to join you.
</p>
<p>
- <a v-if="href" :href="href">{{ href }}</a>
+ <router-link v-if="href" :to="roomRoute">{{ href }}</router-link>
</p>
<p>
This is a work in progress and more features will be added over time. Current features include:
@@ -60,7 +60,8 @@
data() {
return {
rooms: [],
- href: ''
+ href: '',
+ roomRoute: ''
}
},
mounted() {
@@ -77,7 +78,8 @@
this.rooms = response.data.list
if (response.data.count) {
- this.href = window.config['app.url'] + '/meet/' + encodeURI(this.rooms[0].name)
+ this.roomRoute = '/meet/' + encodeURI(this.rooms[0].name)
+ this.href = window.config['app.url'] + this.roomRoute
}
})
.catch(this.$root.errorHandler)
diff --git a/src/resources/vue/Widgets/Menu.vue b/src/resources/vue/Widgets/Menu.vue
--- a/src/resources/vue/Widgets/Menu.vue
+++ b/src/resources/vue/Widgets/Menu.vue
@@ -23,19 +23,17 @@
{{ item.title }}
</router-link>
</li>
- <li class="nav-item" v-if="!loggedIn">
- <router-link v-if="!$root.isAdmin && $root.hasRoute('signup')" class="nav-link link-signup" active-class="active" :to="{name: 'signup'}">Signup</router-link>
- <a v-else class="nav-link link-signup" :href="appUrl + '/signup'">Signup</a>
+ <li class="nav-item" v-if="!loggedIn && !$root.isAdmin">
+ <router-link class="nav-link link-signup" active-class="active" :to="{name: 'signup'}">Signup</router-link>
</li>
<li class="nav-item" v-if="loggedIn">
- <router-link v-if="$root.hasRoute('dashboard')" class="nav-link link-dashboard" active-class="active" :to="{name: 'dashboard'}">Cockpit</router-link>
- <a v-else class="nav-link link-dashboard" :href="appUrl + '/dashboard'">Cockpit</a>
+ <router-link class="nav-link link-dashboard" active-class="active" :to="{name: 'dashboard'}">Cockpit</router-link>
</li>
<li class="nav-item" v-if="loggedIn">
<router-link class="nav-link menulogin link-logout" active-class="active" :to="{name: 'logout'}">Logout</router-link>
</li>
<li class="nav-item" v-if="!loggedIn">
- <a class="nav-link menulogin link-login" :href="appUrl + '/login'">Login</a>
+ <router-link class="nav-link menulogin link-login" :to="{name: 'login'}">Login</router-link>
</li>
</ul>
<div v-if="mode == 'footer'" class="footer">
@@ -57,8 +55,7 @@
return {
appName: window.config['app.name'],
appUrl: window.config['app.url'],
- themeDir: '/themes/' + window.config['app.theme'],
- webmailURL: window.config['app.webmail_url']
+ themeDir: '/themes/' + window.config['app.theme']
}
},
computed: {
diff --git a/src/webpack.mix.js b/src/webpack.mix.js
--- a/src/webpack.mix.js
+++ b/src/webpack.mix.js
@@ -16,7 +16,14 @@
mix.webpackConfig({
output: {
- publicPath: process.env.MIX_ASSET_PATH
+ publicPath: process.env.MIX_ASSET_PATH,
+ chunkFilename: "js/[name].js"
+ },
+ optimization: {
+ splitChunks: {
+ // disable chunking, so I want room.js include the (default) vendor~room.js
+ maxAsyncRequests: 1
+ }
},
resolve: {
alias: {
@@ -27,7 +34,6 @@
mix.js('resources/js/user.js', 'public/js')
.js('resources/js/admin.js', 'public/js')
- .js('resources/js/meet.js', 'public/js')
glob.sync('resources/themes/*/', {}).forEach(fromDir => {
const toDir = fromDir.replace('resources/themes/', 'public/themes/')
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Apr 3, 4:58 PM (10 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18824499
Default Alt Text
D2014.1775235491.diff (9 KB)
Attached To
Mode
D2014: Integrate video chat into app.js (as an async component)
Attached
Detach File
Event Timeline