Skip to content

Commit 84af3f8

Browse files
committed
Merge branch '2026.1' into 2026.x
# Conflicts: # public/build/c3c6c4c5-649e-43ca-9129-65a417bc1834/documentEditorIframe.html # public/build/c3c6c4c5-649e-43ca-9129-65a417bc1834/main.html # public/build/c3c6c4c5-649e-43ca-9129-65a417bc1834/mf-manifest.json # public/build/c3c6c4c5-649e-43ca-9129-65a417bc1834/mf-stats.json # public/build/c3c6c4c5-649e-43ca-9129-65a417bc1834/static/js/documentEditorIframe.d6d86727.js # public/build/c3c6c4c5-649e-43ca-9129-65a417bc1834/static/js/main.bc6a9271.js # public/build/e6f5837c-d920-40a7-86d8-6ba45898cc34/exposeRemote.js # public/build/e6f5837c-d920-40a7-86d8-6ba45898cc34/mf-manifest.json # public/build/e6f5837c-d920-40a7-86d8-6ba45898cc34/mf-stats.json # public/build/e6f5837c-d920-40a7-86d8-6ba45898cc34/static/css/async/6411.fbcf1b19.css # public/build/e6f5837c-d920-40a7-86d8-6ba45898cc34/static/css/async/__federation_expose__internal___mf_bootstrap.da00a316.css # public/build/e6f5837c-d920-40a7-86d8-6ba45898cc34/static/css/async/__federation_expose__internal___mf_bootstrap_document_editor_iframe.da00a316.css # public/build/e6f5837c-d920-40a7-86d8-6ba45898cc34/static/js/index.14f98452.js # public/build/e6f5837c-d920-40a7-86d8-6ba45898cc34/static/js/remoteEntry.js
2 parents 3cb9ae5 + 11f2593 commit 84af3f8

26 files changed

Lines changed: 1060 additions & 59 deletions

File tree

assets/js/src/core/components/many-to-one-relation/path-target.styles.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ export const useStyles = createStyles(({ token, css }, { isDragActive, isOver, i
5353
}
5454

5555
return {
56-
input: getDragStyle()
56+
input: getDragStyle(),
57+
dropTargetIcon: css`
58+
color: ${token.colorIcon};
59+
`
5760
}
5861
})

assets/js/src/core/components/many-to-one-relation/path-target.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import { LoadingOutlined } from '@ant-design/icons'
1212
import { useDroppable } from '@Pimcore/components/drag-and-drop/hooks/use-droppable'
1313
import { ElementTag } from '@Pimcore/components/element-tag/element-tag'
14+
import { Icon } from '@Pimcore/components/icon/icon'
1415
import { Input } from '@Pimcore/components/input/input'
1516
import { SanitizeHtml } from '@Pimcore/components/sanitize-html/sanitize-html'
1617
import { SearchInput } from '@Pimcore/components/search-input/search-input'
@@ -192,6 +193,12 @@ export const PathTarget = forwardRef(function PathTarget (
192193
placeholder={ showElementTagPrefix ? undefined : t(props.allowPathTextInput === true ? 'many-to-one-relation.drop-placeholder-text-input' : 'many-to-one-relation.drop-placeholder') }
193194
prefix={ inputPrefix }
194195
readOnly={ props.allowPathTextInput !== true }
196+
suffix={ isNil(value) && !props.disabled ? (
197+
<Icon
198+
className={ styles.dropTargetIcon }
199+
value="drop-target"
200+
/>
201+
) : undefined }
195202
value={ showElementTagPrefix ? undefined : displayText }
196203
{ ...searchProps }
197204
/>

assets/js/src/core/components/stack-list/stack-list-item.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,12 @@ export interface StackListItemProps {
3232
children: React.ReactNode
3333
renderRightToolbar?: React.ReactNode
3434
body?: React.ReactNode
35+
defaultActive?: boolean
3536
meta?: unknown
3637
}
3738

3839
export const StackListItem = (props: StackListItemProps): React.JSX.Element => {
39-
const { id, children, body, sortable = false, renderLeftToolbar, renderRightToolbar, type = StackListItemTypes.DEFAULT } = props
40+
const { id, children, body, sortable = false, renderLeftToolbar, renderRightToolbar, type = StackListItemTypes.DEFAULT, defaultActive } = props
4041
const { styles } = useStyles()
4142
const { listeners, setNodeRef, setActivatorNodeRef, transform, transition } = useSortable({ id })
4243

@@ -108,6 +109,7 @@ export const StackListItem = (props: StackListItemProps): React.JSX.Element => {
108109
<CollapseItem
109110
className={ styles.stackListItem }
110111
contentPadding={ 'none' }
112+
defaultActive={ defaultActive }
111113
extra={ renderRightToolbar }
112114
extraPosition='end'
113115
label={ <>{leftSidebarContent}</> }

assets/js/src/core/modules/application-logger/components/sidebar/tabs/filter/provider/filter-provider/filter-provider.tsx

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,24 @@ export interface DateFromFilter {
4848

4949
export interface ColumnFilters extends Array<DateFromFilter> { }
5050

51-
export const FilterProvider = (props: FilterProviderProps): React.JSX.Element => {
51+
export interface ApplicationLoggerFilterProviderProps extends FilterProviderProps {
52+
initialRelatedObjectId?: number | null
53+
}
54+
55+
const getInitialColumnFilters = (initialRelatedObjectId?: number | null): ColumnFilters => {
56+
if (!isNil(initialRelatedObjectId)) {
57+
return [{ key: 'relatedobject', type: 'equals', filterValue: initialRelatedObjectId }]
58+
}
59+
return []
60+
}
61+
62+
export const FilterProvider = (props: ApplicationLoggerFilterProviderProps): React.JSX.Element => {
5263
const [dateFrom, setDateFrom] = React.useState<string | null>(null)
5364
const [dateTo, setDateTo] = React.useState<string | null>(null)
54-
const [columnFilters, setColumnFilters] = React.useState<ColumnFilters>([])
65+
const [columnFilters, setColumnFilters] = React.useState<ColumnFilters>(() => getInitialColumnFilters(props.initialRelatedObjectId))
5566
const [logLevel, setLogLevel] = React.useState<string | null>(null)
5667
const [component, setComponent] = React.useState<string | null>(null)
57-
const [relatedObjectId, setRelatedObjectId] = React.useState<number | null>(null)
68+
const [relatedObjectId, setRelatedObjectId] = React.useState<number | null>(props.initialRelatedObjectId ?? null)
5869
const [message, setMessage] = React.useState<string | null>(null)
5970
const [pid, setPid] = React.useState<number | null>(null)
6071
const [isLoading, setIsLoading] = React.useState<boolean>(false)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* This source file is available under the terms of the
3+
* Pimcore Open Core License (POCL)
4+
* Full copyright and license information is available in
5+
* LICENSE.md which is distributed with this source code.
6+
*
7+
* @copyright Copyright (c) Pimcore GmbH (https://www.pimcore.com)
8+
* @license Pimcore Open Core License (POCL)
9+
*/
10+
11+
import React from 'react'
12+
import { Icon } from '@Pimcore/components/icon/icon'
13+
import { type IEditorTab } from '@Pimcore/modules/element/editor/tab-manager/interface/IEditorTab'
14+
import { useElementContext } from '@Pimcore/modules/element/hooks/use-element-context'
15+
import { ApplicationLoggerContainerInner } from '@Pimcore/modules/application-logger/application-logger-container-inner'
16+
import { FilterProvider } from '@Pimcore/modules/application-logger/components/sidebar/tabs/filter/provider/filter-provider/filter-provider'
17+
18+
export const ObjectApplicationLoggerTab = (): React.JSX.Element => {
19+
const { id } = useElementContext()
20+
21+
return (
22+
<FilterProvider initialRelatedObjectId={ id }>
23+
<ApplicationLoggerContainerInner />
24+
</FilterProvider>
25+
)
26+
}
27+
28+
export const TAB_APPLICATION_LOGGER: IEditorTab = {
29+
key: 'application-logger',
30+
label: 'application-logger.label',
31+
icon: <Icon value="application-logger" />,
32+
children: <ObjectApplicationLoggerTab />,
33+
hidden: (element) => !('showAppLoggerTab' in element && element.showAppLoggerTab === true)
34+
}

assets/js/src/core/modules/data-object/editor/types/object/index.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { TAB_PREVIEW, TAB_VERSIONS } from '@Pimcore/modules/data-object/editor/s
2121
import { TAB_EDIT } from './tab-manager/tabs/edit/edit-container'
2222
import { TAB_LISTING } from '../folder/tab-manager/tabs/listing/listing-container'
2323
import { TAB_VARIANTS } from '../variant/tab-manager/tabs/variants/variants-tab-container'
24+
import { TAB_APPLICATION_LOGGER } from '@Pimcore/modules/application-logger/tabs/object-tab/object-tab'
2425

2526
moduleSystem.registerModule({
2627
onInit: () => {
@@ -42,5 +43,6 @@ moduleSystem.registerModule({
4243
objectEditorTabManager.register(childrenTab)
4344
objectEditorTabManager.register(TAB_VARIANTS)
4445
objectEditorTabManager.register(TAB_WORKFLOW)
46+
objectEditorTabManager.register(TAB_APPLICATION_LOGGER)
4547
}
4648
})

assets/js/src/core/modules/data-object/listing/decorator/column-configuration/view-layer/components/grid/hooks/use-grid-options/tabs/grid-config/grid-config-list.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ export const GridConfigList = (): React.JSX.Element => {
5454
meta: column,
5555

5656
type: isAdvancedColumn ? 'collapse' : 'default',
57+
defaultActive: isAdvancedColumn,
5758
children: (
5859
() => isAdvancedColumn
5960
? <Tag color='purple'>{advancedColumnName}</Tag>

assets/js/src/core/modules/data-object/listing/decorator/column-configuration/view-layer/components/grid/hooks/use-grid-options/tabs/grid-config/grid-config-modal.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export const GridConfigModal = (props: GridConfigModalProps): React.JSX.Element
5353
<PreviewItemProvider>
5454
<PipelineLayoutProvider pipelineLayout="verbose">
5555
<Modal
56+
closable={ false }
5657
footer={ null }
5758
onCancel={ () => onOpenChange?.(false) }
5859
onClose={ () => onOpenChange?.(false) }
@@ -98,17 +99,17 @@ export const GridConfigModal = (props: GridConfigModalProps): React.JSX.Element
9899

99100
<Space size="extra-small">
100101
<Button
101-
onClick={ onCancelClick }
102+
onClick={ () => { onCancelClick(); onOpenChange?.(false) } }
102103
type='default'
103104
>
104-
{ t('button.cancel') }
105+
{ t('grid-config.discard-all-changes') }
105106
</Button>
106107

107108
<Button
108109
onClick={ onApplyClick }
109110
type='primary'
110111
>
111-
{ t('button.apply') }
112+
{ t('grid-config.apply-changes') }
112113
</Button>
113114
</Space>
114115
</Toolbar>

public/build/1f5ef22e-bc0c-4644-a956-fd0785a07c16/entrypoints.json

Lines changed: 23 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/build/1f5ef22e-bc0c-4644-a956-fd0785a07c16/index.html

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)