Page MenuHomePhorge

D2305.1775250182.diff
No OneTemporary

Authored By
Unknown
Size
10 KB
Referenced Files
None
Subscribers
None

D2305.1775250182.diff

diff --git a/src/resources/js/app.js b/src/resources/js/app.js
--- a/src/resources/js/app.js
+++ b/src/resources/js/app.js
@@ -78,7 +78,10 @@
router: window.router,
data() {
return {
- isAdmin: window.isAdmin
+ isAdmin: window.isAdmin,
+ appName: window.config['app.name'],
+ appUrl: window.config['app.url'],
+ themeDir: '/themes/' + window.config['app.theme']
}
},
methods: {
@@ -161,6 +164,11 @@
clearTimeout(this.refreshTimeout)
},
+ logo(mode) {
+ let src = this.appUrl + this.themeDir + '/images/logo_' + (mode || 'header') + '.png'
+
+ return `<img src="${src}" alt="${this.appName}">`
+ },
// Display "loading" overlay inside of the specified element
addLoader(elem) {
$(elem).css({position: 'relative'}).append($(loader).addClass('small'))
diff --git a/src/resources/themes/meet.scss b/src/resources/themes/meet.scss
--- a/src/resources/themes/meet.scss
+++ b/src/resources/themes/meet.scss
@@ -154,6 +154,10 @@
#meet-component {
overflow: hidden;
}
+
+ nav.navbar {
+ display: none;
+ }
}
#meet-setup {
@@ -172,6 +176,10 @@
}
#meet-session-menu {
+ background: #f6f5f3;
+ border-radius: 0 2em 2em 0;
+ margin: 0.25em 0;
+
button {
font-size: 1.3em;
padding: 0 0.25em;
@@ -190,6 +198,20 @@
}
}
+#meet-session-logo {
+ background: #e9e7e2;
+ border-radius: 2em 0 0 2em;
+ margin: 0.25em 0;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+
+ img {
+ height: 1.25em;
+ padding: 0 1.5em;
+ }
+}
+
#meet-session-layout {
flex: 1;
overflow: hidden;
@@ -384,3 +406,31 @@
flex: 1;
}
}
+
+@include media-breakpoint-down(sm) {
+ #meet-session-logo {
+ display: none;
+ }
+
+ #meet-session-menu {
+ background: transparent;
+ }
+
+ #app.meet {
+ #footer-menu {
+ display: block !important;
+ height: 2em;
+ padding: 0;
+
+ .navbar-brand {
+ padding: 0;
+ margin: 0;
+ }
+
+ img {
+ width: auto !important;
+ height: 1em;
+ }
+ }
+ }
+}
diff --git a/src/resources/vue/Domain/Info.vue b/src/resources/vue/Domain/Info.vue
--- a/src/resources/vue/Domain/Info.vue
+++ b/src/resources/vue/Domain/Info.vue
@@ -23,7 +23,7 @@
<div class="card-body">
<div class="card-title">Domain configuration</div>
<div class="card-text">
- <p>In order to let {{ app_name }} receive email traffic for your domain you need to adjust
+ <p>In order to let {{ $root.appName }} receive email traffic for your domain you need to adjust
the DNS settings, more precisely the MX entries, accordingly.</p>
<p>Edit your domain's zone file and replace existing MX
entries with the following values: <pre>{{ domain.config.join("\n") }}</pre></p>
@@ -47,7 +47,6 @@
return {
domain_id: null,
domain: null,
- app_name: window.config['app.name'],
status: {}
}
},
diff --git a/src/resources/vue/Login.vue b/src/resources/vue/Login.vue
--- a/src/resources/vue/Login.vue
+++ b/src/resources/vue/Login.vue
@@ -56,7 +56,6 @@
},
data() {
return {
- app_url: window.config['app.url'],
email: '',
password: '',
secondFactor: '',
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
@@ -1,6 +1,7 @@
<template>
<div id="meet-component">
<div id="meet-session-toolbar" class="hidden">
+ <span id="meet-session-logo" v-html="$root.logo()"></span>
<div id="meet-session-menu">
<button class="btn btn-link link-audio" @click="switchSound" :disabled="!isPublisher()" title="Mute audio">
<svg-icon icon="microphone"></svg-icon>
@@ -283,6 +284,8 @@
beforeDestroy() {
clearTimeout(roomRequest)
+ $('#app').removeClass('meet')
+
if (this.meet) {
this.meet.leaveRoom()
}
diff --git a/src/resources/vue/User/ProfileDelete.vue b/src/resources/vue/User/ProfileDelete.vue
--- a/src/resources/vue/User/ProfileDelete.vue
+++ b/src/resources/vue/User/ProfileDelete.vue
@@ -14,7 +14,7 @@
for a few words about your reasons for leaving our service. Please send your feedback
to <a :href="'mailto:' + supportEmail">{{ supportEmail }}</a>.
</p>
- <p>Also feel free to contact {{ appName }} Support with any questions
+ <p>Also feel free to contact {{ $root.appName }} Support with any questions
or concerns that you may have in this context.</p>
<button class="btn btn-secondary button-cancel" @click="$router.go(-1)">Cancel</button>
<button class="btn btn-danger button-delete" @click="deleteProfile">
@@ -30,7 +30,6 @@
export default {
data() {
return {
- appName: window.config['app.name'],
supportEmail: window.config['app.support_email']
}
},
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
@@ -1,9 +1,7 @@
<template>
<nav :id="mode + '-menu'" class="navbar navbar-expand-lg navbar-light">
<div class="container">
- <router-link class="navbar-brand" to="/">
- <img :src="appUrl + themeDir + '/images/logo_' + mode + '.png'" :alt="appName">
- </router-link>
+ <router-link class="navbar-brand" to="/" v-html="$root.logo(mode)"></router-link>
<button v-if="mode == 'header'" class="navbar-toggler" type="button"
data-toggle="collapse" :data-target="'#' + mode + '-menu-navbar'"
aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation"
@@ -51,13 +49,6 @@
mode: { type: String, default: 'header' },
footer: { type: String, default: '' }
},
- data() {
- return {
- appName: window.config['app.name'],
- appUrl: window.config['app.url'],
- themeDir: '/themes/' + window.config['app.theme']
- }
- },
computed: {
loggedIn() { return this.$store.state.isLoggedIn },
route() { return this.$route.name }
diff --git a/src/tests/Browser/Components/Menu.php b/src/tests/Browser/Components/Menu.php
--- a/src/tests/Browser/Components/Menu.php
+++ b/src/tests/Browser/Components/Menu.php
@@ -53,7 +53,7 @@
public function assertMenuItems($browser, array $items, string $active = null)
{
// On mobile the links are not visible, show them first (wait for transition)
- if ($browser->isPhone()) {
+ if (!$browser->isDesktop()) {
$browser->click('@toggler')->waitFor('.navbar-collapse.show');
}
@@ -68,7 +68,7 @@
$browser->assertPresent(".link-{$active}.active");
}
- if ($browser->isPhone()) {
+ if (!$browser->isDesktop()) {
$browser->click('@toggler')->waitUntilMissing('.navbar-collapse.show');
}
}
diff --git a/src/tests/Browser/Meet/RoomSetupTest.php b/src/tests/Browser/Meet/RoomSetupTest.php
--- a/src/tests/Browser/Meet/RoomSetupTest.php
+++ b/src/tests/Browser/Meet/RoomSetupTest.php
@@ -149,7 +149,17 @@
->assertVisible('@login-form')
->submitLogon('john@kolab.org', 'simple123')
->waitFor('@setup-form')
- ->assertMissing('@login-form')
+ ->within(new Menu(), function ($browser) {
+ $browser->assertMenuItems(['explore', 'blog', 'support', 'dashboard', 'logout']);
+ });
+
+ if ($browser->isDesktop()) {
+ $browser->within(new Menu('footer'), function ($browser) {
+ $browser->assertMenuItems(['explore', 'blog', 'support', 'tos', 'dashboard', 'logout']);
+ });
+ }
+
+ $browser->assertMissing('@login-form')
->waitUntilMissing('@setup-status-message.loading')
->waitFor('@setup-status-message')
->assertSeeIn('@setup-status-message', "The room is closed. It will be open for others after you join.")
@@ -170,14 +180,12 @@
->assertMissing('.status .status-audio')
->assertMissing('.status .status-video');
})
- ->within(new Menu(), function ($browser) {
- $browser->assertMenuItems(['explore', 'blog', 'support', 'dashboard', 'logout']);
- });
+ ->assertMissing('#header-menu');
- if ($browser->isDesktop()) {
- $browser->within(new Menu('footer'), function ($browser) {
- $browser->assertMenuItems(['explore', 'blog', 'support', 'tos', 'dashboard', 'logout']);
- });
+ if (!$browser->isPhone()) {
+ $browser->assertMissing('#footer-menu');
+ } else {
+ $browser->assertVisible('#footer-menu');
}
// After the owner "opened the room" guest should be able to join
@@ -205,16 +213,7 @@
->assertMissing('.status .status-audio')
->assertMissing('.status .status-video');
})
- ->assertElementsCount('@session div.meet-video', 2)
- ->within(new Menu(), function ($browser) {
- $browser->assertMenuItems(['explore', 'blog', 'support', 'signup', 'login']);
- });
-
- if ($guest->isDesktop()) {
- $guest->within(new Menu('footer'), function ($browser) {
- $browser->assertMenuItems(['explore', 'blog', 'support', 'tos', 'signup', 'login']);
- });
- }
+ ->assertElementsCount('@session div.meet-video', 2);
// Check guest's elements in the owner's window
$browser
@@ -233,7 +232,8 @@
// Guest is leaving
$guest->click('@menu button.link-logout')
- ->waitForLocation('/login');
+ ->waitForLocation('/login')
+ ->assertVisible('#header-menu');
// Expect the participant removed from other users windows
$browser->waitUntilMissing('@session div.meet-video:not(.self)');

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 3, 9:03 PM (20 h, 20 m ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18824799
Default Alt Text
D2305.1775250182.diff (10 KB)

Event Timeline