{# Shows a revision menu for an element. Only an existing element should be passed to this. #} {% import "_includes/forms" as forms %} {% set drafts = element.find() .draftOf(element) .siteId(element.siteId) .anyStatus() .all() %} {% set revisions = element.find() .revisionOf(element.sourceId) .siteId(element.siteId) .anyStatus() .offset(1) .limit(10) .orderBy('num desc') .all() %} {% set baseParams = craft.app.request.queryParams|withoutKey(craft.app.config.general.pathParam)|withoutKey('draftId')|withoutKey('revisionId')|withoutKey('siteId')|withoutKey('fresh') %} {% set supportedSites = craft.app.isMultiSite ? element.supportedSites : [element.site] %} {% set isMultiSiteElement = supportedSites|length > 1 %} {% set isDraft = element.getIsDraft() %} {% set isRevision = element.getIsRevision() %} {% set showSiteLabel = showSiteLabel ?? isMultiSiteElement %} {% set cpEditUrl = element.getCpEditUrl() %} {% if isDraft %} {% set baseUrl = url(cpEditUrl, baseParams|merge({ draftId: element.draftId })) %} {% elseif isRevision %} {% set baseUrl = url(cpEditUrl, baseParams|merge({ revisionId: element.revisionId })) %} {% else %} {% set baseUrl = cpEditUrl %} {% endif %} {% set isUnsavedDraft = element.getIsUnsavedDraft() %} {% set enableMenu = not isUnsavedDraft or isMultiSiteElement %}
{% if showSiteLabel %}{{ element.site.name|t('site') }} –{% endif %} {%- if isDraft %} {{- element.draftName }} {%- elseif isRevision %} {{- element.revisionLabel }} {%- else %} {{- 'Current'|t('app') }} {%- endif -%}
{% if enableMenu %} {% endif %}