Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] PixTable sur Pix Admin épisode 6 (PIX-16988). #11626

Open
wants to merge 5 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import PixBlock from '@1024pix/pix-ui/components/pix-block';
import PixButton from '@1024pix/pix-ui/components/pix-button';
import PixInput from '@1024pix/pix-ui/components/pix-input';
import PixNotificationAlert from '@1024pix/pix-ui/components/pix-notification-alert';
import PixTable from '@1024pix/pix-ui/components/pix-table';
import PixTableColumn from '@1024pix/pix-ui/components/pix-table-column';
import { on } from '@ember/modifier';
import { action } from '@ember/object';
import { service } from '@ember/service';
Expand Down Expand Up @@ -118,27 +119,31 @@ export default class ScoringSimulator extends Component {
</AdministrationBlockLayout>

{{#if this.simulatorReport.data.attributes.competences}}
<PixBlock class="scoring-simulator__competences">
<table
aria-label="{{t 'pages.administration.certification.scoring-simulator.table.label'}}"
class="table-admin"
>
<thead class="scoring-simulator-competences-table__header">
<tr>
<th scope="col">{{t "pages.administration.certification.scoring-simulator.table.headers.competence"}}</th>
<th scope="col">{{t "pages.administration.certification.scoring-simulator.table.headers.level"}}</th>
</tr>
</thead>
<tbody class="scoring-simulator-competences-table__body">
{{#each this.simulatorReport.data.attributes.competences as |competence|}}
<tr>
<th scope="row">{{competence.competenceCode}}</th>
<td>{{competence.level}}</td>
</tr>
{{/each}}
</tbody>
</table>
</PixBlock>
<PixTable
class="certification-details-v3-table"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

        class="certification-details-v3__table"

@variant="primary"
@caption={{t "pages.administration.certification.scoring-simulator.table.label"}}
@data={{this.simulatorReport.data.attributes.competences}}
>
<:columns as |competence context|>
<PixTableColumn @context={{context}}>
<:header>
{{t "pages.administration.certification.scoring-simulator.table.headers.competence"}}
</:header>
<:cell>
{{competence.competenceCode}}
</:cell>
</PixTableColumn>
<PixTableColumn @context={{context}}>
<:header>
{{t "pages.administration.certification.scoring-simulator.table.headers.level"}}
</:header>
<:cell>
{{competence.level}}
</:cell>
</PixTableColumn>
</:columns>
</PixTable>
{{/if}}
</template>
}
237 changes: 122 additions & 115 deletions admin/app/components/certifications/certification/details-v3.gjs
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import PixButton from '@1024pix/pix-ui/components/pix-button';
import PixIcon from '@1024pix/pix-ui/components/pix-icon';
import PixIconButton from '@1024pix/pix-ui/components/pix-icon-button';
import PixModal from '@1024pix/pix-ui/components/pix-modal';
import PixTable from '@1024pix/pix-ui/components/pix-table';
import PixTableColumn from '@1024pix/pix-ui/components/pix-table-column';
import PixTag from '@1024pix/pix-ui/components/pix-tag';
import PixTooltip from '@1024pix/pix-ui/components/pix-tooltip';
import { fn } from '@ember/helper';
import { on } from '@ember/modifier';
import { action } from '@ember/object';
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
Expand Down Expand Up @@ -306,120 +308,125 @@ export default class DetailsV3 extends Component {
<h2 class="certification-details-v3__title">
{{t "pages.certifications.certification.details.v3.questions-list.title"}}
</h2>
<div class="content-text content-text--small">
<div class="certification-details-v3-table table-admin">
<table>
<thead>
<tr>
<th class="table__column--small">
{{t "pages.certifications.certification.details.v3.questions-list.labels.number"}}
</th>
<th class="certification-details-v3-table__answered-at-column">
{{t "pages.certifications.certification.details.v3.questions-list.labels.answered-at"}}
</th>
<th class="certification-details-v3-table__answer-status-column">
{{t "pages.certifications.certification.details.v3.questions-list.labels.answer-status"}}
</th>
<th class="certification-details-v3-table__competence-column">
{{t "pages.certifications.certification.details.v3.questions-list.labels.competence"}}
</th>
<th class="certification-details-v3-table__skill-column">
{{t "pages.certifications.certification.details.v3.questions-list.labels.skill"}}
</th>
<th class="certification-details-v3-table__challenge-id-column">
{{t "pages.certifications.certification.details.v3.questions-list.labels.challenge-id"}}
</th>
<th>{{t "pages.certifications.certification.details.v3.questions-list.labels.actions"}}</th>
</tr>
</thead>
<tbody>
{{#each @details.certificationChallengesForAdministration as |certificationChallenge|}}
<tr>
<td>{{certificationChallenge.questionNumber}}</td>
<td>
{{#if certificationChallenge.answeredAt}}
<time>
{{dayjsFormat certificationChallenge.answeredAt "HH:mm:ss"}}
</time>
{{else}}
-
{{/if}}
</td>
<td>
{{#if (this.shouldDisplayAnswerStatus certificationChallenge)}}
<PixTag @color={{this.answerStatusColor certificationChallenge.answerStatus}}>
{{t (this.answerStatusLabel certificationChallenge.answerStatus)}}
</PixTag>
{{else}}
-
{{/if}}
</td>
<td>{{certificationChallenge.competenceIndex}} {{certificationChallenge.competenceName}}</td>
<td>{{certificationChallenge.skillName}}</td>
<td class="certification-details-v3-table__challenge-informations-cell">
<a
href={{this.externalUrlForPixEditor certificationChallenge.id}}
target="_blank"
rel="noopener noreferrer"
aria-label={{t
"pages.certifications.certification.details.v3.questions-list.actions.informations.extra-information"
}}
>
{{certificationChallenge.id}}
<PixIcon @name="openNew" />
</a>
</td>
<td class="certification-details-v3-table__challenge-action-cell">
<a
href={{this.externalUrlForPreviewChallenge certificationChallenge.id}}
target="_blank"
title={{t
"pages.certifications.certification.details.v3.questions-list.actions.challenge-preview.label"
}}
aria-label={{t
"pages.certifications.certification.details.v3.questions-list.actions.challenge-preview.extra-information"
}}
rel="noopener noreferrer"
>
<PixIcon @name="eye" @plainIcon={{true}} />
</a>

{{#if certificationChallenge.validatedLiveAlert}}
<button
title={{t
"pages.certifications.certification.details.v3.questions-list.actions.display-live-alert.label"
}}
aria-label={{t
"pages.certifications.certification.details.v3.questions-list.actions.display-live-alert.extra-information"
}}
type="button"
{{on "click" (fn this.openModal certificationChallenge)}}
>
<PixIcon @name="warning" />
</button>
{{/if}}

{{#if (this.shouldDisplayAnswerValueIcon certificationChallenge)}}
<button
title={{t
"pages.certifications.certification.details.v3.questions-list.actions.display-answer.label"
}}
aria-label={{t
"pages.certifications.certification.details.v3.questions-list.actions.display-answer.extra-information"
}}
type="button"
{{on "click" (fn this.openModal certificationChallenge)}}
>
<PixIcon @name="chat" />
</button>
{{/if}}
</td>
</tr>
{{/each}}
</tbody>
</table>
</div>
</div>
<PixTable
class="certification-details-v3-table"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

        class="certification-details-v3__table"

@variant="primary"
@caption=""
@data={{@details.certificationChallengesForAdministration}}
>
<:columns as |certificationChallenge context|>
<PixTableColumn @context={{context}}>
<:header>
{{t "pages.certifications.certification.details.v3.questions-list.labels.number"}}
</:header>
<:cell>
{{certificationChallenge.questionNumber}}
</:cell>
</PixTableColumn>
<PixTableColumn @context={{context}}>
<:header>
{{t "pages.certifications.certification.details.v3.questions-list.labels.answered-at"}}
</:header>
<:cell>
{{#if certificationChallenge.answeredAt}}
<time>
{{dayjsFormat certificationChallenge.answeredAt "HH:mm:ss"}}
</time>
{{else}}
-
{{/if}}
</:cell>
</PixTableColumn>
<PixTableColumn @context={{context}}>
<:header>
{{t "pages.certifications.certification.details.v3.questions-list.labels.answer-status"}}
</:header>
<:cell>
{{#if (this.shouldDisplayAnswerStatus certificationChallenge)}}
<PixTag @color={{this.answerStatusColor certificationChallenge.answerStatus}}>
{{t (this.answerStatusLabel certificationChallenge.answerStatus)}}
</PixTag>
{{else}}
-
{{/if}}
</:cell>
</PixTableColumn>
<PixTableColumn @context={{context}}>
<:header>
{{t "pages.certifications.certification.details.v3.questions-list.labels.competence"}}
</:header>
<:cell>
{{certificationChallenge.competenceIndex}}
{{certificationChallenge.competenceName}}
</:cell>
</PixTableColumn>
<PixTableColumn @context={{context}}>
<:header>
{{t "pages.certifications.certification.details.v3.questions-list.labels.skill"}}
</:header>
<:cell>
{{certificationChallenge.skillName}}
</:cell>
</PixTableColumn>
<PixTableColumn @context={{context}} class="certification-details-v3-table__challenge-information-cell">
<:header>
{{t "pages.certifications.certification.details.v3.questions-list.labels.challenge-id"}}
</:header>
<:cell>
<a
href={{this.externalUrlForPixEditor certificationChallenge.id}}
target="_blank"
rel="noopener noreferrer"
aria-label={{t
"pages.certifications.certification.details.v3.questions-list.actions.informations.extra-information"
}}
>
{{certificationChallenge.id}}
<PixIcon @name="openNew" />
</a>
</:cell>
</PixTableColumn>
<PixTableColumn @context={{context}} class="certification-details-v3-table__challenge-action-cell">
<:header>
{{t "pages.certifications.certification.details.v3.questions-list.labels.actions"}}
</:header>
<:cell>
<a
href={{this.externalUrlForPreviewChallenge certificationChallenge.id}}
target="_blank"
title={{t
"pages.certifications.certification.details.v3.questions-list.actions.challenge-preview.label"
}}
aria-label={{t
"pages.certifications.certification.details.v3.questions-list.actions.challenge-preview.extra-information"
}}
rel="noopener noreferrer"
>
<PixIcon @name="eye" @plainIcon={{true}} />
</a>
{{#if certificationChallenge.validatedLiveAlert}}
<PixIconButton
@ariaLabel={{t
"pages.certifications.certification.details.v3.questions-list.actions.display-live-alert.extra-information"
}}
@triggerAction={{fn this.openModal certificationChallenge}}
@iconName="warning"
/>
{{/if}}

{{#if (this.shouldDisplayAnswerValueIcon certificationChallenge)}}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai du mal à comprendre ce if 🤯

<PixIconButton
@ariaLabel={{t
"pages.certifications.certification.details.v3.questions-list.actions.display-answer.extra-information"
}}
@triggerAction={{fn this.openModal certificationChallenge}}
@iconName="chat"
/>
{{/if}}
</:cell>
</PixTableColumn>
</:columns>
</PixTable>
</section>

<PixModal
Expand Down
48 changes: 9 additions & 39 deletions admin/app/components/certifications/certification/details-v3.scss
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

&__title {
@extend %pix-title-xs;

padding-bottom: var(--pix-spacing-3x);
color : var(--pix-neutral-800);
}

Expand Down Expand Up @@ -47,59 +47,29 @@
}

.certification-details-v3-table {
svg {
height: 1.2rem;
width: 1.2rem;
}

&__answered-at-column {
width: 11%;
}

&__competence-column {
width: 27%;
}

&__skill-column {
&__challenge-information-cell {
width: 17%;
}

&__answer-status-column {
width: 13%;
}

&__challenge-id-column {
width: 18%;
}

&__challenge-informations-cell {
& a, a:visited {
align-items: center;
display: flex;
gap: var(--pix-spacing-1x);

svg {
width: 1rem;
height: 1rem;
}
}
}

&__challenge-action-cell {
display: flex;
height: inherit;
align-items: center;

button:focus-visible {
padding: 2px 5px;
}
align-items: flex-end;
gap: var(--pix-spacing-1x);

& a, a:visited, button {
align-items: center;
display: flex;
flex-direction: column;
padding-right: 3px;
color: inherit;
text-decoration: none;
}

a:focus-visible {
padding-left: 4px;
}
}
}
Expand Down
Loading