fix: file fomat

This commit is contained in:
sriramveeraghanta
2025-12-04 18:37:52 +05:30
parent a0a0ba7e06
commit a95dce7bbb
38 changed files with 70 additions and 82 deletions
+1 -1
View File
@@ -112,4 +112,4 @@ export enum IssueWebhookActions {
UNLABELED = "unlabeled",
UNLOCKED = "unlocked",
UNPINNED = "unpinned",
}
}
@@ -45,7 +45,7 @@ export class JiraImportOrchestrator implements TaskHandler {
private readonly mq: MQ,
private readonly store: Store,
private readonly steps: IStep[]
) { }
) {}
/**
* Main task handler - called by worker
@@ -2,11 +2,10 @@ import { pullIssuesV2 } from "@plane/etl/jira";
import { logger } from "@plane/logger";
import type { TImportJob } from "@plane/types";
import { createJiraClient } from "@/apps/jira-importer/helpers/migration-helpers";
import type { TStepExecutionContext } from "@/apps/jira-server-importer/v2/types";
import type { TStepExecutionContext, TJobContext } from "@/apps/jira-server-importer/v2/types";
import { getJobCredentials } from "@/helpers/job";
import { withCache } from "../../../../helpers/cache";
import { buildExternalId } from "../../../../helpers/job";
import type { TJobContext } from "../../../../types";
import { JiraIssuesStep } from "../../shared/issues";
/**
@@ -30,7 +30,7 @@ export class JiraCyclesStep implements IStep {
private readonly PAGE_SIZE = 100;
constructor(private readonly source: E_IMPORTER_KEYS.JIRA_SERVER | E_IMPORTER_KEYS.JIRA) { }
constructor(private readonly source: E_IMPORTER_KEYS.JIRA_SERVER | E_IMPORTER_KEYS.JIRA) {}
/**
* Executes the sprint extraction process:
@@ -67,7 +67,7 @@ export class JiraCyclesStep implements IStep {
} catch (error) {
logger.error(`[${jobContext.job.id}] [${this.name}] Step failed`, {
jobId: jobContext.job.id,
error: error
error: error,
});
throw error;
}
@@ -57,7 +57,7 @@ export class JiraIssuesStep implements IStep {
EJiraStep.ISSUE_PROPERTY_OPTIONS, // Provides options
];
constructor(private readonly source: E_IMPORTER_KEYS.JIRA_SERVER | E_IMPORTER_KEYS.JIRA) { }
constructor(private readonly source: E_IMPORTER_KEYS.JIRA_SERVER | E_IMPORTER_KEYS.JIRA) {}
private readonly PAGE_SIZE = 50;
@@ -554,8 +554,8 @@ export class JiraIssuesStep implements IStep {
: null;
return sprintObjects
? sprintObjects
.map((s) => (s ? buildExternalId(projectId, resourceId, s.id.toString()) : null))
.filter((s) => s !== null)
.map((s) => (s ? buildExternalId(projectId, resourceId, s.id.toString()) : null))
.filter((s) => s !== null)
: [];
}
+8 -12
View File
@@ -28,18 +28,14 @@ export default defineConfig(() => ({
plugins: [reactRouter(), tsconfigPaths({ projects: [path.resolve(__dirname, "tsconfig.json")] })],
resolve: {
alias: {
"@atlaskit/pragmatic-drag-and-drop/combine": import.meta.resolve(
"@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/combine.js"
),
"@atlaskit/pragmatic-drag-and-drop-auto-scroll/element": import.meta.resolve(
"@atlaskit/pragmatic-drag-and-drop-auto-scroll/dist/esm/entry-point/element.js"
),
"@atlaskit/pragmatic-drag-and-drop/element/adapter": import.meta.resolve(
"@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/element/adapter.js"
),
"@atlaskit/pragmatic-drag-and-drop/private/get-element-from-point-without-honey-pot": import.meta.resolve(
"@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/private/get-element-from-point-without-honey-pot.js"
),
"@atlaskit/pragmatic-drag-and-drop/combine": import.meta
.resolve("@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/combine.js"),
"@atlaskit/pragmatic-drag-and-drop-auto-scroll/element": import.meta
.resolve("@atlaskit/pragmatic-drag-and-drop-auto-scroll/dist/esm/entry-point/element.js"),
"@atlaskit/pragmatic-drag-and-drop/element/adapter": import.meta
.resolve("@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/element/adapter.js"),
"@atlaskit/pragmatic-drag-and-drop/private/get-element-from-point-without-honey-pot": import.meta
.resolve("@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/private/get-element-from-point-without-honey-pot.js"),
// Next.js compatibility shims used within space
"next/link": path.resolve(__dirname, "app/compat/next/link.tsx"),
"next/navigation": path.resolve(__dirname, "app/compat/next/navigation.ts"),
@@ -6,7 +6,6 @@ import { SettingsHeader } from "@/components/settings/header";
// plane web imports
import { LicenseSeatsBanner } from "@/plane-web/components/license";
export default function SettingsLayout() {
return (
<>
@@ -46,7 +46,7 @@ export const CommentQuickActions: FC<TCommentCard> = observer((props) => {
handleDelete: () => activityOperations.removeComment(comment.id),
});
if(MENU_ITEMS.length === 0) return null;
if (MENU_ITEMS.length === 0) return null;
return (
<CustomMenu ellipsis closeOnSelect>
+1 -1
View File
@@ -279,4 +279,4 @@ export const ModuleForm: React.FC<Props> = (props) => {
)}
</form>
);
}
};
@@ -19,7 +19,7 @@ type Props = {
handleOnChange?: () => void;
};
export function ModuleStatusSelect({ control, error, tabIndex , handleOnChange}: Props) {
export function ModuleStatusSelect({ control, error, tabIndex, handleOnChange }: Props) {
const { t } = useTranslation();
return (
<Controller
@@ -10,4 +10,4 @@ export const useAnalyticsTabs = (workspaceSlug: string) => {
const analyticsTabs = useMemo(() => getAnalyticsTabs(t, isAnalyticsTabsEnabled), [t, isAnalyticsTabsEnabled]);
return analyticsTabs;
};
};
-1
View File
@@ -5,4 +5,3 @@ export * from "./navigation";
export * from "./use-desktop-app";
export * from "./helper";
export * from "./sidebar-workspace-menu";
@@ -23,15 +23,8 @@ type Props = {
};
export const InitiativeLabelItem: React.FC<Props> = observer((props) => {
const {
label,
handleLabelDelete,
setIsUpdating,
isParentDragging,
isLastChild,
onDrop,
labelOperationsCallbacks,
} = props;
const { label, handleLabelDelete, setIsUpdating, isParentDragging, isLastChild, onDrop, labelOperationsCallbacks } =
props;
// states
const [isEditLabelForm, setEditLabelForm] = useState(false);
@@ -16,7 +16,6 @@ import type { TNavigationItem } from "@/components/navigation/tab-navigation-roo
import { useFlag } from "@/plane-web/hooks/store";
import { useProjectAdvanced } from "@/plane-web/hooks/store/projects/use-projects";
type UseNavigationItemsProps = {
workspaceSlug: string;
projectId: string;
@@ -35,7 +34,6 @@ export const useNavigationItems = ({
project,
allowPermissions,
}: UseNavigationItemsProps): TNavigationItem[] => {
const isProjectOverviewEnabled = useFlag(workspaceSlug, "PROJECT_OVERVIEW");
const { getProjectFeatures } = useProjectAdvanced();
@@ -43,8 +41,6 @@ export const useNavigationItems = ({
const isEpicsEnabled = projectFeatures?.is_epic_enabled;
// Base navigation items
const baseNavigation = useCallback(
(workspaceSlug: string, projectId: string): TNavigationItem[] => [
@@ -20,7 +20,9 @@ export const MovePageModalFooter: React.FC<Props> = (props) => {
{t("common.cancel")}
</Button>
<Button variant="primary" size="sm" onClick={onMove} loading={isMoving} disabled={disabled}>
{isMoving ? t("page_actions.move_page.submit_button.loading") : t("page_actions.move_page.submit_button.default")}
{isMoving
? t("page_actions.move_page.submit_button.loading")
: t("page_actions.move_page.submit_button.default")}
</Button>
</div>
);
@@ -26,7 +26,8 @@ export const AddRemovePreviewCard = observer((props: TProps) => {
<span className="text-custom-text-100 font-medium">{data.parameters?.name}</span>{" "}
{data.action === "add" ? "to" : "from"} {artifactSubType}
{properties && properties.length > 0 ? "s" : ""}
{properties && Array.isArray(properties) &&
{properties &&
Array.isArray(properties) &&
properties.map(
(
property: {
@@ -127,7 +127,6 @@ export const ExtendedSidebarItem: FC<TExtendedSidebarItemProps> = observer((prop
);
}, [isLastChild, handleOnNavigationItemDrop, disableDrag, disableDrop, item.key]);
const itemHref =
item.key === "your_work"
? `/${workspaceSlug.toString()}${item.href}${data?.id}`
+1 -2
View File
@@ -26,8 +26,7 @@ export const AppRailVisibilityProvider = observer(({ children }: AppRailVisibili
const subscriptionDetail = workspaceSubscription.currentWorkspaceSubscribedPlanDetail;
// EE Logic: Feature is NOT enabled for free self-managed workspaces
const isFreeForSelfManaged =
subscriptionDetail?.is_self_managed === true && subscriptionDetail?.product === "FREE";
const isFreeForSelfManaged = subscriptionDetail?.is_self_managed === true && subscriptionDetail?.product === "FREE";
// Feature is enabled if:
// 1. Feature flag is on AND
+1 -2
View File
@@ -42,8 +42,7 @@ export abstract class AutomationBaseNode<
T extends EAutomationNodeType,
H extends TAutomationNodeHandlerName,
C extends TAutomationNodeConfig,
> implements IAutomationBaseNode<T, H, C>
{
> implements IAutomationBaseNode<T, H, C> {
// node properties
config: TAutomationNode<T, H, C>["config"];
created_at: TAutomationNode<T, H, C>["created_at"];
+4 -4
View File
@@ -62,10 +62,10 @@ export class CommandPaletteStore extends BaseCommandPaletteStore implements ICom
get isAnyModalOpen(): boolean {
return Boolean(
super.getCoreModalsState() ||
this.createUpdateTeamspaceModal.isOpen ||
this.createUpdateTeamspaceViewModal.isOpen ||
this.createUpdateInitiativeModal.isOpen ||
this.createUpdateCustomerModal.isOpen
this.createUpdateTeamspaceModal.isOpen ||
this.createUpdateTeamspaceViewModal.isOpen ||
this.createUpdateInitiativeModal.isOpen ||
this.createUpdateCustomerModal.isOpen
);
}
@@ -242,10 +242,10 @@ export class InitiativeStore implements IInitiativeStore {
get isAnyModalOpen() {
return Boolean(
this.initiativeLinks.isLinkModalOpen ||
this.isInitiativeModalOpen ||
this.isProjectsModalOpen ||
this.isEpicModalOpen ||
this.isAttachmentDeleteModalOpen
this.isInitiativeModalOpen ||
this.isProjectsModalOpen ||
this.isEpicModalOpen ||
this.isAttachmentDeleteModalOpen
);
}
@@ -113,7 +113,7 @@ export class PiChatAttachmentStore implements IPiChatAttachmentStore {
} finally {
// Cancel any pending debounced updates
this.debouncedUpdateProgress.cancel();
// Remove the attachment from upload status map
runInAction(() => {
if (this.attachmentsUploadStatusMap[chatId] && this.attachmentsUploadStatusMap[chatId][tempId]) {
+4 -2
View File
@@ -19,8 +19,10 @@ export type TBaseTemplateInstanceProps<T extends TBaseTemplateWithData> = {
baseTemplateData: T;
};
export interface IBaseTemplateInstance<T extends TBaseTemplateWithData>
extends TBaseTemplate<T["template_type"], T["template_data"]> {
export interface IBaseTemplateInstance<T extends TBaseTemplateWithData> extends TBaseTemplate<
T["template_type"],
T["template_data"]
> {
// computed
asJSON: T;
asPublishableJSON: TPublishTemplateForm<T["template_type"], T["template_data"]>;
@@ -427,10 +427,9 @@ export const handleSelectionConversion = async (args: THandleSelectionConversion
});
await createTreePromise;
// Show error/warning toast if there were any failures
if (errors.length > 0) {
const successCount = (workItemsToInsert.length || (mixedContentWorkItemId ? 1 : 0));
const successCount = workItemsToInsert.length || (mixedContentWorkItemId ? 1 : 0);
const failureCount = errors.length;
if (successCount > 0) {
+5 -7
View File
@@ -5,7 +5,7 @@ import type {
Comment as JComment,
IssueTypeDetails as JiraIssueTypeDetails,
FieldDetails,
Worklog
Worklog,
} from "jira.js/out/version2/models";
import type {
ImportedJiraUser,
@@ -212,12 +212,10 @@ export const pullAllWorklogsForIssue = async (issue: IJiraIssue, client: JiraV2S
"worklogs"
);
return values.map(
(worklog) => ({
...worklog,
issue_id: issue.id,
})
);
return values.map((worklog) => ({
...worklog,
issue_id: issue.id,
}));
};
export async function pullCommentsForIssueV2(
@@ -10,8 +10,7 @@ import type {
PlaneUser,
ExIssuePropertyOption,
} from "@plane/sdk";
import type { TPropertyValuesPayload } from "@/core";
import { E_IMPORTER_KEYS } from "@/core";
import type { E_IMPORTER_KEYS, TPropertyValuesPayload } from "@/core";
import {
getFormattedDate,
getPropertyAttributes,
@@ -168,7 +168,8 @@ export default {
heading: "Intake-Verantwortung",
notify_assignee: {
title: "Zuständige benachrichtigen",
description: "Für eine neue Intake-Anfrage werden die Standard-Zuständigen über Benachrichtigungen informiert",
description:
"Für eine neue Intake-Anfrage werden die Standard-Zuständigen über Benachrichtigungen informiert",
},
toasts: {
set: {
@@ -776,7 +777,8 @@ export default {
},
authorization_grant_type: {
title: "Verbindungstyp",
description: "Wählen Sie, ob Ihre App einmal für den Arbeitsbereich installiert werden soll oder ob jeder Benutzer sein eigenes Konto verbinden soll",
description:
"Wählen Sie, ob Ihre App einmal für den Arbeitsbereich installiert werden soll oder ob jeder Benutzer sein eigenes Konto verbinden soll",
},
app_description_error: "App-Beschreibung ist erforderlich",
app_slug_title: "App-Slug",
@@ -838,7 +840,8 @@ export default {
invalid_categories_error: "Ungültige Kategorien",
categories_description: "Wählen Sie die Kategorien, die am besten zu der App passen",
supported_plans: "Unterstützte Pläne",
supported_plans_description: "Wählen Sie die Workspace-Pläne aus, die diese Anwendung installieren können. Leer lassen, um alle Pläne zu erlauben.",
supported_plans_description:
"Wählen Sie die Workspace-Pläne aus, die diese Anwendung installieren können. Leer lassen, um alle Pläne zu erlauben.",
select_plans: "Pläne Auswählen",
privacy_policy_url_title: "Datenschutzerklärung URL",
privacy_policy_url_error: "Datenschutzerklärung URL ist erforderlich",
@@ -167,7 +167,8 @@ export default {
heading: "Responsabilidad de ingreso",
notify_assignee: {
title: "Notificar asignados",
description: "Para una nueva solicitud de ingreso, los asignados predeterminados serán alertados mediante notificaciones",
description:
"Para una nueva solicitud de ingreso, los asignados predeterminados serán alertados mediante notificaciones",
},
toasts: {
set: {
@@ -167,7 +167,8 @@ export default {
heading: "Responsabilité d'ingestion",
notify_assignee: {
title: "Notifier les responsables",
description: "Pour une nouvelle demande d'ingestion, les responsables par défaut seront alertés via des notifications",
description:
"Pour une nouvelle demande d'ingestion, les responsables par défaut seront alertés via des notifications",
},
toasts: {
set: {
@@ -168,7 +168,8 @@ export default {
heading: "Tanggung jawab penerimaan",
notify_assignee: {
title: "Beritahu yang ditugaskan",
description: "Untuk permintaan penerimaan baru, yang ditugaskan secara default akan diberi peringatan melalui notifikasi",
description:
"Untuk permintaan penerimaan baru, yang ditugaskan secara default akan diberi peringatan melalui notifikasi",
},
toasts: {
set: {
@@ -166,7 +166,8 @@ export default {
heading: "Responsabilità di accettazione",
notify_assignee: {
title: "Notifica assegnatari",
description: "Per una nuova richiesta di accettazione, gli assegnatari predefiniti saranno avvisati tramite notifiche",
description:
"Per una nuova richiesta di accettazione, gli assegnatari predefiniti saranno avvisati tramite notifiche",
},
toasts: {
set: {
@@ -168,7 +168,8 @@ export default {
heading: "Responsabilidade de recebimento",
notify_assignee: {
title: "Notificar responsáveis",
description: "Para uma nova solicitação de recebimento, os responsáveis padrão serão alertados via notificações",
description:
"Para uma nova solicitação de recebimento, os responsáveis padrão serão alertados via notificações",
},
toasts: {
set: {
+1 -1
View File
@@ -38,7 +38,7 @@ export class AIService extends APIService {
* @returns {Promise<any>} The response data from the GPT task
* @throws {Error} Throws the response error if the request fails
*/
async prompt(workspaceSlug: string, data: { prompt: string; task: string }): Promise<any> {
async prompt(workspaceSlug: string, data: { prompt: string; task: string }): Promise<any> {
return this.post(`/api/workspaces/${workspaceSlug}/ai-assistant/`, data)
.then((response) => response?.data)
.catch((error) => {
@@ -1 +1 @@
export * from "./replies.service";
export * from "./replies.service";
+1 -1
View File
@@ -1,2 +1,2 @@
export * from "./sites-issue.service";
export * from "./comments";
export * from "./comments";
+1 -1
View File
@@ -33,4 +33,4 @@ export interface IMilestoneInstance {
// actions
updateProgress: (progress: TMilestoneProgress) => void;
update: (data: Partial<TMilestone>) => void;
}
}
@@ -8,4 +8,4 @@ export * from "./state";
export * from "./teamspace";
export * from "./user";
export * from "./work-item-type";
export * from "./milestone";
export * from "./milestone";