1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-01 23:20:51 +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);
};
getView = (repoID, viewId) => {
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/views/' + viewId + '/';
return this.req.get(url);
};
addView = (repoID, name) => {
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/views/';
const params = { name };
@@ -143,7 +148,7 @@ class MetadataManagerAPI {
const params = {
view_id: viewId,
};
return this.req.delete(url, params);
return this.req.delete(url, { data: params });
};
moveView = (repoID, viewId, targetViewId) => {

View File

@@ -79,14 +79,14 @@ const MetadataTreeView = ({ userPerm, repoID, currentPath, onNodeClick }) => {
const onDeleteView = useCallback((viewId, isSelected) => {
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];
setViews(newViews);
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];
onNodeClick(lastView);
onClick(lastView);
}
}).catch((error => {
const errorMsg = Utils.getErrorMsg(error);

View File

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

View File

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