Changeset View
Changeset View
Standalone View
Standalone View
src/resources/vue/Meet/Room.vue
Show All 29 Lines | <div id="meet-component"> | ||||
<svg-icon icon="align-left"></svg-icon> | <svg-icon icon="align-left"></svg-icon> | ||||
</button> | </button> | ||||
<button class="btn btn-link link-fullscreen closed hidden" @click="switchFullscreen" title="Full screen"> | <button class="btn btn-link link-fullscreen closed hidden" @click="switchFullscreen" title="Full screen"> | ||||
<svg-icon icon="expand"></svg-icon> | <svg-icon icon="expand"></svg-icon> | ||||
</button> | </button> | ||||
<button class="btn btn-link link-fullscreen open hidden" @click="switchFullscreen" title="Full screen"> | <button class="btn btn-link link-fullscreen open hidden" @click="switchFullscreen" title="Full screen"> | ||||
<svg-icon icon="compress"></svg-icon> | <svg-icon icon="compress"></svg-icon> | ||||
</button> | </button> | ||||
<button class="btn btn-link link-security" v-if="isRoomOwner()" @click="securityOptions" title="Security options"> | <button class="btn btn-link link-options" v-if="isRoomOwner()" @click="roomOptions" title="Room options"> | ||||
<svg-icon icon="shield-alt"></svg-icon> | <svg-icon icon="cog"></svg-icon> | ||||
</button> | </button> | ||||
<button class="btn btn-link link-logout" @click="logout" title="Leave session"> | <button class="btn btn-link link-logout" @click="logout" title="Leave session"> | ||||
<svg-icon icon="power-off"></svg-icon> | <svg-icon icon="power-off"></svg-icon> | ||||
</button> | </button> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div id="meet-setup" class="card container mt-2 mt-md-5 mb-5"> | <div id="meet-setup" class="card container mt-2 mt-md-5 mb-5"> | ||||
▲ Show 20 Lines • Show All 122 Lines • ▼ Show 20 Lines | <div id="meet-component"> | ||||
</div> | </div> | ||||
<div class="modal-footer"> | <div class="modal-footer"> | ||||
<button type="button" class="btn btn-secondary modal-action" data-dismiss="modal">Close</button> | <button type="button" class="btn btn-secondary modal-action" data-dismiss="modal">Close</button> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<session-security-options v-if="session.config" :config="session.config" :room="room" @config-update="configUpdate"></session-security-options> | <room-options v-if="session.config" :config="session.config" :room="room" @config-update="configUpdate"></room-options> | ||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { Meet, Roles } from '../../js/meet/app.js' | import { Meet, Roles } from '../../js/meet/app.js' | ||||
import StatusMessage from '../Widgets/StatusMessage' | import StatusMessage from '../Widgets/StatusMessage' | ||||
import LogonForm from '../Login' | import LogonForm from '../Login' | ||||
import SessionSecurityOptions from './SessionSecurityOptions' | import RoomOptions from './RoomOptions' | ||||
// Register additional icons | // Register additional icons | ||||
import { library } from '@fortawesome/fontawesome-svg-core' | import { library } from '@fortawesome/fontawesome-svg-core' | ||||
import { | import { | ||||
faAlignLeft, | faAlignLeft, | ||||
faCog, | faCog, | ||||
faCompress, | faCompress, | ||||
faCrown, | faCrown, | ||||
faDesktop, | faDesktop, | ||||
faExpand, | faExpand, | ||||
faHandPaper, | faHandPaper, | ||||
faHeadphones, | faHeadphones, | ||||
faMicrophone, | faMicrophone, | ||||
faMicrophoneAlt, | faMicrophoneAlt, | ||||
faPowerOff, | faPowerOff, | ||||
faUser, | faUser, | ||||
faShieldAlt, | |||||
faVideo, | faVideo, | ||||
faVolumeMute | faVolumeMute | ||||
} from '@fortawesome/free-solid-svg-icons' | } from '@fortawesome/free-solid-svg-icons' | ||||
// Register only these icons we need | // Register only these icons we need | ||||
library.add( | library.add( | ||||
faAlignLeft, | faAlignLeft, | ||||
faCog, | faCog, | ||||
faCompress, | faCompress, | ||||
faCrown, | faCrown, | ||||
faDesktop, | faDesktop, | ||||
faExpand, | faExpand, | ||||
faHandPaper, | faHandPaper, | ||||
faHeadphones, | faHeadphones, | ||||
faMicrophone, | faMicrophone, | ||||
faMicrophoneAlt, | faMicrophoneAlt, | ||||
faPowerOff, | faPowerOff, | ||||
faUser, | faUser, | ||||
faShieldAlt, | |||||
faVideo, | faVideo, | ||||
faVolumeMute | faVolumeMute | ||||
) | ) | ||||
let roomRequest | let roomRequest | ||||
const authHeader = 'X-Meet-Auth-Token' | const authHeader = 'X-Meet-Auth-Token' | ||||
export default { | export default { | ||||
components: { | components: { | ||||
LogonForm, | LogonForm, | ||||
SessionSecurityOptions, | RoomOptions, | ||||
StatusMessage | StatusMessage | ||||
}, | }, | ||||
data() { | data() { | ||||
return { | return { | ||||
setup: { | setup: { | ||||
cameras: [], | cameras: [], | ||||
microphones: [], | microphones: [], | ||||
}, | }, | ||||
▲ Show 20 Lines • Show All 353 Lines • ▼ Show 20 Lines | export default { | ||||
// but could make sure that it is kept after page refresh for the avg user. | // but could make sure that it is kept after page refresh for the avg user. | ||||
// This will create max. 24-char numeric string | // This will create max. 24-char numeric string | ||||
this.reqId = (String(Date.now()) + String(Math.random()).substring(2)).substring(0, 24) | this.reqId = (String(Date.now()) + String(Math.random()).substring(2)).substring(0, 24) | ||||
} | } | ||||
return this.reqId | return this.reqId | ||||
}, | }, | ||||
securityOptions() { | roomOptions() { | ||||
$('#security-options-dialog').modal() | $('#room-options-dialog').modal() | ||||
}, | }, | ||||
setMenuItem(type, state, disabled) { | setMenuItem(type, state, disabled) { | ||||
let button = $('#meet-session-menu').find('.link-' + type) | let button = $('#meet-session-menu').find('.link-' + type) | ||||
button[state ? 'removeClass' : 'addClass']('text-danger') | button[state ? 'removeClass' : 'addClass']('text-danger') | ||||
if (disabled !== undefined) { | if (disabled !== undefined) { | ||||
button.prop('disabled', disabled) | button.prop('disabled', disabled) | ||||
▲ Show 20 Lines • Show All 138 Lines • Show Last 20 Lines |