diff --git a/cd2024bfs4g1-api/src/main/java/com/campusdual/cd2024bfs4g1/api/core/service/IStudentService.java b/cd2024bfs4g1-api/src/main/java/com/campusdual/cd2024bfs4g1/api/core/service/IStudentService.java index 683bef004..f5619cf17 100644 --- a/cd2024bfs4g1-api/src/main/java/com/campusdual/cd2024bfs4g1/api/core/service/IStudentService.java +++ b/cd2024bfs4g1-api/src/main/java/com/campusdual/cd2024bfs4g1/api/core/service/IStudentService.java @@ -14,4 +14,6 @@ public interface IStudentService { EntityResult studentInsert(Map attrMap) throws OntimizeJEERuntimeException; EntityResult studentUpdate(Map attrMap, Map keyMap) throws OntimizeJEERuntimeException; + + EntityResult studentDelete(Map keyMap) throws OntimizeJEERuntimeException; } diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/app.module.ts b/cd2024bfs4g1-frontend/src/main/ngx/src/app/app.module.ts index 897f497e4..d9ae8e811 100644 --- a/cd2024bfs4g1-frontend/src/main/ngx/src/app/app.module.ts +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/app.module.ts @@ -29,7 +29,7 @@ export const customProviders: any = [ ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }) ], declarations: [ - AppComponent + AppComponent, ], bootstrap: [ AppComponent diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-detail/students-detail.component.css b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-detail/students-detail.component.css new file mode 100644 index 000000000..e36180d76 --- /dev/null +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-detail/students-detail.component.css @@ -0,0 +1,61 @@ +o-form-toolbar { + background-color: #f0f0f0; + padding: 10px; + border-radius: 5px; + box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); +} + +o-form-toolbar button { + margin-right: 10px; + background-color: #007bff; + color: white; + border-radius: 3px; + padding: 5px 15px; +} + +o-form { + background-color: #d5e9de; + border: 2px solid #a8d3b8; + padding: 20px; + border-radius: 10px; + max-width: 80%; + margin: 0 auto; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); +} + +[fxLayout="row"] { + display: flex; + align-items: center; + justify-content:space-between; + flex-wrap: wrap; +} + +o-text-input, o-email-input { + display: block; + width: 100%; + padding: 10px; + margin: 10px 0 10px 10px; + background-color: #F5F5F5; + border: 1px solid #a8d3b8; + border-radius: 5px; + font-size: 14px; + color: #2f4f4f; + box-sizing: border-box; +} + +label { + display: block; + width: 100%; + margin: 10px 0 10px 10px; + font-size: 16px; + font-weight: bold; + color: #668873; + box-sizing: border-box; +} + +.hidden { + display: none; +} + + + \ No newline at end of file diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-detail/students-detail.component.html b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-detail/students-detail.component.html new file mode 100644 index 000000000..202bfaad6 --- /dev/null +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-detail/students-detail.component.html @@ -0,0 +1,17 @@ + + +
+
+ + +
+
+ + +
+
+ + +
+
+
diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-detail/students-detail.component.spec.ts b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-detail/students-detail.component.spec.ts new file mode 100644 index 000000000..b3fcb8c7c --- /dev/null +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-detail/students-detail.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { StudentsDetailComponent } from './students-detail.component'; + +describe('StudentsDetailComponent', () => { + let component: StudentsDetailComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ StudentsDetailComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(StudentsDetailComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-detail/students-detail.component.ts b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-detail/students-detail.component.ts new file mode 100644 index 000000000..1a615dab1 --- /dev/null +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-detail/students-detail.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-students-detail', + templateUrl: './students-detail.component.html', + styleUrls: ['./students-detail.component.css'] +}) +export class StudentsDetailComponent { + +} diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-new/students-new.component.css b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-new/students-new.component.css new file mode 100644 index 000000000..77241687e --- /dev/null +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-new/students-new.component.css @@ -0,0 +1,54 @@ +o-form-toolbar { + background-color: #f0f0f0; + padding: 10px; + border-radius: 5px; + box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); + } + + o-form-toolbar button { + margin-right: 10px; + background-color: #007bff; + color: white; + border-radius: 3px; + padding: 5px 15px; + } + + o-form { + background-color: #d5e9de; + border: 2px solid #a8d3b8; + padding: 20px; + border-radius: 10px; + max-width: 80%; + margin: 0 auto; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + } + + [fxLayout="row"] { + display: flex; + align-items: center; + justify-content:space-between; + flex-wrap: wrap; + } + + o-text-input, o-email-input { + display: block; + width: 100%; + padding: 10px; + margin: 10px 0 10px 10px; + background-color: #F5F5F5; + border: 1px solid #a8d3b8; + border-radius: 5px; + font-size: 14px; + color: #2f4f4f; + box-sizing: border-box; + } + +label { + display: block; + width: 100%; + margin: 10px 0 10px 10px; + font-size: 16px; + font-weight: bold; + color: #668873; + box-sizing: border-box; +} diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-new/students-new.component.html b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-new/students-new.component.html new file mode 100644 index 000000000..7f62a2961 --- /dev/null +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-new/students-new.component.html @@ -0,0 +1,16 @@ + +
+
+ + +
+
+ + +
+
+ + +
+
+
diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-new/students-new.component.ts b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-new/students-new.component.ts new file mode 100644 index 000000000..0c13cbece --- /dev/null +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-new/students-new.component.ts @@ -0,0 +1,17 @@ +import { Component, ViewChild } from '@angular/core'; +import { OFormComponent } from 'ontimize-web-ngx'; + +@Component({ + selector: 'app-students-new', + templateUrl: './students-new.component.html', + styleUrls: ['./students-new.component.css'] +}) +export class StudentsNewComponent { + + @ViewChild('studentsform') protected formStudents: OFormComponent; + + insertStudent() { + this.formStudents.insert(); + } + +} diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-routing.module.ts b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-routing.module.ts index f5e6a839c..0a2e01b9c 100644 --- a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-routing.module.ts +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students-routing.module.ts @@ -1,9 +1,13 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; +import { StudentsNewComponent } from './students-new/students-new.component'; +import { StudentsDetailComponent } from './students-detail/students-detail.component'; import { StudentsTableComponent } from './students-table/students-table.component'; const routes: Routes = [ - { path:'', pathMatch:'full', component: StudentsTableComponent} + { path:'', pathMatch:'full', component: StudentsTableComponent}, + { path:"new", component:StudentsNewComponent}, + { path:":id", component:StudentsDetailComponent} ]; @NgModule({ diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students.module.ts b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students.module.ts index f5b405ca5..11b489406 100644 --- a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students.module.ts +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/students/students.module.ts @@ -1,12 +1,17 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { OntimizeWebModule } from 'ontimize-web-ngx'; + import { StudentsRoutingModule } from './students-routing.module'; +import { StudentsDetailComponent } from './students-detail/students-detail.component'; +import { StudentsNewComponent } from './students-new/students-new.component'; +import { OntimizeWebModule } from 'ontimize-web-ngx'; import { StudentsTableComponent } from './students-table/students-table.component'; @NgModule({ declarations: [ + StudentsDetailComponent, + StudentsNewComponent, StudentsTableComponent ], imports: [ @@ -15,4 +20,4 @@ import { StudentsTableComponent } from './students-table/students-table.componen StudentsRoutingModule ] }) -export class StudentsModule { } \ No newline at end of file +export class StudentsModule { } diff --git a/cd2024bfs4g1-model/src/main/java/com/campusdual/cd2024bfs4g1/model/core/service/StudentService.java b/cd2024bfs4g1-model/src/main/java/com/campusdual/cd2024bfs4g1/model/core/service/StudentService.java index 8605fc58a..9662e5ad2 100644 --- a/cd2024bfs4g1-model/src/main/java/com/campusdual/cd2024bfs4g1/model/core/service/StudentService.java +++ b/cd2024bfs4g1-model/src/main/java/com/campusdual/cd2024bfs4g1/model/core/service/StudentService.java @@ -12,8 +12,6 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; -import javax.swing.text.html.parser.Entity; - @Service("StudentService") @Lazy public class StudentService implements IStudentService { @@ -39,4 +37,9 @@ public EntityResult studentInsert(Map attrMap) throws OntimizeJE public EntityResult studentUpdate(Map attrMap, Map keyMap) throws OntimizeJEERuntimeException { return this.daoHelper.update(this.studentDao, attrMap, keyMap); } + + @Override + public EntityResult studentDelete(Map keyMap) throws OntimizeJEERuntimeException { + return this.daoHelper.delete(this.studentDao, keyMap); + } } diff --git a/cd2024bfs4g1-openapi/src/main/resources/public/restapi/openapi-rest.yml b/cd2024bfs4g1-openapi/src/main/resources/public/restapi/openapi-rest.yml index 05c488ded..59561ed9c 100644 --- a/cd2024bfs4g1-openapi/src/main/resources/public/restapi/openapi-rest.yml +++ b/cd2024bfs4g1-openapi/src/main/resources/public/restapi/openapi-rest.yml @@ -4,7 +4,7 @@ info: version: '1.0' description: The cd2024bfs4g1 API servers: - - url: '/' + - url: '' description: Localhost paths: