cloud-ide-academics 0.0.36 → 0.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/cloud-ide-academics-bonafide-request-form.component-Cf1e9jtg.mjs +112 -0
- package/fesm2022/cloud-ide-academics-bonafide-request-form.component-Cf1e9jtg.mjs.map +1 -0
- package/fesm2022/cloud-ide-academics-bonafide-request-list.component-CsFlYVci.mjs +121 -0
- package/fesm2022/cloud-ide-academics-bonafide-request-list.component-CsFlYVci.mjs.map +1 -0
- package/fesm2022/cloud-ide-academics-bonafide.service-B_HDaTmS.mjs +121 -0
- package/fesm2022/cloud-ide-academics-bonafide.service-B_HDaTmS.mjs.map +1 -0
- package/fesm2022/{cloud-ide-academics-class-program-term-create.component-DJQTpKeq.mjs → cloud-ide-academics-class-program-term-create.component-DJnAsJ1b.mjs} +2 -2
- package/fesm2022/{cloud-ide-academics-class-program-term-create.component-DJQTpKeq.mjs.map → cloud-ide-academics-class-program-term-create.component-DJnAsJ1b.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-academics-class-program-term-list.component-BpjWSltB.mjs → cloud-ide-academics-class-program-term-list.component-C_ahVXJg.mjs} +2 -2
- package/fesm2022/{cloud-ide-academics-class-program-term-list.component-BpjWSltB.mjs.map → cloud-ide-academics-class-program-term-list.component-C_ahVXJg.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-academics-cloud-ide-academics-DTKiLHAW.mjs → cloud-ide-academics-cloud-ide-academics-CI-kRbx-.mjs} +32 -13
- package/fesm2022/cloud-ide-academics-cloud-ide-academics-CI-kRbx-.mjs.map +1 -0
- package/fesm2022/{cloud-ide-academics-program-class-create.component-B6xB_hrJ.mjs → cloud-ide-academics-program-class-create.component-ChwCyeeG.mjs} +2 -2
- package/fesm2022/{cloud-ide-academics-program-class-create.component-B6xB_hrJ.mjs.map → cloud-ide-academics-program-class-create.component-ChwCyeeG.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-academics-program-class-list.component-BLR9XYoZ.mjs → cloud-ide-academics-program-class-list.component-C-bRdT2a.mjs} +2 -2
- package/fesm2022/{cloud-ide-academics-program-class-list.component-BLR9XYoZ.mjs.map → cloud-ide-academics-program-class-list.component-C-bRdT2a.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-academics-student-list.component-DwweQJh-.mjs → cloud-ide-academics-student-list.component-Bjwr-QFa.mjs} +200 -200
- package/fesm2022/cloud-ide-academics-student-list.component-Bjwr-QFa.mjs.map +1 -0
- package/fesm2022/{cloud-ide-academics-teacher-list.component-BaWKpb8C.mjs → cloud-ide-academics-teacher-list.component-1hEG5FBF.mjs} +204 -204
- package/fesm2022/cloud-ide-academics-teacher-list.component-1hEG5FBF.mjs.map +1 -0
- package/fesm2022/cloud-ide-academics.mjs +1 -1
- package/package.json +1 -1
- package/fesm2022/cloud-ide-academics-cloud-ide-academics-DTKiLHAW.mjs.map +0 -1
- package/fesm2022/cloud-ide-academics-student-list.component-DwweQJh-.mjs.map +0 -1
- package/fesm2022/cloud-ide-academics-teacher-list.component-BaWKpb8C.mjs.map +0 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, DestroyRef, signal, Component } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import * as i1 from '@angular/forms';
|
|
5
|
+
import { FormBuilder, Validators, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import { Router } from '@angular/router';
|
|
7
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
8
|
+
import { NotificationService, CideEleButtonComponent } from 'cloud-ide-element';
|
|
9
|
+
import { C as CideAcademicsBonafideService } from './cloud-ide-academics-bonafide.service-B_HDaTmS.mjs';
|
|
10
|
+
|
|
11
|
+
class CideAcademicsBonafideRequestFormComponent {
|
|
12
|
+
destroyRef = inject(DestroyRef);
|
|
13
|
+
bonafideService = inject(CideAcademicsBonafideService);
|
|
14
|
+
fb = inject(FormBuilder);
|
|
15
|
+
router = inject(Router);
|
|
16
|
+
notificationService = inject(NotificationService);
|
|
17
|
+
form;
|
|
18
|
+
loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
this.form = this.fb.group({
|
|
21
|
+
abnr_purpose: ['', Validators.required],
|
|
22
|
+
abnr_remarks: ['']
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
onSubmit() {
|
|
26
|
+
if (this.form.valid) {
|
|
27
|
+
this.loading.set(true);
|
|
28
|
+
this.bonafideService.createRequest(this.form.value)
|
|
29
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
30
|
+
.subscribe({
|
|
31
|
+
next: (response) => {
|
|
32
|
+
if (response.success) {
|
|
33
|
+
this.notificationService.success('Bonafide request created successfully');
|
|
34
|
+
this.router.navigate(['/control-panel/bonafide']);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.notificationService.error(response.message || 'Failed to create request');
|
|
38
|
+
}
|
|
39
|
+
this.loading.set(false);
|
|
40
|
+
},
|
|
41
|
+
error: (err) => {
|
|
42
|
+
this.notificationService.error('Failed to create request');
|
|
43
|
+
this.loading.set(false);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
cancel() {
|
|
49
|
+
this.router.navigate(['/control-panel/bonafide']);
|
|
50
|
+
}
|
|
51
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideAcademicsBonafideRequestFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: CideAcademicsBonafideRequestFormComponent, isStandalone: true, selector: "cide-academics-bonafide-request-form", ngImport: i0, template: `
|
|
53
|
+
<div class="bonafide-form-container">
|
|
54
|
+
<form [formGroup]="form" (ngSubmit)="onSubmit()">
|
|
55
|
+
<cide-input
|
|
56
|
+
label="Purpose"
|
|
57
|
+
formControlName="abnr_purpose"
|
|
58
|
+
[required]="true">
|
|
59
|
+
</cide-input>
|
|
60
|
+
|
|
61
|
+
<cide-textarea
|
|
62
|
+
label="Remarks"
|
|
63
|
+
formControlName="abnr_remarks">
|
|
64
|
+
</cide-textarea>
|
|
65
|
+
|
|
66
|
+
<div class="form-actions">
|
|
67
|
+
<cide-ele-button type="submit" [disabled]="!form.valid || loading()">
|
|
68
|
+
Submit Request
|
|
69
|
+
</cide-ele-button>
|
|
70
|
+
<cide-ele-button type="button" (click)="cancel()">
|
|
71
|
+
Cancel
|
|
72
|
+
</cide-ele-button>
|
|
73
|
+
</div>
|
|
74
|
+
</form>
|
|
75
|
+
</div>
|
|
76
|
+
`, isInline: true, styles: [".bonafide-form-container{padding:1rem;max-width:600px}.form-actions{display:flex;gap:1rem;margin-top:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CideEleButtonComponent, selector: "button[cideEleButton], a[cideEleButton], cide-ele-button", inputs: ["label", "variant", "size", "type", "shape", "elevation", "disabled", "id", "loading", "fullWidth", "leftIcon", "rightIcon", "customClass", "tooltip", "ariaLabel", "testId", "routerLink", "routerExtras", "preventDoubleClick", "animated"], outputs: ["btnClick", "doubleClick"] }] });
|
|
77
|
+
}
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideAcademicsBonafideRequestFormComponent, decorators: [{
|
|
79
|
+
type: Component,
|
|
80
|
+
args: [{ selector: 'cide-academics-bonafide-request-form', standalone: true, imports: [
|
|
81
|
+
CommonModule,
|
|
82
|
+
ReactiveFormsModule,
|
|
83
|
+
CideEleButtonComponent
|
|
84
|
+
], template: `
|
|
85
|
+
<div class="bonafide-form-container">
|
|
86
|
+
<form [formGroup]="form" (ngSubmit)="onSubmit()">
|
|
87
|
+
<cide-input
|
|
88
|
+
label="Purpose"
|
|
89
|
+
formControlName="abnr_purpose"
|
|
90
|
+
[required]="true">
|
|
91
|
+
</cide-input>
|
|
92
|
+
|
|
93
|
+
<cide-textarea
|
|
94
|
+
label="Remarks"
|
|
95
|
+
formControlName="abnr_remarks">
|
|
96
|
+
</cide-textarea>
|
|
97
|
+
|
|
98
|
+
<div class="form-actions">
|
|
99
|
+
<cide-ele-button type="submit" [disabled]="!form.valid || loading()">
|
|
100
|
+
Submit Request
|
|
101
|
+
</cide-ele-button>
|
|
102
|
+
<cide-ele-button type="button" (click)="cancel()">
|
|
103
|
+
Cancel
|
|
104
|
+
</cide-ele-button>
|
|
105
|
+
</div>
|
|
106
|
+
</form>
|
|
107
|
+
</div>
|
|
108
|
+
`, styles: [".bonafide-form-container{padding:1rem;max-width:600px}.form-actions{display:flex;gap:1rem;margin-top:1rem}\n"] }]
|
|
109
|
+
}] });
|
|
110
|
+
|
|
111
|
+
export { CideAcademicsBonafideRequestFormComponent };
|
|
112
|
+
//# sourceMappingURL=cloud-ide-academics-bonafide-request-form.component-Cf1e9jtg.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-ide-academics-bonafide-request-form.component-Cf1e9jtg.mjs","sources":["../../../projects/cloud-ide-academics/src/lib/collection/bonafide/components/bonafide-request-form/bonafide-request-form.component.ts"],"sourcesContent":["import { Component, signal, DestroyRef, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { CideInputComponent, CideTextareaComponent, CideEleButtonComponent } from 'cloud-ide-element';\nimport { NotificationService } from 'cloud-ide-element';\nimport { CideAcademicsBonafideService } from '../../services/bonafide.service';\n\n@Component({\n selector: 'cide-academics-bonafide-request-form',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n CideEleButtonComponent\n ],\n template: `\n <div class=\"bonafide-form-container\">\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <cide-input\n label=\"Purpose\"\n formControlName=\"abnr_purpose\"\n [required]=\"true\">\n </cide-input>\n \n <cide-textarea\n label=\"Remarks\"\n formControlName=\"abnr_remarks\">\n </cide-textarea>\n \n <div class=\"form-actions\">\n <cide-ele-button type=\"submit\" [disabled]=\"!form.valid || loading()\">\n Submit Request\n </cide-ele-button>\n <cide-ele-button type=\"button\" (click)=\"cancel()\">\n Cancel\n </cide-ele-button>\n </div>\n </form>\n </div>\n `,\n styles: [`\n .bonafide-form-container {\n padding: 1rem;\n max-width: 600px;\n }\n .form-actions {\n display: flex;\n gap: 1rem;\n margin-top: 1rem;\n }\n `]\n})\nexport class CideAcademicsBonafideRequestFormComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n private bonafideService = inject(CideAcademicsBonafideService);\n private fb = inject(FormBuilder);\n private router = inject(Router);\n private notificationService = inject(NotificationService);\n\n form!: FormGroup;\n loading = signal(false);\n\n ngOnInit(): void {\n this.form = this.fb.group({\n abnr_purpose: ['', Validators.required],\n abnr_remarks: ['']\n });\n }\n\n onSubmit(): void {\n if (this.form.valid) {\n this.loading.set(true);\n this.bonafideService.createRequest(this.form.value)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (response) => {\n if (response.success) {\n this.notificationService.success('Bonafide request created successfully');\n this.router.navigate(['/control-panel/bonafide']);\n } else {\n this.notificationService.error(response.message || 'Failed to create request');\n }\n this.loading.set(false);\n },\n error: (err) => {\n this.notificationService.error('Failed to create request');\n this.loading.set(false);\n }\n });\n }\n }\n\n cancel(): void {\n this.router.navigate(['/control-panel/bonafide']);\n }\n}\n\n"],"names":[],"mappings":";;;;;;;;;;MAsDa,yCAAyC,CAAA;AAC5C,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,eAAe,GAAG,MAAM,CAAC,4BAA4B,CAAC;AACtD,IAAA,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;AACxB,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAEzD,IAAA,IAAI;AACJ,IAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;IAEvB,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AACxB,YAAA,YAAY,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YACvC,YAAY,EAAE,CAAC,EAAE;AAClB,SAAA,CAAC;;IAGJ,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;AAC/C,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,QAAQ,KAAI;AACjB,oBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,wBAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,uCAAuC,CAAC;wBACzE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC;;yBAC5C;wBACL,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,IAAI,0BAA0B,CAAC;;AAEhF,oBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;iBACxB;AACD,gBAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,oBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,0BAA0B,CAAC;AAC1D,oBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;;AAE1B,aAAA,CAAC;;;IAIR,MAAM,GAAA;QACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC;;uGAzCxC,yCAAyC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yCAAyC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EArC1C;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA5BC,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,sBAAsB,EAAA,QAAA,EAAA,0DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAuCb,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBA7CrD,SAAS;+BACE,sCAAsC,EAAA,UAAA,EACpC,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,mBAAmB;wBACnB;qBACD,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,8GAAA,CAAA,EAAA;;;;;"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, DestroyRef, signal, computed, Component } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { Router } from '@angular/router';
|
|
6
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
|
+
import { CideEleDataGridComponent, CideEleButtonComponent, CideIconComponent } from 'cloud-ide-element';
|
|
8
|
+
import { RightsService } from 'cloud-ide-layout';
|
|
9
|
+
import { C as CideAcademicsBonafideService } from './cloud-ide-academics-bonafide.service-B_HDaTmS.mjs';
|
|
10
|
+
|
|
11
|
+
class CideAcademicsBonafideRequestListComponent {
|
|
12
|
+
destroyRef = inject(DestroyRef);
|
|
13
|
+
bonafideService = inject(CideAcademicsBonafideService);
|
|
14
|
+
router = inject(Router);
|
|
15
|
+
rightsService = inject(RightsService);
|
|
16
|
+
requests = signal([], ...(ngDevMode ? [{ debugName: "requests" }] : []));
|
|
17
|
+
loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
|
|
18
|
+
error = signal(null, ...(ngDevMode ? [{ debugName: "error" }] : []));
|
|
19
|
+
canCreate = computed(() => this.rightsService.hasRight('CREATE'), ...(ngDevMode ? [{ debugName: "canCreate" }] : []));
|
|
20
|
+
gridConfig = computed(() => ({
|
|
21
|
+
id: 'bonafide-request-grid',
|
|
22
|
+
columns: [
|
|
23
|
+
{ key: 'abnr_purpose', header: 'Purpose', type: 'text', width: '200px' },
|
|
24
|
+
{ key: 'abnr_requested_date', header: 'Requested Date', type: 'date', width: '150px' },
|
|
25
|
+
{ key: 'abnr_status_id_sygms', header: 'Status', type: 'text', width: '100px' }
|
|
26
|
+
],
|
|
27
|
+
data: this.requests(),
|
|
28
|
+
pagination: {
|
|
29
|
+
enabled: true,
|
|
30
|
+
pageSize: 10,
|
|
31
|
+
pageSizeOptions: [10, 25, 50, 100],
|
|
32
|
+
showQuickJump: true,
|
|
33
|
+
showPageInfo: true,
|
|
34
|
+
showRefresh: true
|
|
35
|
+
},
|
|
36
|
+
search: {
|
|
37
|
+
enabled: true,
|
|
38
|
+
placeholder: 'Search bonafide requests...',
|
|
39
|
+
searchableColumns: ['abnr_purpose'],
|
|
40
|
+
debounceMs: 300
|
|
41
|
+
},
|
|
42
|
+
loading: {
|
|
43
|
+
useDefer: true,
|
|
44
|
+
skeletonRows: 5,
|
|
45
|
+
showOverlay: false
|
|
46
|
+
},
|
|
47
|
+
responsive: true
|
|
48
|
+
}), ...(ngDevMode ? [{ debugName: "gridConfig" }] : []));
|
|
49
|
+
ngOnInit() {
|
|
50
|
+
this.loadRequests();
|
|
51
|
+
}
|
|
52
|
+
loadRequests() {
|
|
53
|
+
this.loading.set(true);
|
|
54
|
+
this.bonafideService.getRequestList()
|
|
55
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
56
|
+
.subscribe({
|
|
57
|
+
next: (response) => {
|
|
58
|
+
if (response.success) {
|
|
59
|
+
this.requests.set(Array.isArray(response.data) ? response.data : []);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.error.set(response.message || 'Failed to load requests');
|
|
63
|
+
}
|
|
64
|
+
this.loading.set(false);
|
|
65
|
+
},
|
|
66
|
+
error: (err) => {
|
|
67
|
+
this.error.set('Failed to load requests');
|
|
68
|
+
this.loading.set(false);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
createNew() {
|
|
73
|
+
this.router.navigate(['/control-panel/bonafide/create']);
|
|
74
|
+
}
|
|
75
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideAcademicsBonafideRequestListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: CideAcademicsBonafideRequestListComponent, isStandalone: true, selector: "cide-academics-bonafide-request-list", ngImport: i0, template: `
|
|
77
|
+
<div class="bonafide-list-container">
|
|
78
|
+
<div class="header-actions">
|
|
79
|
+
<cide-ele-button
|
|
80
|
+
*ngIf="canCreate()"
|
|
81
|
+
(click)="createNew()"
|
|
82
|
+
[variant]="'primary'">
|
|
83
|
+
<cide-ele-icon>plus</cide-ele-icon>
|
|
84
|
+
New Bonafide Request
|
|
85
|
+
</cide-ele-button>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
<cide-ele-data-grid
|
|
89
|
+
[config]="gridConfig()">
|
|
90
|
+
</cide-ele-data-grid>
|
|
91
|
+
</div>
|
|
92
|
+
`, isInline: true, styles: [".bonafide-list-container{padding:1rem;height:100%;display:flex;flex-direction:column}.header-actions{margin-bottom:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CideEleDataGridComponent, selector: "cide-ele-data-grid", inputs: ["config", "templateRenderers", "customFormatters", "actionHandlers", "serverSidePagination", "totalServerItems", "currentServerPage", "currentServerPageSize", "dragDropEnabled"], outputs: ["gridEvent"] }, { kind: "component", type: CideEleButtonComponent, selector: "button[cideEleButton], a[cideEleButton], cide-ele-button", inputs: ["label", "variant", "size", "type", "shape", "elevation", "disabled", "id", "loading", "fullWidth", "leftIcon", "rightIcon", "customClass", "tooltip", "ariaLabel", "testId", "routerLink", "routerExtras", "preventDoubleClick", "animated"], outputs: ["btnClick", "doubleClick"] }, { kind: "component", type: CideIconComponent, selector: "cide-ele-icon", inputs: ["size", "type", "toolTip"] }] });
|
|
93
|
+
}
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideAcademicsBonafideRequestListComponent, decorators: [{
|
|
95
|
+
type: Component,
|
|
96
|
+
args: [{ selector: 'cide-academics-bonafide-request-list', standalone: true, imports: [
|
|
97
|
+
CommonModule,
|
|
98
|
+
CideEleDataGridComponent,
|
|
99
|
+
CideEleButtonComponent,
|
|
100
|
+
CideIconComponent
|
|
101
|
+
], template: `
|
|
102
|
+
<div class="bonafide-list-container">
|
|
103
|
+
<div class="header-actions">
|
|
104
|
+
<cide-ele-button
|
|
105
|
+
*ngIf="canCreate()"
|
|
106
|
+
(click)="createNew()"
|
|
107
|
+
[variant]="'primary'">
|
|
108
|
+
<cide-ele-icon>plus</cide-ele-icon>
|
|
109
|
+
New Bonafide Request
|
|
110
|
+
</cide-ele-button>
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
<cide-ele-data-grid
|
|
114
|
+
[config]="gridConfig()">
|
|
115
|
+
</cide-ele-data-grid>
|
|
116
|
+
</div>
|
|
117
|
+
`, styles: [".bonafide-list-container{padding:1rem;height:100%;display:flex;flex-direction:column}.header-actions{margin-bottom:1rem}\n"] }]
|
|
118
|
+
}] });
|
|
119
|
+
|
|
120
|
+
export { CideAcademicsBonafideRequestListComponent };
|
|
121
|
+
//# sourceMappingURL=cloud-ide-academics-bonafide-request-list.component-CsFlYVci.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-ide-academics-bonafide-request-list.component-CsFlYVci.mjs","sources":["../../../projects/cloud-ide-academics/src/lib/collection/bonafide/components/bonafide-request-list/bonafide-request-list.component.ts"],"sourcesContent":["import { Component, signal, DestroyRef, inject, computed, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { CideEleDataGridComponent, CideEleButtonComponent, CideIconComponent, GridConfiguration } from 'cloud-ide-element';\nimport { AppStateHelperService, RightsService } from 'cloud-ide-layout';\nimport { CideAcademicsBonafideService } from '../../services/bonafide.service';\n\n@Component({\n selector: 'cide-academics-bonafide-request-list',\n standalone: true,\n imports: [\n CommonModule,\n CideEleDataGridComponent,\n CideEleButtonComponent,\n CideIconComponent\n ],\n template: `\n <div class=\"bonafide-list-container\">\n <div class=\"header-actions\">\n <cide-ele-button \n *ngIf=\"canCreate()\"\n (click)=\"createNew()\"\n [variant]=\"'primary'\">\n <cide-ele-icon>plus</cide-ele-icon>\n New Bonafide Request\n </cide-ele-button>\n </div>\n \n <cide-ele-data-grid\n [config]=\"gridConfig()\">\n </cide-ele-data-grid>\n </div>\n `,\n styles: [`\n .bonafide-list-container {\n padding: 1rem;\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n .header-actions {\n margin-bottom: 1rem;\n }\n `]\n})\nexport class CideAcademicsBonafideRequestListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n private bonafideService = inject(CideAcademicsBonafideService);\n private router = inject(Router);\n private rightsService = inject(RightsService);\n\n requests = signal<any[]>([]);\n loading = signal(false);\n error = signal<string | null>(null);\n \n canCreate = computed(() => this.rightsService.hasRight('CREATE'));\n\n gridConfig = computed<GridConfiguration<any>>(() => ({\n id: 'bonafide-request-grid',\n columns: [\n { key: 'abnr_purpose', header: 'Purpose', type: 'text', width: '200px' },\n { key: 'abnr_requested_date', header: 'Requested Date', type: 'date', width: '150px' },\n { key: 'abnr_status_id_sygms', header: 'Status', type: 'text', width: '100px' }\n ],\n data: this.requests(),\n pagination: {\n enabled: true,\n pageSize: 10,\n pageSizeOptions: [10, 25, 50, 100],\n showQuickJump: true,\n showPageInfo: true,\n showRefresh: true\n },\n search: {\n enabled: true,\n placeholder: 'Search bonafide requests...',\n searchableColumns: ['abnr_purpose'],\n debounceMs: 300\n },\n loading: {\n useDefer: true,\n skeletonRows: 5,\n showOverlay: false\n },\n responsive: true\n }));\n\n ngOnInit(): void {\n this.loadRequests();\n }\n\n loadRequests(): void {\n this.loading.set(true);\n this.bonafideService.getRequestList()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (response) => {\n if (response.success) {\n this.requests.set(Array.isArray(response.data) ? response.data : []);\n } else {\n this.error.set(response.message || 'Failed to load requests');\n }\n this.loading.set(false);\n },\n error: (err) => {\n this.error.set('Failed to load requests');\n this.loading.set(false);\n }\n });\n }\n\n createNew(): void {\n this.router.navigate(['/control-panel/bonafide/create']);\n }\n}\n\n"],"names":[],"mappings":";;;;;;;;;;MA8Ca,yCAAyC,CAAA;AAC5C,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,eAAe,GAAG,MAAM,CAAC,4BAA4B,CAAC;AACtD,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAE7C,IAAA,QAAQ,GAAG,MAAM,CAAQ,EAAE,oDAAC;AAC5B,IAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AACvB,IAAA,KAAK,GAAG,MAAM,CAAgB,IAAI,iDAAC;AAEnC,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,qDAAC;AAEjE,IAAA,UAAU,GAAG,QAAQ,CAAyB,OAAO;AACnD,QAAA,EAAE,EAAE,uBAAuB;AAC3B,QAAA,OAAO,EAAE;AACP,YAAA,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;AACxE,YAAA,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;AACtF,YAAA,EAAE,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;AAC9E,SAAA;AACD,QAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;AACrB,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AAClC,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,WAAW,EAAE;AACd,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,WAAW,EAAE,6BAA6B;YAC1C,iBAAiB,EAAE,CAAC,cAAc,CAAC;AACnC,YAAA,UAAU,EAAE;AACb,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,WAAW,EAAE;AACd,SAAA;AACD,QAAA,UAAU,EAAE;AACb,KAAA,CAAC,sDAAC;IAEH,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,EAAE;;IAGrB,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,cAAc;AAChC,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,QAAQ,KAAI;AACjB,gBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;oBACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;;qBAC/D;oBACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,yBAAyB,CAAC;;AAE/D,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;aACxB;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC;AACzC,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;;AAE1B,SAAA,CAAC;;IAGN,SAAS,GAAA;QACP,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gCAAgC,CAAC,CAAC;;uGAnE/C,yCAAyC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yCAAyC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA7B1C;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EArBC,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,wBAAwB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,sBAAsB,mYACtB,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FA+BR,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBAtCrD,SAAS;+BACE,sCAAsC,EAAA,UAAA,EACpC,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,wBAAwB;wBACxB,sBAAsB;wBACtB;qBACD,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,4HAAA,CAAA,EAAA;;;;;"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { HttpClient } from '@angular/common/http';
|
|
4
|
+
import { cidePath, hostManagerRoutesUrl, academicsRoutesUrl, generateStringFromObject } from 'cloud-ide-lms-model';
|
|
5
|
+
|
|
6
|
+
class CideAcademicsBonafideService {
|
|
7
|
+
http = inject(HttpClient);
|
|
8
|
+
/**
|
|
9
|
+
* Create bonafide request
|
|
10
|
+
*/
|
|
11
|
+
createRequest(data) {
|
|
12
|
+
const url = cidePath.join([
|
|
13
|
+
hostManagerRoutesUrl.cideSuiteHost,
|
|
14
|
+
academicsRoutesUrl.module,
|
|
15
|
+
academicsRoutesUrl.bonafide
|
|
16
|
+
]);
|
|
17
|
+
return this.http.post(url, data);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get bonafide request list
|
|
21
|
+
*/
|
|
22
|
+
getRequestList(query) {
|
|
23
|
+
const queryString = query ? generateStringFromObject(query) : '';
|
|
24
|
+
const url = cidePath.join([
|
|
25
|
+
hostManagerRoutesUrl.cideSuiteHost,
|
|
26
|
+
academicsRoutesUrl.module,
|
|
27
|
+
academicsRoutesUrl.bonafide,
|
|
28
|
+
queryString
|
|
29
|
+
]);
|
|
30
|
+
return this.http.get(url);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get bonafide request by ID
|
|
34
|
+
*/
|
|
35
|
+
getRequestById(id) {
|
|
36
|
+
const url = cidePath.join([
|
|
37
|
+
hostManagerRoutesUrl.cideSuiteHost,
|
|
38
|
+
academicsRoutesUrl.module,
|
|
39
|
+
academicsRoutesUrl.bonafide,
|
|
40
|
+
'byId',
|
|
41
|
+
id
|
|
42
|
+
]);
|
|
43
|
+
return this.http.get(url);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Approve bonafide request
|
|
47
|
+
*/
|
|
48
|
+
approveRequest(requestId, data) {
|
|
49
|
+
const url = cidePath.join([
|
|
50
|
+
hostManagerRoutesUrl.cideSuiteHost,
|
|
51
|
+
academicsRoutesUrl.module,
|
|
52
|
+
academicsRoutesUrl.bonafide,
|
|
53
|
+
requestId,
|
|
54
|
+
'approve'
|
|
55
|
+
]);
|
|
56
|
+
return this.http.post(url, data);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Reject bonafide request
|
|
60
|
+
*/
|
|
61
|
+
rejectRequest(requestId, data) {
|
|
62
|
+
const url = cidePath.join([
|
|
63
|
+
hostManagerRoutesUrl.cideSuiteHost,
|
|
64
|
+
academicsRoutesUrl.module,
|
|
65
|
+
academicsRoutesUrl.bonafide,
|
|
66
|
+
requestId,
|
|
67
|
+
'reject'
|
|
68
|
+
]);
|
|
69
|
+
return this.http.post(url, data);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Generate bonafide certificate
|
|
73
|
+
*/
|
|
74
|
+
generateCertificate(requestId) {
|
|
75
|
+
const url = cidePath.join([
|
|
76
|
+
hostManagerRoutesUrl.cideSuiteHost,
|
|
77
|
+
academicsRoutesUrl.module,
|
|
78
|
+
academicsRoutesUrl.bonafide,
|
|
79
|
+
requestId,
|
|
80
|
+
'generate'
|
|
81
|
+
]);
|
|
82
|
+
return this.http.post(url, {});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Upload stamped copy
|
|
86
|
+
*/
|
|
87
|
+
uploadStampedCopy(requestId, data) {
|
|
88
|
+
const url = cidePath.join([
|
|
89
|
+
hostManagerRoutesUrl.cideSuiteHost,
|
|
90
|
+
academicsRoutesUrl.module,
|
|
91
|
+
academicsRoutesUrl.bonafide,
|
|
92
|
+
requestId,
|
|
93
|
+
'upload-stamped'
|
|
94
|
+
]);
|
|
95
|
+
return this.http.post(url, data);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get transaction history
|
|
99
|
+
*/
|
|
100
|
+
getHistory(requestId) {
|
|
101
|
+
const url = cidePath.join([
|
|
102
|
+
hostManagerRoutesUrl.cideSuiteHost,
|
|
103
|
+
academicsRoutesUrl.module,
|
|
104
|
+
academicsRoutesUrl.bonafide,
|
|
105
|
+
requestId,
|
|
106
|
+
'history'
|
|
107
|
+
]);
|
|
108
|
+
return this.http.get(url);
|
|
109
|
+
}
|
|
110
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideAcademicsBonafideService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
111
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideAcademicsBonafideService, providedIn: 'root' });
|
|
112
|
+
}
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideAcademicsBonafideService, decorators: [{
|
|
114
|
+
type: Injectable,
|
|
115
|
+
args: [{
|
|
116
|
+
providedIn: 'root'
|
|
117
|
+
}]
|
|
118
|
+
}] });
|
|
119
|
+
|
|
120
|
+
export { CideAcademicsBonafideService as C };
|
|
121
|
+
//# sourceMappingURL=cloud-ide-academics-bonafide.service-B_HDaTmS.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-ide-academics-bonafide.service-B_HDaTmS.mjs","sources":["../../../projects/cloud-ide-academics/src/lib/collection/bonafide/services/bonafide.service.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { cidePath, academicsRoutesUrl, hostManagerRoutesUrl, generateStringFromObject } from 'cloud-ide-lms-model';\r\n\r\nexport interface CreateBonafideRequestDto {\r\n abnr_student_id_auth?: string;\r\n abnr_purpose?: string;\r\n abnr_requested_date?: Date;\r\n abnr_remarks?: string;\r\n abnr_entity_id_syen?: string;\r\n}\r\n\r\nexport interface BonafideRequestResponse {\r\n success: boolean;\r\n message?: string;\r\n data?: any;\r\n total?: number;\r\n}\r\n\r\nexport interface ApproveBonafideDto {\r\n comments?: string;\r\n actionBy?: string;\r\n}\r\n\r\nexport interface RejectBonafideDto {\r\n comments?: string;\r\n reason?: string;\r\n actionBy?: string;\r\n}\r\n\r\nexport interface UploadStampedCopyDto {\r\n stampedCopyFileId?: string;\r\n stampedCopyUrl?: string;\r\n uploadedBy?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CideAcademicsBonafideService {\r\n private http = inject(HttpClient);\r\n\r\n /**\r\n * Create bonafide request\r\n */\r\n createRequest(data: CreateBonafideRequestDto): Observable<BonafideRequestResponse> {\r\n const url = cidePath.join([\r\n hostManagerRoutesUrl.cideSuiteHost,\r\n academicsRoutesUrl.module,\r\n academicsRoutesUrl.bonafide\r\n ]);\r\n return this.http.post<BonafideRequestResponse>(url, data);\r\n }\r\n\r\n /**\r\n * Get bonafide request list\r\n */\r\n getRequestList(query?: any): Observable<BonafideRequestResponse> {\r\n const queryString = query ? generateStringFromObject(query) : '';\r\n const url = cidePath.join([\r\n hostManagerRoutesUrl.cideSuiteHost,\r\n academicsRoutesUrl.module,\r\n academicsRoutesUrl.bonafide,\r\n queryString\r\n ]);\r\n return this.http.get<BonafideRequestResponse>(url);\r\n }\r\n\r\n /**\r\n * Get bonafide request by ID\r\n */\r\n getRequestById(id: string): Observable<BonafideRequestResponse> {\r\n const url = cidePath.join([\r\n hostManagerRoutesUrl.cideSuiteHost,\r\n academicsRoutesUrl.module,\r\n academicsRoutesUrl.bonafide,\r\n 'byId',\r\n id\r\n ]);\r\n return this.http.get<BonafideRequestResponse>(url);\r\n }\r\n\r\n /**\r\n * Approve bonafide request\r\n */\r\n approveRequest(requestId: string, data: ApproveBonafideDto): Observable<BonafideRequestResponse> {\r\n const url = cidePath.join([\r\n hostManagerRoutesUrl.cideSuiteHost,\r\n academicsRoutesUrl.module,\r\n academicsRoutesUrl.bonafide,\r\n requestId,\r\n 'approve'\r\n ]);\r\n return this.http.post<BonafideRequestResponse>(url, data);\r\n }\r\n\r\n /**\r\n * Reject bonafide request\r\n */\r\n rejectRequest(requestId: string, data: RejectBonafideDto): Observable<BonafideRequestResponse> {\r\n const url = cidePath.join([\r\n hostManagerRoutesUrl.cideSuiteHost,\r\n academicsRoutesUrl.module,\r\n academicsRoutesUrl.bonafide,\r\n requestId,\r\n 'reject'\r\n ]);\r\n return this.http.post<BonafideRequestResponse>(url, data);\r\n }\r\n\r\n /**\r\n * Generate bonafide certificate\r\n */\r\n generateCertificate(requestId: string): Observable<BonafideRequestResponse> {\r\n const url = cidePath.join([\r\n hostManagerRoutesUrl.cideSuiteHost,\r\n academicsRoutesUrl.module,\r\n academicsRoutesUrl.bonafide,\r\n requestId,\r\n 'generate'\r\n ]);\r\n return this.http.post<BonafideRequestResponse>(url, {});\r\n }\r\n\r\n /**\r\n * Upload stamped copy\r\n */\r\n uploadStampedCopy(requestId: string, data: UploadStampedCopyDto): Observable<BonafideRequestResponse> {\r\n const url = cidePath.join([\r\n hostManagerRoutesUrl.cideSuiteHost,\r\n academicsRoutesUrl.module,\r\n academicsRoutesUrl.bonafide,\r\n requestId,\r\n 'upload-stamped'\r\n ]);\r\n return this.http.post<BonafideRequestResponse>(url, data);\r\n }\r\n\r\n /**\r\n * Get transaction history\r\n */\r\n getHistory(requestId: string): Observable<BonafideRequestResponse> {\r\n const url = cidePath.join([\r\n hostManagerRoutesUrl.cideSuiteHost,\r\n academicsRoutesUrl.module,\r\n academicsRoutesUrl.bonafide,\r\n requestId,\r\n 'history'\r\n ]);\r\n return this.http.get<BonafideRequestResponse>(url);\r\n }\r\n}\r\n\r\n"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
|
8
8
|
import { NotificationService, ConfirmationService, CideInputComponent, CideTextareaComponent, CideEleButtonComponent, CideIconComponent, CideSelectComponent, CideFormFieldErrorComponent } from 'cloud-ide-element';
|
|
9
9
|
import { AppStateHelperService, ComponentContextService, RightsService, CideLytSharedWrapperComponent } from 'cloud-ide-layout';
|
|
10
10
|
import { ENTITY_SERVICE_TOKEN } from 'cloud-ide-shared';
|
|
11
|
-
import { b as CideLytClassProgramBranchService, C as CideLytProgramClassService, c as CideLytClassProgramTermService } from './cloud-ide-academics-cloud-ide-academics-
|
|
11
|
+
import { b as CideLytClassProgramBranchService, C as CideLytProgramClassService, c as CideLytClassProgramTermService } from './cloud-ide-academics-cloud-ide-academics-CI-kRbx-.mjs';
|
|
12
12
|
import { generateObjectFromString, MClassProgramTerm } from 'cloud-ide-lms-model';
|
|
13
13
|
|
|
14
14
|
class ClassProgramTermCreateComponent {
|
|
@@ -1211,4 +1211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
|
|
|
1211
1211
|
}], ctorParameters: () => [] });
|
|
1212
1212
|
|
|
1213
1213
|
export { ClassProgramTermCreateComponent };
|
|
1214
|
-
//# sourceMappingURL=cloud-ide-academics-class-program-term-create.component-
|
|
1214
|
+
//# sourceMappingURL=cloud-ide-academics-class-program-term-create.component-DJnAsJ1b.mjs.map
|