1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-02 07:27:04 +00:00

feat: repalace api.getviews with api.getview when load view (#6388)

* feat: repalace api.getviews with api.getview when load view

* fix: bug

---------

Co-authored-by: 杨国璇 <ygx@Hello-word.local>
This commit is contained in:
杨国璇
2024-07-22 10:52:21 +08:00
committed by GitHub
parent 3b0cd4fcbe
commit 245965cbe6
4 changed files with 17 additions and 7 deletions

View File

@@ -123,6 +123,11 @@ class MetadataManagerAPI {
return this.req.get(url); return this.req.get(url);
}; };
getView = (repoID, viewId) => {
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/views/' + viewId + '/';
return this.req.get(url);
};
addView = (repoID, name) => { addView = (repoID, name) => {
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/views/'; const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/views/';
const params = { name }; const params = { name };
@@ -143,7 +148,7 @@ class MetadataManagerAPI {
const params = { const params = {
view_id: viewId, view_id: viewId,
}; };
return this.req.delete(url, params); return this.req.delete(url, { data: params });
}; };
moveView = (repoID, viewId, targetViewId) => { moveView = (repoID, viewId, targetViewId) => {

View File

@@ -79,14 +79,14 @@ const MetadataTreeView = ({ userPerm, repoID, currentPath, onNodeClick }) => {
const onDeleteView = useCallback((viewId, isSelected) => { const onDeleteView = useCallback((viewId, isSelected) => {
metadataAPI.deleteView(repoID, viewId).then(res => { metadataAPI.deleteView(repoID, viewId).then(res => {
const currentViewIndex = views.findIndex(item => item.id === viewId); const newViews = views.filter(item => item._id !== viewId);
const newViews = views.filter(item => item.id === viewId);
delete viewsMap.current[viewId]; delete viewsMap.current[viewId];
setViews(newViews); setViews(newViews);
if (isSelected) { if (isSelected) {
const lastViewId = views[currentViewIndex - 1].id; const currentViewIndex = views.findIndex(item => item._id === viewId);
const lastViewId = views[currentViewIndex - 1]._id;
const lastView = viewsMap.current[lastViewId]; const lastView = viewsMap.current[lastViewId];
onNodeClick(lastView); onClick(lastView);
} }
}).catch((error => { }).catch((error => {
const errorMsg = Utils.getErrorMsg(error); const errorMsg = Utils.getErrorMsg(error);

View File

@@ -76,6 +76,11 @@ class Context {
return this.metadataAPI.listViews(repoID); return this.metadataAPI.listViews(repoID);
}; };
getView = (viewId) => {
const repoID = this.settings['repoID'];
return this.metadataAPI.getView(repoID, viewId);
};
canModifyCell = (column) => { canModifyCell = (column) => {
const { editable } = column; const { editable } = column;
if (!editable) return false; if (!editable) return false;

View File

@@ -46,8 +46,8 @@ class Store {
async loadData(limit = PER_LOAD_NUMBER) { async loadData(limit = PER_LOAD_NUMBER) {
const res = await this.context.getMetadata({ start: this.startIndex, limit }); const res = await this.context.getMetadata({ start: this.startIndex, limit });
const rows = res?.data?.results || []; const rows = res?.data?.results || [];
const viewRes = await this.context.getViews(); const viewRes = await this.context.getView(this.viewId);
const view = viewRes?.data?.views.find(v => v._id === this.viewId) || {}; const view = viewRes?.data?.view || {};
const columns = normalizeColumns(res?.data?.metadata); const columns = normalizeColumns(res?.data?.metadata);
let data = new Metadata({ rows, columns, view }); let data = new Metadata({ rows, columns, view });
data.view.rows = data.row_ids; data.view.rows = data.row_ids;