Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
24d5e18
create and setup home page in its child components
amirbarari Aug 31, 2025
b98de63
fix : home and nested components routing
amirbarari Aug 31, 2025
4897728
feat: add design for sidebar
MohammadAminDadkhah Aug 31, 2025
15718f2
creating needed components, store and services for managing workflows…
amirbarari Aug 31, 2025
50b104e
handle showing list of workflows tabs
amirbarari Sep 1, 2025
d415c28
implementing workflow tab component
amirbarari Sep 1, 2025
64fd060
handle creating new workflow
amirbarari Sep 1, 2025
4a3bf72
handle selecting tabs and overflow
amirbarari Sep 1, 2025
f42e949
add reordering workflow tabs with drag and drop
amirbarari Sep 1, 2025
48c66be
add skeleton for workflow tabs
amirbarari Sep 1, 2025
44a5a0a
handle closing workflows
amirbarari Sep 1, 2025
6e283b7
adding animation for adding and removing workflow tabs
amirbarari Sep 1, 2025
c044579
crate and implement workflow selector component
amirbarari Sep 1, 2025
03cda63
fix openWorkflow effect in workflows list Store
amirbarari Sep 1, 2025
4aaf5e2
combining create and select workflow together and add input to user e…
amirbarari Sep 1, 2025
2a579ac
fix openworkflow effect in workflow-list store
amirbarari Sep 1, 2025
d0e54f3
merge sidebar with workflows
amirbarari Sep 2, 2025
383c0ad
implementing manage files page
amirbarari Sep 2, 2025
f115262
make manage-files component modular
amirbarari Sep 2, 2025
8aec14c
seprate upload-file to new component
amirbarari Sep 2, 2025
a316fa5
fix scroll problem in home page
amirbarari Sep 3, 2025
18593fd
implement custome file uploader
amirbarari Sep 3, 2025
40eef95
fix droping files and add styles for it in file-uploader component
amirbarari Sep 3, 2025
2e22675
implement uploaded-file-item component
amirbarari Sep 3, 2025
f8ded5f
enhance styles in file uploader
amirbarari Sep 3, 2025
1687500
implement store for managing uploaded files
amirbarari Sep 3, 2025
62b0b80
handle duplicat file upload
amirbarari Sep 3, 2025
88ee246
implement file-editor component to edit uploaded files
amirbarari Sep 3, 2025
806050f
fix: fix style of home page and sidebar
MohammadAminDadkhah Sep 5, 2025
a66628b
create csv filer parser service
amirbarari Sep 6, 2025
9ad2ecc
handling uploaded files parse errors in editor
amirbarari Sep 6, 2025
f984b94
setup store for files-management component
amirbarari Sep 6, 2025
f197d0a
create files-management service and update environmet file to update …
amirbarari Sep 6, 2025
72fe329
reimplement manage-files component base on its store and service
amirbarari Sep 6, 2025
3d86711
create fileSet updater and complete fetching files implementation
amirbarari Sep 7, 2025
3362dba
handling actions base on different file stages in manage-files
amirbarari Sep 7, 2025
39a10d9
rename file-editor component to schema-editor
amirbarari Sep 7, 2025
f9cf09b
create and setup schema-editro store
amirbarari Sep 7, 2025
e377c38
feat: add pipe for route to manage header component
MohammadAminDadkhah Sep 7, 2025
e0005fc
handle fetching schema's
amirbarari Sep 7, 2025
f7590b0
merge commit
amirbarari Sep 7, 2025
614e339
handle navigation to files list from file-upload page
amirbarari Sep 7, 2025
268c432
handle uploading files to server
amirbarari Sep 7, 2025
757ab68
fix: remove home module
MohammadAminDadkhah Sep 7, 2025
bec1b09
add tooltip for uploaded-file-item component icons
amirbarari Sep 7, 2025
5db0fa4
add UploadFile effect in upload-file store
amirbarari Sep 7, 2025
b204d89
create and implement file-process-stepper component
amirbarari Sep 7, 2025
ba80831
update upload file api base on new Api's
amirbarari Sep 8, 2025
9fefb3f
Merge branch 'frontend/manage-workflows-and-csv' of https://github.co…
amirbarari Sep 8, 2025
81978fe
fix: revert home module
MohammadAminDadkhah Sep 8, 2025
0347524
remove upload file component
amirbarari Sep 8, 2025
a08961e
revert removed uploader-file component and fix some folders structure
amirbarari Sep 8, 2025
f96c126
fix routerLinks route base on removing home route
amirbarari Sep 8, 2025
e936109
handle getting files list base on new Api
amirbarari Sep 8, 2025
ba08b9e
feat: add store and service of tables
MohammadAminDadkhah Sep 8, 2025
05c6d95
implementin deleting file
amirbarari Sep 8, 2025
8fd9df2
Merge branch 'frontend/manage-workflows-and-csv' of https://github.co…
amirbarari Sep 9, 2025
2565953
fix deleting file endless loop problem
amirbarari Sep 9, 2025
1a689f2
add style for deleting file state
amirbarari Sep 9, 2025
1f499c6
fix uploadFiles response type
amirbarari Sep 9, 2025
babd712
feat: connect tables api to ui
MohammadAminDadkhah Sep 9, 2025
8f88866
feat: add column store and service
MohammadAminDadkhah Sep 9, 2025
d3fd68c
handle uploading file in file process stepper
amirbarari Sep 9, 2025
a387cd5
style the file process stepper component
amirbarari Sep 9, 2025
aa0f3b1
Merge branch 'frontend/manage-workflows-and-csv' of https://github.co…
amirbarari Sep 9, 2025
887f9f7
Merge remote-tracking branch 'origin/frontend/manage-workflows-and-cs…
MohammadAminDadkhah Sep 9, 2025
a87a4ae
handle api calls in schema editor
amirbarari Sep 9, 2025
50c265b
remove logs and return error in absence of schema
amirbarari Sep 10, 2025
c2622f6
handle success and failure of updating schema
amirbarari Sep 10, 2025
4063e47
style schema editor component and add back button
amirbarari Sep 10, 2025
d02b64f
add loading in schema editor
amirbarari Sep 10, 2025
35851ec
edit SchemaEditorState interface to handle both loading for saving an…
amirbarari Sep 10, 2025
dc163d3
handle manage files action buttons base on file stages
amirbarari Sep 10, 2025
8f9ff32
implement creating table and connect its Api
amirbarari Sep 10, 2025
394e079
add toast to show on success or fail of creating table
amirbarari Sep 10, 2025
f9fd4ea
fix manage files table scrolling issue
amirbarari Sep 10, 2025
1214cf7
feat: adding column details
MohammadAminDadkhah Sep 10, 2025
e71fc24
Merge remote-tracking branch 'origin/frontend/manage-workflows-and-cs…
MohammadAminDadkhah Sep 10, 2025
e05374b
complete step 2 and 3 of file process stepper component
amirbarari Sep 10, 2025
545fbd3
handle navigation and file selection change in file process stepper
amirbarari Sep 10, 2025
cd34b10
Merge branch 'frontend/manage-workflows-and-csv' of https://github.co…
amirbarari Sep 10, 2025
bdb39b3
fix auto deleting problem in manage tables
amirbarari Sep 10, 2025
34c4f29
fix showing wrong action button in Loaded state
amirbarari Sep 10, 2025
63e9e67
show toast message in vase of fail and success of uploadin files
amirbarari Sep 10, 2025
18233dd
feat: add edit name for table
MohammadAminDadkhah Sep 11, 2025
bb7dfa1
feat: add edit name for table
MohammadAminDadkhah Sep 11, 2025
6f2f9f4
Merge remote-tracking branch 'origin/frontend/manage-workflows-and-cs…
MohammadAminDadkhah Sep 11, 2025
a803a65
fix table detail route
amirbarari Sep 11, 2025
0c66c9d
fix: fix edit table name
MohammadAminDadkhah Sep 12, 2025
e7a7f2c
feat: finish column api
MohammadAminDadkhah Sep 12, 2025
520cdc7
merge commit
amirbarari Sep 13, 2025
37a65f0
connect table data types api in schema editor
amirbarari Sep 13, 2025
f3cf747
fix: fix scroll and type bugs
MohammadAminDadkhah Sep 13, 2025
d901a0b
change me url
MohammadAminDadkhah Sep 13, 2025
31162a7
fix: enable guards
MohammadAminDadkhah Sep 13, 2025
5c7ecd8
add router link to file item for seeing its table detail
amirbarari Sep 13, 2025
4a0c064
update dto of auth/me
MohammadAminDadkhah Sep 14, 2025
e2f3a15
change password url to new url
MohammadAminDadkhah Sep 14, 2025
336bd3a
change edit profile url to new url
MohammadAminDadkhah Sep 14, 2025
de86e7a
feat: adding row api with pagination
MohammadAminDadkhah Sep 14, 2025
0bcd2d9
fix manage users list
amirbarari Sep 14, 2025
369753d
style create user modal and add label for inputs
amirbarari Sep 14, 2025
964341f
fix eidt user
amirbarari Sep 14, 2025
fa41bd0
add back button to profile page
amirbarari Sep 14, 2025
f5e8e08
merge commit
amirbarari Sep 14, 2025
c72c036
fix updating users table when new user is created
amirbarari Sep 14, 2025
a4daae1
update sys-admin guard and set guard for home child routes
amirbarari Sep 15, 2025
b65b2d4
replace home menu with buttons
amirbarari Sep 15, 2025
32914a5
create has role directive to handl user access to DOM elements
amirbarari Sep 15, 2025
c8666ff
update profile component to use hasRole directive
amirbarari Sep 15, 2025
4e0c78c
create auth guard to handle user auth in loading /dashboard route
amirbarari Sep 15, 2025
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
5 changes: 5 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 0 additions & 29 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

33 changes: 0 additions & 33 deletions README.backend.md

This file was deleted.

3 changes: 2 additions & 1 deletion etl_frontend/src/app/app.component.html
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
<p-confirmdialog />
<p-toast position="bottom-right"></p-toast>
<router-outlet />
<router-outlet></router-outlet>
6 changes: 4 additions & 2 deletions etl_frontend/src/app/app.component.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
import {Component, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';
import {RouterOutlet} from '@angular/router';
import { ConfirmationService } from 'primeng/api';
import { ConfirmDialogModule } from 'primeng/confirmdialog';
import {Toast} from 'primeng/toast';

@Component({
standalone: true,
selector: 'app-root',
imports: [RouterOutlet, Toast],
imports: [RouterOutlet, Toast, ConfirmDialogModule],
templateUrl: './app.component.html',
styleUrl: './app.component.scss',
schemas: [CUSTOM_ELEMENTS_SCHEMA]
schemas: []
})
export class AppComponent {
}
6 changes: 3 additions & 3 deletions etl_frontend/src/app/app.config.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ApplicationConfig, importProvidersFrom, provideZoneChangeDetection } from '@angular/core';
import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
import { providePrimeNG } from 'primeng/config';
import { provideRouter } from '@angular/router';
import { routes } from './app.routes';
Expand All @@ -11,14 +11,14 @@ import { CoreModule } from './core/core.module';
import { provideHttpClient, withInterceptors } from '@angular/common/http';
import { errorHandlingInterceptor } from './shared/interceptors/error-handling/error-handling.interceptor';
import { credentialsInterceptor } from './shared/interceptors/credentials/credentials.interceptor';
import { ConfirmationService } from 'primeng/api';

export const appConfig: ApplicationConfig = {
providers: [
importProvidersFrom(CoreModule),
provideAnimationsAsync(),
importProvidersFrom(CoreModule),
provideZoneChangeDetection({ eventCoalescing: true }),
provideRouter(routes),
provideAnimationsAsync(),
providePrimeNG({
theme: {
preset: CustomAura,
Expand Down
11 changes: 5 additions & 6 deletions etl_frontend/src/app/app.routes.ts
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
import { Routes } from '@angular/router';
import { NotFoundComponent } from './features/not-found/not-found.component';
import { sysAdminGuard } from './shared/guards/sys-admin.guard';
import { authGuard } from './shared/guards/auth/auth.guard';

export const routes: Routes = [
{
path: '',
pathMatch: 'full',
// redirectTo: 'dashboard'
redirectTo: 'landing'
redirectTo: 'dashboard'
// redirectTo: 'landing'
},
{
path: 'dashboard',
canMatch: [authGuard],
loadChildren: () => import('./features/dashboard/dashboard.module').then(m => m.DashboardModule),
canMatch: [], //TODO check this
data: { role: "data_admin" }
},
{
path: 'landing',
loadComponent: () => import('./features/landing/landing.component').then(m => m.LandingComponent),
canActivate: [] //TODO adding auth guard
},
{
path: 'send-token-code',
loadComponent: () => import('./features/send-token-code/send-token-code.component').then(m => m.SendTokenCodeComponent),
canActivate: [] //TODO adding auth guard
},
{
path: 'profile',
Expand Down
4 changes: 2 additions & 2 deletions etl_frontend/src/app/core/core.module.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {MessageService} from 'primeng/api';
import {ConfirmationService, MessageService} from 'primeng/api';

@NgModule({
declarations: [],
imports: [
CommonModule,
],
providers: [MessageService,]
providers: [MessageService, ConfirmationService]
})
export class CoreModule {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<div class="sidebar">
<p-button
label="Workflow History"
icon="pi pi-file-plus"
[routerLink]="'/dashboard/workflows'"
rounded
[routerLinkActive]="'active-tab'"
text
></p-button>
<p-button
*hasRole="['sys_admin', 'data_admin']"
label="File Management"
icon="pi pi-file-import"
rounded
[routerLink]="['/', 'dashboard', 'files']"
[routerLinkActive]="'active-tab'"
text
></p-button>
<p-button
*hasRole="['sys_admin', 'data_admin']"
label="Table Management"
icon="pi pi-table"
[routerLink]="['/', 'dashboard', 'tables']"
[routerLinkActive]="'active-tab'"
text
rounded
></p-button>
</div>

<div class="dynamic-content">
<router-outlet></router-outlet>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
:host {
display: flex;
gap: 1rem;
padding-block-start: 0.8rem;

.sidebar {
min-inline-size: 15vw;
display: flex;
align-items: start;
flex-wrap: nowrap;
flex-direction: column;
gap: 0.5rem;

.active-tab {
border-bottom: 1px solid blue;
border-radius: 0.3rem;
}
}

.dynamic-content {
inline-size: 85vw;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';

import { HomeComponent } from './home.component';

describe('HomeComponent', () => {
let component: HomeComponent;
let fixture: ComponentFixture<HomeComponent>;

beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [HomeComponent]
})
.compileComponents();

fixture = TestBed.createComponent(HomeComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});

it('should create', () => {
expect(component).toBeTruthy();
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { Component } from '@angular/core';

@Component({
selector: 'app-home',
standalone: false,
templateUrl: './home.component.html',
styleUrl: './home.component.scss'
})
export class HomeComponent {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import { Routes } from "@angular/router";
import { HomeComponent } from "./home.component";
import { sysAdminGuard } from "../../../../shared/guards/sys-admin.guard";

export const homeRoutes: Routes = [
{
path: '',
component: HomeComponent,
children: [
{
path: '',
pathMatch: 'full',
redirectTo: 'workflows',
},
{
path: 'workflows',
loadChildren: () =>
import('./manage-workflows/manage-workflows.module').then(
(m) => m.ManageWorkflowsModule
)
},
{
path: 'files',
canMatch: [sysAdminGuard],
data: { roles: ["data_admin", "sys_admin"] },
loadChildren: () =>
import('./manage-files/manage-files.module').then(
(m) => m.ManageFilesModule
),
},
{
path: 'tables',
canMatch: [sysAdminGuard],
data: { roles: ["data_admin", "sys_admin"] },
loadChildren: () =>
import('./manage-tables/manage-tables.module').then(
(m) => m.ManageTablesModule
),
},
{
path: '**',
redirectTo: 'workflows'
}
],
},
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { homeRoutes } from './home.module.routing';
import { MenuModule } from 'primeng/menu';
import { HomeComponent } from './home.component';
import { TableService } from './manage-tables/services/table.service';
import { Button } from 'primeng/button';
import { HasRoleDirective } from '../../../../shared/directives/has-role/has-role.directive';

@NgModule({
declarations: [HomeComponent],
imports: [
CommonModule,
RouterModule,
MenuModule,
RouterModule.forChild(homeRoutes),
Button,
HasRoleDirective
],
providers: [TableService]
})
export class HomeModule { }
Loading