base_project

This commit is contained in:
risadmin_prod 2024-08-23 09:35:55 +00:00
commit 25d5b279e3
1715 changed files with 112745 additions and 0 deletions

View File

@ -0,0 +1,3 @@
frontend/.DS_Store
.DS_Store

View File

@ -0,0 +1,16 @@
# Editor configuration, see https://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.ts]
quote_type = single
[*.md]
max_line_length = off
trim_trailing_whitespace = false

View File

@ -0,0 +1,17 @@
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Run a one-line script
run: echo Hello, world!
- name: Run a multi-line script
run: |
echo Add other actions to build,
echo test, and deploy your project.

View File

@ -0,0 +1,42 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.
# compiled output
/dist
/tmp
/out-tsc
# dependencies
/node_modules
# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
# misc
/.angular/cache
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings
# System Files
.DS_Store
Thumbs.db

View File

@ -0,0 +1,52 @@
# Angular-Clarity
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.0.4 [Angular.io](https://angular.io/) version 16.0.4 and [Clarity Design System](https://vmware.github.io/clarity/news) by VMware version 6.4.5/15.5.0
## Install
- clone project `git clone https://github.com/superpck/angular-clarity`
- goto project folder `cd angular-clarity`
- install necessary package `npm install`
- Fix some vulnerabilities (if founded) `npm audit fix --force`
- Run application with command `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
- or Run `ng serve --port 8080 --open` with another port and open web browser.
## Code scaffolding
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
## Build
- Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.
- or `ng build --base-href ./ --prod --output-hashing none`
## Running unit tests
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
## Screenshot
About Page
![About](1.png)
Login Page
![Datagrid](6.png)
Datagrid
![Datagrid](2.png)
Datagrid expand row and single action
![expand](3.png)
Modal
![modal](4.png)
sweetalert2
![sweetalert2](5.png)

View File

@ -0,0 +1,21 @@
# Security Policy
## Supported Versions
Use this section to tell people about which versions of your project are
currently being supported with security updates.
| Version | Supported |
| ------- | ------------------ |
| 5.1.x | :white_check_mark: |
| 5.0.x | :x: |
| 4.0.x | :white_check_mark: |
| < 4.0 | :x: |
## Reporting a Vulnerability
Use this section to tell people how to report a vulnerability.
Tell them where to go, how often they can expect to get an update on a
reported vulnerability, what to expect if the vulnerability is accepted or
declined, etc.

View File

@ -0,0 +1,134 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"angularclarity": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"allowedCommonJsDependencies": [
"lodash", "xlsx", "file-saver","@swimlane/ngx-datatable","@swimlane/ngx-charts","jquery","highcharts","chart.js",
"clone-deep","@ckeditor/ckeditor5-build-classic","@ctrl/ngx-codemirror"
],
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"node_modules/@clr/icons/clr-icons.min.css",
"node_modules/@clr/ui/clr-ui.min.css",
"src/styles.scss",
"node_modules/ngx-toastr/toastr.css"
],
"scripts": [
"node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js",
"node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.js",
"node_modules/@clr/icons/clr-icons.min.js"
],
"vendorChunk": true,
"extractLicenses": false,
"buildOptimizer": false,
"sourceMap": true,
"optimization": false,
"namedChunks": true
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "5mb",
"maximumError": "10mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "200kb",
"maximumError": "4mb"
}
]
}
},
"defaultConfiguration": ""
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "angularclarity:build"
},
"configurations": {
"production": {
"browserTarget": "angularclarity:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "angularclarity:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.scss"
],
"scripts": []
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "angularclarity:serve"
},
"configurations": {
"production": {
"devServerTarget": "angularclarity:serve:production"
}
}
}
}
}
},
"cli": {
"analytics": "6e7a3b23-d894-47dd-8b4b-7fdeba9a5abd"
}
}

View File

@ -0,0 +1,12 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# You can see what browsers were selected by your queries by running:
# npx browserslist
> 0.5%
last 2 versions
Firefox ESR
not dead
not IE 9-11 # For IE 9-11 support, remove 'not'.

View File

@ -0,0 +1,32 @@
// @ts-check
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts
const { SpecReporter } = require('jasmine-spec-reporter');
/**
* @type { import("protractor").Config }
*/
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities: {
browserName: 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.json')
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};

View File

@ -0,0 +1,23 @@
import { AppPage } from './app.po';
import { browser, logging } from 'protractor';
describe('workspace-project App', () => {
let page: AppPage;
beforeEach(() => {
page = new AppPage();
});
it('should display welcome message', () => {
page.navigateTo();
expect(page.getTitleText()).toEqual('angularclarity app is running!');
});
afterEach(async () => {
// Assert that there are no errors emitted from the browser
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
expect(logs).not.toContain(jasmine.objectContaining({
level: logging.Level.SEVERE,
} as logging.Entry));
});
});

View File

@ -0,0 +1,11 @@
import { browser, by, element } from 'protractor';
export class AppPage {
navigateTo(): Promise<unknown> {
return browser.get(browser.baseUrl) as Promise<unknown>;
}
getTitleText(): Promise<string> {
return element(by.css('app-root .content span')).getText() as Promise<string>;
}
}

View File

@ -0,0 +1,13 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/e2e",
"module": "commonjs",
"target": "es5",
"types": [
"jasmine",
"jasminewd2",
"node"
]
}
}

View File

@ -0,0 +1,32 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
dir: require('path').join(__dirname, './coverage/ang'),
reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false,
restartOnFileChange: true
});
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,87 @@
{
"name": "angular-clarity",
"version": "16.0.4",
"subVersion": "2023.06.02-01",
"scripts": {
"ng": "ng",
"start": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng serve --port 4201 -o",
"start:https": "ng serve --port 4201 --ssl -o",
"build-prod": "node --max_old_space_size=64384 ./node_modules/@angular/cli/bin/ng build --prod ",
"build": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --base-href ./ --configuration production --aot --build-optimizer",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^16.0.4",
"@angular/cdk": "^16.2.4",
"@angular/common": "^16.0.4",
"@angular/compiler": "^16.0.4",
"@angular/core": "^16.0.4",
"@angular/forms": "^16.0.4",
"@angular/platform-browser": "^16.0.4",
"@angular/platform-browser-dynamic": "^16.0.4",
"@angular/router": "^16.0.4",
"@auth0/angular-jwt": "^5.1.2",
"@cds/core": "^6.9.0",
"@ckeditor/ckeditor5-angular": "^7.0.1",
"@ckeditor/ckeditor5-build-classic": "^40.0.0",
"@clr/angular": "^15.5.0",
"@clr/core": "^4.0.15",
"@clr/icons": "^13.0.2",
"@clr/ui": "^15.5.0",
"@ctrl/ngx-codemirror": "^7.0.0",
"@swimlane/ngx-charts": "^20.4.1",
"@webcomponents/custom-elements": "^1.6.0",
"@webcomponents/webcomponentsjs": "^2.8.0",
"angular-gridster2": "^16.0.0",
"angularx-qrcode": "^16.0.2",
"chart.js": "^4.4.0",
"dom-to-image": "^2.6.0",
"express": "^4.18.2",
"file-saver": "^2.0.5",
"highcharts": "^11.1.0",
"highcharts-angular": "^3.1.2",
"jquery": "^3.7.1",
"jspdf": "^2.5.1",
"jszip": "^3.10.1",
"lit-html": "^3.1.0",
"lodash": "^4.17.21",
"moment": "^2.29.4",
"ng-dynamic-component": "^10.1.1",
"ng2-charts": "^5.0.3",
"ng2-ckeditor": "^1.3.7",
"ng2-search-filter": "^0.5.1",
"ngx-captcha": "^13.0.0",
"ngx-chips": "^3.0.0",
"ngx-cookie-service": "^16.0.0",
"ngx-drag-drop": "^16.1.0",
"ngx-image-cropper": "^7.0.2",
"ngx-toastr": "^17.0.2",
"numeral": "^2.0.6",
"rxjs": "^7.8.1",
"sweetalert2": "^11.4.8",
"tslib": "^2.5.2",
"xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz",
"zone.js": "~0.13.0"
},
"devDependencies": {
"@angular-devkit/build-angular": "^16.0.4",
"@angular/cli": "^16.0.4",
"@angular/compiler-cli": "^16.0.4",
"@types/jasmine": "~4.3.2",
"@types/jasminewd2": "~2.0.10",
"@types/node": "^20.2.5",
"jasmine-core": "~5.0.0",
"jasmine-spec-reporter": "~7.0.0",
"karma": "~6.4.2",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage-istanbul-reporter": "~3.0.3",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "^2.0.0",
"ts-node": "^10.9.1",
"tslint": "~6.1.3",
"typescript": "^5.1.0"
}
}

View File

@ -0,0 +1,42 @@
import { Injectable } from '@angular/core';
import{environment} from 'src/environments/environment';
/**
* This is a singleton class
*/
@Injectable()
export class AppConfig {
//Provide all the Application Configs here
public version: string = "1.0.0";
public locale: string = "en-US";
public currencyFormat = { style: "currency", currency: "USD" };
public dateFormat = { year: 'numeric', month: 'short', day: 'numeric' };
// port in enviroment
// API Related configs
public apiPort: string; // this.apiURL //9191 to pc used and 8080/billingback to jboss
public apiProtocol: string;
public apiHostName: string;
public baseApiPath: string;
public backendURL: string = environment.backendUrl;
constructor() {
if (this.apiProtocol === undefined) {
this.apiProtocol = window.location.protocol;
}
if (this.apiHostName === undefined) {
this.apiHostName = window.location.hostname;
}
if (this.apiPort === undefined) {
this.apiPort = window.location.port;
}
if (this.apiHostName.includes("infomud") || this.apiHostName.includes("heroku")) {
this.baseApiPath = this.apiProtocol + "//" + this.apiHostName + "/";
}
else {
this.baseApiPath = this.backendURL + "/";
}
if (this.locale === undefined) {
this.locale = navigator.language;
}
}
}

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{path: '', redirectTo: 'login', pathMatch: 'full'}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }

View File

@ -0,0 +1 @@
<router-outlet></router-outlet>

View File

@ -0,0 +1,35 @@
import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { AppComponent } from './app.component';
describe('AppComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule
],
declarations: [
AppComponent
],
}).compileComponents();
}));
it('should create the app', () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.componentInstance;
expect(app).toBeTruthy();
});
it(`should have as title 'angularclarity'`, () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.componentInstance;
expect(app.title).toEqual('angularclarity');
});
it('should render title', () => {
const fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges();
const compiled = fixture.nativeElement;
expect(compiled.querySelector('.content span').textContent).toContain('angularclarity app is running!');
});
});

View File

@ -0,0 +1,10 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'angularclarity';
}

View File

@ -0,0 +1,79 @@
import { ExcelService } from './services/excel.service';
import { BrowserModule } from '@angular/platform-browser';
import { ToastrModule } from 'ngx-toastr';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { ClarityModule } from '@clr/angular';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { HashLocationStrategy, LocationStrategy } from '@angular/common';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { MainModule } from './modules/main/main.module';
import { LoginModule } from './modules/login/login.module';
import { MainService } from './services/main.service';
import { AlertService } from './services/alert.service';
import { HelperModule } from './pipes/helpers.module';
import { LogoComponent } from './modules/logo/logo.component';
import { AppConfig } from './app-config';
import { JwtInterceptor } from './services/jwt.interceptor';
import { UserInfoService } from './services/user-info.service';
import { AuthGuard } from './services/auth_guard.service';
import { LoginService } from './services/api/login.service';
import { ApiRequestService } from './services/api/api-request.service';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import {CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core";
import { TranslateService } from './services/api/translate.service';
import { RealnetMenuService } from './services/api/realnet-menu.service';
import { UserProfileService } from './services/admin/user-profile.service';
import { DragDropModule } from '@angular/cdk/drag-drop';
import '@clr/icons';
import '@clr/icons/shapes/all-shapes';
@NgModule({
declarations: [
AppComponent,
LogoComponent,
],
imports: [
BrowserModule,
AppRoutingModule,
ClarityModule,
HttpClientModule,
BrowserAnimationsModule,
ToastrModule.forRoot(),
HelperModule,
MainModule,
LoginModule,
FormsModule,
ReactiveFormsModule,
DragDropModule,
],
providers: [
MainService,
AlertService,
ExcelService,
UserInfoService,
LoginService,
ApiRequestService,
TranslateService,
RealnetMenuService,
UserProfileService,
// ProjectSetupService,
// TechnologyStackService,
// DropdownService,
// WireframeService,
// SuregitService,
AuthGuard,
AppConfig,
{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },
{ provide: LocationStrategy, useClass: HashLocationStrategy } // HashLocationStrategy to use # and remove # PathLocationStrategy
],
bootstrap: [AppComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA ]
})
export class AppModule { }

View File

@ -0,0 +1,169 @@
export class field{
_id?:any;
name?:any;
type?:any;
icon?:any;
toggle?:any;
required?:any;
regex?:any;
errorText?:any;
label?:any;
description?:any;
placeholder?:any;
className?:any;
subtype?:any;
handle?:any;
min?:number;
max?:number;
inline?:any;
value?:any;
size?:any;
values?:Array<value>;
div_name?:any;
gridLine_name?:any;
children?: field[];
tooltipmsg?:any;
maxcharacters?:any;
visibilty?:any;
duplicateVal?:any;
encryptData?:any;
personalHealthInfo?:any;
descriptionText?:any;
heightpx?:any;
showDescription?:boolean;
personalInfo?:boolean;
readOnly?:any;
sessionVar?:any;
allowedDays?:any;
allowedHrsFrom?:any;
allowedHrsTo?:any;
showSeconds?:boolean;
datePicker?:any;
alphabeticalOrdering?:boolean;
fieldLayout?:any;
otherChoice?:boolean;
dynamicList?:any;
iconType?:any;
target?:any;
defaultCamera?:any;
imgoption?:Array<value>;
questions?:Array<value1>;
maxDuration?:any;
maxNo?:number;
decimalPlaces?:number;
currencyType?:any;
formatNo?:any;
providersData?:any;
apikey?:any;
expanded?:boolean;
files?:Array<any>;
password?:any;
content?:any;
theme?:any;
norows?:number;
nocolumns?:number;
editordata?:any;
}
export class value{
label?:any="";
value?:any="";
}
export class value1{
label1?:any="";
value1?:any="";
}
export interface IProperty {
url?: string;
loading?: boolean;
itemsPerPage?: number;
total?: number;
p?: number;
sizeLimit?: number;
title?: string;
text?: string;
items?: any[];
sub?: any;
isBlocked?: boolean;
isDeleted?: boolean;
isEmailVerified?: string;
successMsg?: string;
msg?: string;
userId?: string;
status?: number;
userPlaceholder?: string;
searchKey?: string;
fullName?: string;
email?: string;
countryCode?: string;
dialCode?: string;
phoneNumber?: string;
value?: Date;
data?: any;
name_es?: string;
name_en?: string;
countries?: any;
states?: any;
cities?: any;
countries1?: any;
states1?: any;
cities1?: any;
countries2?: any;
states2?: any;
cities2?: any;
localities?: any;
buildings?: any;
country_id?: string;
state_id?: string;
city_id?: string;
locality_id?: string;
building_id?: string;
countryCount?: number;
stateCount?: number;
cityCount?: number;
stateCityCount?: number;
localityCount?: number;
buildingCount?: number;
countriesAdd?: any;
statesAdd?: any;
citiesAdd?: any;
localitiesAdd?: any;
country_idAdd?: string;
state_idAdd?: string;
city_idAdd?: string;
locality_idAdd?: string;
countryCountAdd?: number;
stateCountAdd?: number;
cityCountAdd?: number;
localityCountAdd?: number;
successText?: string;
propertyTypes?: any;
propertyTypesCount?: number;
amenities?: any;
amenitiesCount?: number;
projectTypes?: any;
projectTypesCount?: number;
routeName?: string;
icon?: any;
userType?: string;
overlay?: any;
is_broker_seller_dev?: number;
is_buyer_renter?: number;
is_broker?: number;
is_data_collector?: number;
image?: any;
index?: number;
name?: string;
phone?: string;
type?: number;
property_id?: string;
banks?: any;
bankCount?: string;
flag?: number;
page?: number;
property_for?: any;
status_id?:any;
type_id?:any;
post_type?:any;
developer_id?:any;
}

View File

@ -0,0 +1,4 @@
export enum Role {
// User = 'User',
Admin = 'Admin'
}

View File

@ -0,0 +1,30 @@
export class Systemparameter{
public schedulerTime: number;
public leaseTaxCode: String;
public vesselConfProcessLimit: number;
public rowToDisplay: any;
public linkToDisplay: any;
public rowToAdd: any;
public lovRowToDisplay:any;
public lovLinkToDisplay: any;
public oidserverName: any;
public oidBase: any;
public oidAdminUser: any;
public oidServerPort: any;
public userDefaultGroup: any;
public defaultDepartment: any;
public defaultPosition: any;
public singleCharge: any;
public firstDayOftheWeek:any;
public hourPerShift: any;
public cnBillingFrequency: any;
public billingDepartmentCode: any;
public basePriceList: any;
public nonContainerServiceOrder: any;
public ediMaeSchedulerONOFF: any;
public ediSchedulerONOFF: any;
public company_Display_Name:any;
public upload_Logo:any;
}

View File

@ -0,0 +1,14 @@
export class User {
public id: number;
public name: string;
public gender: string;
public dob: string;
public email: string;
public picture:Blob;
public location:string;
public address1:string;
public country:string;
public phone:number;
}

View File

@ -0,0 +1,12 @@
export class userdepartment{
public departmentCode:String;
public active:String;
public description:String;
public createdOn:Date;
public createdBy:String;
public updatedOn:Date;
public updatedBy:String;
public id:number;
}

View File

@ -0,0 +1,10 @@
export class Usergrpmain {
public usrGrp: number;
public groupName:string;
public groupDesc:string;
public createby:string;
public createdate:Date;
public groupLevel:string;
public status:string;
}

View File

@ -0,0 +1,38 @@
import { userdepartment } from "./userdepartment";
import { userposition } from "./userposition";
export class Usermain {
public userId: number;
public changePassw:string;
public confirmPassword:string;
public createby:string;
public createdate:Date;
public customerId:number;
public customerNumer:String;
public departmentCode:string;
public departmentCodeString:string;
public email:string;
public firstLogin:String;
public fullName:String;
public langCode: String;
public notification:String;
public password1: String;
public password2: String;
public password3: String;
public password4: String;
public positionCodeString:String;
public pwdChangedCnt:string;
public shortName: string;
public status:string;
public updateby:string;
public updatedate:Date;
public username: string;
public userPassw: string;
public usrGrpId:number;
public title: string;
public expiryDate: Date;
public lastPwdChangedDate:Date;
}

View File

@ -0,0 +1,9 @@
export class userposition{
public positionCode:String;
public active:String;
public description:String;
public createdOn:Date;
public createdBy:String;
public updatedOn:Date;
public updatedBy:String;
}

View File

@ -0,0 +1,4 @@
export interface ActiveTechnology {
id;
name;
}

View File

@ -0,0 +1,13 @@
export class AdhocParam{
public id: number;
public table_allias_name: string;
public column_name: string;
public column_allias_name: string;
}

View File

@ -0,0 +1,9 @@
export class Audit {
public accountId: number;
public createdAt: Date;
public createdBy: string;
public updatedAt: Date;
public updatedBy: string;
}

View File

@ -0,0 +1,9 @@
import { Audit } from "./Audit";
export class Bcf_TechnologyStack extends Audit {
public id: number;
public tech_stack: string;
public tech_stack_key: string;
public tags: string;
public base_prj_file_name: string;
public active: boolean;
}

View File

@ -0,0 +1,4 @@
export interface ColumnList {
// id: number;
table_name: string;
}

View File

@ -0,0 +1,11 @@
export class DateParam{
public date_id: number;
public col_table_alies_name_date: string;
public col_date_query: string;
public column_alias_date_query: string;
}

View File

@ -0,0 +1,10 @@
export interface FileData {
id: number;
text: string;
/* public id: number;
public text: string; */
/* constructor(id: number, text: string) {
this.id = id;
this.text = text;
} */
}

View File

@ -0,0 +1,4 @@
export interface FileDetails {
id: number;
text: string;
}

View File

@ -0,0 +1,14 @@
import { Audit } from "./Audit";
import { ProjectSetup } from "./Project_setup";
import { Rn_Fb_Header } from "./Rn_Fb_Header";
export class ModuleSetup extends Audit {
public id: number;
public moduleName: string;
public description: string;
public modulePrefix: string;
public copyTo?: string;
public technologyStack: string;
public project: ProjectSetup;
public rn_fb_headers: Rn_Fb_Header[];
}

View File

@ -0,0 +1,22 @@
import { Audit } from "./Audit";
import { ModuleSetup } from "./Module_Setup";
export class ProjectSetup extends Audit {
public id: number;
public projectName: string;
public description: string;
public copyTo?: string;
public technologyStack: string;
public techStackId: number;
public projectPrefix: string;
public dbName: string;
public dbUserName: string;
public dbPassword: string;
public portNumber: string;
public namespace: string;
public tags:string;
public category:string;
public accessibility:boolean;
public modules: ModuleSetup[];
}

View File

@ -0,0 +1,12 @@
export class RbColumns{
public id: number;
public column_name: string;
public functions: string;
public column_allias_name: string;
public table_allies_name: string;
public asc_desc: string;
}

View File

@ -0,0 +1,7 @@
export class RbTables{
public table_id: number;
public table_name: string;
public table_allias_name: string;
}

View File

@ -0,0 +1,8 @@
export class ReportBuilder {
public report_id: number;
public report_name:string;
public description: string;
public report_tags: string;
public servicename:string;
}

View File

@ -0,0 +1,4 @@
export class ReportBuilderQuery {
public master_select: string;
}

View File

@ -0,0 +1,14 @@
import { Audit } from "./Audit";
import { Rn_Cff_ActionBuilder_Line } from "./Rn_Cff_ActionBuilder_Line";
import { Rn_Fb_Header } from "./Rn_Fb_Header";
export class Rn_Cff_ActionBuilder_Header extends Audit {
public id: number;
public rn_fb_header: Rn_Fb_Header;
public technologyStack: string;
public controllerName: string;
public methodName: string;
public actionName: string;
public fileLocation: string;
public actionBuilderLines: Rn_Cff_ActionBuilder_Line[];
}

View File

@ -0,0 +1,18 @@
import { Audit } from "./Audit";
import { Rn_Cff_ActionBuilder_Header } from "./Rn_Cff_ActionBuilder_Header";
export class Rn_Cff_ActionBuilder_Line extends Audit {
public id: number;
public actionType1: string;
public actionType2: string;
public dataType: string;
public variableName: string;
public assignment: string;
public message: string;
public conditions: string;
public forward: string;
public equation: string;
public seq: number;
public action: string;
public rn_cff_actionBuilderHeader: Rn_Cff_ActionBuilder_Header;
}

View File

@ -0,0 +1,22 @@
import { Audit } from "./Audit";
import { Rn_Fb_Lines } from "./Rn_Fb_Lines";
export class Rn_Fb_Header extends Audit {
public id: number;
public techStack: string;
public objectType: string;
public subObjectType: string;
public uiName: string;
public formType: string;
public tableName: string;
public lineTableName: string;
public multilineTableName: string;
public formCode: string;
public build: boolean;
public updated: boolean;
public menuName: string;
public headerName: string;
public convertedTableName: string;
public rn_fb_lines: Rn_Fb_Lines[];
}

View File

@ -0,0 +1,49 @@
import { Audit } from "./Audit";
export class Rn_Fb_Lines extends Audit {
public id: number;
public fieldName: string;
public mapping: string;
public dataType: string;
public formCode: string;
public key1: string;
public type1: string;
public mandatory: boolean;
public hidden: boolean;
public readonly: boolean;
public dependent: boolean;
public dependent_on: string;
public dependent_sp: string;
public dependent_sp_param: string;
public validation_1: boolean;
public val_type: string;
public val_sp: string;
public val_sp_param: string;
public sequence: boolean;
public seq_name: string;
public seq_sp: string;
public seq_sp_param: string;
public default_1: boolean;
public default_type: string;
public default_value: string;
public default_sp: string;
public default_sp_param: string;
public calculated_field: boolean;
public cal_sp: string;
public cal_sp_param: string;
public add_to_grid: boolean;
public sp_for_autocomplete: boolean;
public sp_name_for_autocomplete: string;
public sp_for_dropdown: boolean;
public sp_name_for_dropdown: string;
public type_field: string;
public methodName: string;
public seq: number;
public form_type: string;
public section_num: number;
public button_num: string;
public type2: string;
public table_name?: string;
public line_table_name: string;
public line_table_no: number;
}

View File

@ -0,0 +1,17 @@
import { Audit } from "./Audit";
import { Rn_Sub_Menu } from './Rn_Sub_Menu';
export class Rn_Main_Menu extends Audit {
public menuItemId: number;
public menuItemDesc: string;
public mainMenuActionName : string;
public mainMenuIconName: string;
public menu_type: string;
public mcreate:String;
public mdelete:String;
public medit:String;
public menuId:Number;
public mquery:String;
public mvisible:String;
public subMenus: Rn_Sub_Menu[];
}

View File

@ -0,0 +1,16 @@
import { Audit } from "./Audit";
export class Rn_Sub_Menu extends Audit {
public menuItemId: number;
public menuItemDesc: string;
public mainMenuActionName : string;
public mainMenuIconName: string;
public menu_type: string;
public mcreate:String;
public mdelete:String;
public medit:String;
public menuId:Number;
public mquery:String;
public mvisible:String;
//public menu_icon: string;
}

View File

@ -0,0 +1,12 @@
export class StdParam{
public std_id: number;
public col_table_alies_name_std_para: string;
public col_std_para_query: string;
public field_type: string;
public sp_for_dd: string;
}

View File

@ -0,0 +1,14 @@
export class WhereParam{
public where_id: number;
public explecity: string;
public where_coloumn1_tbl_alias_name: string;
public where_coloumn: string;
public where_condition: string;
public switch_control: string;
public where_coloumn2_tbl_alias_name:string;
public where_coloumn2:string;
}

View File

@ -0,0 +1,29 @@
export interface WireFrame {
header: Header;
line: Line;
}
export interface Header {
section: Section[];
}
export interface Line {
section: Section[];
}
export interface Section {
id: number;
fieldName: string;
mapping: string;
dataType: string;
type_field: string;
section_num: number;
fields: Field[];
}
export interface Field {
id: number;
fieldName: string;
mapping: string;
dataType: string;
type_field: string;
section_num: number;
seq: number;
}

View File

@ -0,0 +1,114 @@
export interface WidgetModel {
name: string;
identifier: string;
}
export interface SubmenuItem {
name: string;
identifier: string;
}
export interface WidgetModel1 {
name: string;
submenu?: SubmenuItem[];
showSubmenu?: boolean; // Optional property to control submenu visibility
identifier: string;
}
export interface DashboardContentModel {
cols: number;
rows: number;
y: number;
x: number;
chartid: number;
component?: any;
name: string;
type?:string;
}
export interface DashboardModel {
id: number;
username: string;
dashboard: Array<DashboardContentModel>;
}
export interface DashboardContentModel2 {
cols: number;
rows: number;
y: number;
x: number;
chartid: number;
charttitle?: string;
component?: any;
name: string;
type?: string;
values?:Array<value>;
imgoption?:Array<value>;
keyValue?:string;
fieldtext?:any;
dropdown_type?:string;
imageURL?:string;
}
export interface DashboardModel2 {
id: number;
username: string;
dashboard: Array<DashboardContentModel2>;
}
export class value{
label?:any="";
value?:any="";
}
export class value1{
label1?:any="";
value1?:any="";
}
export const WidgetsMock: WidgetModel[] = [
{
name: 'Radar Chart',
identifier: 'radar_chart'
},
{
name: 'Doughnut Chart',
identifier: 'doughnut_chart'
},
{
name: 'Line Chart',
identifier: 'line_chart'
},
{
name: 'Bar Chart',
identifier: 'bar_chart'
},
{
name: 'Pie Chart',
identifier: 'pie_chart'
},
{
name: 'Polar Area Chart',
identifier: 'polar_area_chart'
},
{
name: 'Bubble Chart',
identifier: 'bubble_chart'
},
{
name: 'Scatter Chart',
identifier: 'scatter_chart'
},
{
name: 'Dynamic Chart',
identifier: 'dynamic_chart'
},
{
name: 'Financial Chart',
identifier: 'financial_chart'
},
{
name: 'To Do',
identifier: 'to_do_chart'
}
]

View File

@ -0,0 +1,9 @@
export class Gitfile {
public content :String;
public url :String;
public sha:String;
public encoding:String;
public size:String;
}

View File

@ -0,0 +1,14 @@
export class RptBuilder{
public id:number;
public name;
public folder: string;
public query: string;
public date_param_flag:boolean;
public adhoc_param_flag:boolean;
public adhoc_param_string: string;
public std_param_json: string;
}

View File

@ -0,0 +1,9 @@
export class Suregit {
public path :String;
public sha :String;
public url :String;
public type:Number;
public mode:String;
public size:String;
}

View File

@ -0,0 +1,9 @@
export class Surename {
public id :number;
public message :String;
public name :String;
public timestamp:Number;
public email:String;
public username:String;
public sha:any;
}

View File

@ -0,0 +1,9 @@
export class Surestar {
public id :number;
public email :String;
public watchers_count :number;
public forks_count:Number;
public stars_count:number;
public size:String;
}

View File

@ -0,0 +1,55 @@
export interface WidgetModel {
name: string;
identifier: string;
}
export interface DashboardContentModel {
cols: number;
rows: number;
y: number;
x: number;
chartid: number;
component?: any;
name: string;
}
export interface DashboardModel {
id: number;
username: string;
dashboard: Array<DashboardContentModel>;
}
export const WidgetsMock: WidgetModel[] = [
// {
// name: 'Text field',
// identifier: 'text_field'
// },
{
name: 'Text area',
identifier: 'text_area'
},
{
name: 'Table field',
identifier: 'table_field'
},
// {
// name: 'Background Color',
// identifier: 'background_color'
// },
// {
// name: 'Box field',
// identifier: 'box_field'
// },
{
name: 'Image field',
identifier: 'img_field'
},
{
name: 'Line field',
identifier: 'line_field'
},
{
name: 'QR code',
identifier: 'qr_code'
}
]

View File

@ -0,0 +1,10 @@
import { Audit } from "../builder/Audit";
export class Bcf_Exception_Rule_Library extends Audit {
id: number;
tech_stack: string;
object_type: string;
sub_object_type: string;
object_name_variable: string;
object_name_dynamic_string: string;
}

View File

@ -0,0 +1,17 @@
import { Audit } from "../builder/Audit";
import { Bcf_Extractor_Params } from "./Bcf_Extractor_Params";
export class Bcf_Extractor extends Audit {
id: number;
tech_stack: string;
tech_stack_key: string;
object_type: string;
sub_object_type: string;
form_type_name: string;
std_wf_name: string;
icon_file_name: string;
sample_file_name: string;
extractor_stage: string;
rn_bcf_extractor_Params: Bcf_Extractor_Params[];
}

View File

@ -0,0 +1,20 @@
import { Audit } from "../builder/Audit";
export class Bcf_Extractor_Params extends Audit {
id: number;
tech_stack: string;
object_type: string;
sub_object_type: string;
file_code: any;
name_string: string;
address_string: string;
moved_address_string: string;
reference_address_string: string;
description: string;
file_name_var: string;
file_name_dynamic_string: string;
is_extraction_enabled: boolean;
is_creation_enabled: boolean;
total_project_path_dynamic_string:string;
}

View File

@ -0,0 +1,16 @@
import { Audit } from "../builder/Audit";
export class Bcf_Rule_Library extends Audit {
id: number;
group_id: number;
rule_name: string;
tech_stack: string;
object_type: string;
sub_object_type: string;
file_code: string;
rule_type: string;
identifier_start_string: string;
identifier_end_string: string;
replacement_string: string;
}

View File

@ -0,0 +1,13 @@
import { BiDashLine } from './BiDashLine';
export class BiDashHeader{
public header_id: number;
public dashboard_name: string;
public components: BiDashLine[];
}

View File

@ -0,0 +1,17 @@
export class BiDashLine{
public section_type: string;
public widgets1: string;
public widgets2: string;
public widgets3: string;
public widgets4: string;
public widgets5: string;
public widgets6: string;
}

View File

@ -0,0 +1,10 @@
export class BiWidget {
public id: number;
public widget_name: string;
public widget_description: string;
public chart_type: string;
public sql_query:string;
public label:string;
public color_scheme:string;
}

View File

@ -0,0 +1,37 @@
//import { Audit } from "./Audit";
import { Audit } from "../builder/Audit";
export class DynamicForm extends Audit {
public id: number;
public form_id: number;
public form_version: number;
public comp1: string;
public comp2: string;
public comp3: string;
public comp4: string;
public comp5: string;
public comp6: string;
public comp7: string;
public comp8: string;
public comp9: string;
public comp10: string;
public comp11: string;
public comp12: string;
public comp13: string;
public comp14: string;
public comp15: string;
public comp16: string;
public comp17: string;
public comp18: string;
public comp19: string;
public comp20: string;
public comp21: string;
public comp22: string;
public comp23: string;
public comp24: string;
public comp25: string;
public comp_l26: string;
public comp_l27: string;
public comp_l28: string;
public comp_l29: string;
public comp_l30: string;
}

View File

@ -0,0 +1,47 @@
import { Audit } from "../builder/Audit";
export class ExtensionField extends Audit {
public id: number;
public field_name: string;
public mapping: string;
public data_type: string;
public form_code: string;
public type: string;
public isActive: boolean;
/* public mandatory: string;
public hidden: string;
public readonly: string;
public dependent: string;
public dependent_on: string;
public dependent_sp: string;
public dependent_sp_param: string;
public validation_1: string;
public val_type: string;
public val_sp: string;
public val_sp_param: string;
public sequence: string;
public seq_name: string;
public seq_sp: string;
public seq_sp_param: string;
public default1: string;
public default_type: string;
public default_value: string;
public default_sp: string;
public default_sp_param: string;
public calculated_field: string;
public cal_sp: string;
public cal_sp_param: string;
public add_to_grid: string;
public attr1: string;
public attr2: string;
public attr3: string;
public drop_value: string;
public dropdown: string;
public sp_name: string;
public ext_dd_id: string;
public sp_name_forautocomplete: string;
public ext_dependent_id: string;
public radio: string;
public radio_option: string; */
}

View File

@ -0,0 +1,4 @@
export interface Mapping {
label: string;
value: string;
}

View File

@ -0,0 +1,12 @@
import { Audit } from "../builder/Audit";
export class Rn_Forms_Component_Setup extends Audit {
public component_id: number;
public label: string;
public type: string;
public mapping: string;
public mandatory: string;
public readonly: string;
public drop_values: string;
public sp: string;
}

View File

@ -0,0 +1,11 @@
import { Rn_Forms_Component_Setup } from "./Rn_Forms_Component_Setup";
import { Audit } from "../builder/Audit";
export class Rn_Forms_Setup extends Audit {
public form_id: number;
public form_name: string;
public form_desc: string;
public related_to: string;
public page_event: string;
public button_caption: string;
public components: Rn_Forms_Component_Setup[];
}

View File

@ -0,0 +1,20 @@
export class RuleCopy {
public from_tech_stack: string;
public from_object_type: string;
public from_sub_object_type: string;
public to_tech_stack: string;
public to_object_type: string;
public to_sub_object_type: string;
}
export interface Rule {
tech_stack: string;
object_type: string;
sub_object_type: string;
version: string;
replacement_string: string;
keyword: string;
priority: number;
service: string;
}

View File

@ -0,0 +1,10 @@
export class student {
public id: number;
public wf_id:number;
public current_json: string;
public status: string;
}

View File

@ -0,0 +1,4 @@
export interface TableList {
// id: number;
table_name: string;
}

View File

@ -0,0 +1,4 @@
export class ValidationError {
field: any;
message: any;
}

View File

@ -0,0 +1,10 @@
export class book {
public id: number;
public booktype: string;
public bookname: string;
public price: number;
public writer: string;
public code:number;
}

View File

@ -0,0 +1,10 @@
export class Department {
public id: number;
public department_code: string;
public description: string;
public active: string;
public created_by:string;
public created_on:string;
public updated_by:string;
public updated_on:string;
}

View File

@ -0,0 +1,10 @@
export class HealthCheckup {
public id: number;
public ip: string;
public port: number;
public serviceName: string;
public createProject: boolean;
public buildProject: boolean;
public createDeployment: boolean;
public deployApp: boolean;
}

View File

@ -0,0 +1,9 @@
export class College {
public studentid: number;
public wf_instance_id:number;
public studentname: string;
public department: string;
public joiningDate: string;
public phone: number;
public emailId:string;
}

View File

@ -0,0 +1,4 @@
export interface TableList {
// id: number;
table_name: string;
}

View File

@ -0,0 +1,11 @@
import {book} from '../../models/fnd/book';
export class university {
public id: number;
public name: string;
public email: string;
public subject: string;
public phone: number;
public books: book[];
}

View File

@ -0,0 +1,45 @@
.clr-input {
color: #212529;
padding: 0.75rem 0.75rem;
margin-top: 10px;
margin-bottom: 10px;
}
input[type=text], [type=password], [type=number], [type=email], [type=date], textarea {
width: 80%;
padding: 15px 15px;
background-color: rgb(255, 255, 255);
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.eye {
position: absolute;
}
#hide1 {
display: none;
}
.container {
align-content: center;
}
.center {
width: auto;
margin: 0 auto;
}
.required-field, .error_mess {
color: red;
}
select {
margin: 15px 0px;
width: 80%;
padding: 5px 5px;
border: 1px solid #ccc;
border-radius: 4px;
}/*# sourceMappingURL=about-work.component.css.map */

View File

@ -0,0 +1 @@
{"version":3,"sources":["about-work.component.scss","about-work.component.css"],"names":[],"mappings":"AAAA;EACE,cAAA;EAGA,wBAAA;EACA,gBAAA;EACA,mBAAA;ACDF;;ADGA;EACE,UAAA;EACA,kBAAA;EACA,oCAAA;EAEA,qBAAA;EACA,sBAAA;EACA,kBAAA;EACA,sBAAA;ACDF;;ADGA;EACE,kBAAA;ACAF;;ADGA;EACE,aAAA;ACAF;;ADGA;EACE,qBAAA;ACAF;;ADGA;EACE,WAAA;EACA,cAAA;ACAF;;ADGA;EACE,UAAA;ACAF;;ADGA;EACE,gBAAA;EACA,UAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;ACAF","file":"about-work.component.css"}

View File

@ -0,0 +1,261 @@
<!-- <div *ngIf="data1 else showThis"> -->
<!-- <div *ngIf="editMode === 'data1';then basic_property"> -->
<div class="container center">
<h2 class="text-center"><b>Welcome to <strong>cloudnsure!</strong></b></h2>
<h5 *ngIf="!companyForm" class="text-center" style="margin-top: 10px;">Tell Us More About You <img src="../../../../assets/images/icon/handshakeicon.png" ></h5>
<h5 *ngIf="companyForm" class="text-center" style="margin-top: 10px;">Tell Us About Your Work!</h5>
<!-- <h5 class="text-center">You're signing up as <strong style="font-size: 20px;">{{ email }}</strong></h5> -->
<div class="display_msg">
<form [formGroup]="custentryForm" class="form" style="text-align: center;" *ngIf="!companyForm">
<br>
<div class="center">
<!-- <label for="controllerName"><strong>First Name</strong><span class="required-field">*</span></label><br/> -->
<input class="form__field" type="text" formControlName="first_name" placeholder="First Name" >
<div *ngIf="custsubmitted && custentryForm.controls.first_name.errors" class="error_mess">
<div *ngIf="custsubmitted && custentryForm.controls.first_name.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="controllerName"><strong>Last Name</strong><span class="required-field">*</span></label><br/> -->
<input class="form__field" type="text" id="name" formControlName="last_name" placeholder="Last Name" >
<div *ngIf="custsubmitted && custentryForm.controls.last_name.errors" class="error_mess">
<div *ngIf="custsubmitted && custentryForm.controls.last_name.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="controllerName"><strong>Mobile</strong><span class="required-field">*</span></label><br/> -->
<input formControlName="mob_no" class="form__field" type="number" placeholder="Mobile Number" ng2TelInput/>
<div *ngIf="custsubmitted && custentryForm.controls.mob_no.errors" class="error_mess">
<div *ngIf="custsubmitted && custentryForm.controls.mob_no.errors.required" class="error_mess">*This field is Required</div>
<div *ngIf="custsubmitted && custentryForm.controls.mob_no.errors.minlength" class="error_mess">*Number must be 10 digit.</div>
<div *ngIf="custsubmitted && custentryForm.controls.mob_no.errors.pattern" class="error_mess">*Invalid mobile number</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="controllerName"><strong>Date Of Birth</strong><span class="required-field">*</span></label><br/> -->
<input class="form__field" type="date" formControlName="date_of_birth" >
<div *ngIf="custsubmitted && custentryForm.controls.date_of_birth.errors" class="error_mess">
<div *ngIf="custsubmitted && custentryForm.controls.date_of_birth.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="controllerName"><strong>Gender</strong><span class="required-field">*</span></label><br> -->
<select formControlName="gender" class="form__field">
<option [value]="null">Choose Gender</option>
<option>Male</option>
<option>Female</option>
<option>Other</option>
</select>
<div *ngIf="custsubmitted && custentryForm.controls.gender.errors" class="error_mess">
<div *ngIf="custsubmitted && custentryForm.controls.gender.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="controllerName"><strong>Password</strong><span class="required-field">*</span></label><br/> -->
<input [type]="newpHide ? 'password': 'text'" class="form__field" placeholder="Password" formControlName="new_password" minlenght="6" maxlength="40" style="width: 89%;" [autocomplete]="true">
<clr-icon [attr.shape]="newIcon" (click)="newShapeChanger()"></clr-icon>
<div *ngIf="custsubmitted && custentryForm.controls.new_password.errors" class="error_mess">
<div *ngIf="custsubmitted && custentryForm.controls.new_password.errors.required" class="error_mess">*This field is Required</div>
<div *ngIf="custsubmitted && custentryForm.controls.new_password.errors.minlength" class="error_mess">*Password must be 6 characters or longer.</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="controllerName"><strong>Re-enter Password</strong><span class="required-field">*</span></label><br/> -->
<input type="password" class="form__field" formControlName="confirm_password" placeholder="Re-enter Password">
<div *ngIf="custsubmitted && custentryForm.controls.confirm_password.errors" class="error_mess">
<div *ngIf="custsubmitted && custentryForm.controls.confirm_password.errors.required" class="error_mess">*This field is Required</div>
<div *ngIf="custentryForm.controls.confirm_password.errors.confirmedValidator" class="error_mess">* Password and Confirm Password must be match.</div>
</div>
</div>
<br>
<div class="center text-center">
<button type="submit" class="btn btn--primary uppercase" (click)="oncustSubmit()">Submit</button>
</div>
</form>
<p *ngIf="!companyForm"> Wrong account? <a routerLink="/login">Log in</a> instead.</p>
</div>
<div class="display_msg">
<form [formGroup]="entryForm" class="form" style="text-align: center;" *ngIf="companyForm" >
<!-- <div class="clr-col-md-4 clr-col-sm-12 center">
<label for="controllerName"><strong>Name</strong><span class="required-field">*</span></label><br/>
<input class="clr-input" type="text" id="name" formControlName="name" placeholder="Enter Name" >
<div *ngIf="submitted && entryForm.controls.name.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.name.errors.required" class="error_mess">*This field is Required</div>
</div>
</div> -->
<br>
<div class="center">
<!-- <label for="controllerName"><strong>Company Name</strong><span class="required-field">*</span></label><br/> -->
<input class="form__field" type="text" id="name" formControlName="companyName" placeholder="Company Name" >
<div *ngIf="submitted && entryForm.controls.companyName.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.companyName.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="controllerName"><strong>Workspace</strong><span class="required-field">*</span></label><br/> -->
<input class="form__field" type="text" placeholder="Workspace" formControlName="workspace" >
<div *ngIf="submitted && entryForm.controls.workspace.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.workspace.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="controllerName"><strong>GST Number</strong><span class="required-field">*</span></label><br/> -->
<input class="form__field" type="text" placeholder="GST Number" formControlName="gstNumber"
[(ngModel)]="entryForm.value.gstNumber" (ngModelChange)="entryForm.value.gstNumber = $event?.toUpperCase()">
<div *ngIf="submitted && entryForm.controls.gstNumber.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.gstNumber.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<!-- <div class="clr-col-md-4 clr-col-sm-12 center">
<label for="controllerName"><strong>Password</strong><span class="required-field">*</span></label><br/>
<input class="clr-input" type="password" id="password" formControlName="password">
<div *ngIf="submitted && entryForm.controls.password.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.password.errors.required" class="error_mess">*This field is Required</div>
<div *ngIf="submitted && entryForm.controls.password.errors.minlength" class="error_mess">*Password must be 8 characters or longer.</div>
</div>
</div>
<br/>
<div class="clr-col-md-4 clr-col-sm-12 center">
<label for="controllerName"><strong>Re-enter Password</strong><span class="required-field">*</span></label><br/>
<input class="clr-input" type="password" id="confirm_password" formControlName="confirm_password">
<div *ngIf="submitted && entryForm.controls.confirm_password.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.confirm_password.errors.required" class="error_mess">*This field is Required</div>
<div *ngIf="entryForm.controls.confirm_password.errors.confirmedValidator" class="error_mess">* Password and Confirm Password must be match.</div>
</div>
</div> -->
<!-- <br>
<div class="clr-col-md-4 clr-col-sm-12 center">
<label for="controllerName"><strong>Mobile</strong><span class="required-field">*</span></label><br/>
<input formControlName="mobile" class="clr-input" type="number" placeholder="Enter Mobile No" ng2TelInput/>
<div *ngIf="submitted && entryForm.controls.mobile.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.mobile.errors.required" class="error_mess">*This field is Required</div>
<div *ngIf="submitted && entryForm.controls.mobile.errors.minlength" class="error_mess">*Number must be 10 digit.</div>
<div *ngIf="submitted && entryForm.controls.mobile.errors.pattern" class="error_mess">*Invalid mobile number</div>
</div>
</div> -->
<!-- <br>
<div class="clr-col-md-4 clr-col-sm-12 center">
<label for="controllerName"><strong>Email</strong><span class="required-field">*</span></label><br/>
<input class="clr-input" type="text" id="email" name="email" formControlName="email" placeholder="Enter Email" required pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$">
<div *ngIf="submitted && entryForm.controls.email.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.email.errors.required" class="error_mess">*This field is Required</div>
<div *ngIf="submitted && entryForm.controls.email.errors.pattern" class="error_mess">*Email must be a valid email address</div>
</div>
</div> -->
<br>
<div class="center">
<!-- <label for="controllerName"><strong>Pancard</strong><span class="required-field">*</span></label><br/> -->
<input class="form__field" type="text" placeholder="Pancard Number" formControlName="pancard" [(ngModel)]="entryForm.value.pancard" (ngModelChange)="entryForm.value.pancard = $event?.toUpperCase()">
<div *ngIf="submitted && entryForm.controls.pancard.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.pancard.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="country"><strong>Country</strong><span class="required-field">*</span></label><br/> -->
<input class="form__field" type="text" id="country" formControlName="country" placeholder="Country Name" >
<div *ngIf="submitted && entryForm.controls.country.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.country.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="state"><strong>State/Province</strong><span class="required-field">*</span></label><br/> -->
<input class="form__field" type="text" id="state" formControlName="state" placeholder="State/Province Name" >
<div *ngIf="submitted && entryForm.controls.state.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.state.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="city"><strong>City</strong></label><br/> -->
<input class="form__field" type="text" id="city" formControlName="city" placeholder="City Name" >
<div *ngIf="submitted && entryForm.controls.city.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.city.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="street_address"><strong>Street Address</strong></label><br/> -->
<textarea col="10" row="2" id="street_address" class="form__field" formControlName="street_address" placeholder="Address" [autocomplete]="true"></textarea>
<div *ngIf="submitted && entryForm.controls.street_address.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.street_address.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<br>
<div class="center">
<!-- <label for="street_address2"><strong>Street Address 2</strong></label><br/> -->
<textarea col="10" row="2" id="street_address2" class="form__field" formControlName="street_address2" placeholder="Address 2" [autocomplete]="true"></textarea>
<div *ngIf="submitted && entryForm.controls.street_address2.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.street_address2.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<!-- <div class="clr-col-md-4 clr-col-sm-12 center">
<label for="controllerName"><strong>Working</strong><span class="required-field">*</span></label><br/>
<input class="clr-input" type="text" placeholder="Enter Working" formControlName="working" >
<div *ngIf="submitted && entryForm.controls.working.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.working.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<br> -->
<br>
<div class="center text-center">
<button type="submit" class="btn btn--primary uppercase" (click)="onSubmit()" >continue</button>
</div>
</form>
<p *ngIf="companyForm"> Wrong account? <a routerLink="/login">Log in</a> instead.</p>
</div>
<!-- <h4>Wrong account? <a href="">Log in</a> instead.</h4> -->
</div>
<!-- </div> -->
<!-- <div *ngIf="data1==false">
<h2>error page</h2>
</div> -->
<!-- <ng-template #showThis>
<h2 style="text-align: center; color: red;"><strong><b>This is error page</b></strong></h2> -->
<!-- <a routerLink="/error-page"></a> -->
<!-- <a [routerLink]="['/error-page']"> -->
<!-- link to user component -->
<!-- </a> -->
<!-- <button (click)="back()"></button> -->
<!--
</ng-template> -->
<!-- <ng-template #showThis>
<h2 style="text-align: center; color: red;"><strong><b>This is error page</b></strong></h2>
</ng-template> -->
<!-- <ng-template #basic_property>
hjshfj
</ng-template> -->

View File

@ -0,0 +1,122 @@
// .clr-input {
// color: #212529;
// // border: 1px solid #ced4da;
// // border-radius: 0.25rem;
// padding: 0.75rem 0.75rem;
// margin-top: 10px;
// margin-bottom: 10px;
// }
// input[type=text],[type=password],[type=number],[type=email],[type=date],textarea {
// width: 80%;
// padding: 15px 15px;
// background-color:rgb(255, 255, 255);
// // margin: 8px 0;
// display: inline-block;
// border: 1px solid #ccc;
// border-radius: 4px;
// box-sizing: border-box;
// }
// .eye {
// position: absolute;
// }
// #hide1 {
// display: none;
// }
// .container {
// align-content: center;
// }
// .center {
// width: auto;
// margin: 0 auto;
// }
.required-field,.error_mess{
color:indianred;
font-weight: bold;
}
// select{
// margin:15px 0px;
// width: 80%;
// padding: 5px 5px;
// border: 1px solid #ccc;
// border-radius: 4px;
// }
$background: #f5f6fa;
$text: #9c9c9c;
$input-bg-color: #fff;
$input-text-color: #a3a3a3;
$button-bg-color: #7f8ff4;
$button-text-color: #fff;
$google-button-bg-color: #7f8ff4;
$linkedin-button-bg-color: #4b76eb;
:root {
background: $background;
color: $text;
font: 1rem "PT Sans", sans-serif;
}
//** helper
.display_msg {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.form {
&__field {
width: 360px;
padding: 7px 9px;
margin: 0 12px;
background-color:rgb(255, 255, 255);
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
}
.btn {
display: inline-block;
background: transparent;
color: inherit;
font: inherit;
border: 0;
outline: 0;
padding: 0;
transition: all 200ms ease-in;
cursor: pointer;
&--primary {
background: $button-bg-color;
color: $button-text-color;
box-shadow: 0 0 10px 2px rgba(0, 0, 0, .1);
border-radius: 2px;
width: 100%;
&:hover {
background: darken($button-bg-color, 4%);
}
&:active {
background: $button-bg-color;
box-shadow: inset 0 0 10px 2px rgba(0, 0, 0, .2);
}
}
}
// form {
// margin-left: 8%;
// }

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AboutWorkComponent } from './about-work.component';
describe('AboutWorkComponent', () => {
let component: AboutWorkComponent;
let fixture: ComponentFixture<AboutWorkComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ AboutWorkComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(AboutWorkComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,301 @@
import {Component, OnInit} from '@angular/core';
import {AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors, Validators} from '@angular/forms';
import {ActivatedRoute, Router} from '@angular/router';
import { UserProfileService } from 'src/app/services/admin/user-profile.service';
import { UserRegistrationService } from 'src/app/services/admin/user-registration.service';
import { environment } from 'src/environments/environment';
import { CustomerService } from './customer.service';
import { ToastrService } from 'ngx-toastr';
@Component({
selector: 'app-about-work',
templateUrl: './about-work.component.html',
styleUrls: ['./about-work.component.scss']
})
export class AboutWorkComponent implements OnInit {
// LoginUrl = environment.portalurl;
public entryForm: FormGroup;
public custentryForm: FormGroup; // user
public customerentryForm: FormGroup;
aboutdata;
id: number;
checknumberId: number;
data1: boolean;
name:string;
email: string;
submitted = false;
custsubmitted = false;
constructor(
private router: Router,
private route: ActivatedRoute,
private userRegistration: UserRegistrationService,
private _fb: FormBuilder,
private userprofile: UserProfileService,
private customerservice: CustomerService,
private toastr: ToastrService
) {
}
companyid = 1;
ngOnInit(): void {
this.route.queryParams.subscribe(params => {
this.email = params['email'];
console.log(this.email)
});
this.id = this.route.snapshot.params['id'];
this.checknumberId = this.route.snapshot.params['checknumberId'];
this.name = this.userRegistration.getStoredName();
console.log(this.id, this.checknumberId);
this.userRegistration.removeStoredName();
// this.data1 = this.route.snapshot.data['data1'];
// if (this.id >= 0) {
// this.onCheck();
// }
// else {
// this.router.navigate(['../about-work']);
// }
this.onCheck();
// this.email = this.userRegistration.getStoredEmail();
this.custentryForm = this._fb.group({
first_name: [null, [Validators.required]],
last_name:[null, [Validators.required]],
mob_no:[null,[Validators.required,Validators.pattern('^[0-9]{10}$')]],
email:[this.email],
usrGrpId:[41],
new_password: [null, [Validators.required,Validators.minLength(6),Validators.maxLength(40)]],
confirm_password: [null, [Validators.required]],
account_id:[this.companyid],
date_of_birth:[null, [Validators.required]],
gender:[null,Validators.required]
}, {
validator: ConfirmedValidator('new_password', 'confirm_password')
});
this.entryForm = this._fb.group({
companyName:[null, [Validators.required]],
pancard:[null,[Validators.required]],
workspace:[null,[Validators.required]],
email: [this.email,[Validators.required,Validators.email]],
gstNumber:[null,[Validators.required]],
mobile: [this.custentryForm.value.mob_no, [Validators.pattern('^[0-9]{10}$')]],
country:[null,[Validators.required]],
state:[null,[Validators.required]],
city:[null],
street_address:[null],
street_address2:[null],
}, {
});
this.customerentryForm = this._fb.group({
first_name: [null],
last_name:[null],
date_of_birth:[null],
gender:[null],
companyId:[null],
time_zone:[null,],
gst_state:[null],
email:[null],
entity_name:[this.companyid],
});
}
companyForm:boolean = false;
oncustSubmit(){
console.log(this.custentryForm.value);
// this.custentryForm.value.entity_name = this.companyid;
if (this.custentryForm.invalid) {
this.custsubmitted = true;
return;
}else{
// this.companyForm = true;
// this.oncustContinue();
this.onContinue();
}
}
selectedFile;
oncustContinue() {
console.log(this.custentryForm.value);
this.customerservice.saveCustomer(this.custentryForm.value, this.selectedFile).subscribe((data => {
console.log(data);
console.log(data.id, "User id");
console.log("Roles", data.role);
console.log(data.checknumberId, "checknumber");
this.aboutdata = data;
if (data.role == "USER") {
this.router.navigate(["../login/"]);
// window.location.href = `${this.LoginUrl}/#/login`;
} else {
this.router.navigate(["../pricing/" + data.id]);
}
}))
}
userId;
onSubmit(){
this.entryForm.value.email = this.email
if (this.entryForm.invalid) {
this.submitted = true;
return;
}else{
this.onContinue();
}
}
onContinue() {
// this.entryForm.value.mobile = this.custentryForm.value.mob_no;
console.log(this.custentryForm.value);
// this.userprofile.addUserinSignUP(this.entryForm.value).subscribe(data => {
// console.log(data);
// this.companyid = data.account_id;
// console.log(this.companyid, "company id");
// this.aboutdata = data;
// this.custentryForm.value.account_id = data?.account_id
// // this.custentryForm.value.new_password =
// console.log(this.custentryForm.value);
this.userprofile.adduserData(this.custentryForm.value).subscribe(cdata => {
console.log(cdata);
this.userId = cdata.userId;
if (cdata) {
this.toastr.success("Registrated Successfully");
this.router.navigate(["../login/"]);
} else {
this.router.navigate(["../login/"]);
}
// this.customerentryForm.get('companyId').setValue(this.companyid);
// this.customerentryForm.get('gst_state').setValue(this.entryForm.value.state);
// this.customerentryForm.get('entity_name').setValue(this.entryForm.value.companyName);
// this.customerentryForm.get('first_name').setValue(this.custentryForm.value.first_name);
// this.customerentryForm.get('last_name').setValue(this.custentryForm.value.last_name);
// this.customerentryForm.get('date_of_birth').setValue(this.custentryForm.value.date_of_birth);
// this.customerentryForm.get('gender').setValue(this.custentryForm.value.gender);
// this.customerentryForm.get('email').setValue(this.email);
// this.customerservice.saveCustomer(this.customerentryForm.value, this.selectedFile).subscribe(data => {
// console.log(data);
// console.log(data.id, "User id");
// this.aboutdata = data;
// if (data.status >= 200 && data.status <= 299) {
// console.log(data?.body)
// this.router.navigate(["../pricing/" + this.companyid +"/" +this.userId]);
// }
// })
},(error)=>{
console.log(error);
this.toastr.error(error?.error.message);
})
// })
}
onCheck() {
this.userprofile.getUser(this.id, this.checknumberId).subscribe((data => {
// console.log(data.userId, "User id");
console.log("data", data.email);
console.log(data);
this.data1 = data;
this.email = data.email;
this.name=data.fullName;
(<FormControl>this.entryForm.controls['email']).setValue(data.email);
(<FormControl>this.entryForm.controls['name']).setValue(data.fullName);
console.log(this.name)
}))
}
onCountryChange(event) {
console.log(event.dialCode);
console.log(event.name);
console.log(event.iso2);
}
back() {
this.router.navigate(["../../all"], {relativeTo: this.route});
}
newpHide: boolean = true;
newIcon: string = "eye";
newShapeChanger() {
this.newpHide = !this.newpHide;
if(this.newpHide){
this.newIcon = 'eye'
} else {
this.newIcon = 'eye-hide'
}
}
cnewpHide: boolean = true;
cnewIcon: string = "eye";
cnewShapeChanger() {
this.cnewpHide = !this.cnewpHide;
if(this.cnewpHide){
this.cnewIcon = 'eye'
} else {
this.cnewIcon = 'eye-hide'
}
}
}
// export function passwordMatchValidator(control: AbstractControl): ValidationErrors | null {
// const password = control.get('password');
// const confirmPassword = control.get('confirmPassword');
// if (password.value !== confirmPassword.value) {
// return { passwordMismatch: true };
// }
// return null;
// }
export function ConfirmedValidator(controlName: string, matchingControlName: string){
return (formGroup: FormGroup) => {
const control = formGroup.controls[controlName];
const matchingControl = formGroup.controls[matchingControlName];
if (matchingControl.errors && !matchingControl.errors.confirmedValidator) {
return;
}
if (control.value !== matchingControl.value) {
matchingControl.setErrors({ confirmedValidator: true });
} else {
matchingControl.setErrors(null);
}
}
}

View File

@ -0,0 +1,152 @@
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { ApiRequestService } from 'src/app/services/api/api-request.service';
@Injectable({
providedIn: 'root'
})
export class CustomerService {
constructor(private apiRequest: ApiRequestService) { }
saveCustomer(data: any, file?: any): Observable<any> {
const url = `token/Customer_master/Customer_master`;
const formData = new FormData();
formData.append('body', JSON.stringify(data));
formData.append('file', file);
return this.apiRequest.postFormData(url, formData);
}
updateCustomer(data: any, file: any,id: number): Observable<any> {
const url = `token/Customer_master/Customer_master/${id}`;
const formData = new FormData();
formData.append('body', JSON.stringify(data));
formData.append('file', file);
return this.apiRequest.postFormData(url, formData);
}
getAllCustomers(): Observable<any> {
const url = `token/Customer_master/Customer_master`;
return this.apiRequest.get(url);
}
getCustomerById(id: number): Observable<any> {
const url = `token/Customer_master/Customer_master/${id}`;
return this.apiRequest.get(url);
}
deleteCustomerById(id: number): Observable<any> {
const url = `token/Customer_master/Customer_master/${id}`;
return this.apiRequest.delete(url);
}
////////site
// saveCustomersite(data: any, file: any): Observable<any> {
// const url = `Sites/Sites`;
// const formData = new FormData();
// formData.append('body', JSON.stringify(data));
// formData.append('file', file);
// return this.apiRequest.postFormData(url, formData);
// }
saveCustomersite(data: any): Observable<any> {
const url = `Sites/Sites`;
return this.apiRequest.postFormData(url, data);
}
// updateCustomersite(data: any, file: any,id: number): Observable<any> {
// const url = `Sites/Sites/${id}`;
// const formData = new FormData();
// formData.append('body', JSON.stringify(data));
// formData.append('file', file);
// return this.apiRequest.postFormData(url, formData);
// }
updateCustomersite(data: any,id: number): Observable<any> {
const url = `Sites/Sites/${id}`;
return this.apiRequest.put(url, data);
}
getAllCustomerssite(): Observable<any> {
const url = `Sites/Sites`;
return this.apiRequest.get(url);
}
getCustomersiteById(id: number): Observable<any> {
const url = `Sites/Sites/${id}`;
return this.apiRequest.get(url);
}
deleteCustomersiteById(id: number): Observable<any> {
const url = `Sites/Sites/${id}`;
return this.apiRequest.delete(url);
}
getsiteBycustId(id: number): Observable<any> {
const url = `Sites/getSitesByCustomer/${id}`;
return this.apiRequest.get(url);
}
////// custom package
public savecustompkgeData(data: any): Observable<any> {
return this.apiRequest.post(`Billing/CustomPackage/CustomPackage`, data);
}
public getcustompkgDetails(): Observable<any> {
return this.apiRequest.get(`Billing/CustomPackage/CustomPackage`);
}
public getcustompkgDetailsById(id: number): Observable<any> {
return this.apiRequest.get(`Billing/CustomPackage/CustomPackage/${id}`);
}
public deletecustompkgById(id: number): Observable<any> {
return this.apiRequest.delete(`Billing/CustomPackage/CustomPackage/${id}`);
}
public updatecustompkgData(data: any, id: number): Observable<any> {
return this.apiRequest.put(`Billing/CustomPackage/CustomPackage/${id}`, data);
}
///biiling total
public billingTotal(invoiceId: number, creditNoteId:number,paymentId): Observable<any> {
return this.apiRequest.get(`Billing/Payments/alltotall/${invoiceId}/${creditNoteId}/${paymentId}`);
}
public getdatabycustID(customerId: any): Observable<any> {
return this.apiRequest.get(`token/Customer_master/getReceiptApplication/${customerId}`);
}
////// list of items
//generate
getServicesBycustId(customerId: any): Observable<any> {
return this.apiRequest.get(`token/Customer_master/getAllservices/${customerId}`);
}
//generate 2
getServices2BycustId(customerId: any): Observable<any> {
return this.apiRequest.get(`token/Customer_master/getAllservicesWithDisc/${customerId}`);
}
//discount and charges
//generate
getdiscountchargesBycustId(customerId: any): Observable<any> {
return this.apiRequest.get(`token/Customer_master/getAllservicesWithDiscOrderlevel/${customerId}`);
}
}

View File

@ -0,0 +1,142 @@
<clr-main-container>
<clr-header class="header-5">
<div class="branding">
<a href="javascript://" class="nav-link">
<a href="#" class="logo">
<img class="img" src="assets/images/icon/micrologo.png" alt="" height="50" width="50">
</a>
<div style="width:40px;margin-right:10px;">
</div>
<span class="title">cloudnSure</span>
</a>
</div>
</clr-header>
<!-- <div *ngIf="editMode === 'data1';then basic_property"> -->
<!-- <div class="container">
<h2 class="text-center"><b>Welcome to <strong>cloudnsure!</strong></b></h2>
<h5 class="text-center">You're signing up as <strong style="font-size: 20px;">here is email</strong></h5>
<br>
<form [formGroup]="form" (ngSubmit)="onContinue()" class="pop" style="text-align: center;">
<div class="clr-col-md-4 clr-col-sm-12 center">
<label for="controllerName"><strong>What's your full name?</strong></label><br/>
<input class="clr-input" type="text" id="name" formControlName="name" value="name"
>
</div>
<div class="clr-col-md-4 clr-col-sm-12 center">
<label for="controllerName"><strong>Password</strong></label><br/>
<input class="clr-input" type="password" id="password" formControlName="password"
>
</div>
<br/>
<div class="clr-col-md-4 clr-col-sm-12 center">
<label for="controllerName"><strong>Re-enter Password</strong></label><br/>
<input class="clr-input" type="password" id="cpass" formControlName="">
</div>
<br>
<div class="clr-col-md-4 clr-col-sm-12 center">
<label for="controllerName"><strong>Mobile</strong></label><br/>
<input formControlName="mobile" class="clr-input" type="number" ng2TelInpu
/>
</div>
<br>
<div class="clr-col-md-4 clr-col-sm-12 center">
<label for="controllerName"><strong>Email</strong></label><br/>
<input class="clr-input" type="text" id="email" name="email" formControlName="email"
>
</div>
<br>
<br>
<div class="center text-center">
<button type="submit" class="btn btn-primary">continue</button>
</div>
</form>
<br/>
<h4>Wrong account? <a href="">Log in</a> instead.</h4>
</div> -->
<div class="container">
<div class="display_msg">
<h2 class="text-center"><b>Welcome to <strong>cloudnsure!</strong></b></h2>
<h5 class="text-center" *ngIf="email">You're signing up as <strong style="font-size: 20px;">{{email}}</strong></h5>
<br>
<form class="form" [formGroup]="form">
<label><b>First Name</b></label><br>
<input type="text" class="form__field" placeholder="Enter First Name" formControlName="first_name">
<div *ngIf="f.first_name.invalid && (f.first_name.dirty || f.first_name.touched)"
style="color:indianred; font-weight: bold">
<div *ngIf="f.first_name.errors.required">First Name is required</div>
</div>
<br>
<label><b>Last Name</b></label><br>
<input type="text" class="form__field" placeholder="Enter Last Name" formControlName="last_name">
<div *ngIf="f.last_name.invalid && (f.last_name.dirty || f.last_name.touched)"
style="color:indianred; font-weight: bold">
<div *ngIf="f.last_name.errors.required">Last Name is required</div>
</div>
<br>
<label><b>Mobile Number</b></label><br>
<input type="text" class="form__field" placeholder="Enter Mobile Number" formControlName="mob_no">
<div *ngIf="f.mob_no.invalid && (f.mob_no.dirty || f.mob_no.touched)"
style="color:indianred; font-weight: bold">
<div *ngIf="f.mob_no.errors.required">Mobile Number is required</div>
<div *ngIf="f.mob_no.errors.minlength">Mobile Number is 10 numbers</div>
</div>
<br>
<label><b>New Password</b></label><br>
<input class="form__field" type="password" [type]="newpHide ? 'password': 'text'"
placeholder="Enter New Password" formControlName="password"/>
<clr-icon [attr.shape]="newIcon" (click)="newShapeChanger()"></clr-icon>
<div *ngIf="f.password.invalid && (f.password.dirty || f.password.touched)"
style="color:indianred; font-weight: bold">
<div *ngIf="f.password.errors.required">password is required</div>
<div *ngIf="f.password.errors.minlength">Password must be Minimum 6 Characters</div>
</div>
<br>
<label><b>Re-Enter New Password</b></label><br>
<input class="form__field" type="password" [type]="cpHide ? 'password': 'text'"
placeholder="Re-Enter New Password" formControlName="confirm_passwordS"/>
<clr-icon [attr.shape]="conIcon" (click)="comfShapeChanger()"></clr-icon>
<div *ngIf="f.confirm_passwordS.invalid && (f.confirm_passwordS.dirty || f.confirm_passwordS.touched)"
style="color:indianred; font-weight: bold">
<div *ngIf="f.confirm_passwordS.errors.required">Password is required.</div>
<div *ngIf="f.confirm_passwordS.errors.confirmedValidator">Password and Confirm Password must be match.</div>
</div>
<button type="submit" class="btn btn--primary uppercase" (click)="onsubmit()">continue</button>
</form>
<br>
<p style="color: red;" *ngIf="passchange"><clr-icon shape="check"></clr-icon> User Info Is Added Please Login </p>
<p> Wrong account? <a routerLink="/login">Log in</a> instead.</p>
</div>
</div>

View File

@ -0,0 +1,86 @@
//@import '../../../../../styles1.scss';
//** variables
$background: #f5f6fa;
$text: #9c9c9c;
$input-bg-color: #fff;
$input-text-color: #a3a3a3;
$button-bg-color: #7f8ff4;
$button-text-color: #fff;
$google-button-bg-color: #7f8ff4;
$linkedin-button-bg-color: #4b76eb;
//** root
:root {
background: $background;
color: $text;
font: 1rem "PT Sans", sans-serif;
}
//** helper
.display_msg {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.form {
/* margin-left: auto;
margin-right: auto; */
&__field {
// width: 360px;
// //background: #fff;
// color: $input-text-color;
// font: inherit;
// //box-shadow: 0 6px 10px 0 rgba(0, 0, 0 , .1);
// border: 1 solid rgb(235, 230, 230);
// background-color:rgb(255, 255, 255);
// display: inline-block;
// border-radius: 4px;
// box-sizing: border-box;
// //outline: 0;
// padding: 6px 9px;
width: 360px;
padding: 7px 9px;
// margin: 3px 0;
background-color:rgb(255, 255, 255);
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
}
.btn {
display: inline-block;
background: transparent;
color: inherit;
font: inherit;
border: 0;
outline: 0;
padding: 0;
transition: all 200ms ease-in;
cursor: pointer;
&--primary {
background: $button-bg-color;
color: $button-text-color;
box-shadow: 0 0 10px 2px rgba(0, 0, 0, .1);
border-radius: 2px;
width: 100%;
&:hover {
background: darken($button-bg-color, 4%);
}
&:active {
background: $button-bg-color;
box-shadow: inset 0 0 10px 2px rgba(0, 0, 0, .2);
}
}
}
form {
margin-left: 8%;
}

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AddguestComponent } from './addguest.component';
describe('AddguestComponent', () => {
let component: AddguestComponent;
let fixture: ComponentFixture<AddguestComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ AddguestComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(AddguestComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,68 @@
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { ActivatedRoute } from '@angular/router';
import { MyworkspaceService } from 'src/app/services/admin/myworkspace.service';
@Component({
selector: 'app-addguest',
templateUrl: './addguest.component.html',
styleUrls: ['./addguest.component.scss']
})
export class AddguestComponent implements OnInit {
public form: FormGroup;
submitted = false;
passchange;
newpHide: boolean = true;
newIcon: string = "eye";
newShapeChanger() {
this.newpHide = !this.newpHide;
if(this.newpHide){
this.newIcon = 'eye'
} else {
this.newIcon = 'eye-hide'
}
}
cpHide: boolean = true;
conIcon: string = "eye";
comfShapeChanger() {
this.cpHide = !this.cpHide;
if(this.cpHide){
this.conIcon = 'eye'
} else {
this.conIcon = 'eye-hide'
}
}
get f() { return this.form.controls; }
email: string;
token;
constructor(private _fb: FormBuilder,
private route: ActivatedRoute,
private mywork:MyworkspaceService) { }
ngOnInit(): void {
this.email = this.mywork.getStoredEmail();
console.log(this.email)
this.token = this.route.snapshot.params["id"];
console.log("token is ", this.token);
//form validation
this.form = this._fb.group(
{
first_name: ['', Validators.required],
last_name: ['', Validators.required],
mob_no: ['', [Validators.required,Validators.minLength(10)]],
password: ['',[ Validators.required, Validators.minLength(6), Validators.maxLength(40)]],
confirm_passwordS: ['', Validators.required],
}, );
}
onsubmit(){
this.mywork.addguestdetails(this.form.value,this.token).subscribe((data)=>{
console.log(data);
this.passchange=data;
console.log('success ', data);
},(err) => {
console.log('failure ', err);
})
}
}

View File

@ -0,0 +1,95 @@
.header-6 {
background-color: #0072a3;
}
:root {
background: #f5f6fa;
color: #9c9c9c;
font: 1rem "PT Sans", sans-serif;
}
html,
body,
.container {
height: 100%;
}
a {
color: inherit;
}
a:hover {
color: #7f8ff4;
}
.email_check {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.uppercase {
text-transform: uppercase;
}
.new {
display: inline-block;
background: transparent;
color: inherit;
font: inherit;
border: 0;
outline: 0;
padding: 0;
transition: all 200ms ease-in;
cursor: pointer;
}
.new--newprimary {
background: #7f8ff4;
color: #fff;
box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.1);
border-radius: 2px;
width: 100%;
}
.new--newprimary:hover {
background: #6c7ff2;
}
.new--newprimary:active {
background: #7f8ff4;
box-shadow: inset 0 0 10px 2px rgba(0, 0, 0, 0.2);
}
.new--primary1 {
background: #4CAF50;
color: #fff;
box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.1);
border-radius: 2px;
width: 100%;
}
.new--primary1:hover {
background: #6c7ff2;
}
.new--primary1:active {
background: #7f8ff4;
box-shadow: inset 0 0 10px 2px rgba(0, 0, 0, 0.2);
}
/* &--inside {
margin-left: -96px;
} */
.form {
/* margin-left: auto;
margin-right: auto; */
}
.form__field {
width: 360px;
background: #fff;
color: #626161;
font: inherit;
box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1);
border: 0;
outline: 0;
padding: 10px 18px;
}
.form__field {
border: 2px solid #7f8ff4;
}/*# sourceMappingURL=emailverification.component.css.map */

View File

@ -0,0 +1 @@
{"version":3,"sources":["emailverification.component.scss","emailverification.component.css"],"names":[],"mappings":"AAAA;EACE,yBAAA;ACCF;;ADUA;EACC,mBATY;EAUZ,cATM;EAUN,gCAAA;ACPD;;ADUA;;;EAGC,YAAA;ACPD;;ADUA;EACC,cAAA;ACPD;ADSC;EACC,cApBgB;ACalB;;ADYA;EACC,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,uBAAA;ACTD;;ADYA;EACC,yBAAA;ACTD;;ADaA;EACC,qBAAA;EACA,uBAAA;EACA,cAAA;EACA,aAAA;EACA,SAAA;EACA,UAAA;EACA,UAAA;EACA,6BAAA;EACA,eAAA;ACVD;ADYC;EACC,mBAjDgB;EAkDhB,WAjDkB;EAkDlB,2CAAA;EACA,kBAAA;EAGA,WAAA;ACZF;ADeE;EACC,mBAAA;ACbH;ADgBE;EACC,mBA/De;EAgEf,iDAAA;ACdH;ADiBC;EACC,mBAAA;EACA,WApEkB;EAqElB,2CAAA;EACA,kBAAA;EAGA,WAAA;ACjBF;ADoBE;EACC,mBAAA;AClBH;ADqBE;EACC,mBAlFe;EAmFf,iDAAA;ACnBH;;ADwBC;;GAAA;AAMD;EACC;uBAAA;ACvBD;ADyBC;EACC,YAAA;EAEA,gBAAA;EACA,cAtGiB;EAuGjB,aAAA;EACA,2CAAA;EACA,SAAA;EACA,UAAA;EACA,kBAAA;ACxBF;;AD2BA;EACE,yBAAA;ACxBF","file":"emailverification.component.css"}

View File

@ -0,0 +1,78 @@
<!-- <div class="s-login-pg"> -->
<!-- <div class="s-login-pg-head">
<div style="width:100px;"><s-logo></s-logo></div>
<p style="text-align: center"> Sample app done with SpringBoot backend and Angular frontend </p>
</div>
<form class="s-login-pg-form" name="form" (ngSubmit)="login()" #f="ngForm" novalidate>
<input type="text" placeholder="Username (demo)" name="username" [(ngModel)]="model.username" #username="ngModel" required/>
<input type="password" placeholder="Password (demo)" name="password" [(ngModel)]="model.password" #password="ngModel" required/>
<button type="submit" class="btn btn-primary">LOG IN</button>
</form>
<div class="s-login-pg-foot">
<div *ngIf="errMsg" style="color:indianred; font-weight: bold">{{errMsg}}</div>
</div> -->
<header class="header-6">
<div class="branding">
<a href="javascript://" class="nav-link">
<a href="#" class="logo">
<img class="img" src="assets/images/icon/micrologo.png" alt="" height="50" width="50">
</a>
<div style="width:40px;margin-right:10px;">
</div>
<span class="title">CloudnSure</span>
</a>
</div>
</header>
<div class="container">
<div class="email_check">
<h2><b>Try CloudnSure For Free</b></h2>
<p style="font-size:15px;">Email Verification</p><br>
<form class="form" [formGroup]="emailCheckForm" style="text-align: center;" >
<input class="form__field" type="email" formControlName="email" placeholder="example@gmail.com" [readOnly]="otpshow" [style.background-color]="otpshow === true ? '#f6f6f6' : 'white'" />
<div *ngIf="submitted && emailCheckForm.controls.email.errors" class="error_mess">
<div *ngIf="submitted && emailCheckForm.controls.email.errors.required" class="error_mess">*This field is Required</div>
</div>
<div *ngIf="emailErrMsg" style="color:indianred; font-weight: bold">{{emailErrMsg}}</div>
<br> <div style="padding: 10px 10px 0px 30px;" *ngIf="!otpshow">
<clr-checkbox-container style="width: 360px;">
<clr-checkbox-wrapper>
<input type="checkbox" clrCheckbox name="condition1" [(ngModel)]="conditions.condition1" [ngModelOptions]="{standalone: true}" />
<label>I agree to <a>Terms</a> and <a>Conditions</a>.</label>
</clr-checkbox-wrapper>
<clr-checkbox-wrapper>
<input type="checkbox" clrCheckbox name="condition2" [(ngModel)]="conditions.condition2" [ngModelOptions]="{standalone: true}" />
<label>I agree to <a>Privacy Policy</a>.</label>
</clr-checkbox-wrapper>
<clr-checkbox-wrapper>
<input type="checkbox" clrCheckbox name="condition3" [(ngModel)]="conditions.condition3" [ngModelOptions]="{standalone: true}" />
<label>I agree to End User Policy Agreement.</label>
</clr-checkbox-wrapper>
</clr-checkbox-container>
<ngx-recaptcha2 #captchaElem style="width: 100%;"
[siteKey]="siteKey"
(success)="handleSuccess($event)"
formControlName="recaptcha" >
</ngx-recaptcha2></div>
<ng-container *ngIf="!otpshow" ><br>
<button type="submit" class="btn new--newprimary btn--inside uppercase" [disabled]="!emailCheckForm.valid && !verifyButton || !(conditions.condition1 && conditions.condition2 && conditions.condition3)" (click)="onSubmit()">Verify Email</button>
</ng-container>
<br>
<ng-container *ngIf="otpshow" >
<div style="text-align: center; font-weight: bold;">Enter Your OTP</div>
<div> <input class="form__field" type="text" [(ngModel)]="otpfromuser" name="otpfromuser" [ngModelOptions]="{standalone: true}" placeholder="Enter OTP" /> </div>
<button type="submit" class="btn new--newprimary btn--inside uppercase" [disabled]="otpfromuser === '' || otpfromuser.length !== 6" (click)="verifyOTP()">Submit</button>
<div *ngIf="emailotpMsg" style="color:indianred; font-weight: bold">{{emailotpMsg}}</div>
<div style="color:rgb(82, 80, 80); font-weight: bold; width: 360px;">We have sent OTP to "{{emailCheckForm.value.email}}", please check and enter OTP from your email.</div>
<button type="submit" class="btn new--newprimary btn--inside uppercase" (click)="sendOTP()">Resend OTP</button>
</ng-container>
</form>
</div>
</div>

View File

@ -0,0 +1,121 @@
.header-6{
background-color: #0072a3;
}
//** variables
$background: #f5f6fa;
$text: #9c9c9c;
$input-bg-color: #fff;
$input-text-color: #626161;
$button-bg-color: #7f8ff4;
$button-text-color: #fff;
//** root
:root {
background: $background;
color: $text;
font: 1rem "PT Sans", sans-serif;
}
html,
body,
.container {
height: 100%;
}
a {
color: inherit;
&:hover {
color: $button-bg-color;
}
}
//** helper
.email_check {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.uppercase {
text-transform: uppercase;
}
//** button
.new {
display: inline-block;
background: transparent;
color: inherit;
font: inherit;
border: 0;
outline: 0;
padding: 0;
transition: all 200ms ease-in;
cursor: pointer;
&--newprimary {
background: $button-bg-color;
color: $button-text-color;
box-shadow: 0 0 10px 2px rgba(0, 0, 0, .1);
border-radius: 2px;
//padding: 12px 36px;
//padding: 7px 158px;
width: 100%;
&:hover {
background: darken($button-bg-color, 4%);
}
&:active {
background: $button-bg-color;
box-shadow: inset 0 0 10px 2px rgba(0, 0, 0, .2);
}
}
&--primary1{
background: #4CAF50;
color: $button-text-color;
box-shadow: 0 0 10px 2px rgba(0, 0, 0, .1);
border-radius: 2px;
//padding: 12px 36px;
//padding: 7px 158px;
width: 100%;
&:hover {
background: darken($button-bg-color, 4%);
}
&:active {
background: $button-bg-color;
box-shadow: inset 0 0 10px 2px rgba(0, 0, 0, .2);
}
}
}
/* &--inside {
margin-left: -96px;
} */
//** form
.form {
/* margin-left: auto;
margin-right: auto; */
&__field {
width: 360px;
//width: 450px;
background: #fff;
color: $input-text-color;
font: inherit;
box-shadow: 0 6px 10px 0 rgba(0, 0, 0 , .1);
border: 0;
outline: 0;
padding: 10px 18px;
}
}
.form__field{
border: 2px solid #7f8ff4 ;
}

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { EmailverificationComponent } from './emailverification.component';
describe('EmailverificationComponent', () => {
let component: EmailverificationComponent;
let fixture: ComponentFixture<EmailverificationComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ EmailverificationComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(EmailverificationComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,195 @@
import {Component, OnInit, ViewEncapsulation} from '@angular/core';
import {HttpClient, HttpErrorResponse} from "@angular/common/http";
import {FormBuilder, FormGroup, Validators} from "@angular/forms";
import {ActivatedRoute, Router} from "@angular/router";
import { UserRegistrationService } from 'src/app/services/admin/user-registration.service';
import{environment} from 'src/environments/environment';
import { ToastrService } from 'ngx-toastr';
export interface EmailRequest {
email: string;
}
@Component({
selector: 'app-emailverification',
templateUrl: './emailverification.component.html',
styleUrls: ['./emailverification.component.scss']
})
export class EmailverificationComponent implements OnInit {
// baseUrl= environment.portalurl;
submitted = false;
conditions = {
condition1:true,
condition2:true,
condition3:true,
}
siteKey = environment.captchaSiteKey;
// siteKey: string = "6Le7ayYpAAAAAL76n79XlVJCg1jbXZGbnzGNJ1rt";
constructor(private _fb: FormBuilder,
private router: Router,
private route: ActivatedRoute,
private userRegistrationService: UserRegistrationService,
private http: HttpClient,
private toastr: ToastrService) {
}
ngOnInit()
:
void {
this.userRegistrationService.removeSignedUpUserInfo();
this.userRegistrationService.removeStoredEmail();
this.emailCheckForm = this._fb.group({
email: [null, [Validators.email, Validators.required]],
recaptcha: ['', Validators.required],
first_name:[null],
last_name:[null],
mob_no:[null],
account_id:[null],
usrGrpId:[null],
new_password:[null],
confirm_password:[null],
accesstype:[null],
});
}
model: any = {};
EmailRequest: EmailRequest;
emailErrMsg: string = ""
emailExistCheck() {
console.log('input email: ', this.model.email);
this.userRegistrationService.emailCheck(this.model.email)
.subscribe((res) => {
console.log('email check Res : ', res);
}, (err) => {
console.log(err);
});
}
emailCheckForm: FormGroup;
get f() {
return this.emailCheckForm.controls;
}
// onSubmit() {
// console.log('this.emailCheckForm.value : ', this.emailCheckForm.value);
// this.userRegistrationService.emailCheck(this.emailCheckForm.value)
// .subscribe((res) => {
// console.log('success: ', res);
// let email: string = res.message;
// console.log(email);
// this.userRegistrationService.storeEmail(email);
// this.router.navigate(["/selfregistration"]);
// }, (err: HttpErrorResponse) => {
// console.log(err);
// console.log(err.error.message);
// if (err.status === 409) {
// this.emailErrMsg = 'Email Already Exists';
// } else {
// this.emailErrMsg = 'Server error';
// }
// });
// }
verifyButton= false;
handleSuccess(e) {
console.log("ReCaptcha", e);
console.log(this.emailCheckForm.controls);
const data:any = this.emailCheckForm.controls;
if(data.recaptcha.status == "VALID"){
this.verifyButton = true;
}
}
result: any;
otpfromuser:string = '';
otpshow = false;
onSubmit() {
if (this.emailCheckForm.invalid) {
this.submitted = true;
return;
}
let email = this.emailCheckForm.value.email;
console.log( this.emailCheckForm.value);
delete this.emailCheckForm.value.recaptcha
this.userRegistrationService.sendEmail(this.emailCheckForm.value).subscribe((res) => {
// this.userService.storeEmail(email);
// this.router.navigate(["/verify-account"])
console.log(res);
this.emailErrMsg = '';
if(res){
this.otpshow = true;
}
}, (err: HttpErrorResponse) => {
console.log(err)
if (err.status >= 400 && err.status <= 499) {
this.emailErrMsg = 'Email Already Exists or Enter Correct Email';
} else {
this.emailErrMsg = 'Server error';
}
})
}
sendOTP(): void {
this.userRegistrationService.sendOTP(this.emailCheckForm.value.email).subscribe(
(response) => {
const email = this.emailCheckForm.value.email
console.log(`"${email}", please check and enter OTP from your email`, response);
// this.toastr.success(`"${email}", please check and enter OTP from your email`)
// Handle the response as needed
this.otpfromuser = ''
this.toastr.success(response?.msg.toString());
},
(error) => {
console.error('Failed to send OTP:', error);
// Handle errors
if(error.status >=400 && error.status <=499) {
this.toastr.error(error?.message.toString());
}else if(error.status >= 500 && error.status <= 599) {
this.toastr.error("server error");
}
}
);
}
emailotpMsg: string = "";
verifyOTP(): void {
this.userRegistrationService.verifyOTP(this.emailCheckForm.value.email, this.otpfromuser).subscribe(
(response) => {
console.log('OTP verification result:', response);
// Handle the verification result as needed
this.toastr.success(response?.msg.toString());
setTimeout(() => {
this.router.navigate(["../about-work"], { relativeTo: this.route ,queryParams:{email:this.emailCheckForm.value.email}});
},500);
},
(error) => {
console.error('OTP verification failed:', error);
// Handle errors
if(error.status >=400 && error.status <=499) {
// this.toastr.error(error?.error?.msg.toString());
this.emailotpMsg = error?.error?.msg;
}else if(error.status >= 500 && error.status <= 599) {
this.emailotpMsg = 'Server error';
}
}
);
}
onSignUp() {
this.router.navigate(["signup"]);
}
goToLogin() {
// window.location.href = `${this.baseUrl}/#/login`;
this.router.navigate(["login"])
}
}

Some files were not shown because too many files have changed in this diff Show More