Compare commits

...
3 Commits
Author SHA1 Message Date
kham 1a9316ed6f put in new function call 2026-09-26 09:23:54 +10:00
kham f3b1d901a8 put in vieww 2026-09-24 22:28:34 +10:00
kham df7e8827be change to v22 and ui optimus ng 2026-09-20 23:07:32 +10:00
26 changed files with 9222 additions and 9745 deletions
+2 -2
View File
@@ -8,7 +8,7 @@
"type": "coreclr", "type": "coreclr",
"request": "launch", "request": "launch",
"preLaunchTask": "build", "preLaunchTask": "build",
"program": "${workspaceFolder}/FamilyTreeAPI/bin/Debug/net10.0/FamilyTreeAPI", "program": "${workspaceFolder}/FamilyTreeAPI/bin/Debug/net10.0/FamilyTreeAPI.dll",
"args": [], "args": [],
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"stopAtEntry": false, "stopAtEntry": false,
@@ -34,7 +34,7 @@
"type": "coreclr", "type": "coreclr",
"request": "launch", "request": "launch",
"preLaunchTask": "publish", "preLaunchTask": "publish",
"program": "${workspaceFolder}\\FamilyTreeAPI\\bin\\Release\\net10.0\\FamilyTreeAPI.dll", "program": "${workspaceFolder}/FamilyTreeAPI/bin/Release/net10.0/linux-x64/FamilyTreeAPI.dll",
"serverReadyAction": { "serverReadyAction": {
"action": "openExternally", "action": "openExternally",
"pattern": "listening on:\\s+(https?://\\S+)", "pattern": "listening on:\\s+(https?://\\S+)",
@@ -122,7 +122,7 @@ public class FileUploadController : ControllerBase
return NotFound("not found image"); return NotFound("not found image");
} }
[HttpPost("[action]")] [HttpPost("[action]")]
public async Task<IActionResult> DownloadPersonPhotoPerson(DownloadFileCriteria criteria) public async Task<IActionResult> DownloadPersonPhoto(DownloadFileCriteria criteria)
{ {
var result = await _personPhoto.DownloadPersonPhotoPerson(criteria.Id,criteria.PhotoType ,criteria.FileName); var result = await _personPhoto.DownloadPersonPhotoPerson(criteria.Id,criteria.PhotoType ,criteria.FileName);
+1 -1
View File
@@ -2,7 +2,7 @@
"AppSettings": { "AppSettings": {
"Secret": "Super Secret SIGN AND VERIFY JWT TOKENS, BEARER TOKEN USE WHEN CALLING THIS API.", "Secret": "Super Secret SIGN AND VERIFY JWT TOKENS, BEARER TOKEN USE WHEN CALLING THIS API.",
"iSQLConnectionString_i": "host=localhost;port=5432;database=FamilyTreeDB_prod;username=postgres;password=Positive~1;", "iSQLConnectionString_i": "host=localhost;port=5432;database=familytreedb;username=postgres;password=Positive~1;",
"SQLConnectionString": "host=127.0.0.1;port=5432;database=familytreedb;username=postgres;password=Positive~1;", "SQLConnectionString": "host=127.0.0.1;port=5432;database=familytreedb;username=postgres;password=Positive~1;",
"ImageFolder": "/temp/Family", "ImageFolder": "/temp/Family",
+2486 -3001
View File
File diff suppressed because it is too large Load Diff
+18 -18
View File
@@ -23,35 +23,35 @@
"private": true, "private": true,
"packageManager": "npm@11.6.4", "packageManager": "npm@11.6.4",
"dependencies": { "dependencies": {
"@angular/common": "^21.0.0", "@angular/common": "^22.0.0",
"@angular/compiler": "^21.0.0", "@angular/compiler": "^22.0.0",
"@angular/core": "^21.0.0", "@angular/core": "^22.0.0",
"@angular/forms": "^21.0.0", "@angular/forms": "^22.0.0",
"@angular/platform-browser": "^21.0.0", "@angular/platform-browser": "^22.0.0",
"@angular/router": "^21.0.0", "@angular/router": "^22.0.0",
"@ngrx/effects": "^21.0.1", "@ngrx/effects": "^22.0.0",
"@ngrx/store": "^21.0.1", "@ngrx/store": "^22.0.0",
"@ngrx/store-devtools": "^21.0.1", "@ngrx/store-devtools": "^22.0.0",
"@primeuix/themes": "^2.0.2", "@openng/optimus-ui": "^2.0.2",
"@tailwindcss/postcss": "^4.1.17", "@tailwindcss/postcss": "^4.1.17",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
"moment": "^2.30.1", "moment": "^2.30.1",
"postcss": "^8.5.6", "postcss": "^8.5.6",
"primeicons": "^7.0.0",
"primeng": "^21.0.1",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"tailwindcss": "^4.1.17", "tailwindcss": "^4.1.17",
"tailwindcss-primeui": "^0.6.1",
"tslib": "^2.3.0", "tslib": "^2.3.0",
"xlsx": "^0.18.5" "xlsx": "^0.18.5",
"@openng/icons": "^1.0.0",
"@openng/optimus-ui-themes": "^2.0.2",
"@openng/optimus-ui-tailwindcss": "^2.0.2"
}, },
"devDependencies": { "devDependencies": {
"@angular/build": "^21.2.7", "@angular/build": "^22.0.0",
"@angular/cli": "^21.2.7", "@angular/cli": "^22.0.0",
"@angular/compiler-cli": "^21.0.0", "@angular/compiler-cli": "^22.0.0",
"@types/file-saver": "^2.0.7", "@types/file-saver": "^2.0.7",
"jsdom": "^27.1.0", "jsdom": "^27.1.0",
"typescript": "~5.9.2", "typescript": "~6.0.0",
"vitest": "^4.0.8" "vitest": "^4.0.8"
} }
} }
+5 -5
View File
@@ -1,9 +1,9 @@
import { ApplicationConfig, provideBrowserGlobalErrorListeners , import { ApplicationConfig, provideBrowserGlobalErrorListeners ,
provideAppInitializer} from '@angular/core'; provideAppInitializer} from '@angular/core';
import { provideRouter, withComponentInputBinding } from '@angular/router'; import { provideRouter, withComponentInputBinding } from '@angular/router';
import { providePrimeNG } from 'primeng/config'; import { provideOptimus } from '@openng/optimus-ui/config';
import { provideHttpClient, withInterceptors } from '@angular/common/http'; import { provideHttpClient, withInterceptors } from '@angular/common/http';
import { ConfirmationService, MessageService } from 'primeng/api'; import { ConfirmationService, MessageService } from '@openng/optimus-ui/api';
import { routes } from './app.routes'; import { routes } from './app.routes';
import MyPreset from './mythem'; import MyPreset from './mythem';
import { JwtInterceptor, ErrorInterceptor, initializeApp } from './shares'; import { JwtInterceptor, ErrorInterceptor, initializeApp } from './shares';
@@ -29,13 +29,13 @@ export const appConfig: ApplicationConfig = {
provideAppInitializer(initializeApp()), provideAppInitializer(initializeApp()),
provideHttpClient(withInterceptors([JwtInterceptor, ErrorInterceptor])), provideHttpClient(withInterceptors([JwtInterceptor, ErrorInterceptor])),
provideRouter(routes, withComponentInputBinding()), provideRouter(routes, withComponentInputBinding()),
providePrimeNG({ provideOptimus({
theme: { theme: {
preset: MyPreset, preset: MyPreset,
options: { options: {
cssLayer: { cssLayer: {
name: 'primeng', name: 'optimus',
order: 'theme, base, primeng' order: 'theme, base, optimus'
} }
} }
} }
+2 -2
View File
@@ -2,8 +2,8 @@
import { Component, signal } from '@angular/core'; import { Component, signal } from '@angular/core';
import { RouterOutlet } from '@angular/router'; import { RouterOutlet } from '@angular/router';
import { ToolbarComponent } from './toolbar/toolbar.component'; import { ToolbarComponent } from './toolbar/toolbar.component';
import { ToastModule } from 'primeng/toast'; import { ToastModule } from '@openng/optimus-ui/toast';
import { ConfirmDialogModule } from 'primeng/confirmdialog'; import { ConfirmDialogModule } from '@openng/optimus-ui/confirmdialog';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
imports: [RouterOutlet,ToastModule,ToolbarComponent,ConfirmDialogModule], imports: [RouterOutlet,ToastModule,ToolbarComponent,ConfirmDialogModule],
+5 -5
View File
@@ -1,15 +1,15 @@
import { ChangeDetectorRef, Component, inject, Inject, OnDestroy, OnInit, signal } from '@angular/core'; import { ChangeDetectorRef, Component, inject, Inject, OnDestroy, OnInit, signal } from '@angular/core';
import { DynamicDialogModule, DynamicDialogRef ,DynamicDialogConfig} from 'primeng/dynamicdialog'; import { DynamicDialogModule, DynamicDialogRef ,DynamicDialogConfig} from '@openng/optimus-ui/dynamicdialog';
import { LookupEdit } from '../models'; import { LookupEdit } from '../models';
import { UntypedFormBuilder, Validators, ReactiveFormsModule } from '@angular/forms'; import { UntypedFormBuilder, Validators, ReactiveFormsModule } from '@angular/forms';
import { Subject, Subscription } from 'rxjs'; import { Subject, Subscription } from 'rxjs';
import { ConfirmationService, MessageService } from 'primeng/api'; import { ConfirmationService, MessageService } from '@openng/optimus-ui/api';
import { LookupService } from '../shares'; import { LookupService } from '../shares';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { CheckboxModule } from 'primeng/checkbox'; import { CheckboxModule } from '@openng/optimus-ui/checkbox';
import { InputTextModule } from 'primeng/inputtext'; import { InputTextModule } from '@openng/optimus-ui/inputtext';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
@Component({ @Component({
selector: 'add-photo', selector: 'add-photo',
imports: [CommonModule, ReactiveFormsModule, imports: [CommonModule, ReactiveFormsModule,
+5 -5
View File
@@ -2,16 +2,16 @@
import { Component, OnInit, OnDestroy, inject, ChangeDetectorRef, signal, output } from '@angular/core'; import { Component, OnInit, OnDestroy, inject, ChangeDetectorRef, signal, output } from '@angular/core';
import { catchError, EMPTY, finalize, Subscription } from 'rxjs'; import { catchError, EMPTY, finalize, Subscription } from 'rxjs';
import { CommonUtilities, HttpUtility, LookupService } from '../shares'; import { CommonUtilities, HttpUtility, LookupService } from '../shares';
import { DialogService ,DynamicDialogConfig,DynamicDialogModule, DynamicDialogRef} from 'primeng/dynamicdialog'; import { DialogService ,DynamicDialogConfig,DynamicDialogModule, DynamicDialogRef} from '@openng/optimus-ui/dynamicdialog';
import { ConfirmationService, MessageService } from 'primeng/api'; import { ConfirmationService, MessageService } from '@openng/optimus-ui/api';
import { AddPhoto } from './add.photo'; import { AddPhoto } from './add.photo';
import { PersonPhotoDto } from '../models'; import { PersonPhotoDto } from '../models';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { TableModule } from 'primeng/table'; import { TableModule } from '@openng/optimus-ui/table';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
import { TooltipModule } from 'primeng/tooltip'; import { TooltipModule } from '@openng/optimus-ui/tooltip';
import { AuthenticationService } from '../user-services'; import { AuthenticationService } from '../user-services';
import { HttpResponse } from '@angular/common/http'; import { HttpResponse } from '@angular/common/http';
import { PersonService } from '../person'; import { PersonService } from '../person';
+5 -5
View File
@@ -1,9 +1,9 @@
import { Component, inject, OnInit } from '@angular/core'; import { Component, inject, OnInit } from '@angular/core';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
import { FileUploadEvent, FileUploadModule } from 'primeng/fileupload'; import { FileUploadEvent, FileUploadModule } from '@openng/optimus-ui/fileupload';
import { MessageService } from 'primeng/api'; import { MessageService } from '@openng/optimus-ui/api';
import { FileUpload } from 'primeng/fileupload'; import { FileUpload } from '@openng/optimus-ui/fileupload';
import { ToastModule } from 'primeng/toast'; import { ToastModule } from '@openng/optimus-ui/toast';
import { AppSettingService } from '../shares'; import { AppSettingService } from '../shares';
/* /*
interface UploadEvent { interface UploadEvent {
+4 -4
View File
@@ -5,13 +5,13 @@ import { first } from 'rxjs/operators';
import { AuthenticationService } from '../user-services'; import { AuthenticationService } from '../user-services';
import { ConfirmationService } from 'primeng/api'; import { ConfirmationService } from '@openng/optimus-ui/api';
import { Subject, Subscription } from 'rxjs'; import { Subject, Subscription } from 'rxjs';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { CardModule } from 'primeng/card'; import { CardModule } from '@openng/optimus-ui/card';
import { ReactiveFormsModule, FormsModule } from '@angular/forms'; import { ReactiveFormsModule, FormsModule } from '@angular/forms';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
import { InputTextModule } from 'primeng/inputtext'; import { InputTextModule } from '@openng/optimus-ui/inputtext';
import { AppSettingService, Utils } from '../shares'; import { AppSettingService, Utils } from '../shares';
@Component({ @Component({
+28 -37
View File
@@ -1,51 +1,41 @@
//mypreset.ts //mypreset.ts
import { definePreset } from '@primeuix/themes'; import { definePreset } from '@openng/optimus-ui-themes';
import Aura from '@primeuix/themes/aura'; import Aura from '@openng/optimus-ui-themes/aura';
import { primitive } from '@primeuix/themes/aura/base';
const MyPreset = definePreset(Aura, { const MyPreset = definePreset(Aura, {
semantic: { semantic: {
colorScheme: {
primitive: {
cyan: {
50: '{cyan.50}',
100: '{cyan.100}',
200: '{cyan.200}',
300: '{cyan.300}',
400: '{cyan.400}',
500: '{cyan.500}',
}
},
primary: { primary: {
50: '{zinc.50}', 50: '{blue.50}',
100: '{zinc.100}', 100: '{blue.100}',
200: '{zinc.200}', 200: '{blue.200}',
300: '{zinc.300}', 300: '{blue.300}',
400: '{zinc.400}', 400: '{blue.400}',
500: '{zinc.500}', 500: '{blue.500}',
600: '{zinc.600}', 600: '{blue.600}',
700: '{zinc.700}', 700: '{blue.700}',
800: '{zinc.800}', 800: '{blue.800}',
900: '{zinc.900}', 900: '{blue.900}',
950: '{zinc.950}' 950: '{blue.950}'
}, },
colorScheme: {
light: { light: {
surface: { surface: {
0: '#ffffff', 0: '#ffffff',
50: '{zinc.50}', 50: '{blue.50}',
100: '{zinc.100}', 100: '{blue.100}',
200: '{zinc.200}', 200: '{blue.200}',
300: '{zinc.300}', 300: '{blue.300}',
400: '{zinc.400}', 400: '{blue.400}',
500: '{zinc.500}', 500: '{blue.500}',
600: '{zinc.600}', 600: '{blue.600}',
700: '{zinc.700}', 700: '{blue.700}',
800: '{zinc.800}', 800: '{blue.800}',
900: '{zinc.900}', 900: '{blue.900}',
950: '{zinc.950}' 950: '{blue.950}'
} }
}, },
dark: { dark: {
@@ -65,6 +55,7 @@ const MyPreset = definePreset(Aura, {
} }
} }
} }
} }
}); });
+10 -10
View File
@@ -1,23 +1,23 @@
import { Component, OnInit, OnDestroy, inject, ChangeDetectorRef, signal} from '@angular/core'; import { Component, OnInit, OnDestroy, inject, ChangeDetectorRef, signal} from '@angular/core';
import { StaffView ,StaffSearch, Person, RelationShip } from '../models'; import { StaffView ,StaffSearch, Person, RelationShip } from '../models';
import { OrganizationChartModule } from 'primeng/organizationchart'; import { OrganizationChartModule } from '@openng/optimus-ui/organizationchart';
import { take } from 'rxjs/operators'; import { take } from 'rxjs/operators';
import { Subscription } from 'rxjs'; import { Subscription } from 'rxjs';
import { PersonService } from './person.service'; import { PersonService } from './person.service';
import { TableModule } from 'primeng/table'; import { TableModule } from '@openng/optimus-ui/table';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
import { TreeNode } from 'primeng/api'; import { TreeNode } from '@openng/optimus-ui/api';
import { InputTextModule } from 'primeng/inputtext'; import { InputTextModule } from '@openng/optimus-ui/inputtext';
import { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog'; import { DialogService, DynamicDialogConfig, DynamicDialogRef } from '@openng/optimus-ui/dynamicdialog';
import { PersonEdit } from './person.edit'; import { PersonEdit } from './person.edit';
import { MessageService } from 'primeng/api'; import { MessageService } from '@openng/optimus-ui/api';
import { TreeModule, TreeNodeDoubleClickEvent, TreeNodeSelectEvent } from 'primeng/tree'; import { TreeModule, TreeNodeDoubleClickEvent, TreeNodeSelectEvent } from '@openng/optimus-ui/tree';
import { Utils } from '../shares'; import { Utils } from '../shares';
import { PopoverModule } from 'primeng/popover'; import { PopoverModule } from '@openng/optimus-ui/popover';
@Component({ @Component({
selector: 'family-orga', selector: 'family-orga',
@@ -64,7 +64,7 @@ export class FamilyOrga implements OnInit, OnDestroy{
{ {
expanded: true, expanded: true,
type: 'person', type: 'person',
styleClass: 'bg-indigo-500 text-white', styleClass: 'bg-blue-500 text-white',
data: { data: {
image: 'https://primefaces.org/cdn/primeng/images/demo/avatar/amyelsner.png', image: 'https://primefaces.org/cdn/primeng/images/demo/avatar/amyelsner.png',
name: 'Amy Elsner', name: 'Amy Elsner',
+9 -9
View File
@@ -1,24 +1,24 @@
import { Component, OnInit, OnDestroy, inject, ChangeDetectorRef, signal} from '@angular/core'; import { Component, OnInit, OnDestroy, inject, ChangeDetectorRef, signal} from '@angular/core';
import { StaffView ,StaffSearch, Person } from '../models'; import { StaffView ,StaffSearch, Person } from '../models';
import { OrganizationChartModule } from 'primeng/organizationchart'; import { OrganizationChartModule } from '@openng/optimus-ui/organizationchart';
import { take } from 'rxjs/operators'; import { take } from 'rxjs/operators';
import { Subscription } from 'rxjs'; import { Subscription } from 'rxjs';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { PersonService } from './person.service'; import { PersonService } from './person.service';
import { AuthenticationService } from '../user-services'; import { AuthenticationService } from '../user-services';
import { TableModule } from 'primeng/table'; import { TableModule } from '@openng/optimus-ui/table';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
import { TreeNode } from 'primeng/api'; import { TreeNode } from '@openng/optimus-ui/api';
import { InputTextModule } from 'primeng/inputtext'; import { InputTextModule } from '@openng/optimus-ui/inputtext';
import { DialogService } from 'primeng/dynamicdialog'; import { DialogService } from '@openng/optimus-ui/dynamicdialog';
import { PersonEdit } from './person.edit'; import { PersonEdit } from './person.edit';
import { MessageService } from 'primeng/api'; import { MessageService } from '@openng/optimus-ui/api';
import { CheckboxModule } from 'primeng/checkbox'; import { CheckboxModule } from '@openng/optimus-ui/checkbox';
import { TreeModule, TreeNodeDoubleClickEvent, TreeNodeSelectEvent } from 'primeng/tree'; import { TreeModule, TreeNodeDoubleClickEvent, TreeNodeSelectEvent } from '@openng/optimus-ui/tree';
import { Utils } from '../shares'; import { Utils } from '../shares';
@Component({ @Component({
+8 -8
View File
@@ -8,17 +8,17 @@ import { Subscription } from 'rxjs';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { PersonService } from './person.service'; import { PersonService } from './person.service';
import { AuthenticationService } from '../user-services'; import { AuthenticationService } from '../user-services';
import { Table, TableModule } from 'primeng/table'; import { Table, TableModule } from '@openng/optimus-ui/table';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
import { InputTextModule } from 'primeng/inputtext'; import { InputTextModule } from '@openng/optimus-ui/inputtext';
import { DialogService } from 'primeng/dynamicdialog'; import { DialogService } from '@openng/optimus-ui/dynamicdialog';
import { PersonEdit } from './person.edit'; import { PersonEdit } from './person.edit';
import { ConfirmationService, MenuItem, MessageService } from 'primeng/api'; import { ConfirmationService, MenuItem, MessageService } from '@openng/optimus-ui/api';
import { IconFieldModule } from 'primeng/iconfield'; import { IconFieldModule } from '@openng/optimus-ui/iconfield';
import { InputIconModule } from 'primeng/inputicon'; import { InputIconModule } from '@openng/optimus-ui/inputicon';
import { Menu, MenuModule } from 'primeng/menu'; import { Menu, MenuModule } from '@openng/optimus-ui/menu';
import { FamilyOrga } from './family.orga'; import { FamilyOrga } from './family.orga';
import { saveAs } from 'file-saver'; import { saveAs } from 'file-saver';
+14 -12
View File
@@ -1,28 +1,28 @@
import { ChangeDetectorRef, Component, inject, OnDestroy, OnInit, signal, ViewChild } from '@angular/core'; import { ChangeDetectorRef, Component, inject, OnDestroy, OnInit, signal, ViewChild } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router'; import { Router, ActivatedRoute } from '@angular/router';
import {DialogService, DynamicDialogRef} from 'primeng/dynamicdialog'; import {DialogService, DynamicDialogRef} from '@openng/optimus-ui/dynamicdialog';
import {DynamicDialogConfig} from 'primeng/dynamicdialog'; import {DynamicDialogConfig} from '@openng/optimus-ui/dynamicdialog';
import { FormControl, ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms'; import { FormControl, ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms';
import { Subject, Subscription} from 'rxjs'; import { Subject, Subscription} from 'rxjs';
import { ConfirmationService, MessageService } from 'primeng/api'; import { ConfirmationService, MessageService } from '@openng/optimus-ui/api';
import { DatePickerModule } from 'primeng/datepicker'; import { DatePickerModule } from '@openng/optimus-ui/datepicker';
import { Code, RelationShipView, Person, mState, RelationShip, PersonPhotoDto, enumPhoto } from '../models'; import { Code, RelationShipView, Person, mState, RelationShip, PersonPhotoDto, enumPhoto } from '../models';
import { AppSettingService, LookupService, Utils } from '../shares'; import { AppSettingService, LookupService, Utils } from '../shares';
import { PersonService } from './person.service'; import { PersonService } from './person.service';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
import { SelectModule } from 'primeng/select'; import { SelectModule } from '@openng/optimus-ui/select';
import { CheckboxModule } from 'primeng/checkbox'; import { CheckboxModule } from '@openng/optimus-ui/checkbox';
import { InputTextModule } from 'primeng/inputtext'; import { InputTextModule } from '@openng/optimus-ui/inputtext';
import moment from 'moment'; import moment from 'moment';
import { HttpEvent } from '@angular/common/http'; import { HttpEvent } from '@angular/common/http';
import { TableModule } from 'primeng/table'; import { TableModule } from '@openng/optimus-ui/table';
import { Pickperson } from '../pickperson/pickperson'; import { Pickperson } from '../pickperson/pickperson';
import { ImageDisplayComponent } from '../pickperson/image.display'; import { ImageDisplayComponent } from '../pickperson/image.display';
import { TooltipModule } from 'primeng/tooltip'; import { TooltipModule } from '@openng/optimus-ui/tooltip';
import { AutoFocusModule } from 'primeng/autofocus'; import { AutoFocusModule } from '@openng/optimus-ui/autofocus';
import { DomSanitizer } from '@angular/platform-browser'; import { DomSanitizer } from '@angular/platform-browser';
import { PhotoList } from '../attachphoto/photolist'; import { PhotoList } from '../attachphoto/photolist';
import { InputNumberDesignTokens } from '@primeuix/themes/types/inputnumber'; import { InputNumberDesignTokens } from '@openng/optimus-ui-themes/types/inputnumber';
export interface FileUploadEvent { export interface FileUploadEvent {
originalEvent: HttpEvent<any>; originalEvent: HttpEvent<any>;
@@ -308,6 +308,8 @@ doViewImage(imageName:string): void {
const ref = this.dialogService.open(ImageDisplayComponent, { const ref = this.dialogService.open(ImageDisplayComponent, {
data: { data: {
imageName, imageName,
personId: this._id,
photyType: enumPhoto.Profile
}, },
header: 'View Image', header: 'View Image',
draggable: true, draggable: true,
+1 -1
View File
@@ -4,7 +4,7 @@ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { Staff,StaffSearch, StaffView, ResultModel,ConfigureUrl,ResetPassword, Person, PersonContainer, RelationShip } from '../models'; import { Staff,StaffSearch, StaffView, ResultModel,ConfigureUrl,ResetPassword, Person, PersonContainer, RelationShip } from '../models';
import { AppSettingService } from '../shares'; import { AppSettingService } from '../shares';
import { TreeNode } from 'primeng/api'; import { TreeNode } from '@openng/optimus-ui/api';
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class PersonService { export class PersonService {
+3 -3
View File
@@ -5,8 +5,8 @@ import { PersonService } from '../person';
import { Subscription } from 'rxjs'; import { Subscription } from 'rxjs';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
import { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog'; import { DynamicDialogConfig, DynamicDialogRef } from '@openng/optimus-ui/dynamicdialog';
@Component({ @Component({
selector: 'app-image-display', selector: 'app-image-display',
@@ -34,7 +34,7 @@ export class ImageDisplayComponent implements OnInit, OnDestroy {
} }
loadImage(fileName: string | null, personId: number, photoType: number): void { loadImage(fileName: string | null, personId: number, photoType: number): void {
const download = this.personService.downloadPersonPhoto(fileName!, personId, photoType); const download = this.personService.downloadPersonPhoto64(fileName!, personId, photoType);
this.subscription.add(download.subscribe({ this.subscription.add(download.subscribe({
next: x => { next: x => {
if (x.statusCode == 1) if (x.statusCode == 1)
+6 -6
View File
@@ -1,13 +1,13 @@
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { Component, OnDestroy, OnInit, signal, ViewChild } from '@angular/core'; import { Component, OnDestroy, OnInit, signal, ViewChild } from '@angular/core';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { Table, TableModule } from 'primeng/table'; import { Table, TableModule } from '@openng/optimus-ui/table';
import { Person } from '../models'; import { Person } from '../models';
import { IconFieldModule } from 'primeng/iconfield'; import { IconFieldModule } from '@openng/optimus-ui/iconfield';
import { InputIconModule } from 'primeng/inputicon'; import { InputIconModule } from '@openng/optimus-ui/inputicon';
import { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog'; import { DynamicDialogConfig, DynamicDialogRef } from '@openng/optimus-ui/dynamicdialog';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
import { InputTextModule } from 'primeng/inputtext'; import { InputTextModule } from '@openng/optimus-ui/inputtext';
@Component({ @Component({
selector: 'app-pickperson', selector: 'app-pickperson',
+1 -1
View File
@@ -1,6 +1,6 @@
import moment from "moment"; import moment from "moment";
import { Person, User, userRole } from "../models" import { Person, User, userRole } from "../models"
import { TreeNode } from "primeng/api"; import { TreeNode } from "@openng/optimus-ui/api";
type MyProName = "fatherId" | "motherId"; type MyProName = "fatherId" | "motherId";
+3 -3
View File
@@ -9,11 +9,11 @@ import { Subscription } from 'rxjs';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { StaffService } from './staff.service'; import { StaffService } from './staff.service';
import { AuthenticationService } from '../user-services'; import { AuthenticationService } from '../user-services';
import { TableModule } from 'primeng/table'; import { TableModule } from '@openng/optimus-ui/table';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
import { InputTextModule } from 'primeng/inputtext'; import { InputTextModule } from '@openng/optimus-ui/inputtext';
import { selectStaffLoaded,selectStaff } from '../state/staff.selectors'; import { selectStaffLoaded,selectStaff } from '../state/staff.selectors';
@Component({ @Component({
+5 -5
View File
@@ -2,15 +2,15 @@ import { Component, inject, input, numberAttribute, OnDestroy, OnInit } from '@a
import { Router, ActivatedRoute } from '@angular/router'; import { Router, ActivatedRoute } from '@angular/router';
import { ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms'; import { ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms';
import { Subject, Subscription} from 'rxjs'; import { Subject, Subscription} from 'rxjs';
import { MessageService } from 'primeng/api'; import { MessageService } from '@openng/optimus-ui/api';
import {Staff, Code, userRole} from '../models'; import {Staff, Code, userRole} from '../models';
import { LookupService, Utils } from '../shares'; import { LookupService, Utils } from '../shares';
import { StaffService } from './staff.service'; import { StaffService } from './staff.service';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
import { SelectModule } from 'primeng/select'; import { SelectModule } from '@openng/optimus-ui/select';
import { CheckboxModule } from 'primeng/checkbox'; import { CheckboxModule } from '@openng/optimus-ui/checkbox';
import { InputTextModule } from 'primeng/inputtext'; import { InputTextModule } from '@openng/optimus-ui/inputtext';
@Component({ @Component({
templateUrl: 'staff.edit.component.html', templateUrl: 'staff.edit.component.html',
+2 -2
View File
@@ -2,13 +2,13 @@ import { Component, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router'; import { Router, ActivatedRoute } from '@angular/router';
import { FormsModule, ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms'; import { FormsModule, ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms';
import { Subject, Subscription} from 'rxjs'; import { Subject, Subscription} from 'rxjs';
import { MessageService } from 'primeng/api'; import { MessageService } from '@openng/optimus-ui/api';
import {Staff, Code, userRole, ResetPassword} from '../models'; import {Staff, Code, userRole, ResetPassword} from '../models';
import { LookupService, Utils } from '../shares'; import { LookupService, Utils } from '../shares';
import { StaffService } from './staff.service'; import { StaffService } from './staff.service';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from '@openng/optimus-ui/button';
@Component({ @Component({
templateUrl: 'staff.pass.component.html', templateUrl: 'staff.pass.component.html',
+4 -4
View File
@@ -1,10 +1,10 @@
import { Component, OnInit, OnDestroy, effect, computed, Signal, } from '@angular/core'; import { Component, OnInit, OnDestroy, effect, computed, Signal, } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { MenuItem } from 'primeng/api'; import { MenuItem } from '@openng/optimus-ui/api';
import { MenuModule } from 'primeng/menu'; import { MenuModule } from '@openng/optimus-ui/menu';
import { ButtonModule} from 'primeng/button'; import { ButtonModule} from '@openng/optimus-ui/button';
import { ButtonGroupModule } from 'primeng/buttongroup'; import { ButtonGroupModule } from '@openng/optimus-ui/buttongroup';
import { Subscription } from 'rxjs'; import { Subscription } from 'rxjs';
import { AuthenticationService } from '../user-services'; import { AuthenticationService } from '../user-services';
import { Utils } from '../shares'; import { Utils } from '../shares';
+2 -2
View File
@@ -1,7 +1,7 @@
/* You can add global styles to this file, and also import other style files */ /* You can add global styles to this file, and also import other style files */
@import "tailwindcss"; @import "tailwindcss";
@plugin "tailwindcss-primeui"; @plugin "@openng/optimus-ui-tailwindcss";
@import "primeicons/primeicons.css"; @import "@openng/icons/openng-icons.css";
html, html,
body { body {
height: 100%; height: 100%;
-1
View File
@@ -10,7 +10,6 @@
"noFallthroughCasesInSwitch": true, "noFallthroughCasesInSwitch": true,
"skipLibCheck": true, "skipLibCheck": true,
"isolatedModules": true, "isolatedModules": true,
"experimentalDecorators": true,
"importHelpers": true, "importHelpers": true,
"target": "ES2022", "target": "ES2022",
"module": "preserve" "module": "preserve"