Просмотр исходного кода

Merge pull request #2497 from weseek/imprv/gw3020

Imprv/gw3020
takeru0001 5 лет назад
Родитель
Сommit
9f2cd8594e

+ 2 - 1
resource/locales/en_US/translation.json

@@ -300,7 +300,8 @@
     "label": {
       "Duplicate page": "Duplicate page",
       "New page name": "New page name",
-      "Current page name": "Current page name"
+      "Current page name": "Current page name",
+      "Duplicate with child": "Duplicate with child"
     }
   },
   "modal_putback": {

+ 2 - 1
resource/locales/ja_JP/translation.json

@@ -301,7 +301,8 @@
     "label": {
       "Duplicate page": "ページを複製する",
       "New page name": "複製後のページ名",
-      "Current page name": "現在のページ名"
+      "Current page name": "現在のページ名",
+      "Duplicate with child": "配下のページも一緒に複製する"
     }
   },
   "modal_putback": {

+ 3 - 2
resource/locales/zh_CN/translation.json

@@ -298,7 +298,8 @@
 		"label": {
 			"Duplicate page": "Duplicate page",
 			"New page name": "New page name",
-			"Current page name": "Current page name"
+			"Current page name": "Current page name",
+			"Duplicate with child": "Duplicate with child"
 		}
 	},
 	"modal_putback": {
@@ -721,4 +722,4 @@
 		"complete_to_install2": "完成安装GROWI!请先检查此页上的每个设置。",
 		"failed_to_create_admin_user": "无法创建管理用户。{{errMessage}"
 	}
-}
+}

+ 19 - 0
src/client/js/components/PageDuplicateModal.jsx

@@ -26,6 +26,8 @@ const PageDuplicateModal = (props) => {
   const [errorCode, setErrorCode] = useState(null);
   const [errorMessage, setErrorMessage] = useState(null);
 
+  const [isDuplicateRecursively, setIsDuplicateRecursively] = useState(true);
+
   /**
    * change pageNameInput for PagePathAutoComplete
    * @param {string} value
@@ -42,6 +44,10 @@ const PageDuplicateModal = (props) => {
     setPageNameInput(value);
   }
 
+  function changeIsDuplicateRecursivelyHandler() {
+    setIsDuplicateRecursively(!isDuplicateRecursively);
+  }
+
   async function duplicate() {
     try {
       setErrorCode(null);
@@ -98,6 +104,19 @@ const PageDuplicateModal = (props) => {
             </div>
           </div>
         </div>
+        <div className="custom-control custom-checkbox custom-checkbox-warning">
+          <input
+            className="custom-control-input"
+            name="recursively"
+            id="cbDuplicateRecursively"
+            type="checkbox"
+            checked={isDuplicateRecursively}
+            onChange={changeIsDuplicateRecursivelyHandler}
+          />
+          <label className="custom-control-label" htmlFor="cbDuplicateRecursively">
+            { t('modal_duplicate.label.Duplicate with child') }
+          </label>
+        </div>
       </ModalBody>
       <ModalFooter>
         <ApiErrorMessage errorCode={errorCode} errorMessage={errorMessage} targetPath={pageNameInput} />