blob: 7509ecd9af4d02f186c026224c021d6bfeec2a9b [file] [log] [blame]
<style include="cr-page-host-style cr-shared-style cr-nav-menu-item-style certificate-manager-style">
:host {
display: flex;
flex-direction: column;
height: 100%;
}
.menu-icon {
padding-inline-end: 8px;
}
#main {
flex: 1;
}
cr-menu-selector {
box-sizing: border-box;
display: block;
height: 100%;
overflow: auto;
padding-top: 8px;
padding-bottom: 8px;
width: 250px;
}
#cr-container-shadow-top {
/* Needs to be higher than #container's z-index to appear above
* scrollbars. */
z-index: 2;
}
#container {
/* CrContainerShadowMixin creates a div inside of #container to
* calculate when the div is off-screen, indicating that the user has
* scrolled #container. Since this div needs to be at the top of
* #container, set align-items to flex-start. Otherwise, the flex layout
* will stretch the div across the entire height of #container and never
* appear off-screen. */
display: flex;
align-items: flex-start;
overflow: auto;
flex: 1;
z-index: 1;
}
#adminCertsSection,
#platformCertsSection,
#platformClientCertsSection,
#userCertsSection {
box-shadow: var(--cr-card-shadow);
/* Do not shorten '0px' below to '0' as the calc function requires
* units. */
min-height: calc(100vh - var(--cr-toolbar-height) -
var(--cr-toolbar-padding-top, 0px));
}
#sidebar {
position: sticky;
top: 0;
}
</style>
<cr-toolbar id="toolbar"
page-name="$i18n{certificateManagerV2Title}"
show-search="[[showSearch_]]" always-show-logo>
</cr-toolbar>
<div id="container">
<div id="sidebar" role="navigation">
<cr-menu-selector id="menu" selectable="a" attr-for-selected="href"
selected-attribute="selected"
selected="[[getSelectedTopLevelHref_(selectedPage_)]]"
on-iron-activate="onMenuItemActivate_">
<a id="localMenuItem" role="menuitem" class="cr-nav-menu-item"
href$="[[generateHrefForPage_(pageEnum_.LOCAL_CERTS)]]"
on-click="onMenuItemClick_">
<cr-icon icon="cr:computer" class="menu-icon"></cr-icon>
$i18n{certificateManagerV2LocalCerts}
</a>
<a id="clientMenuItem" role="menuitem" class="cr-nav-menu-item"
href$="[[generateHrefForPage_(pageEnum_.CLIENT_CERTS)]]"
on-click="onMenuItemClick_">
<cr-icon icon="certmanager:card" class="menu-icon"></cr-icon>
$i18n{certificateManagerV2ClientCerts}
</a>
<a id="crsMenuItem" role="menuitem" class="cr-nav-menu-item"
href$="[[generateHrefForPage_(pageEnum_.CRS_CERTS)]]"
on-click="onMenuItemClick_">
<cr-icon icon="cr:chrome-product" class="menu-icon"></cr-icon>
$i18n{certificateManagerV2CRSCerts}
</a>
</cr-menu-selector>
</div>
<cr-page-selector id="main" attr-for-selected="path"
selected="[[selectedPage_]]">
<div id="clientCertSection" class="cr-centered-card-container"
path$="[[pageEnum_.CLIENT_CERTS]]">
<h2 class="page-title">$i18n{certificateManagerV2ClientCerts}</h2>
$i18n{certificateManagerV2ClientCertsDescription}
<if expr="is_win or is_macosx or is_linux">
<certificate-list
id="provisionedClientCerts"
cert-source="[[certificateSourceEnum_.kProvisionedClientCert]]"
header-text="$i18n{certificateManagerV2ClientCertsFromAdmin}"
hide-export hide-if-empty
on-hash-copied="onHashCopied_">
</certificate-list>
</if>
<if expr="is_chromeos">
<certificate-list
id="extensionsClientCerts"
cert-source="[[certificateSourceEnum_.kExtensionsClientCert]]"
header-text="$i18n{certificateManagerV2ClientCertsFromExtension}"
hide-export hide-if-empty
on-hash-copied="onHashCopied_">
</certificate-list>
</if>
<h3 class="section-title">$i18n{certificateManagerV2Platform}</h3>
<div class="card">
<cr-link-row id="viewOsImportedClientCerts"
label="$i18n{certificateManagerV2PlatformCertsViewLink}"
sub-label="[[numPlatformClientCertsString_]]"
on-click="onClientPlatformCertsLinkRowClick_">
</cr-link-row>
<if expr="is_win or is_macosx">
<cr-link-row external id="manageOsImportedClientCerts" class="hr"
label="$i18n{certificateManagerV2PlatformCertsManageLink}"
button-aria-description="$i18n{certificateManagerV2PlatformCertsManageLinkAriaDescription}"
on-click="onManageCertsExternal_">
</cr-link-row>
</if>
</div>
<if expr="is_chromeos">
<certificate-provisioning-list remove-header-padding>
</certificate-provisioning-list>
</if>
</div>
<local-certs-section id="localCertSection"
path$="[[pageEnum_.LOCAL_CERTS]]" on-hash-copied="onHashCopied_">
</local-certs-section>
<!-- Chrome Root Store section -->
<crs-section id="crsCertSection"
path$="[[pageEnum_.CRS_CERTS]]" on-hash-copied="onHashCopied_">
</crs-section>
<certificate-subpage id="adminCertsSection"
path$="[[pageEnum_.ADMIN_CERTS]]"
class="cr-centered-card-container"
on-hash-copied="onHashCopied_"
navigate-back-target="[[pageEnum_.LOCAL_CERTS]]"
subpage-title="$i18n{certificateManagerV2AdminCertsTitle}"
subpage-cert-lists="[[enterpriseSubpageLists_]]">
</certificate-subpage>
<certificate-subpage id="platformCertsSection"
path$="[[pageEnum_.PLATFORM_CERTS]]"
class="cr-centered-card-container"
on-hash-copied="onHashCopied_"
navigate-back-target="[[pageEnum_.LOCAL_CERTS]]"
subpage-title="$i18n{certificateManagerV2PlatformCertsTitle}"
subpage-cert-lists="[[platformSubpageLists_]]">
</certificate-subpage>
<certificate-subpage id="platformClientCertsSection"
path$="[[pageEnum_.PLATFORM_CLIENT_CERTS]]"
class="cr-centered-card-container"
on-hash-copied="onHashCopied_"
navigate-back-target="[[pageEnum_.CLIENT_CERTS]]"
on-import-result="onImportResult_"
on-delete-result="onDeleteResult_"
subpage-title="$i18n{certificateManagerV2ClientCertsFromPlatform}"
subpage-cert-lists="[[clientPlatformSubpageLists_]]">
</certificate-subpage>
<certificate-subpage id="userCertsSection"
path$="[[pageEnum_.USER_CERTS]]"
class="cr-centered-card-container"
on-hash-copied="onHashCopied_"
on-import-result="onImportResult_"
on-delete-result="onDeleteResult_"
navigate-back-target="[[pageEnum_.LOCAL_CERTS]]"
subpage-title="$i18n{certificateManagerV2UserCertsTitle}"
subpage-cert-lists="[[userSubpageLists_]]">
</certificate-subpage>
</cr-page-selector>
</div>
<cr-toast id="toast" duration="5000">
<span id="toast-message">[[toastMessage_]]</span>
</cr-toast>
<template is="dom-if" if="[[showInfoDialog_]]" restamp>
<certificate-info-dialog id="infoDialog" dialog-title="[[infoDialogTitle_]]"
dialog-message="[[infoDialogMessage_]]" on-close="onInfoDialogClose_">
</certificate-info-dialog>
</template>
<template is="dom-if" if="[[showPasswordDialog_]]" restamp>
<certificate-password-dialog id="passwordDialog"
on-close="onPasswordDialogClose_">
</certificate-password-dialog>
</template>
<template is="dom-if" if="[[showConfirmationDialog_]]" restamp>
<certificate-confirmation-dialog id="confirmationDialog"
dialog-title="[[confirmationDialogTitle_]]"
dialog-message="[[confirmationDialogMessage_]]"
on-close="onConfirmationDialogClose_">
</certificate-confirmation-dialog>
</template>