renamed folder database to xoonips.
45
.gitignore
vendored
@ -1,27 +1,30 @@
|
|||||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
# Logs
|
||||||
|
logs
|
||||||
# dependencies
|
*.log
|
||||||
/node_modules
|
|
||||||
/.pnp
|
|
||||||
.pnp.js
|
|
||||||
|
|
||||||
# testing
|
|
||||||
/coverage
|
|
||||||
|
|
||||||
# production
|
|
||||||
/build
|
|
||||||
|
|
||||||
# misc
|
|
||||||
.DS_Store
|
|
||||||
.env.local
|
|
||||||
.env.development.local
|
|
||||||
.env.test.local
|
|
||||||
.env.production.local
|
|
||||||
.eslintcache
|
|
||||||
|
|
||||||
npm-debug.log*
|
npm-debug.log*
|
||||||
yarn-debug.log*
|
yarn-debug.log*
|
||||||
yarn-error.log*
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
lerna-debug.log*
|
||||||
|
|
||||||
|
node_modules
|
||||||
|
dist
|
||||||
|
dist-ssr
|
||||||
|
*.local
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/extensions.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
.idea
|
||||||
|
.DS_Store
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
||||||
|
*.sw?
|
||||||
|
|
||||||
# customize
|
# customize
|
||||||
/public/data
|
/public/data
|
||||||
|
2
.vscode/launch.json
vendored
@ -5,7 +5,7 @@
|
|||||||
"name": "Vite Debugger",
|
"name": "Vite Debugger",
|
||||||
"type": "chrome",
|
"type": "chrome",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"url": "http://localhost:3000/",
|
"url": "http://localhost:5173/",
|
||||||
"webRoot": "${workspaceFolder}"
|
"webRoot": "${workspaceFolder}"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
601
package-lock.json
generated
18
package.json
@ -30,28 +30,28 @@
|
|||||||
"react-spinner-material": "^1.4.0",
|
"react-spinner-material": "^1.4.0",
|
||||||
"sanitize.css": "^13.0.0",
|
"sanitize.css": "^13.0.0",
|
||||||
"xregexp": "^5.1.1",
|
"xregexp": "^5.1.1",
|
||||||
"yet-another-react-lightbox": "^3.11.4"
|
"yet-another-react-lightbox": "^3.12.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/async-lock": "^1.4.0",
|
"@types/async-lock": "^1.4.0",
|
||||||
"@types/jest": "^29.5.3",
|
"@types/jest": "^29.5.3",
|
||||||
"@types/lokijs": "^1.5.8",
|
"@types/lokijs": "^1.5.8",
|
||||||
"@types/node": "^18.17.1",
|
"@types/node": "^18.17.3",
|
||||||
"@types/react": "^18.2.17",
|
"@types/react": "^18.2.18",
|
||||||
"@types/react-dom": "^18.2.7",
|
"@types/react-dom": "^18.2.7",
|
||||||
"@types/react-router-dom": "^5.3.3",
|
"@types/react-router-dom": "^5.3.3",
|
||||||
"@types/react-router-hash-link": "^2.4.6",
|
"@types/react-router-hash-link": "^2.4.6",
|
||||||
"@types/react-syntax-highlighter": "^15.5.7",
|
"@types/react-syntax-highlighter": "^15.5.7",
|
||||||
"@typescript-eslint/eslint-plugin": "^6.2.0",
|
"@typescript-eslint/eslint-plugin": "^6.3.0",
|
||||||
"@typescript-eslint/parser": "^6.2.0",
|
"@typescript-eslint/parser": "^6.3.0",
|
||||||
"@vitejs/plugin-react-swc": "^3.3.2",
|
"@vitejs/plugin-react-swc": "^3.3.2",
|
||||||
"eslint": "^8.45.0",
|
"eslint": "^8.46.0",
|
||||||
"eslint-plugin-react": "^7.33.0",
|
"eslint-plugin-react": "^7.33.1",
|
||||||
"eslint-plugin-react-hooks": "^4.6.0",
|
"eslint-plugin-react-hooks": "^4.6.0",
|
||||||
"eslint-plugin-react-refresh": "^0.4.3",
|
"eslint-plugin-react-refresh": "^0.4.3",
|
||||||
"prettier": "^3.0.0",
|
"prettier": "^3.0.1",
|
||||||
"typescript": "^5.1.6",
|
"typescript": "^5.1.6",
|
||||||
"vite": "^4.4.7",
|
"vite": "^4.4.9",
|
||||||
"vite-plugin-node-stdlib-browser": "^0.2.1",
|
"vite-plugin-node-stdlib-browser": "^0.2.1",
|
||||||
"vite-plugin-rewrite-all": "^1.0.1"
|
"vite-plugin-rewrite-all": "^1.0.1"
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,8 @@ import { Route, Routes } from 'react-router-dom';
|
|||||||
import { BrainAtlasType, MultiLang } from '../config';
|
import { BrainAtlasType, MultiLang } from '../config';
|
||||||
import CoverPage from '../custom/CoverPage';
|
import CoverPage from '../custom/CoverPage';
|
||||||
import RelatedLink from '../custom/RelatedLink';
|
import RelatedLink from '../custom/RelatedLink';
|
||||||
import Database from '../database/Database';
|
import Xoonips from '../xoonips/Xoonips';
|
||||||
import DatabaseTop from '../database/DatabaseTop';
|
import XoonipsTop from '../xoonips/XoonipsTop';
|
||||||
import XoopsPathRedirect from './XoopsPathRedirect';
|
import XoopsPathRedirect from './XoopsPathRedirect';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
@ -27,8 +27,8 @@ const MainContent: React.FC<Props> = (props) => {
|
|||||||
)
|
)
|
||||||
) : (
|
) : (
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route index element={<DatabaseTop lang={lang} type={type} />} />
|
<Route index element={<XoonipsTop lang={lang} type={type} />} />
|
||||||
<Route path="modules/xoonips/*" element={<Database lang={lang} type={type} />} />
|
<Route path="modules/xoonips/*" element={<Xoonips lang={lang} type={type} />} />
|
||||||
<Route path="*" element={<XoopsPathRedirect lang={lang} />} />
|
<Route path="*" element={<XoopsPathRedirect lang={lang} />} />
|
||||||
</Routes>
|
</Routes>
|
||||||
)}
|
)}
|
||||||
|
@ -3,6 +3,7 @@ import React from 'react';
|
|||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import PageNotFound from '../common/lib/PageNotFound';
|
import PageNotFound from '../common/lib/PageNotFound';
|
||||||
import { BrainAtlasType, MultiLang } from '../config';
|
import { BrainAtlasType, MultiLang } from '../config';
|
||||||
|
|
||||||
import styles from './CoverPage.module.css';
|
import styles from './CoverPage.module.css';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import { BrainAtlasType, MultiLang } from '../config';
|
import { BrainAtlasType, MultiLang } from '../config';
|
||||||
|
|
||||||
import styles from './RelatedLink.module.css';
|
import styles from './RelatedLink.module.css';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
@ -3,6 +3,7 @@ import React from 'react';
|
|||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import NoticeSiteHasBeenArchived from '../common/lib/NoticeSiteHasBeenArchived';
|
import NoticeSiteHasBeenArchived from '../common/lib/NoticeSiteHasBeenArchived';
|
||||||
import { MultiLang } from '../config';
|
import { MultiLang } from '../config';
|
||||||
|
|
||||||
import styles from './SiteIndex.module.css';
|
import styles from './SiteIndex.module.css';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
@ -5,16 +5,17 @@ import { Route, Routes, useLocation } from 'react-router-dom';
|
|||||||
import PageNotFound from '../common/lib/PageNotFound';
|
import PageNotFound from '../common/lib/PageNotFound';
|
||||||
import { BrainAtlasType, MultiLang } from '../config';
|
import { BrainAtlasType, MultiLang } from '../config';
|
||||||
import Functions from '../functions';
|
import Functions from '../functions';
|
||||||
import styles from './Database.module.css';
|
import XoonipsAdvancedSearch from './XoonipsAdvancedSearch';
|
||||||
import DatabaseAdvancedSearch from './DatabaseAdvancedSearch';
|
import XoonipsDetailItem from './XoonipsDetailItem';
|
||||||
import DatabaseDetailItem from './DatabaseDetailItem';
|
import XoonipsSearchByAdvancedKeyword from './XoonipsSearchByAdvancedKeyword';
|
||||||
import DatabaseSearchByAdvancedKeyword from './DatabaseSearchByAdvancedKeyword';
|
import XoonipsSearchByIndexId from './XoonipsSearchByIndexId';
|
||||||
import DatabaseSearchByIndexId from './DatabaseSearchByIndexId';
|
import XoonipsSearchByItemType from './XoonipsSearchByItemType';
|
||||||
import DatabaseSearchByItemType from './DatabaseSearchByItemType';
|
import XoonipsSearchByKeyword from './XoonipsSearchByKeyword';
|
||||||
import DatabaseSearchByKeyword from './DatabaseSearchByKeyword';
|
import XoonipsTop from './XoonipsTop';
|
||||||
import DatabaseTop from './DatabaseTop';
|
|
||||||
import { INDEX_ID_PUBLIC } from './lib/IndexUtil';
|
import { INDEX_ID_PUBLIC } from './lib/IndexUtil';
|
||||||
|
|
||||||
|
import styles from './Xoonips.module.css';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
lang: MultiLang;
|
lang: MultiLang;
|
||||||
type: BrainAtlasType;
|
type: BrainAtlasType;
|
||||||
@ -27,7 +28,7 @@ const ItemDetail: React.FC<Props> = (props) => {
|
|||||||
const itemId_ = params.get('item_id') ?? '';
|
const itemId_ = params.get('item_id') ?? '';
|
||||||
const itemId = /^\d+$/.test(itemId_) ? parseInt(itemId_, 10) : 0;
|
const itemId = /^\d+$/.test(itemId_) ? parseInt(itemId_, 10) : 0;
|
||||||
const doi = params.get('id') ?? '';
|
const doi = params.get('id') ?? '';
|
||||||
return <DatabaseDetailItem lang={lang} id={itemId} doi={doi} type={type} />;
|
return <XoonipsDetailItem lang={lang} id={itemId} doi={doi} type={type} />;
|
||||||
};
|
};
|
||||||
|
|
||||||
const ItemList: React.FC<Props> = (props) => {
|
const ItemList: React.FC<Props> = (props) => {
|
||||||
@ -36,7 +37,7 @@ const ItemList: React.FC<Props> = (props) => {
|
|||||||
const params = new URLSearchParams(location.search);
|
const params = new URLSearchParams(location.search);
|
||||||
const id = params.get('index_id') ?? '';
|
const id = params.get('index_id') ?? '';
|
||||||
const indexId = /^\d+$/.test(id) ? parseInt(id, 10) : INDEX_ID_PUBLIC;
|
const indexId = /^\d+$/.test(id) ? parseInt(id, 10) : INDEX_ID_PUBLIC;
|
||||||
return <DatabaseSearchByIndexId lang={lang} type={type} indexId={indexId} />;
|
return <XoonipsSearchByIndexId lang={lang} type={type} indexId={indexId} />;
|
||||||
};
|
};
|
||||||
|
|
||||||
const ItemSelect: React.FC<Props> = (props) => {
|
const ItemSelect: React.FC<Props> = (props) => {
|
||||||
@ -49,9 +50,7 @@ const ItemSelect: React.FC<Props> = (props) => {
|
|||||||
const searchItemtype = params.get('search_itemtype') ?? '';
|
const searchItemtype = params.get('search_itemtype') ?? '';
|
||||||
const match = searchItemtype.match(/^xnp([a-z]+)$/);
|
const match = searchItemtype.match(/^xnp([a-z]+)$/);
|
||||||
const itemType = match !== null ? match[1] : '';
|
const itemType = match !== null ? match[1] : '';
|
||||||
return (
|
return <XoonipsSearchByItemType lang={lang} itemType={itemType} subItemType="" type={type} />;
|
||||||
<DatabaseSearchByItemType lang={lang} itemType={itemType} subItemType="" type={type} />
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
case 'itemsubtypesearch': {
|
case 'itemsubtypesearch': {
|
||||||
const searchItemtype = params.get('search_itemtype') ?? '';
|
const searchItemtype = params.get('search_itemtype') ?? '';
|
||||||
@ -59,7 +58,7 @@ const ItemSelect: React.FC<Props> = (props) => {
|
|||||||
const itemType = match !== null ? match[1] : '';
|
const itemType = match !== null ? match[1] : '';
|
||||||
const subItemtype = params.get('search_subitemtype') ?? '';
|
const subItemtype = params.get('search_subitemtype') ?? '';
|
||||||
return (
|
return (
|
||||||
<DatabaseSearchByItemType
|
<XoonipsSearchByItemType
|
||||||
lang={lang}
|
lang={lang}
|
||||||
itemType={itemType}
|
itemType={itemType}
|
||||||
subItemType={subItemtype}
|
subItemType={subItemtype}
|
||||||
@ -68,16 +67,16 @@ const ItemSelect: React.FC<Props> = (props) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
case 'quicksearch': {
|
case 'quicksearch': {
|
||||||
return <DatabaseSearchByKeyword lang={lang} type={type} />;
|
return <XoonipsSearchByKeyword lang={lang} type={type} />;
|
||||||
}
|
}
|
||||||
case 'advanced': {
|
case 'advanced': {
|
||||||
return <DatabaseSearchByAdvancedKeyword lang={lang} type={type} />;
|
return <XoonipsSearchByAdvancedKeyword lang={lang} type={type} />;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return <PageNotFound lang={lang} />;
|
return <PageNotFound lang={lang} />;
|
||||||
};
|
};
|
||||||
|
|
||||||
const Database: React.FC<Props> = (props) => {
|
const Xoonips: React.FC<Props> = (props) => {
|
||||||
const { lang, type } = props;
|
const { lang, type } = props;
|
||||||
return (
|
return (
|
||||||
<div className={styles.database}>
|
<div className={styles.database}>
|
||||||
@ -88,14 +87,14 @@ const Database: React.FC<Props> = (props) => {
|
|||||||
</title>
|
</title>
|
||||||
</Helmet>
|
</Helmet>
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route index element={<DatabaseTop lang={lang} type={type} />} />
|
<Route index element={<XoonipsTop lang={lang} type={type} />} />
|
||||||
<Route path="index" element={<DatabaseTop lang={lang} type={type} />} />
|
<Route path="index.php" element={<XoonipsTop lang={lang} type={type} />} />
|
||||||
<Route path="detail.php" element={<ItemDetail lang={lang} type={type} />} />
|
<Route path="detail.php" element={<ItemDetail lang={lang} type={type} />} />
|
||||||
<Route path="listitem.php" element={<ItemList lang={lang} type={type} />} />
|
<Route path="listitem.php" element={<ItemList lang={lang} type={type} />} />
|
||||||
<Route path="itemselect.php" element={<ItemSelect lang={lang} type={type} />} />
|
<Route path="itemselect.php" element={<ItemSelect lang={lang} type={type} />} />
|
||||||
<Route
|
<Route
|
||||||
path="advanced_search.php"
|
path="advanced_search.php"
|
||||||
element={<DatabaseAdvancedSearch lang={lang} type={type} />}
|
element={<XoonipsAdvancedSearch lang={lang} type={type} />}
|
||||||
/>
|
/>
|
||||||
<Route path="*" element={<PageNotFound lang={lang} />} />
|
<Route path="*" element={<PageNotFound lang={lang} />} />
|
||||||
</Routes>
|
</Routes>
|
||||||
@ -103,4 +102,4 @@ const Database: React.FC<Props> = (props) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Database;
|
export default Xoonips;
|
@ -12,7 +12,7 @@ interface Props {
|
|||||||
type: BrainAtlasType;
|
type: BrainAtlasType;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DatabaseAdvancedSearch: React.FC<Props> = (props) => {
|
const XoonipsAdvancedSearch: React.FC<Props> = (props) => {
|
||||||
const { lang, type } = props;
|
const { lang, type } = props;
|
||||||
const query = new AdvancedSearchQuery();
|
const query = new AdvancedSearchQuery();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
@ -44,4 +44,4 @@ const DatabaseAdvancedSearch: React.FC<Props> = (props) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default DatabaseAdvancedSearch;
|
export default XoonipsAdvancedSearch;
|
@ -15,7 +15,7 @@ interface Props {
|
|||||||
doi: string;
|
doi: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DatabaseDetailItem: React.FC<Props> = (props) => {
|
const XoonipsDetailItem: React.FC<Props> = (props) => {
|
||||||
const { lang, type, id, doi } = props;
|
const { lang, type, id, doi } = props;
|
||||||
|
|
||||||
const [loading, setLoading] = React.useState<boolean>(true);
|
const [loading, setLoading] = React.useState<boolean>(true);
|
||||||
@ -60,4 +60,4 @@ const DatabaseDetailItem: React.FC<Props> = (props) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default DatabaseDetailItem;
|
export default XoonipsDetailItem;
|
@ -2,15 +2,15 @@ import React from 'react';
|
|||||||
|
|
||||||
import { useLocation } from 'react-router-dom';
|
import { useLocation } from 'react-router-dom';
|
||||||
import { BrainAtlasType, MultiLang } from '../config';
|
import { BrainAtlasType, MultiLang } from '../config';
|
||||||
import DatabaseListItem from './lib/DatabaseListItem';
|
|
||||||
import ItemUtil, { SearchCallbackFunc, SortCondition } from './lib/ItemUtil';
|
import ItemUtil, { SearchCallbackFunc, SortCondition } from './lib/ItemUtil';
|
||||||
|
import XoonipsListItem from './lib/XoonipsListItem';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
lang: MultiLang;
|
lang: MultiLang;
|
||||||
type: BrainAtlasType;
|
type: BrainAtlasType;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DatabaseSearchByAdvancedKeyword: React.FC<Props> = (props) => {
|
const XoonipsSearchByAdvancedKeyword: React.FC<Props> = (props) => {
|
||||||
const { lang, type } = props;
|
const { lang, type } = props;
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
const query = ItemUtil.getAdvancedSearchQueryByQuery(location.search);
|
const query = ItemUtil.getAdvancedSearchQueryByQuery(location.search);
|
||||||
@ -24,9 +24,9 @@ const DatabaseSearchByAdvancedKeyword: React.FC<Props> = (props) => {
|
|||||||
return (
|
return (
|
||||||
<div className="list">
|
<div className="list">
|
||||||
<h3>Listing item</h3>
|
<h3>Listing item</h3>
|
||||||
<DatabaseListItem lang={lang} url={baseUrl} search={searchFunc} type={type} />
|
<XoonipsListItem lang={lang} url={baseUrl} search={searchFunc} type={type} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default DatabaseSearchByAdvancedKeyword;
|
export default XoonipsSearchByAdvancedKeyword;
|
@ -6,10 +6,10 @@ import Loading from '../common/lib/Loading';
|
|||||||
import PageNotFound from '../common/lib/PageNotFound';
|
import PageNotFound from '../common/lib/PageNotFound';
|
||||||
import { BrainAtlasType, MultiLang } from '../config';
|
import { BrainAtlasType, MultiLang } from '../config';
|
||||||
import Functions from '../functions';
|
import Functions from '../functions';
|
||||||
import DatabaseListIndex from './lib/DatabaseListIndex';
|
|
||||||
import DatabaseListItem from './lib/DatabaseListItem';
|
|
||||||
import IndexUtil, { Index } from './lib/IndexUtil';
|
import IndexUtil, { Index } from './lib/IndexUtil';
|
||||||
import ItemUtil, { SearchCallbackFunc, SortCondition } from './lib/ItemUtil';
|
import ItemUtil, { SearchCallbackFunc, SortCondition } from './lib/ItemUtil';
|
||||||
|
import XoonipsListIndex from './lib/XoonipsListIndex';
|
||||||
|
import XoonipsListItem from './lib/XoonipsListItem';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
lang: MultiLang;
|
lang: MultiLang;
|
||||||
@ -17,7 +17,7 @@ interface Props {
|
|||||||
indexId: number;
|
indexId: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DatabaseSearchByIndexId: React.FC<Props> = (props) => {
|
const XoonipsSearchByIndexId: React.FC<Props> = (props) => {
|
||||||
const { lang, type, indexId } = props;
|
const { lang, type, indexId } = props;
|
||||||
|
|
||||||
const [notFound, setNotFound] = React.useState<boolean>(false);
|
const [notFound, setNotFound] = React.useState<boolean>(false);
|
||||||
@ -83,10 +83,10 @@ const DatabaseSearchByIndexId: React.FC<Props> = (props) => {
|
|||||||
</Helmet>
|
</Helmet>
|
||||||
<h3>{Functions.mlang('[en]Listing item[/en][ja]アイテム一覧[/ja]', lang)}</h3>
|
<h3>{Functions.mlang('[en]Listing item[/en][ja]アイテム一覧[/ja]', lang)}</h3>
|
||||||
<div>{parents.node}</div>
|
<div>{parents.node}</div>
|
||||||
<DatabaseListIndex lang={lang} index={index} type={type} />
|
<XoonipsListIndex lang={lang} index={index} type={type} />
|
||||||
<DatabaseListItem lang={lang} url={baseUrl} search={searchFunc} type={type} />
|
<XoonipsListItem lang={lang} url={baseUrl} search={searchFunc} type={type} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default DatabaseSearchByIndexId;
|
export default XoonipsSearchByIndexId;
|
@ -2,8 +2,8 @@ import React from 'react';
|
|||||||
|
|
||||||
import { BrainAtlasType, MultiLang } from '../config';
|
import { BrainAtlasType, MultiLang } from '../config';
|
||||||
import Functions from '../functions';
|
import Functions from '../functions';
|
||||||
import DatabaseListItem from './lib/DatabaseListItem';
|
|
||||||
import ItemUtil, { SearchCallbackFunc, SortCondition } from './lib/ItemUtil';
|
import ItemUtil, { SearchCallbackFunc, SortCondition } from './lib/ItemUtil';
|
||||||
|
import XoonipsListItem from './lib/XoonipsListItem';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
lang: MultiLang;
|
lang: MultiLang;
|
||||||
@ -12,7 +12,7 @@ interface Props {
|
|||||||
type: BrainAtlasType;
|
type: BrainAtlasType;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DatabaseSearchByItemType: React.FC<Props> = (props) => {
|
const XoonipsSearchByItemType: React.FC<Props> = (props) => {
|
||||||
const { lang, itemType, subItemType, type } = props;
|
const { lang, itemType, subItemType, type } = props;
|
||||||
|
|
||||||
const searchFunc = (condition: SortCondition, func: SearchCallbackFunc) => {
|
const searchFunc = (condition: SortCondition, func: SearchCallbackFunc) => {
|
||||||
@ -29,9 +29,9 @@ const DatabaseSearchByItemType: React.FC<Props> = (props) => {
|
|||||||
return (
|
return (
|
||||||
<div className="list">
|
<div className="list">
|
||||||
<h3>{Functions.mlang('[en]Listing item[/en][ja]アイテム一覧[/ja]', lang)}</h3>
|
<h3>{Functions.mlang('[en]Listing item[/en][ja]アイテム一覧[/ja]', lang)}</h3>
|
||||||
<DatabaseListItem lang={lang} url={baseUrl} search={searchFunc} type={type} />
|
<XoonipsListItem lang={lang} url={baseUrl} search={searchFunc} type={type} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default DatabaseSearchByItemType;
|
export default XoonipsSearchByItemType;
|
@ -3,15 +3,15 @@ import React from 'react';
|
|||||||
import { useLocation } from 'react-router-dom';
|
import { useLocation } from 'react-router-dom';
|
||||||
import { BrainAtlasType, MultiLang } from '../config';
|
import { BrainAtlasType, MultiLang } from '../config';
|
||||||
import Functions from '../functions';
|
import Functions from '../functions';
|
||||||
import DatabaseListItem from './lib/DatabaseListItem';
|
|
||||||
import ItemUtil, { SearchCallbackFunc, SortCondition } from './lib/ItemUtil';
|
import ItemUtil, { SearchCallbackFunc, SortCondition } from './lib/ItemUtil';
|
||||||
|
import XoonipsListItem from './lib/XoonipsListItem';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
lang: MultiLang;
|
lang: MultiLang;
|
||||||
type: BrainAtlasType;
|
type: BrainAtlasType;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DatabaseSearchByKeyword: React.FC<Props> = (props) => {
|
const XoonipsSearchByKeyword: React.FC<Props> = (props) => {
|
||||||
const { lang, type } = props;
|
const { lang, type } = props;
|
||||||
|
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
@ -33,9 +33,9 @@ const DatabaseSearchByKeyword: React.FC<Props> = (props) => {
|
|||||||
<p>
|
<p>
|
||||||
{Functions.mlang('[en]Search Keyword[/en][ja]検索キーワード[/ja]', lang)} : {query.keyword}
|
{Functions.mlang('[en]Search Keyword[/en][ja]検索キーワード[/ja]', lang)} : {query.keyword}
|
||||||
</p>
|
</p>
|
||||||
<DatabaseListItem lang={lang} url={baseUrl} search={searchFunc} type={type} />
|
<XoonipsListItem lang={lang} url={baseUrl} search={searchFunc} type={type} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default DatabaseSearchByKeyword;
|
export default XoonipsSearchByKeyword;
|
@ -1,15 +1,16 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import Config, { BrainAtlasType, MultiLang } from '../config';
|
import Config, { BrainAtlasType, MultiLang } from '../config';
|
||||||
import styles from './DatabaseTop.module.css';
|
|
||||||
import ItemType from './item-type';
|
import ItemType from './item-type';
|
||||||
|
|
||||||
|
import styles from './XoonipsTop.module.css';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
lang: MultiLang;
|
lang: MultiLang;
|
||||||
type: BrainAtlasType;
|
type: BrainAtlasType;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DatabaseTop: React.FC<Props> = (props) => {
|
const XoonipsTop: React.FC<Props> = (props) => {
|
||||||
const { lang, type } = props;
|
const { lang, type } = props;
|
||||||
const types: string[][] = [];
|
const types: string[][] = [];
|
||||||
const len = Config.XOONIPS_ITEMTYPES.length;
|
const len = Config.XOONIPS_ITEMTYPES.length;
|
||||||
@ -41,4 +42,4 @@ const DatabaseTop: React.FC<Props> = (props) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default DatabaseTop;
|
export default XoonipsTop;
|
@ -9,7 +9,7 @@ interface Props {
|
|||||||
lang: MultiLang;
|
lang: MultiLang;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DatabaseXoopsPathRedirect: React.FC<Props> = (props) => {
|
const XoonipsXoopsPathRedirect: React.FC<Props> = (props) => {
|
||||||
const { lang } = props;
|
const { lang } = props;
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
|
|
||||||
@ -152,4 +152,4 @@ const DatabaseXoopsPathRedirect: React.FC<Props> = (props) => {
|
|||||||
return <Navigate to={url} />;
|
return <Navigate to={url} />;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default DatabaseXoopsPathRedirect;
|
export default XoonipsXoopsPathRedirect;
|
Before Width: | Height: | Size: 369 B After Width: | Height: | Size: 369 B |
Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 375 B |
Before Width: | Height: | Size: 427 B After Width: | Height: | Size: 427 B |
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 402 B |
Before Width: | Height: | Size: 433 B After Width: | Height: | Size: 433 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 166 B After Width: | Height: | Size: 166 B |
Before Width: | Height: | Size: 409 B After Width: | Height: | Size: 409 B |
Before Width: | Height: | Size: 479 B After Width: | Height: | Size: 479 B |
Before Width: | Height: | Size: 423 B After Width: | Height: | Size: 423 B |
Before Width: | Height: | Size: 562 B After Width: | Height: | Size: 562 B |
Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 302 B |
Before Width: | Height: | Size: 399 B After Width: | Height: | Size: 399 B |
Before Width: | Height: | Size: 574 B After Width: | Height: | Size: 574 B |
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 538 B After Width: | Height: | Size: 538 B |
Before Width: | Height: | Size: 112 B After Width: | Height: | Size: 112 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -7,6 +7,7 @@ import Loading from '../../common/lib/Loading';
|
|||||||
import { BrainAtlasType, MultiLang } from '../../config';
|
import { BrainAtlasType, MultiLang } from '../../config';
|
||||||
import Functions from '../../functions';
|
import Functions from '../../functions';
|
||||||
import IndexUtil, { INDEX_ID_PUBLIC, Index } from '../lib/IndexUtil';
|
import IndexUtil, { INDEX_ID_PUBLIC, Index } from '../lib/IndexUtil';
|
||||||
|
|
||||||
import styles from './IndexTree.module.css';
|
import styles from './IndexTree.module.css';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
@ -1,9 +1,10 @@
|
|||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import Functions from '../../../functions';
|
import Functions from '../../../functions';
|
||||||
import iconFile from '../../assets/images/icon_binder.gif';
|
|
||||||
import { ItemBinder } from '../../lib/ItemUtil';
|
import { ItemBinder } from '../../lib/ItemUtil';
|
||||||
import ListBase, { ListBaseProps } from '../lib/ListBase';
|
import ListBase, { ListBaseProps } from '../lib/ListBase';
|
||||||
|
|
||||||
|
import iconFile from '../../assets/images/icon_binder.gif';
|
||||||
|
|
||||||
class BinderList extends ListBase {
|
class BinderList extends ListBase {
|
||||||
constructor(props: ListBaseProps) {
|
constructor(props: ListBaseProps) {
|
||||||
super(props);
|
super(props);
|
@ -1,6 +1,7 @@
|
|||||||
import iconFile from '../../assets/images/icon_binder.gif';
|
|
||||||
import TopBase, { TopBaseProps } from '../lib/TopBase';
|
import TopBase, { TopBaseProps } from '../lib/TopBase';
|
||||||
|
|
||||||
|
import iconFile from '../../assets/images/icon_binder.gif';
|
||||||
|
|
||||||
class BinderTop extends TopBase {
|
class BinderTop extends TopBase {
|
||||||
constructor(props: TopBaseProps) {
|
constructor(props: TopBaseProps) {
|
||||||
super(props);
|
super(props);
|
@ -1,10 +1,11 @@
|
|||||||
import { Fragment } from 'react';
|
import { Fragment } from 'react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import Functions from '../../../functions';
|
import Functions from '../../../functions';
|
||||||
import iconFile from '../../assets/images/icon_book.gif';
|
|
||||||
import { ItemBook } from '../../lib/ItemUtil';
|
import { ItemBook } from '../../lib/ItemUtil';
|
||||||
import ListBase, { ListBaseProps } from '../lib/ListBase';
|
import ListBase, { ListBaseProps } from '../lib/ListBase';
|
||||||
|
|
||||||
|
import iconFile from '../../assets/images/icon_book.gif';
|
||||||
|
|
||||||
class BookList extends ListBase {
|
class BookList extends ListBase {
|
||||||
constructor(props: ListBaseProps) {
|
constructor(props: ListBaseProps) {
|
||||||
super(props);
|
super(props);
|
@ -1,6 +1,7 @@
|
|||||||
import iconFile from '../../assets/images/icon_book.gif';
|
|
||||||
import TopBase, { TopBaseProps } from '../lib/TopBase';
|
import TopBase, { TopBaseProps } from '../lib/TopBase';
|
||||||
|
|
||||||
|
import iconFile from '../../assets/images/icon_book.gif';
|
||||||
|
|
||||||
class BookTop extends TopBase {
|
class BookTop extends TopBase {
|
||||||
constructor(props: TopBaseProps) {
|
constructor(props: TopBaseProps) {
|
||||||
super(props);
|
super(props);
|
@ -2,11 +2,12 @@ import React from 'react';
|
|||||||
|
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import Functions from '../../../functions';
|
import Functions from '../../../functions';
|
||||||
import iconFile from '../../assets/images/icon_conference.gif';
|
|
||||||
import { ItemConference } from '../../lib/ItemUtil';
|
import { ItemConference } from '../../lib/ItemUtil';
|
||||||
import ListBase, { ListBaseProps } from '../lib/ListBase';
|
import ListBase, { ListBaseProps } from '../lib/ListBase';
|
||||||
import ConferenceUtil from './ConferenceUtil';
|
import ConferenceUtil from './ConferenceUtil';
|
||||||
|
|
||||||
|
import iconFile from '../../assets/images/icon_conference.gif';
|
||||||
|
|
||||||
class ConferenceList extends ListBase {
|
class ConferenceList extends ListBase {
|
||||||
constructor(props: ListBaseProps) {
|
constructor(props: ListBaseProps) {
|
||||||
super(props);
|
super(props);
|
@ -1,7 +1,8 @@
|
|||||||
import iconFile from '../../assets/images/icon_conference.gif';
|
|
||||||
import { ItemConferenceSubTypes } from '../../lib/ItemUtil';
|
import { ItemConferenceSubTypes } from '../../lib/ItemUtil';
|
||||||
import TopBase, { TopBaseProps } from '../lib/TopBase';
|
import TopBase, { TopBaseProps } from '../lib/TopBase';
|
||||||
|
|
||||||
|
import iconFile from '../../assets/images/icon_conference.gif';
|
||||||
|
|
||||||
class ConferenceTop extends TopBase {
|
class ConferenceTop extends TopBase {
|
||||||
constructor(props: TopBaseProps) {
|
constructor(props: TopBaseProps) {
|
||||||
super(props);
|
super(props);
|
@ -2,10 +2,11 @@ import React from 'react';
|
|||||||
|
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import Functions from '../../../functions';
|
import Functions from '../../../functions';
|
||||||
import iconFile from '../../assets/images/icon_data.gif';
|
|
||||||
import { ItemData } from '../../lib/ItemUtil';
|
import { ItemData } from '../../lib/ItemUtil';
|
||||||
import ListBase, { ListBaseProps } from '../lib/ListBase';
|
import ListBase, { ListBaseProps } from '../lib/ListBase';
|
||||||
|
|
||||||
|
import iconFile from '../../assets/images/icon_data.gif';
|
||||||
|
|
||||||
class DataList extends ListBase {
|
class DataList extends ListBase {
|
||||||
constructor(props: ListBaseProps) {
|
constructor(props: ListBaseProps) {
|
||||||
super(props);
|
super(props);
|
@ -1,7 +1,8 @@
|
|||||||
import iconFile from '../../assets/images/icon_data.gif';
|
|
||||||
import { ItemDataSubTypes } from '../../lib/ItemUtil';
|
import { ItemDataSubTypes } from '../../lib/ItemUtil';
|
||||||
import TopBase, { TopBaseProps } from '../lib/TopBase';
|
import TopBase, { TopBaseProps } from '../lib/TopBase';
|
||||||
|
|
||||||
|
import iconFile from '../../assets/images/icon_data.gif';
|
||||||
|
|
||||||
class DataTop extends TopBase {
|
class DataTop extends TopBase {
|
||||||
constructor(props: TopBaseProps) {
|
constructor(props: TopBaseProps) {
|
||||||
super(props);
|
super(props);
|
@ -1,10 +1,11 @@
|
|||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import Functions from '../../../functions';
|
import Functions from '../../../functions';
|
||||||
import iconFile from '../../assets/images/icon_files.gif';
|
|
||||||
import { ItemFiles } from '../../lib/ItemUtil';
|
import { ItemFiles } from '../../lib/ItemUtil';
|
||||||
import ListBase, { ListBaseProps } from '../lib/ListBase';
|
import ListBase, { ListBaseProps } from '../lib/ListBase';
|
||||||
import Contributor from '../lib/field/Contributor';
|
import Contributor from '../lib/field/Contributor';
|
||||||
|
|
||||||
|
import iconFile from '../../assets/images/icon_files.gif';
|
||||||
|
|
||||||
class FilesList extends ListBase {
|
class FilesList extends ListBase {
|
||||||
constructor(props: ListBaseProps) {
|
constructor(props: ListBaseProps) {
|
||||||
super(props);
|
super(props);
|
@ -1,7 +1,8 @@
|
|||||||
import iconFile from '../../assets/images/icon_files.gif';
|
|
||||||
import { ItemFilesSubTypes } from '../../lib/ItemUtil';
|
import { ItemFilesSubTypes } from '../../lib/ItemUtil';
|
||||||
import TopBase, { TopBaseProps } from '../lib/TopBase';
|
import TopBase, { TopBaseProps } from '../lib/TopBase';
|
||||||
|
|
||||||
|
import iconFile from '../../assets/images/icon_files.gif';
|
||||||
|
|
||||||
class FilesTop extends TopBase {
|
class FilesTop extends TopBase {
|
||||||
constructor(props: TopBaseProps) {
|
constructor(props: TopBaseProps) {
|
||||||
super(props);
|
super(props);
|
@ -2,9 +2,10 @@ import React from 'react';
|
|||||||
|
|
||||||
import { BrainAtlasType, MultiLang } from '../../../../config';
|
import { BrainAtlasType, MultiLang } from '../../../../config';
|
||||||
import ItemUtil, { ItemBasicFile } from '../../../lib/ItemUtil';
|
import ItemUtil, { ItemBasicFile } from '../../../lib/ItemUtil';
|
||||||
import styles from './FileDownloadButton.module.css';
|
|
||||||
import LicenseAgreementDialog from './LicenseAgreementDialog';
|
import LicenseAgreementDialog from './LicenseAgreementDialog';
|
||||||
|
|
||||||
|
import styles from './FileDownloadButton.module.css';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
lang: MultiLang;
|
lang: MultiLang;
|
||||||
file: ItemBasicFile;
|
file: ItemBasicFile;
|
@ -7,9 +7,10 @@ import Functions from '../../../../functions';
|
|||||||
import ItemUtil, { ItemBasicFile } from '../../../lib/ItemUtil';
|
import ItemUtil, { ItemBasicFile } from '../../../lib/ItemUtil';
|
||||||
import DateTime from './DateTime';
|
import DateTime from './DateTime';
|
||||||
import FileSize from './FileSize';
|
import FileSize from './FileSize';
|
||||||
import styles from './LicenseAgreementDialog.module.css';
|
|
||||||
import Rights from './Rights';
|
import Rights from './Rights';
|
||||||
|
|
||||||
|
import styles from './LicenseAgreementDialog.module.css';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
lang: MultiLang;
|
lang: MultiLang;
|
||||||
file: ItemBasicFile;
|
file: ItemBasicFile;
|
@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
|
import ItemType from '../..';
|
||||||
import { BrainAtlasType, MultiLang } from '../../../../config';
|
import { BrainAtlasType, MultiLang } from '../../../../config';
|
||||||
import ItemType from '../../../item-type';
|
|
||||||
import ItemUtil from '../../../lib/ItemUtil';
|
import ItemUtil from '../../../lib/ItemUtil';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
@ -1,10 +1,11 @@
|
|||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import XoopsCode from '../../../common/lib/XoopsCode';
|
import XoopsCode from '../../../common/lib/XoopsCode';
|
||||||
import Functions from '../../../functions';
|
import Functions from '../../../functions';
|
||||||
import iconFile from '../../assets/images/icon_memo.gif';
|
|
||||||
import { ItemMemo } from '../../lib/ItemUtil';
|
import { ItemMemo } from '../../lib/ItemUtil';
|
||||||
import ListBase, { ListBaseProps } from '../lib/ListBase';
|
import ListBase, { ListBaseProps } from '../lib/ListBase';
|
||||||
|
|
||||||
|
import iconFile from '../../assets/images/icon_memo.gif';
|
||||||
|
|
||||||
class MemoList extends ListBase {
|
class MemoList extends ListBase {
|
||||||
constructor(props: ListBaseProps) {
|
constructor(props: ListBaseProps) {
|
||||||
super(props);
|
super(props);
|
@ -1,6 +1,7 @@
|
|||||||
import iconFile from '../../assets/images/icon_memo.gif';
|
|
||||||
import TopBase, { TopBaseProps } from '../lib/TopBase';
|
import TopBase, { TopBaseProps } from '../lib/TopBase';
|
||||||
|
|
||||||
|
import iconFile from '../../assets/images/icon_memo.gif';
|
||||||
|
|
||||||
class MemoTop extends TopBase {
|
class MemoTop extends TopBase {
|
||||||
constructor(props: TopBaseProps) {
|
constructor(props: TopBaseProps) {
|
||||||
super(props);
|
super(props);
|