Merge pull request #2172 from makeplane/sync/ce-ee

Sync: Community Changes
This commit is contained in:
pushya22
2025-01-10 10:59:04 +05:30
committed by GitHub
11 changed files with 39 additions and 9 deletions

View File

@@ -135,10 +135,12 @@ class IssueAttachmentV2Endpoint(BaseAPIView):
# Get the presigned URL
storage = S3Storage(request=request)
# Generate a presigned URL to share an S3 object
presigned_url = storage.generate_presigned_post(
object_name=asset_key, file_type=type, file_size=size_limit
)
# Return the presigned URL
return Response(
{

View File

@@ -388,6 +388,18 @@ ATTACHMENT_MIME_TYPES = [
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
"text/plain",
"application/rtf",
"application/vnd.oasis.opendocument.spreadsheet",
"application/vnd.oasis.opendocument.text",
"application/vnd.oasis.opendocument.presentation",
"application/vnd.oasis.opendocument.graphics",
# Microsoft Visio
"application/vnd.visio",
# Netpbm format
"image/x-portable-graymap",
"image/x-portable-bitmap",
"image/x-portable-pixmap",
# Open Office Bae
"application/vnd.oasis.opendocument.database",
# Audio
"audio/mpeg",
"audio/wav",

View File

@@ -87,12 +87,9 @@ export const EditorBubbleMenu: FC<EditorBubbleMenuProps> = (props: any) => {
}, []);
return (
<BubbleMenu
{...bubbleMenuProps}
className="flex py-2 divide-x divide-custom-border-200 rounded-lg border border-custom-border-200 bg-custom-background-100 shadow-custom-shadow-rg"
>
<BubbleMenu {...bubbleMenuProps}>
{!isSelecting && (
<>
<div className="flex py-2 divide-x divide-custom-border-200 rounded-lg border border-custom-border-200 bg-custom-background-100 shadow-custom-shadow-rg">
<div className="px-2">
{!props.editor.isActive("table") && (
<BubbleMenuNodeSelector
@@ -161,7 +158,7 @@ export const EditorBubbleMenu: FC<EditorBubbleMenuProps> = (props: any) => {
editor.commands.setTextSelection(pos ?? 0);
}}
/>
</>
</div>
)}
</BubbleMenu>
);

View File

@@ -283,6 +283,7 @@
"create_a_draft": "Create a draft",
"save_to_drafts": "Save to Drafts",
"save": "Save",
"update": "Update",
"updating": "Updating",
"create_new_issue": "Create new issue",
"editor_is_not_ready_to_discard_changes": "Editor is not ready to discard changes",

View File

@@ -282,6 +282,7 @@
"create_a_draft": "Crear un borrador",
"save_to_drafts": "Guardar en borradores",
"save": "Guardar",
"update": "Actualizar",
"updating": "Actualizando",
"create_new_issue": "Crear nuevo problema",
"editor_is_not_ready_to_discard_changes": "El editor no está listo para descartar los cambios",

View File

@@ -282,6 +282,7 @@
"create_a_draft": "Créer un brouillon",
"save_to_drafts": "Enregistrer dans les brouillons",
"save": "Enregistrer",
"update": "Mettre à jour",
"updating": "Mise à jour",
"create_new_issue": "Créer un nouveau problème",
"editor_is_not_ready_to_discard_changes": "L'éditeur n'est pas prêt à annuler les modifications",

View File

@@ -282,6 +282,7 @@
"create_a_draft": "下書きを作成",
"save_to_drafts": "下書きに保存",
"save": "保存",
"update": "更新",
"updating": "更新中",
"create_new_issue": "新しい問題を作成",
"editor_is_not_ready_to_discard_changes": "エディターは変更を破棄する準備ができていません",

View File

@@ -8,6 +8,7 @@ import { Briefcase, FileText } from "lucide-react";
import { TActivityEntityData, THomeWidgetProps, TRecentActivityFilterKeys } from "@plane/types";
// components
import { LayersIcon } from "@plane/ui";
import { ContentOverflowWrapper } from "@/components/core/content-overflow-HOC";
import { useProject } from "@/hooks/store";
import { WorkspaceService } from "@/plane-web/services";
import { EmptyWorkspace } from "../empty-states";
@@ -17,7 +18,6 @@ import { FiltersDropdown } from "./filters";
import { RecentIssue } from "./issue";
import { RecentPage } from "./page";
import { RecentProject } from "./project";
import { ContentOverflowWrapper } from "@/components/core/content-overflow-HOC";
const WIDGET_KEY = EWidgetKeys.RECENT_ACTIVITY;
const workspaceService = new WorkspaceService();

View File

@@ -67,11 +67,11 @@ export const IssueCommentCard: FC<TIssueCommentCard> = observer((props) => {
defaultValues: { comment_html: comment?.comment_html },
});
const onEnter = (formData: Partial<TIssueComment>) => {
const onEnter = async (formData: Partial<TIssueComment>) => {
if (isSubmitting || !comment) return;
setIsEditing(false);
activityOperations.updateComment(comment.id, formData);
await activityOperations.updateComment(comment.id, formData);
editorRef.current?.setEditorValue(formData?.comment_html ?? "<p></p>");
showEditorRef.current?.setEditorValue(formData?.comment_html ?? "<p></p>");

View File

@@ -34,6 +34,7 @@ const defaultValues: Partial<IWorkspaceView> = {
display_properties: getComputedDisplayProperties(),
display_filters: getComputedDisplayFilters({
layout: EIssueLayoutTypes.SPREADSHEET,
order_by: "-created_at",
}),
};

View File

@@ -8,6 +8,7 @@ export interface IThemeStore {
issueDetailSidebarCollapsed: boolean | undefined;
epicDetailSidebarCollapsed: boolean | undefined;
initiativesSidebarCollapsed: boolean | undefined;
projectOverviewSidebarCollapsed: boolean | undefined;
// actions
toggleSidebar: (collapsed?: boolean) => void;
toggleProfileSidebar: (collapsed?: boolean) => void;
@@ -15,6 +16,7 @@ export interface IThemeStore {
toggleIssueDetailSidebar: (collapsed?: boolean) => void;
toggleEpicDetailSidebar: (collapsed?: boolean) => void;
toggleInitiativesSidebar: (collapsed?: boolean) => void;
toggleProjectOverviewSidebar: (collapsed?: boolean) => void;
}
export class ThemeStore implements IThemeStore {
@@ -25,6 +27,7 @@ export class ThemeStore implements IThemeStore {
issueDetailSidebarCollapsed: boolean | undefined = undefined;
epicDetailSidebarCollapsed: boolean | undefined = undefined;
initiativesSidebarCollapsed: boolean | undefined = undefined;
projectOverviewSidebarCollapsed: boolean | undefined = undefined;
constructor() {
makeObservable(this, {
@@ -35,6 +38,7 @@ export class ThemeStore implements IThemeStore {
issueDetailSidebarCollapsed: observable.ref,
epicDetailSidebarCollapsed: observable.ref,
initiativesSidebarCollapsed: observable.ref,
projectOverviewSidebarCollapsed: observable.ref,
// action
toggleSidebar: action,
toggleProfileSidebar: action,
@@ -42,6 +46,7 @@ export class ThemeStore implements IThemeStore {
toggleIssueDetailSidebar: action,
toggleEpicDetailSidebar: action,
toggleInitiativesSidebar: action,
toggleProjectOverviewSidebar: action,
});
}
@@ -110,4 +115,13 @@ export class ThemeStore implements IThemeStore {
}
localStorage.setItem("initiatives_sidebar_collapsed", this.initiativesSidebarCollapsed.toString());
};
toggleProjectOverviewSidebar = (collapsed?: boolean) => {
if (collapsed === undefined) {
this.projectOverviewSidebarCollapsed = !this.projectOverviewSidebarCollapsed;
} else {
this.projectOverviewSidebarCollapsed = collapsed;
}
localStorage.setItem("project_overview_sidebar_collapsed", this.projectOverviewSidebarCollapsed.toString());
};
}