Merge branch 'login-dev' of adekola/talenttic-crm-app into master

This commit is contained in:
2023-04-25 17:20:26 +02:00
committed by Gogs
18 changed files with 996 additions and 829 deletions

View File

@@ -10457,7 +10457,7 @@ a.text-darker:focus {
margin: 4px 1px; margin: 4px 1px;
border-radius: 0.4285rem; border-radius: 0.4285rem;
cursor: pointer; cursor: pointer;
background: #211069; background: #211069 !important;
background-image: -webkit-linear-gradient( background-image: -webkit-linear-gradient(
to bottom left, to bottom left,
#211069, #211069,
@@ -10510,27 +10510,27 @@ a.text-darker:focus {
background-color: #263148 !important; background-color: #263148 !important;
background-image: linear-gradient( background-image: linear-gradient(
to bottom left, to bottom left,
#344675, #211069,
#263148, #564794,
#344675 #211069
) !important; ) !important;
background-image: -webkit-linear-gradient( background-image: -webkit-linear-gradient(
to bottom left, to bottom left,
#211069, #211069,
#263148, #564794,
#211069 #211069
) !important; ) !important;
background-image: -o-linear-gradient( background-image: -o-linear-gradient(
to bottom left, to bottom left,
#211069, #211069,
#263148, #564794,
#211069 #211069
) !important; ) !important;
background-image: -moz-linear-gradient( background-image: -moz-linear-gradient(
to bottom left, to bottom left,
#344675, #211069,
#263148, #564794,
#344675 #211069
) !important; ) !important;
color: #ffffff; color: #ffffff;
box-shadow: none; box-shadow: none;
@@ -10643,9 +10643,9 @@ fieldset[disabled] .navbar .navbar-nav > a.btn.active {
border-color: #344675; border-color: #344675;
background-image: linear-gradient( background-image: linear-gradient(
to bottom left, to bottom left,
#344675, #211069,
#263148, #564794,
#344675 #211069
) !important; ) !important;
background-image: -webkit-linear-gradient( background-image: -webkit-linear-gradient(
to bottom left, to bottom left,

View File

@@ -2,11 +2,15 @@ import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common"; import { CommonModule } from "@angular/common";
import { BrowserModule } from "@angular/platform-browser"; import { BrowserModule } from "@angular/platform-browser";
import { Routes, RouterModule } from "@angular/router"; import { Routes, RouterModule } from "@angular/router";
import { LoginComponent } from "./pages/login/login.component";
import { AdminLayoutComponent } from "./layouts/admin-layout/admin-layout.component"; import { AdminLayoutComponent } from "./layouts/admin-layout/admin-layout.component";
import { AuthLayoutComponent } from './layouts/auth-layout/auth-layout.component'; import { AuthLayoutComponent } from './layouts/auth-layout/auth-layout.component';
const routes: Routes = [ const routes: Routes = [
{
path: "login",
component: LoginComponent
},
{ {
path: "", path: "",
redirectTo: "company-information", redirectTo: "company-information",

View File

@@ -14,6 +14,7 @@ import { NgbModule } from "@ng-bootstrap/ng-bootstrap";
import { AppRoutingModule } from "./app-routing.module"; import { AppRoutingModule } from "./app-routing.module";
import { ComponentsModule } from "./components/components.module"; import { ComponentsModule } from "./components/components.module";
import { LoginComponent } from './pages/login/login.component'; import { LoginComponent } from './pages/login/login.component';
// import { DatePipe } from "@angular/common";
@NgModule({ @NgModule({
imports: [ imports: [

View File

@@ -1,123 +1,129 @@
<nav class=" navbar navbar-expand-lg navbar-absolute navbar-transparent"> <nav class="navbar navbar-expand-lg navbar-absolute navbar-transparent">
<div class=" container-fluid"> <div class="container-fluid">
<div class=" navbar-wrapper"> <div class="navbar-wrapper">
<div class=" navbar-toggle d-inline"> <div class="navbar-toggle d-inline">
<button class=" navbar-toggler" type="button" (click)="sidebarToggle()"> <button class="navbar-toggler" type="button" (click)="sidebarToggle()">
<span class=" navbar-toggler-bar bar1"> </span> <span class="navbar-toggler-bar bar1"> </span>
<span class=" navbar-toggler-bar bar2"> </span> <span class="navbar-toggler-bar bar2"> </span>
<span class=" navbar-toggler-bar bar3"> </span> <span class="navbar-toggler-bar bar3"> </span>
</button> </button>
</div> </div>
<a class=" navbar-brand" href="javascript:void(0)"> {{ getTitle() }} </a> <a class="navbar-brand" href="javascript:void(0)"> {{ getTitle() }} </a>
</div> </div>
<button <button
aria-label="Toggle navigation" aria-label="Toggle navigation"
class=" navbar-toggler" class="navbar-toggler"
(click)="collapse()" (click)="collapse()"
[attr.aria-expanded]="!isCollapsed" [attr.aria-expanded]="!isCollapsed"
aria-controls="collapseExample" aria-controls="collapseExample"
id="navigation" id="navigation"
type="button" type="button"
> >
<span class=" navbar-toggler-bar navbar-kebab"> </span> <span class="navbar-toggler-bar navbar-kebab"> </span>
<span class=" navbar-toggler-bar navbar-kebab"> </span> <span class="navbar-toggler-bar navbar-kebab"> </span>
<span class=" navbar-toggler-bar navbar-kebab"> </span> <span class="navbar-toggler-bar navbar-kebab"> </span>
</button> </button>
<div class=" navbar-collapse" [ngbCollapse]="isCollapsed" id="navigation"> <div class="navbar-collapse" [ngbCollapse]="isCollapsed" id="navigation">
<ul class=" navbar-nav ml-auto"> <ul class="navbar-nav ml-auto">
<li class=" search-bar input-group"> <li class="search-bar input-group">
<button <button
class=" btn btn-link" class="btn btn-link"
data-target="#searchModal" data-target="#searchModal"
data-toggle="modal" data-toggle="modal"
(click)="open(content)" (click)="open(content)"
id="search-button" id="search-button"
> >
<i class=" tim-icons icon-zoom-split"> </i> <i class="tim-icons icon-zoom-split"> </i>
<span class=" d-lg-none d-md-block"> Search </span> <span class="d-lg-none d-md-block"> Search </span>
</button> </button>
</li> </li>
<li class=" nav-item" ngbDropdown> <li class="nav-item" ngbDropdown>
<a <a
class=" nav-link" class="nav-link"
data-toggle="dropdown" data-toggle="dropdown"
href="javascript:void(0)" href="javascript:void(0)"
ngbDropdownToggle ngbDropdownToggle
> >
<div class=" notification d-none d-lg-block d-xl-block"></div> <div class="notification d-none d-lg-block d-xl-block"></div>
<i class=" tim-icons icon-sound-wave"> </i> <i class="bi bi-bell"></i>
<p class=" d-lg-none">Notifications</p> <p class="d-lg-none">Notifications</p>
</a> </a>
<ul class=" dropdown-menu-right dropdown-navbar" ngbDropdownMenu> <ul class="dropdown-menu-right dropdown-navbar" ngbDropdownMenu>
<li class=" nav-link"> <li class="nav-link">
<a class=" nav-item" href="javascript:void(0)" ngbDropdownItem> <a class="nav-item" href="javascript:void(0)" ngbDropdownItem>
Mike John responded to your email Mike John responded to your email
</a> </a>
</li> </li>
<li class=" nav-link"> <li class="nav-link">
<a class=" nav-item" href="javascript:void(0)" ngbDropdownItem> <a class="nav-item" href="javascript:void(0)" ngbDropdownItem>
You have 5 more tasks You have 5 more tasks
</a> </a>
</li> </li>
<li class=" nav-link"> <li class="nav-link">
<a class=" nav-item" href="javascript:void(0)" ngbDropdownItem> <a class="nav-item" href="javascript:void(0)" ngbDropdownItem>
Your friend Michael is in town Your friend Michael is in town
</a> </a>
</li> </li>
<li class=" nav-link"> <li class="nav-link">
<a class=" nav-item" href="javascript:void(0)" ngbDropdownItem> <a class="nav-item" href="javascript:void(0)" ngbDropdownItem>
Another notification Another notification
</a> </a>
</li> </li>
<li class=" nav-link"> <li class="nav-link">
<a class=" nav-item" href="javascript:void(0)" ngbDropdownItem> <a class="nav-item" href="javascript:void(0)" ngbDropdownItem>
Another one Another one
</a> </a>
</li> </li>
</ul> </ul>
</li> </li>
<li class=" nav-item" ngbDropdown> <li class="nav-item" ngbDropdown>
<a <a
class=" nav-link" class="nav-link"
data-toggle="dropdown" data-toggle="dropdown"
href="javascript:void(0)" href="javascript:void(0)"
ngbDropdownToggle ngbDropdownToggle
> >
<div class=" photo"> <div class="photo">
<img alt="Profile Photo" src="assets/img/anime3.png" /> <!-- <img alt="Profile Photo" [src]="assets/img/anime3.png" /> -->
<img alt="Profile Photo" [src]="company.image" />
</div> </div>
<b class=" caret d-none d-lg-block d-xl-block"> </b> <b class="caret d-none d-lg-block d-xl-block"> </b>
<p class=" d-lg-none">Log out</p> <p class="d-lg-none">Log out</p>
</a> </a>
<ul class=" dropdown-navbar" ngbDropdownMenu> <ul class="dropdown-navbar" ngbDropdownMenu>
<li class=" nav-link"> <li class="nav-link">
<a class=" nav-item" href="javascript:void(0)" ngbDropdownItem> <a class="nav-item" routerLink="/company-profile" href="javascript:void(0)" ngbDropdownItem>
Profile Profile
</a> </a>
</li> </li>
<li class=" nav-link"> <li class="nav-link">
<a class=" nav-item" href="javascript:void(0)" ngbDropdownItem> <a class="nav-item" href="javascript:void(0)" ngbDropdownItem>
Settings Settings
</a> </a>
</li> </li>
<li class=" dropdown-divider"></li> <li class="dropdown-divider"></li>
<li class=" nav-link"> <li class="nav-link">
<a class=" nav-item" href="javascript:void(0)" ngbDropdownItem> <a
class="nav-item"
href="javascript:void(0)"
(click)="logout()"
ngbDropdownItem
>
Log out Log out
</a> </a>
</li> </li>
</ul> </ul>
</li> </li>
<li class=" separator d-lg-none"></li> <li class="separator d-lg-none"></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<ng-template #content let-modal> <ng-template #content let-modal>
<div class=" modal-header"> <div class="modal-header">
<input <input
class=" form-control" class="form-control"
id="inlineFormInputGroup" id="inlineFormInputGroup"
placeholder="SEARCH" placeholder="SEARCH"
type="text" type="text"
@@ -125,13 +131,12 @@
<button <button
aria-label="Close" aria-label="Close"
class=" close" class="close"
data-dismiss="modal" data-dismiss="modal"
type="button" type="button"
(click)="modal.dismiss('Cross click')" (click)="modal.dismiss('Cross click')"
> >
<i class=" tim-icons icon-simple-remove"> </i> <i class="tim-icons icon-simple-remove"> </i>
</button> </button>
</div> </div>
</ng-template> </ng-template>

View File

@@ -2,12 +2,14 @@ import { Component, OnInit, ElementRef, OnDestroy } from "@angular/core";
import { ROUTES } from "../sidebar/sidebar.component"; import { ROUTES } from "../sidebar/sidebar.component";
import { Location } from "@angular/common"; import { Location } from "@angular/common";
import { Router } from "@angular/router"; import { Router } from "@angular/router";
import { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap'; import { NgbModal, ModalDismissReasons } from "@ng-bootstrap/ng-bootstrap";
import { ToastrService } from "ngx-toastr";
import { CompanyService } from "../../services/company.service";
@Component({ @Component({
selector: "app-navbar", selector: "app-navbar",
templateUrl: "./navbar.component.html", templateUrl: "./navbar.component.html",
styleUrls: ["./navbar.component.css"] styleUrls: ["./navbar.component.css"],
}) })
export class NavbarComponent implements OnInit, OnDestroy { export class NavbarComponent implements OnInit, OnDestroy {
private listTitles: any[]; private listTitles: any[];
@@ -19,33 +21,49 @@ export class NavbarComponent implements OnInit, OnDestroy {
public isCollapsed = true; public isCollapsed = true;
closeResult: string; closeResult: string;
company: any;
companyLocalStorage: any;
constructor( constructor(
location: Location, location: Location,
private element: ElementRef, private element: ElementRef,
private router: Router, private router: Router,
private modalService: NgbModal private modalService: NgbModal,
private toastr: ToastrService,
private companyService: CompanyService
) { ) {
this.location = location; this.location = location;
this.sidebarVisible = false; this.sidebarVisible = false;
this.companyLocalStorage = JSON.parse(
localStorage.getItem("companyData") || "{}"
);
this.companyService
.getCompanyById(this.companyLocalStorage.id)
.subscribe((company) => {
this.company = company;
console.log(this.company);
});
} }
// function that adds color white/transparent to the navbar on resize (this is for the collapse) // function that adds color white/transparent to the navbar on resize (this is for the collapse)
updateColor = () => { updateColor = () => {
var navbar = document.getElementsByClassName('navbar')[0]; var navbar = document.getElementsByClassName("navbar")[0];
if (window.innerWidth < 993 && !this.isCollapsed) { if (window.innerWidth < 993 && !this.isCollapsed) {
navbar.classList.add('bg-white'); navbar.classList.add("bg-white");
navbar.classList.remove('navbar-transparent'); navbar.classList.remove("navbar-transparent");
} else { } else {
navbar.classList.remove('bg-white'); navbar.classList.remove("bg-white");
navbar.classList.add('navbar-transparent'); navbar.classList.add("navbar-transparent");
} }
}; };
ngOnInit() { ngOnInit() {
window.addEventListener("resize", this.updateColor); window.addEventListener("resize", this.updateColor);
this.listTitles = ROUTES.filter(listTitle => listTitle); this.listTitles = ROUTES.filter((listTitle) => listTitle);
const navbar: HTMLElement = this.element.nativeElement; const navbar: HTMLElement = this.element.nativeElement;
this.toggleButton = navbar.getElementsByClassName("navbar-toggler")[0]; this.toggleButton = navbar.getElementsByClassName("navbar-toggler")[0];
this.router.events.subscribe(event => { this.router.events.subscribe((event) => {
this.sidebarClose(); this.sidebarClose();
var $layer: any = document.getElementsByClassName("close-layer")[0]; var $layer: any = document.getElementsByClassName("close-layer")[0];
if ($layer) { if ($layer) {
@@ -77,7 +95,7 @@ export class NavbarComponent implements OnInit, OnDestroy {
mainPanel.style.position = "fixed"; mainPanel.style.position = "fixed";
} }
setTimeout(function() { setTimeout(function () {
toggleButton.classList.add("toggled"); toggleButton.classList.add("toggled");
}, 500); }, 500);
@@ -93,7 +111,7 @@ export class NavbarComponent implements OnInit, OnDestroy {
); );
if (window.innerWidth < 991) { if (window.innerWidth < 991) {
setTimeout(function() { setTimeout(function () {
mainPanel.style.position = ""; mainPanel.style.position = "";
}, 500); }, 500);
} }
@@ -118,13 +136,13 @@ export class NavbarComponent implements OnInit, OnDestroy {
if ($layer) { if ($layer) {
$layer.remove(); $layer.remove();
} }
setTimeout(function() { setTimeout(function () {
$toggle.classList.remove("toggled"); $toggle.classList.remove("toggled");
}, 400); }, 400);
this.mobile_menu_visible = 0; this.mobile_menu_visible = 0;
} else { } else {
setTimeout(function() { setTimeout(function () {
$toggle.classList.add("toggled"); $toggle.classList.add("toggled");
}, 430); }, 430);
@@ -139,16 +157,16 @@ export class NavbarComponent implements OnInit, OnDestroy {
.appendChild($layer); .appendChild($layer);
} }
setTimeout(function() { setTimeout(function () {
$layer.classList.add("visible"); $layer.classList.add("visible");
}, 100); }, 100);
$layer.onclick = function() { $layer.onclick = function () {
//asign a function //asign a function
html.classList.remove("nav-open"); html.classList.remove("nav-open");
this.mobile_menu_visible = 0; this.mobile_menu_visible = 0;
$layer.classList.remove("visible"); $layer.classList.remove("visible");
setTimeout(function() { setTimeout(function () {
$layer.remove(); $layer.remove();
$toggle.classList.remove("toggled"); $toggle.classList.remove("toggled");
}, 400); }, 400);
@@ -174,23 +192,39 @@ export class NavbarComponent implements OnInit, OnDestroy {
} }
open(content) { open(content) {
this.modalService.open(content, {windowClass: 'modal-search'}).result.then((result) => { this.modalService
this.closeResult = `Closed with: ${result}`; .open(content, { windowClass: "modal-search" })
}, (reason) => { .result.then(
this.closeResult = `Dismissed ${this.getDismissReason(reason)}`; (result) => {
}); this.closeResult = `Closed with: ${result}`;
},
(reason) => {
this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;
}
);
} }
private getDismissReason(reason: any): string { private getDismissReason(reason: any): string {
if (reason === ModalDismissReasons.ESC) { if (reason === ModalDismissReasons.ESC) {
return 'by pressing ESC'; return "by pressing ESC";
} else if (reason === ModalDismissReasons.BACKDROP_CLICK) { } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {
return 'by clicking on a backdrop'; return "by clicking on a backdrop";
} else { } else {
return `with: ${reason}`; return `with: ${reason}`;
} }
} }
ngOnDestroy(){ ngOnDestroy() {
window.removeEventListener("resize", this.updateColor); window.removeEventListener("resize", this.updateColor);
}
logout() {
localStorage.removeItem("companyData");
localStorage.clear();
this.toastr.success("Logout Successfully");
setTimeout(() => {
this.router.navigate(["login"]);
}, 1000);
} }
} }

View File

@@ -6,13 +6,16 @@ export const company: CompanyModel[] = [
name: "Stark Industries", name: "Stark Industries",
username: "starkindustries", username: "starkindustries",
email: "info@starkindustries.com", email: "info@starkindustries.com",
password: "password1",
phone: "09055784625", phone: "09055784625",
image: image:
"https://webtoolfeed.files.wordpress.com/2012/05/the-union-repoman.jpg", "https://images.pexels.com/photos/16092112/pexels-photo-16092112.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load",
description: description:
"A multinational technology company specializing in weapons manufacturing, led by Tony Stark.", "A multinational technology company specializing in weapons manufacturing, led by Tony Stark.",
address: "200 Park Ave, New York, NY 10166", address: "200 Park Ave, New York, NY 10166",
city: "New York City, NY ", city: "New York City, NY ",
industry: "Technology",
stagingUrl: "stage.starkindustries.com", stagingUrl: "stage.starkindustries.com",
productionUrl: "starkindustries.com", productionUrl: "starkindustries.com",
}, },
@@ -21,6 +24,7 @@ export const company: CompanyModel[] = [
name: "Wayne Enterprises", name: "Wayne Enterprises",
username: "wayneenterprises", username: "wayneenterprises",
email: "info@wayneenterprises.com", email: "info@wayneenterprises.com",
password: "password2",
phone: "0812012234", phone: "0812012234",
image: image:
"https://www.thesun.co.uk/wp-content/uploads/2019/07/NINTCHDBPICT000491000000.jpg?strip=all&w=960", "https://www.thesun.co.uk/wp-content/uploads/2019/07/NINTCHDBPICT000491000000.jpg?strip=all&w=960",
@@ -28,6 +32,7 @@ export const company: CompanyModel[] = [
"A multinational conglomerate holding company headquartered in Gotham City, led by Bruce Wayne.", "A multinational conglomerate holding company headquartered in Gotham City, led by Bruce Wayne.",
address: "10 Wayne Tower, Gotham City, NJ 07102", address: "10 Wayne Tower, Gotham City, NJ 07102",
city: "Gotham City, NJ ", city: "Gotham City, NJ ",
industry: "Technology",
stagingUrl: "stage.wayneenterprises.com", stagingUrl: "stage.wayneenterprises.com",
productionUrl: "wayneenterprises.com", productionUrl: "wayneenterprises.com",
}, },
@@ -36,6 +41,7 @@ export const company: CompanyModel[] = [
name: "LexCorp", name: "LexCorp",
username: "lexcorp", username: "lexcorp",
email: "info@lexcorp.com", email: "info@lexcorp.com",
password: "password3",
phone: "08174361092", phone: "08174361092",
image: image:
"https://www.shutterstock.com/image-vector/young-smiling-woman-mia-avatar-600w-2127358541.jpg", "https://www.shutterstock.com/image-vector/young-smiling-woman-mia-avatar-600w-2127358541.jpg",
@@ -43,6 +49,7 @@ export const company: CompanyModel[] = [
"LexCorp is a multinational conglomerate that operates in various industries, including technology, finance, and media. Founded by billionaire businessman and philanthropist Lex Luthor.", "LexCorp is a multinational conglomerate that operates in various industries, including technology, finance, and media. Founded by billionaire businessman and philanthropist Lex Luthor.",
address: "LexCorp Tower, Metropolis, NY 10001", address: "LexCorp Tower, Metropolis, NY 10001",
city: "Metropolis, NY", city: "Metropolis, NY",
industry: "Advertising and marketing",
stagingUrl: "stage.lexcorp.com", stagingUrl: "stage.lexcorp.com",
productionUrl: "lexcorp.com", productionUrl: "lexcorp.com",
}, },
@@ -51,6 +58,7 @@ export const company: CompanyModel[] = [
name: "Sahara Security & Investigation Ltd.", name: "Sahara Security & Investigation Ltd.",
username: "saharasecurity_ng", username: "saharasecurity_ng",
email: "info@saharasecurity.ng", email: "info@saharasecurity.ng",
password: "password4",
phone: "08120122347", phone: "08120122347",
image: image:
"https://www.shutterstock.com/image-vector/young-smiling-man-adam-avatar-600w-2107967969.jpg", "https://www.shutterstock.com/image-vector/young-smiling-man-adam-avatar-600w-2107967969.jpg",
@@ -58,6 +66,7 @@ export const company: CompanyModel[] = [
"Sahara Security & Investigation is a leading provider of security and investigation services for businesses and individuals across Nigeria. With a team of highly trained professionals and state-of-the-art equipment, we are committed to protecting our clients' assets and interests.", "Sahara Security & Investigation is a leading provider of security and investigation services for businesses and individuals across Nigeria. With a team of highly trained professionals and state-of-the-art equipment, we are committed to protecting our clients' assets and interests.",
address: "5, Bode Thomas Street, Surulere, Lagos State", address: "5, Bode Thomas Street, Surulere, Lagos State",
city: "Lagos, Nigeria", city: "Lagos, Nigeria",
industry: "Security",
stagingUrl: "stage.saharasecurity.com", stagingUrl: "stage.saharasecurity.com",
productionUrl: "saharasecurity.ng", productionUrl: "saharasecurity.ng",
}, },
@@ -66,6 +75,7 @@ export const company: CompanyModel[] = [
name: "Umbrella Corporation", name: "Umbrella Corporation",
username: "umbrellacorporation", username: "umbrellacorporation",
email: "info@umbrellacorp.com", email: "info@umbrellacorp.com",
password: "password5",
phone: "07073214806", phone: "07073214806",
image: image:
"https://www.shutterstock.com/image-vector/young-smiling-man-adam-avatar-600w-2107967969.jpg", "https://www.shutterstock.com/image-vector/young-smiling-man-adam-avatar-600w-2107967969.jpg",
@@ -73,6 +83,7 @@ export const company: CompanyModel[] = [
"Umbrella Corporation is a pharmaceutical company that specializes in bioweapons and bioengineering.", "Umbrella Corporation is a pharmaceutical company that specializes in bioweapons and bioengineering.",
address: "Umbrella Corporation, Raccoon City, NY 10001", address: "Umbrella Corporation, Raccoon City, NY 10001",
city: "Raccoon City, NY", city: "Raccoon City, NY",
industry: "Pharmaceuticals",
stagingUrl: "stage.umbrellacorp.com", stagingUrl: "stage.umbrellacorp.com",
productionUrl: "umbrellacorp.com", productionUrl: "umbrellacorp.com",
}, },
@@ -81,6 +92,7 @@ export const company: CompanyModel[] = [
name: "Aperture Science", name: "Aperture Science",
username: "aperturescience", username: "aperturescience",
email: "aperturescience@info.com", email: "aperturescience@info.com",
password: "password6",
phone: "08033567890", phone: "08033567890",
image: image:
"https://www.shutterstock.com/image-vector/young-smiling-man-adam-avatar-600w-2107967969.jpg", "https://www.shutterstock.com/image-vector/young-smiling-man-adam-avatar-600w-2107967969.jpg",
@@ -88,6 +100,7 @@ export const company: CompanyModel[] = [
"Aperture Science is a science and technology company that specializes in the development of advanced research facilities and the manufacturing of consumer products.", "Aperture Science is a science and technology company that specializes in the development of advanced research facilities and the manufacturing of consumer products.",
address: "Aperture Science, New York City, NY 10001", address: "Aperture Science, New York City, NY 10001",
city: "New York City, NY", city: "New York City, NY",
industry: "Technology",
stagingUrl: "stage.aperturescience.com", stagingUrl: "stage.aperturescience.com",
productionUrl: "aperturescience.com", productionUrl: "aperturescience.com",
}, },
@@ -96,6 +109,7 @@ export const company: CompanyModel[] = [
name: "Stellar Airways Nigeria Ltd.", name: "Stellar Airways Nigeria Ltd.",
username: "stellarairways_ng", username: "stellarairways_ng",
email: "info@stellarairways.ng", email: "info@stellarairways.ng",
password: "password7",
phone: "07084849673", phone: "07084849673",
image: image:
"https://www.shutterstock.com/image-vector/young-smiling-woman-mia-avatar-600w-2127358541.jpg", "https://www.shutterstock.com/image-vector/young-smiling-woman-mia-avatar-600w-2127358541.jpg",
@@ -103,6 +117,7 @@ export const company: CompanyModel[] = [
"Stellar Airways Nigeria is a premier airline that provides domestic and international travel services to individuals and businesses across Nigeria. With a focus on safety, comfort, and convenience, we are dedicated to providing exceptional travel experiences to our customers.", "Stellar Airways Nigeria is a premier airline that provides domestic and international travel services to individuals and businesses across Nigeria. With a focus on safety, comfort, and convenience, we are dedicated to providing exceptional travel experiences to our customers.",
address: "Murtala Muhammed International Airport, Ikeja, Lagos State", address: "Murtala Muhammed International Airport, Ikeja, Lagos State",
city: "Lagos, Nigeria", city: "Lagos, Nigeria",
industry: "Airlines",
stagingUrl: "stage.stellarairways.com", stagingUrl: "stage.stellarairways.com",
productionUrl: "stellarairways.ng", productionUrl: "stellarairways.ng",
}, },
@@ -111,6 +126,7 @@ export const company: CompanyModel[] = [
name: "Deltacore Technologies Ltd.", name: "Deltacore Technologies Ltd.",
username: "deltacore_ng", username: "deltacore_ng",
email: "info@deltacore.ng", email: "info@deltacore.ng",
password: "password8",
phone: "09022345109", phone: "09022345109",
image: image:
"https://www.shutterstock.com/image-vector/young-smiling-woman-mia-avatar-600w-2127358541.jpg", "https://www.shutterstock.com/image-vector/young-smiling-woman-mia-avatar-600w-2127358541.jpg",
@@ -118,6 +134,7 @@ export const company: CompanyModel[] = [
"Deltacore Technologies is a leading provider of software and hardware solutions for businesses and individuals across Nigeria. With a focus on innovation and quality, we provide cutting-edge technology products and services to help our clients stay ahead of the competition.", "Deltacore Technologies is a leading provider of software and hardware solutions for businesses and individuals across Nigeria. With a focus on innovation and quality, we provide cutting-edge technology products and services to help our clients stay ahead of the competition.",
address: "23, Adeyemo Alakija Street, Victoria Island, Lagos State", address: "23, Adeyemo Alakija Street, Victoria Island, Lagos State",
city: "Lagos, Nigeria", city: "Lagos, Nigeria",
industry: "Technology",
stagingUrl: "stage.deltacore.com", stagingUrl: "stage.deltacore.com",
productionUrl: "deltacore.ng", productionUrl: "deltacore.ng",
}, },
@@ -126,6 +143,7 @@ export const company: CompanyModel[] = [
name: "Goldmine Oil & Gas Ltd.", name: "Goldmine Oil & Gas Ltd.",
username: "goldmineoilgas_ng", username: "goldmineoilgas_ng",
email: "info@goldmineoilgas.ng", email: "info@goldmineoilgas.ng",
password: "password9",
phone: "0911250021", phone: "0911250021",
image: image:
"https://www.shutterstock.com/image-vector/young-smiling-man-adam-avatar-600w-2107967969.jpg", "https://www.shutterstock.com/image-vector/young-smiling-man-adam-avatar-600w-2107967969.jpg",
@@ -133,6 +151,7 @@ export const company: CompanyModel[] = [
"Goldmine Oil & Gas is a leading exploration and production company that operates in the Nigerian oil and gas industry. With a focus on sustainability and innovation, we are committed to maximizing the potential of Nigeria's natural resources while minimizing our environmental impact.", "Goldmine Oil & Gas is a leading exploration and production company that operates in the Nigerian oil and gas industry. With a focus on sustainability and innovation, we are committed to maximizing the potential of Nigeria's natural resources while minimizing our environmental impact.",
address: "14, Marina Road, Warri South, Delta State", address: "14, Marina Road, Warri South, Delta State",
city: "Warri, Nigeria", city: "Warri, Nigeria",
industry: "Oil & Gas",
stagingUrl: "stage.goldmineoilgas.com", stagingUrl: "stage.goldmineoilgas.com",
productionUrl: "goldmineoilgas.ng", productionUrl: "goldmineoilgas.ng",
}, },
@@ -141,6 +160,7 @@ export const company: CompanyModel[] = [
name: "Cedarwood Construction & Engineering Ltd.", name: "Cedarwood Construction & Engineering Ltd.",
username: "cedarwoodconstruction_ng", username: "cedarwoodconstruction_ng",
email: "info@cedarwoodconstruction.ng", email: "info@cedarwoodconstruction.ng",
password: "password10",
phone: "0911250021", phone: "0911250021",
image: image:
"https://thumbs.dreamstime.com/b/male-avatar-icon-flat-style-male-user-icon-cartoon-man-avatar-hipster-vector-stock-91462914.jpg", "https://thumbs.dreamstime.com/b/male-avatar-icon-flat-style-male-user-icon-cartoon-man-avatar-hipster-vector-stock-91462914.jpg",
@@ -148,6 +168,7 @@ export const company: CompanyModel[] = [
"Cedarwood Construction & Engineering is a leading construction company that provides innovative solutions for residential, commercial, and industrial projects across Nigeria. With a team of skilled professionals and state-of-the-art equipment, we are committed to delivering high-quality projects on time and within budget.", "Cedarwood Construction & Engineering is a leading construction company that provides innovative solutions for residential, commercial, and industrial projects across Nigeria. With a team of skilled professionals and state-of-the-art equipment, we are committed to delivering high-quality projects on time and within budget.",
address: "9, Adeniyi Jones Avenue, Ikeja, Lagos State", address: "9, Adeniyi Jones Avenue, Ikeja, Lagos State",
city: "Lagos, Nigeria", city: "Lagos, Nigeria",
industry: "Construction",
stagingUrl: "stage.cedarwoodconstruction.com", stagingUrl: "stage.cedarwoodconstruction.com",
productionUrl: "cedarwoodconstruction.ng", productionUrl: "cedarwoodconstruction.ng",
}, },

View File

@@ -5,7 +5,7 @@ import { CompanyInformationComponent } from "../../pages/company-information/com
import { CompanyProfileComponent } from "../../pages/company-profile/company-profile.component"; import { CompanyProfileComponent } from "../../pages/company-profile/company-profile.component";
import { InvoicesComponent } from "../../pages/invoices/invoices.component"; import { InvoicesComponent } from "../../pages/invoices/invoices.component";
import { PaymentsComponent } from "../../pages/payments/payments.component"; import { PaymentsComponent } from "../../pages/payments/payments.component";
import { LoginComponent } from "src/app/pages/login/login.component"; // import { LoginComponent } from "src/app/pages/login/login.component";
import { NotificationsComponent } from "../../pages/notifications/notifications.component"; import { NotificationsComponent } from "../../pages/notifications/notifications.component";
@@ -16,5 +16,5 @@ export const AdminLayoutRoutes: Routes = [
{ path: "invoices", component: InvoicesComponent }, { path: "invoices", component: InvoicesComponent },
{ path: "payments", component: PaymentsComponent }, { path: "payments", component: PaymentsComponent },
{ path: "notifications", component: NotificationsComponent }, { path: "notifications", component: NotificationsComponent },
{ path: "login", component: LoginComponent} // { path: "login", component: LoginComponent}
]; ];

View File

@@ -3,11 +3,13 @@ export interface CompanyModel {
name: string; name: string;
username: string; username: string;
email: string; email: string;
password: string;
phone: string; phone: string;
image: string; image: string;
description: string; description: string;
address: string; address: string;
city: string; city: string;
industry: string;
stagingUrl: string; stagingUrl: string;
productionUrl: string; productionUrl: string;
} }

View File

@@ -27,30 +27,35 @@ export class CompanyInformationComponent implements OnInit {
private databaseInfoService: DatabaseInfoService, private databaseInfoService: DatabaseInfoService,
private serverInfoService: ServerInfoService private serverInfoService: ServerInfoService
) { ) {
this.companyService.getCompanyById(1).subscribe((company) => { this.companyLocalStorage = JSON.parse(
this.company = company; localStorage.getItem("companyData") || "{}"
console.log("Company: ", this.company); );
});
this.hostingInfoService.getHostingInfoById(2).subscribe((hostingInfo) => { this.companyService
this.hostingInfo = hostingInfo; .getCompanyById(this.companyLocalStorage.id)
console.log("Hosting Info: ", this.hostingInfo); .subscribe((company) => {
this.company = company;
this.timeDiff = this.calculateTimeDiff(this.hostingInfo.expirationDate);
console.log("Time Diff: ", this.timeDiff);
});
this.databaseInfoService
.getDatabaseInfoById(1)
.subscribe((databaseInfo) => {
this.databaseInfo = databaseInfo;
console.log("Database Info: ", this.databaseInfo);
}); });
this.serverInfoService.getServerInfoById(1).subscribe((serverInfo) => { this.hostingInfoService
this.serverInfo = serverInfo; .getHostingInfoById(this.companyLocalStorage.id)
console.log("Server Info: ", this.serverInfo); .subscribe((hostingInfo) => {
}); this.hostingInfo = hostingInfo;
this.timeDiff = this.calculateTimeDiff(this.hostingInfo.expirationDate);
});
this.databaseInfoService
.getDatabaseInfoById(this.companyLocalStorage.id)
.subscribe((databaseInfo) => {
this.databaseInfo = databaseInfo;
});
this.serverInfoService
.getServerInfoById(this.companyLocalStorage.id)
.subscribe((serverInfo) => {
this.serverInfo = serverInfo;
});
} }
ngOnInit(): void {} ngOnInit(): void {}

View File

@@ -18,7 +18,6 @@
<input <input
type="file" type="file"
name="companyLogo" name="companyLogo"
style="display: none" style="display: none"
id="avatar-image" id="avatar-image"
accept="image/*" accept="image/*"
@@ -394,9 +393,7 @@
</div> </div>
<div class="updateSaveBtn"> <div class="updateSaveBtn">
<button class="btn btn-fill btn-save" type="submit"> <button class="btn btn-fill btn-save" type="submit">Save</button>
Save
</button>
</div> </div>
</form> </form>
</div> </div>
@@ -412,24 +409,22 @@
<div class="block block-three"></div> <div class="block block-three"></div>
<div class="block block-four"></div> <div class="block block-four"></div>
<a href="javascript:void(0)"> <a href="javascript:void(0)">
<img alt="..." class="avatar" src="assets/img/emilyz.jpg" /> <img alt="..." class="avatar" [src]="company.image" />
<h5 class="title">Mike Andrew</h5> <h5 class="title">{{ company.name }}</h5>
</a> </a>
<p class="description">Ceo/Co-Founder</p> <p class="description">{{ company.industry }}</p>
</div> </div>
<div class="card-description"> <div class="card-description">
Do not be scared of the truth because we need to restart the human {{ company.description }}
foundation in truth And I love you like Kanye loves Kanye I love
Rick Owens€™ bed design but the back is...
</div> </div>
</div> </div>
<div class="card-footer"> <div class="card-footer">
<div class="button-container"> <div class="button-container">
<button class="btn btn-icon btn-round btn-facebook" href="#"> <button class="btn btn-icon btn-round btn-facebook mr-2" href="#">
<i class="bi bi-facebook"> </i> <i class="bi bi-facebook"> </i>
</button> </button>
<button class="btn btn-icon btn-round btn-twitter" href="#"> <button class="btn btn-icon btn-round btn-twitter mr-2" href="#">
<i class="bi bi-twitter"> </i> <i class="bi bi-twitter"> </i>
</button> </button>
<button class="btn btn-icon btn-round btn-linkedin" href="#"> <button class="btn btn-icon btn-round btn-linkedin" href="#">

View File

@@ -17,6 +17,7 @@ export class CompanyProfileComponent implements OnInit {
imgFormatError: boolean = false; imgFormatError: boolean = false;
fileSizeError: boolean = false; fileSizeError: boolean = false;
company: any; company: any;
companyLocalStorage: any;
private emailPattern = private emailPattern =
"(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\\])"; "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\\])";
@@ -47,9 +48,12 @@ export class CompanyProfileComponent implements OnInit {
companyLogo: ["", Validators.required], companyLogo: ["", Validators.required],
}); });
this.companyService.getCompanyById(1).subscribe((company) => { this.companyLocalStorage = JSON.parse(
localStorage.getItem("companyData") || "{}"
);
this.companyService.getCompanyById(this.companyLocalStorage.id).subscribe((company) => {
this.company = company; this.company = company;
console.log(this.company);
}); });
} }
@@ -80,8 +84,6 @@ export class CompanyProfileComponent implements OnInit {
this.imgFile = <File>event.target.files[0]; this.imgFile = <File>event.target.files[0];
this.fileName = this.imgFile.name; this.fileName = this.imgFile.name;
console.log(this.imgFile);
if (this.checkFileType(this.imgFile)) { if (this.checkFileType(this.imgFile)) {
let reader = new FileReader(); let reader = new FileReader();
reader.readAsDataURL(event.target.files[0]); reader.readAsDataURL(event.target.files[0]);

View File

@@ -10,10 +10,15 @@ import { InvoiceService } from "../../services/invoice.service";
export class InvoicesComponent implements OnInit { export class InvoicesComponent implements OnInit {
invoices: InvoiceModel[]; invoices: InvoiceModel[];
options: any; options: any;
companyLocalStorage: any;
constructor(private invoiceService: InvoiceService) { constructor(private invoiceService: InvoiceService) {
this.companyLocalStorage = JSON.parse(
localStorage.getItem("companyData") || "{}"
);
this.invoiceService this.invoiceService
.getInvoiceById(1) .getInvoiceById(this.companyLocalStorage.id)
.subscribe((invoice: InvoiceModel[]) => { .subscribe((invoice: InvoiceModel[]) => {
this.invoices = invoice; this.invoices = invoice;

View File

@@ -1,15 +1,33 @@
<div class="content ml-2 signinContainer overflow-hidden"> <div class="content ml-2 signinContainer overflow-hidden">
<div class="logo"> <div class="logo">
<img <img
src="../../../assets/img/logo.png" src="../../../assets/img/logo-white.png"
class="img-fluid" class="img-fluid"
height="150"
width="150"
alt="logo" alt="logo"
style="width: 200px; height: 200px" style="width: 200px; height: 200px; border-radius: 50%"
/> />
</div> </div>
<div style="text-align: center; margin-bottom: 3rem;">
<h1>
TALENTTIC TECH HUB CRM
</h1>
</div>
<ng-container *ngIf="loginSuccess">
<div class="alert alert-success" role="alert">
<i class="bi bi-check-circle mr-1"></i>
<span>Logged in successfully</span>
</div>
</ng-container>
<ng-container *ngIf="loginError">
<div class="alert alert-danger" role="alert">
<i class="bi bi-exclamation-circle mr-1"></i>
<span>Invalid email or password</span>
</div>
</ng-container>
<section class="forms"> <section class="forms">
<form (ngSubmit)="signin()" [formGroup]="loginForm" novalidate> <form (ngSubmit)="signin()" [formGroup]="loginForm" novalidate>
<div class="forms__inputBox"> <div class="forms__inputBox">
@@ -17,7 +35,8 @@
type="email" type="email"
formControlName="companyEmail" formControlName="companyEmail"
id="companyEmail" id="companyEmail"
autocomplete="off" data-cy="signin-email"
autocomplete="new-email"
required required
/> />
<label for="companyEmail">Email</label> <label for="companyEmail">Email</label>
@@ -50,7 +69,7 @@
formControlName="password" formControlName="password"
id="password" id="password"
data-cy="signin-password" data-cy="signin-password"
autocomplete="off" autocomplete="new-password"
required required
/> />
<i <i

View File

@@ -1,4 +1,12 @@
.signinContainer { .signinContainer {
height: 100vh;
padding: 3rem;
.logo {
display: flex;
justify-content: center;
margin-bottom: 1.5rem;
}
.forms { .forms {
// Sign in form // Sign in form
form { form {
@@ -69,7 +77,9 @@
// Forgot password // Forgot password
.forgotPassw { .forgotPassw {
margin-top: 0.6rem; margin-top: 0.3rem;
margin-bottom: 1.6rem;
p { p {
margin-top: 5px !important; margin-top: 5px !important;
margin-bottom: 0 !important; margin-bottom: 0 !important;
@@ -129,6 +139,13 @@
font-weight: 600; font-weight: 600;
cursor: pointer; cursor: pointer;
font-size: 1.07rem; font-size: 1.07rem;
&:hover,
&:focus {
background-color: white;
color: #211069;
border: 2px solid #211069;
}
} }
} }
} }

View File

@@ -1,6 +1,7 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormGroup, FormBuilder, Validators } from "@angular/forms"; import { FormGroup, FormBuilder, Validators } from "@angular/forms";
import { ActivatedRoute, Router } from "@angular/router"; import { ActivatedRoute, Router } from "@angular/router";
import { CompanyService } from "../../services/company.service";
@Component({ @Component({
selector: "app-login", selector: "app-login",
@@ -10,40 +11,79 @@ import { ActivatedRoute, Router } from "@angular/router";
export class LoginComponent implements OnInit { export class LoginComponent implements OnInit {
private emailPattern = private emailPattern =
"(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\\])"; "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\\])";
loginForm: FormGroup; loginForm: FormGroup;
hide: boolean = true; hide: boolean = true;
company: any;
loginSuccess: boolean = false;
loginError: boolean = false;
companyLocalStorage: any;
constructor(private fb: FormBuilder) { constructor(
private fb: FormBuilder,
private companyService: CompanyService,
private router: Router,
private route: ActivatedRoute
) {
this.loginForm = this.fb.group({ this.loginForm = this.fb.group({
companyEmail: ["", [Validators.required, Validators.pattern(this.emailPattern)]], companyEmail: [
"",
[Validators.required, Validators.pattern(this.emailPattern)],
],
password: ["", [Validators.required, Validators.minLength(6)]], password: ["", [Validators.required, Validators.minLength(6)]],
}) });
this.companyService
.getCompanyById(1)
.subscribe((company) => {
this.company = company;
});
} }
get formControls() { get formControls() {
return this.loginForm.controls; return this.loginForm.controls;
} }
ngOnInit(): void {} ngOnInit(): void {
this.loginForm.patchValue({
companyEmail: this.company.email,
password: this.company.password,
});
}
signin() { signin() {
const email = this.loginForm.get('email')?.value; const email = this.company.email;
const password = this.loginForm.get('password')?.value; const password = this.company.password;
if (this.loginForm.invalid) { if (this.loginForm.invalid) {
console.log('Form error'); console.log("Form error");
return; return;
} }
this.loginForm.reset(); if (
// this.userService.signinUser(email, password); this.loginForm.value.companyEmail !== email ||
this.loginForm.value.password !== password
) {
console.log("Invalid email or password");
this.loginError = true;
return;
}
// this.userService.signinMessage$.subscribe((msg) => { this.loginSuccess = true;
// console.log('message', msg);
// this.signinMessage = msg; localStorage.setItem("companyData", JSON.stringify(this.company));
// setTimeout(() => {
// this.signinMessage = msg; this.companyLocalStorage = JSON.parse(
// }, 1000); localStorage.getItem("companyData") || "{}"
// }); );
if (this.companyLocalStorage) {
setTimeout(() => {
this.router.navigate(["/company-information"]);
}, 1000);
}
this.loginForm.reset();
} }
} }

View File

@@ -10,10 +10,15 @@ import { PaymentService } from "../../services/payment.service";
export class PaymentsComponent implements OnInit { export class PaymentsComponent implements OnInit {
payments: PaymentModel[]; payments: PaymentModel[];
options: any; options: any;
companyLocalStorage: any;
constructor(private paymentService: PaymentService) { constructor(private paymentService: PaymentService) {
this.companyLocalStorage = JSON.parse(
localStorage.getItem("companyData") || "{}"
);
this.paymentService this.paymentService
.getPaymentById(1) .getPaymentById(this.companyLocalStorage.id)
.subscribe((payment: PaymentModel[]) => { .subscribe((payment: PaymentModel[]) => {
this.payments = payment; this.payments = payment;

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

File diff suppressed because it is too large Load Diff