From eea1a045855a8c66203393b43fdda137c38fa80f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E9=A1=BA=E5=BC=BA?= <978987373@qq.com> Date: Mon, 2 Sep 2024 12:55:10 +0800 Subject: [PATCH] Revert "feat: sdoc metadata (#6682)" (#6684) This reverts commit 9bda2010943e89c16cbd98737bcb9876083e0829. --- frontend/package-lock.json | 380 +++++++++--------- frontend/package.json | 2 +- .../embedded-file-details/file-details.js | 63 --- .../embedded-file-details/index.css | 3 - .../embedded-file-details/index.js | 72 ---- .../{old-file-details.js => file-details.js} | 0 .../src/components/file-view/file-view.js | 2 +- .../src/metadata/hooks/enable-metadata.js | 45 --- frontend/src/metadata/hooks/index.js | 1 - .../src/metadata/metadata-view/model/user.js | 3 +- frontend/src/pages/sdoc/sdoc-editor/index.js | 146 +++---- frontend/src/view-file-sdoc.js | 7 +- media/sdoc-editor/sdoc-editor-font.css | 20 +- .../sdoc-editor/sdoc-editor-font/iconfont.eot | Bin 25528 -> 25136 bytes .../sdoc-editor/sdoc-editor-font/iconfont.svg | 4 - .../sdoc-editor/sdoc-editor-font/iconfont.ttf | Bin 25360 -> 24968 bytes .../sdoc-editor-font/iconfont.woff | Bin 14636 -> 14464 bytes .../sdoc-editor-font/iconfont.woff2 | Bin 12420 -> 12256 bytes seahub/templates/file_view_react.html | 1 - seahub/views/file.py | 2 - 20 files changed, 274 insertions(+), 477 deletions(-) delete mode 100644 frontend/src/components/dirent-detail/embedded-file-details/file-details.js delete mode 100644 frontend/src/components/dirent-detail/embedded-file-details/index.css delete mode 100644 frontend/src/components/dirent-detail/embedded-file-details/index.js rename frontend/src/components/dirent-detail/{old-file-details.js => file-details.js} (100%) delete mode 100644 frontend/src/metadata/hooks/enable-metadata.js diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 5159c6ce20..e42d12426f 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -16,7 +16,7 @@ "@gatsbyjs/reach-router": "1.3.9", "@seafile/react-image-lightbox": "2.0.2", "@seafile/resumablejs": "1.1.16", - "@seafile/sdoc-editor": "^1.0.70", + "@seafile/sdoc-editor": "^1.0.66", "@seafile/seafile-calendar": "0.0.12", "@seafile/seafile-editor": "^1.0.115", "@seafile/sf-metadata-ui-component": "^0.0.29", @@ -166,9 +166,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -232,11 +232,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dependencies": { - "@babel/types": "^7.25.6", + "@babel/types": "^7.25.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -287,9 +287,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", - "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", @@ -297,7 +297,7 @@ "@babel/helper-optimise-call-expression": "^7.24.7", "@babel/helper-replace-supers": "^7.25.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.4", + "@babel/traverse": "^7.25.0", "semver": "^6.3.1" }, "engines": { @@ -504,13 +504,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", - "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "dev": true, "dependencies": { "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6" + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -531,11 +531,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", "dependencies": { - "@babel/types": "^7.25.6" + "@babel/types": "^7.25.2" }, "bin": { "parser": "bin/babel-parser.js" @@ -851,12 +851,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz", - "integrity": "sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -866,12 +866,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz", - "integrity": "sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1022,12 +1022,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz", - "integrity": "sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1068,15 +1068,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz", - "integrity": "sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-remap-async-to-generator": "^7.25.0", "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/traverse": "^7.25.4" + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1133,13 +1133,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz", - "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1166,16 +1166,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", - "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-compilation-targets": "^7.24.8", "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-replace-supers": "^7.25.0", - "@babel/traverse": "^7.25.4", + "@babel/traverse": "^7.25.0", "globals": "^11.1.0" }, "engines": { @@ -1635,13 +1635,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", - "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1795,15 +1795,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz", - "integrity": "sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.7", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.10.1", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -1957,13 +1957,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz", - "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1973,12 +1973,12 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.4.tgz", - "integrity": "sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.25.4", + "@babel/compat-data": "^7.25.2", "@babel/helper-compilation-targets": "^7.25.2", "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-validator-option": "^7.24.8", @@ -2007,13 +2007,13 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoped-functions": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.25.4", + "@babel/plugin-transform-classes": "^7.25.0", "@babel/plugin-transform-computed-properties": "^7.24.7", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-dotall-regex": "^7.24.7", @@ -2041,7 +2041,7 @@ "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.25.4", + "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-property-literals": "^7.24.7", "@babel/plugin-transform-regenerator": "^7.24.7", @@ -2054,10 +2054,10 @@ "@babel/plugin-transform-unicode-escapes": "^7.24.7", "@babel/plugin-transform-unicode-property-regex": "^7.24.7", "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.4", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.10.4", "babel-plugin-polyfill-regenerator": "^0.6.1", "core-js-compat": "^3.37.1", "semver": "^6.3.1" @@ -2141,9 +2141,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", - "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2152,9 +2152,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.25.6.tgz", - "integrity": "sha512-Gz0Nrobx8szge6kQQ5Z5MX9L3ObqNwCQY1PSwSNzreFL7aHGxv8Fp2j3ETV6/wWdbiV+mW6OSm8oQhg3Tcsniw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.25.0.tgz", + "integrity": "sha512-BOehWE7MgQ8W8Qn0CQnMtg2tHPHPulcS/5AVpFvs2KCK1ET+0WqZqPvnpRpFN81gYoFopdIEJX9Sgjw3ZBccPg==", "dev": true, "dependencies": { "core-js-pure": "^3.30.2", @@ -2178,15 +2178,15 @@ } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", + "@babel/types": "^7.25.2", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2195,9 +2195,9 @@ } }, "node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dependencies": { "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", @@ -2231,9 +2231,9 @@ } }, "node_modules/@codemirror/commands": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.6.1.tgz", - "integrity": "sha512-iBfKbyIoXS1FGdsKcZmnrxmbc8VcbMrSgD7AVrsnX+WyAYjmUDWvE93dt5D874qS4CCVu4O1JpbagHdXbbLiOw==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.6.0.tgz", + "integrity": "sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg==", "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.4.0", @@ -2242,9 +2242,9 @@ } }, "node_modules/@codemirror/commands/node_modules/@codemirror/view": { - "version": "6.33.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.33.0.tgz", - "integrity": "sha512-AroaR3BvnjRW8fiZBalAaK+ZzB5usGgI014YKElYZvQdNH5ZIidHlO+cyf/2rWzyBFRkvG6VhiXeAEbC53P2YQ==", + "version": "6.32.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.32.0.tgz", + "integrity": "sha512-AgVNvED2QTsZp5e3syoHLsrWtwJFYWdx1Vr/m3f4h1ATQz0ax60CfXF3Htdmk69k2MlYZw8gXesnQdHtzyVmAw==", "dependencies": { "@codemirror/state": "^6.4.0", "style-mod": "^4.1.0", @@ -2431,9 +2431,9 @@ } }, "node_modules/@codemirror/lang-sql": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-sql/-/lang-sql-6.7.1.tgz", - "integrity": "sha512-flQa7zemrLKk0TIrOJnpeyH/b29BcVybtsTeZMgAo40O6kGbrnUSCgwI3TF5iJY3O9VXJKKCA+i0CBVvDfr88w==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@codemirror/lang-sql/-/lang-sql-6.7.0.tgz", + "integrity": "sha512-KMXp6rtyPYz6RaElvkh/77ClEAoQoHRPZo0zutRRialeFs/B/X8YaUJBCnAV2zqyeJPLZ4hgo48mG8TKoNXfZA==", "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/language": "^6.0.0", @@ -2520,9 +2520,9 @@ } }, "node_modules/@codemirror/language/node_modules/@codemirror/view": { - "version": "6.33.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.33.0.tgz", - "integrity": "sha512-AroaR3BvnjRW8fiZBalAaK+ZzB5usGgI014YKElYZvQdNH5ZIidHlO+cyf/2rWzyBFRkvG6VhiXeAEbC53P2YQ==", + "version": "6.32.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.32.0.tgz", + "integrity": "sha512-AgVNvED2QTsZp5e3syoHLsrWtwJFYWdx1Vr/m3f4h1ATQz0ax60CfXF3Htdmk69k2MlYZw8gXesnQdHtzyVmAw==", "dependencies": { "@codemirror/state": "^6.4.0", "style-mod": "^4.1.0", @@ -2530,9 +2530,9 @@ } }, "node_modules/@codemirror/legacy-modes": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.4.1.tgz", - "integrity": "sha512-vdg3XY7OAs5uLDx2Iw+cGfnwtd7kM+Et/eMsqAGTfT/JKiVBQZXosTzjEbWAi/FrY6DcQIz8mQjBozFHZEUWQA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.4.0.tgz", + "integrity": "sha512-5m/K+1A6gYR0e+h/dEde7LoGimMjRtWXZFg4Lo70cc8HzjSdHe3fLwjWMR0VRl5KFT1SxalSap7uMgPKF28wBA==", "dependencies": { "@codemirror/language": "^6.0.0" } @@ -2948,14 +2948,14 @@ "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" }, "node_modules/@emotion/react": { - "version": "11.13.3", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.3.tgz", - "integrity": "sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==", + "version": "11.13.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.0.tgz", + "integrity": "sha512-WkL+bw1REC2VNV1goQyfxjx1GYJkcc23CRQkXX+vZNLINyfI7o+uUn/rTGPt/xJ3bJHd5GcljgnxHf4wRw5VWQ==", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.12.0", "@emotion/cache": "^11.13.0", - "@emotion/serialize": "^1.3.1", + "@emotion/serialize": "^1.3.0", "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", "@emotion/utils": "^1.4.0", "@emotion/weak-memoize": "^0.4.0", @@ -2984,13 +2984,13 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/@emotion/serialize": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.1.tgz", - "integrity": "sha512-dEPNKzBPU+vFPGa+z3axPRn8XVDetYORmDC0wAiej+TNcOZE70ZMJa0X7JdeoM6q/nWTMZeLpN/fTnD9o8MQBA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.0.tgz", + "integrity": "sha512-jACuBa9SlYajnpIVXB+XOXnfJHyckDfe6fOpORIM6yhBDlqGuExvDdZYHDQGoDf3bZXGv7tNr+LpLjJqiEQ6EA==", "dependencies": { "@emotion/hash": "^0.9.2", "@emotion/memoize": "^0.9.0", - "@emotion/unitless": "^0.10.0", + "@emotion/unitless": "^0.9.0", "@emotion/utils": "^1.4.0", "csstype": "^3.0.2" } @@ -3001,9 +3001,9 @@ "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==" }, "node_modules/@emotion/unitless": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", - "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.9.0.tgz", + "integrity": "sha512-TP6GgNZtmtFaFcsOgExdnfxLLpRDla4Q66tnenA9CktvVSdNKDvMVuUah4QvWPIpNjrWsGg3qeGo9a43QooGZQ==" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { "version": "1.1.0", @@ -4783,9 +4783,9 @@ "integrity": "sha512-8rBbmAEuuwOAGHYGCtEzpx+bxAcGS+V30otMmhRe7bPAdh4E57RWgCa8x7pkzHGFlY1t5d+ILz1gojvPVMYQig==" }, "node_modules/@seafile/sdoc-editor": { - "version": "1.0.70", - "resolved": "https://registry.npmjs.org/@seafile/sdoc-editor/-/sdoc-editor-1.0.70.tgz", - "integrity": "sha512-lPOj07d3uVXIwUdKgdMsAFMPS3eejkGDMSR6V12tjYwahIXy64ApPALiWimF7rG49p9nsjqKRBbygrhrgCeNuA==", + "version": "1.0.66", + "resolved": "https://registry.npmjs.org/@seafile/sdoc-editor/-/sdoc-editor-1.0.66.tgz", + "integrity": "sha512-7v3mynzapsUKNwb5AHadXsR0/RzTmFAJNeJSe5ncjNgB0Ys+q1guM3iLARi96Tw7pEoTutzezUN/vI7qIZNWUw==", "dependencies": { "@seafile/print-js": "1.6.6", "@seafile/react-image-lightbox": "2.0.4", @@ -5923,15 +5923,25 @@ } }, "node_modules/@types/eslint": { - "version": "8.56.12", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz", - "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", + "version": "8.56.11", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.11.tgz", + "integrity": "sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==", "dev": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -6118,11 +6128,11 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "22.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.2.tgz", - "integrity": "sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==", + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz", + "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", "dependencies": { - "undici-types": "~6.19.2" + "undici-types": "~6.18.2" } }, "node_modules/@types/node-forge": { @@ -6174,9 +6184,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.3.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.5.tgz", - "integrity": "sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==", + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -7526,9 +7536,9 @@ "dev": true }, "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, "node_modules/asynckit": { @@ -7617,9 +7627,10 @@ } }, "node_modules/axios": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", - "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -8531,9 +8542,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001655", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz", - "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==", + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", "dev": true, "funding": [ { @@ -8728,9 +8739,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz", - "integrity": "sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", "dev": true }, "node_modules/class-utils": { @@ -9139,9 +9150,9 @@ "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.38.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", - "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz", + "integrity": "sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==", "dev": true, "dependencies": { "browserslist": "^4.23.3" @@ -9152,9 +9163,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.38.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.38.1.tgz", - "integrity": "sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==", + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.38.0.tgz", + "integrity": "sha512-8balb/HAXo06aHP58mZMtXgD8vcnXz9tUDePgqBgJgKdmTlMt+jw3ujqniuBDQXMvTzxnMpxHFeuSM3g1jWQuQ==", "dev": true, "hasInstallScript": true, "funding": { @@ -10434,9 +10445,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", - "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.7.tgz", + "integrity": "sha512-6FTNWIWMxMy/ZY6799nBlPtF1DFDQ6VQJ7yyDP27SJNt5lwtQ5ufqVvHylb3fdQefvRcgA3fKcFMJi9OLwBRNw==", "dev": true }, "node_modules/elliptic": { @@ -10774,9 +10785,9 @@ } }, "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -10930,9 +10941,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.2.tgz", - "integrity": "sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -14309,9 +14320,9 @@ } }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dependencies": { "hasown": "^2.0.2" }, @@ -18106,9 +18117,9 @@ } }, "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz", + "integrity": "sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==", "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", @@ -18909,9 +18920,9 @@ ] }, "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "dependencies": { "braces": "^3.0.3", @@ -18998,9 +19009,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.1.tgz", - "integrity": "sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", "dev": true, "dependencies": { "schema-utils": "^4.0.0", @@ -20167,9 +20178,9 @@ } }, "node_modules/postcss": { - "version": "8.4.43", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.43.tgz", - "integrity": "sha512-gJAQVYbh5R3gYm33FijzCZj7CHyQ3hWMgJMprLUlIYqCwTeZhBQ19wp0e9mA25BUbEvY5+EXuuaAjqQsrBxQBQ==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "funding": [ { "type": "opencollective", @@ -22114,9 +22125,9 @@ } }, "node_modules/react-app-polyfill/node_modules/core-js": { - "version": "3.38.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", - "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.0.tgz", + "integrity": "sha512-XPpwqEodRljce9KswjZShh95qJ1URisBeKCjUdq27YdenkslVe7OO0ZJhlYXAChW7OhXaRLl8AAba7IBfoIHug==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -24449,6 +24460,7 @@ "version": "0.2.235", "resolved": "https://registry.npmjs.org/seafile-js/-/seafile-js-0.2.235.tgz", "integrity": "sha512-wpE/WNNzsp/65IQ3t1CAV+OhswGkoI1s9WakkNHw+8qG1hpzXiEXFiVX0VI+UXnOvwCw1NiWGRQIUPkpyryuew==", + "license": "ISC", "dependencies": { "axios": "^1.7.4", "form-data": "4.0.0" @@ -26939,9 +26951,9 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true }, "node_modules/tsutils": { @@ -27186,9 +27198,9 @@ "dev": true }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", + "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -27727,11 +27739,12 @@ } }, "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", + "integrity": "sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==", "dependencies": { "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" }, "funding": { @@ -27908,11 +27921,12 @@ } }, "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "version": "5.93.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", + "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", "dev": true, "dependencies": { + "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", @@ -27921,7 +27935,7 @@ "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", + "enhanced-resolve": "^5.17.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", diff --git a/frontend/package.json b/frontend/package.json index 5ec6d72791..90eae60dd9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,7 +11,7 @@ "@gatsbyjs/reach-router": "1.3.9", "@seafile/react-image-lightbox": "2.0.2", "@seafile/resumablejs": "1.1.16", - "@seafile/sdoc-editor": "^1.0.70", + "@seafile/sdoc-editor": "^1.0.66", "@seafile/seafile-calendar": "0.0.12", "@seafile/seafile-editor": "^1.0.115", "@seafile/sf-metadata-ui-component": "^0.0.29", diff --git a/frontend/src/components/dirent-detail/embedded-file-details/file-details.js b/frontend/src/components/dirent-detail/embedded-file-details/file-details.js deleted file mode 100644 index d4c7e1df0e..0000000000 --- a/frontend/src/components/dirent-detail/embedded-file-details/file-details.js +++ /dev/null @@ -1,63 +0,0 @@ -import React, { useMemo } from 'react'; -import PropTypes from 'prop-types'; -import { Formatter } from '@seafile/sf-metadata-ui-component'; -import DetailItem from '../detail-item'; -import { CellType } from '../../../metadata/metadata-view/_basic'; -import { gettext } from '../../../utils/constants'; -import { Utils } from '../../../utils/utils'; -import { MetadataDetails, useEnableMetadata } from '../../../metadata'; -import ObjectUtils from '../../../metadata/metadata-view/utils/object-utils'; - -const FileDetails = React.memo(({ repoID, repoInfo, path, direntDetail }) => { - const { enableMetadata } = useEnableMetadata(); - - const sizeField = useMemo(() => ({ type: 'size', name: gettext('Size') }), []); - const lastModifierField = useMemo(() => ({ type: CellType.LAST_MODIFIER, name: gettext('Last modifier') }), []); - const lastModifiedTimeField = useMemo(() => ({ type: CellType.MTIME, name: gettext('Last modified time') }), []); - - return ( - <> - - - - - - - - - - {window.app.pageOptions.enableMetadataManagement && enableMetadata && ( - - )} - - ); -}, (props, nextProps) => { - const { repoID, repoInfo, dirent, path, direntDetail } = props; - const isChanged = ( - repoID !== nextProps.repoID || - path !== nextProps.path || - !ObjectUtils.isSameObject(repoInfo, nextProps.repoInfo) || - !ObjectUtils.isSameObject(dirent, nextProps.dirent) || - !ObjectUtils.isSameObject(direntDetail, nextProps.direntDetail) - ); - return !isChanged; -}); - -FileDetails.propTypes = { - repoID: PropTypes.string, - repoInfo: PropTypes.object, - dirent: PropTypes.object, - path: PropTypes.string, - direntDetail: PropTypes.object, -}; - -export default FileDetails; diff --git a/frontend/src/components/dirent-detail/embedded-file-details/index.css b/frontend/src/components/dirent-detail/embedded-file-details/index.css deleted file mode 100644 index 14bebac608..0000000000 --- a/frontend/src/components/dirent-detail/embedded-file-details/index.css +++ /dev/null @@ -1,3 +0,0 @@ -.detail-body .empty-tip-text { - color: #666; -} diff --git a/frontend/src/components/dirent-detail/embedded-file-details/index.js b/frontend/src/components/dirent-detail/embedded-file-details/index.js deleted file mode 100644 index 7f2e6e2dca..0000000000 --- a/frontend/src/components/dirent-detail/embedded-file-details/index.js +++ /dev/null @@ -1,72 +0,0 @@ -import React, { useEffect, useState } from 'react'; -import PropTypes from 'prop-types'; -import classnames from 'classnames'; -import { seafileAPI } from '../../../utils/seafile-api'; -import { Utils } from '../../../utils/utils'; -import toaster from '../../toast'; -import { Header, Body } from '../detail'; -import FileDetails from './file-details'; -import { MetadataContext } from '../../../metadata'; - -import './index.css'; - -const EmbeddedFileDetails = ({ repoID, repoInfo, dirent, path, onClose, width, className }) => { - - const [direntDetail, setDirentDetail] = useState(''); - - useEffect(() => { - // init context - const context = new MetadataContext(); - window.sfMetadataContext = context; - window.sfMetadataContext.init({ repoID, repoInfo }); - seafileAPI.getFileInfo(repoID, path).then(res => { - setDirentDetail(res.data); - }).catch(error => { - const errMessage = Utils.getErrorMsg(error); - toaster.danger(errMessage); - }); - - return () => { - window.sfMetadataContext.destroy(); - delete window['sfMetadataContext']; - }; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - - const direntName = dirent?.name || ''; - const smallIconUrl = Utils.getDirentIcon(dirent); - - return ( -
400 - })} - style={{ width }} - > -
- - {dirent && direntDetail && ( -
- -
- )} - -
- ); -}; - -EmbeddedFileDetails.propTypes = { - repoID: PropTypes.string.isRequired, - dirent: PropTypes.object, - path: PropTypes.string.isRequired, - repoInfo: PropTypes.object.isRequired, - onClose: PropTypes.func.isRequired, -}; - -export default EmbeddedFileDetails; diff --git a/frontend/src/components/dirent-detail/old-file-details.js b/frontend/src/components/dirent-detail/file-details.js similarity index 100% rename from frontend/src/components/dirent-detail/old-file-details.js rename to frontend/src/components/dirent-detail/file-details.js diff --git a/frontend/src/components/file-view/file-view.js b/frontend/src/components/file-view/file-view.js index 6132f5b6a3..7ed754d877 100644 --- a/frontend/src/components/file-view/file-view.js +++ b/frontend/src/components/file-view/file-view.js @@ -7,7 +7,7 @@ import { Utils } from '../../utils/utils'; import toaster from '../toast'; import FileInfo from './file-info'; import FileToolbar from './file-toolbar'; -import FileDetails from '../dirent-detail/old-file-details'; +import FileDetails from '../dirent-detail/file-details'; import '../../css/file-view.css'; diff --git a/frontend/src/metadata/hooks/enable-metadata.js b/frontend/src/metadata/hooks/enable-metadata.js deleted file mode 100644 index 2bc99ea959..0000000000 --- a/frontend/src/metadata/hooks/enable-metadata.js +++ /dev/null @@ -1,45 +0,0 @@ -import React, { useContext, useEffect, useMemo, useState } from 'react'; -import metadataAPI from '../api'; -import { Utils } from '../../utils/utils'; -import toaster from '../../components/toast'; - -// This hook provides content related to seahub interaction, such as whether to enable extended attributes -const EnableMetadataContext = React.createContext(null); - -export const EnableMetadataProvider = ({ repoID, children }) => { - const enableMetadataManagement = useMemo(() => { - return window.app.pageOptions.enableMetadataManagement; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [window.app.pageOptions.enableMetadataManagement]); - - const [enableMetadata, setEnableExtendedProperties] = useState(false); - - useEffect(() => { - if (!enableMetadataManagement) { - return; - } - metadataAPI.getMetadataStatus(repoID).then(res => { - const enableMetadata = res.data.enabled; - setEnableExtendedProperties(enableMetadata); - }).catch(error => { - const errorMsg = Utils.getErrorMsg(error, true); - toaster.danger(errorMsg); - setEnableExtendedProperties(false); - }); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [repoID, enableMetadataManagement]); - - return ( - - {children} - - ); -}; - -export const useEnableMetadata = () => { - const context = useContext(EnableMetadataContext); - if (!context) { - throw new Error('\'EnableMetadataContext\' is null'); - } - return context; -}; diff --git a/frontend/src/metadata/hooks/index.js b/frontend/src/metadata/hooks/index.js index 74b4c9ab56..a00eced1d9 100644 --- a/frontend/src/metadata/hooks/index.js +++ b/frontend/src/metadata/hooks/index.js @@ -1,3 +1,2 @@ export { MetadataProvider, useMetadata } from './metadata'; -export { EnableMetadataProvider, useEnableMetadata } from './enable-metadata'; export { CollaboratorsProvider, useCollaborators } from './collaborators'; diff --git a/frontend/src/metadata/metadata-view/model/user.js b/frontend/src/metadata/metadata-view/model/user.js index a46c3e5b9d..f41a8888e2 100644 --- a/frontend/src/metadata/metadata-view/model/user.js +++ b/frontend/src/metadata/metadata-view/model/user.js @@ -2,8 +2,7 @@ class User { constructor(object) { this.avatar_url = object.avatar_url || ''; this.contact_email = object.contact_email || ''; - this.username = object.email || object.username || ''; - this.email = this.username; + this.email = object.email || ''; this.name = object.name || ''; this.name_pinyin = object.name_pinyin || ''; this.id = object.id_in_org || ''; diff --git a/frontend/src/pages/sdoc/sdoc-editor/index.js b/frontend/src/pages/sdoc/sdoc-editor/index.js index a942106bba..b936663a8c 100644 --- a/frontend/src/pages/sdoc/sdoc-editor/index.js +++ b/frontend/src/pages/sdoc/sdoc-editor/index.js @@ -1,106 +1,94 @@ -import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import React, { Fragment } from 'react'; import { SimpleEditor } from '@seafile/sdoc-editor'; import ExternalOperations from './external-operations'; import { seafileAPI } from '../../../utils/seafile-api'; import Dirent from '../../../models/dirent'; import { Utils } from '../../../utils/utils'; -import { useCollaborators } from '../../../metadata'; -import EmbeddedFileDetails from '../../../components/dirent-detail/embedded-file-details'; -const SdocEditor = () => { - const [isStarred, setStarted] = useState(window.app.pageOptions.isStarred); - const [isDraft] = useState(window.app.pageOptions.isSdocDraft); - const [direntList, setDirentList] = useState([]); - const [currentDirent, setCurrentDirent] = useState(null); - const { collaborators } = useCollaborators(); - const plugins = useMemo(() => { - const { repoID, docPath, docPerm } = window.seafile; - return [ - { - name: 'sdoc-info', - icon: 'sdoc-info', - resizable_width: true, - display_type: 'right-panel', - component: ({ onClose, width }) => { - return (); - }, - } - ]; - }, [currentDirent]); +export default class SdocEditor extends React.Component { - const dirPath = useMemo(() => { - const { docPath } = window.seafile; - const index = docPath.lastIndexOf('/'); - if (index) { - return docPath.slice(0, index); - } - return '/'; - }, []); + constructor(props) { + super(props); + const { isStarred, isSdocDraft } = window.app.pageOptions; + this.state = { + isStarred: isStarred, + isDraft: isSdocDraft, + direntList: [] + }; + } - const onSetFavicon = useCallback((suffix) => { + componentDidMount() { + this.onSetFavicon(); + this.getDirentList(); + } + + toggleStar = (isStarred) => { + this.setState({ isStarred: isStarred }); + }; + + onSetFavicon = (suffix) => { let { docName } = window.seafile; if (suffix) { docName = docName + suffix; } const fileIcon = Utils.getFileIconUrl(docName); document.getElementById('favicon').href = fileIcon; - }, []); - - const toggleStar = (isStarred) => { - setStarted(isStarred); }; - const onNewNotification = useCallback(() => { - onSetFavicon('_notification'); - }, [onSetFavicon]); + onNewNotification = () => { + this.onSetFavicon('_notification'); + }; - const onClearNotification = useCallback(() => { - onSetFavicon(); - }, [onSetFavicon]); + onClearNotification = () => { + this.onSetFavicon(); + }; - const getDirentList = () => { - const { repoID, docPath } = window.seafile; - seafileAPI.listDir(repoID, dirPath, { 'with_thumbnail': true }).then(res => { + getDirPath = () => { + const { docPath } = window.seafile; + const index = docPath.lastIndexOf('/'); + if (index) { + return docPath.slice(0, index); + } + return '/'; + }; + + getDirentList = () => { + const { repoID } = window.seafile; + const path = this.getDirPath(); + seafileAPI.listDir(repoID, path, { 'with_thumbnail': true }).then(res => { let direntList = []; res.data.dirent_list.forEach(item => { - const dirent = new Dirent(item); - if (Utils.joinPath(item.parent_dir, item.name) === docPath) { - setCurrentDirent(dirent); - } + let dirent = new Dirent(item); direntList.push(dirent); }); - setDirentList(direntList); + this.setState({ + direntList: direntList + }); }).catch((err) => { Utils.getErrorMsg(err, true); }); }; - useEffect(() => { - onSetFavicon(); - getDirentList(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - - const { repoID, docPath, docName, docPerm } = window.seafile; - return ( - <> - - - - ); - -}; - -export default SdocEditor; - + render() { + const { repoID, docPath, docName, docPerm } = window.seafile; + const { isStarred, isDraft, direntList } = this.state; + const dirPath = this.getDirPath(); + return ( + + + + + ); + } +} diff --git a/frontend/src/view-file-sdoc.js b/frontend/src/view-file-sdoc.js index 93235e99bd..e1274f9eb0 100644 --- a/frontend/src/view-file-sdoc.js +++ b/frontend/src/view-file-sdoc.js @@ -5,7 +5,6 @@ import i18n from './_i18n/i18n-sdoc-editor'; import { Utils } from './utils/utils'; import Loading from './components/loading'; import SdocEditor from './pages/sdoc/sdoc-editor'; -import { CollaboratorsProvider, EnableMetadataProvider } from './metadata'; const { serviceURL, avatarURL, siteRoot, lang, mediaUrl, isPro } = window.app.config; const { username, name } = window.app.userInfo; @@ -52,11 +51,7 @@ window.seafile = { ReactDom.render( }> - - - - - + , document.getElementById('wrapper') diff --git a/media/sdoc-editor/sdoc-editor-font.css b/media/sdoc-editor/sdoc-editor-font.css index 243a34f339..3d2a8568fc 100644 --- a/media/sdoc-editor/sdoc-editor-font.css +++ b/media/sdoc-editor/sdoc-editor-font.css @@ -1,11 +1,11 @@ @font-face { font-family: "sdocfont"; /* Project id 4097705 */ - src: url('./sdoc-editor-font/iconfont.eot?t=1725002301707'); /* IE9 */ - src: url('./sdoc-editor-font/iconfont.eot?t=1725002301707#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('./sdoc-editor-font/iconfont.woff2?t=1725002301707') format('woff2'), - url('./sdoc-editor-font/iconfont.woff?t=1725002301707') format('woff'), - url('./sdoc-editor-font/iconfont.ttf?t=1725002301707') format('truetype'), - url('./sdoc-editor-font/iconfont.svg?t=1725002301707#sdocfont') format('svg'); + src: url('./sdoc-editor-font/iconfont.eot?t=1722915152576'); /* IE9 */ + src: url('./sdoc-editor-font/iconfont.eot?t=1722915152576#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./sdoc-editor-font/iconfont.woff2?t=1722915152576') format('woff2'), + url('./sdoc-editor-font/iconfont.woff?t=1722915152576') format('woff'), + url('./sdoc-editor-font/iconfont.ttf?t=1722915152576') format('truetype'), + url('./sdoc-editor-font/iconfont.svg?t=1722915152576#sdocfont') format('svg'); } .sdocfont { @@ -16,14 +16,6 @@ -moz-osx-font-smoothing: grayscale; } -.sdoc-info:before { - content: "\e677"; -} - -.sdoc-inline-code:before { - content: "\e676"; -} - .sdoc-sort:before { content: "\e674"; } diff --git a/media/sdoc-editor/sdoc-editor-font/iconfont.eot b/media/sdoc-editor/sdoc-editor-font/iconfont.eot index 2ebb145583f5681bb41a25ecc67de75bc7722f8b..3bca032b88686318800c3684d138446706d6c89e 100644 GIT binary patch delta 2229 zcmXw)TWl0%7>1wO-5#Lrwq=(dw%c}Tw}4my5s^cIa#T)=3IYn!(gGD*D5VfICTk2A zsDw~4TySB8AQy&s2*eQLh4I*!Xbd5e7!wR3Uku?wFZ4o<_5J$C**yRM&+N?3&ilRJ zJ6FGnKKe2$p1li>caId$ON``eXN`2eSy%5z6~CwTry}1sFnn}$=Ga&IJspci`w#SVzy9x$ zlTbFO?`@#_=wS3l)S&O`w4dAGJ+M3TVP?(+*zyX*_6{C6G<@=luHRwX9sPlGr+cH; zwjm;&EN0c_M|M_r{6Sel2jKS2H9!16pS~2;M?}M<6c$RrQ#{sspqQFYpSj8X*>Ei|V@gk3~nn&5gW2|8DebxN--rANeO@Um>#(J^0}f|RM1)4ieB|m+psGVkQ!J# zAYCviX%G?`(_e8UIaU#n_*gQa zGGLVf6$GmaNGq&5pdw+D0xB1l3aD^cI-n9_vbR%EHL;q2>Wb9{RAEehbyRDtKA@^& znSkn#$=A;K(`2<4@&wixkUOxZfP8{A2jmzmr~7MAQ)y>PKsLf!0x}fV8j!WHe1H|2 z+X8YMHZ>sMVbcO~Am%Cwc@cB|un;OnGTx+PCM+Mr6lO|!Vs6n zh@%MsHG~i^h(SyZ5`%;oMK6GGg-I`F^^UsCv ztxG>zu1itC7d`H(bv&G&jvQ}#H?|hA#sRcP`#J`<{qgtDfc-MyzP+#a$llk#+MExh zi~$?EySq9%7kb`4%5$ekt={3jYoFmU&qqmj-|*FS-Dy(|g=Z}_f zPvRRj!eOQGsSf`0h2`+v99NsJysfX^iCR33N>rg5HCT$Lumt6(z+x;y9X8@c?8Xb& zj+d|l{TRT@JYx`T*oj@J$16C1SFt9BR+M2a4q^yBcn!Vi!!uZiXVH!4upS$*ADgfl zTkt%#q6pit7yHnK4(ve`%h7-pXy@BCVkMfe3e9N2YAnM-EIg@Ys*C?O=#KrtaSL7`}nWJ8P!L+FY^tsx!*Rfl*D z)E|;+pc4?Efg(ZD40H#QZlF&Pzk!ZH0tR{q$uQ7GNG4*sfQCY{473))pei&Ol4GFV zkX!?ehcM8}{I}t-2w@l?K?7p}DKIb~kU|5a0tp#VALBuhf%$53<0(5JDCj7)OYzM;J_qsv6_Mj6&1~!n8uv2EyDz)CR%?L)16I zEJM^!!c;>v7liqSXf6no4$)i?W*(xsAWT0*b3r%J1zdh`u@D zz(AH6I69E!1`ZLV!N75XtT1q}AdLo&7-Xe^!v<-Zhx&K$V3mOr2x&HO79lMLP9IQkG( zhOh)6stjQrKvWsRVt}YJgcSi%WeCdxqG}M<21L_OSRfFc5Q3NnOGkmQRUkSEgslS6 zNg!+*h$fyO#9fn3*ggCNixQ&g zC#+0}rk}7pA^irujL3k2g$fxouv#Gp3@lm5K?Ca+GGt)!LWT{jV8|hb{_B-TMhxs_ zUY88>*DgMcqd0>H)}$?9yJGLLi=)=D$8p)Y+WDsQqVtZ+olio?1 zO5Tz@oP0l}KIN^HZ#+KFpy!Y|V9~uo!7o`+! zDEhcKP~2R6IqV4U2wyF!D7jcrno=4m9VxvTsWwW?jX7W+V+zVST-)MHninsssjjfu zD>F0F008x|Dko z-FCm#3op+0*IXIp}#7*Q-e`e^tPhl;jFj`CYV{EK`m-Ts)rKKNR9 z?RV`(oRk`1!sq#9BY(P_Z@U+=hOI+L9O@j1mhbQ1JK%eA)VsgGt2{c;*) - - - - diff --git a/media/sdoc-editor/sdoc-editor-font/iconfont.ttf b/media/sdoc-editor/sdoc-editor-font/iconfont.ttf index cf7ac3c0548c6f2c0e6114eb8c9bb5d71aeec28e..796fb174cb8002c3664b2180bcd53bdd82f39899 100644 GIT binary patch delta 2235 zcmX|?TWnNS6o$Xk>GXbs4!umL?X;Z&Vg*G&E|ohdH$^Q10@6Z(iY=6(5Hu!Z3=e3K z6l-|k!6*_Q4AB^fA%q7b(KIF!LWm^B1VhM*Aw1}VJm97Nt2;W)xA#70&gq%`uYdh# z_`B%X)o8daw*sQ$K=;mpp215W{ka}u7oqU-p8hv>cMaX01ZA6GO{Q;GPw&(pZk^G! zzlb?~I#GB#c3#M$(d(i<6DroXK??)p%YiTe}~O?^#eXRd8KVpmPpr%8MT>{+bcW&pfq16 z;Lfd8*Z-Tx9*iByFNwXc<0A6>tUi8UcBCo#GCDMJJ!-%3cXT7l%^yEaG>h2yszY;$ zo;{!Zs7N>D>rXe@p|LTIc|PjcpSXir%;0gJU?xv8oyVBQqjc~HQ<=>gUSbe>WY1AVl%HWhb`=9E6Z{$r=1lHa)3TwV=u4s6f1d#-8{=GR$%LO^B0CI(b6tU935VTpi>h{^K~xh^eg0;()l8&Hignb=XavHF1OjwJ(f z04B3L|E#wNUF(7|nO#wLtYYxaWSX$5bLH5B~0x}ZT8jz*1wt&oqWdbbI+#ZnM zu*m^A51SH@2QgPk$c>n*C*(`a)fRGS4s*GM%!;|(Lbk=cK0*e@ylz5P#=QPQrpCPf zLiWbI{z68_y#7L#$GrYR=EvMeLT!L~*=DQ$>Ilpg5b6!gA0pHx*xZ2n1)CR8=V0># z>LF}FK;49O2Gm#B(*boDwlJVx!xjb9by#k(2B8MTmIUb5yfmPu#9VHn_QYInp+?1A zVxgABTn(Y-#aslG@PJ6@31?9LX77t9?j6gikX zSSWljcd$?lVQyNXK*HRpV*K81S__2~=E?}g73OLSk~uB91IjSWV|9Nz7d?l$cn5z~37-5KxL@ z`vS^SY=1z>iVX&ovDkrt(iY1Gl)Ko$fWK*MD4;A>{~ywU`2Vfe70r#Zd8xe7*z(wi zv9I%!`DgO)#1rw(cyD~PU{+zG@LbXI;)}(ip`p)n}_mtM4VICDtZ#*~Fzu zZ`Ksm4A=Zzo2orp`+e=bx|MZD>n_z-)OXZxs=t}cOU_N6NdDE()o{Aua>M=9(o}Ei zd}=gxx3QwJvvIhIrcBeZrt{5{o8M_Z)%;_6b$W05v-HE3Y|F>3$<`gMU$r&09nT~( qdoxEfH`_bfKM0#0yB)h7Yq@Z({L^(&b|kyyZp4MdTTd5AEdB)yV%qiq delta 2518 zcmX|@S!`5w7{$-+%-rcRolZN`eVe770;LtZ%i6LOlvPl~g3{6!O6>+6787)MAOuY{ z==eZD4I#t_9u!l2Dn4 zxs#+p54i6-rn%4aQP$HRJ9?{n_G`Z16uH$m*xB*%$l3Ei+IxKc$Nr9^L)M5@$k+1t zJUGzN-(B!YLCr;A$9*7a-_YQ2EEKCh3GCd$4>11DSY$;E7SAQosj0tqXDs~#X-*yh zzW+1)#eeJUgW03bRL5IeC{x;COGEy7IIDH zy_dsjd3b@7f4oqR%+7L~q+34MJ9eP~Pof63s6#y#;R!566{=B*1!%-ZJdfRY4%_hp zc3=R5c#&rep$$8+3r%+m#s@C?>t1NLJRHe(B( z#a4u{4STT<-RQs`bYcmXVj0?byX9DcX0%`>R$(<3V?O2~igH9yhA>J{iXe(nz`ac5 zqX>n_LoRYqnT-Ja$buIc@F5)@r1ASFBL!}_U{ehz1*8I&o%qc;lNh&LiCIX?P#3?p}1}T&s zl5U^@5U+t&Kr#$81>!SMFG!|=MnSR+v<%`m&^$=MKpP?11{w;KkFKA?hb#z#*Co!l*+u7lfgQXf6oj57Ar@4gy4TK{yhKiw2BvIw0yN;haF4 z44fE<-kflDAd3y0BFGX0=LxdZz{!FvGjPTr%MF}1$O;4J4$?da_3z+Li-E%kS!v){ zLRJ|#ppexDjw(cLARJnV+Cb3GRi!6$!Bmw9M;f9k5e_#*l_6;6x?cUKJe+ulN<%pN z5KS{-3qVvE!ajhgGK9?lQDq1_0;0+gwgp6$A?yu^szKNw5KTW}mq2tv2;v$n9R$z9+qIrFJBYF4pqxo(5m-BDt zKP)(0aIs*ba8cohg%66B7VRo}yXaoAUA(EdxAEUfH6<5Hu9Yq*-BkKbuq@aV zJQ|z|c|sdP?}r27mEp07GqNKxURGUprKH?b9xXpyeluEUl$bs4gyT3}L!lbso`E3I&}KC`Z&wy`ERr#2_xwj=IHxFQ;f);02A;@g&rQ1kG)8gEvX zw^=t;=_zi9-|u$h6#T!J$XFSTAJ}?sxOwJ$mUk9VvAC)5SNLn4nE7?pjT@^T`7EEVqn$r=TE}N5TPG%3XC}@1&!ofg zi2sQ2z3w{hIzpV3dSJB2^T9?dmayCI1+AEM2r0u|gPm3T2lfv79`E(-ALy>?9PH{I J{i*G&{V$LTC!qiU diff --git a/media/sdoc-editor/sdoc-editor-font/iconfont.woff b/media/sdoc-editor/sdoc-editor-font/iconfont.woff index 24a250e88d29709c4473cbcbd6779dc986606d6b..0f4fde3c3682f362ec956d017a4bbc8e2c2ffd86 100644 GIT binary patch delta 13819 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 delta 13946 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 UBO#@nx5nh0(da)W3zB;P07k~A%>V!Z diff --git a/media/sdoc-editor/sdoc-editor-font/iconfont.woff2 b/media/sdoc-editor/sdoc-editor-font/iconfont.woff2 index 166dfb96e322a51af2441781af85c03754f9659c..bfc4b070f711ad297a73d0978573256803cbb3d2 100644 GIT binary patch literal 12256 zcmV<6FCWl%Pew8T0RR91059MG3jhEB0AYv#056RI0RR9100000000000000000000 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 literal 12420 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 C#Q+Te diff --git a/seahub/templates/file_view_react.html b/seahub/templates/file_view_react.html index 1538ddf9f6..e0440d379b 100644 --- a/seahub/templates/file_view_react.html +++ b/seahub/templates/file_view_react.html @@ -42,7 +42,6 @@ window.app.pageOptions = { canEditFile: {% if can_edit_file %}true{% else %}false{% endif %}, // only for some file types canDownloadFile: {% if can_download_file %}true{% else %}false{% endif %}, enableWatermark: {% if enable_watermark %}true{% else %}false{% endif %}, - enableMetadataManagement: {% if enable_metadata_management %} true {% else %} false {% endif %}, // for {{filetype}} file {% block extra_data %} diff --git a/seahub/views/file.py b/seahub/views/file.py index 8f16a0c7f9..ebf796f280 100644 --- a/seahub/views/file.py +++ b/seahub/views/file.py @@ -571,7 +571,6 @@ def view_lib_file(request, repo_id, path): 'share_link_expire_days_max': SHARE_LINK_EXPIRE_DAYS_MAX, 'can_download_file': parse_repo_perm(permission).can_download, 'seafile_collab_server': SEAFILE_COLLAB_SERVER, - 'enable_metadata_management': settings.ENABLE_METADATA_MANAGEMENT, } # check whether file is starred @@ -2112,7 +2111,6 @@ def view_sdoc_revision(request, repo_id, revision_id): org_id = request.user.org.org_id if is_org_context(request) else -1 # basic file info - return_dict = { 'is_pro': is_pro_version(), 'repo': repo,