Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
dcarfixers_angular
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
16
Issues
16
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tobin
dcarfixers_angular
Commits
be42bb4b
Commit
be42bb4b
authored
Aug 05, 2019
by
Jansa Jose
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dc
parent
98b712b8
Show whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
603 additions
and
210 deletions
+603
-210
launch.json
.vscode/launch.json
+0
-19
package-lock.json
package-lock.json
+75
-61
footer.component.html
src/app/footer/footer.component.html
+3
-2
footer.component.ts
src/app/footer/footer.component.ts
+25
-3
dashboard.component.html
src/app/home/dashboard/dashboard.component.html
+87
-49
dashboard.component.scss
src/app/home/dashboard/dashboard.component.scss
+8
-2
dashboard.component.ts
src/app/home/dashboard/dashboard.component.ts
+102
-5
index.component.html
src/app/home/index/index.component.html
+15
-11
index.component.ts
src/app/home/index/index.component.ts
+63
-6
navbar.component.html
src/app/navbar/navbar.component.html
+28
-16
navbar.component.scss
src/app/navbar/navbar.component.scss
+26
-5
navbar.component.ts
src/app/navbar/navbar.component.ts
+26
-5
cart.component.ts
src/app/purchase/cart/cart.component.ts
+7
-7
orders.component.html
src/app/purchase/orders/orders.component.html
+3
-1
productdetails.component.html
...app/purchase/productdetails/productdetails.component.html
+1
-0
productdetails.component.scss
...app/purchase/productdetails/productdetails.component.scss
+10
-0
productlist.component.html
src/app/purchase/productlist/productlist.component.html
+14
-8
productlist.component.ts
src/app/purchase/productlist/productlist.component.ts
+71
-3
purchase-home.component.scss
src/app/purchase/purchase-home/purchase-home.component.scss
+1
-1
purchase.module.ts
src/app/purchase/purchase.module.ts
+2
-0
summary.component.ts
src/app/purchase/summary/summary.component.ts
+2
-1
track.component.html
src/app/purchase/track/track.component.html
+3
-1
track.component.ts
src/app/purchase/track/track.component.ts
+10
-2
responsive.scss
src/assets/css/responsive.scss
+19
-1
asset_icon3.png
src/assets/images/asset_icon3.png
+0
-0
server.config.ts
src/environments/server.config.ts
+1
-1
index.html
src/index.html
+1
-0
No files found.
.vscode/launch.json
deleted
100644 → 0
View file @
98b712b8
{
//
Use
IntelliSense
to
learn
about
possible
attributes.
//
Hover
to
view
descriptions
of
existing
attributes.
//
For
more
information
,
visit
:
https
:
//go.microsoft.com/fwlink/?linkid=
830387
"version"
:
"0.2.0"
,
"configurations"
:
[
{
"type"
:
"node"
,
"request"
:
"launch"
,
"name"
:
"Launch Program"
,
"program"
:
"${workspaceFolder}
\\
serve"
,
"preLaunchTask"
:
"tsc: build - tsconfig.json"
,
"outFiles"
:
[
"${workspaceFolder}/dist/out-tsc/**/*.js"
]
}
]
}
\ No newline at end of file
package-lock.json
View file @
be42bb4b
...
...
@@ -379,7 +379,8 @@
"ansi-regex"
:
{
"version"
:
"2.1.1"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"aproba"
:
{
"version"
:
"1.2.0"
,
...
...
@@ -400,12 +401,14 @@
"balanced-match"
:
{
"version"
:
"1.0.0"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"brace-expansion"
:
{
"version"
:
"1.1.11"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"balanced-match"
:
"^1.0.0"
,
"concat-map"
:
"0.0.1"
...
...
@@ -420,17 +423,20 @@
"code-point-at"
:
{
"version"
:
"1.1.0"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"concat-map"
:
{
"version"
:
"0.0.1"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"console-control-strings"
:
{
"version"
:
"1.1.0"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"core-util-is"
:
{
"version"
:
"1.0.2"
,
...
...
@@ -547,7 +553,8 @@
"inherits"
:
{
"version"
:
"2.0.3"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"ini"
:
{
"version"
:
"1.3.5"
,
...
...
@@ -559,6 +566,7 @@
"version"
:
"1.0.0"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"number-is-nan"
:
"^1.0.0"
}
...
...
@@ -573,6 +581,7 @@
"version"
:
"3.0.4"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"brace-expansion"
:
"^1.1.7"
}
...
...
@@ -580,12 +589,14 @@
"minimist"
:
{
"version"
:
"0.0.8"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"minipass"
:
{
"version"
:
"2.3.5"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"safe-buffer"
:
"^5.1.2"
,
"yallist"
:
"^3.0.0"
...
...
@@ -604,6 +615,7 @@
"version"
:
"0.5.1"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"minimist"
:
"0.0.8"
}
...
...
@@ -684,7 +696,8 @@
"number-is-nan"
:
{
"version"
:
"1.0.1"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"object-assign"
:
{
"version"
:
"4.1.1"
,
...
...
@@ -696,6 +709,7 @@
"version"
:
"1.4.0"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"wrappy"
:
"1"
}
...
...
@@ -781,7 +795,8 @@
"safe-buffer"
:
{
"version"
:
"5.1.2"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"safer-buffer"
:
{
"version"
:
"2.1.2"
,
...
...
@@ -817,6 +832,7 @@
"version"
:
"1.0.2"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"code-point-at"
:
"^1.0.0"
,
"is-fullwidth-code-point"
:
"^1.0.0"
,
...
...
@@ -836,6 +852,7 @@
"version"
:
"3.0.1"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"ansi-regex"
:
"^2.0.0"
}
...
...
@@ -879,12 +896,14 @@
"wrappy"
:
{
"version"
:
"1.0.2"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"yallist"
:
{
"version"
:
"3.0.3"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
}
}
},
...
...
@@ -4292,7 +4311,8 @@
"ansi-regex"
:
{
"version"
:
"2.1.1"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"aproba"
:
{
"version"
:
"1.2.0"
,
...
...
@@ -4313,12 +4333,14 @@
"balanced-match"
:
{
"version"
:
"1.0.0"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"brace-expansion"
:
{
"version"
:
"1.1.11"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"balanced-match"
:
"^1.0.0"
,
"concat-map"
:
"0.0.1"
...
...
@@ -4333,17 +4355,20 @@
"code-point-at"
:
{
"version"
:
"1.1.0"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"concat-map"
:
{
"version"
:
"0.0.1"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"console-control-strings"
:
{
"version"
:
"1.1.0"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"core-util-is"
:
{
"version"
:
"1.0.2"
,
...
...
@@ -4460,7 +4485,8 @@
"inherits"
:
{
"version"
:
"2.0.3"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"ini"
:
{
"version"
:
"1.3.5"
,
...
...
@@ -4472,6 +4498,7 @@
"version"
:
"1.0.0"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"number-is-nan"
:
"^1.0.0"
}
...
...
@@ -4486,6 +4513,7 @@
"version"
:
"3.0.4"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"brace-expansion"
:
"^1.1.7"
}
...
...
@@ -4493,12 +4521,14 @@
"minimist"
:
{
"version"
:
"0.0.8"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"minipass"
:
{
"version"
:
"2.3.5"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"safe-buffer"
:
"^5.1.2"
,
"yallist"
:
"^3.0.0"
...
...
@@ -4517,6 +4547,7 @@
"version"
:
"0.5.1"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"minimist"
:
"0.0.8"
}
...
...
@@ -4597,7 +4628,8 @@
"number-is-nan"
:
{
"version"
:
"1.0.1"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"object-assign"
:
{
"version"
:
"4.1.1"
,
...
...
@@ -4609,6 +4641,7 @@
"version"
:
"1.4.0"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"wrappy"
:
"1"
}
...
...
@@ -4694,7 +4727,8 @@
"safe-buffer"
:
{
"version"
:
"5.1.2"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"safer-buffer"
:
{
"version"
:
"2.1.2"
,
...
...
@@ -4730,6 +4764,7 @@
"version"
:
"1.0.2"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"code-point-at"
:
"^1.0.0"
,
"is-fullwidth-code-point"
:
"^1.0.0"
,
...
...
@@ -4749,6 +4784,7 @@
"version"
:
"3.0.1"
,
"bundled"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"ansi-regex"
:
"^2.0.0"
}
...
...
@@ -4792,12 +4828,14 @@
"wrappy"
:
{
"version"
:
"1.0.2"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
"yallist"
:
{
"version"
:
"3.0.3"
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
}
}
},
...
...
@@ -6429,9 +6467,9 @@
}
},
"lodash"
:
{
"version"
:
"4.17.1
1
"
,
"resolved"
:
"https://registry.npmjs.org/lodash/-/lodash-4.17.1
1
.tgz"
,
"integrity"
:
"sha
1-s56mIp72B+zYniyN8SU2iRysm40
="
"version"
:
"4.17.1
5
"
,
"resolved"
:
"https://registry.npmjs.org/lodash/-/lodash-4.17.1
5
.tgz"
,
"integrity"
:
"sha
512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=
="
},
"lodash.assign"
:
{
"version"
:
"4.2.0"
,
...
...
@@ -6454,8 +6492,7 @@
},
"lodash.mergewith"
:
{
"version"
:
"4.6.1"
,
"resolved"
:
"https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz"
,
"integrity"
:
"sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ=="
,
"resolved"
:
""
,
"dev"
:
true
,
"optional"
:
true
},
...
...
@@ -6907,9 +6944,9 @@
}
},
"mixin-deep"
:
{
"version"
:
"1.3.
1
"
,
"resolved"
:
"https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.
1
.tgz"
,
"integrity"
:
"sha
1-pJ5yaNzhoNlpjkUybFYm3zVD0P4
="
,
"version"
:
"1.3.
2
"
,
"resolved"
:
"https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.
2
.tgz"
,
"integrity"
:
"sha
512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA=
="
,
"dev"
:
true
,
"requires"
:
{
"for-in"
:
"^1.0.2"
,
...
...
@@ -6919,7 +6956,7 @@
"is-extendable"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz"
,
"integrity"
:
"sha
1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ
="
,
"integrity"
:
"sha
512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA=
="
,
"dev"
:
true
,
"requires"
:
{
"is-plain-object"
:
"^2.0.4"
...
...
@@ -8984,9 +9021,9 @@
"integrity"
:
"sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"set-value"
:
{
"version"
:
"2.0.
0
"
,
"resolved"
:
"https://registry.npmjs.org/set-value/-/set-value-2.0.
0
.tgz"
,
"integrity"
:
"sha
1-ca5KiPD+77v1LR6mBPP7MV67YnQ
="
,
"version"
:
"2.0.
1
"
,
"resolved"
:
"https://registry.npmjs.org/set-value/-/set-value-2.0.
1
.tgz"
,
"integrity"
:
"sha
512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw=
="
,
"dev"
:
true
,
"requires"
:
{
"extend-shallow"
:
"^2.0.1"
,
...
...
@@ -10307,38 +10344,15 @@
"dev"
:
true
},
"union-value"
:
{
"version"
:
"1.0.
0
"
,
"resolved"
:
"https://registry.npmjs.org/union-value/-/union-value-1.0.
0
.tgz"
,
"integrity"
:
"sha
1-XHHDTLW61dzr4+oM0IIHulqhrqQ
="
,
"version"
:
"1.0.
1
"
,
"resolved"
:
"https://registry.npmjs.org/union-value/-/union-value-1.0.
1
.tgz"
,
"integrity"
:
"sha
512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg=
="
,
"dev"
:
true
,
"requires"
:
{
"arr-union"
:
"^3.1.0"
,
"get-value"
:
"^2.0.6"
,
"is-extendable"
:
"^0.1.1"
,
"set-value"
:
"^0.4.3"
},
"dependencies"
:
{
"extend-shallow"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
,
"integrity"
:
"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8="
,
"dev"
:
true
,
"requires"
:
{
"is-extendable"
:
"^0.1.0"
}
},
"set-value"
:
{
"version"
:
"0.4.3"
,
"resolved"
:
"https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz"
,
"integrity"
:
"sha1-fbCPnT0i3H945Trzw79GZuzfzPE="
,
"dev"
:
true
,
"requires"
:
{
"extend-shallow"
:
"^2.0.1"
,
"is-extendable"
:
"^0.1.1"
,
"is-plain-object"
:
"^2.0.1"
,
"to-object-path"
:
"^0.3.0"
}
}
"set-value"
:
"^2.0.1"
}
},
"unique-filename"
:
{
...
...
src/app/footer/footer.component.html
View file @
be42bb4b
...
...
@@ -36,10 +36,10 @@
<h5>
DISCOVER
</h5>
<ul>
<li>
<a>
How it works
</a>
<a
(
click
)="
howitwrks
()"
>
How it works
</a>
</li>
<li>
<a>
Sign Up
</a>
<a
(
click
)="
signUp
()"
>
Sign Up
</a>
</li>
<li>
<a>
Guarantee
</a>
...
...
@@ -75,6 +75,7 @@
</li>
</ul>
</div>
<input
type=
"hidden"
#
indexLoginModal
data-toggle=
"modal"
data-target=
"#login"
>
<div
class=
"col-md-2"
>
<h5>
DOWNLOAD NOW
</h5>
<div
class=
"appstore"
>
...
...
src/app/footer/footer.component.ts
View file @
be42bb4b
import
{
Component
,
OnInit
}
from
'@angular/core'
;
import
{
Component
,
OnInit
,
ViewChild
,
ElementRef
}
from
'@angular/core'
;
import
{
Router
,
ActivatedRoute
}
from
'@angular/router'
;
import
{
WebService
}
from
'./../provider/web.service'
;
@
Component
({
selector
:
'app-footer'
,
...
...
@@ -8,18 +9,39 @@ import { Router,ActivatedRoute } from '@angular/router';
})
export
class
FooterComponent
implements
OnInit
{
loginDetails
:
any
;
@
ViewChild
(
"indexLoginModal"
)
loginModalRef
:
ElementRef
;
constructor
(
private
router
:
Router
,
private
route
:
ActivatedRoute
private
route
:
ActivatedRoute
,
public
webService
:
WebService
,
)
{
}
ngOnInit
()
{
this
.
checkUserLogin
();
}
checkUserLogin
(){
this
.
loginDetails
=
JSON
.
parse
(
this
.
webService
.
getLocalStorageItem
(
'userData'
));
}
goToPage
(
path
,
data
=
null
){
this
.
router
.
navigate
ByUrl
(
path
,{
queryParams
:
data
});
this
.
router
.
navigate
([
path
],{
queryParams
:
data
});
document
.
body
.
scrollTop
=
document
.
documentElement
.
scrollTop
=
0
;
}
signUp
(){
if
(
!
this
.
loginDetails
){
this
.
loginModalRef
.
nativeElement
.
click
();
return
false
;
}
}
howitwrks
(){
this
.
goToPage
(
'index'
,{
"tab"
:
"1"
});
}
}
src/app/home/dashboard/dashboard.component.html
View file @
be42bb4b
...
...
@@ -19,7 +19,7 @@
</a>
</li>
<li
class=
"nav-item"
>
<a
class=
"nav-link vehicle"
data-toggle=
"tab"
href=
"#vehicle"
>
<a
class=
"nav-link vehicle"
data-toggle=
"tab"
href=
"#vehicle"
#
vehicleTab
>
<span>
My Vehicle
<div
class=
"notification"
*
ngIf=
"vehDetails"
>
{{ vehDetails?.length || '0' }}
</div>
...
...
@@ -46,9 +46,10 @@
</a>
</li>
<li
class=
"nav-item"
>
<a
class=
"nav-link reminder"
data-toggle=
"tab"
href=
"#reminder"
>
<a
class=
"nav-link reminder"
data-toggle=
"tab"
href=
"#reminder"
#
reminderTab
>
<span>
Reminder
<div
class=
"notification"
*
ngIf=
"remainders"
>
{{ remainders?.length || '0' }}
</div>
</span>
</a>
</li>
...
...
@@ -218,7 +219,11 @@
<div
class=
"button_bay"
>
<div
class=
"btn-group-justified"
role=
"group"
aria-label=
"Basic example"
>
<button
type=
"button"
class=
"btn book btn-sm"
data-toggle=
"modal"
data-target=
"#wizard"
(
click
)="
bookVechile
(
vehicle
.
customer_veh_id
)"
>
Book Now
</button>
<button
type=
"button"
class=
"btn btn-danger btn-sm"
(
click
)="
cnfdeleteCustomerCar
(
vehicle
.
customer_id
,
vehicle
.
customer_veh_id
)"
>
Delete
</button>
<button
type=
"button"
class=
"btn btn-danger btn-sm"
(
click
)="
cnfdeleteCustomerCar
(
vehicle
.
customer_id
,
vehicle
.
customer_veh_id
)"
><i
class=
"fas fa-trash"
></i></button>
<button
type=
"button"
class=
"btn btn-primary btn-sm"
*
ngIf=
"vehicle.enable_notification == 0"
(
click
)="
changeReminder
(
vehicle
.
customer_veh_id
,
1
)"
><i
class=
"fas fa-bell"
></i></button>
<button
type=
"button"
class=
"btn btn-secondary btn-sm noti_slash"
*
ngIf=
"vehicle.enable_notification == 1"
(
click
)="
changeReminder
(
vehicle
.
customer_veh_id
,
0
)"
><i
class=
"fas fa-bell-slash"
></i></button>
<button
type=
"button"
class=
"btn book btn-sm"
(
click
)="
purchase
(
vehicle
.
customer_veh_id
)"
>
Purchase
</button>
</div>
</div>
</li>
...
...
@@ -428,52 +433,50 @@
<div
class=
"tab-pane container fade"
id=
"reminder"
>
<div
class=
"row"
>
<div
class=
"col-md-12"
>
<span
*
ngIf=
"remainders; else noRemndrs"
>
<div
class=
"row line_row"
>
<div
class=
"col-md-12"
>
<h3>
Set r
eminder for service booking
</h3>
<h3>
R
eminder for service booking
</h3>
<hr>
</div>
</div>
<div
class=
"row line_row"
>
<div
class=
"col-md-12"
>
<div
class=
"vehicle_list"
>
<ul>
<li>
<div
class=
"car_details"
>
<h5><strong>
UI458792
</strong>
booking name
</h5>
<div
class=
"row"
>
<div
class=
"col-md-3"
>
Booking id
</div>
<div
class=
"col-md-1"
>
:
</div>
<div
class=
"col-md-7"
>
UI458792
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-3"
>
Date
</div>
<div
class=
"col-md-1"
>
:
</div>
<div
class=
"col-md-7"
>
12 June 2019
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-3"
>
Time
</div>
<div
class=
"col-md-1"
>
:
</div>
<div
class=
"col-md-7"
>
13:00:00
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-3"
>
Snooze time
</div>
<div
class=
"col-md-1"
>
:
</div>
<div
class=
"col-md-7"
>
10 minutes
</div>
</div>
</div>
<div
class=
"clear"
></div>
<div
class=
"button_bay"
>
<div
class=
"table-responsive"
>
<table>
<thead>
<tr>
<th>
Sl No
</th>
<th>
Vehicle Name
</th>
<th>
Last Maintanence Date
</th>
<th>
Next Maintanence Date
</th>
<th>
Action
</th>
</tr>
</thead>
<tbody>
<tr
*
ngFor=
"let remnds of remainders;let i = index;"
>
<td>
{{i +1}}
</td>
<td>
{{remnds.car_name}}
</td>
<td>
{{remnds.last_maintenance_date | date :"MMMM dd, yyyy, EEE"}}
</td>
<td>
{{remnds.next_maintenance_date | date :"MMMM dd, yyyy, EEE"}}
</td>
<td>
<div
class=
"btn-group-justified"
role=
"group"
aria-label=
"Basic example"
>
<button
type=
"button"
class=
"btn book btn-sm"
>
Enable reminder
</button>
<button
type=
"button"
class=
"btn btn-danger btn-sm"
>
Cancel reminder
</button>
<button
type=
"button"
class=
"btn btn-danger btn-sm noti_slash"
(
click
)="
cnfdeleteVehReminder
(
remnds
.
customer_veh_id
,
0
)"
><i
class=
"fas fa-bell-slash"
></i></button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</li>
</ul>
</div>
</div>
</span>
<ng-template
#
noRemndrs
>
<div
class=
"cmn_nodata"
>
<img
src=
"../../../assets/images/no_result.png"
>
<p>
No Reminders
</p>
</div>
</ng-template>
</div>
</div>
</div>
...
...
@@ -513,8 +516,8 @@
<form
[
formGroup
]="
vehicleDetailsAddForm
"
(
ngSubmit
)="
vehicleDetailsFormSubmit
(
vehicleDetailsAddForm
.
value
)"
>
<div
class=
"row line_row"
>
<div
class=
"col-md-6"
>
<select
class=
"vehicle_input_select"
placeholder=
"Choose Year"
formControlName=
"modelYear"
[
ngClass
]="{'
input_error
'
:
!
vehicleDetailsAddForm
.
controls
['
modelYear
'].
valid
&&
vehicleDetailsFormSubmitClick
}"
>
<select
class=
"vehicle_input_select"
(
change
)="
get_vehiYear
($
event
.
target
.
value
)"
placeholder=
"Choose Year"
formControlName=
"modelYear"
[
ngClass
]="{'
input_error
'
:
(!
vehicleDetailsAddForm
.
controls
['
modelYear
'].
valid
&&
vehicleDetailsAddForm
.
controls
['
maker
'].
valid
)
||
(!
vehicleDetailsAddForm
.
controls
['
modelYear
'].
valid
&&
vehicleDetailsFormSubmitClick
)
}"
>
<option
value=
""
class=
"hide"
>
YEAR
</option>
<option
*
ngFor=
"let date of modelDates"
>
{{date}}
</option>
</select>
...
...
@@ -529,17 +532,52 @@
</div>
<div
class=
"row line_row"
>
<div
class=
"col-md-6"
>
<select
class=
"vehicle_input_select
"
placeholder=
"Choose Model"
formControlName=
"modelName"
<select
class=
"vehicle_input_select"
(
change
)="
get_trims
($
event
)"
*
ngIf=
"carModel && carModel.length > 0
"
placeholder=
"Choose Model"
formControlName=
"modelName"
[
ngClass
]="{'
input_error
'
:
!
vehicleDetailsAddForm
.
controls
['
modelName
'].
valid
&&
vehicleDetailsFormSubmitClick
}"
>
<option
value=
""
class=
"hide"
>
MODEL
</option>
<option
*
ngFor=
"let car_models of carModel
"
>
{{car_models.model}}
</option>
<option
*
ngFor=
"let car_models of carModel"
[
attr
.
modelValue
]="
car_models
.
veh_model_id
"
>
{{car_models.model}}
</option>
</select>
</div>
<div
class=
"col-md-6"
>
<input
#
googleLocDetails
class=
"vehicle_input"
placeholder=
"Enter Location"
autocorrect=
"off"
autocapitalize=
"off"
spellcheck=
"off"
type=
"text"
(
keyup
)="
searchLocError =
false"
formControlName=
"location"
<select
class=
"vehicle_input_select"
*
ngIf=
"carTrim && carTrim.length > 0"
formControlName=
"trim"
[
ngClass
]="{'
input_error
'
:
!
vehicleDetailsAddForm
.
controls
['
modelName
'].
valid
&&
vehicleDetailsFormSubmitClick
}"
>
<option
value=
""
class=
"hide"
>
TRIM
</option>
<option
*
ngFor=
"let car_trim of carTrim"
>
{{car_trim.trim}}
</option>
</select>
</div>
</div>
<div
class=
"row line_row"
>
<div
class=
"col-md-6"
>
<input
#
googleLocDetails
class=
"vehicle_input"
placeholder=
"ENTER LOCATION"
autocorrect=
"off"
autocapitalize=
"off"
spellcheck=
"off"
type=
"text"
(
keyup
)="
searchLocError =
false"
formControlName=
"location"
[
ngClass
]="{'
input_error
'
:
!
vehicleDetailsAddForm
.
controls
['
location
'].
valid
&&
vehicleDetailsFormSubmitClick
}"
>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-12"
>
<p>
Optional
</p>
</div>
</div>
<div
class=
"row line_row"
>
<div
class=
"col-md-6"
>
<input
class=
"vehicle_input"
placeholder=
"ENTER ENGINE"
type=
"text"
formControlName=
"engine"
>
</div>
<div
class=
"col-md-6"
>
<input
formControlName=
"last_date"
placeholder=
"LAST MAINTENANCE DATE"
type=
"text"
class=
"vehicle_input date"
bsDatepicker
name=
"dob"
>
</div>
</div>
<div
class=
"row line_row"
>
<!-- <div class="col-md-6">
<input formControlName="last_date" placeholder="LAST MAINTENANCE DATE" type="text" class="vehicle_input date"
bsDatepicker name="dob">
</div> -->
<div
class=
"col-md-6"
>
<select
class=
"vehicle_input_select"
formControlName=
"maintanence_interval"
>
<option
[
attr
.
value
]="
0
"
[
attr
.
selected
]=
true
[
attr
.
disabled
]="
true
"
>
MAINTANENCE INTERVAL
</option>
<option
*
ngFor=
"let date of monthArray;let i = index;"
[
value
]="
i
+
1
"
>
{{i+1}}{{(i === 0)?' Month':' Months'}}
</option>
</select>
</div>
</div>
<div
*
ngIf=
"errMessage"
class=
"s_alert alert-danger"
>
<strong>
{{errMessage.errMsg}}
<br></strong>
</div>
...
...
@@ -579,9 +617,9 @@
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- ADD-VEHICLE-MODAL-ENDS -->
...
...
@@ -929,14 +967,14 @@
<span
*
ngFor=
"let time of mechanic.scheduleTiming"
>
<li
*
ngIf=
"(time > currentTime && ((dateSection[0] | date: 'dd') == currentDate))"
id=
"custom_check_button"
>
<label>
<input
type=
"radio"
name=
"scheduleTime"
(
click
)="
getSchedule
(
tim
e
,'
0
');
<input
type=
"radio"
value=
"{{time | date:'hh:mm a'}}"
name=
"scheduleTime"
(
click
)="
getSchedule
($
event
.
target
.
valu
e
,'
0
');
scheduleDateInit =
true;
scheduleMechanic =
mechanic.mechanic_id"
>
<p>
{{time | date:'hh:mm a'}}
</p>
</label>
</li>
<li
*
ngIf=
"((dateSection[0] | date: 'dd') != currentDate)"
id=
"custom_check_button"
>
<label>
<input
type=
"radio"
name=
"scheduleTime"
(
click
)="
getSchedule
(
tim
e
,'
0
');
<input
type=
"radio"
value=
"{{time | date:'hh:mm a'}}"
name=
"scheduleTime"
(
click
)="
getSchedule
($
event
.
target
.
valu
e
,'
0
');
scheduleDateInit =
true;
scheduleMechanic =
mechanic.mechanic_id"
>
<p>
{{time | date:'hh:mm a'}}
</p>
</label>
...
...
@@ -946,7 +984,7 @@
<ul
id=
"scroll_1_{{i}}"
>
<li
*
ngFor=
"let time of mechanic.scheduleTiming"
id=
"custom_check_button"
>
<label>
<input
type=
"radio"
name=
"scheduleTime"
(
click
)="
getSchedule
(
tim
e
,'
1
');
<input
type=
"radio"
value=
"{{time | date:'hh:mm a'}}"
name=
"scheduleTime"
(
click
)="
getSchedule
($
event
.
target
.
valu
e
,'
1
');
scheduleDateInit =
true;
scheduleMechanic =
mechanic.mechanic_id"
>
<p>
{{time | date:'hh:mm a'}}
</p>
</label>
...
...
@@ -1000,8 +1038,8 @@
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- QUOTES-MODAL-ENDS-->
...
...
src/app/home/dashboard/dashboard.component.scss
View file @
be42bb4b
...
...
@@ -639,13 +639,13 @@
border
:
1px
solid
#1e1e1e
;
height
:
40px
;
padding-left
:
15px
;
font-size
:
1
6
px
;
font-size
:
1
3
px
;
}
.vehicle_input_select
{
width
:
100%
;
border
:
1px
solid
#1e1e1e
;
background
:
url("/assets/images/asset_down_arrow.png")
;
font-size
:
1
6
px
;
font-size
:
1
3
px
;
cursor
:
pointer
;
background-position
:
right
10px
top
10px
;
background-repeat
:
no-repeat
;
...
...
@@ -1663,3 +1663,8 @@
}
.noti_slash
{
width
:
55px
;
}
\ No newline at end of file
src/app/home/dashboard/dashboard.component.ts
View file @
be42bb4b
...
...
@@ -49,6 +49,7 @@ export class DashboardComponent implements OnInit {
autocompleteDetails
:
any
;
optionalDescription
:
string
;
editProfileSubmitClick
:
boolean
;
remainders
:
any
;
vehicleVinAddForm
;
vehicleVinFormSubmitClick
;
...
...
@@ -92,6 +93,11 @@ export class DashboardComponent implements OnInit {
scheduleMechanic
:
any
;
optionalImges
:
any
=
new
Array
({
1
:
false
,
2
:
false
,
3
:
false
,
4
:
false
});
vehiYear
:
any
;
vehiBrand
:
any
;
vehiModel
:
any
;
carTrim
:
any
;
imageDisp1
:
any
;
imageDisp2
:
any
;
imageDisp3
:
any
;
...
...
@@ -110,6 +116,8 @@ export class DashboardComponent implements OnInit {
@
ViewChild
(
"googleLocDetails"
)
public
googleLocDetailsRef
:
ElementRef
;
@
ViewChild
(
"newGoogleLocSearch"
)
public
newGoogleLocRef
:
ElementRef
;
@
ViewChild
(
"appointmentTab"
)
public
appointmentTabRef
:
ElementRef
;
@
ViewChild
(
"vehicleTab"
)
public
vehicleTabRef
:
ElementRef
;
@
ViewChild
(
"reminderTab"
)
public
reminderTabRef
:
ElementRef
;
@
ViewChild
(
"serviceHistoryTab"
)
public
serviceHistoryTabRef
:
ElementRef
;
@
ViewChild
(
"closeVehicleAddForm"
)
public
closeVehicleAddFormRef
:
ElementRef
;
...
...
@@ -145,10 +153,12 @@ export class DashboardComponent implements OnInit {
ngOnInit
()
{
this
.
currentTime
=
this
.
today
.
getTime
();
this
.
currentDate
=
this
.
today
.
getDate
();
this
.
tab
=
'active'
;
this
.
route
.
queryParams
.
subscribe
(
params
=>
{
let
payStatus
=
params
[
'status'
];
let
activeTab
=
params
[
'tab'
];
let
vehTab
=
params
[
'redrct_tab'
];
if
(
payStatus
&&
payStatus
!=
''
){
if
(
payStatus
==
'success'
)
...
...
@@ -165,6 +175,15 @@ export class DashboardComponent implements OnInit {
this
.
appointmentTabRef
.
nativeElement
.
click
();
}
}
if
(
vehTab
&&
vehTab
!=
''
){
if
(
vehTab
==
'vehicle'
){
this
.
vehicleTabRef
.
nativeElement
.
click
();
}
if
(
vehTab
==
'reminder'
){
this
.
reminderTabRef
.
nativeElement
.
click
();
}
}
});
this
.
vehicleVinAddForm
=
new
FormGroup
({
...
...
@@ -176,11 +195,14 @@ export class DashboardComponent implements OnInit {
maker
:
new
FormControl
(
''
,
[
Validators
.
required
]),
location
:
new
FormControl
(
''
,
[
Validators
.
required
]),
modelYear
:
new
FormControl
(
''
,
[
Validators
.
required
]),
modelName
:
new
FormControl
(
''
,
[
Validators
.
required
])
modelName
:
new
FormControl
(
''
,
[
Validators
.
required
]),
engine
:
new
FormControl
(
''
),
trim
:
new
FormControl
(
''
),
last_date
:
new
FormControl
(
''
),
maintanence_interval
:
new
FormControl
(
''
)
});
this
.
getVehicleBrand
();
this
.
subjectService
.
getLoginData
().
subscribe
(
loginData
=>
{
this
.
loginDetails
=
JSON
.
parse
(
this
.
webService
.
getLocalStorageItem
(
'userData'
));
...
...
@@ -197,6 +219,7 @@ export class DashboardComponent implements OnInit {
});
this
.
getCustVehDetails
();
this
.
getCustBookDetails
();
this
.
getCustRemainders
();
}
else
{
this
.
router
.
navigate
([
'index'
]);
}
...
...
@@ -236,7 +259,23 @@ export class DashboardComponent implements OnInit {
});
}
get_vehiYear
(
year
){
if
(
year
==
''
){
return
;
}
this
.
carTrim
=
this
.
carModel
=
[];
this
.
vehiYear
=
year
;
if
(
this
.
vehiBrand
){
this
.
get_model
(
this
.
vehiBrand
);
}
}
get_model
(
brand_id
)
{
this
.
vehiBrand
=
brand_id
;
if
(
!
this
.
vehiYear
){
return
false
;
}
this
.
carTrim
=
this
.
carModel
=
[];
this
.
loader
=
true
;
const
thisObj
=
this
;
thisObj
.
carBrands
.
forEach
(
function
(
brandData
,
index
)
{
...
...
@@ -245,7 +284,7 @@ export class DashboardComponent implements OnInit {
}
});
this
.
webService
.
post_data
(
'getVehicleModel'
,{
'vehBrand_id'
:
brand_id
}).
subscribe
(
response
=>
{
this
.
webService
.
post_data
(
'getVehicleModel'
,{
'vehBrand_id'
:
brand_id
,
'type'
:
0
,
'vehiYear'
:
this
.
vehiYear
}).
subscribe
(
response
=>
{
if
(
response
.
status
==
'success'
){
this
.
carModel
=
response
.
data
;
}
...
...
@@ -253,6 +292,27 @@ export class DashboardComponent implements OnInit {
});
}
get_trims
(
event
){
const
model
=
event
.
target
.
options
[
event
.
target
.
selectedIndex
].
getAttribute
(
'modelValue'
);
this
.
loader
=
true
;
this
.
webService
.
post_data
(
'getVehicleTrim'
,{
'vehBrand_id'
:
this
.
vehiBrand
,
'vehiYear'
:
this
.
vehiYear
,
'vehiModel'
:
model
}).
subscribe
(
response
=>
{
if
(
response
.
status
==
'success'
){
this
.
carTrim
=
response
.
data
;
}
this
.
loader
=
false
;
});
}
getCustRemainders
(){
this
.
webService
.
post_data
(
'getCustRemainders'
,{
'customer_id'
:
this
.
loginDetails
.
customer_id
}).
subscribe
(
response
=>
{
if
(
response
.
status
==
'success'
){
this
.
remainders
=
response
.
data
;
}
else
{
this
.
remainders
=
false
;
}
});
}
getCustBookDetails
(){
this
.
loader
=
true
;
this
.
webService
.
post_data
(
'getCustBookDetails'
,
{
'customer_id'
:
this
.
loginDetails
.
customer_id
}).
subscribe
(
response
=>
{
...
...
@@ -297,6 +357,16 @@ export class DashboardComponent implements OnInit {
});
}
changeReminder
(
custVehId
,
status
){
this
.
loader
=
true
;
this
.
webService
.
post_data
(
'changeReminderStatus'
,
{
'customer_veh_id'
:
custVehId
,
'status'
:
status
}).
subscribe
(
response
=>
{
if
(
response
.
status
==
'success'
)
{
this
.
getCustVehDetails
();
}
this
.
loader
=
false
;
});
}
setIssueSelected
(
event
){
let
issue_id
=
event
.
target
.
attributes
.
issue_id
.
value
;
let
sub_issue_id
=
event
.
target
.
attributes
.
sub_issue_id
.
value
;
...
...
@@ -488,6 +558,8 @@ export class DashboardComponent implements OnInit {
}
addCustomerCar
(
type
,
vehicleData
,
location
){
vehicleData
[
'lastMaintanceDate'
]
=
(
vehicleData
[
'last_date'
])?(
formatDate
(
vehicleData
[
'last_date'
],
'MM/dd/yyyy'
,
'en'
)):
''
;
this
.
loader
=
true
;
let
postData
=
{
'type'
:
type
,
'customer_id'
:
this
.
loginDetails
.
customer_id
,
'vehicleData'
:
vehicleData
,
'location'
:
location
};
...
...
@@ -517,6 +589,16 @@ export class DashboardComponent implements OnInit {
});
}
changeVehicleReminder
(
params
){
this
.
loader
=
true
;
this
.
webService
.
post_data
(
'changeReminderStatus'
,
params
).
subscribe
(
response
=>
{
if
(
response
.
status
==
'success'
)
{
this
.
getCustRemainders
();
}
this
.
loader
=
false
;
});
}
optImgUpload
(
image_id
,
event
){
let
reader
=
new
FileReader
();
let
optionalImg
:
any
=
event
.
target
.
files
[
0
];
...
...
@@ -552,7 +634,7 @@ export class DashboardComponent implements OnInit {
resetVehicleForm
(){
this
.
vehicleVinAddForm
.
reset
();
this
.
vehicleDetailsAddForm
.
reset
({
maker
:
''
,
modelYear
:
''
,
modelName
:
''
,
location
:
''
maker
:
''
,
modelYear
:
''
,
modelName
:
''
,
location
:
''
,
last_date
:
''
,
maintanence_interval
:
''
,
engine
:
''
,
trim
:
''
});
}
...
...
@@ -689,7 +771,6 @@ getQuote(){
this
.
webService
.
post_data
(
'getNearByMechanics'
,
searchData
).
subscribe
(
response
=>
{
if
(
response
.
status
==
'1'
){
this
.
mechanicData
=
response
.
mechanic_data
;
console
.
log
(
this
.
mechanicData
)
this
.
dateSection
.
push
(
new
Date
(
this
.
today
.
setDate
(
this
.
today
.
getDate
())));
this
.
dateSection
.
push
(
new
Date
(
this
.
today
.
setDate
(
this
.
today
.
getDate
()
+
1
)));
...
...
@@ -884,6 +965,10 @@ cancelBooking(booking: any){
});
}
purchase
(
carId
){
this
.
goToPage
(
'productlist'
,{
'car_id'
:
carId
})
}
mechanicQuoteAccept
(
event
,
booking_id
,
mechanic_id
){
if
(
!
booking_id
||
!
mechanic_id
){
return
false
;
...
...
@@ -907,6 +992,13 @@ cnfdeleteCustomerCar(customer_id,vehicle_id){
this
.
showConfirmPopUp
(
'deleteCustomerCar'
,{
'customer_id'
:
customer_id
,
'customer_veh_id'
:
vehicle_id
});
}
cnfdeleteVehReminder
(
customer_veh_id
,
status
){
if
(
!
customer_veh_id
){
return
false
;
}
this
.
showConfirmPopUp
(
'changeVehicleReminder'
,{
'customer_veh_id'
:
customer_veh_id
,
'status'
:
status
});
}
showConfirmPopUp
(
fn_name
:
string
,
param
:
any
){
if
(
fn_name
===
''
){
return
false
;
...
...
@@ -955,6 +1047,11 @@ checkboxChange(index,mechanic_id,event,estimate){
}
}
goToPage
(
path
,
data
=
null
){
this
.
router
.
navigate
([
path
],{
queryParams
:
data
});
document
.
body
.
scrollTop
=
document
.
documentElement
.
scrollTop
=
0
;
}
scrollToTop
(
id
){
$
(
'#'
+
id
).
stop
().
animate
({
scrollTop
:
0
},
800
);
}
...
...
src/app/home/index/index.component.html
View file @
be42bb4b
...
...
@@ -15,6 +15,7 @@
</div>
</div>
</section>
<section
#
targetwrk
><div
style=
"height:35px;opacity:0;"
></div></section>
<section
class=
"how_it_works"
>
<h3>
HOW IT WORKS
</h3>
<hr>
...
...
@@ -63,7 +64,7 @@
<img
src=
"assets/images/asset_icon4.png"
>
<h4>
Diagnosis Trouble Codes
</h4>
<p>
Find out what your code really means and what you can expect to pay.
</p>
<button
class=
"learn_more"
>
<button
class=
"learn_more"
(
click
)="
diagnseCde
()"
>
GO
</button>
</div>
...
...
@@ -72,7 +73,7 @@
<img
src=
"assets/images/asset_icon5.png"
>
<h4>
Parts and Replacement
</h4>
<p>
Review causes, symptoms, and estimate repair costs.
</p>
<button
class=
"learn_more"
>
<button
class=
"learn_more"
(
click
)="
goToPage
('
purchaseHome
')"
>
GO
</button>
</div>
...
...
@@ -81,7 +82,7 @@
<img
src=
"assets/images/asset_icon6.png"
>
<h4>
Maintenance Schedules
</h4>
<p>
Need to schedule a maintenance check? You’re in the right place.
</p>
<button
class=
"learn_more"
>
<button
class=
"learn_more"
(
click
)="
maintnceSchule
()"
>
GO
</button>
</div>
...
...
@@ -257,7 +258,7 @@
<h3>
VEHICLE INFORMATION
</h3>
<div
class=
"row"
>
<div
class=
"col-md-6"
>
<select
formControlName=
"modelYear"
[
ngClass
]="{'
input_error
'
:
!
vehicleDataForm
.
controls
['
modelYear
'].
valid
&&
vehicleDataFormSubmit
}"
>
<select
formControlName=
"modelYear"
(
change
)="
get_vehiYear
($
event
.
target
.
value
)"
[
ngClass
]="{'
input_error
'
:
(!
vehicleDataForm
.
controls
['
modelYear
'].
valid
&&
vehicleDataForm
.
controls
['
maker
'].
valid
)
||
(!
vehicleDataForm
.
controls
['
modelYear
'].
valid
&&
vehicleDataFormSubmit
)
}"
>
<option
value=
""
class=
"hide"
>
YEAR
</option>
<option
*
ngFor=
"let date of modelDates"
>
{{date}}
</option>
</select>
...
...
@@ -271,13 +272,16 @@
</div>
<div
class=
"row"
>
<div
class=
"col-md-6"
>
<select
formControlName=
"modelName"
[
ngClass
]="{'
input_error
'
:
!
vehicleDataForm
.
controls
['
modelName
'].
valid
&&
vehicleDataFormSubmit
}"
>
<select
*
ngIf=
"carModel && carModel.length > 0"
(
change
)="
get_trims
($
event
.
target
.
value
)"
formControlName=
"modelName"
[
ngClass
]="{'
input_error
'
:
!
vehicleDataForm
.
controls
['
modelName
'].
valid
&&
vehicleDataFormSubmit
}"
>
<option
value=
""
class=
"hide"
>
MODEL
</option>
<option
*
ngFor=
"let car_models of carModel"
>
{{car_models.model}}
</option>
<option
*
ngFor=
"let car_models of carModel"
value=
"{{car_models.veh_model_id}}"
>
{{car_models.model}}
</option>
</select>
</div>
<div
class=
"col-md-6"
>
<input
formControlName=
"milage"
placeholder=
"APPROX VEHICLE MILEAGE"
type=
""
>
<select
*
ngIf=
"carTrim && carTrim.length > 0"
formControlName=
"trim"
[
ngClass
]="{'
input_error
'
:
!
vehicleDataForm
.
controls
['
modelName
'].
valid
&&
vehicleDataFormSubmit
}"
>
<option
value=
""
class=
"hide"
>
TRIM
</option>
<option
*
ngFor=
"let car_trim of carTrim"
>
{{car_trim.trim}}
</option>
</select>
</div>
</div>
<h6
class=
"textLeft pb10"
>
OPTIONAL
</h6>
...
...
@@ -286,7 +290,7 @@
<input
formControlName=
"emgine"
placeholder=
"ENGINE"
type=
""
>
</div>
<div
class=
"col-md-6"
>
<input
formControlName=
"
trim"
placeholder=
"TRIM
"
type=
""
>
<input
formControlName=
"
milage"
placeholder=
"APPROX VEHICLE MILEAGE
"
type=
""
>
</div>
</div>
<div
class=
"row"
>
...
...
@@ -601,14 +605,14 @@
<span
*
ngFor=
"let time of mechanic.scheduleTiming"
>
<li
*
ngIf=
"(time > currentTime && ((dateSection[0] | date: 'dd') == currentDate))"
id=
"custom_check_button"
>
<label>
<input
type=
"radio"
name=
"scheduleTime"
(
click
)="
getSchedule
(
tim
e
,'
0
');
<input
type=
"radio"
value=
"{{time | date:'hh:mm a'}}"
name=
"scheduleTime"
(
click
)="
getSchedule
($
event
.
target
.
valu
e
,'
0
');
scheduleDateInit =
true;
scheduleMechanic =
mechanic.mechanic_id"
>
<p>
{{time | date:'hh:mm a'}}
</p>
</label>
</li>
<li
*
ngIf=
"((dateSection[0] | date: 'dd') != currentDate)"
id=
"custom_check_button"
>
<label>
<input
type=
"radio"
name=
"scheduleTime"
(
click
)="
getSchedule
(
tim
e
,'
0
');
<input
type=
"radio"
value=
"{{time | date:'hh:mm a'}}"
name=
"scheduleTime"
(
click
)="
getSchedule
($
event
.
target
.
valu
e
,'
0
');
scheduleDateInit =
true;
scheduleMechanic =
mechanic.mechanic_id"
>
<p>
{{time | date:'hh:mm a'}}
</p>
</label>
...
...
@@ -618,7 +622,7 @@
<ul
id=
"scroll_1_{{i}}"
>
<li
*
ngFor=
"let time of mechanic.scheduleTiming"
id=
"custom_check_button"
>
<label>
<input
type=
"radio"
name=
"scheduleTime"
(
click
)="
getSchedule
(
tim
e
,'
1
');
<input
type=
"radio"
value=
"{{time | date:'hh:mm a'}}"
name=
"scheduleTime"
(
click
)="
getSchedule
($
event
.
target
.
valu
e
,'
1
');
scheduleDateInit =
true;
scheduleMechanic =
mechanic.mechanic_id"
>
<p>
{{time | date:'hh:mm a'}}
</p>
</label>
...
...
src/app/home/index/index.component.ts
View file @
be42bb4b
...
...
@@ -36,6 +36,10 @@ export class IndexComponent implements OnInit {
autocomplete
:
any
;
cfautocomplete
:
any
;
vehiYear
:
any
;
vehiBrand
:
any
;
vehiModel
:
any
;
carTrim
:
any
;
searchLocError
:
boolean
;
addresssearchLocError
:
boolean
;
@
ViewChild
(
"goTostep0"
)
public
goTostep0Ref
:
ElementRef
;
...
...
@@ -47,6 +51,7 @@ export class IndexComponent implements OnInit {
@
ViewChild
(
"addressLocSearch"
)
public
addressElementRef
:
ElementRef
;
@
ViewChild
(
"indexLoginModal"
)
loginModalRef
:
ElementRef
;
@
ViewChild
(
"closeQuoteWizard"
)
closeQuoteWizardRef
:
ElementRef
;
@
ViewChild
(
'targetwrk'
)
public
targetEl
:
ElementRef
;
//Vehicle Details: TAB 2
vehicleDataForm
;
...
...
@@ -72,6 +77,7 @@ export class IndexComponent implements OnInit {
mechanics
:
string
=
''
;
dateSection
:
any
[]
=
new
Array
();
selMechanics
:
any
[]
=
new
Array
();
selectedElement
:
any
=
new
Array
();
imageServer
:
string
;
mechanicData
:
any
;
autoSchedule
:
boolean
;
...
...
@@ -93,22 +99,34 @@ export class IndexComponent implements OnInit {
public
ngZone
:
NgZone
,
public
webService
:
WebService
,
public
mapsAPILoader
:
MapsAPILoader
,
private
route
:
ActivatedRoute
,
public
subjectService
:
SubjectService
)
{
this
.
step
=
0
;
this
.
issuesData
=
false
;
this
.
autoSchedule
=
false
;
this
.
imageServer
=
ImageStorage
;
this
.
currDate
=
new
Date
();
this
.
nextDate
=
new
Date
();
this
.
issuesData
=
false
;
this
.
imageServer
=
ImageStorage
;
this
.
loginDetails
=
false
;
this
.
searchLocError
=
false
;
this
.
addresssearchLocError
=
false
;
this
.
autoSchedule
=
false
;
this
.
showLeftArrow
=
false
;
this
.
searchLocError
=
false
;
this
.
showRightArrow
=
true
;
this
.
scheduleDateInit
=
false
;
this
.
scheduleMechanic
=
false
;
this
.
optionalDescription
=
''
;
this
.
vehicleDataFormSubmit
=
false
;
this
.
addresssearchLocError
=
false
;
this
.
route
.
params
.
subscribe
(
val
=>
{
this
.
route
.
queryParams
.
subscribe
(
params
=>
{
if
(
params
[
'tab'
]
==
'1'
){
setTimeout
(
()
=>
{
this
.
targetEl
.
nativeElement
.
scrollIntoView
({
behavior
:
"smooth"
,
block
:
"start"
,
inline
:
"nearest"
});
this
.
router
.
navigate
([
'.'
],{
relativeTo
:
this
.
route
,
queryParams
:{}});
},
400
);
}
})
});
}
ngOnInit
()
{
...
...
@@ -167,7 +185,23 @@ export class IndexComponent implements OnInit {
});
}
get_vehiYear
(
year
){
if
(
year
==
''
){
return
;
}
this
.
carTrim
=
this
.
carModel
=
[];
this
.
vehiYear
=
year
;
if
(
this
.
vehiBrand
){
this
.
get_model
(
this
.
vehiBrand
);
}
}
get_model
(
brand_id
)
{
this
.
vehiBrand
=
brand_id
;
if
(
!
this
.
vehiYear
){
return
false
;
}
this
.
carTrim
=
this
.
carModel
=
[];
this
.
loader
=
true
;
const
thisObj
=
this
;
thisObj
.
carBrands
.
forEach
(
function
(
brandData
,
index
)
{
...
...
@@ -176,7 +210,7 @@ export class IndexComponent implements OnInit {
}
});
this
.
webService
.
post_data
(
'getVehicleModel'
,{
'vehBrand_id'
:
brand_id
}).
subscribe
(
response
=>
{
this
.
webService
.
post_data
(
'getVehicleModel'
,{
'vehBrand_id'
:
brand_id
,
'vehiYear'
:
this
.
vehiYear
}).
subscribe
(
response
=>
{
if
(
response
.
status
==
'success'
){
this
.
carModel
=
response
.
data
;
}
...
...
@@ -184,6 +218,16 @@ export class IndexComponent implements OnInit {
});
}
get_trims
(
model
){
this
.
loader
=
true
;
this
.
webService
.
post_data
(
'getVehicleTrim'
,{
'vehBrand_id'
:
this
.
vehiBrand
,
'vehiYear'
:
this
.
vehiYear
,
'vehiModel'
:
model
}).
subscribe
(
response
=>
{
if
(
response
.
status
==
'success'
){
this
.
carTrim
=
response
.
data
;
}
this
.
loader
=
false
;
});
}
getVehicleLoc
(
lastLoc
){
if
(
lastLoc
==
''
){
this
.
searchLocError
=
true
;
...
...
@@ -229,6 +273,19 @@ export class IndexComponent implements OnInit {
this
.
vehicleDataFormSubmit
=
false
;
}
maintnceSchule
(){
this
.
goToPage
(
'dashboard'
,{
"redrct_tab"
:
"reminder"
});
}
diagnseCde
(){
this
.
goToPage
(
'dashboard'
,{
"redrct_tab"
:
"vehicle"
});
}
goToPage
(
path
,
data
=
null
){
this
.
router
.
navigate
([
path
],{
queryParams
:
data
});
document
.
body
.
scrollTop
=
document
.
documentElement
.
scrollTop
=
0
;
}
getIssueData
(){
const
This
=
this
;
this
.
loader
=
true
;
...
...
src/app/navbar/navbar.component.html
View file @
be42bb4b
...
...
@@ -31,7 +31,7 @@
</li>
<li
class=
"nav-item"
>
<a
class=
"nav-link"
(
click
)="
goToPage
('
purchaseHome
')"
>
PURCHASE
PURCHASE
PARTS AND ACCESSORIES
</a>
</li>
<li
class=
"nav-item"
>
...
...
@@ -40,24 +40,31 @@
CAR OWNERS
</div>
<div
class=
"dropdown-menu"
>
<
a
class=
"dropdown-item"
*
ngIf=
"loginDetails"
(
click
)="
goToPage
('
dashboard
')"
>
My Dashboard
</a
>
<a
class=
"dropdown-item"
(
click
)="
goToPage
('
purchaseHome
')"
>
Find parts and accessories
</a
>
<
div
class=
"inner_drop"
>
<div
class=
"arrow-up"
></div
>
<a
class=
"dropdown-item"
>
Rewards
</a>
<a
class=
"dropdown-item"
>
Messages
</a>
<a
class=
"dropdown-item"
>
Request a Service
</a>
<a
class=
"dropdown-item"
>
Repair/Maintenance Service reminder
</a>
<a
class=
"dropdown-item"
>
Road Service
</a>
<a
class=
"dropdown-item"
(
click
)="
requestSrvce
()"
>
Request a Service
</a>
<a
class=
"dropdown-item"
(
click
)="
goToPage
('
getapp
')"
>
Emergency / Road Assistance Services
</a>
<a
class=
"dropdown-item"
(
click
)="
howitwrks
()"
>
How it works
</a>
</div>
</div>
</a>
</li>
<li
class=
"nav-item"
data-toggle=
"modal"
data-target=
"#serviceprovider"
>
<a
class=
"nav-link base_arrow"
>
AUTO SERVICE PROVIDER
</a>
</li>
<!-- <li class="nav-item" data-toggle="modal" data-target="#serviceprovider"> -->
<li
class=
"nav-item"
>
<a
class=
"nav-link"
(
click
)="
goToPage
('
getapp
')"
>
GET THE APP
<a
class=
"nav-link base_arrow dropdown"
data-toggle=
"dropdown"
>
<div
class=
"dropdown-toggle"
>
AUTO SERVICE PROVIDER
</div>
<div
class=
"dropdown-menu"
>
<div
class=
"inner_drop"
>
<div
class=
"arrow-up"
></div>
<a
class=
"dropdown-item"
(
click
)="
providerSignIn
()"
>
Sign In
</a>
<a
class=
"dropdown-item"
(
click
)="
providerSignUp
()"
>
Sign Up
</a>
<a
class=
"dropdown-item"
>
Benefit
</a>
</div>
</div>
</a>
</li>
<li
class=
"nav-item"
*
ngIf=
"!loginDetails"
>
...
...
@@ -83,8 +90,11 @@
<div
class=
"clear"
></div>
</div>
<div
class=
"dropdown-menu"
>
<div
class=
"inner_drop"
style=
"top:20px;"
>
<div
class=
"arrow-up"
></div>
<a
class=
"dropdown-item"
(
click
)="
logout
()"
>
Logout
</a>
</div>
</div>
</a>
</li>
</ul>
...
...
@@ -355,7 +365,6 @@
<!-- SERVICE-PROVIDER-MODAL-STARTS-->
<div
class=
"modal"
id=
"serviceprovider"
style=
"z-index: 99999 !important;"
>
<div
class=
"modal-dialog modal-full"
>
<div
class=
"modal-content login_modal_wrapper"
malihu-scrollbar
[
scrollbarOptions
]="
scrollbarOptions
"
>
...
...
@@ -431,8 +440,11 @@
<strong>
{{spSignupResponse.message}}
<br></strong>
</div>
<div
class=
"row"
>
<div
class=
"col-md-12"
>
<button
type=
"submit"
class=
"log_btn"
(
click
)="
spSignupSubmitClick =
true"
>
Submit
</button>
<div
class=
"col-md-6"
>
<button
class=
"log_btn"
(
click
)="
providerSignIn
()"
>
Sign In
</button>
</div>
<div
class=
"col-md-6"
>
<button
type=
"submit"
class=
"log_btn"
(
click
)="
spSignupSubmitClick =
true"
>
Sign Up
</button>
</div>
</div>
</div>
...
...
src/app/navbar/navbar.component.scss
View file @
be42bb4b
...
...
@@ -14,21 +14,22 @@
max-width
:
calc
(
100%
-
10%
);
.navbar-brand
{
img
{
width
:
1
8
0px
;
width
:
1
4
0px
;
}
}
.navbar-nav
{
li
{
margin-right
:
3
0px
;
margin-right
:
2
0px
;
a
{
color
:
#fff
;
position
:
relative
;
top
:
5px
;
top
:
10px
;
font-size
:
13px
;
.dropdown-menu
{
a
{
top
:
0px
;
padding-top
:
5
px
;
padding-bottom
:
5
px
;
padding-top
:
8
px
;
padding-bottom
:
8
px
;
}
}
}
...
...
@@ -74,12 +75,31 @@
border
:
none
;
margin
:
0px
;
padding
:
0px
;
background
:
transparent
;
.inner_drop
{
border-radius
:
0px
;
-webkit-border-radius
:
0px
;
-moz-border-radius
:
0px
;
-ms-border-radius
:
0px
;
-o-border-radius
:
0px
;
background
:
#2655bf
;
-webkit-box-shadow
:
0px
0px
5px
0px
rgba
(
0
,
0
,
0
,
0
.5
);
-moz-box-shadow
:
0px
0px
5px
0px
rgba
(
0
,
0
,
0
,
0
.5
);
box-shadow
:
0px
0px
5px
0px
rgba
(
0
,
0
,
0
,
0
.5
);
position
:
relative
;
top
:
40px
;
.arrow-up
{
width
:
0
;
height
:
0
;
border-left
:
15px
solid
transparent
;
border-right
:
15px
solid
transparent
;
border-bottom
:
15px
solid
#2655bf
;
position
:
absolute
;
left
:
20px
;
top
:
-15px
;
}
}
cursor
:
pointer
;
a
{
&
:hover
{
...
...
@@ -224,6 +244,7 @@
-ms-border-radius
:
10px
;
-o-border-radius
:
10px
;
text-align
:
center
;
padding-left
:
20px
;
option
{
text-align
:
center
;
}
...
...
src/app/navbar/navbar.component.ts
View file @
be42bb4b
...
...
@@ -64,9 +64,9 @@ export class NavbarComponent implements OnInit {
ngOnInit
()
{
this
.
subjectService
.
getLoginData
().
subscribe
(
loginData
=>
{
this
.
loginDetails
=
JSON
.
parse
(
this
.
webService
.
getLocalStorageItem
(
'userData'
));
if
(
!
this
.
loginDetails
){
this
.
facebookSignUp
();
}
//
if(!this.loginDetails){
//
this.facebookSignUp();
//
}
});
this
.
getMechanicShops
();
...
...
@@ -103,6 +103,9 @@ export class NavbarComponent implements OnInit {
signInWithFB
():
void
{
this
.
authService
.
signIn
(
FacebookLoginProvider
.
PROVIDER_ID
);
if
(
!
this
.
loginDetails
){
this
.
facebookSignUp
();
}
}
signOut
():
void
{
...
...
@@ -112,6 +115,7 @@ export class NavbarComponent implements OnInit {
facebookSignUp
(){
const
This
=
this
;
this
.
authService
.
authState
.
subscribe
((
user
)
=>
{
if
(
user
&&
user
!=
null
&&
user
!=
undefined
){
this
.
user
=
user
;
let
data
:
any
=
new
Array
();
data
=
{
'first_name'
:
this
.
user
.
firstName
,
'last_name'
:
this
.
user
.
lastName
,
'email'
:
this
.
user
.
email
,
'image_url'
:
this
.
user
.
photoUrl
};
...
...
@@ -135,6 +139,7 @@ export class NavbarComponent implements OnInit {
},
2000
)
});
}
}
});
}
...
...
@@ -143,6 +148,14 @@ export class NavbarComponent implements OnInit {
this
.
signupModal
.
nativeElement
.
click
();
}
providerSignIn
(){
window
.
open
(
'https://carfixxers.com/admin/Login'
,
'_blank'
);
}
providerSignUp
(){
$
(
"#serviceprovider"
).
modal
(
'show'
);
}
getMechanicShops
(){
this
.
loader
=
true
;
this
.
webService
.
get_data
(
'getMechanicShops'
).
subscribe
(
response
=>
{
...
...
@@ -303,8 +316,17 @@ export class NavbarComponent implements OnInit {
else
sticky
.
removeClass
(
'scrolled_navbar'
);
});
}
requestSrvce
(){
this
.
goToPage
(
'dashboard'
,{
"redrct_tab"
:
"vehicle"
});
}
howitwrks
(){
this
.
goToPage
(
'index'
,{
"tab"
:
"1"
});
}
goToPage
(
path
,
data
=
null
){
this
.
router
.
navigate
ByUrl
(
path
,{
queryParams
:
data
});
this
.
router
.
navigate
([
path
],{
queryParams
:
data
});
document
.
body
.
scrollTop
=
document
.
documentElement
.
scrollTop
=
0
;
}
...
...
@@ -313,7 +335,6 @@ export class NavbarComponent implements OnInit {
const
userData
=
this
.
webService
.
getLocalStorageItem
(
'userData'
);
this
.
webService
.
removeLocalStorageItem
(
userData
);
this
.
subjectService
.
sendLoginData
(
false
);
this
.
router
.
navigate
([
'../index'
]);
}
...
...
src/app/purchase/cart/cart.component.ts
View file @
be42bb4b
...
...
@@ -167,15 +167,15 @@ export class CartComponent implements OnInit {
if
(
cartId
<=
0
||
product_id
<=
0
||
total_amount
<=
0
||
quantity
<=
0
||
amount
<=
0
){
return
false
;
}
this
.
loader
=
true
;
this
.
webService
.
post_data
(
'removeCartPrdt'
,{
'cart_id'
:
cartId
}).
subscribe
(
response
=>
{
if
(
response
.
status
==
'success'
){
this
.
product_data
=
{
amount
:
amount
,
product_id
:
product_id
,
quantity
:
quantity
,
total_amount
:
total_amount
};
//
this.loader = true;
//
this.webService.post_data('removeCartPrdt',{'cart_id':cartId}).subscribe(response => {
//
if(response.status == 'success'){
this
.
product_data
=
{
amount
:
amount
,
product_id
:
product_id
,
quantity
:
quantity
,
total_amount
:
total_amount
,
cart_id
:
cartId
};
this
.
webService
.
setLocalStorageItem
(
'productDetails'
,
JSON
.
stringify
(
this
.
product_data
));
this
.
goToPage
(
'address'
,
''
);
}
this
.
loader
=
false
;
});
//
}
//
this.loader = false;
//
});
}
goToPage
(
path
,
data
=
null
){
...
...
src/app/purchase/orders/orders.component.html
View file @
be42bb4b
...
...
@@ -26,6 +26,8 @@
<div
class=
"col-md-6"
>
<div
class=
"price_details"
>
<h5>
$ {{book.amount}}
</h5>
<h5
*
ngIf=
"( book.status == '1')"
>
<button
class=
"btn btn-warning btn-sm"
>
Payment Processing
</button></h5>
<h5
*
ngIf=
"( book.status == '8') || ( book.status == '9')"
>
<button
class=
"btn btn-danger btn-sm"
>
{{book.status == '8' ? 'Order Deleted': 'Payment Failed'}}
</button></h5>
<h4
*
ngIf=
"( book.status == '2' || book.status == '3' || book.status == '4')"
>
{{book.expected_delivery == null || book.expected_delivery == '' ? 'Your Expected Delivery date will Update soon': 'Delivery expected by '+ (book.expected_delivery | date: "EEE, MMMM dd, yyyy") }}
<br>
<div
*
ngIf=
"book.status == '2'"
>
Your Order is Placed
</div>
<div
*
ngIf=
"book.status == '3'"
>
Your item is Packed
</div>
...
...
@@ -55,7 +57,7 @@
</div>
</div>
<div
class=
"bottom_product_list"
>
<
!-- <h4>Audi Q7 <span>( Similar Results )</span></h4> --
>
<
h4>
Trending Products
</h4
>
<div
class=
"loader_overlay"
*
ngIf=
"trend_loader"
></div>
<ngx-carousel
[
inputs
]="
carouselTile
"
(
carouselLoad
)="
carouselTileLoad
()"
*
ngIf=
"trendingProductData"
>
<ngx-tile
NgxCarouselItem
*
ngFor=
"let prdt of trendingProductData"
>
...
...
src/app/purchase/productdetails/productdetails.component.html
View file @
be42bb4b
...
...
@@ -110,6 +110,7 @@
</div>
</div>
<div
class=
"bottom_product_list"
>
<h4>
Trending Products
</h4>
<div
class=
"loader_overlay"
*
ngIf=
"loader2"
></div>
<ngx-carousel
[
inputs
]="
carouselTile
"
(
carouselLoad
)="
carouselTileLoad
()"
*
ngIf=
"trendingProductData"
>
<ngx-tile
NgxCarouselItem
*
ngFor=
"let prdt of trendingProductData"
>
...
...
src/app/purchase/productdetails/productdetails.component.scss
View file @
be42bb4b
...
...
@@ -254,6 +254,16 @@
.bottom_product_list
{
background
:
#fff
;
position
:
relative
;
h4
{
color
:
#262626
;
margin
:
0px
;
padding
:
15px
;
font-size
:
16px
;
padding-bottom
:
0px
;
span
{
color
:
#92a1b1
;
}
}
.leftRs
{
position
:
absolute
;
left
:
10px
;
...
...
src/app/purchase/productlist/productlist.component.html
View file @
be42bb4b
...
...
@@ -28,27 +28,33 @@
<h6
href=
"#ac3"
data-toggle=
"collapse"
>
Vehicle Information
</h6>
<ul
id=
"ac3"
class=
"collapse in show"
>
<h6
class=
"backgroundNone borderNone"
>
<select
(
change
)="
get_year
($
event
.
target
.
value
)"
>
<option
[
attr
.
value
]="
0
"
[
attr
.
selected
]=
true
[
attr
.
disabled
]="
true
"
>
Select Year
</option>
<option
*
ngFor=
"let date of modelDates"
>
{{date}}
</option>
<select
(
change
)="
get_year
($
event
.
target
.
value
)"
[
ngClass
]="{'
input_error
'
:
errorYear
}"
>
<option
[
value
]="
0
"
[
disabled
]="
true
"
>
Select Year
</option>
<option
*
ngFor=
"let date of modelDates"
[
selected
]="
date =
=
carFilter
['
year
']"
>
{{date}}
</option>
</select>
</h6>
<h6
class=
"backgroundNone borderNone"
>
<select
(
change
)="
get_model
($
event
.
target
.
value
)"
>
<option
[
attr
.
value
]="
0
"
[
attr
.
selected
]=
true
[
attr
.
disabled
]="
true
"
>
Select Maker
</option>
<option
*
ngFor=
"let brands of carBrands"
value=
"{{brands.veh_brand_id}}"
>
<option
[
value
]="
0
"
[
selected
]="
true
"
[
disabled
]="
true
"
>
Select Maker
</option>
<option
*
ngFor=
"let brands of carBrands"
[
selected
]="
brands
.
veh_brand_id =
=
carFilter
['
make
']"
value=
"{{brands.veh_brand_id}}"
>
{{brands.maker}}
</option>
</select>
</h6>
<h6
class=
"backgroundNone borderNone"
>
<select
(
change
)="
getModelResult
($
event
.
target
.
value
)"
*
ngIf=
"modelShow"
>
<option
[
attr
.
value
]="
0
"
[
attr
.
selected
]=
true
[
attr
.
disabled
]="
true
"
>
Select Model
</option>
<option
*
ngFor=
"let models of carModel"
value=
"{{models.veh_moda
l_id}}"
>
<select
(
change
)="
getModelResult
($
event
.
target
.
value
)"
*
ngIf=
"modelShow
&& carModel && carModel.length > 0
"
>
<option
[
value
]="
0
"
[
selected
]="!
carFilter
['
model
']?
true:false
"
[
disabled
]="
true
"
>
Select Model
</option>
<option
*
ngFor=
"let models of carModel"
[
selected
]="
models
.
veh_model_id =
=
carFilter
['
model
']"
value=
"{{models.veh_mode
l_id}}"
>
{{models.model}}
</option>
</select>
</h6>
<h6
class=
"backgroundNone borderNone"
>
<select
(
change
)="
getTrimData
($
event
.
target
.
value
)"
*
ngIf=
"carTrim && carTrim.length > 0"
>
<option
value=
""
class=
"hide"
>
TRIM
</option>
<option
*
ngFor=
"let car_trim of carTrim"
[
selected
]="
car_trim
.
trim =
=
carFilter
['
trim
']"
value=
"{{car_trim.trim}}"
>
{{car_trim.trim}}
</option>
</select>
</h6>
</ul>
</div>
<div
class=
"purchase_content_section"
>
...
...
src/app/purchase/productlist/productlist.component.ts
View file @
be42bb4b
...
...
@@ -11,6 +11,7 @@ import { ImageStorage } from '../../../environments/server.config';
})
export
class
ProductlistComponent
implements
OnInit
{
loader
:
boolean
;
errorYear
:
boolean
;
searchKey
:
string
;
imageServer
:
any
;
productArray
:
any
[]
=
new
Array
();
...
...
@@ -25,14 +26,20 @@ export class ProductlistComponent implements OnInit {
modelDates
:
number
[]
=
new
Array
();
carBrands
:
any
;
carModel
:
any
;
vehiBrand
:
any
;
vehiModel
:
any
;
vehiYear
:
any
;
modelName
:
any
;
modelShow
:
boolean
;
carFilter
:
any
=
new
Array
();
carTrim
:
any
;
constructor
(
private
router
:
Router
,
private
route
:
ActivatedRoute
,
public
webService
:
WebService
){
this
.
loader
=
true
;
this
.
errorYear
=
false
;
this
.
modelShow
=
false
;
this
.
productArray
=
[];
this
.
filterParam
=
{
"key"
:
''
,
"brand_id"
:
Array
(),
"minPrice"
:
''
,
"maxPrice"
:
''
,
'page'
:
1
};
...
...
@@ -43,7 +50,14 @@ export class ProductlistComponent implements OnInit {
this
.
searchKey
=
params
[
'key'
];
this
.
filterParam
.
key
=
this
.
searchKey
;
this
.
filterParam
.
page
=
this
.
page
;
if
(
this
.
searchKey
){
this
.
getProductDetails
(
this
.
filterParam
);
}
if
(
params
[
'car_id'
]){
this
.
carFilter
[
'car_id'
]
=
params
[
'car_id'
];
this
.
purchaseFilter
();
}
});
});
if
(
this
.
searchKey
==
''
){
...
...
@@ -78,9 +92,16 @@ export class ProductlistComponent implements OnInit {
}
get_model
(
brand_id
)
{
this
.
vehiBrand
=
brand_id
;
if
(
!
this
.
vehiYear
){
this
.
errorYear
=
true
;
return
false
;
}
this
.
carTrim
=
this
.
carModel
=
[];
this
.
page
=
1
;
this
.
loader
=
true
;
this
.
webService
.
post_data
(
'getVehicleModel'
,{
'vehBrand_id'
:
brand_id
}).
subscribe
(
response
=>
{
this
.
vehiBrand
=
brand_id
;
this
.
webService
.
post_data
(
'getVehicleModel'
,{
'vehBrand_id'
:
this
.
vehiBrand
,
'type'
:
0
,
'vehiYear'
:
this
.
filterParam
.
year
}).
subscribe
(
response
=>
{
if
(
response
.
status
==
'success'
){
this
.
modelShow
=
true
;
this
.
carModel
=
response
.
data
;
...
...
@@ -93,9 +114,23 @@ export class ProductlistComponent implements OnInit {
}
getModelResult
(
modelId
){
this
.
vehiModel
=
this
.
filterParam
.
model
=
modelId
;
this
.
loader
=
true
;
this
.
page
=
1
;
this
.
filterParam
.
page
=
this
.
page
;
this
.
webService
.
post_data
(
'getVehicleTrim'
,{
'vehBrand_id'
:
this
.
vehiBrand
,
'vehiYear'
:
this
.
vehiYear
,
'vehiModel'
:
this
.
vehiModel
}).
subscribe
(
response
=>
{
if
(
response
.
status
==
'success'
){
this
.
carTrim
=
response
.
data
;
}
this
.
loader
=
false
;
})
this
.
getProductDetails
(
this
.
filterParam
);
}
getTrimData
(
trim
){
this
.
page
=
1
;
this
.
filterParam
.
page
=
this
.
page
;
this
.
filterParam
.
model
=
modelId
;
this
.
filterParam
.
trim
=
trim
;
this
.
getProductDetails
(
this
.
filterParam
);
}
...
...
@@ -173,9 +208,42 @@ export class ProductlistComponent implements OnInit {
}
get_year
(
year
){
this
.
carModel
=
this
.
carTrim
=
[];
this
.
page
=
1
;
this
.
filterParam
.
page
=
this
.
page
;
this
.
filterParam
.
year
=
year
;
this
.
vehiYear
=
year
;
this
.
errorYear
=
false
;
this
.
getProductDetails
(
this
.
filterParam
);
if
(
this
.
vehiBrand
){
this
.
get_model
(
this
.
vehiBrand
);
}
if
(
this
.
vehiModel
){
this
.
getModelResult
(
this
.
vehiModel
);
}
}
purchaseFilter
(){
if
(
this
.
carFilter
[
'car_id'
]){
this
.
getCustVehDetails
(
this
.
carFilter
[
'car_id'
]);
this
.
filterParam
.
car_id
=
this
.
carFilter
[
'car_id'
];
this
.
getProductDetails
(
this
.
filterParam
);
}
}
getCustVehDetails
(
carId
){
this
.
loader
=
true
;
this
.
webService
.
post_data
(
'getCustVehDetails'
,{
'car_id'
:
carId
}).
subscribe
(
response
=>
{
if
(
response
.
status
==
'success'
){
this
.
filterParam
.
maker
=
this
.
carFilter
[
'make'
]
=
response
.
data
.
veh_brand_id
;
this
.
vehiModel
=
this
.
filterParam
.
model
=
this
.
carFilter
[
'model'
]
=
response
.
data
.
veh_modal_id
;
this
.
filterParam
.
trim
=
this
.
carFilter
[
'trim'
]
=
response
.
data
.
trim
;
this
.
vehiYear
=
this
.
filterParam
.
year
=
this
.
carFilter
[
'year'
]
=
response
.
data
.
year
;
}
this
.
loader
=
false
;
this
.
get_model
(
response
.
data
.
veh_brand_id
);
this
.
getModelResult
(
this
.
vehiModel
);
})
}
}
src/app/purchase/purchase-home/purchase-home.component.scss
View file @
be42bb4b
...
...
@@ -245,7 +245,7 @@
li
{
list-style
:
none
;
padding
:
10px
;
width
:
calc
(
100%
-
75%
)
!
important
;
width
:
calc
(
100%
-
75%
);
display
:
inline-block
;
.inner_div_product
{
border
:
1px
solid
#eeeeee
;
...
...
src/app/purchase/purchase.module.ts
View file @
be42bb4b
import
{
NgModule
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
import
{
HttpModule
}
from
'@angular/http'
;
import
{
ReactiveFormsModule
,
FormsModule
}
from
'@angular/forms'
;
import
{
ProductlistComponent
}
from
'./productlist/productlist.component'
;
import
{
ProductdetailsComponent
}
from
'./productdetails/productdetails.component'
;
...
...
@@ -33,6 +34,7 @@ import { PurchaseHomeComponent } from './purchase-home/purchase-home.component';
ReactiveFormsModule
,
InfiniteScrollModule
,
TooltipModule
,
HttpModule
,
MalihuScrollbarModule
.
forRoot
()
]
})
...
...
src/app/purchase/summary/summary.component.ts
View file @
be42bb4b
...
...
@@ -86,9 +86,10 @@ export class SummaryComponent implements OnInit {
paymentButton
(){
this
.
loader
=
true
;
this
.
prdtData
.
customer_id
=
this
.
loginDetails
.
customer_id
;
let
cart_id
=
(
this
.
prdtData
.
cart_id
)?
'/'
+
this
.
prdtData
.
cart_id
:
''
;
this
.
webService
.
post_data
(
'initOrderBooking'
,{
'data'
:
this
.
prdtData
}).
subscribe
(
response
=>
{
if
(
response
.
status
==
'success'
){
document
.
location
.
href
=
this
.
serverUrl
+
'orderPayNow/'
+
response
.
data
;
document
.
location
.
href
=
this
.
serverUrl
+
'orderPayNow/'
+
response
.
data
+
cart_id
;
}
else
{
this
.
loader
=
false
;
this
.
failureModelRef
.
nativeElement
.
click
();
...
...
src/app/purchase/track/track.component.html
View file @
be42bb4b
...
...
@@ -72,7 +72,9 @@
</div>
<div
class=
"col-md-6"
>
<h4>
<div
class=
"need_invoice"
>
Need invoice
</div>
<!-- <div class="need_invoice"> -->
<a
class=
"need_invoice"
target=
"_blank"
href=
"{{serverUrl+'downloadOrdrDtls/'+orderDetails.format_order_id}}"
>
Need invoice
</a>
<!-- </div> -->
</h4>
</div>
...
...
src/app/purchase/track/track.component.ts
View file @
be42bb4b
import
{
Component
,
OnInit
,
ViewChild
,
ElementRef
}
from
'@angular/core'
;
import
{
Router
,
ActivatedRoute
}
from
'@angular/router'
;
import
{
Http
,
ResponseContentType
}
from
'@angular/http'
;
import
{
WebService
}
from
'../../provider/web.service'
;
import
{
NgxGalleryOptions
,
NgxGalleryImage
,
NgxGalleryAnimation
}
from
'ngx-gallery'
;
import
{
FormGroup
,
FormControl
,
Validators
,
ValidationErrors
}
from
'@angular/forms'
;
...
...
@@ -7,7 +8,7 @@ import { ValidationService } from '../../provider/validation.service';
import
{
NgxCarousel
}
from
'ngx-carousel'
;
import
{
ImageStorage
}
from
'../../../environments/server.config'
;
import
{
Options
}
from
'ng5-slider'
;
import
*
as
$
from
'jquery
'
;
import
{
apiConfig
}
from
'../../../environments/server.config
'
;
interface
RangeSliderModel
{
minValue
:
number
;
...
...
@@ -25,6 +26,7 @@ export class TrackComponent implements OnInit {
count
:
any
;
loginDetails
:
any
;
loader
:
boolean
;
serverUrl
:
string
;
loader_review
:
boolean
;
imageServer
:
string
;
orderDetails
:
any
;
...
...
@@ -41,9 +43,11 @@ export class TrackComponent implements OnInit {
constructor
(
private
router
:
Router
,
private
route
:
ActivatedRoute
,
public
errorMsg
:
ValidationService
,
public
webService
:
WebService
){
public
webService
:
WebService
,
private
http
:
Http
){
this
.
count
=
0
;
this
.
loader
=
true
;
this
.
serverUrl
=
apiConfig
;
this
.
userReviewed
=
true
;
this
.
loader_review
=
false
;
this
.
imageServer
=
ImageStorage
;
...
...
@@ -164,6 +168,10 @@ export class TrackComponent implements OnInit {
this
.
goToPage
(
'rating'
,{
"pId"
:
this
.
orderDetails
.
product_id
});
}
downloadFile
(
orderId
){
document
.
open
(
this
.
serverUrl
+
''
,
'_blank'
);
}
goToPage
(
path
,
data
=
null
){
this
.
router
.
navigate
([
path
],{
queryParams
:
data
});
document
.
body
.
scrollTop
=
document
.
documentElement
.
scrollTop
=
0
;
...
...
src/assets/css/responsive.scss
View file @
be42bb4b
...
...
@@ -46,6 +46,24 @@
.purchase_filter_section
{
width
:
100%
!
important
;
}
.purchase_wrapper
{
.purchase_content_wrapper
{
.purchase_content_section
{
.search_listing_content
{
ul
{
li
{
width
:
100%
!
important
;
}
}
}
}
}
}
.purchase_content_section
{
width
:
100%
!
important
;
height
:
auto
!
important
;
...
...
@@ -320,7 +338,7 @@
li
{
list-style
:
none
;
padding
:
10px
;
width
:
calc
(
100%
-
67
%
)
!
important
;
width
:
calc
(
100%
-
75
%
)
!
important
;
display
:
inline-block
;
}
...
...
src/assets/images/asset_icon3.png
View replaced file @
98b712b8
View file @
be42bb4b
8.05 KB
|
W:
|
H:
6.03 KB
|
W:
|
H:
2-up
Swipe
Onion skin
src/environments/server.config.ts
View file @
be42bb4b
...
...
@@ -8,7 +8,7 @@ imageStorageUrl = 'http://localhost/dcarfixers/';
// apiConfigUrl = 'https://techlabz.in/dcarfixers/Webservices/';
// imageStorageUrl = 'https://techlabz.in/dcarfixers/';
// // carfixxers.com
// //
//
carfixxers.com
// apiConfigUrl = 'https://carfixxers.com/admin/Webservices/';
// imageStorageUrl = 'https://carfixxers.com/admin/';
...
...
src/index.html
View file @
be42bb4b
...
...
@@ -8,6 +8,7 @@
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1"
>
<link
rel=
"icon"
type=
"image/x-icon"
href=
"favicon.png"
>
<script
src=
"https://kit.fontawesome.com/288b25c567.js"
></script>
</head>
<body>
<app-root></app-root>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment