fix : added enable and disable for shash enter (labels)

This commit is contained in:
karthik 2025-07-26 15:28:35 +05:30
parent 6d9be9c8e4
commit 244604702a
2 changed files with 50 additions and 37 deletions

View File

@ -17,11 +17,12 @@
<!-- Right Group: ENTER, COPY, CLEAR, PR -->
<div class="d-flex flex-wrap justify-content-center gap-2 second">
<button
*ngIf="showShashEnter"
class="btn btn-dark"
[disabled]="selectedLabel === 'QUI' && isQUIFirstGroupComplete"
(click)="padEnter()"
>
Enter
shash ENTER
</button>
<button class="btn btn-dark">COPY</button>
<button class="btn btn-dark">CLEAR</button>
@ -139,32 +140,32 @@
</div>
<!-- 🟦 FIELD Modal -->
<div id="fieldModal" class="field-modal" [style.display]="fieldModalOpen ? 'block' : 'none'">
<div class="field-modal-content">
<div class="field-modal-header">
<span class="close-btn" (click)="closeFieldModal()">&times;</span>
<h5>FIELD</h5>
</div>
<div id="fieldModal" class="field-modal" [style.display]="fieldModalOpen ? 'block' : 'none'">
<div class="field-modal-content">
<div class="field-modal-header">
<span class="close-btn" (click)="closeFieldModal()">&times;</span>
<h5>FIELD</h5>
</div>
<label>Runners selection</label>
<input type="text" class="field-display" [value]="fieldInput" readonly />
<label>Runners selection</label>
<input type="text" class="field-display" [value]="fieldInput" readonly />
<p><strong>Total Runners</strong><br />1,2,3,4,5,6,7,8,9,10,11,12</p>
<p><strong>Total Runners</strong><br />1,2,3,4,5,6,7,8,9,10,11,12</p>
<div class="field-buttons">
<ng-container *ngFor="let key of ['0', '-', 'F', 'BACK', '7', '8', '9', '4', '5', '6', '1', '2', '3']">
<button
[disabled]="fieldFEntered && key === 'F'"
(click)="handleFieldKey(key)"
>
{{ key }}
</button>
</ng-container>
<div class="field-buttons">
<ng-container *ngFor="let key of ['0', '-', 'F', 'BACK', '7', '8', '9', '4', '5', '6', '1', '2', '3']">
<button
[disabled]="fieldFEntered && key === 'F'"
(click)="handleFieldKey(key)"
>
{{ key }}
</button>
</ng-container>
<button class="span-two" (click)="confirmFieldEntry()" [disabled]="!fieldFEntered">ENTER</button>
<button class="field-cancel-btn" (click)="closeFieldModal()">CANCEL</button>
<button class="span-two" (click)="confirmFieldEntry()" [disabled]="!fieldFEntered">ENTER</button>
<button class="field-cancel-btn" (click)="closeFieldModal()">CANCEL</button>
</div>
</div>
</div>
</div>
</div>

View File

@ -66,6 +66,11 @@ export class TouchPadMenuComponent implements OnInit {
return this.selectedLabel !== null && this.selectedNumbers.length > 0;
}
get showShashEnter(): boolean {
const enabledLabels = ['FOR', 'QUI', 'TAN', 'EXA', 'WSP', 'TRE', 'MJP', 'JKP', 'SJP', '.'];
return enabledLabels.includes(this.selectedLabel || '');
}
private chunk<T>(array: T[], size: number): T[][] {
return Array.from({ length: Math.ceil(array.length / size) }, (_, i) =>
array.slice(i * size, i * size + size)
@ -95,16 +100,16 @@ export class TouchPadMenuComponent implements OnInit {
if (this.isQUIFirstGroupComplete) {
if (!this.QUIGroup2.includes(number)) {
this.QUIGroup2.push(number);
this.selectedNumbers = [...this.QUIGroup1, ...this.QUIGroup2];
this.selectionService.updatePartial({ numbers: this.selectedNumbers });
this.selectedNumbers = [...this.QUIGroup1, '-', ...this.QUIGroup2];
}
} else {
if (!this.QUIGroup1.includes(number)) {
this.QUIGroup1.push(number);
this.selectedNumbers = [...this.QUIGroup1];
this.selectionService.updatePartial({ numbers: this.selectedNumbers });
}
}
this.selectionService.updatePartial({ numbers: this.selectedNumbers });
} else {
if (!this.selectedNumbers.includes(number)) {
this.selectedNumbers.push(number);
@ -116,9 +121,9 @@ export class TouchPadMenuComponent implements OnInit {
this.canPrint = false;
}
isNumberDisabled(number: number) {
isNumberDisabled(number: number): boolean {
if (this.selectedLabel === 'QUI') {
return this.QUIGroup1.includes(number) || this.QUIGroup2.includes(number);
return false; // ✅ Allow reuse in second group
}
return this.selectedNumbers.includes(number);
}
@ -152,6 +157,14 @@ export class TouchPadMenuComponent implements OnInit {
if (this.selectedLabel === 'QUI') {
if (!this.isQUIFirstGroupComplete && this.QUIGroup1.length > 0) {
this.isQUIFirstGroupComplete = true;
// ✅ Add dash to represent separator
this.selectedNumbers = [...this.QUIGroup1, '-'];
this.QUIGroup2 = [];
// Update to prepare for second group
this.selectionService.updatePartial({ numbers: [...this.selectedNumbers] });
return;
}
} else if (this.canPrint) {
this.print();
@ -231,15 +244,14 @@ export class TouchPadMenuComponent implements OnInit {
}
// 🔘 FIELD Modal Logic
canUseField(): boolean {
const allowedLabels = ['WIN', 'SHP', 'THP', 'PLC', 'SHW'];
return (
this.selectedLabel !== null &&
allowedLabels.includes(this.selectedLabel) &&
this.selectedNumbers.length === 0
);
}
canUseField(): boolean {
const allowedLabels = ['WIN', 'SHP', 'THP', 'PLC', 'SHW'];
return (
this.selectedLabel !== null &&
allowedLabels.includes(this.selectedLabel) &&
this.selectedNumbers.length === 0
);
}
openFieldModal() {
this.fieldModalOpen = true;