DigiComp.AssetAttributes/Resources/Private/Templates/Asset/Edit.html
Ferdinand Kuhl f35695268f
All checks were successful
ci/woodpecker/push/code-style Pipeline was successful
ci/woodpecker/push/functional-tests Pipeline was successful
First working version
2023-02-09 13:05:32 +01:00

206 lines
16 KiB
HTML

{namespace m=Neos\Media\ViewHelpers}
{namespace neos=Neos\Neos\ViewHelpers}
{namespace assetAttributes=DigiComp\AssetAttributes\ViewHelpers}
<f:layout name="EditImage"/>
<f:section name="Title">Edit view</f:section>
<f:section name="Content">
<f:if condition="{connectionError}">
<f:then>
<h2>{neos:backend.translate(id: 'connectionError', package: 'Neos.Media.Browser')}</h2>
<p>{connectionError.message} ({connectionError.code})</p>
</f:then>
<f:else>
<f:if condition="{variantsTabFeatureEnabled} && {canShowVariants} && {assetProxy.localAssetIdentifier}">
<ul class="neos-nav neos-nav-tabs" role="tablist">
<li role="presentation" class="neos-active">
<a href="#" role="tab">Overview</a>
</li>
<li role="presentation">
<f:link.action action="variants" arguments="{assetSourceIdentifier: assetProxy.assetSource.identifier, assetProxyIdentifier: assetProxy.identifier, overviewAction: 'edit'}" addQueryString="true">Variants</f:link.action>
</li>
</ul>
</f:if>
<div class="neos-tab-content">
<div role="tabpanel" class="neos-tab-pane neos-active">
<f:form method="post" action="update" object="{assetProxy.asset}" objectName="asset">
<div class="neos-row-fluid">
<div class="neos-span6 neos-image-inputs">
<fieldset>
<f:if condition="{assetProxy.imported}">
<f:then>
<legend>{neos:backend.translate(id: 'basics', package: 'Neos.Media.Browser')}</legend>
<label for="title">{neos:backend.translate(id: 'field.title', package: 'Neos.Media.Browser')}</label>
<input id="title" readonly="readonly" value="{assetProxy.iptcProperties.Title}"/>
<label for="caption">{neos:backend.translate(id: 'field.caption', package: 'Neos.Media.Browser')}</label>
<textarea id="caption" rows="3" readonly="readonly">{assetProxy.iptcProperties.CaptionAbstract}</textarea>
<label for="copyrightnotice">{neos:backend.translate(id: 'field.copyrightnotice', package: 'Neos.Media.Browser')}</label>
<textarea id="copyrightnotice" rows="2" readonly="readonly">{assetProxy.iptcProperties.CopyrightNotice}</textarea>
</f:then>
<f:else>
<legend>{neos:backend.translate(id: 'basics', package: 'Neos.Media.Browser')}</legend>
<label for="title">{neos:backend.translate(id: 'field.title', package: 'Neos.Media.Browser')}</label>
<f:form.textfield property="title" id="title" placeholder="{neos:backend.translate(id: 'field.title', package: 'Neos.Media.Browser')}"/>
<label for="caption">{neos:backend.translate(id: 'field.caption', package: 'Neos.Media.Browser')}</label>
<f:form.textarea property="caption" id="caption" rows="3" placeholder="{neos:backend.translate(id: 'field.caption', package: 'Neos.Media.Browser')}"/>
<f:for each="{assetAttributes:customAttributes()}" key="attribute" as="attributeOptions">
<label for="attributes.{attribute}.value">{neos:backend.translate(id: '{attribute}.caption', package: 'DigiComp.AssetAttributes')}</label>
<f:switch expression="{attributeOptions.type}">
<f:case value="textarea">
<f:form.textarea property="attributes.{attribute}.value" id="attributes.{attribute}.value" rows="3" placeholder="{neos:backend.translate(id: '{attribute}.placeholder', package: 'DigiComp.AssetAttributes')}"/>
</f:case>
<f:defaultCase>
<f:form.textfield property="attributes.{attribute}.value" id="attributes.{attribute}.value" placeholder="{neos:backend.translate(id: '{attribute}.placeholder', package: 'DigiComp.AssetAttributes')}"/>
</f:defaultCase>
</f:switch>
<f:form.hidden property="attributes.{attribute}.name" value="{attribute}" />
</f:for>
<label for="copyrightnotice">{neos:backend.translate(id: 'field.copyrightnotice', package: 'Neos.Media.Browser')}</label>
<f:form.textarea property="copyrightNotice" id="copyrightnotice" rows="2" placeholder="{neos:backend.translate(id: 'field.copyrightnotice', package: 'Neos.Media.Browser')}"/>
</f:else>
</f:if>
<f:if condition="{tags}">
<label>{neos:backend.translate(id: 'tags', package: 'Neos.Media.Browser')}</label>
<f:for each="{tags}" as="tag">
<label class="neos-checkbox neos-inline">
<m:form.checkbox property="tags" multiple="TRUE" value="{tag}" /><span></span> {tag.label}
</label>
</f:for>
</f:if>
<f:if condition="{assetCollections}">
<label>{neos:backend.translate(id: 'collections', package: 'Neos.Media.Browser')}</label>
<f:for each="{assetCollections}" as="assetCollection">
<label class="neos-checkbox neos-inline">
<m:form.checkbox property="assetCollections" multiple="TRUE" value="{assetCollection}" /><span></span> {assetCollection.title}
</label>
</f:for>
</f:if>
</fieldset>
<fieldset>
<legend>{neos:backend.translate(id: 'metadata', package: 'Neos.Media.Browser')}</legend>
<table class="neos-info-table">
<tbody>
<f:if condition="{assetProxy.assetSource}">
<tr>
<th>{neos:backend.translate(id: 'mediaSource', package: 'Neos.Media.Browser')}</th>
<td>{assetProxy.assetSource.label}</td>
</tr>
</f:if>
<tr>
<th>{neos:backend.translate(id: 'metadata.filename', package: 'Neos.Media.Browser')}</th>
<td><a href="#" target="_blank">{assetProxy.filename}</a></td>
</tr>
<tr>
<th>{neos:backend.translate(id: 'metadata.lastModified', package: 'Neos.Media.Browser')}</th>
<td><span title="{assetProxy.lastModified -> f:format.date(format: 'd-m-Y H:i')}" data-neos-toggle="tooltip">{assetProxy.lastModified -> m:format.relativeDate()}</span></td>
</tr>
<tr>
<th>{neos:backend.translate(id: 'metadata.fileSize', package: 'Neos.Media.Browser')}</th>
<td>{assetProxy.fileSize -> f:format.bytes()}</td>
</tr>
<f:if condition="{assetProxy.iptcProperties.CopyrightNotice}">
<tr>
<th>{neos:backend.translate(id: 'metadata.iptcProperties.CopyrightNotice', package: 'Neos.Media.Browser')}</th>
<td>{assetProxy.iptcProperties.CopyrightNotice}</td>
</tr>
</f:if>
<f:if condition="{assetProxy.widthInPixels}">
<tr>
<th>{neos:backend.translate(id: 'metadata.dimensions', package: 'Neos.Media.Browser')}</th>
<td>{assetProxy.widthInPixels} x {assetProxy.heightInPixels}</td>
</tr>
</f:if>
<tr>
<th>{neos:backend.translate(id: 'metadata.type', package: 'Neos.Media.Browser')}</th>
<td><span class="neos-label">{assetProxy.mediaType}</span></td>
</tr>
<tr>
<th>{neos:backend.translate(id: 'metadata.identifier', package: 'Neos.Media.Browser')}</th>
<td><span class="neos-label">{assetProxy.localAssetIdentifier}</span></td>
</tr>
</tbody>
</table>
<f:if condition="{assetProxy.asset.inUse}">
<f:link.action action="relatedNodes" arguments="{asset:assetProxy.asset}" addQueryString="true" class="neos-button">
{neos:backend.translate(id: 'relatedNodes', quantity: '{assetProxy.asset.usageCount}', arguments: {0: assetProxy.asset.usageCount}, package: 'Neos.Media.Browser')}
</f:link.action>
</f:if>
</fieldset>
</div>
<div class="neos-span6 neos-image-example">
<f:render partial="{contentPreview}Preview" arguments="{_all}" />
</div>
</div>
<div class="neos-footer">
<f:link.action action="index" addQueryString="true" class="neos-button neos-action-cancel">{neos:backend.translate(id: 'cancel', package: 'Neos.Neos')}</f:link.action>
<f:if condition="!{assetSource.readOnly}">
<f:security.ifAccess privilegeTarget="Neos.Media.Browser:ReplaceAssetResource">
<f:link.action action="replaceAssetResource" arguments="{asset: assetProxy.asset}" addQueryString="true" class="neos-button" title="{neos:backend.translate(id: 'replaceAssetResource', package: 'Neos.Media.Browser')}" data="{neos-toggle: 'tooltip', container: 'body'}">
{neos:backend.translate(id: 'replaceAssetResource', package: 'Neos.Media.Browser')}
</f:link.action>
</f:security.ifAccess>
<f:if condition="{assetProxy.asset.inUse}">
<f:then>
<a title="{neos:backend.translate(id: 'deleteRelatedNodes', package: 'Neos.Media.Browser')}" data-neos-toggle="tooltip" data-container="body" class="neos-button neos-button-danger neos-disabled">{neos:backend.translate(id: 'delete', package: 'Neos.Neos')}</a>
</f:then>
<f:else>
<a data-toggle="modal" href="#asset-{assetProxy.asset -> f:format.identifier()}" class="neos-button neos-button-danger">{neos:backend.translate(id: 'delete', package: 'Neos.Neos')}</a>
</f:else>
</f:if>
<f:form.submit id="save" class="neos-button neos-button-primary" value="{neos:backend.translate(id: 'saveEditing', package: 'Neos.Media.Browser')}" />
</f:if>
</div>
<div class="neos-hide" id="asset-{assetProxy.localAssetIdentifier}">
<div class="neos-modal-centered">
<div class="neos-modal-content">
<div class="neos-modal-header">
<button type="button" class="neos-close neos-button" data-dismiss="modal"></button>
<div class="neos-header">
{neos:backend.translate(id: 'message.reallyDeleteAsset', arguments: {0: assetProxy.label}, package: 'Neos.Media.Browser')}
</div>
<div>
<div class="neos-subheader">
<p>
{neos:backend.translate(id: 'message.willBeDeleted', package: 'Neos.Media.Browser')}<br />
{neos:backend.translate(id: 'message.operationCannotBeUndone', package: 'Neos.Media.Browser')}
</p>
</div>
</div>
</div>
<div class="neos-modal-footer">
<a href="#" class="neos-button" data-dismiss="modal">{neos:backend.translate(id: 'cancel', package: 'Neos.Neos')}</a>
<button type="submit" form="postHelper" formaction="{f:uri.action(action: 'delete', arguments: {asset: assetProxy.asset}, addQueryString: true)}" class="neos-button neos-button-mini neos-button-danger">
{neos:backend.translate(id: 'message.confirmDelete', package: 'Neos.Media.Browser')}
</button>
</div>
</div>
</div>
<div class="neos-modal-backdrop neos-in"></div>
</div>
<f:render partial="ConstraintsHiddenFields" arguments="{constraints: constraints}" />
</f:form>
<f:form action="index" id="postHelper" method="post">
<f:render partial="ConstraintsHiddenFields" arguments="{constraints: constraints}" />
</f:form>
</div>
</div>
</f:else>
</f:if>
</f:section>
<f:section name="ContentImage">
<label>{neos:backend.translate(id: 'preview', package: 'Neos.Media.Browser')}</label>
<div class="neos-preview-image">
<a href="{assetProxy.originalUri}" target="_blank">
<img src="{assetProxy.previewUri}" class="img-polaroid" alt="{assetProxy.label}"/>
</a>
</div>
</f:section>
<f:section name="Scripts">
<script type="text/javascript" src="{f:uri.resource(package: 'Neos.Media.Browser', path: 'JavaScript/edit.js')}"></script>
</f:section>