feat: cuesheet sharing

feat: locked presets

refactor: simplify locked param

refactor: create share links
This commit is contained in:
Carlos Valente
2025-07-22 05:45:20 +02:00
committed by Carlos Valente
parent 1695b4dc68
commit 6c6f5c2c0f
62 changed files with 1661 additions and 478 deletions
@@ -0,0 +1,8 @@
export type LinkOptions = {
authenticate: boolean;
lockConfig: boolean;
lockNav: boolean;
preset?: string;
prefix?: string;
hash?: string;
};
@@ -13,10 +13,25 @@ export enum OntimeView {
ProjectInfo = 'info',
}
export type URLPreset = {
// presets cannot target the editor view
target: Omit<OntimeView, 'editor'>;
export type OntimeViewPresettable = Exclude<OntimeView, OntimeView.Editor>;
type BaseURLPreset = {
target: OntimeViewPresettable;
enabled: boolean;
alias: string;
search: string;
options?: Record<string, string>;
};
type CuesheetUrlPreset = {
target: OntimeView.Cuesheet;
enabled: boolean;
alias: string;
search: string;
options: {
read: string;
write: string;
};
};
export type URLPreset = BaseURLPreset | CuesheetUrlPreset;
+3 -2
View File
@@ -52,7 +52,7 @@ export type { ViewSettings } from './definitions/core/Views.type.js';
export type { TimeFormat } from './definitions/core/TimeFormat.type.js';
// ---> URL Presets
export { OntimeView, type URLPreset } from './definitions/core/UrlPreset.type.js';
export { OntimeView, type URLPreset, type OntimeViewPresettable } from './definitions/core/UrlPreset.type.js';
// ---> Custom Fields
export type {
@@ -63,6 +63,7 @@ export type {
} from './definitions/core/CustomFields.type.js';
// SERVER RESPONSES
export type { QuickStartData } from './api/db/db.type.js';
export type {
AuthenticationStatus,
NetworkInterface,
@@ -76,13 +77,13 @@ export type {
SessionStats,
ProjectLogoResponse,
} from './api/ontime-controller/BackendResponse.type.js';
export type { QuickStartData } from './api/db/db.type.js';
export type {
EventPostPayload,
PatchWithId,
ProjectRundownsList,
TransientEventPayload,
} from './api/rundown-controller/BackendResponse.type.js';
export type { LinkOptions } from './api/session-controller/BackendResponse.type.js';
// web socket
export { MessageTag } from './api/websocket/data.type.js';