1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-28 16:17:02 +00:00

display location column (#7569)

Co-authored-by: zhouwenxuan <aries@Mac.local>
This commit is contained in:
Aries
2025-03-12 12:01:31 +08:00
committed by GitHub
parent a205d62cd7
commit b9be45d151
5 changed files with 39 additions and 14 deletions

View File

@@ -3,11 +3,15 @@ import PropTypes from 'prop-types';
import classnames from 'classnames'; import classnames from 'classnames';
import { getGeolocationDisplayString } from '../../utils/cell/column/geolocation'; import { getGeolocationDisplayString } from '../../utils/cell/column/geolocation';
const GeolocationFormatter = ({ isBaiduMap, format, value, children: emptyFormatter, className, hyphen = ' ' }) => { const GeolocationFormatter = ({ isBaiduMap, format, value, children: emptyFormatter, className, hyphen = ' ', record }) => {
const displayValue = useMemo(() => { const displayValue = useMemo(() => {
if (typeof value !== 'object') return null; if (typeof value !== 'object') return null;
const translatedLocation = record._location_translated;
if (translatedLocation && translatedLocation.address) {
return translatedLocation.address;
}
return getGeolocationDisplayString(value, { geo_format: format }, { isBaiduMap, hyphen }); return getGeolocationDisplayString(value, { geo_format: format }, { isBaiduMap, hyphen });
}, [value, format, isBaiduMap, hyphen]); }, [value, format, isBaiduMap, hyphen, record]);
if (!displayValue) return emptyFormatter || null; if (!displayValue) return emptyFormatter || null;
return ( return (

View File

@@ -17,8 +17,9 @@ const CellFormatter = ({ readonly, value, field, record, ...params }) => {
value, value,
field, field,
queryUserAPI: queryUser, queryUserAPI: queryUser,
record,
}; };
}, [readonly, value, field, collaborators, collaboratorsCache, updateCollaboratorsCache, queryUser]); }, [readonly, value, field, collaborators, collaboratorsCache, updateCollaboratorsCache, queryUser, record]);
const { tagsData } = useTags(); const { tagsData } = useTags();
if (field.type === CellType.FILE_NAME) { if (field.type === CellType.FILE_NAME) {

View File

@@ -8,7 +8,6 @@ export const NOT_DISPLAY_COLUMN_KEYS = [
PRIVATE_COLUMN_KEY.LAST_MODIFIER, PRIVATE_COLUMN_KEY.LAST_MODIFIER,
PRIVATE_COLUMN_KEY.OBJ_ID, PRIVATE_COLUMN_KEY.OBJ_ID,
PRIVATE_COLUMN_KEY.FILE_DETAILS, PRIVATE_COLUMN_KEY.FILE_DETAILS,
PRIVATE_COLUMN_KEY.LOCATION,
PRIVATE_COLUMN_KEY.IS_DIR, PRIVATE_COLUMN_KEY.IS_DIR,
PRIVATE_COLUMN_KEY.FACE_LINKS, PRIVATE_COLUMN_KEY.FACE_LINKS,
PRIVATE_COLUMN_KEY.EXCLUDED_FACE_LINKS, PRIVATE_COLUMN_KEY.EXCLUDED_FACE_LINKS,

View File

@@ -111,7 +111,6 @@ export const DELETABLE_PRIVATE_COLUMN_KEY = [
PRIVATE_COLUMN_KEY.FILE_REVIEWER, PRIVATE_COLUMN_KEY.FILE_REVIEWER,
PRIVATE_COLUMN_KEY.FILE_EXPIRE_TIME, PRIVATE_COLUMN_KEY.FILE_EXPIRE_TIME,
PRIVATE_COLUMN_KEY.FILE_KEYWORDS, PRIVATE_COLUMN_KEY.FILE_KEYWORDS,
PRIVATE_COLUMN_KEY.FILE_DESCRIPTION,
PRIVATE_COLUMN_KEY.FILE_EXPIRED, PRIVATE_COLUMN_KEY.FILE_EXPIRED,
PRIVATE_COLUMN_KEY.FILE_STATUS, PRIVATE_COLUMN_KEY.FILE_STATUS,
PRIVATE_COLUMN_KEY.CAPTURE_TIME, PRIVATE_COLUMN_KEY.CAPTURE_TIME,

View File

@@ -305,21 +305,43 @@ export const MetadataViewProvider = ({
const recordIds = records.map(record => getRecordIdFromRecord(record)); const recordIds = records.map(record => getRecordIdFromRecord(record));
extractFilesDetails(recordObjIds, { extractFilesDetails(recordObjIds, {
success_callback: ({ details }) => { success_callback: ({ details }) => {
const captureColumn = getColumnByKey(metadata.columns, PRIVATE_COLUMN_KEY.CAPTURE_TIME);
if (!captureColumn) return;
let idOldRecordData = {}; let idOldRecordData = {};
let idOriginalOldRecordData = {}; let idOriginalOldRecordData = {};
const captureColumnKey = PRIVATE_COLUMN_KEY.CAPTURE_TIME;
records.forEach(record => {
idOldRecordData[record[PRIVATE_COLUMN_KEY.ID]] = { [captureColumnKey]: record[captureColumnKey] };
idOriginalOldRecordData[record[PRIVATE_COLUMN_KEY.ID]] = { [captureColumnKey]: record[captureColumnKey] };
});
let idRecordUpdates = {}; let idRecordUpdates = {};
let idOriginalRecordUpdates = {}; let idOriginalRecordUpdates = {};
const captureColumnKey = PRIVATE_COLUMN_KEY.CAPTURE_TIME;
const captureColumn = getColumnByKey(metadata.columns, PRIVATE_COLUMN_KEY.CAPTURE_TIME);
const locationColumnKey = PRIVATE_COLUMN_KEY.LOCATION;
const locationColumn = getColumnByKey(metadata.columns, PRIVATE_COLUMN_KEY.LOCATION);
records.forEach(record => {
const recordId = record[PRIVATE_COLUMN_KEY.ID];
idOldRecordData[recordId] = {};
idOriginalOldRecordData[recordId] = {};
if (captureColumn) {
idOldRecordData[recordId][captureColumnKey] = record[captureColumnKey];
idOriginalOldRecordData[recordId][captureColumnKey] = record[captureColumnKey];
}
if (locationColumn) {
idOldRecordData[recordId][locationColumnKey] = record[locationColumnKey];
idOriginalOldRecordData[recordId][locationColumnKey] = record[locationColumnKey];
}
});
details.forEach(detail => { details.forEach(detail => {
const updateRecordId = detail[PRIVATE_COLUMN_KEY.ID]; const updateRecordId = detail[PRIVATE_COLUMN_KEY.ID];
idRecordUpdates[updateRecordId] = { [captureColumnKey]: detail[captureColumnKey] }; idRecordUpdates[updateRecordId] = {};
idOriginalRecordUpdates[updateRecordId] = { [captureColumnKey]: detail[captureColumnKey] }; idOriginalRecordUpdates[updateRecordId] = {};
if (captureColumn) {
idRecordUpdates[updateRecordId][captureColumnKey] = detail[captureColumnKey];
idOriginalRecordUpdates[updateRecordId][captureColumnKey] = detail[captureColumnKey];
}
if (locationColumn) {
idRecordUpdates[updateRecordId][locationColumnKey] = detail[locationColumnKey];
idOriginalRecordUpdates[updateRecordId][locationColumnKey] = detail[locationColumnKey];
}
}); });
modifyRecords({ recordIds, idRecordUpdates, idOriginalRecordUpdates, idOldRecordData, idOriginalOldRecordData }); modifyRecords({ recordIds, idRecordUpdates, idOriginalRecordUpdates, idOldRecordData, idOriginalOldRecordData });
} }