Browse Source

Merge pull request #1427 from visuddhinanda/agile

右边栏显示的时候,导航隐藏 iapt-platform#1413
visuddhinanda 2 years ago
parent
commit
90166a31bd

+ 2 - 1
dashboard/src/components/article/AnchorNav.tsx

@@ -1,5 +1,6 @@
 import { Anchor } from "antd";
 import { Anchor } from "antd";
 import { useEffect, useState } from "react";
 import { useEffect, useState } from "react";
+import { convertToPlain } from "../../utils";
 const { Link } = Anchor;
 const { Link } = Anchor;
 
 
 interface IHeadingAnchor {
 interface IHeadingAnchor {
@@ -100,7 +101,7 @@ const AnchorNavWidget = ({ open = false, content }: IWidget) => {
         const level = parseInt(heading[index].tagName.replace("H", ""));
         const level = parseInt(heading[index].tagName.replace("H", ""));
         headingAnchor.push({
         headingAnchor.push({
           key: `#${id}`,
           key: `#${id}`,
-          label: element.innerHTML,
+          label: convertToPlain(element.innerHTML).slice(0, 30),
           level: level,
           level: level,
         });
         });
       }
       }

+ 5 - 1
dashboard/src/components/corpus/Recent.tsx

@@ -1,5 +1,6 @@
 import { Button, List } from "antd";
 import { Button, List } from "antd";
 import { useEffect, useState } from "react";
 import { useEffect, useState } from "react";
+import { useIntl } from "react-intl";
 import { Link } from "react-router-dom";
 import { Link } from "react-router-dom";
 
 
 import { get } from "../../request";
 import { get } from "../../request";
@@ -7,6 +8,7 @@ import { IView, IViewListResponse } from "../api/view";
 
 
 const RecentWidget = () => {
 const RecentWidget = () => {
   const [listData, setListData] = useState<IView[]>([]);
   const [listData, setListData] = useState<IView[]>([]);
+  const intl = useIntl();
   useEffect(() => {
   useEffect(() => {
     let url = `/v2/view?view=user&limit=10`;
     let url = `/v2/view?view=user&limit=10`;
     get<IViewListResponse>(url).then((json) => {
     get<IViewListResponse>(url).then((json) => {
@@ -30,7 +32,9 @@ const RecentWidget = () => {
     <div style={{ padding: 6 }}>
     <div style={{ padding: 6 }}>
       <List
       <List
         itemLayout="vertical"
         itemLayout="vertical"
-        header="最近打开"
+        header={intl.formatMessage({
+          id: `labels.recent-scan`,
+        })}
         size="small"
         size="small"
         dataSource={listData}
         dataSource={listData}
         renderItem={(item) => {
         renderItem={(item) => {

+ 5 - 1
dashboard/src/components/recent/RecentModal.tsx

@@ -1,6 +1,7 @@
 import React, { useEffect, useState } from "react";
 import React, { useEffect, useState } from "react";
 import { Modal } from "antd";
 import { Modal } from "antd";
 import RecentList, { IRecent } from "./RecentList";
 import RecentList, { IRecent } from "./RecentList";
+import { useIntl } from "react-intl";
 
 
 interface IWidget {
 interface IWidget {
   trigger?: React.ReactNode;
   trigger?: React.ReactNode;
@@ -15,6 +16,7 @@ const RecentModalWidget = ({
   onOpen,
   onOpen,
 }: IWidget) => {
 }: IWidget) => {
   const [isModalOpen, setIsModalOpen] = useState(open);
   const [isModalOpen, setIsModalOpen] = useState(open);
+  const intl = useIntl();
 
 
   useEffect(() => {
   useEffect(() => {
     setIsModalOpen(open);
     setIsModalOpen(open);
@@ -48,7 +50,9 @@ const RecentModalWidget = ({
       <span onClick={showModal}>{trigger}</span>
       <span onClick={showModal}>{trigger}</span>
       <Modal
       <Modal
         width={"80%"}
         width={"80%"}
-        title="选择版本风格"
+        title={intl.formatMessage({
+          id: `labels.recent-scan`,
+        })}
         footer={false}
         footer={false}
         open={isModalOpen}
         open={isModalOpen}
         onOk={handleOk}
         onOk={handleOk}

+ 8 - 7
dashboard/src/components/term/TermEdit.tsx

@@ -111,7 +111,7 @@ const TermEditWidget = ({
     <>
     <>
       {readonly ? (
       {readonly ? (
         <Alert
         <Alert
-          message="该资源为只读,如果需要修改,请联络拥有者分配权限。"
+          message="该资源为只读,如果需要修改,请联络拥有者分配权限。或者您可以在下面的版本选择中选择另一个版本,将该术语保存到一个您有修改权限的版本中。"
           type="warning"
           type="warning"
           closable
           closable
           action={
           action={
@@ -338,7 +338,7 @@ const TermEditWidget = ({
                   noChange = false;
                   noChange = false;
                 }
                 }
               } else {
               } else {
-                if (channel[0] === channelId) {
+                if (channel[1] === channelId) {
                   noChange = true;
                   noChange = true;
                 } else {
                 } else {
                   noChange = false;
                   noChange = false;
@@ -348,21 +348,22 @@ const TermEditWidget = ({
                 <Space>
                 <Space>
                   <LangSelect disabled={hasChannel} required={!hasChannel} />
                   <LangSelect disabled={hasChannel} required={!hasChannel} />
                   <ProFormSelect
                   <ProFormSelect
-                    initialValue={"move"}
+                    initialValue={"copy"}
                     name="copy"
                     name="copy"
                     allowClear={false}
                     allowClear={false}
                     label=" "
                     label=" "
                     hidden={!id || noChange}
                     hidden={!id || noChange}
                     placeholder="Please select other meanings"
                     placeholder="Please select other meanings"
                     options={[
                     options={[
-                      {
-                        value: "move",
-                        label: "move",
-                      },
                       {
                       {
                         value: "copy",
                         value: "copy",
                         label: "copy",
                         label: "copy",
                       },
                       },
+                      {
+                        value: "move",
+                        label: "move",
+                        disabled: readonly,
+                      },
                     ]}
                     ]}
                   />
                   />
                 </Space>
                 </Space>

+ 1 - 0
dashboard/src/locales/zh-Hans/label.ts

@@ -16,6 +16,7 @@ const items = {
   "labels.first-course": "第一个课程",
   "labels.first-course": "第一个课程",
   "labels.updated-at": "更新于",
   "labels.updated-at": "更新于",
   "labels.created-at": "创建于",
   "labels.created-at": "创建于",
+  "labels.recent-scan": "最近打开",
 };
 };
 
 
 export default items;
 export default items;

+ 20 - 8
dashboard/src/pages/library/article/show.tsx

@@ -57,6 +57,7 @@ const Widget = () => {
   const [rightPanel, setRightPanel] = useState<TPanelName>("close");
   const [rightPanel, setRightPanel] = useState<TPanelName>("close");
   const [searchParams, setSearchParams] = useSearchParams();
   const [searchParams, setSearchParams] = useSearchParams();
   const [anchorNavOpen, setAnchorNavOpen] = useState(false);
   const [anchorNavOpen, setAnchorNavOpen] = useState(false);
+  const [anchorNavShow, setAnchorNavShow] = useState(true);
   const [recentModalOpen, setRecentModalOpen] = useState(false);
   const [recentModalOpen, setRecentModalOpen] = useState(false);
   const [loadedArticleData, setLoadedArticleData] =
   const [loadedArticleData, setLoadedArticleData] =
     useState<IArticleDataResponse>();
     useState<IArticleDataResponse>();
@@ -113,6 +114,7 @@ const Widget = () => {
   } else {
   } else {
     currMode = "read";
     currMode = "read";
   }
   }
+  console.log(anchorNavOpen, anchorNavShow);
   return (
   return (
     <div>
     <div>
       <Affix offsetTop={0}>
       <Affix offsetTop={0}>
@@ -134,10 +136,13 @@ const Widget = () => {
             {type === "article" && loadedArticleData ? (
             {type === "article" && loadedArticleData ? (
               <Button
               <Button
                 ghost
                 ghost
-                onClick={() => {
-                  navigate(
-                    `/studio/${loadedArticleData.studio?.realName}/article/${loadedArticleData.uid}/edit`
-                  );
+                onClick={(event) => {
+                  const url = `/studio/${loadedArticleData.studio?.realName}/article/${loadedArticleData.uid}/edit`;
+                  if (event.ctrlKey || event.metaKey) {
+                    window.open(fullUrl(url), "_blank");
+                  } else {
+                    navigate(url);
+                  }
                 }}
                 }}
               >
               >
                 Edit
                 Edit
@@ -187,9 +192,14 @@ const Widget = () => {
                 icon={<ColumnOutlinedIcon />}
                 icon={<ColumnOutlinedIcon />}
                 type="text"
                 type="text"
                 onClick={() =>
                 onClick={() =>
-                  setRightPanel((value) =>
-                    value === "close" ? "open" : "close"
-                  )
+                  setRightPanel((value) => {
+                    if (value === "close") {
+                      setAnchorNavShow(false);
+                    } else {
+                      setAnchorNavShow(true);
+                    }
+                    return value === "close" ? "open" : "close";
+                  })
                 }
                 }
               />
               />
             </Tooltip>
             </Tooltip>
@@ -335,7 +345,7 @@ const Widget = () => {
             />
             />
           </div>
           </div>
           <div key="RightPanel" id="article_right_panel">
           <div key="RightPanel" id="article_right_panel">
-            <AnchorNav open={anchorNavOpen} />
+            <AnchorNav open={anchorNavOpen && anchorNavShow} />
             <RightPanel
             <RightPanel
               curr={rightPanel}
               curr={rightPanel}
               type={type as ArticleType}
               type={type as ArticleType}
@@ -343,6 +353,8 @@ const Widget = () => {
               selectedChannelsId={searchParams.get("channel")?.split("_")}
               selectedChannelsId={searchParams.get("channel")?.split("_")}
               onClose={() => {
               onClose={() => {
                 setRightPanel("close");
                 setRightPanel("close");
+                console.log("right panel", "close");
+                setAnchorNavShow(true);
               }}
               }}
               onTabChange={(curr: TPanelName) => setRightPanel(curr)}
               onTabChange={(curr: TPanelName) => setRightPanel(curr)}
               onChannelSelect={(e: IChannel[]) => {
               onChannelSelect={(e: IChannel[]) => {