get UI to somewhat work. TODO: get scripts to work
This commit is contained in:
parent
9503003a4a
commit
a30a70c6b5
@ -8,5 +8,11 @@ export async function sleep(timeout) {
|
||||
* @returns
|
||||
*/
|
||||
export function _cp(obj) {
|
||||
return JSON.parse(JSON.stringify(obj));
|
||||
try {
|
||||
return JSON.parse(JSON.stringify(obj));
|
||||
} catch (e) {
|
||||
console.error('Failed to parse json. This probably means that the data we received was not an object. Will return data as-is');
|
||||
console.error('data in:', obj, 'error:', e);
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
|
@ -87,12 +87,14 @@
|
||||
<VideoSettings
|
||||
v-if="selectedTab === 'videoSettings'"
|
||||
:settings="settings"
|
||||
:siteSettings="siteSettings"
|
||||
:eventBus="eventBus"
|
||||
:site="site"
|
||||
></VideoSettings>
|
||||
<PlayerDetectionPanel
|
||||
v-if="selectedTab === 'playerDetection'"
|
||||
:settings="settings"
|
||||
:siteSettings="siteSettings"
|
||||
:eventBus="eventBus"
|
||||
:site="site"
|
||||
>
|
||||
@ -100,11 +102,13 @@
|
||||
<BaseExtensionSettings
|
||||
v-if="selectedTab === 'extensionSettings'"
|
||||
:settings="settings"
|
||||
:siteSettings="siteSettings"
|
||||
:site="site"
|
||||
></BaseExtensionSettings>
|
||||
<AutodetectionSettingsPanel
|
||||
v-if="selectedTab === 'autodetectionSettings'"
|
||||
:settings="settings"
|
||||
:siteSettings="siteSettings"
|
||||
:eventBus="eventBus"
|
||||
:site="site"
|
||||
>
|
||||
|
@ -131,8 +131,7 @@ export default {
|
||||
|
||||
],
|
||||
props: [
|
||||
'settings',
|
||||
'site',
|
||||
'siteSettings',
|
||||
'isDefaultConfiguration'
|
||||
],
|
||||
components: {
|
||||
@ -141,12 +140,12 @@ export default {
|
||||
computed: {
|
||||
siteDefaultCrop() {
|
||||
return JSON.stringify(
|
||||
this.settings?.getDefaultCrop(this.site) ?? {type: this.site === '@global' ? AspectRatioType.Automatic : AspectRatioType.Default}
|
||||
this.siteSettings.data.defaults.crop
|
||||
);
|
||||
},
|
||||
siteDefaultStretch() {
|
||||
return JSON.stringify(
|
||||
this.settings?.getDefaultStretch(this.site) ?? {type: this.site === '@global' ? StretchMode.NoStretch : StretchMode.Default}
|
||||
this.siteSettings.data.defaults.stretch
|
||||
);
|
||||
},
|
||||
siteDefaultCropPersistence() {
|
||||
|
@ -165,10 +165,9 @@ export default {
|
||||
CommsMixin
|
||||
],
|
||||
props: [
|
||||
'settings',
|
||||
'frame',
|
||||
'settings', // required for buttons and actions, which are global
|
||||
'siteSettings',
|
||||
'eventBus',
|
||||
'site',
|
||||
'isEditing'
|
||||
],
|
||||
components: {
|
||||
@ -176,14 +175,9 @@ export default {
|
||||
EditShortcutButton,
|
||||
},
|
||||
computed: {
|
||||
extensionDefaultCrop() {
|
||||
return JSON.stringify(
|
||||
this.settings?.active.crop?.default ?? {type: AspectRatioType.Automatic}
|
||||
);
|
||||
},
|
||||
siteDefaultCrop() {
|
||||
return JSON.stringify(
|
||||
this.settings?.getDefaultCrop(this.site) ?? {type: AspectRatioType.Automatic}
|
||||
this.siteSettings.data.defaults.crop
|
||||
);
|
||||
},
|
||||
},
|
||||
@ -215,7 +209,7 @@ export default {
|
||||
return false;
|
||||
}
|
||||
|
||||
const defaultCrop = this.settings.getDefaultCrop(this.site);
|
||||
const defaultCrop = this.siteSettings.data.defaults.crop;
|
||||
|
||||
if (cropCommand.arguments.type === AspectRatioType.Automatic) {
|
||||
return this.resizerConfig.crop.type === AspectRatioType.Automatic
|
||||
|
@ -198,10 +198,9 @@ export default {
|
||||
CommsMixin
|
||||
],
|
||||
props: [
|
||||
'settings',
|
||||
'frame',
|
||||
'settings', // required for buttons and actions, which are global
|
||||
'siteSettings',
|
||||
'eventBus',
|
||||
'site',
|
||||
'isEditing'
|
||||
],
|
||||
components: {
|
||||
@ -209,14 +208,9 @@ export default {
|
||||
EditShortcutButton,
|
||||
},
|
||||
computed: {
|
||||
extensionDefaultStretch() {
|
||||
return JSON.stringify(
|
||||
this.settings?.active.stretch?.default ?? {type: StretchMode.NoStretch}
|
||||
);
|
||||
},
|
||||
siteDefaultStretch() {
|
||||
return JSON.stringify(
|
||||
this.settings?.getDefaultStretch(this.site) ?? {type: StretchMode.NoStretch}
|
||||
this.siteSettings.data.defaults.stretch
|
||||
);
|
||||
},
|
||||
},
|
||||
|
@ -100,10 +100,9 @@ export default {
|
||||
|
||||
],
|
||||
props: [
|
||||
'settings',
|
||||
'frame',
|
||||
'settings', // required for buttons and actions, which are global
|
||||
'siteSettings',
|
||||
'eventBus',
|
||||
'site',
|
||||
'isEditing'
|
||||
],
|
||||
methods: {
|
||||
|
@ -39,10 +39,8 @@
|
||||
|
||||
<CropOptionsPanel
|
||||
:settings="settings"
|
||||
:frame="frame"
|
||||
:exec="exec"
|
||||
:siteSettings="siteSettings"
|
||||
:eventBus="eventBus"
|
||||
:site="site"
|
||||
:isEditing="editMode"
|
||||
>
|
||||
</CropOptionsPanel>
|
||||
@ -57,10 +55,8 @@
|
||||
|
||||
<StretchOptionsPanel
|
||||
:settings="settings"
|
||||
:frame="frame"
|
||||
:exec="exec"
|
||||
:siteSettings="siteSettings"
|
||||
:eventBus="eventBus"
|
||||
:site="site"
|
||||
:isEditing="editMode"
|
||||
></StretchOptionsPanel>
|
||||
</div>
|
||||
@ -75,10 +71,9 @@
|
||||
|
||||
<ZoomOptionsPanel
|
||||
:settings="settings"
|
||||
:frame="frame"
|
||||
:exec="exec"
|
||||
:siteSettings="siteSettings"
|
||||
:eventBus="eventBus"
|
||||
:site="site"
|
||||
:isEditing="editMode"
|
||||
></ZoomOptionsPanel>
|
||||
</div>
|
||||
|
||||
@ -142,7 +137,8 @@ export default {
|
||||
CommsMixin,
|
||||
],
|
||||
props: [
|
||||
'settings',
|
||||
'settings', // required for buttons and actions, which are global
|
||||
'siteSettings',
|
||||
'frame',
|
||||
'eventBus',
|
||||
'site'
|
||||
|
@ -48,21 +48,25 @@ export class SiteSettings {
|
||||
}
|
||||
|
||||
|
||||
// 'undefined' default here means use default
|
||||
this.data.defaults.crop = this.data.defaults.crop ?? _cp(this.defaultSettings.defaults.crop);
|
||||
|
||||
// these can contain default options, but can also be undefined
|
||||
if (this.data.defaults?.stretch === StretchType.Default || this.data.defaults?.stretch === undefined) {
|
||||
this.data.defaults.stretch = _cp(this.defaultSettings.defaults.stretch);
|
||||
}
|
||||
if (this.data.defaults?.alignment === undefined) { // distinguish between undefined and 0!
|
||||
this.data.defaults.alignment = _cp(this.defaultSettings.defaults.alignment);
|
||||
if (!this.data.defaults) {
|
||||
this.data.defaults = _cp(this.defaultSettings.defaults);
|
||||
} else {
|
||||
if (this.data.defaults?.alignment.x === VideoAlignmentType.Default) {
|
||||
this.data.defaults.alignment.x = _cp(this.defaultSettings.defaults.alignment.x);
|
||||
// 'undefined' default here means use default
|
||||
this.data.defaults.crop = this.data.defaults.crop ?? _cp(this.defaultSettings.defaults.crop);
|
||||
|
||||
// these can contain default options, but can also be undefined
|
||||
if (this.data.defaults?.stretch === StretchType.Default || this.data.defaults?.stretch === undefined) {
|
||||
this.data.defaults.stretch = _cp(this.defaultSettings.defaults.stretch);
|
||||
}
|
||||
if (this.data.defaults.alignment.y === VideoAlignmentType.Default) {
|
||||
this.data.defaults.alignment.y = _cp(this.defaultSettings.defaults.alignment.y);
|
||||
if (this.data.defaults?.alignment === undefined) { // distinguish between undefined and 0!
|
||||
this.data.defaults.alignment = _cp(this.defaultSettings.defaults.alignment);
|
||||
} else {
|
||||
if (this.data.defaults?.alignment.x === VideoAlignmentType.Default) {
|
||||
this.data.defaults.alignment.x = _cp(this.defaultSettings.defaults.alignment.x);
|
||||
}
|
||||
if (this.data.defaults.alignment.y === VideoAlignmentType.Default) {
|
||||
this.data.defaults.alignment.y = _cp(this.defaultSettings.defaults.alignment.y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user