base_project
This commit is contained in:
parent
776c63e1f1
commit
da1d74ce5c
|
@ -0,0 +1,3 @@
|
|||
|
||||
frontend/.DS_Store
|
||||
.DS_Store
|
|
@ -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
|
17
prod129ac-front-f/authsec_angular/frontend/angular-clarity-master/.github/workflows/blank.yml
vendored
Normal file
17
prod129ac-front-f/authsec_angular/frontend/angular-clarity-master/.github/workflows/blank.yml
vendored
Normal 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.
|
42
prod129ac-front-f/authsec_angular/frontend/angular-clarity-master/.gitignore
vendored
Normal file
42
prod129ac-front-f/authsec_angular/frontend/angular-clarity-master/.gitignore
vendored
Normal 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
|
||||
|
||||
|
2
prod129ac-front-f/authsec_angular/frontend/angular-clarity-master/.vscode/settings.json
vendored
Normal file
2
prod129ac-front-f/authsec_angular/frontend/angular-clarity-master/.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
{
|
||||
}
|
|
@ -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)
|
||||
|
|
@ -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.
|
|
@ -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": "10mb",
|
||||
"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"
|
||||
}
|
||||
}
|
|
@ -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'.
|
|
@ -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 } }));
|
||||
}
|
||||
};
|
|
@ -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));
|
||||
});
|
||||
});
|
|
@ -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>;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"extends": "../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../out-tsc/e2e",
|
||||
"module": "commonjs",
|
||||
"target": "es5",
|
||||
"types": [
|
||||
"jasmine",
|
||||
"jasminewd2",
|
||||
"node"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -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
|
||||
});
|
||||
};
|
14670
prod129ac-front-f/authsec_angular/frontend/angular-clarity-master/package-lock.json
generated
Normal file
14670
prod129ac-front-f/authsec_angular/frontend/angular-clarity-master/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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 { }
|
|
@ -0,0 +1 @@
|
|||
<router-outlet></router-outlet>
|
|
@ -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!');
|
||||
});
|
||||
});
|
|
@ -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';
|
||||
}
|
|
@ -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 { }
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export enum Role {
|
||||
// User = 'User',
|
||||
Admin = 'Admin'
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export interface ActiveTechnology {
|
||||
id;
|
||||
name;
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
|
||||
export class AdhocParam{
|
||||
|
||||
|
||||
public id: number;
|
||||
public table_allias_name: string;
|
||||
public column_name: string;
|
||||
public column_allias_name: string;
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
export class Audit {
|
||||
public accountId: number;
|
||||
public createdAt: Date;
|
||||
public createdBy: string;
|
||||
public updatedAt: Date;
|
||||
public updatedBy: string;
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export interface ColumnList {
|
||||
// id: number;
|
||||
table_name: string;
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
} */
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export interface FileDetails {
|
||||
id: number;
|
||||
text: string;
|
||||
}
|
|
@ -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[];
|
||||
}
|
|
@ -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[];
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
export class RbTables{
|
||||
public table_id: number;
|
||||
public table_name: string;
|
||||
public table_allias_name: string;
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export class ReportBuilderQuery {
|
||||
public master_select: string;
|
||||
|
||||
}
|
|
@ -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[];
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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[];
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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[];
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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'
|
||||
}
|
||||
]
|
|
@ -0,0 +1,9 @@
|
|||
export class Gitfile {
|
||||
|
||||
public content :String;
|
||||
public url :String;
|
||||
public sha:String;
|
||||
public encoding:String;
|
||||
public size:String;
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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'
|
||||
}
|
||||
]
|
|
@ -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;
|
||||
}
|
|
@ -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[];
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
import { BiDashLine } from './BiDashLine';
|
||||
|
||||
export class BiDashHeader{
|
||||
|
||||
|
||||
public header_id: number;
|
||||
public dashboard_name: string;
|
||||
public components: BiDashLine[];
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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; */
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export interface Mapping {
|
||||
label: string;
|
||||
value: string;
|
||||
}
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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[];
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
|
||||
export class student {
|
||||
public id: number;
|
||||
public wf_id:number;
|
||||
public current_json: string;
|
||||
public status: string;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export interface TableList {
|
||||
// id: number;
|
||||
table_name: string;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export class ValidationError {
|
||||
field: any;
|
||||
message: any;
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export interface TableList {
|
||||
// id: number;
|
||||
table_name: string;
|
||||
}
|
|
@ -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[];
|
||||
|
||||
}
|
|
@ -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 */
|
|
@ -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"}
|
|
@ -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> -->
|
||||
|
|
@ -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%;
|
||||
// }
|
||||
|
|
@ -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();
|
||||
});
|
||||
});
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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}`);
|
||||
}
|
||||
|
||||
}
|
|
@ -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>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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%;
|
||||
}
|
|
@ -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();
|
||||
});
|
||||
});
|
|
@ -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);
|
||||
})
|
||||
}
|
||||
|
||||
}
|
|
@ -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 */
|
|
@ -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"}
|
|
@ -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>
|
|
@ -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 ;
|
||||
}
|
||||
|
|
@ -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();
|
||||
});
|
||||
});
|
|
@ -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
Loading…
Reference in New Issue