diff --git a/apiserver/plane/license/management/commands/configure_instance.py b/apiserver/plane/license/management/commands/configure_instance.py index 9365f07c54..1bb1031138 100644 --- a/apiserver/plane/license/management/commands/configure_instance.py +++ b/apiserver/plane/license/management/commands/configure_instance.py @@ -88,6 +88,12 @@ class Command(BaseCommand): "category": "SMTP", "is_encrypted": False, }, + { + "key": "EMAIL_USE_SSL", + "value": os.environ.get("EMAIL_USE_SSL", "0"), + "category": "SMTP", + "is_encrypted": False, + }, { "key": "OPENAI_API_KEY", "value": os.environ.get("OPENAI_API_KEY"), diff --git a/web/components/api-token/modal/form.tsx b/web/components/api-token/modal/form.tsx index b2b3f64dcb..93a92c9ef7 100644 --- a/web/components/api-token/modal/form.tsx +++ b/web/components/api-token/modal/form.tsx @@ -95,7 +95,7 @@ export const CreateApiTokenForm: React.FC = (props) => { else { const expiryDate = getExpiryDate(data.expired_at ?? ""); - if (expiryDate) payload.expired_at = renderFormattedPayloadDate(expiryDate); + if (expiryDate) payload.expired_at = renderFormattedPayloadDate(new Date(expiryDate)); } await onSubmit(payload).then(() => { @@ -170,8 +170,8 @@ export const CreateApiTokenForm: React.FC = (props) => { {value === "custom" ? "Custom date" : selectedOption - ? selectedOption.label - : "Set expiration date"} + ? selectedOption.label + : "Set expiration date"} } value={value} @@ -207,8 +207,8 @@ export const CreateApiTokenForm: React.FC = (props) => { ? `Expires ${renderFormattedDate(customDate)}` : null : watch("expired_at") - ? `Expires ${getExpiryDate(watch("expired_at") ?? "")}` - : null} + ? `Expires ${getExpiryDate(watch("expired_at") ?? "")}` + : null} )} diff --git a/web/components/issues/peek-overview/view.tsx b/web/components/issues/peek-overview/view.tsx index d5b723f662..37f92134d7 100644 --- a/web/components/issues/peek-overview/view.tsx +++ b/web/components/issues/peek-overview/view.tsx @@ -13,6 +13,8 @@ import { ArchiveIssueModal, PeekOverviewIssueAttachments, } from "@/components/issues"; +// helpers +import { cn } from "@/helpers/common.helper"; // hooks import { useIssueDetail, useUser } from "@/hooks/store"; import useKeypress from "@/hooks/use-keypress"; @@ -110,11 +112,14 @@ export const IssueView: FC = observer((props) => { {issueId && (
{ const { currentProjectDetails } = useProject(); const { currentTab, handleCurrentTab } = useProjectInbox(); - if (!workspaceSlug || !projectId) return <>; - // No access to inbox if (currentProjectDetails?.inbox_view === false) return ( @@ -46,6 +44,8 @@ const ProjectInboxPage: NextPageWithLayout = observer(() => { handleCurrentTab(navigationTab === "open" ? EInboxIssueCurrentTab.OPEN : EInboxIssueCurrentTab.CLOSED); }, [currentTab, navigationTab, handleCurrentTab]); + if (!workspaceSlug || !projectId) return <>; + return (
diff --git a/web/store/inbox/project-inbox.store.ts b/web/store/inbox/project-inbox.store.ts index e9c55489ac..289187cc9c 100644 --- a/web/store/inbox/project-inbox.store.ts +++ b/web/store/inbox/project-inbox.store.ts @@ -1,7 +1,6 @@ import isEmpty from "lodash/isEmpty"; import omit from "lodash/omit"; import orderBy from "lodash/orderBy"; -import reverse from "lodash/reverse"; import set from "lodash/set"; import { action, computed, makeObservable, observable, runInAction } from "mobx"; import { computedFn } from "mobx-utils"; @@ -138,21 +137,21 @@ export class ProjectInboxStore implements IProjectInboxStore { // helpers inboxIssueSorting = (issues: IInboxIssueStore[]) => { - console.log("issues", issues); - let inboxIssues: IInboxIssueStore[] = []; + let inboxIssues: IInboxIssueStore[] = issues; + inboxIssues = orderBy(inboxIssues, "issue.sequence_id", "desc"); if (this.inboxSorting?.order_by && this.inboxSorting?.sort_by) { switch (this.inboxSorting.order_by) { case "issue__created_at": - if (this.inboxSorting.sort_by === "desc") inboxIssues = orderBy(issues, ["issue", "created_at"]); - else inboxIssues = reverse(orderBy(issues, ["issue", "created_at"])); + if (this.inboxSorting.sort_by === "desc") inboxIssues = orderBy(inboxIssues, "issue.created_at", "desc"); + else inboxIssues = orderBy(inboxIssues, "issue.created_at", "asc"); case "issue__updated_at": - if (this.inboxSorting.sort_by === "desc") inboxIssues = orderBy(issues, ["issue", "updated_at"]); - else inboxIssues = reverse(orderBy(issues, ["issue", "updated_at"])); + if (this.inboxSorting.sort_by === "desc") inboxIssues = orderBy(inboxIssues, "issue.updated_at", "desc"); + else inboxIssues = orderBy(inboxIssues, "issue.updated_at", "asc"); case "issue__sequence_id": - if (this.inboxSorting.sort_by === "desc") inboxIssues = orderBy(issues, ["issue", "sequence_id"]); - else inboxIssues = reverse(orderBy(issues, ["issue", "sequence_id"])); + if (this.inboxSorting.sort_by === "desc") inboxIssues = orderBy(inboxIssues, "issue.sequence_id", "desc"); + else inboxIssues = orderBy(inboxIssues, "issue.sequence_id", "asc"); default: - inboxIssues = orderBy(issues, ["issue", "created_at"]); + inboxIssues = inboxIssues; } } return inboxIssues;