@craftercms/studio-ui
Version:
Services, components, models & utils to build CrafterCMS authoring extensions.
76 lines (74 loc) • 2.14 kB
TypeScript
/*
* Copyright (C) 2007-2022 Crafter Software Corporation. All Rights Reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3 as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import LookupTable from './LookupTable';
export type PublishingTargets = 'live' | 'staging';
export interface Package {
id: string;
siteId: string;
schedule: string;
approver: string;
state: string;
environment: string;
comment: string;
}
export type Selected = LookupTable<boolean>;
export interface File {
contentTypeClass: string;
mimeType: string;
path: string;
}
export interface CurrentFilters {
environment: string;
path: string;
state: Array<string>;
limit: number;
page: number;
}
export interface PublishingStatus {
enabled: boolean;
status: 'ready' | 'processing' | 'publishing' | 'queued' | 'stopped' | 'error' | 'readyWithErrors';
lockOwner: string;
lockTTL: string;
published: boolean;
publishingTarget: string;
submissionId: string;
numberOfItems: number;
totalItems: number;
}
export interface PublishFormData {
path?: string;
commitIds?: string;
comment: string;
publishingTarget: string;
}
export type PublishOnDemandMode = 'studio' | 'git' | 'everything';
export interface PublishingTarget {
name: string;
order: number;
}
export interface PublishingParams {
items: string[];
publishingTarget: string;
optionalDependencies?: string[];
schedule?: string;
comment?: string;
sendEmailNotifications?: boolean;
}
export interface PublishingStats {
numberOfPublishes: number;
numberOfNewAndPublishedItems: number;
numberOfEditedAndPublishedItems: number;
}