Compare commits
2 Commits
b0425b37c0
...
e3f1f21ce9
Author | SHA1 | Date | |
---|---|---|---|
e3f1f21ce9 | |||
08c86615a0 |
@ -13,30 +13,41 @@
|
|||||||
class="popup flex flex-col no-overflow"
|
class="popup flex flex-col no-overflow"
|
||||||
:class="{'popup-chrome': ! BrowserDetect?.firefox}"
|
:class="{'popup-chrome': ! BrowserDetect?.firefox}"
|
||||||
>
|
>
|
||||||
<div class="flex-row flex-nogrow flex-noshrink relative header"
|
<div class="flex flex-col w-full relative header"
|
||||||
>
|
>
|
||||||
<div class="grow shrink">
|
<div class="flex flex-row w-full" style="height: 42px">
|
||||||
<h1>
|
<h1 class="flex-grow">
|
||||||
<span class="smallcaps">Ultrawidify</span>: <small>Quick settings</small>
|
<span class="smallcaps">Ultrawidify</span>: <small>Quick settings</small>
|
||||||
</h1>
|
</h1>
|
||||||
<div v-if="site && siteSettings" style="transform: scale(0.75) translateX(-12.5%); margin-bottom: -0.5rem; align-content: center" class="flex flex-row">
|
<button
|
||||||
|
class="settings-header-button"
|
||||||
|
style="align-self: stretch"
|
||||||
|
@click="showInPlayerUi()"
|
||||||
|
>
|
||||||
|
Show settings window
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-row w-full">
|
||||||
|
<div v-if="site && siteSettings" style="transform: scale(0.75) translateX(-12.5%); margin-bottom: -0.5rem; align-content: center" class="flex flex-row flex-grow items-center">
|
||||||
<div>site: {{site.host}}</div>
|
<div>site: {{site.host}}</div>
|
||||||
<SupportLevelIndicator
|
<SupportLevelIndicator
|
||||||
:siteSupportLevel="siteSupportLevel"
|
:siteSupportLevel="siteSupportLevel"
|
||||||
>
|
>
|
||||||
</SupportLevelIndicator>
|
</SupportLevelIndicator>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
<!-- Version info -->
|
||||||
<div v-if="BrowserDetect?.processEnvChannel !== 'stable'" class="absolute channel-info version-info">
|
<div v-if="BrowserDetect?.processEnvChannel !== 'stable'" class="absolute channel-info version-info">
|
||||||
Build channel: {{BrowserDetect?.processEnvChannel}} <br/>
|
|
||||||
<label>Version:</label> <br/>
|
<label>Version:</label> <br/>
|
||||||
{{ settings.getExtensionVersion() }}
|
{{ settings.getExtensionVersion() }} (non-stable)
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="version-info">
|
<div v-else class="version-info">
|
||||||
<label>Version:</label> <br/>
|
<label>Version:</label> <br/>
|
||||||
{{ settings.getExtensionVersion() }}
|
{{ settings.getExtensionVersion() }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- CONTAINER ROOT -->
|
<!-- CONTAINER ROOT -->
|
||||||
@ -152,10 +163,10 @@ export default {
|
|||||||
logger: undefined,
|
logger: undefined,
|
||||||
site: undefined,
|
site: undefined,
|
||||||
siteSettings: undefined,
|
siteSettings: undefined,
|
||||||
selectedTab: 'playerUiCtl',
|
selectedTab: 'videoSettings',
|
||||||
tabs: [
|
tabs: [
|
||||||
// see this for icons: https://pictogrammers.com/library/mdi/
|
// see this for icons: https://pictogrammers.com/library/mdi/
|
||||||
{id: 'playerUiCtl', label: 'In-player UI', icon: 'artboard'},
|
// {id: 'playerUiCtl', label: 'In-player UI', icon: 'artboard'},
|
||||||
{id: 'videoSettings', label: 'Video settings', icon: 'crop'},
|
{id: 'videoSettings', label: 'Video settings', icon: 'crop'},
|
||||||
// {id: 'playerDetection', label: 'Player detection', icon: 'television-play'},
|
// {id: 'playerDetection', label: 'Player detection', icon: 'television-play'},
|
||||||
{id: 'extensionSettings', label: 'Site and Extension options', icon: 'cogs' },
|
{id: 'extensionSettings', label: 'Site and Extension options', icon: 'cogs' },
|
||||||
@ -259,6 +270,9 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
showInPlayerUi() {
|
||||||
|
this.eventBus.send('uw-set-ui-state', {globalUiVisible: true}, {comms: {forwardTo: 'active'}});
|
||||||
|
},
|
||||||
async sleep(t) {
|
async sleep(t) {
|
||||||
return new Promise( (resolve,reject) => {
|
return new Promise( (resolve,reject) => {
|
||||||
setTimeout(() => resolve(), t);
|
setTimeout(() => resolve(), t);
|
||||||
@ -365,12 +379,15 @@ export default {
|
|||||||
|
|
||||||
.header {
|
.header {
|
||||||
background-color: rgb(90, 28, 13);
|
background-color: rgb(90, 28, 13);
|
||||||
|
background-color: rgb(0,0,0);
|
||||||
color: #fff;
|
color: #fff;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
|
|
||||||
display: flex;
|
// display: flex;
|
||||||
flex-direction: row;
|
// flex-direction: row;
|
||||||
justify-content: space-between;
|
// justify-content: space-between;
|
||||||
|
|
||||||
|
border-bottom: 1px dotted #fa6;
|
||||||
|
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
@ -388,6 +405,21 @@ export default {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.settings-header-button {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
padding: 0.5rem 2rem;
|
||||||
|
text-transform: lowercase;
|
||||||
|
font-variant: small-caps;
|
||||||
|
|
||||||
|
background-color: #000;
|
||||||
|
border: 1px solid #fa68;
|
||||||
|
|
||||||
|
color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
.site-support-info {
|
.site-support-info {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
@ -27,6 +27,9 @@
|
|||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.items-center {
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
.flex-wrap {
|
.flex-wrap {
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
@ -64,12 +64,12 @@
|
|||||||
<p>
|
<p>
|
||||||
Pressing the button will reset settings to default without asking.
|
Pressing the button will reset settings to default without asking.
|
||||||
</p>
|
</p>
|
||||||
<button
|
<ConfirmButton
|
||||||
class="danger"
|
class="danger"
|
||||||
@click="resetSettings"
|
@onConfirmed="resetSettings"
|
||||||
>
|
>
|
||||||
Reset settings
|
Reset settings
|
||||||
</button>
|
</ConfirmButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -77,6 +77,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import SiteExtensionSettings from './PanelComponents/ExtensionSettings/SiteExtensionSettings.vue';
|
import SiteExtensionSettings from './PanelComponents/ExtensionSettings/SiteExtensionSettings.vue';
|
||||||
import OtherSiteSettings from './PanelComponents/ExtensionSettings/OtherSiteSettings.vue';
|
import OtherSiteSettings from './PanelComponents/ExtensionSettings/OtherSiteSettings.vue';
|
||||||
|
import ConfirmButton from '@csui/src/components/ConfirmButton';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
@ -93,8 +94,9 @@ export default {
|
|||||||
],
|
],
|
||||||
components: {
|
components: {
|
||||||
SiteExtensionSettings,
|
SiteExtensionSettings,
|
||||||
OtherSiteSettings
|
OtherSiteSettings,
|
||||||
},
|
ConfirmButton
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
globalSettings() {
|
globalSettings() {
|
||||||
return this.settings?.getSiteSettings('@global') ?? null;
|
return this.settings?.getSiteSettings('@global') ?? null;
|
||||||
|
@ -357,6 +357,7 @@ export default {
|
|||||||
* Compiles our extension settings into more user-friendly options
|
* Compiles our extension settings into more user-friendly options
|
||||||
*/
|
*/
|
||||||
compileSimpleSettings(component, getFor = 'site') {
|
compileSimpleSettings(component, getFor = 'site') {
|
||||||
|
console.log('compiling simple settings!', component, getFor);
|
||||||
let settingsData;
|
let settingsData;
|
||||||
switch (getFor) {
|
switch (getFor) {
|
||||||
case 'site':
|
case 'site':
|
||||||
@ -370,6 +371,8 @@ export default {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('getting data from:', settingsData);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (
|
if (
|
||||||
( settingsData?.[component]?.normal === ExtensionMode.Disabled || component === 'enableUI')
|
( settingsData?.[component]?.normal === ExtensionMode.Disabled || component === 'enableUI')
|
||||||
@ -383,6 +386,14 @@ export default {
|
|||||||
&& settingsData?.[component]?.theater === ExtensionMode.Default
|
&& settingsData?.[component]?.theater === ExtensionMode.Default
|
||||||
&& settingsData?.[component]?.fullscreen === ExtensionMode.Default
|
&& settingsData?.[component]?.fullscreen === ExtensionMode.Default
|
||||||
) {
|
) {
|
||||||
|
console.log(
|
||||||
|
component, 'is set to default because:\n'
|
||||||
|
`\nsettingsData[${component}].normal: ${settingsData?.[component]?.normal} || component is enableUI?`, component,
|
||||||
|
`\nsettingsData[${component}].theater: ${settingsData?.[component]?.normal}`,
|
||||||
|
`\nsettingsData[${component}].fullscreen: ${settingsData?.[component]?.normal}`,
|
||||||
|
|
||||||
|
`\n\n(expected values:`, ExtensionMode.Default
|
||||||
|
)
|
||||||
return 'default';
|
return 'default';
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
|
83
src/csui/src/components/ConfirmButton.vue
Normal file
83
src/csui/src/components/ConfirmButton.vue
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
<template>
|
||||||
|
<div v-if="popupVisible" class="popup">
|
||||||
|
<div class="popup-window">
|
||||||
|
<div
|
||||||
|
class="header"
|
||||||
|
:class="{
|
||||||
|
'danger': dialogType === 'danger',
|
||||||
|
'warning': dialogType === 'warning',
|
||||||
|
'info': dialogType === 'info',
|
||||||
|
'normal': dialogType === 'normal'
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
{{ dialogText || 'Confirm action' }}
|
||||||
|
</div>
|
||||||
|
<div class="body">
|
||||||
|
{{ dialogText || 'Are you sure you want to do that?' }}
|
||||||
|
</div>
|
||||||
|
<div class="footer">
|
||||||
|
<button
|
||||||
|
class="button confirm"
|
||||||
|
:class="{
|
||||||
|
'danger': dialogType === 'danger',
|
||||||
|
'warning': dialogType === 'warning',
|
||||||
|
'info': dialogType === 'info',
|
||||||
|
'normal': dialogType === 'normal'
|
||||||
|
}"
|
||||||
|
@click="confirmAction"
|
||||||
|
>
|
||||||
|
{{ confirmText || 'Confirm' }}
|
||||||
|
</button>
|
||||||
|
<button @click="popupVisible = false">{{ cancelText || 'Cancel' }}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button @click="popupVisible = true">
|
||||||
|
<slot></slot>
|
||||||
|
</button>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
popupVisible: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: [
|
||||||
|
'dialogTitle',
|
||||||
|
'dialogText',
|
||||||
|
'confirmText',
|
||||||
|
'cancelText',
|
||||||
|
'dialogType'
|
||||||
|
],
|
||||||
|
methods: {
|
||||||
|
confirmAction() {
|
||||||
|
this.$emit('onConfirmed');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.popup {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
backdrop-filter: saturate(50%) backdrop-blur(1rem);
|
||||||
|
z-index: 99999;
|
||||||
|
|
||||||
|
.header {
|
||||||
|
font-size: 1.33rem;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #000;
|
||||||
|
}
|
||||||
|
.body {
|
||||||
|
min-height: 5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue
Block a user