-
Notifications
You must be signed in to change notification settings - Fork 0
PR 5: refactor(effort): component extraction + report context centralization #178
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
Open
rlorenzo
wants to merge
12
commits into
refactor/dead-code-and-shared-chrome
Choose a base branch
from
refactor/effort-component-extraction
base: refactor/dead-code-and-shared-chrome
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
835abc3
refactor(emergency-contact): extract shared page shell
rlorenzo db93529
refactor(effort): extract DialogSubmitActions component
rlorenzo dd72bd1
refactor(effort): extract PercentAssignmentFormFields
rlorenzo 401c874
refactor(effort): extract EffortReportPage layout shell
rlorenzo 86c4bb5
refactor(effort): extract EffortRecordSharedFields from dialogs
rlorenzo 03449e4
refactor(effort): extract InstructorPageShell for breadcrumbs and states
rlorenzo d8835d2
refactor(effort): extract AsyncOperationDialog shell for preview dialogs
rlorenzo cb642fa
refactor(effort): extract TermTable for term selection rows
rlorenzo 1514b65
refactor(effort): centralize report context loading in BaseReportService
rlorenzo e534e2f
refactor(effort): extract CalculateWeightedAverage in EvaluationRepor…
rlorenzo 60447b6
fix(effort): restore StatusBanner import in InstructorEdit
rlorenzo 9518c20
chore(quality): materialize CalculateWeightedAverage rows once
rlorenzo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,137 @@ | ||
| <script setup lang="ts"> | ||
| withDefaults( | ||
| defineProps<{ | ||
| modelValue: boolean | ||
| title: string | ||
| subtitle?: string | ||
| maxWidth?: string | ||
| isLoading: boolean | ||
| isCommitting: boolean | ||
| loadError?: string | null | ||
| progress?: number | ||
| progressTitle?: string | ||
| progressPhase?: string | ||
| progressDetail?: string | ||
| progressColor?: string | ||
| loadingMessage?: string | ||
| }>(), | ||
| { | ||
| subtitle: undefined, | ||
| maxWidth: "1000px", | ||
| loadError: null, | ||
| progress: 0, | ||
| progressTitle: "", | ||
| progressPhase: "", | ||
| progressDetail: "", | ||
| progressColor: "primary", | ||
| loadingMessage: "Generating preview...", | ||
| }, | ||
| ) | ||
|
|
||
| defineEmits<{ | ||
| retry: [] | ||
| close: [] | ||
| }>() | ||
| </script> | ||
|
|
||
| <template> | ||
| <q-dialog | ||
| :model-value="modelValue" | ||
| persistent | ||
| maximized-on-mobile | ||
| aria-labelledby="async-operation-dialog-title" | ||
| @keydown.escape="$emit('close')" | ||
| > | ||
| <q-card :style="`width: 100%; max-width: ${maxWidth}; position: relative`"> | ||
| <q-btn | ||
| icon="close" | ||
| flat | ||
| round | ||
| dense | ||
| class="absolute-top-right q-ma-sm" | ||
| style="z-index: 1" | ||
| aria-label="Close dialog" | ||
| @click="$emit('close')" | ||
| /> | ||
| <q-card-section class="q-pb-none q-pr-xl"> | ||
| <div | ||
| id="async-operation-dialog-title" | ||
| class="text-h6" | ||
| > | ||
| {{ title }} | ||
| </div> | ||
| <div | ||
| v-if="subtitle" | ||
| class="text-caption text-grey-7" | ||
| > | ||
| {{ subtitle }} | ||
| </div> | ||
| </q-card-section> | ||
|
|
||
| <slot name="before-body" /> | ||
|
|
||
| <!-- Loading State (Preview) --> | ||
| <q-card-section | ||
| v-if="isLoading" | ||
| class="text-center q-py-xl" | ||
| > | ||
| <q-spinner-dots | ||
| size="50px" | ||
| color="primary" | ||
| /> | ||
| <div class="q-mt-md text-grey-7">{{ loadingMessage }}</div> | ||
| </q-card-section> | ||
|
|
||
| <!-- Committing State (Progress) --> | ||
| <q-card-section | ||
| v-else-if="isCommitting" | ||
| class="q-py-xl" | ||
| > | ||
| <div class="text-h6 q-mb-md text-center">{{ progressTitle }}</div> | ||
| <q-linear-progress | ||
| :value="progress" | ||
| size="25px" | ||
| :color="progressColor" | ||
| class="q-mb-md" | ||
| > | ||
| <div class="absolute-full flex flex-center"> | ||
| <q-badge | ||
| color="white" | ||
| :text-color="progressColor" | ||
| :label="`${Math.round(progress * 100)}%`" | ||
| /> | ||
| </div> | ||
| </q-linear-progress> | ||
| <div class="text-center text-grey-7">{{ progressPhase }}</div> | ||
| <div | ||
| v-if="progressDetail" | ||
| class="text-center text-caption text-grey-6 q-mt-xs" | ||
| > | ||
| {{ progressDetail }} | ||
| </div> | ||
| </q-card-section> | ||
|
|
||
| <!-- Error State --> | ||
| <q-card-section | ||
| v-else-if="loadError" | ||
| class="text-center q-py-xl" | ||
| > | ||
| <q-icon | ||
| name="error" | ||
| color="negative" | ||
| size="48px" | ||
| /> | ||
| <div class="q-mt-md text-negative">{{ loadError }}</div> | ||
| <q-btn | ||
| label="Retry" | ||
| color="primary" | ||
| class="q-mt-md" | ||
| @click="$emit('retry')" | ||
| /> | ||
| </q-card-section> | ||
|
|
||
| <!-- Preview content --> | ||
| <slot v-else /> | ||
| </q-card> | ||
| </q-dialog> | ||
| </template> | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove inline styles.
Lines 45 and 52 use inline
styleattributes. Prefer Quasar utility classes or define styles in a<style scoped>block. As per coding guidelines, no inline styles are allowed.♻️ Proposed fix
For line 45, use
:stylebinding or move to scoped styles:For line 52, move z-index to scoped styles:
- style="z-index: 1"Add to
<style scoped>block at the end of the file:Also applies to: 52-52
🤖 Prompt for AI Agents