initial commit

This commit is contained in:
2026-06-29 13:00:18 +06:00
commit f2aea74471
3931 changed files with 562423 additions and 0 deletions

0
resources/css/app.css vendored Normal file
View File

105
resources/css/credit_report.css vendored Normal file
View File

@@ -0,0 +1,105 @@
.shape {
border-style: solid;
border-width: 0 70px 40px 0;
float: right;
height: 0px;
width: 0px;
-ms-transform: rotate(360deg); /* IE 9 */
-o-transform: rotate(360deg); /* Opera 10.5 */
-webkit-transform: rotate(360deg); /* Safari and Chrome */
transform: rotate(360deg);
}
.listing {
background: #fff;
border: 1px solid #ddd;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
margin: 15px 0;
overflow: hidden;
}
.listing:hover {
-webkit-transform: scale(1.1);
-moz-transform: scale(1.1);
-ms-transform: scale(1.1);
-o-transform: scale(1.1);
transform: rotate scale(1.1);
-webkit-transition: all 0.4s ease-in-out;
-moz-transition: all 0.4s ease-in-out;
-o-transition: all 0.4s ease-in-out;
transition: all 0.4s ease-in-out;
}
.shape {
border-color: rgba(255,255,255,0) #d9534f rgba(255,255,255,0) rgba(255,255,255,0);
}
.listing-radius {
border-radius: 7px;
}
.listing-danger {
border-color: #d9534f;
}
.listing-danger .shape {
border-color: transparent #d9533f transparent transparent;
}
.listing-success {
border-color: #5cb85c;
}
.listing-success .shape {
border-color: transparent #5cb75c transparent transparent;
}
.listing-default {
border-color: #999999;
}
.listing-default .shape {
border-color: transparent #999999 transparent transparent;
}
.listing-primary {
border-color: #428bca;
}
.listing-primary .shape {
border-color: transparent #318bca transparent transparent;
}
.listing-info {
border-color: #5bc0de;
}
.listing-info .shape {
border-color: transparent #5bc0de transparent transparent;
}
.listing-warning {
border-color: #f0ad4e;
}
.listing-warning .shape {
border-color: transparent #f0ad4e transparent transparent;
}
.shape-text {
color: #fff;
font-size: 12px;
font-weight: bold;
position: relative;
right: -40px;
top: 2px;
white-space: nowrap;
-ms-transform: rotate(30deg); /* IE 9 */
-o-transform: rotate(360deg); /* Opera 10.5 */
-webkit-transform: rotate(30deg); /* Safari and Chrome */
transform: rotate(30deg);
}
.listing-content {
padding: 20px;
height: 100px;
cursor: pointer;
}
.text-primary{
color: #318bca;
}
.text-success{
color: #5cb75c;
}
.text-danger{
color: #d9533f;
}
.text-bold{
font-weight: bold;
}

36
resources/css/loader.css vendored Normal file
View File

@@ -0,0 +1,36 @@
/* (A) FULL SCREEN WRAPPER */
#spinner {
position: fixed;
top: 0; left: 0;
width: 100vw; height: 100vh;
z-index: 5000000000;
background: rgba(16, 16, 16, 0.5);
transition: opacity 0.2s;
}
/* (B) CENTER LOADING SPINNER */
#spinner img {
position: absolute;
top: 50%; left: 50%;
transform: translate(-50%);
}
/* (X) DOES NOT QUITE MATTER */
html, body {
margin: 0;
padding: 0;
}
#loading {
display: block;
position: absolute;
top: 0;
left: 0;
z-index: 500000000000000;
width: 100vw;
height: 100vh;
background-color: rgba(16, 16, 16, 0.5);
/*background-image: url(https://i.stack.imgur.com/FhHRx.gif);*/
background-repeat: no-repeat;
background-position: center;
}

37
resources/css/login.css vendored Normal file
View File

@@ -0,0 +1,37 @@
body{
background-color: #004AAD;
}
.help-block strong { color: red; }
.login_content h1::before { background: none !important; }
.login_content h1::after { background: none !important; }
.footer-copyright{
margin-top: 40%;
position: absolute;
width: 100%;
color: #f5f7f9;
font-size: 15px;
}
@media (max-width: 800px) {
.footer-copyright{
margin-top: 40%;
margin-left: 10px !important;
width: 100% !important;
padding-left: 30px !important;
}
}
@media (max-width: 700px) {
.footer-copyright {
margin-top: 40%;
margin-left: 10px !important;
width: 100% !important;
padding-left: 30px !important;
}
}
@media (max-width: 600px) {
.footer-copyright {
margin-top: 600px;
margin-left: 10px !important;
width: 100% !important;
padding-left: 30px !important;
}
}

548
resources/css/modal.css vendored Normal file
View File

@@ -0,0 +1,548 @@
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap');
*{
padding:0;
margin:0;
}
.container{
min-height:100vh;
display:flex;
justify-content:center;
align-items:center;
background-color:#eee;
}
.container .card{
height:500px;
width:1100px;
background-color:#fff;
position:relative;
box-shadow:0 15px 30px rgba(0,0,0,0.1);
font-family: 'Poppins', sans-serif;
border-radius:20px;
}
.container .card .form{
width:100%;
height:100%;
display:flex;
}
.container .card .left-side{
width:35%;
background-image: -webkit-linear-gradient(-90deg, #8ba8e0 0%, #4e74f2 100%);
height:100%;
border-top-left-radius:20px;
border-bottom-left-radius:20px;
padding:20px 30px;
box-sizing:border-box;
}
/*left-side-start*/
.left-heading{
color:#fff;
}
.steps-content{
margin-top:30px;
color:#fff;
}
.steps-content p{
font-size:12px;
margin-top:15px;
}
.progress-bar{
list-style:none;
/*color:#fff;*/
margin-top:30px;
font-size:13px;
font-weight:700;
counter-reset:container 0;
}
.progress-bar li{
position:relative;
margin-left:40px;
margin-top:50px;
counter-increment:container 1;
color:#4f6581;
}
.progress-bar li::before{
content:counter(container);
line-height:25px;
text-align:center;
position:absolute;
height:25px;
width:25px;
border:1px solid #4f6581;
border-radius:50%;
left:-40px;
top:-5px;
z-index:10;
background-color:#4A8ACD;
}
.progress-bar li::after{
content: '';
position: absolute;
height: 90px;
width: 2px;
background-color: #4f6581;
z-index: 1;
left: -27px;
top: -70px;
}
.progress-bar li.active::after{
background-color: #fff;
}
.progress-bar li:first-child:after{
display:none;
}
/*.progress-bar li:last-child:after{*/
/* display:none; */
/*}*/
.progress-bar li.active::before{
color:#fff;
border:1px solid #fff;
}
.progress-bar li.active{
color:#fff;
}
.d-none{
display:none;
}
/*left-side-end*/
.container .card .right-side{
width:65%;
background-color:#fff;
height:100%;
border-radius:20px;
}
/*right-side-start*/
.main{
display:none;
}
.active{
display:block;
}
.main{
padding:40px;
}
.main small{
display:flex;
justify-content:center;
align-items:center;
margin-top:2px;
height:30px;
width:30px;
background-color:#ccc;
border-radius:50%;
color:yellow;
font-size:19px;
}
.text{
margin-top:20px;
}
.congrats{
text-align:center;
color: #0b0b0b;
}
.text p{
margin-top:10px;
font-size:13px;
font-weight:700;
color:#cbced4;
}
.input-text{
margin:30px 0;
display:flex;
gap:20px;
}
.input-text .input-div{
width:100%;
position:relative;
}
input[type="text"],input[type="password"]{
width:100%;
height:40px;
border:none;
outline:0;
border-radius:5px;
border:1px solid #cbced4;
gap:20px;
box-sizing:border-box;
padding:0px 10px;
}
select{
width:100%;
height:40px;
border:none;
outline:0;
border-radius:5px;
border:1px solid #cbced4;
gap:20px;
box-sizing:border-box;
padding:0px 10px;
}
.input-text .input-div span{
position:absolute;
top:10px;
left:10px;
font-size:12px;
transition:all 0.5s;
}
.input-div input:focus ~ span,.input-div input:valid ~ span {
top:-15px;
left:6px;
font-size:10px;
font-weight:600;
}
.input-div span{
top:-15px;
left:6px;
font-size:10px;
}
.buttons button{
height:40px;
width:100px;
border:none;
border-radius:5px;
background-color:#0075ff;
font-size:12px;
color:#fff;
cursor:pointer;
}
.button_space{
display:flex;
gap:20px;
}
.button_space button:nth-child(1){
background-color:#fff;
color:#000;
border:1px solid#000;
}
.user_card{
margin-top:20px;
margin-bottom:40px;
height:200px;
width:100%;
border:1px solid #c7d3d9;
border-radius:10px;
display:flex;
overflow:hidden;
position:relative;
box-sizing:border-box;
}
.user_card span{
height:80px;
width:100%;
background-color:#dfeeff;
}
.circle{
position:absolute;
top:40px;
left:60px;
}
.circle span{
height:70px;
width:70px;
background-color:#fff;
display:flex;
justify-content:center;
align-items:center;
border:2px solid #fff;
border-radius:50%;
}
.circle span img{
width:100%;
height:100%;
border-radius:50%;
object-fit:cover;
}
.social{
display:flex;
position:absolute;
top:100px;
right:10px;
}
.social span{
height:30px;
width:30px;
border-radius:7px;
background-color:#fff;
border:1px solid #cbd6dc;
display:flex;
justify-content:center;
align-items:center;
margin-left:10px;
color:#cbd6dc;
}
.social span i{
cursor:pointer;
}
.heart{
color:red !important;
}
.share{
color:red !important;
}
.user_name{
position:absolute;
top:110px;
margin:10px;
padding:0 30px;
display:flex;
flex-direction:column;
width:100%;
}
.user_name h3{
color:#4c5b68;
}
.detail{
/*margin-top:10px;*/
display:flex;
justify-content:space-between;
margin-right:50px;
}
.detail p{
font-size:12px;
font-weight:700;
}
.detail p a{
text-decoration:none;
color:blue;
}
.checkmark__circle {
stroke-dasharray: 166;
stroke-dashoffset: 166;
stroke-width: 2;
stroke-miterlimit: 10;
stroke: #7ac142;
fill: none;
animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}
.checkmark {
width: 56px;
height: 56px;
border-radius: 50%;
display: block;
stroke-width: 2;
stroke: #fff;
stroke-miterlimit: 10;
margin: 10% auto;
box-shadow: inset 0px 0px 0px #7ac142;
animation: fill .4s ease-in-out .4s forwards, scale .3s ease-in-out .9s both;
}
.checkmark__check {
transform-origin: 50% 50%;
stroke-dasharray: 48;
stroke-dashoffset: 48;
animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
}
@keyframes stroke {
100% {
stroke-dashoffset: 0;
}
}
@keyframes scale {
0%, 100% {
transform: none;
}
50% {
transform: scale3d(1.1, 1.1, 1);
}
}
@keyframes fill {
100% {
box-shadow: inset 0px 0px 0px 30px #7ac142;
}
}
.warning{
border:1px solid red !important;
}
/*right-side-end*/
@media (max-width:750px) {
.container{
height:scroll;
}
.container .card {
max-width: 350px;
height:auto !important;
margin:30px 0;
}
.container .card .right-side {
width:100%;
}
.input-text{
display:block;
}
.input-text .input-div{
margin-top:20px;
}
.container .card .left-side {
display: none;
}
}
.error{
color: red;
font-weight: bold;
font-size: 12px;
}
.field-validation-error{
top: 30px;
position: absolute;
width: 100%;
padding: 0;
margin: 0;
color: red;
font-weight: bold;
}
.field-validation-error span{
left: 0 !important;
}
.next_button{
background-color: #FF440A !important;
color: white;
font-weight: bold;
}
button:disabled{
opacity: .5;
}
.top-area{
display: flex;
}
.link-area{
width: 100%;
text-align: right;
}
.link-area a{
color: #82aee2;
text-decoration: none;
background-color: transparent;
font-family: "Lato",-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
font-size: 1rem;
font-weight: 400;
}
input:read-only{
background: lightgrey;
}
/* my custom css*/
.container .card .form {
background-image: -webkit-linear-gradient(-90deg, #54c7dc 0%, #4361c2 100%);
height: 100%;
border-radius: 20px;
box-sizing: border-box;
}
.container .card{
height: auto;
margin: 15px;
}
.container .card .right-side {
width: 65%;
background-color: #fff;
height: auto;
border-radius: 20px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.container .card .left-side{
height: auto;
}
.edit-text{
text-align: right;
font-size: 13px;
font-weight: bold;
}
.label-text{
text-align: left;
font-size: 13px;
font-weight: bold;
margin-left: 5px;
}
.radio-text{
text-align: left;
font-size: 13px;
font-weight: bold;
margin-left: 10px;
}
/* my custom css*/

222
resources/css/payment.css vendored Normal file
View File

@@ -0,0 +1,222 @@
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css');
.modal-backdrop {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: rgba(0, 0, 0, 0.3);
display: flex;
justify-content: center;
z-index: 100000000;
overflow: auto;
}
.modal {
/*overflow-x: auto;*/
display: flex;
flex-direction: column;
}
.modal-body {
position: relative;
padding: 20px 10px;
}
#payment-modal {
font-family: Arial;
font-size: 17px;
padding: 8px;
}
#payment-modal * {
box-sizing: border-box;
}
#payment-modal .row {
display: -ms-flexbox; /* IE10 */
display: flex;
-ms-flex-wrap: wrap; /* IE10 */
flex-wrap: wrap;
margin: 0 -16px;
}
#payment-modal .col-25 {
-ms-flex: 25%; /* IE10 */
flex: 25%;
}
#payment-modal .col-50 {
-ms-flex: 50%; /* IE10 */
flex: 50%;
}
#payment-modal .col-75 {
-ms-flex: 75%; /* IE10 */
flex: 75%;
}
#payment-modal
.col-25,
.col-50,
.col-75 {
padding: 0 16px;
}
#payment-modal .payment-container {
/* background-color: #f2f2f2; */
font-family: 'Roboto', sans-serif;
color: #2A3F54;
padding: 5px 20px 15px 20px;
border: 1px solid lightgrey;
border-radius: 3px;
background: #fff;
padding: 10px 25px;
box-shadow: 0 10px 10px 10px rgb(0 0 0 / 10%);
border-radius: 20px;
}
#payment-modal input[type=text] {
width: 100%;
margin-bottom: 20px;
padding: 12px;
border: 1px solid #ccc;
border-radius: 3px;
}
#payment-modal label {
margin-bottom: 10px;
display: block;
}
#payment-modal .icon-container {
margin-bottom: 20px;
padding: 7px 0;
font-size: 24px;
}
#payment-modal .btn {
background-color: #FF440A !important;
color: white;
padding: 12px;
margin: 10px 0;
border: none;
width: 100%;
border-radius: 3px;
cursor: pointer;
font-size: 17px;
}
#payment-modal .btn:hover {
background-color: #45a049;
}
#payment-modal a {
color: #2196F3;
}
#payment-modal hr {
border: 1px solid lightgrey;
}
#payment-modal span.price {
float: right;
color: grey;
}
#payment-modal .bottom-panel{
text-align: center;
}
#payment-modal .smart-credit-pkg{
width: 250px !important;
margin-top: -20px !important;
margin-left: 15px !important;
padding-top: 0 !important;
padding-right: 0 !important;
}
#payment-modal .top-text{
text-align: left;
font-weight: bold;
padding-bottom: 15px;
margin-left: 15px;
color: darkblue;
}
/* Responsive layout - when the screen is less than 800px wide, make the two columns stack on top of each other instead of next to each other (also change the direction - make the "cart" column go on top) */
@media (max-width: 800px) {
#payment-modal .row {
flex-direction: column-reverse;
}
#payment-modal .col-25 {
margin-bottom: 20px;
}
#payment-modal .main{
margin: 15px !important;
}
#payment-modal .container{
border-radius: 0;
}
#payment-modal .text-center-sm{
text-align: center !important;
}
#payment-modal .bottom-panel{
text-align: center !important;
}
#payment-modal .smart-credit-pkg{
width: 95% !important;
margin-top: -20px !important;
padding-top: 0 !important;
padding-right: 0 !important;
}
#payment-modal .top-text{
text-align: center;
font-weight: bold;
padding-bottom: 15px;
color: darkblue;
}
#payment-modal .header-panel{
text-align: center;
}
}
@media (max-width: 700px) {
#payment-modal .row {
display: flow-root;
flex-wrap: wrap;
margin: 0 -16px;
}
}
@media (min-width: 400px) {
}
#payment-modal .center{
margin: 0 auto;
}
#payment-modal .text-center {
text-align: center !important;
}
#payment-modal .btn2 {
background-color: #FF440A !important;
text-align: center;
text-decoration: none;
font-weight: 800;
font-size: 1em;
text-transform: uppercase;
color: #fff;
border-radius: 7px;
margin: 20px;
padding: 10px 100px;
background-size: 200% auto;
border: none;
color: white;
box-shadow: 0 4px 6px rgb(50 50 93 / 11%), 0 1px 3px rgb(0 0 0 / 8%);
background-image: linear-gradient(to right, #FF440A 0%, #dc3d0c 50%, #9e2d0a 100%);
background-image: -webkit-linear-gradient(to right, #FF440A 0%, #dc3d0c 50%, #9e2d0a 100%);
background-image: -o-linear-gradient(to right, #FF440A 0%, #dc3d0c 50%, #9e2d0a 100%);
transition: 0.35s;
-webkit-transition: 0.35s;
}

548
resources/css/register.css vendored Normal file
View File

@@ -0,0 +1,548 @@
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap');
*{
padding:0;
margin:0;
}
.container{
min-height:100vh;
display:flex;
justify-content:center;
align-items:center;
background-color:#eee;
}
.container .card{
height:500px;
width:1100px;
background-color:#fff;
position:relative;
box-shadow:0 15px 30px rgba(0,0,0,0.1);
font-family: 'Poppins', sans-serif;
border-radius:20px;
}
.container .card .form{
width:100%;
height:100%;
display:flex;
}
.container .card .left-side{
width:35%;
background-image: -webkit-linear-gradient(-90deg, #8ba8e0 0%, #4e74f2 100%);
height:100%;
border-top-left-radius:20px;
border-bottom-left-radius:20px;
padding:20px 30px;
box-sizing:border-box;
}
/*left-side-start*/
.left-heading{
color:#fff;
}
.steps-content{
margin-top:30px;
color:#fff;
}
.steps-content p{
font-size:12px;
margin-top:15px;
}
.progress-bar{
list-style:none;
/*color:#fff;*/
margin-top:30px;
font-size:13px;
font-weight:700;
counter-reset:container 0;
}
.progress-bar li{
position:relative;
margin-left:40px;
margin-top:50px;
counter-increment:container 1;
color:#4f6581;
}
.progress-bar li::before{
content:counter(container);
line-height:25px;
text-align:center;
position:absolute;
height:25px;
width:25px;
border:1px solid #4f6581;
border-radius:50%;
left:-40px;
top:-5px;
z-index:10;
background-color:#4A8ACD;
}
.progress-bar li::after{
content: '';
position: absolute;
height: 90px;
width: 2px;
background-color: #4f6581;
z-index: 1;
left: -27px;
top: -70px;
}
.progress-bar li.active::after{
background-color: #fff;
}
.progress-bar li:first-child:after{
display:none;
}
/*.progress-bar li:last-child:after{*/
/* display:none; */
/*}*/
.progress-bar li.active::before{
color:#fff;
border:1px solid #fff;
}
.progress-bar li.active{
color:#fff;
}
.d-none{
display:none;
}
/*left-side-end*/
.container .card .right-side{
width:65%;
background-color:#fff;
height:100%;
border-radius:20px;
}
/*right-side-start*/
.main{
display:none;
}
.active{
display:block;
}
.main{
padding:40px;
}
.main small{
display:flex;
justify-content:center;
align-items:center;
margin-top:2px;
height:30px;
width:30px;
background-color:#ccc;
border-radius:50%;
color:yellow;
font-size:19px;
}
.text{
margin-top:20px;
}
.congrats{
text-align:center;
color: #0b0b0b;
}
.text p{
margin-top:10px;
font-size:13px;
font-weight:700;
color:#cbced4;
}
.input-text{
margin:30px 0;
display:flex;
gap:20px;
}
.input-text .input-div{
width:100%;
position:relative;
}
input[type="text"],input[type="password"]{
width:100%;
height:40px;
border:none;
outline:0;
border-radius:5px;
border:1px solid #cbced4;
gap:20px;
box-sizing:border-box;
padding:0px 10px;
}
select{
width:100%;
height:40px;
border:none;
outline:0;
border-radius:5px;
border:1px solid #cbced4;
gap:20px;
box-sizing:border-box;
padding:0px 10px;
}
.input-text .input-div span{
position:absolute;
top:10px;
left:10px;
font-size:12px;
transition:all 0.5s;
}
.input-div input:focus ~ span,.input-div input:valid ~ span {
top:-15px;
left:6px;
font-size:10px;
font-weight:600;
}
.input-div span{
top:-15px;
left:6px;
font-size:10px;
}
.buttons button{
height:40px;
width:100px;
border:none;
border-radius:5px;
background-color:#0075ff;
font-size:12px;
color:#fff;
cursor:pointer;
}
.button_space{
display:flex;
gap:20px;
}
.button_space button:nth-child(1){
background-color:#fff;
color:#000;
border:1px solid#000;
}
.user_card{
margin-top:20px;
margin-bottom:40px;
height:200px;
width:100%;
border:1px solid #c7d3d9;
border-radius:10px;
display:flex;
overflow:hidden;
position:relative;
box-sizing:border-box;
}
.user_card span{
height:80px;
width:100%;
background-color:#dfeeff;
}
.circle{
position:absolute;
top:40px;
left:60px;
}
.circle span{
height:70px;
width:70px;
background-color:#fff;
display:flex;
justify-content:center;
align-items:center;
border:2px solid #fff;
border-radius:50%;
}
.circle span img{
width:100%;
height:100%;
border-radius:50%;
object-fit:cover;
}
.social{
display:flex;
position:absolute;
top:100px;
right:10px;
}
.social span{
height:30px;
width:30px;
border-radius:7px;
background-color:#fff;
border:1px solid #cbd6dc;
display:flex;
justify-content:center;
align-items:center;
margin-left:10px;
color:#cbd6dc;
}
.social span i{
cursor:pointer;
}
.heart{
color:red !important;
}
.share{
color:red !important;
}
.user_name{
position:absolute;
top:110px;
margin:10px;
padding:0 30px;
display:flex;
flex-direction:column;
width:100%;
}
.user_name h3{
color:#4c5b68;
}
.detail{
/*margin-top:10px;*/
display:flex;
justify-content:space-between;
margin-right:50px;
}
.detail p{
font-size:12px;
font-weight:700;
}
.detail p a{
text-decoration:none;
color:blue;
}
.checkmark__circle {
stroke-dasharray: 166;
stroke-dashoffset: 166;
stroke-width: 2;
stroke-miterlimit: 10;
stroke: #7ac142;
fill: none;
animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}
.checkmark {
width: 56px;
height: 56px;
border-radius: 50%;
display: block;
stroke-width: 2;
stroke: #fff;
stroke-miterlimit: 10;
margin: 10% auto;
box-shadow: inset 0px 0px 0px #7ac142;
animation: fill .4s ease-in-out .4s forwards, scale .3s ease-in-out .9s both;
}
.checkmark__check {
transform-origin: 50% 50%;
stroke-dasharray: 48;
stroke-dashoffset: 48;
animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
}
@keyframes stroke {
100% {
stroke-dashoffset: 0;
}
}
@keyframes scale {
0%, 100% {
transform: none;
}
50% {
transform: scale3d(1.1, 1.1, 1);
}
}
@keyframes fill {
100% {
box-shadow: inset 0px 0px 0px 30px #7ac142;
}
}
.warning{
border:1px solid red !important;
}
/*right-side-end*/
@media (max-width:750px) {
.container{
height:scroll;
}
.container .card {
max-width: 350px;
height:auto !important;
margin:30px 0;
}
.container .card .right-side {
width:100%;
}
.input-text{
display:block;
}
.input-text .input-div{
margin-top:20px;
}
.container .card .left-side {
display: none;
}
}
.error{
color: red;
font-weight: bold;
font-size: 12px;
}
.field-validation-error{
top: 50px;
position: absolute;
width: 100%;
padding: 0;
margin: 0;
color: red;
font-weight: bold;
}
.field-validation-error span{
left: 0 !important;
}
.next_button{
background-color: #FF440A !important;
color: white;
font-weight: bold;
}
button:disabled{
opacity: .5;
}
.top-area{
display: flex;
}
.link-area{
width: 100%;
text-align: right;
}
.link-area a{
color: #82aee2;
text-decoration: none;
background-color: transparent;
font-family: "Lato",-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
font-size: 1rem;
font-weight: 400;
}
input:read-only{
background: lightgrey;
}
/* my custom css*/
.container .card .form {
background-image: -webkit-linear-gradient(-90deg, #54c7dc 0%, #4361c2 100%);
height: 100%;
border-radius: 20px;
box-sizing: border-box;
}
.container .card{
height: auto;
margin: 15px;
}
.container .card .right-side {
width: 65%;
background-color: #fff;
height: auto;
border-radius: 20px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.container .card .left-side{
height: auto;
}
.edit-text{
text-align: right;
font-size: 13px;
font-weight: bold;
}
.label-text{
text-align: left;
font-size: 13px;
font-weight: bold;
margin-left: 5px;
}
.radio-text{
text-align: left;
font-size: 13px;
font-weight: bold;
margin-left: 10px;
}
/* my custom css*/

970
resources/css/smartcredit.css vendored Normal file
View File

@@ -0,0 +1,970 @@
.smart-credit-pkg .sign-up-nav, .smart-credit-pkg .login-nav {
display: none
}
.smart-credit-pkg .page-steps {
background-color: #f7f8fb
}
.smart-credit-pkg .page-steps .smart-credit-pkg .header__name {
font-size: 24px
}
.smart-credit-pkg .main {
border-radius: 3px;
height: calc(100vh - 177px);
max-width: 80%;
margin: 0 auto
}
.smart-credit-pkg .main--auto {
height: auto;
justify-content: center
}
.smart-credit-pkg .main__content {
border: 2px solid #f2f2f2;
background-color: #fff
}
.smart-credit-pkg .main__aside {
background-image: linear-gradient(to bottom, #b8d7f3, #82aee2)
}
.smart-credit-pkg .main__aside + .smart-credit-pkg .main__content {
border-left: none
}
@media (max-width: 1199.98px) {
.smart-credit-pkg .registration-steps .smart-credit-pkg .nav-steps li + li {
margin-left: 50px
}
p {
color: #4a4a4a;
line-height: 32px
}
.smart-credit-pkg .terms-of-list p {
line-height: initial
}
}
.smart-credit-pkg .login-text {
padding: 20px;
text-align: center;
color: #fff
}
.smart-credit-pkg .login-text h3 {
font-weight: 300;
line-height: 1.5
}
.smart-credit-pkg .login-text p {
color: #fff;
font-size: 16px;
margin-top: 15px;
font-weight: bold;
line-height: 2
}
.smart-credit-pkg .login-text p.smart-credit-pkg .extra-bold {
font-size: 35px;
margin-top: 15px;
font-weight: bold;
line-height: 2
}
.smart-credit-pkg .login-text .smart-credit-pkg .btn-link {
font-size: 16px;
padding: 0;
border-radius: 0;
color: #fff;
border-bottom: 1px solid #fff
}
.smart-credit-pkg .form-element--login {
width: 70%;
margin: 0 auto
}
.smart-credit-pkg .form-element--login h2 {
color: #82aee2;
font-weight: 300
}
.smart-credit-pkg .form-element--login a {
cursor: pointer
}
.smart-credit-pkg .action-link a {
cursor: pointer
}
@media (max-width: 991.98px) {
.smart-credit-pkg .main {
max-width: 100%
}
}
@media (max-width: 767.98px) {
.smart-credit-pkg .LoginText--box.smart-credit-pkg .d-flex {
display: block !important
}
.smart-credit-pkg .login-text {
margin-top: 20px
}
.smart-credit-pkg .page-steps .smart-credit-pkg .navigation {
display: block
}
.smart-credit-pkg .main {
height: auto;
flex-direction: column-reverse
}
.smart-credit-pkg .main__content, .smart-credit-pkg .main__aside {
max-width: 100%
}
.smart-credit-pkg .main__content {
border-right: none;
padding: 0 30px;
border-left: none
}
.smart-credit-pkg .main__content .smart-credit-pkg .tab-content {
padding-top: .5rem !important;
padding-bottom: 1rem !important
}
.smart-credit-pkg .registration-steps .smart-credit-pkg .nav-steps .smart-credit-pkg .nav-link {
font-size: 12px
}
.smart-credit-pkg .login-text, .smart-credit-pkg .action-link {
text-align: center
}
}
@media (max-width: 575.98px) {
.smart-credit-pkg .steps .smart-credit-pkg .container {
padding-left: 0;
padding-right: 0
}
.smart-credit-pkg .form-element {
width: 100%
}
}
.smart-credit-pkg .registration-steps {
padding-top: 50px
}
.smart-credit-pkg .registration-steps .smart-credit-pkg .nav {
margin: 50px -16px 20px;
width: auto
}
.smart-credit-pkg .registration-steps .smart-credit-pkg .nav-steps .smart-credit-pkg .nav-link {
color: #82aee2;
font-weight: 300;
cursor: context-menu
}
.smart-credit-pkg .registration-steps .smart-credit-pkg .nav-steps .smart-credit-pkg .nav-link::before {
height: 12px;
width: 12px;
background-color: #c2c2c2;
border-color: #c2c2c2
}
.smart-credit-pkg .registration-steps .smart-credit-pkg .nav-steps .smart-credit-pkg .nav-link.smart-credit-pkg .active {
font-weight: bold
}
.smart-credit-pkg .registration-steps .smart-credit-pkg .nav-steps .smart-credit-pkg .nav-link.smart-credit-pkg .active::before {
height: 15px;
width: 15px;
background: #f2f2f2;
border-color: #82aee2
}
.smart-credit-pkg .confirm-name i {
color: #82aee2
}
@media (max-width: 767.98px) {
.smart-credit-pkg .registration-steps {
padding-top: 0
}
.smart-credit-pkg .mt-sm--2 {
margin-top: 16px
}
.smart-credit-pkg .registration-steps .smart-credit-pkg .nav {
margin: 50px -30px 20px
}
}
.smart-credit-pkg .main--credit {
max-width: 100%;
height: auto
}
.smart-credit-pkg .report-card {
border-radius: 4px;
border: solid 1px #f2f2f2;
background-color: #fff;
display: flex;
flex-direction: column;
height: auto;
position: relative
}
.smart-credit-pkg .report-card--short {
height: 85%
}
.smart-credit-pkg .report-card--info {
border-top: 5px solid #3379d0
}
.smart-credit-pkg .report-card--best, .smart-credit-pkg .report-card--gray {
background: #f2f2f2
}
.smart-credit-pkg .report-card--best .smart-credit-pkg .best-value {
display: block;
position: absolute;
top: -38px;
left: -20px
}
.smart-credit-pkg .report-card--danger {
border-top: 5px solid #c03941
}
.smart-credit-pkg .report-card__header {
text-align: center;
border-bottom: 1px solid #82aee2
}
.smart-credit-pkg .report-card__header h5 {
font-weight: 700;
font-size: 18px;
line-height: 26px;
color: #3379d0;
font-family: "Open Sans", sans-serif
}
.smart-credit-pkg .report-card__header h5 span {
font-size: 21px
}
.smart-credit-pkg .report-card__header h5 sup {
margin: 0 2px;
top: -10px
}
.smart-credit-pkg .report-card__price {
text-align: center;
border-bottom: 1px solid #82aee2
}
.smart-credit-pkg .report-card__price h4 {
color: #82aee2;
font-size: 24px !important
}
.smart-credit-pkg .report-card__price span {
text-transform: uppercase;
font-size: 11px
}
.smart-credit-pkg .report-card .provider-logo {
width: 50%;
vertical-align: middle;
border-style: none;
}
.smart-credit-pkg .report-card__logo {
position: relative;
display: flex;
align-items: center;
margin-top: 10px;
margin-bottom: 5px
}
.smart-credit-pkg .report-card__logo span {
padding: 0 10px;
color: #3379d0
}
.smart-credit-pkg .report-card__logo strong {
font-family: "open sans";
font-size: 18px
}
.smart-credit-pkg .report-card .smart-credit-pkg .provider-logo-small {
width: 110px
}
.smart-credit-pkg .report-card__logo::before, .smart-credit-pkg .report-card__logo::after {
content: "";
flex: 1;
height: 2px;
background: #82aee2
}
.smart-credit-pkg .report-card__text {
text-align: center
}
.smart-credit-pkg .report-card__text p {
font-size: 13px;
margin: 0
}
.smart-credit-pkg .report-card__action {
text-align: center;
margin-top: auto
}
.smart-credit-pkg .report-card__action .smart-credit-pkg .btn {
border-width: 2px
}
.smart-credit-pkg .points {
list-style: none;
padding: 0;
margin: 0
}
.smart-credit-pkg .points > li {
font-size: 14px;
position: relative;
display: flex;
align-items: center
}
.smart-credit-pkg .points > li i {
color: #82aee2;
margin-right: 5px;
font-size: 16px
}
.smart-credit-pkg .points > li + li {
margin-top: 15px
}
.smart-credit-pkg .best-value {
display: none
}
.smart-credit-pkg .best-value img {
width: 142px
}
.smart-credit-pkg .coming-soon {
position: absolute;
top: -38px;
right: -20px
}
.smart-credit-pkg .coming-soon img {
width: 142px
}
.smart-credit-pkg .coming-soon-btn {
border: 2px solid #c2c2c2;
color: #c2c2c2
}
.smart-credit-pkg .coming-soon-btn:hover {
background: #c2c2c2;
color: #fff;
border: 2px solid #c2c2c2
}
.smart-credit-pkg .unavailable-btn {
border: 2px solid #c2c2c2;
color: #c2c2c2;
word-spacing: 8px
}
.smart-credit-pkg .unavailable-btn:hover {
background: #c2c2c2;
color: #fff;
border: 2px solid #c2c2c2
}
.smart-credit-pkg .tab-content__header {
max-width: 80%;
margin: 0 auto
}
.smart-credit-pkg .tab-content__header h4 {
font-size: 22px;
font-weight: bold
}
.smart-credit-pkg .tab-content__report h4 {
font-size: 22px;
font-weight: bold
}
.smart-credit-pkg .report-list {
justify-content: center
}
@media (max-width: 767.98px) {
.smart-credit-pkg .tab-content__header {
max-width: 100%
}
.smart-credit-pkg .tab-content__report {
padding-top: 10px
}
.smart-credit-pkg .tab-content__header h4 {
font-size: 22px;
line-height: 36px
}
.smart-credit-pkg .tab-content__header p br {
display: none
}
.smart-credit-pkg .tab-content__report > h4 {
margin-top: 50px;
font-size: 22px;
line-height: 32px;
text-align: left !important
}
.smart-credit-pkg .report-list {
padding: 0 !important
}
.smart-credit-pkg .report-list .smart-credit-pkg .col-md-4 + .smart-credit-pkg .col-md-4 {
margin-top: 50px
}
.smart-credit-pkg .report-card__text p {
line-height: 22px
}
}
.smart-credit-pkg .tab-content--report {
position: relative
}
.smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header .smart-credit-pkg .btn {
position: absolute;
left: 34px;
top: 25px;
font-size: 16px;
padding-left: 0
}
.smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header h2 {
color: #3379d0;
font-weight: bold;
font-family: "Open Sans", sans-serif
}
.smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header h2 span {
font-size: 32px
}
.smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header h2 sup {
font-size: 16px;
top: -20px
}
.smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header p {
font-size: 21px;
font-weight: bold;
margin: 0 auto
}
.smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header p span {
font-size: 21px;
font-weight: bold;
font-style: italic;
margin-right: 5px
}
.smart-credit-pkg .form-options .smart-credit-pkg .form-group > label {
font-size: 18px;
color: #9b9b9b;
text-transform: none;
margin-bottom: 25px;
font-weight: normal
}
.smart-credit-pkg .form-options .smart-credit-pkg .form-group + .smart-credit-pkg .form-group {
margin-top: 40px
}
.smart-credit-pkg .form-options .smart-credit-pkg .custom-radio {
padding: 0
}
.smart-credit-pkg .form-options .smart-credit-pkg .custom-radio input[type=radio]:checked + label {
border-color: #82aee2;
box-shadow: inset -1px 0 0 1px #82aee2
}
.smart-credit-pkg .form-options .smart-credit-pkg .custom-control-label {
padding: 16px 20px;
display: block;
border: 1px solid #e1e1e1;
border-radius: 4px;
border-left: 4px solid #82aee2;
cursor: pointer;
color: #4a4a4a;
font-size: 16px;
font-weight: 700
}
.smart-credit-pkg .form-options .smart-credit-pkg .custom-control-label::before, .smart-credit-pkg .form-options .smart-credit-pkg .custom-control-label::after {
display: none
}
.smart-credit-pkg .form-options .smart-credit-pkg .custom-control-label:hover {
box-shadow: inset -1px 0 0 1px #82aee2;
border-color: #82aee2
}
@media (max-width: 1199.98px) {
.smart-credit-pkg .form-options .smart-credit-pkg .form-group > label {
margin-bottom: 18px
}
.smart-credit-pkg .form-options .smart-credit-pkg .form-group + .smart-credit-pkg .form-group {
margin-top: 25px
}
}
.smart-credit-pkg .form-element label {
color: #82aee2
}
.smart-credit-pkg .form-element--personal .smart-credit-pkg .form-group label {
color: #9b9b9b
}
.smart-credit-pkg .smart-credit-account-modal .smart-credit-pkg .modal-dialog {
max-width: 420px
}
.smart-credit-pkg .smart-credit-account-modal .smart-credit-pkg .modal-header {
display: none
}
.smart-credit-pkg .success-icon {
margin-top: 30px
}
.smart-credit-pkg .success-icon i {
color: #82aee2;
font-size: 40px
}
.smart-credit-pkg .modal-success__title {
color: #545454;
margin: 20px 0 30px
}
.smart-credit-pkg .modal-success__text {
color: #4a4a4a;
width: 80%;
margin: auto
}
.smart-credit-pkg .smart-credit-account-modal .smart-credit-pkg .btn {
font-weight: 100
}
.smart-credit-pkg .credit-success {
width: 60%;
margin: 0 auto;
text-align: center
}
.smart-credit-pkg .credit-success p {
font-size: 20px;
color: #545454
}
.smart-credit-pkg .credit-info a, .smart-credit-pkg .credit-info span {
font-size: 14px;
line-height: 24px;
font-weight: 300;
color: #82aee2
}
.smart-credit-pkg .credit-text {
list-style: none;
width: 70%;
margin: 0 auto 20px;
padding: 0;
text-align: center
}
.smart-credit-pkg .credit-text li {
position: relative;
display: flex;
justify-content: center;
color: #4a4a4a
}
.smart-credit-pkg .credit-text li::before {
content: "";
background: #82aee2;
width: 6px;
height: 6px;
border-radius: 50%;
margin-right: 10px;
margin-top: 10px;
padding-left: 6px
}
.smart-credit-pkg .credit-text li + li {
margin-top: 15px
}
@media (max-width: 1199.98px) {
.smart-credit-pkg .credit-success {
width: 80%
}
}
@media (max-width: 991.98px) {
.smart-credit-pkg .credit-success {
width: 100%
}
.smart-credit-pkg .credit-success .smart-credit-pkg .text {
width: 100%
}
}
@media (max-width: 767.98px) {
.smart-credit-pkg .credit-success .smart-credit-pkg .text {
text-align: left;
display: block
}
.smart-credit-pkg .credit-success .smart-credit-pkg .btn {
width: 100%
}
.smart-credit-pkg .credit-text {
width: 100%
}
.smart-credit-pkg .credit-info {
text-align: left
}
.smart-credit-pkg .success-credit .smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header {
margin-bottom: 0
}
.smart-credit-pkg .success-credit .smart-credit-pkg .btn {
margin-bottom: 20px
}
}
.smart-credit-pkg .credit-error .smart-credit-pkg .alert-danger {
background: #dc8180;
padding: 8px 20px
}
.smart-credit-pkg .credit-error .smart-credit-pkg .alert-danger p {
color: #fff;
font-size: 16px;
font-weight: 100;
line-height: 32px;
letter-spacing:.04px;
text-align: left
}
.smart-credit-pkg .credit-error .smart-credit-pkg .title {
width: 50%;
margin: 20px auto;
font-size: 21px;
line-height: 32px;
letter-spacing:.06px;
text-align: center;
font-weight: bold
}
.smart-credit-pkg .credit-error .smart-credit-pkg .report-card__price {
border: none
}
.smart-credit-pkg .credit-error .smart-credit-pkg .report-card__price span {
display: none
}
.smart-credit-pkg .smart-credit-account label {
color: #82aee2 !important;
font-weight: bold
}
@media (max-width: 991.98px) {
.smart-credit-pkg .credit-error .smart-credit-pkg .title {
width: 100%
}
}
@media (max-width: 767.98px) {
.smart-credit-pkg .smart-credit-error .smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header {
margin-bottom: 10px
}
.smart-credit-pkg .credit-error .smart-credit-pkg .report-row {
margin-top: 40px !important
}
.smart-credit-pkg .credit-error .smart-credit-pkg .report-row__aside {
margin-top: 30px
}
}
@media (max-width: 575.98px) {
.smart-credit-pkg .credit-error .smart-credit-pkg .alert-danger {
margin: 0 -30px;
padding: 10px 30px
}
}
.smart-credit-pkg .smart-credit .smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header p {
width: 90%
}
.smart-credit-pkg .smart-credit .smart-credit-pkg .report-row {
width: 60%;
margin: 0 auto
}
.smart-credit-pkg .smart-credit .smart-credit-pkg .btn {
font-weight: 100
}
.smart-credit-pkg .smart-credit .smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header .smart-credit-pkg .btn {
top: 25px
}
.smart-credit-pkg .inactive-btn {
color: #be4948 !important;
border-color: #be4948;
opacity: 1 !important
}
.smart-credit-pkg .inactive-btn:hover {
background: #be4948;
border-color: #be4948;
color: #fff
}
@media (max-width: 991.98px) {
.smart-credit-pkg .smart-credit .smart-credit-pkg .report-row {
width: 75%
}
}
@media (max-width: 767.98px) {
.smart-credit-pkg .smart-credit .smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header p {
width: 100%
}
.smart-credit-pkg .smart-credit .smart-credit-pkg .report-row {
width: 100%;
margin: 35px auto 0 !important
}
.smart-credit-pkg .smart-credit .smart-credit-pkg .form-title {
text-align: left
}
}
.smart-credit-pkg .smart-credit .smart-credit-pkg .form-element p {
font-size: 16px;
color: #4a4a4a;
line-height: 32px;
letter-spacing:.04px;
margin-bottom: 0
}
.smart-credit-pkg .smart-credit .smart-credit-pkg .form-element p a {
font-size: 16px;
color: #4a4a4a;
line-height: 32px;
letter-spacing:.04px;
text-decoration: none
}
.smart-credit-pkg .credit-contact .smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header p {
width: 80%;
color: #4a4a4a
}
.smart-credit-pkg .credit-contact .smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header .smart-credit-pkg .btn {
top: 25px
}
.smart-credit-pkg .credit-contact .smart-credit-pkg .form-title {
margin-bottom: 15px
}
.smart-credit-pkg .credit-contact .smart-credit-pkg .form-element p {
font-size: 16px;
color: #4a4a4a;
line-height: 32px;
letter-spacing:.04px;
margin-bottom: 0
}
.smart-credit-pkg .credit-contact .smart-credit-pkg .form-element p a {
font-size: 16px;
color: #4a4a4a;
line-height: 32px;
letter-spacing:.04px;
text-decoration: none
}
.smart-credit-pkg .credit-contact .smart-credit-pkg .report-card__logo, .smart-credit-pkg .credit-contact .smart-credit-pkg .report-card__price {
display: none
}
@media (max-width: 991.98px) {
.smart-credit-pkg .credit-contact .smart-credit-pkg .tab-content__header {
max-width: 100%
}
}
@media (max-width: 767.98px) {
.smart-credit-pkg .credit-contact .smart-credit-pkg .tab-content--report .smart-credit-pkg .tab-content__header p {
width: 100%
}
}
.smart-credit-pkg .smart-credit-page .smart-credit-pkg .form-element .smart-credit-pkg .btn.smart-credit-pkg .btn-link {
font-size: 16px;
text-decoration: underline !important;
display: block;
text-align: center;
margin-top: 15px
}
.smart-credit-pkg .readonly {
font-size: 16px;
font-weight: bold;
padding: 0 0 15px;
border: none !important;
border-bottom: 1px solid #f2f2f2 !important;
box-shadow: none;
border-radius: 0 !important;
height: 30px;
background: #fff !important
}
.smart-credit-pkg .terms-of-list {
border: 2px solid #f2f2f2;
padding: 10px;
font-size: 14px;
list-style: none;
height: 180px;
overflow-y: auto
}
.smart-credit-pkg .terms-of-list li + li {
margin-top: 10px
}
.smart-credit-pkg .terms-of-list::-webkit-scrollbar-thumb {
border-radius: 10px;
background-color: #82aee2
}
.smart-credit-pkg .terms-of-list::-webkit-scrollbar-track {
border-radius: 10px
}
.smart-credit-pkg .terms-of-list::-webkit-scrollbar {
width: 6px
}
.smart-credit-pkg .text-wrap-indent {
padding-left: 3em;
text-indent: -3em;
display: inline-block
}
.smart-credit-pkg .smartcredit-color {
}
.smart-credit-pkg .creditarmor-color {
color: #ce1f00
}
.smart-credit-pkg .report-card .provider-logo {
width: 50%;
}
.smart-credit-pkg .p-3 {
padding: 1rem!important;
}
.smart-credit-pkg .pb-2, .smart-credit-pkg .py-2 {
padding-bottom: 0.5rem!important;
}
.smart-credit-pkg .p-2 {
padding: 0.5rem!important;
}
.smart-credit-pkg .pt-3, .smart-credit-pkg .py-3 {
padding-top: 1rem!important;
}
.smart-credit-pkg .pb-2, .smart-credit-pkg .py-2 {
padding-bottom: 0.5rem!important;
}
.smart-credit-pkg .pb-2, .smart-credit-pkg .py-2 {
padding-bottom: 0.5rem!important;
}
.smart-credit-pkg .pt-2, .smart-credit-pkg .py-2 {
padding-top: 0.5rem!important;
}
.smart-credit-logo {
text-align: center;
}
.smart-credit-logo img {
width: 20%;
margin-bottom: -12px;
}
.smart-credit-pkg {
width: 25%;
padding-top: 3%;
padding-right: 40px;
font-family: "Lato", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

3592
resources/css/spinner.css vendored Normal file

File diff suppressed because one or more lines are too long

11
resources/js/Api/auth.js vendored Normal file
View File

@@ -0,0 +1,11 @@
import axiosClient from './../config/axios';
export default {
login(user) {
return axiosClient.post('/login', {
email: user.email,
password: user.password,
lang: 'en'
})
}
}

42
resources/js/Api/register.js vendored Normal file
View File

@@ -0,0 +1,42 @@
import axiosClient from '@/config/axios';
export default {
createAccount(account) {
return axiosClient.post('/create/account', account)
},
addProfile(data) {
return axiosClient.post(`/add/profile`, data)
},
getUserInfo(){
return axiosClient.get(`get-user-info`);
},
importCreditReportByEmail(data){
return axiosClient.post(`import/credit-report`,data);
},
makePayment(data){
return axiosClient.post(`make/payment`,data);
},
makePayments(data){
return axiosClient.post(`make/payments`,data);
},
getSecurityQuestion(){
return axiosClient.get(`get/security_question`);
},
customerCreateAndUpdate(data){
return axiosClient.post(`create/customer`,data);
},
verifyProfile(data){
return axiosClient.post(`customer/profile-verify`,data);
},
getIdentityQuestion(){
return axiosClient.get(`get/identity_question`);
},
postIdentityQuestion(data){
return axiosClient.post(`post/identity_question`,data);
},
reportProviderValidsation(data){
return axiosClient.post(`get/subscription`,data);
}
}

View File

@@ -0,0 +1,77 @@
import { reactive } from "@vue/reactivity";
import useValidators from './validators'
const errors = reactive({});
const errorMessage = reactive({});
export default function useFormValidation() {
const { isEmpty, minLength, isEmail, isNum,isInt,maxLength } = useValidators();
const validateNameField = (fieldName, fieldValue) => {
errors[fieldName] = !fieldValue ? isEmpty(fieldName, fieldValue) : minLength(fieldName, fieldValue, 4)
}
const validateEmailField = (fieldName, fieldValue) => {
errors[fieldName] = !fieldValue ? isEmpty(fieldName, fieldValue) : isEmail(fieldName, fieldValue)
}
const validatePhoneField = (fieldName, fieldValue) => {
errors[fieldName] = !fieldValue ? isEmpty(fieldName, fieldValue) : isNum(fieldName, fieldValue)
}
const validatePasswordField = (fieldName, fieldValue) => {
errors[fieldName] = !fieldValue ? isEmpty(fieldName, fieldValue) : minLength(fieldName, fieldValue, 8)
}
const validate = (rules,messages,fieldName, fieldValue) => {
let container = {}
container["required"] = isEmpty(fieldName,fieldValue)
container["email"] = !fieldValue ? isEmpty(fieldName, fieldValue) : isEmail(fieldName, fieldValue)
container["password"] = !fieldValue ? isEmpty(fieldName, fieldValue) : minLength(fieldName, fieldValue,6)
container["integer"] = !fieldValue ? isEmpty(fieldName, fieldValue) : isInt(fieldName, fieldValue)
for (let i in rules){
errors[fieldName] = "";
let value = rules[i];
if(container[value]){
errors[fieldName] = container[value];
break;
}else {
let splited = value.split(':')
if (splited.length == 2) {
container[value] = dyanamicValidation(splited, fieldValue, fieldName)
if(container[value]){
errors[fieldName] = container[value];
break;
}
}
}
}
}
const dyanamicValidation = (splited,fieldValue,fieldName) => {
let result = "";
switch (splited[0]){
case "min":
result = !fieldValue ? isEmpty(fieldName, fieldValue) : minLength(fieldName, fieldValue,splited[1])
break;
case "max":
result = !fieldValue ? isEmpty(fieldName, fieldValue) : maxLength(fieldName, fieldValue,splited[1])
break;
default:
break
}
return result;
}
return { errors,validate}
}

View File

@@ -0,0 +1,18 @@
import { computed } from "vue";
export default function useSubmitButtonState(user, errors) {
const isButtonDisabled = computed(() => {
let disabled = true;
for (let prop in user) {
if (!user[prop] || errors[prop]) {
disabled = true;
break;
}
disabled = false;
}
return disabled;
});
return { isButtonDisabled }
}

32
resources/js/Validation/validators.js vendored Normal file
View File

@@ -0,0 +1,32 @@
export default function useValidators() {
const isEmpty = (fieldName, fieldValue) => {
return !fieldValue ? `The ${fieldName} is required`:"";
}
const minLength = (fieldName, fieldValue, min) => {
return fieldValue.length < min ? `The ${fieldName} field must be at least ${min} characters long` : "";
}
const maxLength = (fieldName, fieldValue, max) => {
return fieldValue.length > max ? `The ${fieldName} cannot be greater than ${max} characters long` : "";
}
const isEmail = (fieldName, fieldValue) => {
let re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return !re.test(fieldValue) ? "The input is not a valid " + fieldName + " address" : "";
}
const isNum = (fieldName, fieldValue) => {
let isNum = /^\d+$/.test(fieldValue);
return !isNum ? "The " + fieldName + " field only have numbers" : "";
}
const isInt = (fieldName, fieldValue) => {
let test = /^\d+$/.test(fieldValue);
return !test ? "The " + fieldName + " must be integer" : "";
}
return { isEmpty, minLength, isEmail, isNum,isInt,maxLength}
}

53
resources/js/app.js vendored Normal file
View File

@@ -0,0 +1,53 @@
require('./bootstrap');
import { createApp } from 'vue'
import App from "./components/App";
import '../css/loader.css'
import '../css/spinner.css'
import '../css/register.css'
import '../css/payment.css'
import VueSweetalert2 from 'vue-sweetalert2';
import 'sweetalert2/dist/sweetalert2.min.css';
import store from "./store";
// routes
import router from "./router";
import {setSecurityKey} from "./helper";
// Global component
import AddProfile from "./components/partials/AddProfile";
import Step from "./components/partials/step";
import CreateAccount from "./components/partials/CreateAccount";
import ChoosePackage from "./components/partials/ChoosePackage";
import ValidationError from "./components/partials/ValidationError";
import TextInput from './components/Form/TextInput';
import SelectInput from './components/Form/SelectInput';
import TopArea from './components/partials/TopArea';
const app = createApp(App);
app.use(store)
app.use(router)
app.use(VueSweetalert2);
//app.use(DisableAutocomplete);
const base_url = API_BASE_URL
app.config.globalProperties.$base_url = base_url
app.config.globalProperties.success_code = 100
//app.config.globalProperties.$loader = `${base_url}/img/ajax-loader.gif`;
app.config.globalProperties.$loader = `https://i.stack.imgur.com/FhHRx.gif`;
app.component('AddProfile',AddProfile);
app.component('Step',Step);
app.component('CreateAccount',CreateAccount);
app.component('ChoosePackage',ChoosePackage);
app.component('ValidationError',ValidationError);
app.component('TextInput',TextInput);
app.component('SelectInput',SelectInput);
app.component('TopArea',TopArea);
app.mount('#app');
setSecurityKey(SECURITY_KEY)

28
resources/js/bootstrap.js vendored Normal file
View File

@@ -0,0 +1,28 @@
window._ = require('lodash');
/**
* We'll load the axios HTTP library which allows us to easily issue requests
* to our Laravel back-end. This library automatically handles sending the
* CSRF token as a header based on the value of the "XSRF" token cookie.
*/
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
/**
* Echo exposes an expressive API for subscribing to channels and listening
* for events that are broadcast by Laravel. Echo and event broadcasting
* allows your team to easily build robust real-time web applications.
*/
// import Echo from 'laravel-echo';
// window.Pusher = require('pusher-js');
// window.Echo = new Echo({
// broadcaster: 'pusher',
// key: process.env.MIX_PUSHER_APP_KEY,
// cluster: process.env.MIX_PUSHER_APP_CLUSTER,
// forceTLS: true
// });

View File

@@ -0,0 +1,13 @@
<template>
<div>
<div id="spinner" v-show="$store.getters['auth/getLoaderStatus']">
<div id="loading">
<span class="timer-loader">Loading</span>
</div>
</div>
<router-view/>
</div>
</template>

View File

@@ -0,0 +1,43 @@
<template>
<div class="input-div">
<select
:class="className"
@input="$emit('update:modelValue', $event.target.value)"
v-model="input"
@change="validateInput"
>
<option v-if="empty" value="" disabled>{{empty}}</option>
<option :key="item.id" v-for="item in items" :value="item.id">{{item.value}}</option>
</select>
<ValidationError :msg="errors[name]"/>
</div>
</template>
<script>
import { ref } from "vue";
import useFormValidation from "@/Validation/useFormValidation";
export default {
props:{
className:String|Object,
placeholder:String,
rules:Array,
items:Array,
empty:String
},
setup(props) {
let input = ref("");
const name = props.placeholder
const { validate, errors} = useFormValidation();
const validateInput = () => {
validate(props.rules,{},name, input.value);
};
if(props.errormsg){
errors[name] = props.errormsg
}
console.log("errors[name]",errors);
return { input,name, errors, validateInput };
},
};
</script>

View File

@@ -0,0 +1,47 @@
<template>
<div class="input-div">
<input
autocomplete="off"
:class="className"
:placeholder="placeholder"
:type="type"
@input="$emit('update:modelValue', $event.target.value)"
v-model="input"
@keyup="validateInput"
@blur="validateInput"
/>
<ValidationError :backend="backend" :msg="messages"/>
</div>
</template>
<script>
import {reactive, ref} from "vue";
import useFormValidation from "@/Validation/useFormValidation";
export default {
props:{
className:String|Object,
placeholder:String,
type:String,
rules:Array,
backend:String,
errors:Array
},
setup(props) {
let input = ref("");
let messages = ref([])
const name = props.placeholder
//const { validate, errors} = useFormValidation();
const validateInput = () => {
messages.value = []
if(props.errors[0]) {
messages.value.push(props.errors[0])
}
}
//console.log('ccc',messages)
return { input,name,messages,validateInput };
}
};
</script>

View File

@@ -0,0 +1,493 @@
<template>
<div class="container">
<div class="card">
<div class="form">
<div class="left-side">
<div class="left-heading">
<h3>{{company_Name}}</h3>
</div>
<Step step="2"/>
</div>
<div class="right-side">
<form @submit.prevent="makePayment" autocomplete="off"
class="form-element was-validated form-element--login" method="post"
novalidate="novalidate">
<div class="main active">
<TopArea :is_show_login="false"/>
<div class="text">
<h3> {{company_Name}}
<span v-if="reportProvider==='3'"> Partnered with {{reportProviders.labels[reportProvider]}}</span>
<span v-if="reportProvider==='1'"> Powerful Software System </span>
</h3>
<p>Let's start with some basic info.</p>
</div>
<SmartCreditLogo :package_id="formData.package_id" />
<!-- <SmartCreditLogo :package_id="formData.package_id" v-if="reportProvider==='3'"/>-->
<!-- <IdentityIqLogo :package_id="formData.package_id" v-if="reportProvider==='1'"/>-->
<div class="text" v-if="isButtonDisabled">
<p style="color:red;text-align:center">All fields are required</p>
</div>
<div class="text" v-if="message">
<p style="color:red;text-align:center">{{ message[0] }}</p>
</div>
<div class="input-text">
<div class="input-div">
<p class="edit-text">
<a href="#" @click.prevent="toggle('first_name')">Edit</a>
</p>
<input
ref="first_name"
autocomplete="off"
:class="{'warning':v$.formData.first_name.$errors.length}"
placeholder="First Name"
type="text"
v-model="formData.first_name"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.first_name"
:msg="v$.formData.first_name.$errors"/>
</div>
<div class="input-div">
<p class="edit-text">
<a href="#" @click.prevent="toggle('last_name')">Edit</a>
</p>
<input
ref="last_name"
autocomplete="off"
:class="{'warning':v$.formData.last_name.$errors.length}"
placeholder="Last Name"
type="text"
v-model="v$.formData.last_name.$model"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.last_name" :msg="v$.formData.last_name.$errors"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<p class="edit-text">
<a href="#" @click.prevent="toggle('email')">Edit</a>
</p>
<input
ref="email"
autocomplete="off"
:class="{'warning':errors.email}"
placeholder="Email"
type="text"
v-model="v$.formData.email.$model"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.email" :msg="v$.formData.email.$errors"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<p class="edit-text">
<a href="#" @click.prevent="toggle('password')">Edit</a>
</p>
<input
ref="password"
autocomplete="off"
:class="{'warning':errors.password}"
placeholder="Password"
type="password"
v-model="v$.formData.password.$model"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.password" :msg="v$.formData.password.$errors"/>
</div>
<div class="input-div" style="margin-top: 20px">
<input
ref="phone"
autocomplete="off"
:class="{'warning':errors.phone}"
placeholder="Phone, e,g. 954-604-4220"
type="text"
v-model="v$.formData.phone.$model"
/>
<ValidationError :backend="errors.phone" :msg="v$.formData.phone.$errors"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<input
ref="full_ssn"
autocomplete="off"
:class="{'warning':errors.full_ssn}"
placeholder="Last 4 digit of SSN"
type="text"
@keyup.prevent="ssnCompleted($event)"
v-model="v$.formData.full_ssn.$model"
:maxlength="min"
/>
<ValidationError :backend="errors.full_ssn" :msg="v$.formData.full_ssn.$errors"/>
</div>
<div class="input-div">
<input
ref="full_ssn"
autocomplete="off"
:class="{'warning':errors.birth_date}"
placeholder="Birth Date e.g, mm/dd/yyyy"
type="text"
v-model="v$.formData.birth_date.$model"
@keyup.prevent="birthDateCompleted($event)"
:maxlength="10"
/>
<ValidationError :backend="errors.birth_date" :msg="v$.formData.birth_date.$errors"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<input
ref="street_no"
autocomplete="off"
:class="{'warning':errors.street_no}"
placeholder="Street No."
type="text"
v-model="v$.formData.street_no.$model"
/>
<ValidationError :backend="errors.street_no" :msg="v$.formData.street_no.$errors"/>
</div>
<div class="input-div">
<input
ref="street_name"
autocomplete="off"
:class="{'warning':errors.street_name}"
placeholder="Street Name"
type="text"
v-model="v$.formData.street_name.$model"
/>
<ValidationError :backend="errors.street_name"
:msg="v$.formData.street_name.$errors"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<input
ref="city"
autocomplete="off"
:class="{'warning':errors.city}"
placeholder="City"
type="text"
v-model="v$.formData.city.$model"
/>
<ValidationError :backend="errors.city" :msg="v$.formData.city.$errors"/>
</div>
<div class="input-div">
<select ref="state" v-model="v$.formData.state.$model" >
<option value="">Please select state</option>
<option :key="item.id" v-for="item in stateList" :value="item.id">
{{ item.value }}
</option>
</select>
<ValidationError :backend="errors.state" :msg="v$.formData.state.$errors"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<input
ref="zip_code"
autocomplete="off"
:class="{'warning':errors.zip_code}"
placeholder="Zip Code"
type="text"
v-model="v$.formData.zip_code.$model"
/>
<ValidationError :backend="errors.zip_code" :msg="v$.formData.zip_code.$errors"/>
</div>
<div class="input-div">
<input
ref="ssn"
autocomplete="off"
:class="{'warning':errors.ssn}"
placeholder="Last 4 digit of SSN"
type="text"
v-model="v$.formData.ssn.$model"
:maxlength="4"
@keyup.prevent="ssnCompleted($event)"
/>
<ValidationError :backend="errors.ssn" :msg="v$.formData.ssn.$errors"/>
</div>
</div>
<div class="input-text" >
<div class="input-div buttons" style="text-align: left">
<button type="button" value="Back" class="back_button" @click.prevent="backToProfile" >
Back
</button>
</div>
<div class="input-div buttons" style="text-align: left">
<button :disabled="v$.formData.$invalid" type="submit" value="Next" class="next_button" >
Next Step
</button>
</div>
</div>
</div>
</form>
</div>
<SmartCreditPkg :package_id="formData.package_id" v-if="reportProvider === '3'" />
<IdentityIQPkg :package_id="formData.package_id" v-if="reportProvider === '1'" />
</div>
</div>
<PaymentModal @close="closeModal" :data="prepareformData" v-if="isModalVisible" />
<!-- <modal :questionAnswer="questionList" v-if="isQuestionModalVisible && reportProvider === '3' " />-->
</div>
<Footer/>
</template>
<script>
import useVuelidate from '@vuelidate/core'
import {required, email, integer,minLength} from '@vuelidate/validators'
import register from "./../../Api/register";
import {
getFormData,
setCustomerToken,
setFormData,
setReferenceNumber,
setStep,
setTrackingToken,
getLocalStorage,
setLocalStorage,
unsetLocalStorage
} from "../../helper";
import router from "../../router";
import state from "../../helper/state";
import pkg from "../../helper/package";
import SmartCreditLogo from "./SmartCreditLogo";
import SmartCreditPkg from "./SmartCreditPkg";
import modal from "./modal";
import PaymentModal from "./PaymentModal.vue";
import store from "../../store";
import Footer from "./Footer.vue";
import IdentityIQPkg from "./IdentityIQPkg";
import reportProviders from "../../helper/report_provider"
import IdentityIqLogo from "./IdentityIqLogo.vue";
export default {
components: {IdentityIqLogo, SmartCreditPkg, SmartCreditLogo,PaymentModal,modal,Footer,IdentityIQPkg },
setup() {
return {v$: useVuelidate()}
},
data() {
return {
reportProvider: REPORT_PROVIDER,
prepareformData:{},
formData: {
full_name:"",
first_name: "",
last_name: "",
email: "",
password: "",
street_no: "",
street_name: "",
city: "",
ssn: "",
state: "",
zip_code: "",
phone: "",
full_ssn:"",
package_id: 0,
birth_date:"",
amount:0,
question_id:"",
answer:"",
address:"",
card_number:"",
expiry:"",
cvv_no:"",
is_authorized:false
},
stateList: state,
errors:{},
message: [
"All fields are required"
],
isButtonDisabled:false,
disabled: 1,
package: pkg,
reportProviders:reportProviders,
value: null,
roleOptions:[],
isOpen: false,
min:4,
isModalVisible: false,
isQuestionModalVisible:false,
questionList:null,
appName : APP_NAME,
company_Name:COMPANY_NAME
}
},
async mounted() {
const userData = JSON.parse(getLocalStorage('formData')) || [];
this.formData.first_name = userData.first_name;
this.formData.last_name = userData.last_name;
this.formData.email = userData.email;
this.formData.password = userData.password;
this.formData.package_id = userData.package_id;
this.formData.amount = userData.amount;
this.formData.street_no= userData.street_no;
this.formData.street_name=userData.street_name;
this.formData.city=userData.city;
this.formData.ssn=userData.ssn;
this.formData.full_ssn= userData.full_ssn;
this.formData.state=userData.state??'';
this.formData.zip_code=userData.zip_code;
this.formData.phone=userData.phone;
this.formData.package_id=2;
this.formData.birth_date=userData.birth_date;
this.formData.amount = pkg.prices[this.formData.package_id];
this.formData.source_type = 1;
},
methods: {
async makePayment() {
const subscription_info = await register.reportProviderValidsation(this.formData);
if(subscription_info.status_code === 100) {
const data = await register.customerCreateAndUpdate(this.formData);
if (data.status_code == "100") {
unsetLocalStorage('formData');
setStep(6);
router.push({name: "success"});
} else {
this.message = [data.message];
this.errors = data.data
}
}else {
this.message = [subscription_info.message];
this.errors = subscription_info.data
}
},
toggle: function (refId) {
let attribute = "readonly"
if (refId === "state") {
attribute = "disabled"
}
this.$refs[refId].toggleAttribute(attribute)
},
backToProfile:function (){
setStep(1);
router.push({name: 'create-account'});
},
checkTermsAndService(e){
if(e.target.checked){
this.formData.is_authorized=e.target.checked;
}
else {
this.formData.is_authorized=null;
}
},
ssnCompleted(e) {
// if(this.formData.full_ssn.length === 3 || this.formData.full_ssn.length === 6) {
// this.formData.full_ssn += '-';
// }
// if(this.formData.full_ssn.length === 11){
// this.formData.ssn = this.formData.full_ssn.substring( 7, 11 );
// }
if(this.formData.full_ssn.length === 4){
this.formData.ssn = this.formData.full_ssn;
}
},
birthDateCompleted(e) {
if(this.formData.birth_date.length===2 || this.formData.birth_date.length===5){
this.formData.birth_date+='/';
}
},
showModal() {
this.isModalVisible = true;
},
closeModal(data) {
this.isModalVisible = false;
if(typeof(data.order_id) !== "undefined") {
this.showQuestionModal(data);
}
},
showQuestionModal(data) {
this.questionList = data;
this.isQuestionModalVisible = true;
},
closeQuestionModal() {
this.isQuestionModalVisible = false;
},
},
validations() {
return {
formData: {
first_name: {required},
last_name: {required},
email: {required, email},
password: {required},
street_no: {required},
street_name: {required},
city: {required},
ssn: {required,minLength:minLength(4)},
state: {required},
zip_code: {required},
phone: {required},
full_ssn: {required,minLength:minLength(this.min)},
birth_date: {required},
}
}
}
}
</script>
<style scoped>
.container .card {
width: 1300px;
}
.input-text {
margin: 15px 0;
display: flex;
gap: 20px;
}
.container .card .form {
background-image: unset;
}
.container .card .left-side {
width: 25%;
background-image: -webkit-linear-gradient(-90deg, #8ba8e0 0%, #4e74f2 100%);
}
.container .card .right-side {
width: 50%;
}
@media (max-width: 750px) {
.container .card .right-side {
width: 100%;
border-bottom-left-radius: 20px !important;
border-top-right-radius: 0px !important;
}
.container .card .left-side {
display: block;
width: 100%;
border-top-left-radius: 20px !important;
border-top-right-radius: 20px !important;
border-bottom-left-radius: 0px !important;
border-bottom-right-radius: 0px !important;
}
.container .card .form {
display: block;
}
.smart-credit-pkg {
width: 100%;
padding-top: 1%;
padding-right: 0px;
}
}
</style>

View File

@@ -0,0 +1,152 @@
<template>
<div class="container">
<div class="card">
<div class="form">
<div class="left-side">
<div class="left-heading">
<h3>Creditzombies</h3>
</div>
<Step step="3"/>
</div>
<div class="right-side">
<div class="main active" style="padding: 30px 40px 0px 20px">
<TopArea/>
</div>
<div class="row" style="padding:10px 20px">
<div class="col-xs-12 col-sm-12 col-md-4 col-lg-4">
<div @click="getPackage(1)" class="listing listing-radius listing-primary package-1" :class="{'listing-highlight':is_highlight1}">
<div class="shape">
<div class="shape-text">Best offer</div>
</div>
<div class="listing-content">
<h3 class="lead text-white text-bold">SmartCredit</h3>
<p class="text-white text-bold">${{ package.prices[1] }} (Basic)</p>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-4 col-lg-4">
<div @mouseover="toggleClassForPackage" @click="getPackage(2)" class="listing listing-radius listing-success">
<div class="shape">
<div class="shape-text">50%</div>
</div>
<div class="listing-content">
<h3 class="lead text-success text-bold">SmartCredit</h3>
<p class="text-success text-bold">${{ package.prices[2] }} (Premium)</p>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-4 col-lg-4">
<div @mouseover="toggleClassForPackage" @click="getPackage(3)" class="listing listing-danger listing-radius">
<div class="shape">
<div class="shape-text">hot</div>
</div>
<div class="listing-content">
<h3 class="lead text-danger text-bold">Identity IQ</h3>
<p class="text-danger text-bold">Unavailable at this time
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import pkg from "../../helper/package";
import {setAmount, setPackageId, setStep} from "../../helper";
import router from "../../router";
export default {
setup() {
},
data(){
return {
package:pkg,
is_highlight1:true
}
},
methods:{
toggleClassForPackage(){
this.is_highlight1 = false
},
conditionalAlert(message,package_id){
this.$swal({
title: 'Warning',
text: message,
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes'
}).then((result) => {
if (result.isConfirmed) {
setStep(5);
setPackageId(package_id)
setAmount(this.package.prices[package_id])
router.push({name: 'make-payment'})
}
});
},
getPackage(package_id) {
if(package_id == 3){
this.$swal(
"Currently this package is not available",
"",
"warning"
)
}else {
this.conditionalAlert("Are you sure want to take the $"+this.package.prices[package_id]+ ' ('+this.package.labels[package_id]+") package?", package_id);
}
}
}
}
</script>
<style scoped>
@import '../../../css/credit_report.css';
.container .card {
height: 600px;
}
.listing{
font-family: "Lato", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.text-white{
color: white;
}
.package-1{
background-color: #FF440A;
}
.listing-highlight{
-webkit-transform: scale(1.1);
transition: all 0.4s ease-in-out;
}
.package-1 .shape {
border-style: solid;
border-width: 0 100px 55px 0;
float: right;
height: 0;
width: 0;
transform: rotate(360deg);
}
.package-1 .shape-text {
color: #FF440A;
font-size: 12px;
font-weight: bold;
position: relative;
right: -45px;
top: -2px;
white-space: nowrap;
transform: rotate(28deg);
}
.package-1.listing-primary .shape{
border-color: transparent #fff transparent transparent;
}
</style>

View File

@@ -0,0 +1,239 @@
<template>
<div class="container">
<div class="card">
<div class="form">
<div class="left-side">
<div class="left-heading">
<h3>{{company_Name}}</h3>
</div>
<Step step="1"/>
</div>
<div class="right-side">
<form @submit.prevent="createAccount" autocomplete="off" class="form-element was-validated form-element--login" method="post" id="createAccountForm"
novalidate="novalidate">
<div class="main active">
<TopArea/>
<div class="text">
<h3>Creating your account only takes a few seconds.</h3>
<p>Let's start with some basic info.</p>
</div>
<div class="text" v-if="isButtonDisabled">
<p class="error-text">All fields are required</p>
</div>
<div class="text" v-else-if="errorMsg.message">
<p class="error-text">{{errorMsg.message[0]}}</p>
</div>
<div class="input-text">
<input
type="text"
placeholder="First Name"
name="first_name"
:backend="errors.first_name"
:errors="v$.formData.first_name.$errors"
v-model="formData.first_name"
:rules="['required']"
:className="{'warning':errors.first_name}"
/>
<input
type="text"
placeholder="Last Name"
name="last_name"
:backend="errors.last_name"
v-model="formData.last_name"
:errors="v$.formData.last_name.$errors"
:rules="['required']"
:className="{'warning':errors.last_name}"
/>
</div>
<div class="input-text">
<input
type="text"
placeholder="Email"
v-model="formData.email"
:errors="v$.formData.email.$errors"
:rules="['required','email']"
:className="{'warning':errors.email}"
/>
</div>
<div class="input-text">
<input
type="password"
placeholder="Password"
:backend="errors.password"
v-model="formData.password"
:errors="v$.formData.password.$errors"
:rules="['required','password']"
:className="{'warning':errors.password}"
/>
</div>
<div class="input-text">
<VueRecaptcha
:sitekey="siteKey"
:load-recaptcha-script="true"
@verify="handleSuccess"
@error="handleError"
/>
</div>
<div class="input-text">
<input type="checkbox" v-model="formData.is_click_acknowledge" @change.prevent="checkClickAcknowledge($event)">
<span style="font-weight:bold;color:purple;font-size: 12px;margin-top:5px">
By clicking on the "Next " button on the left, I acknowledge that I have read the Service Agreement, <a href="/terms-of-service" target="_blank">Terms of Use</a> and <a href="/terms-of-service" target="_blank">Privacy Policy</a> , and that I agree to their terms.
</span>
</div>
<div class="buttons">
<button :disabled="v$.formData.$invalid" type="submit" value="Next" class="next_button">Next Step</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<Footer/>
</template>
<script>
import register from "@/Api/register";
import {
setStep,
setUserEmail,
setUserId,
setSecurityKey,
setPackageId,
setAmount,
setUserLastName,
getPackageId,
setUserFirstName,
setUserPassword,
getUserFirstName,
getUserLastName,
getUserPassword,
getUserEmail,
getUserId, getLocalStorage,setLocalStorage
} from "../../helper";
import router from "../../router";
import { VueRecaptcha } from 'vue-recaptcha';
import useVuelidate from '@vuelidate/core'
import { required, email } from '@vuelidate/validators'
import { GOOGLE_CAPTCHA_SITEKEY } from "../../config/constants";
import pkg from "../../helper/package";
import Footer from "./Footer.vue";
export default {
components: {VueRecaptcha,Footer},
setup() {
return {v$: useVuelidate()};
},
data(){
return {
formData:{
first_name: "",
last_name: "",
email: "",
password: "",
captcha:"",
is_click_acknowledge:null
},
siteKey:GOOGLE_CAPTCHA_SITEKEY,
message:"",
errors:{},
errorMsg:{},
isButtonDisabled:true,
package:pkg,
appName : APP_NAME,
company_Name: COMPANY_NAME
}
},
async mounted() {
const userData = JSON.parse(getLocalStorage('formData'))|| [];
this.formData.first_name = userData.first_name;
this.formData.last_name = userData.last_name;
this.formData.email = userData.email;
this.formData.password = userData.password;
},
methods:{
handleSuccess(response){
if(response) {
this.formData.captcha = response;
}
},
handleError(){
this.formData.captcha = "";
},
async createAccount(){
const result = await register.createAccount(this.formData);
this.errors = {};
this.errorMsg = {};
if (result.status_code == 100) {
setLocalStorage('formData', JSON.stringify(this.formData));
setStep(2);
router.push({name: 'add-profile'});
} else {
this.errors = result.data
if(result.status_code == 400)
{
this.errorMsg.message = [result.message];
}else {
if (this.errors?.email) {
this.errorMsg.message = this.errors?.email;
}else if (this.errors?.password) {
this.errorMsg.message = this.errors?.password;
} else {
this.errorMsg.message = this.errors?.captcha;
}
}
if (this.errorMsg.message){
this.isButtonDisabled = false
}
}
},
checkClickAcknowledge(e){
if(e.target.checked){
this.formData.is_click_acknowledge=e.target.checked;
}
else {
this.formData.is_click_acknowledge=null;
}
},
},
validations () {
this.errors = {};
return {
formData: {
first_name: {required},
last_name: {required},
email:{required,email},
password:{required},
is_click_acknowledge:{required}
}
}
}
}
</script>
<style scoped>
@media (max-width: 750px) {
.container .card .right-side {
width: 100%;
border-radius: 0 !important;
}
.container .card .left-side {
display: block;
width: 100%;
border-radius: 0 !important;
}
.container .card .form {
display: block;
}
}
.error-text {
color: red;
text-align: center
}
</style>

View File

@@ -0,0 +1,213 @@
<template>
<div class="container">
<div class="card">
<div class="form">
<div class="left-side">
<div class="left-heading">
<h3>Creditzombies</h3>
</div>
<Step step="3"/>
</div>
<div class="right-side">
<form @submit.prevent autocomplete="off" class="form-element was-validated form-element--login" method="post"
novalidate="novalidate">
<div class="main active">
<TopArea/>
<div class="text">
<h2>Please input your smart credit email and password</h2>
<p>Let's start with some basic info.</p>
</div>
<div class="text" v-if="isButtonDisabled">
<p style="color:red;text-align:center">All fields are required</p>
</div>
<div class="text" v-if="errorMsg.message">
<p style="color:red;text-align:center">{{errorMsg.message[0]}}</p>
</div>
<div class="input-text">
<div class="input-div">
<p class="edit-text">
<a href="#" @click.prevent="editable('fname')">Edit</a>
</p>
<input
:readonly="inputReadOnly.fname"
autocomplete="off"
:class="{'warning':errors.first_name}"
placeholder="First Name"
type="text"
v-model="formData.first_name"
@keyup="validateInput"
@blur="validateInput"
/>
<ValidationError :msg="errors.first_name"/>
</div>
<div class="input-div">
<p class="edit-text">
<a href="#" @click.prevent="editable('lname')">Edit</a>
</p>
<input
:readonly="inputReadOnly.lname"
autocomplete="off"
:class="{'warning':errors.last_name}"
placeholder="Last Name"
type="text"
v-model="formData.last_name"
@keyup="validateInput"
@blur="validateInput"
/>
<ValidationError :msg="errors.last_name"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<p class="edit-text">
<a href="#" @click.prevent="editable('email')">Edit</a>
</p>
<input
:readonly="inputReadOnly.email"
autocomplete="off"
:class="{'warning':errors.email}"
placeholder="Email"
type="text"
v-model="formData.email"
@keyup="validateInput"
@blur="validateInput"
/>
<ValidationError :msg="errors.email"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<input
autocomplete="off"
:class="{'warning':errors.password}"
placeholder="Password"
type="password"
v-model="formData.password"
@keyup="validateInput"
@blur="validateInput"
/>
<ValidationError :msg="errors.password"/>
</div>
</div>
<div class="buttons" style="text-align: center">
<button :disabled="isButtonDisabled" @click="importCreditReport" type="button" value="Next" class="next_button">Import Credit Report</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</template>
<script>
import useFormValidation from "@/Validation/useFormValidation";
import useSubmitButtonState from "@/Validation/useSubmitButtonState";
import register from "@/Api/register";
import {inject, onMounted, reactive, ref} from "vue";
import state from "../../helper/state";
import {getPackageId, getUserEmail, getUserId, setStep} from "../../helper";
import router from "../../router";
export default {
setup() {
const swal = inject('$swal');
let formData = ref({
"first_name": "",
"last_name": "",
"email": "",
"password": ""
})
let inputReadOnly = ref({
"fname":true,
"lname":true,
"email":true
})
const stateList = state;
const errorMsg = reactive({
"message":""
})
let success = {}
let {errors} = useFormValidation();
// let {isButtonDisabled} = useSubmitButtonState(formData, errors);
let isButtonDisabled = ref(true)
const validateInput = () =>{
let f = formData.value;
let count = 0;
isButtonDisabled.value = true
if(f.first_name){
count++
}
if(f.last_name){
count++
}
if(f.email){
count++
}
if(f.password){
count++
}
if(count == 4){
isButtonDisabled.value = false
}
}
const editable = (value) =>{
inputReadOnly.value[value] = !inputReadOnly.value[value]
}
const importCreditReport = async () => {
if(isButtonDisabled){
const params = {
"email":formData.value.email,
"password":formData.value.password,
"package_id":getPackageId(),
"user_id":getUserId()
}
const response = await register.importCreditReportByEmail(params)
if(response.status_code == 100){
router.push({name:"success"})
}else{
swal(
response.message,
"",
"warning"
)
}
console.log('response',response)
}
}
console.log('errors',errors,isButtonDisabled)
onMounted(async ()=>{
let email = getUserEmail()
const userInfo = await register.getUserInfo()
if(userInfo.status_code == 100){
formData.value = userInfo.data
}
})
console.log('count',isButtonDisabled)
console.log('userInfo',formData)
return {validateInput,editable,inputReadOnly, formData,errors,importCreditReport, isButtonDisabled,stateList,errorMsg };
}
}
</script>
<style scoped>
.next_button{
width: 200px;
}
.container .card {
height: 550px;
}
</style>

View File

@@ -0,0 +1,35 @@
<template>
<div class="panel panel-default" style="text-align: center;padding: 10px">
<strong>
Secure SSL Area | This website is protected by secure portal © 2025 Clickletters LLC/M2C Academy LLC. All rights reserved.
</strong>
</div>
</template>
<script>
import useVuelidate from "@vuelidate/core";
export default {
name: 'Footer',
setup() {
return {v$: useVuelidate()};
},
data() {
},
mounted() {
},
methods: {
},
validations() {
},
}
</script>

View File

@@ -0,0 +1,78 @@
<template>
<div class="smart-credit-pkg">
<div class="link-area">
<a :href="`${app_base_url}/login`">
Already a member? Log In
</a>
</div>
<div style="margin-top: 40%;" class="report-card p-3 report-card--best report-card__aside mt-5 report-card--info">
<div class="report-card__header pb-3">
<h5>
<strong>
<img :src="`${img_url}`" alt="SmartCredit" class="provider-logo">
{{package.labels[package_id]}}
</strong>
</h5>
</div>
<!-- <div class="report-card__price p-2">-->
<!-- <h4> ${{package.prices[package_id]}}/mo </h4>-->
<!-- <span> Cancel Anytime </span>-->
<!-- </div>-->
<div class="report-card__points py-2 pt-3">
<ul class="points">
<li>
<i class="fas fa-check-circle"></i>
<strong> Unlimited {{company_Name}} Challenges/Letter Attacks </strong>
</li>
</ul>
</div>
<div class="report-card__points py-2">
<ul class="points" >
<li v-for="subitem in reportProviders.IdentityIQPoints"><i class="fas fa-check-circle"></i> {{subitem}}</li>
</ul>
</div>
<div class="report-card__text py-2">
<p>
Includes Full 6 Wave attacks,
that will allow you to effectively and efficiently
challenge all inaccurate negative items
with a click of a button in 45 seconds or less.
</p>
</div>
<div class="report-card__action">
</div>
</div>
</div>
</template>
<script>
import pkg from "../../helper/package";
import reportProviders from "../../helper/report_provider";
export default {
props:{
package_id:{
required:true
},
},
data(){
return {
package:pkg,
app_base_url: APP_URL,
reportProviders : reportProviders,
img_url : APP_URL+'/images/'+APP_NAME+'_logo.png',
company_Name:COMPANY_NAME
}
}
}
</script>
<style>
@import url("./../../../css/smartcredit.css");
</style>

View File

@@ -0,0 +1,24 @@
<template>
<div class="smart-credit-logo">
<img :src="`${img_url}`" class="provider-logo" alt="">
<strong> {{ package.labels[package_id] }}</strong>
</div>
</template>
<script>
import pkg from "../../helper/package";
export default {
props:{
package_id:{
required:true
}
},
data(){
return {
package:pkg,
image_base_url: APP_URL,
img_url : APP_URL+'/images/'+APP_NAME+'_logo.png',
}
}
}
</script>

View File

@@ -0,0 +1,471 @@
<template>
<div class="container">
<div class="card">
<div class="form">
<div class="left-side">
<div class="left-heading">
<h3>Creditzombies</h3>
</div>
<Step step="3"/>
</div>
<div class="right-side">
<form @submit.prevent="makePayment" autocomplete="off"
class="form-element was-validated form-element--login" method="post"
novalidate="novalidate">
<div class="main active">
<TopArea :is_show_login="false"/>
<div class="text">
<h2> Credit Counsel Elite Partnered with SmartCredit</h2>
<p>Let's start with some basic info.</p>
</div>
<SmartCreditLogo :package_id="formData.package_id" />
<div class="text" style="margin-top: 10px" v-if="isButtonDisabled">
<p style="color:red;text-align:center">All fields are required</p>
</div>
<div class="text" v-if="message">
<p style="color:red;text-align:center">{{ message[0] }}</p>
</div>
<div class="input-text">
<div class="input-div">
<input
ref="first_name"
autocomplete="off"
:class="{'warning':v$.formData.first_name.$errors.length}"
placeholder="First Name"
type="text"
v-model="formData.first_name"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.first_name"
:msg="v$.formData.first_name.$errors"/>
</div>
<div class="input-div">
<input
ref="last_name"
autocomplete="off"
:class="{'warning':v$.formData.last_name.$errors.length}"
placeholder="Last Name"
type="text"
v-model="v$.formData.last_name.$model"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.last_name" :msg="v$.formData.last_name.$errors"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<input
ref="email"
autocomplete="off"
:class="{'warning':errors.email}"
placeholder="Email"
type="text"
v-model="v$.formData.email.$model"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.email" :msg="v$.formData.email.$errors"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<input
ref="password"
autocomplete="off"
:class="{'warning':errors.password}"
placeholder="Password"
type="password"
v-model="v$.formData.password.$model"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.password" :msg="v$.formData.password.$errors"/>
</div>
<div class="input-div" >
<input
ref="phone"
autocomplete="off"
:class="{'warning':errors.phone}"
placeholder="Phone, e,g. 954-604-4220"
type="text"
v-model="v$.formData.phone.$model"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.phone" :msg="v$.formData.phone.$errors"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<input
ref="full_ssn"
autocomplete="off"
:class="{'warning':errors.full_ssn}"
placeholder="Full SSN e.g, 555-55-5555"
type="text"
@keyup.prevent="ssnCompleted($event)"
v-model="v$.formData.full_ssn.$model"
:maxlength="min"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.full_ssn" :msg="v$.formData.full_ssn.$errors"/>
</div>
<div class="input-div">
<input
ref="birth_date"
autocomplete="off"
:class="{'warning':errors.birth_date}"
placeholder="Birth Date e.g, mm/dd/yyyy"
type="text"
v-model="v$.formData.birth_date.$model"
@keyup.prevent="birthDateCompleted($event)"
:maxlength="10"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.birth_date" :msg="v$.formData.birth_date.$errors"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<input
ref="street_no"
autocomplete="off"
:class="{'warning':errors.street_no}"
placeholder="Street No."
type="text"
v-model="v$.formData.street_no.$model"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.street_no" :msg="v$.formData.street_no.$errors"/>
</div>
<div class="input-div">
<input
ref="street_name"
autocomplete="off"
:class="{'warning':errors.street_name}"
placeholder="Street Name"
type="text"
v-model="v$.formData.street_name.$model"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.street_name"
:msg="v$.formData.street_name.$errors"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<input
ref="city"
autocomplete="off"
:class="{'warning':errors.city}"
placeholder="City"
type="text"
v-model="v$.formData.city.$model"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.city" :msg="v$.formData.city.$errors"/>
</div>
<div class="input-div">
<select ref="state" v-model="v$.formData.state.$model" :aria-readonly="disabled">
<option value="">Please select state</option>
<option :key="item.id" v-for="item in stateList" :value="item.id">
{{ item.value }}
</option>
</select>
<ValidationError :backend="errors.state" :msg="v$.formData.state.$errors"/>
</div>
</div>
<div class="input-text">
<div class="input-div">
<input
ref="zip_code"
autocomplete="off"
:class="{'warning':errors.zip_code}"
placeholder="Zip Code"
type="text"
v-model="v$.formData.zip_code.$model"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.zip_code" :msg="v$.formData.zip_code.$errors"/>
</div>
<div class="input-div">
<input
ref="ssn"
autocomplete="off"
:class="{'warning':errors.ssn}"
placeholder="SSN"
type="text"
v-model="v$.formData.ssn.$model"
:maxlength="4"
@keyup.prevent="ssnCompleted($event)"
:readonly="disabled == 1"
/>
<ValidationError :backend="errors.ssn" :msg="v$.formData.ssn.$errors"/>
</div>
</div>
<div class="text">
<p>Provide Card Information</p>
</div>
<div class="input-text">
<div class="input-div">
<input
autocomplete="off"
:class="{'warning':errors.card_number}"
placeholder="Card Number"
type="text"
v-model="v$.formData.card_number.$model"
/>
<ValidationError :backend="errors.card_number"
:msg="v$.formData.card_number.$errors"/>
</div>
<div class="input-div">
<input
autocomplete="off"
:class="{'warning':errors.expiry}"
placeholder="Expiry e.g mm/yy"
type="text"
v-model="v$.formData.expiry.$model"
@keyup.prevent="cardExpiryCompleted($event)"
:maxlength="5"
/>
<ValidationError :backend="errors.expiry" :msg="v$.formData.expiry.$errors"/>
</div>
<div class="input-div">
<input
autocomplete="off"
:class="{'warning':errors.amount}"
placeholder="Amount"
type="text"
v-model="v$.formData.amount.$model"
disabled="disabled"
/>
<ValidationError :backend="errors.amount" :msg="v$.formData.amount.$errors"/>
</div>
</div>
<div class="input-text" style="gap:5px">
<input type="checkbox" v-model="formData.is_authorized" @change.prevent="checkTermsAndService($event)">
<span style="font-weight:bold;color:purple;font-size: 12px;margin-top:15px">
Yes I have read the <a href="/terms-of-service" target="_blank">SmartCredit terms of services</a> for this purchase and I totally Agree and Authorize this Charge of ${{ formData.amount }}</span>
</div>
<div class="input-text" >
<div class="input-div buttons" style="text-align: center">
<button :disabled="v$.formData.$invalid" ref="purchase-btn" type="submit" value="Next" class="next_button" >
Purchase
</button>
</div>
</div>
</div>
</form>
</div>
<SmartCreditPkg :package_id="formData.package_id"/>
</div>
</div>
</div>
</template>
<script>
import useVuelidate from '@vuelidate/core'
import {required, email, integer,minLength} from '@vuelidate/validators'
import register from "./../../Api/register";
import {
getFormData, getLocalStorage,
getPackageId, getUserQuestionAnswer,
setStep,
setUserId, unsetFormData, unsetUserQuestionAnswer,unsetLocalStorage
} from "../../helper";
import router from "../../router";
import state from "../../helper/state";
import pkg from "../../helper/package";
import SmartCreditLogo from "./SmartCreditLogo";
import SmartCreditPkg from "./SmartCreditPkg";
export default {
components: {SmartCreditPkg, SmartCreditLogo },
setup() {
return {v$: useVuelidate()}
},
data() {
return {
is_disable:true,
formData: {
first_name: "",
last_name: "",
email: "",
password: "",
street_no: "",
street_name: "",
city: "",
ssn: "",
state: "",
zip_code: "",
phone: "",
card_number: "",
full_ssn:"",
expiry: "",
amount: "",
package_id: 0,
birth_date:"",
is_authorized: null,
// questionList:[]
},
stateList: state,
errors: {},
message: [
"All fields are required"
],
disabled: 1,
package: pkg,
value: null,
roleOptions:[],
isOpen: false,
min:11
}
},
async mounted() {
const userData = JSON.parse(getLocalStorage('formData')) || [];
this.formData.first_name = userData.first_name;
this.formData.last_name = userData.last_name;
this.formData.email = userData.email;
this.formData.password = userData.password;
this.formData.package_id = userData.package_id;
this.formData.amount = userData.amount;
this.formData.street_no= userData.street_no;
this.formData.street_name=userData.street_name;
this.formData.city=userData.city;
this.formData.ssn=userData.ssn;
this.formData.full_ssn=userData.full_ssn;
this.formData.state=userData.state;
this.formData.zip_code=userData.zip_code;
this.formData.phone=userData.phone;
this.formData.package_id=userData.package_id;
this.formData.birth_date=userData.birth_date;
this.$refs['state'].toggleAttribute("disabled")
},
methods: {
async makePayment() {
this.$refs['purchase-btn'].toggleAttribute("disabled")
this.errors = {};
const data = await register.makePayment(this.formData);
if (data.status_code == "100") {
unsetLocalStorage('formData');
setUserId(data.data.id);
setStep(6);
router.push({name: "success"});
} else {
this.message[0] = data.message;
}
},
toggle: function (refId) {
let attribute = "readonly"
if (refId === "state") {
attribute = "disabled"
}
this.$refs[refId].toggleAttribute(attribute)
},
backToProfile:function (){
setStep(2);
router.push({name: 'add-profile'});
},
checkTermsAndService(e){
if(e.target.checked){
this.formData.is_authorized=e.target.checked;
}
else {
this.formData.is_authorized=null;
}
},
ssnCompleted(e) {
if(this.formData.full_ssn.length === 3 || this.formData.full_ssn.length === 6) {
this.formData.full_ssn += '-';
}
if(this.formData.full_ssn.length === 11){
this.formData.ssn = this.formData.full_ssn.substring( 7, 11 );
}
},
birthDateCompleted(e) {
if(this.formData.birth_date.length===2 ||this.formData.birth_date.length===5){
this.formData.birth_date+='/';
}
},
cardExpiryCompleted(e){
if(this.formData.expiry.length===2){
this.formData.expiry+='/';
}
}
},
validations() {
return {
formData: {
first_name: {required}, // Matches this.firstName
last_name: {required},
email: {required, email},
password: {required},
card_number: {required},
street_no: {required},
street_name: {required},
city: {required},
ssn: {required,minLength:minLength(4)},
state: {required},
zip_code: {required},
phone: {required},
expiry: {required},
amount: {required},
full_ssn: {required,minLength:minLength(this.min)},
birth_date: {required},
is_authorized:{required}
// questionList: {required}
}
}
}
}
</script>
<style scoped>
.container .card {
width: 1300px;
}
.input-text {
margin: 15px 0;
display: flex;
gap: 20px;
}
.container .card .form {
background-image: unset;
}
.container .card .left-side {
width: 25%;
background-image: -webkit-linear-gradient(-90deg, #8ba8e0 0%, #4e74f2 100%);
}
.container .card .right-side {
width: 50%;
}
@media (max-width: 750px) {
.container .card .right-side {
width: 100%;
border-bottom-left-radius: 20px !important;
border-top-right-radius: 0px !important;
}
.container .card .left-side {
display: block;
width: 100%;
border-top-left-radius: 20px !important;
border-top-right-radius: 20px !important;
border-bottom-left-radius: 0px !important;
border-bottom-right-radius: 0px !important;
}
.container .card .form {
display: block;
}
.smart-credit-pkg {
width: 100%;
padding-top: 1%;
padding-right: 0px;
}
}
</style>

View File

@@ -0,0 +1,430 @@
<template>
<div class="modal-backdrop" id="payment-modal-view">
<div class="modal">
<section class="modal-body" >
<slot name="body">
<form @submit.prevent="paymentFormSubmit" autocomplete="off"
class="form-element was-validated form-element--login" method="post"
novalidate="novalidate">
<div class="row body" id="payment-modal">
<div class="center">
<div class="payment-container">
<div class="row">
<div class="col-50 text" style="text-align: center;" v-if="message">
<p style="color:red;text-align:center;margin-top: -20px">{{ message[0] }}</p>
</div>
<button type="button" class="close" style="width: 20px;height: 20px;"
@click.prevent="closePaymentModal"> X
</button>
</div>
<div class="row header-panel">
<ScPartnerCzLogo/>
</div>
<div class="row">
<p class="top-text">$24.97/mo Cancel Anytime</p>
</div>
<div class="row">
<div class="col-50">
<h3 class="text-center-sm" style="padding-bottom: 10px;">Billing Information</h3>
<label for="fname" class="text-center-sm">Customer Information</label>
<label for="fname"><i class="fa fa-user"></i> Full Name</label>
<input
type="text"
placeholder="Full Name"
name="firstname"
:backend="errors.full_name"
v-model="data.full_name"
:rules="['required']"
disabled
:class="{'warning':errors.full_name}"
/>
<!-- <label class="text-warning" v-text="errors.full_name"></label>-->
<!-- <ValidationError :backend="errors.full_name" :msg="v$.formData.full_name.$errors"/>-->
<!-- <input type="text" id="fname" name="firstname" placeholder="John M. Doe">-->
<label for="email"><i class="fa fa-envelope"></i> Email</label>
<input
type="text"
placeholder="john@example.com"
name="email"
:backend="errors.email"
v-model="data.email"
:rules="['required']"
disabled
:class="{'warning':errors.email}"
/>
<div v-if="errors.email" class="invalid-feedback">
{{errors.email[0]}}
</div>
<label for="city"><i class="fa fa-institution"></i> City</label>
<input
type="text"
placeholder="New York"
name="city"
:backend="errors.city"
v-model="data.city"
:rules="['required']"
disabled
:class="{'warning':errors.city}"
/>
<div class="row">
<div class="col-50">
<label for="state">State</label>
<input
type="text"
placeholder="NY"
name="state"
:backend="errors.state"
v-model="data.state"
:rules="['required']"
disabled
:class="{'warning':errors.state}"
/>
<!-- <label class="text-warning" v-text="errors.state"></label>-->
<!-- <ValidationError :backend="errors.state" :msg="v$.formData.state.$errors"/>-->
<!-- <input type="text" id="state" name="state" placeholder="NY">-->
</div>
<div class="col-50">
<label for="zip">Zip</label>
<input
type="text"
placeholder="10001"
name="zip_code"
:backend="errors.zip_code"
v-model="data.zip_code"
:rules="['required']"
disabled
:class="{'warning':errors.zip_code}"
/>
<!-- <ValidationError :backend="errors.state" :msg="v$.data.state.$errors"/>-->
<!-- <input type="text" id="zip" name="zip" placeholder="10001">-->
</div>
</div>
<!-- <label class="text-warning" v-text="errors.city"></label>-->
<!-- <ValidationError :backend="errors.city" :msg="v$.formData.city.$errors"/>-->
<!-- <input type="text" id="city" name="city" placeholder="New York">-->
</div>
<div class="col-50">
<h3 class="text-center-sm" style="margin-bottom: 10px;">Payment</h3>
<label for="fname" class="text-center-sm">Accepted Cards</label>
<div class="text-center-sm" style="margin-bottom: 10px">
<img :src="`${app_base_url}/img/card.png`"
alt="card" class="provider-logo" style="height: 40px">
</div>
<label for="ccnum">Credit card number</label>
<input
autocomplete="off"
:class="{'warning':errors.card_number}"
placeholder="e.g, 4111111111111111"
type="text"
v-model="data.card_number"
/>
<!-- <label class="text-warning" v-text="errors.card_number"></label>-->
<div class="row">
<div class="col-50">
<label for="expyear">Expiry</label>
<input
autocomplete="off"
:class="{'warning':errors.expiry}"
placeholder="e.g, DD/YY"
type="text"
v-model="data.expiry"
@keyup.prevent="cardExpiryCompleted($event)"
:maxlength="5"
/>
</div>
<div class="col-50">
<label for="cvv">CVV</label>
<input
autocomplete="off"
:class="{'warning':errors.cvv_no}"
placeholder="e.g, 352"
type="text"
v-model="data.cvv_no"
/>
</div>
</div>
<div class="row">
<div class="col-50">
<label for="expmonth">Amount</label>
<input
autocomplete="off"
:class="{'warning':errors.amount}"
placeholder="amount"
type="text"
disabled
v-model="data.amount"
/>
</div>
</div>
<div class="row">
<div class="col-50">
<p class="aggrement">
<label class="terms-service-text">
<input v-model="data.is_authorized" type="checkbox" @change.prevent="checkTermsAndService($event)" />
Yes I have read the <a href="/terms-of-service" target="_blank"> <span v-if="reportProvider === '3'">SmartCredit</span> <span v-if="reportProvider === '1'">{{ company_Name }}</span> terms of services</a> for this purchase and I totally Agree and Authorize this Charge of ${{ data.amount }}
</label>
<span style="color:red;font-size: 12px" v-if="message">{{ message[1] }}</span>
</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-50 text bottom-panel">
<button type="submit" value="Pay" class="btn btn2" style="width:unset;">Pay</button>
</div>
</div>
<div class="row">
<div class="col-50">
<div class="col-50 bottom-panel">
<img :src="`${app_base_url}/img/sequrity.png`"
alt="security" class="provider-logo" style="height: 100px">
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</slot>
</section>
</div>
</div>
</template>
<script>
import useVuelidate from '@vuelidate/core'
import {required, email, integer,minLength} from '@vuelidate/validators'
import router from "../../router";
import register from "../../Api/register";
import pkg from "../../helper/package";
import {
getFormData,
setCustomerToken,
setFormData,
setReferenceNumber,
setStep,
setTrackingToken,
getLocalStorage,
setLocalStorage,
unsetLocalStorage
} from "../../helper";
import SmartCreditPkgView from "./SmartCreditPkgView.vue";
import ScPartnerCzLogo from "./sc_partner_cz_logo.vue";
import store from "../../store";
export default {
components: {SmartCreditPkgView,ScPartnerCzLogo },
name: 'PaymentModal.vue',
setup() {
return {v$: useVuelidate()}
},
props: {
data: {
type: Object,
default:{},
},
},
data() {
return {
formData: {
full_name:"",
first_name: "",
last_name: "",
email: "",
password: "",
street_no: "",
street_name: "",
city: "",
ssn: "",
state: "",
zip_code: "",
phone: "",
full_ssn:"",
package_id: 0,
birth_date:"",
amount:0,
card_number:"",
expiry:"",
cvv_no:"",
address:"",
is_authorized:null
},
errors:{},
message: [""],
isButtonDisabled:false,
disabled: 1,
package: pkg,
value: null,
roleOptions:[],
min:11,
app_base_url: APP_URL,
reportProvider: REPORT_PROVIDER,
company_Name:COMPANY_NAME
}
},
mounted() {
},
methods: {
closePaymentModal(data){
this.$emit('close',data);
},
async paymentFormSubmit() {
this.formData = this.$props.data;
this.v$.$validate();
this.errors = {};
this.formValidation();
if(!this.v$.$invalid && this.formData.is_authorized) {
setLocalStorage('formData', JSON.stringify(this.$props.data));
const data = await register.customerCreateAndUpdate(this.$props.data);
if (data.status_code == "100") {
if (this.reportProvider === '3') {
setTrackingToken(data.data.tracking_token);
setCustomerToken(data.data.customer_token);
setReferenceNumber(data.data.customer_token);
setReferenceNumber(data.data.questionAnswer.idVerificationCriteria.referenceNumber);
this.closePaymentModal(data.data.questionAnswer);
}else if(this.reportProvider === '1'){
unsetLocalStorage('formData');
setStep(6);
router.push({name: "success"});
}
} else {
this.message[0] = data.message;
this.errors = data.data;
//this.closePaymentModal(true)
//this.$swal(data.message);
}
}
},
showModal() {
this.isQuestionModalVisible = true;
},
cardExpiryCompleted(e){
if(this.$props.data.expiry.length===2){
this.$props.data.expiry+='/';
}
},
formValidation(){
for (let i in this.v$.$errors){
let key = this.v$.$errors[i].$property;
let msg = this.v$.$errors[i].$message
if(key && msg){
this.errors[key] = msg;
}
}
if(!this.formData.is_authorized)
{
this.message[1]= 'You have to agree the terms and privacy condition.';
}
},
checkTermsAndService(e){
if(e.target.checked){
this.$props.data.is_authorized = e.target.checked;
this.message[1]=null;
}
else {
this.$props.data.is_authorized = null;
}
},
},
validations() {
return {
formData: {
first_name: {required}, // Matches this.firstName
last_name: {required},
email: {required, email},
password: {required},
card_number: {required},
street_no: {required},
street_name: {required},
city: {required},
ssn: {required,minLength:minLength(4)},
state: {required},
zip_code: {required},
phone: {required},
amount: {required},
full_ssn: {required,minLength:minLength(this.min)},
birth_date: {required},
expiry:{required},
cvv_no:{required},
address:{required},
full_name:{required}
}
}
},
}
</script>
<style>
#payment-modal .smart-credit-pkg .p-3 {
padding: 0px !important;
}
#payment-modal .smart-credit-pkg .p-2 {
padding: 0px !important;
}
#payment-modal .terms-service-text{
font-weight:bold;
color:purple;
font-size: 12px;
margin-bottom: 5px;
line-height: 1.5;
}
#payment-modal-view .warning{
border: 1px solid red
}
#payment-modal-view .text-warning{
color: red;
}
.aggrement p {
margin: 20px;
background-color: #eee;
font-family: Arial,"Helvetica Neue",Helvetica,sans-serif;
}
.aggrement input {
margin:0 0px 0 0;
vertical-align: middle;
position: relative;
top: -1px;
}
.invalid-feedback {
width: 100%;
margin-top: -20px;
font-size: .875em;
color: #dc3545;
margin-bottom: 10px;
}
</style>

View File

@@ -0,0 +1,24 @@
<template>
<div class="smart-credit-logo">
<img :src="`${img_url}`" class="provider-logo" alt="">
<strong>{{ package.labels[package_id] }}</strong>
</div>
</template>
<script>
import pkg from "../../helper/package";
export default {
props:{
package_id:{
required:true
}
},
data(){
return {
package:pkg,
image_base_url: APP_URL,
img_url : APP_URL+'/images/'+APP_NAME+'_logo.png',
}
}
}
</script>

View File

@@ -0,0 +1,74 @@
<template>
<div class="smart-credit-pkg">
<div class="link-area">
<a :href="`${app_base_url}/login`">
Already a member? Log In
</a>
</div>
<div style="margin-top: 65%;" class="report-card p-3 report-card--best report-card__aside mt-5 report-card--info">
<div class="report-card__header pb-3">
<h5>
<!-- :src="`${app_base_url}/img/smartcredit_logo.png`"-->
<strong> <img
:src="`${img_url}`"
alt="SmartCredit" class="provider-logo"> {{package.labels[package_id]}}</strong>
</h5>
</div>
<!-- <div class="report-card__price p-2">-->
<!-- <h4>${{package.prices[package_id]}}/mo</h4> <span>Cancel Anytime</span>-->
<!-- </div>-->
<div class="report-card__points py-2 pt-3">
<ul class="points">
<!-- <li><i class="fas fa-check-circle"></i> <strong>Unlimited Creditzombies-->
<!-- Challenges</strong></li>-->
<li><i class="fas fa-check-circle"></i> <strong>Monthly 3 Bureau Reports &amp;
Scores</strong></li>
</ul>
</div>
<div class="report-card__points py-2 ">
<ul class="points">
<li><i class="fas fa-check-circle"></i> Identity Theft Insurance ($1m)</li>
<li><i class="fas fa-check-circle"></i> Credit Monitoring &amp; Alerts (TU)</li>
<li><i class="fas fa-check-circle"></i> ScoreTracker</li>
<li><i class="fas fa-check-circle"></i> ScoreBuilder</li>
<li><i class="fas fa-check-circle"></i> ScoreBoost</li>
<li><i class="fas fa-check-circle"></i> Money Manager</li>
<li><i class="fas fa-check-circle"></i> Smart Credit Report</li>
<li><i class="fas fa-check-circle"></i> PrivacyMaster</li>
</ul>
</div>
<div class="report-card__text py-2">
<p>Includes SmartCredit Money Manager with <strong>{{package.updateLimit[package_id]}}</strong> Transunion Report
&amp; Score updates in SmartCredit.</p>
</div>
<div class="report-card__action">
</div>
</div>
</div>
</template>
<script>
import pkg from "../../helper/package";
export default {
props:{
package_id:{
required:true
}
},
data(){
return {
package:pkg,
app_base_url: APP_URL,
img_url : APP_URL+'/images/'+APP_NAME+'_logo.png',
company_Name:COMPANY_NAME
}
}
}
</script>
<style>
@import url("./../../../css/smartcredit.css");
</style>

View File

@@ -0,0 +1,39 @@
<template>
<div class="smart-credit-pkg">
<div class="report-card p-3 report-card--best report-card__aside mt-5 report-card--info">
<div class="report-card__header pb-3">
<h5>
<strong>
<img :src="`${app_base_url}/img/smartcredit_logo.png`"
alt="SmartCredit" class="provider-logo"> {{package.labels[package_id]}}
</strong>
</h5>
</div>
<div class="report-card__price p-2">
<h4>${{package.prices[package_id]}}/mo</h4> <span>Cancel Anytime</span>
</div>
</div>
</div>
</template>
<script>
import pkg from "../../helper/package";
export default {
props:{
package_id:{
required:true
}
},
data(){
return {
package:pkg,
app_base_url: APP_URL,
}
}
}
</script>
<style>
@import url("./../../../css/smartcredit.css");
</style>

View File

@@ -0,0 +1,141 @@
<template>
<div class="container">
<div class="card">
<div class="form">
<div class="left-side">
<div class="left-heading">
<h3>{{ company_Name }}</h3>
</div>
<div class="steps-content">
<h3>Step <span class="step-number">3</span></h3>
<p class="step-number-content active">Enter your personal information to get closer to
companies.</p>
<p class="step-number-content d-none">Get to know better by adding your diploma,certificate and
education life.</p>
<p class="step-number-content d-none">Help companies get to know you better by telling then about
your past experiences.</p>
<p class="step-number-content d-none">Add your profile picture and let companies find youy
fast.</p>
</div>
<ul class="progress-bar">
<li class="active">Create Account</li>
<li class="active">Add Profile</li>
<li class="active">Credit Report</li>
</ul>
</div>
<div class="right-side">
<div class="main active">
<svg class="checkmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
<circle class="checkmark__circle" cx="26" cy="26" r="25" fill="none"/>
<path class="checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
</svg>
<div class="text congrats">
<h2 style="color:purple">Congratulations!</h2>
<p style="color:purple">On your sign up, please allow 24 hours or less for Admin to check your email and name to turn you on appropriately. </p>
</div>
<div class="input-text">
<div class="input-div buttons" style="text-align: center" >
<button @click.prevent="makePayment" type="submit" value="Next" class="next_button">
Get Started
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<Footer/>
</template>
<script>
import pkg from "../../helper/package";
import {onMounted} from 'vue';
import {
unsetStep,
getPackageId,
getUserId
} from "../../helper";
import register from "../../Api/register";
import router from "../../router";
import Footer from "./Footer.vue";
export default {
components: {Footer},
setup() {
onMounted(()=>{
unsetStep()
})
return {APP_URL};
},
data(){
return {
package_id:0,
package:pkg,
app_base_url: APP_URL,
company_Name:COMPANY_NAME
}
},
async mounted() {
this.package_id = getPackageId();
},
created() {
this.fbEvents();
},
methods:{
fbEvents(){
window.fbq('init', '450475028484130');
window.fbq('track', 'PageView');
window.fbq('track', 'Purchase');
},
async makePayment() {
localStorage.removeItem('formData');
window.location.href = `${this.app_base_url}/login`;
// const userData = JSON.parse(localStorage.getItem('formData')) || [];
// this.errors = {}
// let formData= {'user_id': getUserId(),'email':userData.email,'card_number':userData.card_number, 'expiry':userData.expiry,'amount':userData.amount,'full_ssn':userData.full_ssn,'phone':userData.phone ,'zip_code':userData.zip_code};
// const data = await register.makePayments(formData);
// if (data.status_code == "100") {
// localStorage.removeItem('formData');
// this.isOpen=false;
// this.isView=false;
// window.location.href = `${APP_URL}/login`;
// } else if (data.status_code == "402") {
// this.errors = data.data;
// } else {
// this.message[0] = data.message;
// }
},
}
}
</script>
<style scoped>
@import '../../../css/credit_report.css';
.container .card {
height: 550px;
}
@media (max-width: 750px) {
.container .card .right-side {
width: 100%;
border-bottom-left-radius: 20px !important;
border-top-right-radius: 0px !important;
}
.container .card .left-side {
display: block;
width: 100%;
border-top-left-radius: 20px !important;
border-top-right-radius: 20px !important;
border-bottom-left-radius: 0px !important;
border-bottom-right-radius: 0px !important;
}
.container .card .form {
display: block;
}
}
</style>

View File

@@ -0,0 +1,45 @@
<template>
<div class="top-area">
<div class="img-area">
<img class="login-logo" :src="`${img_url}`" alt="">
</div>
<div v-if="is_show_login" class="link-area">
<a href="#" @click="cookiesClear">
Already a member? Log In
</a>
</div>
</div>
</template>
<script>
import {unsetStep, unsetLocalStorage} from "../../helper";
export default {
props:{
is_show_login:{
default:true
}
},
data(){
return {
APP_URL : APP_URL,
img_url : APP_URL+'/images/'+APP_NAME+'_logo.png',
is_show_login:this.$props.is_show_login
}
},
methods:{
cookiesClear(){
unsetLocalStorage('formData');
unsetLocalStorage('userQuestionAnswer');
unsetStep();
window.location.href = `${APP_URL}/login`;
}
}
}
</script>
<style scoped>
.login-logo {
width: 150px;
height: auto;
}
</style>

View File

@@ -0,0 +1,25 @@
<template>
<div v-for="error of msg" :key="error.$uid" class="field-validation-error">
<span>
{{ error.$message }}
</span>
</div>
<div v-if="backend" class="field-validation-error">
<span>
{{ backend[0] }}
</span>
</div>
</template>
<script>
export default {
name: 'Error',
props: {
msg: Array|String,
backend:Array
},
mounted() {
// console.log(this.props.msg)
},
}
</script>

View File

@@ -0,0 +1,266 @@
<template>
<div class="modal-backdrop">
<div class="modal" >
<header class="modal-header">
<slot name="header">
Complete The Identity Question
</slot>
<!-- <button type="button" class="btn-close" @click="close" > x </button>-->
</header>
<section class="modal-body">
<div class="text" style="margin-top: 10px" v-if="isButtonDisabled">
<p style="color:red;text-align:center">All fields are required</p>
</div>
<div class="text" v-if="message">
<p style="color:red;text-align:center">{{ message[0] }}</p>
</div>
<slot name="body">
<fieldset class="fieldset-body">
<legend class="label-text">Complete The Identity Questions Below<br></legend>
<div v-for="(item,key) in questionAnswer.idVerificationCriteria">
<div class="input-text" v-if="getQuestionCounter(key) > 0">
<div class="input-div">
<label class="label-text" > {{item.displayName}} </label>
<div class="radio-text" v-for="subitem in item.choiceList.choice">
<div class="radio">
<label>
<input type="radio" @change="radioButtonEvent($event,getQuestionCounter(key))" v-model="answers['answer'+getQuestionCounter(key)]" :value="{id: subitem.key, name: subitem.display}">
{{subitem.display}}
</label>
</div>
</div>
</div>
</div>
</div>
</fieldset>
</slot>
</section>
<footer class="modal-footer">
<!-- <div class="input-div buttons" style="text-align: left">-->
<!-- <button type="button" value="Back" class="back_button" @click="close">-->
<!-- Skip-->
<!-- </button>-->
<!-- </div>-->
<div class="input-div buttons" style="text-align: right">
<button :disabled="isNotValid" type="submit" value="Next" class="next_button" @click="submitQuestion" >
Submit
</button>
</div>
</footer>
</div>
</div>
</template>
<script>
import useVuelidate from '@vuelidate/core'
import {required} from "@vuelidate/validators";
import {
getCustomerToken,
setStep,
getTrackingToken,
getReferenceNumber,
unsetTrackingToken,
unsetCustomerToken,
unsetReferenceNumber, setUserQuestionAnswer, getLocalStorage, setLocalStorage, unsetLocalStorage
} from "../../helper";
import router from "../../router";
import register from "../../Api/register";
export default {
name: 'modal.vue',
setup() {
return {v$: useVuelidate()}
},
data() {
let finalFormData = {};
let qa = this.questionAnswer.idVerificationCriteria;
finalFormData['email'] = "";
finalFormData['customerToken'] = "";
finalFormData['trackingToken'] = "";
finalFormData['referenceNumber'] = "";
let totalQuestion = 0;
let qa_assoc = {};
for (let q in qa){
if(this.getQuestionCounter(q) > 0) {
// qa_assoc[q] = qa[q].displayName;
qa_assoc[`answer${this.getQuestionCounter(q)}`] = {
'question':qa[q].displayName,
'answer':""
};
totalQuestion++;
}
}
finalFormData['security_question_answer'] = qa_assoc;
console.log('qa', 'key ', finalFormData)
return {
formData: finalFormData,
answers:{},
totalQuestion:totalQuestion,
isNotValid:true,
message: [
"All fields are required"
],
}
},
props: {
questionAnswer: {
type: Object,
},
},
mounted() {
},
methods: {
// close() {
// this.$emit('close');
// },
radioButtonEvent(event,counter){
this.isNotValid = true;
if(this.totalQuestion == Object.keys(this.answers).length){
console.log('correct')
this.isNotValid = false;
}
},
getQuestionCounter(key){
let result = "";
if(key){
result = key.replace('question','')
}
return result > 0 ? result : 0;
},
async submitQuestion (){
if(!this.isNotValid) {
const userData = JSON.parse(getLocalStorage('formData')) || [];
this.formData.email = userData.email;
this.formData.customerToken = getCustomerToken();
this.formData.trackingToken = getTrackingToken();
this.formData.referenceNumber = getReferenceNumber();
let security_question_answer = this.formData.security_question_answer
for(let ans in this.answers){
security_question_answer[ans].answer = this.answers[ans];
}
this.formData.security_question_answer = security_question_answer;
}
/*console.log('dddd',this.formData);
return false*/
// this.formData.questionAnswer = this.questionAnswer;
const data = await register.postIdentityQuestion(this.formData);
if (data.status_code == "100") {
unsetCustomerToken();
unsetTrackingToken();
unsetReferenceNumber();
unsetLocalStorage('formData');
setStep(6);
router.push({name: "success"});
// setLocalStorage('userQuestionAnswer', JSON.stringify(this.formData));
// setStep(5);
// router.push({name: "make-payment"});
}else {
this.message[0] = data.message;
}
},
},
validations() {
return {
formData: {
question1:{required},
question2:{required},
question3:{required},
answer1:{required},
answer2:{required},
answer3:{required},
}
}
}
}
</script>
<style scoped>
.modal-backdrop {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: rgba(0, 0, 0, 0.3);
display: flex;
justify-content: center;
align-items: center;
}
.modal {
width: 650px;
background: #FFFFFF;
box-shadow: 2px 2px 20px 1px;
overflow-x: auto;
display: flex;
flex-direction: column;
border-radius: 20px;
}
.modal-header,
.modal-footer {
padding: 15px;
display: flex;
}
.modal-header {
position: relative;
border-bottom: 1px solid #eeeeee;
color: #4AAE9B;
justify-content: space-between;
}
.modal-footer {
border-top: 1px solid #eeeeee;
flex-direction: column;
justify-content: flex-end;
margin: 0px 20px;
}
.modal-body {
position: relative;
padding: 0px 10px 10px 10px;
}
.btn-close {
position: absolute;
top: 0;
right: 0;
border: none;
font-size: 20px;
padding: 10px;
cursor: pointer;
font-weight: bold;
color: #4AAE9B;
background: transparent;
}
.btn-green {
color: white;
background: #4AAE9B;
border: 1px solid #4AAE9B;
border-radius: 2px;
}
.fieldset-body{
height:400px;
overflow: auto;
padding: 0px 20px;
border-radius: 10px;
margin: 0px 20px;
}
</style>

View File

@@ -0,0 +1,138 @@
<template>
<ul class="sc-partner-cz-logo brand-list list-inline">
<li class="brand-parent" v-if="reportProvider === '3'" >
<a class="brand-link" href="https://www.smartcredit.com">
<img :src="`${img_url}`" alt="SmartCredit" class="brand-logo">
</a>
</li>
<li class="hidden-xs" v-if="reportProvider === '3'" ><div class="separator"></div></li>
<li class="partner-text hidden-xs" v-if="reportProvider === '3'" ><p>Partnered<br>with</p></li>
<li class="brand-parent cobrand-parent hidden-xs">
<a class="brand-link" data-trigger="focus" tabindex="0" data-original-title="" title="">
<img src="https://cdn.consumerdirect.com/live/cobrand/11885/logo-uwq6q8hx.png" alt="" class="brand-logo" data-pagespeed-url-hash="4237170943" data-pagespeed-onload="pagespeed.CriticalImages.checkImageForCriticality(this);" onload="var elem=this;if (this==window) elem=document.body;elem.setAttribute('data-pagespeed-loaded', 1)" data-pagespeed-loaded="1">
</a>
</li>
<li class="partner-text hidden-xs" v-if="reportProvider === '1'" ><p> Powerful Software System </p></li>
</ul>
</template>
<script>
export default {
name: "sc_partner_cz_logo",
data(){
return {
reportProvider: REPORT_PROVIDER,
image_base_url: APP_URL,
img_url : APP_URL+'/images/'+APP_NAME+'_logo.png',
company_Name:COMPANY_NAME
}
}
}
</script>
<style scoped>
@media (min-width: 768px) {
.sc-partner-cz-logo .brand-list {
margin-left: -10px;
}
.sc-partner-cz-logo .separator {
border-right: 1px solid #ccc;
display: inline-block;
height: 36px;
margin: 10px 0;
}
}
.sc-partner-cz-logo{
display: inherit;
list-style: none;
margin:0 auto;
}
.sc-partner-cz-logo .brand-list {
margin: 0;
}
.sc-partner-cz-logo .list-inline {
padding-left: 0;
list-style: none;
margin-left: -5px;
}
.sc-partner-cz-logo .brand-parent {
height: 56px;
position: relative;
width: 187px;
transform-style: preserve-3d;
}
.sc-partner-cz-logo .brand-link {
cursor: pointer;
display: block;
position: absolute;
top: 50%;
-webkit-transform: translate(0, -50%);
-ms-transform: translate(0, -50%);
-o-transform: translate(0, -50%);
transform: translate(0, -50%);
}
.sc-partner-cz-logo .brand-logo {
display: inline;
height: auto;
width: 167px;
}
.sc-partner-cz-logo.brand-list li {
padding: 0 10px;
}
.sc-partner-cz-logo.brand-list .partner-text {
padding-right: 0;
vertical-align: top;
}
.sc-partner-cz-logo.brand-list .cobrand-parent {
padding-left: 0;
}
.sc-partner-cz-logo.brand-list li {
padding: 0 10px;
}
.sc-partner-cz-logo .brand-parent {
height: 56px;
position: relative;
width: 187px;
transform-style: preserve-3d;
}
.sc-partner-cz-logo.list-inline > li {
padding-right: 5px;
padding-left: 5px;
}
.sc-partner-cz-logo.brand-list .partner-text {
padding-right: 0;
vertical-align: top;
}
.sc-partner-cz-logo .partner-text p {
font-family: "Open Sans", "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif;
font-size: 65% !important;
font-style: italic !important;
line-height: 10px !important;
margin-bottom: 0 !important;
padding: 17px 0 !important;
padding-right: 10px !important;
text-align: left !important;
}
.sc-partner-cz-logo.list-inline > li {
display: inline-block;
padding-right: 5px;
padding-left: 5px;
}
.sc-partner-cz-logo .separator {
border-bottom: 1px solid #E9E9E9;
}
</style>

View File

@@ -0,0 +1,28 @@
<template>
<div>
<div class="steps-content">
<h3>Step <span v-if="step > 0" class="step-number">{{step}}</span></h3>
<p class="step-number-content active">Enter your personal information to get closer to
companies.</p>
<p class="step-number-content d-none">Get to know better by adding your diploma,certificate and
education life.</p>
<p class="step-number-content d-none">Help companies get to know you better by telling then about
your past experiences.</p>
<p class="step-number-content d-none">Add your profile piccture and let companies find youy
fast.</p>
</div>
<ul class="progress-bar">
<li :class="{'active':!step || step >= 1}">Create Account</li>
<li :class="{'active':step >= 2}">Add Profile</li>
<li :class="{'active':step >= 3}">Credit Report</li>
</ul>
</div>
</template>
<script>
export default {
name: 'Step',
props: {
step: String
}
}
</script>

85
resources/js/config/axios.js vendored Normal file
View File

@@ -0,0 +1,85 @@
import axios from "axios"
import router from "../router";
import store from "../store";
import {getSecurityKey} from "../helper";
const axiosClient = axios.create({
baseURL: API_BASE_URL
});
const actionScope = `loading`;
let requestsPending = 0;
const req = {
pending: () => {
requestsPending++;
store.dispatch('auth/setLoader', true)
},
done: () => {
requestsPending--;
store.dispatch('auth/setLoader', false)
}
};
axiosClient.interceptors.request.use(function (config) {
req.pending();
const security_key = getSecurityKey();
if(security_key) {
config.headers['security-key'] = security_key;
}
/* const token = getToken();
config.headers.Authorization = 'Bearer ' + token;
config.headers['Content-Type'] = 'application/json';
config.headers['Accept'] = 'application/json';
config.headers['Permission-Version'] = store.getters['auth/user']?.permission_version;*/
console.log('resquest.success', config);
//console.log('request loader_status', store.getters['auth/getLoaderStatus']);
return config;
}, function (error) {
req.done();
console.log('resquest.error', error);
return Promise.reject(error);
});
axiosClient.interceptors.response.use(
response => {
req.done();
console.log('response.success', response);
console.log('response loader_status', store.getters['auth/getLoaderStatus']);
return response.data;
},
async error => {
req.done();
console.log('resquest.error', error);
var originalRequest = error.config;
/*if (error.response.status == 500) {
router.push({ name: 'error-500' })
} else if (error.response.status == 401 && !originalRequest._retry) {
if (getRefreshToken()) {
const response = await store.dispatch('auth/authenticateWithRefreshToken')
if (isApiSuccess(response)) {
originalRequest._retry = true;
return axiosClient(originalRequest);
}
}
store.dispatch('auth/logout')
router.push({ name: 'error-401' })
}*/
return Promise.reject(error);
}
);
export default axiosClient

1
resources/js/config/constants.js vendored Normal file
View File

@@ -0,0 +1 @@
export const GOOGLE_CAPTCHA_SITEKEY = "6Lei2nQhAAAAAChSi_OiYy63AxlI_vJKm0b-LyN3"

368
resources/js/helper/index.js vendored Normal file
View File

@@ -0,0 +1,368 @@
import Cookies from 'js-cookie'
import state from "./state";
export const setCookie = (key,value) =>{
Cookies.set(key, value);
}
export const getCookie = (key) =>{
return Cookies.get(key);
}
export const unsetCookie = (key) =>{
return Cookies.remove(key);
}
export const setLocalStorage = (key,value) =>{
localStorage.setItem(key, value);
}
export const getLocalStorage = (key) =>{
return localStorage.getItem(key);
}
export const unsetLocalStorage = (key) =>{
return localStorage.removeItem(key);
}
export const getAmount = ()=> {
return Cookies.get('amount');
}
export const setAmount = (amount)=> {
Cookies.set('amount', amount);
}
export const getSecurityKey = ()=> {
return getCookie('security_key'); //Cookies.get('security_key');
}
export const setSecurityKey = (key)=> {
setCookie('security_key',key);
//Cookies.set('security_key', key);
}
export const setPackageId = (package_id) => {
Cookies.set('package_id', package_id);
}
export const getPackageId = () => {
//return Cookies.get('package_id');
return 2;
}
export const setStep = (step) => {
Cookies.set('step', step);
}
export const getStep = () => {
return Cookies.get('step');
}
export const setToken = (token) => {
Cookies.set('access_token', token);
}
export const unsetStep = () => {
Cookies.remove('step');
}
export const setUserId = (user_id) => {
Cookies.set('user_id', user_id);
}
export const setUserEmail = (email) => {
Cookies.set('user_email', email);
}
export const getUserId = () => {
return Cookies.get('user_id');
}
export const getUserEmail = () => {
return Cookies.get('user_email');
}
export const setRefreshToken = (token) => {
Cookies.set('refresh_token', token);
}
export const getToken = () => {
return Cookies.get('access_token');
}
export const getRefreshToken = () => {
return Cookies.get('refresh_token');
}
export const removeToken = () => {
Cookies.remove('access_token');
Cookies.remove('refresh_token');
}
export const isApiSuccess = (response) => {
return response.statuscode == 100;
}
export const setUserFirstName = (name) => {
Cookies.set('user_first_name', name);
}
export const setUserLastName = (name) => {
Cookies.set('user_last_name', name);
}
export const setUserPassword = (password) => {
Cookies.set('user_password', password);
}
export const setFormData = (form_data) => {
setCookie('user_input_data',form_data)
}
export const getFormData = () => {
return getCookie('user_input_data');
}
export const unsetFormData = () => {
unsetCookie('user_input_data');
}
export const setUserQuestionAnswer = (data) => {
setCookie('user_answer_data',data)
}
export const getUserQuestionAnswer = () => {
return getCookie('user_answer_data');
}
export const unsetUserQuestionAnswer = () => {
unsetCookie('user_answer_data');
}
export const setCardNumber = (cardNumber) => {
Cookies.set('card_number', cardNumber);
}
export const setExpiry = (expiry) => {
Cookies.set('expiry', expiry);
}
export const setFullSsn = (expiry) => {
Cookies.set('full_ssn', expiry);
}
export const setPhone = (phone) => {
Cookies.set('phone',phone);
}
export const setZip_Code = (zip_code) => {
Cookies.set('zip_code',zip_code);
}
export const setStreetNo=(data)=>{
Cookies.set('street_no',data);
}
export const setStreetName=(data)=>{
Cookies.set('street_name',data);
}
export const setCity=(data)=>{
Cookies.set('city',data);
}
export const setState=(data)=>{
Cookies.set('state',data);
}
export const setBirthDate=(data)=>{
Cookies.set('birth_date',data);
}
export const setQuestionId=(data)=>{
Cookies.set('question_id',data);
}
export const setAnswer=(data)=>{
Cookies.set('answer',data);
}
export const getFullSsn = () => {
return Cookies.get('full_ssn');
}
export const getUserFirstName = () => {
return Cookies.get('user_first_name');
}
export const getUserLastName = () => {
return Cookies.get('user_last_name');
}
export const getUserPassword = () => {
return Cookies.get('user_password');
}
export const getCardNumber = () => {
return Cookies.get('card_number');
}
export const getExpiry = () => {
return Cookies.get('expiry');
}
export const getPhone = () => {
return Cookies.get('phone');
}
export const getZip_Code = () => {
return Cookies.get('zip_code');
}
export const getStreetNo=()=>{
Cookies.get('street_no');
}
export const getStreetName=()=>{
Cookies.get('street_name');
}
export const getCity=()=>{
Cookies.get('city');
}
export const getState=()=>{
Cookies.get('state');
}
export const getBirthDate=()=>{
Cookies.get('birth_date');
}
export const getQuestionId=()=>{
Cookies.get('question_id');
}
export const getAnswer=()=>{
Cookies.get('answer');
}
export const setTrackingToken = (value) => {
Cookies.set('tracking_token', value);
}
export const getTrackingToken = () => {
return Cookies.get('tracking_token');
}
export const unsetTrackingToken = () => {
Cookies.remove('tracking_token');
}
export const setCustomerToken = (value) => {
Cookies.set('customer_token', value);
}
export const getCustomerToken = () => {
return Cookies.get('customer_token');
}
export const unsetCustomerToken = () => {
Cookies.remove('customer_token');
}
export const setReferenceNumber = (value) => {
Cookies.set('reference_number', value);
}
export const getReferenceNumber = () => {
return Cookies.get('reference_number');
}
export const unsetReferenceNumber = () => {
Cookies.remove('reference_number');
}
export const unsetUserFirstName = () => {
Cookies.remove('user_first_name');
}
export const unsetUserLastName = () => {
Cookies.remove('user_last_name');
}
export const unsetUserEmail = () => {
Cookies.remove('user_email');
}
export const unsetUserPassword = () => {
Cookies.remove('user_password');
}
export const unsetExpiry = () => {
Cookies.remove('expiry');
}
export const unsetCardNumber = () => {
Cookies.remove('card_number');
}
export const unsetFullSsn = () => {
Cookies.remove('full_ssn');
}
export const unsetStreetNo=()=>{
Cookies.remove('street_no');
}
export const unsetStreetName=()=>{
Cookies.remove('street_name');
}
export const unsetCity=()=>{
Cookies.remove('city');
}
export const unsetState=()=>{
Cookies.remove('state');
}
export const unsetBirthDate=()=>{
Cookies.remove('birth_date');
}
export const unsetQuestionId=()=>{
Cookies.remove('question_id');
}
export const unsetAnswer=()=>{
Cookies.remove('answer');
}
export const generateSidebarMenuItems = () => {
return [
{
title: "Dashboard",
route: "dashboard",
icon_classes: "sidebar-item-icon ti-home",
permit: true,
is_active: isSameRoute('dashboard')
},
{
title: "Merchants",
route: "merchants",
icon_classes: "sidebar-item-icon fa fa-users",
permit: true,
is_active: isSameRoute('merchants')
},
{
title: "Transactions",
aria_expands: ["all-transactions", "refunds", "chargeback"].includes(router.currentRoute.value.name),
sub_routes: ["all-transactions", "refunds", "chargeback"],
submenu: [
{
title: "All Transactions",
route: "all-transactions",
permit: hasPermission(constants.permissions.show_all_transaction_of_merchant),
is_active: isSameRoute('all-transactions')
},
{
title: "Refunds",
route: "refunds",
permit: hasPermission(constants.permissions.show_merchant_refunds),
is_active: isSameRoute('refunds')
},
{
title: "Chargeback",
route: "chargeback",
permit: hasPermission(constants.permissions.show_merchant_chargebacks),
is_active: isSameRoute('chargeback')
},
],
permit: true,
},
{
title: "Information",
route: "information",
icon_classes: "sidebar-item-icon ti-info",
permit: true,
is_active: isSameRoute('information')
},
]
}
export const hasPermission = (permission) => {
return store.getters['auth/getPermissions'][permission?.code]?.permit
}
export const getCurrentRouteQueries = (queriesProxy) => {
return Object.assign({}, queriesProxy)
}
export const isSameRoute = (route_name) => {
return router.currentRoute.value.name === route_name
}
export const getFormattedDaterangeFromDates = (start_date = new Date(new Date().setDate(new Date().getDate() - 30)), end_date = new Date()) => {
return `${start_date.getFullYear()}/${start_date.getMonth() + 1}/${start_date.getDate()} - ${end_date.getFullYear()}/${end_date.getMonth() + 1}/${end_date.getDate()}`
}
export const showNotification = (action, message, type = "default") => {
notify({
title: action,
text: message,
type: type
});
}

17
resources/js/helper/package.js vendored Normal file
View File

@@ -0,0 +1,17 @@
export default {
labels:{
"1":"Basic",
"2":"Premium",
"3":"",
},
prices:{
"1":"19.97",
"2":"24.97",
"3":"14.99"
},
updateLimit:{
"1":"2 monthly",
"2":"Unlimited",
"3":"",
}
}

5
resources/js/helper/packagePrices.js vendored Normal file
View File

@@ -0,0 +1,5 @@
export default {
"1":"99.7",
"2":"29.00",
"3":"14.99"
}

28
resources/js/helper/report_provider.js vendored Normal file
View File

@@ -0,0 +1,28 @@
export default {
labels:{
"3":"SmartCredit",
"1":"Identity IQ",
},
SmartCreditPoints : [
"Identity Theft Insurance ($1m)",
"Credit Monitoring &amp; Alerts (TU)",
"ScoreTracker" ,
"ScoreBuilder",
"ScoreBoost",
"Money Manager",
"Smart Credit Report",
"PrivacyMaster"
],
IdentityIQPoints : [
"Access to the powerful proprietary Metro 2 Method 5 points of Compliance process",
"Auto-import software systems",
"Full library of training" ,
"Auto load letters",
"Auto import items into letters",
"Processing reminder system",
"Customer support",
"Facebook group help"
],
}

135
resources/js/helper/securityQuestion.js vendored Normal file
View File

@@ -0,0 +1,135 @@
export default {
security_question: [
{
"id": "",
"value": "Please select security question"
},
{
"id": "1",
"value": "What was your high school mascot?"
},
{
"id": "2",
"value": "What was your first grade teacher's last name?"
},
{
"id": "3",
"value": "What was the make and model of your first car?"
},
{
"id": "4",
"value": "What is your mother's middle name?"
}, {
"id": "5",
"value": "What is your father's middle name?"
},
{
"id": "6",
"value": "What city were you born in?"
},
{
"id": "7",
"value": "What is your grandmother's first name (on your mother's side)?"
},
{
"id": "8",
"value": "What is your grandfather's first name (on your father's side)?"
}],
security_question_answer:{
'1':{'1':'1980','2':'1969','3':'2012','4':'2003','5':'None of the above'},
'2':{ '6':'Experian','7':'ConsumerDirect','8':'Equifax','9':'TransUnion','10':'None of the above'},
'3':{'11':'J. C. R. Licklider','12':'George Clooney','13':'Al Gore','14':'Howard Stark','15':'None of the above'},
},
security_question_and_answer: {
"idVerificationCriteria": {
"referenceNumber": "07271524018421870957",
"question1": {
"name": "YEAR_FOUNDED",
"displayName": "What year was ConsumerDirect (aka PathwayData, aka MyPerfectCredit) founded?",
"type": "MC",
"choiceList": {
"choice": [
{
"key": "1980",
"display": "1980"
},
{
"key": "1969",
"display": "1969"
},
{
"key": "2012",
"display": "2012"
},
{
"key": "2003",
"display": "2003"
},
{
"key": "!(1980^1969^2012^2003)",
"display": "None of the above"
}
]
}
},
"question2": {
"name": "NOT_CREDIT_BUREAU",
"displayName": "Which company is NOT a credit bureau?",
"type": "MC",
"choiceList": {
"choice": [
{
"key": "Experian",
"display": "Experian"
},
{
"key": "ConsumerDirect",
"display": "ConsumerDirect"
},
{
"key": "Equifax",
"display": "Equifax"
},
{
"key": "TransUnion",
"display": "TransUnion"
},
{
"key": "!(Experian^ConsumerDirect^Equifax^TransUnion^)",
"display": "None of the above"
}
]
}
},
"question3": {
"name": "INVENTED_INTERNET",
"displayName": "Who invented the internet?",
"type": "MC",
"choiceList": {
"choice": [
{
"key": "J. C. R. Licklider",
"display": "J. C. R. Licklider"
},
{
"key": "George Clooney",
"display": "George Clooney"
},
{
"key": "Al Gore",
"display": "Al Gore"
},
{
"key": "Howard Stark",
"display": "Howard Stark"
},
{
"key": "!(J. C. R. Licklider^George Clooney^Al Gore^Howard Stark^)",
"display": "None of the above"
}
]
}
}
}
}
}

230
resources/js/helper/state.js vendored Normal file
View File

@@ -0,0 +1,230 @@
export default [
{
"id": "AA",
"value": "AA"
},
{
"id": "AE",
"value": "AE"
},
{
"id": "AL",
"value": "AL"
},
{
"id": "AK",
"value": "AK"
},
{
"id": "AP",
"value": "AP"
},
{
"id": "AR",
"value": "AR"
},
{
"id": "AZ",
"value": "AZ"
},
{
"id": "CA",
"value": "CA"
},
{
"id": "CO",
"value": "CO"
},
{
"id": "CT",
"value": "CT"
},
{
"id": "DC",
"value": "DC"
},
{
"id": "DE",
"value": "DE"
},
{
"id": "FL",
"value": "FL"
},
{
"id": "GA",
"value": "GA"
},
{
"id": "GU",
"value": "GU"
},
{
"id": "HI",
"value": "HI"
},
{
"id": "IA",
"value": "IA"
},
{
"id": "ID",
"value": "ID"
},
{
"id": "IL",
"value": "IL"
},
{
"id": "IN",
"value": "IN"
},
{
"id": "KS",
"value": "KS"
},
{
"id": "KY",
"value": "KY"
},
{
"id": "LA",
"value": "LA"
},
{
"id": "MA",
"value": "MA"
},
{
"id": "MD",
"value": "MD"
},
{
"id": "ME",
"value": "ME"
},
{
"id": "MI",
"value": "MI"
},
{
"id": "MN",
"value": "MN"
},
{
"id": "MO",
"value": "MO"
},
{
"id": "MS",
"value": "MS"
},
{
"id": "MT",
"value": "MT"
},
{
"id": "NC",
"value": "NC"
},
{
"id": "ND",
"value": "ND"
},
{
"id": "NE",
"value": "NE"
},
{
"id": "NH",
"value": "NH"
},
{
"id": "NJ",
"value": "NJ"
},
{
"id": "NM",
"value": "NM"
},
{
"id": "NV",
"value": "NV"
},
{
"id": "NY",
"value": "NY"
},
{
"id": "OK",
"value": "OK"
},
{
"id": "OH",
"value": "OH"
},
{
"id": "OR",
"value": "OR"
},
{
"id": "PA",
"value": "PA"
},
{
"id": "PR",
"value": "PR"
},
{
"id": "RI",
"value": "RI"
},
{
"id": "SC",
"value": "SC"
},
{
"id": "SD",
"value": "SD"
},
{
"id": "TN",
"value": "TN"
},
{
"id": "TX",
"value": "TX"
},
{
"id": "UT",
"value": "UT"
},
{
"id": "VA",
"value": "VA"
},
{
"id": "VI",
"value": "VI"
},
{
"id": "VT",
"value": "VT"
},
{
"id": "WA",
"value": "WA"
},
{
"id": "WI",
"value": "WI"
},
{
"id": "WV",
"value": "WV"
},
{
"id": "WY",
"value": "WY"
}
];

80
resources/js/router/index.js vendored Normal file
View File

@@ -0,0 +1,80 @@
import { createRouter, createWebHistory } from 'vue-router'
import routes from './routes'
import store from './../store'
import {getStep} from "../helper";
const router = createRouter({
history: createWebHistory(APP_BASE_ROUTE),
routes: routes
})
function isAuthenticated() {
return store.getters['auth/authenticated'];
}
router.beforeEach((to, from, next) => {
/*if (!isAuthenticated() && to.matched.some(record => record.meta.requires_auth)) {
next({ name: 'login' })
} else if (isAuthenticated() && to.matched.some(record => record.meta.is_auth_route)) {
next({ name: 'dashboard' })
}
next()*/
const step = getStep();
// console.clear()
// console.log(from.path,to.path)
if(to.name == "add-profile"){
if(!step){
next({name:'create-account'})
}else if(step == 3){
next({name:'choose-package'})
}else if(step == 4){
next({name:'create-cr-account'})
}
}else if(to.name == "choose-package"){
if(!step){
next({name:'create-account'})
}else if(step == 2){
next({name:'add-profile'})
}else if(step == 4){
next({name:'create-cr-account'})
}
}else if(to.name == "create-account") {
if(step == 2){
next({name:'add-profile'})
}else if(step == 3){
next({name:'choose-package'})
}else if(step == 4){
next({name:'create-cr-account'})
}
}else if(to.name == "success"){
if(!step){
next({name:'create-account'})
}
}else if(to.name == "create-cr-account"){
if(!step){
next({name:'create-account'})
}else if(step == 2){
next({name:'add-profile'})
}else if(step == 3){
next({name:'choose-package'})
}else if(step == 5){
next({name:'make-payment'})
}
}else if(to.name == "make-payment"){
if(!step){
next({name:'create-account'})
}else if(step == 2){
next({name:'add-profile'})
}else if(step == 3){
next({name:'choose-package'})
}else if(step == 4){
next({name:'create-cr-account'})
}
}
next()
})
export default router

63
resources/js/router/routes.js vendored Normal file
View File

@@ -0,0 +1,63 @@
import CreateAccount from "../components/partials/CreateAccount";
import AddProfile from "../components/partials/AddProfile";
import ChoosePackage from "../components/partials/ChoosePackage";
import CreateCreditReportAccount from "../components/partials/CreateCreditReportAccount";
import Success from "../components/partials/Success";
import MakePayment from "../components/partials/MakePayment";
const routes = [
{
path: '/',
redirect: { name: 'create-account' }
},
{
path: '/create/account',
name: 'create-account',
component: CreateAccount,
meta: {
is_step: false
},
},
{
path: '/add/profile',
name: 'add-profile',
component: AddProfile,
meta: {
is_step: true
},
},
{
path: '/choose/package',
name: 'choose-package',
component: ChoosePackage,
meta: {
is_step: true
},
},
{
path: '/create/cr-account',
name: 'create-cr-account',
component: CreateCreditReportAccount,
meta: {
is_step: true
},
},
{
path: '/success',
name: 'success',
component: Success,
meta: {
is_step: true
},
},
{
path: '/make/payment',
name: 'make-payment',
component: MakePayment,
meta: {
is_step: true
},
},
]
export default routes;

105
resources/js/store/auth/actions.js vendored Normal file
View File

@@ -0,0 +1,105 @@
import axiosClient from '@/config/axios'
import { removeToken, isApiSuccess, setToken, setRefreshToken, getRefreshToken } from '@/helper'
export const login = ({ commit }, formData) => {
return axiosClient
.post('login', formData)
.then(response => {
if (isApiSuccess(response)) {
commit('SET_USER', response.data.user)
commit('SET_AUTHENTICATED', false)
}
return Promise.resolve(response)
}).catch(exception => {
commit('SET_USER', {})
commit('SET_AUTHENTICATED', false)
console.log('Login Action Exception', exception);
})
}
export const verifyOTP = ({ commit }, formData) => {
return axiosClient.post('verifysms', formData)
.then(response => {
if (isApiSuccess(response)) {
commit('SET_AUTHENTICATED', true)
setToken(response.data.access_token)
setRefreshToken(response.data.refresh_token)
}
return Promise.resolve(response)
}).catch(exception => {
console.log('verifyOTP Action Exception', exception);
})
}
export const authenticateWithRefreshToken = ({ commit }) => {
return axiosClient.post('refreshtoken', { refresh_token: getRefreshToken() })
.then(response => {
if (isApiSuccess(response)) {
commit('SET_AUTHENTICATED', true)
setToken(response.data.access_token)
setRefreshToken(response.data.refresh_token)
}
return Promise.resolve(response)
}).catch(exception => {
console.log('authenticateWithRefreshToken Action Exception', exception);
})
}
export const resendOTP = ({ commit }, formData) => {
return axiosClient.post('resendotp', formData)
.then(response => {
return Promise.resolve(response)
}).catch(exception => {
console.log('Login Action Exception', exception);
})
}
export const authUser = ({ commit }) => {
return axiosClient.get('get-authinfo')
.then(response => {
commit('SET_AUTHENTICATED', true)
commit('SET_USER', response.data.user)
commit('SET_PERMISSIONS', response.data.permissions)
return Promise.resolve(response)
}).catch(exception => {
console.log('Get Auth User Action Exception', exception);
})
}
export const logout = ({ commit }) => {
commit('SET_USER', {})
commit('SET_AUTHENTICATED', false)
removeToken()
}
export const setLoader = ({ commit }, status) => {
commit('SET_LOADER', status)
}
export const loadPermissions = ({ commit }) => {
return axiosClient
.get('getpermission')
.then(response => {
commit('SET_PERMISSIONS', response.data.permissions)
return Promise.resolve(response)
}).catch(exception => {
console.log('Permissions API Exception', exception);
})
}
export const isModalShow = ({ commit }, status) => {
commit('SHOW_MODAL', status)
}
export const userFormData = ({ commit }, value) => {
commit('SET_USER_FORM_DATA', value)
}

22
resources/js/store/auth/getters.js vendored Normal file
View File

@@ -0,0 +1,22 @@
export const authenticated = (state) => {
return state.authenticated
}
export const user = (state) => {
return state.user
}
export const getLoaderStatus = (state) => {
return state.loader;
}
export const getPermissions = (state) => {
return state.permissions;
}
export const getModalShowStatus = (state) => {
return state.isModalShow;
}
export const getUserFormData = (state) => {
return state.userFormData;
}

12
resources/js/store/auth/index.js vendored Normal file
View File

@@ -0,0 +1,12 @@
import state from "./state";
import * as getters from "./getters";
import * as mutations from "./mutations";
import * as actions from "./actions";
export default {
namespaced: true,
state,
getters,
mutations,
actions
}

22
resources/js/store/auth/mutations.js vendored Normal file
View File

@@ -0,0 +1,22 @@
export const SET_AUTHENTICATED = (state, value) => {
state.authenticated = value
}
export const SET_USER = (state, value) => {
state.user = value
}
export const SET_LOADER = (state, value) => {
state.loader = value
}
export const SET_PERMISSIONS = (state, value) => {
state.permissions = value
}
export const SHOW_MODAL = (state, value) => {
state.isModalShow = value
}
export const SET_USER_FORM_DATA = (state, value) => {
state.userFormData = value
}

8
resources/js/store/auth/state.js vendored Normal file
View File

@@ -0,0 +1,8 @@
export default {
authenticated: false,
user: {},
permissions: {},
loader: false,
isModalShow: false,
userFormData: {}
}

55
resources/js/store/dashboard/actions.js vendored Normal file
View File

@@ -0,0 +1,55 @@
import axiosClient from '../../config/axios'
import { isApiSuccess } from './../../helper'
export const load = ({ commit }) => {
return axiosClient
.get('dashboard')
.then(response => {
if (isApiSuccess(response)) {
commit('SET_MERCHANTS', response.data.merchants)
commit('SET_ANNOUNCEMENTS', response.data.announcements)
}
return Promise.resolve(response)
}).catch(exception => {
commit('SET_MERCHANTS', [])
commit('SET_ANNOUNCEMENTS', [])
console.log('Dashboard Data Load Exception: ', exception);
})
}
export const approveChargebackRequest = ({ commit }, payload) => {
return axiosClient
.post('chargeback/approve', payload)
.then(response => {
return Promise.resolve(response)
}).catch(exception => {
console.log('Approve Chargeback Request Exception: ', exception);
})
}
export const rejectChargebackRequest = ({ commit }, payload) => {
return axiosClient
.post('chargeback/reject', payload)
.then(response => {
return Promise.resolve(response)
}).catch(exception => {
console.log('Reject Chargeback Request Exception: ', exception);
})
}
export const refundRequest = ({ commit }, payload) => {
return axiosClient
.post('refundrequest', payload,{
headers: {
'Content-Type': 'multipart/form-data'
}
})
.then(response => {
return Promise.resolve(response)
}).catch(exception => {
console.log('Refund Request Exception: ', exception);
})
}

11
resources/js/store/dashboard/getters.js vendored Normal file
View File

@@ -0,0 +1,11 @@
export const merchants = (state) => {
return state.merchants
}
export const announcements = (state) => {
return state.announcements
}
export const getSidebarMenuItems = (state) => {
return state.sidebar_menu_items
}

12
resources/js/store/dashboard/index.js vendored Normal file
View File

@@ -0,0 +1,12 @@
import state from "./state";
import * as getters from "./getters";
import * as mutations from "./mutations";
import * as actions from "./actions";
export default {
namespaced: true,
state,
getters,
mutations,
actions
}

View File

@@ -0,0 +1,13 @@
import { generateSidebarMenuItems } from "@/helper"
export const SET_MERCHANTS = (state, value) => {
state.merchants = value
}
export const SET_ANNOUNCEMENTS = (state, value) => {
state.announcements = value
}
export const SET_SIDEBAR_MENU_ITEMS = (state) => {
state.sidebar_menu_items = generateSidebarMenuItems()
}

5
resources/js/store/dashboard/state.js vendored Normal file
View File

@@ -0,0 +1,5 @@
export default {
merchants: [],
announcements: [],
sidebar_menu_items: []
}

51
resources/js/store/global/actions.js vendored Normal file
View File

@@ -0,0 +1,51 @@
import axiosClient from '@/config/axios'
export const loadMerchants = ({ commit }, filter_data) => {
return axiosClient
.post('merchantlist', filter_data)
.then(response => {
return Promise.resolve(response)
}).catch(exception => {
console.log('Merchants API Exception', exception);
})
}
export const allTransactions = ({ commit }, filter_data) => {
return axiosClient
.post('alltransaction', filter_data)
.then(response => {
return Promise.resolve(response)
}).catch(exception => {
console.log('All Transaction API Exception', exception);
})
}
export const loadRefundedTransactions = ({ commit }, filter_data) => {
return axiosClient
.post('refundedtransaction', filter_data)
.then(response => {
return Promise.resolve(response)
}).catch(exception => {
console.log('Refunded API Exception', exception);
})
}
export const loadChargebackTransactions = ({ commit }, filter_data) => {
return axiosClient
.get('chargeback/list', { params: filter_data })
.then(response => {
return Promise.resolve(response)
}).catch(exception => {
console.log('Chargeback API Exception', exception);
})
}
export const loadIntegratorInformation = () => {
return axiosClient
.get('integratorinfo')
.then(response => {
return Promise.resolve(response)
}).catch(exception => {
console.log('Integrator Information API Exception', exception);
})
}

0
resources/js/store/global/getters.js vendored Normal file
View File

12
resources/js/store/global/index.js vendored Normal file
View File

@@ -0,0 +1,12 @@
import state from "./state";
import * as getters from "./getters";
import * as mutations from "./mutations";
import * as actions from "./actions";
export default {
namespaced: true,
state,
getters,
mutations,
actions
}

View File

1
resources/js/store/global/state.js vendored Normal file
View File

@@ -0,0 +1 @@
export default {}

13
resources/js/store/index.js vendored Normal file
View File

@@ -0,0 +1,13 @@
import { createStore } from 'vuex';
import auth from "./auth";
import dashboard from "./dashboard";
import global from "./global";
export default createStore({
modules: {
auth,
dashboard,
global
},
});

View File

@@ -0,0 +1,19 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Authentication Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used during authentication for various
| messages that we need to display to the user. You are free to modify
| these language lines according to your application's requirements.
|
*/
'failed' => 'These credentials do not match our records.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
];

View File

@@ -0,0 +1,19 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Pagination Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the paginator library to build
| the simple pagination links. You are free to change them to anything
| you want to customize your views to better match your application.
|
*/
'previous' => '&laquo; Previous',
'next' => 'Next &raquo;',
];

View File

@@ -0,0 +1,22 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Password Reset Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are the default lines which match reasons
| that are given by the password broker for a password update attempt
| has failed, such as for an invalid token or invalid new password.
|
*/
'reset' => 'Your password has been reset!',
'sent' => 'We have emailed your password reset link!',
'throttled' => 'Please wait before retrying.',
'token' => 'This password reset token is invalid.',
'user' => "We can't find a user with that email address.",
];

View File

@@ -0,0 +1,151 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| as the size rules. Feel free to tweak each of these messages here.
|
*/
'accepted' => 'The :attribute must be accepted.',
'active_url' => 'The :attribute is not a valid URL.',
'after' => 'The :attribute must be a date after :date.',
'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
'alpha' => 'The :attribute may only contain letters.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, dashes and underscores.',
'alpha_num' => 'The :attribute may only contain letters and numbers.',
'array' => 'The :attribute must be an array.',
'before' => 'The :attribute must be a date before :date.',
'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
'between' => [
'numeric' => 'The :attribute must be between :min and :max.',
'file' => 'The :attribute must be between :min and :max kilobytes.',
'string' => 'The :attribute must be between :min and :max characters.',
'array' => 'The :attribute must have between :min and :max items.',
],
'boolean' => 'The :attribute field must be true or false.',
'confirmed' => 'The :attribute confirmation does not match.',
'date' => 'The :attribute is not a valid date.',
'date_equals' => 'The :attribute must be a date equal to :date.',
'date_format' => 'The :attribute does not match the format :format.',
'different' => 'The :attribute and :other must be different.',
'digits' => 'The :attribute must be :digits digits.',
'digits_between' => 'The :attribute must be between :min and :max digits.',
'dimensions' => 'The :attribute has invalid image dimensions.',
'distinct' => 'The :attribute field has a duplicate value.',
'email' => 'The :attribute must be a valid email address.',
'ends_with' => 'The :attribute must end with one of the following: :values.',
'exists' => 'The selected :attribute is invalid.',
'file' => 'The :attribute must be a file.',
'filled' => 'The :attribute field must have a value.',
'gt' => [
'numeric' => 'The :attribute must be greater than :value.',
'file' => 'The :attribute must be greater than :value kilobytes.',
'string' => 'The :attribute must be greater than :value characters.',
'array' => 'The :attribute must have more than :value items.',
],
'gte' => [
'numeric' => 'The :attribute must be greater than or equal :value.',
'file' => 'The :attribute must be greater than or equal :value kilobytes.',
'string' => 'The :attribute must be greater than or equal :value characters.',
'array' => 'The :attribute must have :value items or more.',
],
'image' => 'The :attribute must be an image.',
'in' => 'The selected :attribute is invalid.',
'in_array' => 'The :attribute field does not exist in :other.',
'integer' => 'The :attribute must be an integer.',
'ip' => 'The :attribute must be a valid IP address.',
'ipv4' => 'The :attribute must be a valid IPv4 address.',
'ipv6' => 'The :attribute must be a valid IPv6 address.',
'json' => 'The :attribute must be a valid JSON string.',
'lt' => [
'numeric' => 'The :attribute must be less than :value.',
'file' => 'The :attribute must be less than :value kilobytes.',
'string' => 'The :attribute must be less than :value characters.',
'array' => 'The :attribute must have less than :value items.',
],
'lte' => [
'numeric' => 'The :attribute must be less than or equal :value.',
'file' => 'The :attribute must be less than or equal :value kilobytes.',
'string' => 'The :attribute must be less than or equal :value characters.',
'array' => 'The :attribute must not have more than :value items.',
],
'max' => [
'numeric' => 'The :attribute may not be greater than :max.',
'file' => 'The :attribute may not be greater than :max kilobytes.',
'string' => 'The :attribute may not be greater than :max characters.',
'array' => 'The :attribute may not have more than :max items.',
],
'mimes' => 'The :attribute must be a file of type: :values.',
'mimetypes' => 'The :attribute must be a file of type: :values.',
'min' => [
'numeric' => 'The :attribute must be at least :min.',
'file' => 'The :attribute must be at least :min kilobytes.',
'string' => 'The :attribute must be at least :min characters.',
'array' => 'The :attribute must have at least :min items.',
],
'not_in' => 'The selected :attribute is invalid.',
'not_regex' => 'The :attribute format is invalid.',
'numeric' => 'The :attribute must be a number.',
'password' => 'The password is incorrect.',
'present' => 'The :attribute field must be present.',
'regex' => 'The :attribute format is invalid.',
'required' => 'The :attribute field is required.',
'required_if' => 'The :attribute field is required when :other is :value.',
'required_unless' => 'The :attribute field is required unless :other is in :values.',
'required_with' => 'The :attribute field is required when :values is present.',
'required_with_all' => 'The :attribute field is required when :values are present.',
'required_without' => 'The :attribute field is required when :values is not present.',
'required_without_all' => 'The :attribute field is required when none of :values are present.',
'same' => 'The :attribute and :other must match.',
'size' => [
'numeric' => 'The :attribute must be :size.',
'file' => 'The :attribute must be :size kilobytes.',
'string' => 'The :attribute must be :size characters.',
'array' => 'The :attribute must contain :size items.',
],
'starts_with' => 'The :attribute must start with one of the following: :values.',
'string' => 'The :attribute must be a string.',
'timezone' => 'The :attribute must be a valid zone.',
'unique' => 'The :attribute has already been taken.',
'uploaded' => 'The :attribute failed to upload.',
'url' => 'The :attribute format is invalid.',
'uuid' => 'The :attribute must be a valid UUID.',
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap our attribute placeholder
| with something more reader friendly such as "E-Mail Address" instead
| of "email". This simply helps us make our message more expressive.
|
*/
'attributes' => [],
];

View File

@@ -0,0 +1,24 @@
<div id="new-report-modal" class="modal fade in" role="dialog">
<div class="modal-dialog modal-dialog-centered" style="width:70% !important; margin: 0 auto">
<form method="post" action="{{route('upload.report')}}">
@csrf
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title" style="margin-bottom: 10px;">New credit report</h4>
</div>
<div class="modal-body">
<textarea placeholder="UPLOAD CREDIT REPORT HTML" class="form-control" name="html_content" rows="10"></textarea>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default epic-btn" data-dismiss="modal">Close</button>
<button name="new_process_html" type="submit" class="btn btn-primary btn2">Upload</button>
</div>
</div>
</form>
</div>
</div>
<script>
$('#new-report-modal').modal('show')
</script>

View File

@@ -0,0 +1,74 @@
@extends('layouts.app')
<link href="{{asset('css/login.css')}}" rel="stylesheet"/>
@section('content')
<div>
<a class="hiddenanchor" id="signup"></a>
<a class="hiddenanchor" id="signin"></a>
<div class="login_wrapper" id="login-panel">
<div class="animate form login_form">
<section class="login_content">
<form class="form-horizontal" method="POST" action="{{ route('login') }}">
{{ csrf_field() }}
@php
$logo_path = 'images/'.config('app.name').'_logo.png';
@endphp
<h1><img src="{{ asset($logo_path) }}" alt="" class="login-logo" /></h1>
@if($errors->has('message'))
<div class="alert alert-danger" onclick="this.classList.add('hidden')">{{ $errors->first('message') }}</div>
@endif
<div {{ $errors->has('email') ? ' has-error' : '' }}>
<input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required autofocus placeholder="Email">
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
<div>
<input id="password" type="password" class="form-control" name="password" required placeholder="Password">
@if ($errors->has('password'))
<span class="help-block">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
<div>
<input class="btn btn-success submit btn2 login-btn2" type="submit" value="Login Now" />
</div>
<div class="clearfix"></div>
<div class="ex-links">
<a href="{{ route('register') }}">Create New Account</a> <br>
{{-- <a href="{{ url('register') }}">Register Now To Use Your Online Account</a> --}}
</div>
<div class="clearfix"></div>
<div class="separator">
<div>
<h1>{{ config('app.name') }} Portal</h1>
<p>© @php echo date('Y'); @endphp - {{ config('app.name') }} - All Rights Reserved </p>
</div>
</div>
</form>
</section>
</div>
</div>
</div>
<div class="footer-copyright text-center py-3">
<strong> Secure SSL Area | This website is protected by secure portal © @php echo date('Y'); @endphp Clickletters LLC/M2C Academy LLC. All rights reserved.</strong>
</div>
@endsection

View File

@@ -0,0 +1,234 @@
@extends('layouts.app')
@push('css')
<style>
.color-red{
color:red
}
.font-bold{
font-weight: bold;
}
</style>
@endpush
@section('content')
@php
$source_types = config('constant.sourceType');
$user_type = auth()->user()->user_type;
@endphp
<div class="row">
<div class="col-xs-12 col-sm-12 column col-sm-offset-0 ">
<div class="panel panel-default panel-frm">
<div class="row">
<div class="col-md-12">
<div class="panel-heading">
<h3>Account Info <small>Manage your account info</small></h3>
<div class="pull-right" style="margin-top: -30px;margin-right: 10px;">
<button class="btn btn-sm btn-info" style="background: #FF440A !important;border-color: #FF440A !important;" type="button" id="btn_show_hide_text" onclick="return show_hide_textbox(this)" data-toggle="tooltip" title="Show or Hide Name,Email,SSN,Phone">
<i class="fa fa-eye" style="font-size: 14px; color: black;" id="show_hide_icon" aria-hidden="true"></i>
</button>
</div>
</div>
</div>
</div>
<div class="panel-body">
<div class="clearfix"></div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<form method="post" action="{{route('manage.clients')}}" id="client_form" autocomplete="off"
enctype=multipart/form-data
class="input-form-section">
@csrf
<div class="x_content">
<div class="col-md-12">
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="firstname">First Name</label>
<input class="form-control" name="creditreport[first_name]" placeholder="First Name" type="text"
value="<?php echo auth()->user()->first_name; ?>" >
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Last Name">Last Name</label>
<input class="form-control" name="creditreport[last_name]" placeholder="Last Name" type="text"
value="<?php echo auth()->user()->last_name; ?>" >
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="dob">Date of Birth</label>
<input class="form-control" name="creditreport[birth_date]" placeholder="Birth Date" type="text" maxlength="10" onkeyup="birthDateCompleted()"
value="<?php echo auth()->user()->birth_date; ?>" >
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="ssn">Social Security Number</label>
<input class="form-control" name="creditreport[ssn]"
type="text" maxlength="4" placeholder="Last 4 digit of ssn"
value="<?php echo auth()->user()->ssn; ?>"
>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Phone">Phone</label>
<input class="form-control" name="creditreport[phone]" type="text" placeholder="Phone"
value="<?php echo auth()->user()->phone; ?>" >
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Street Number">Street Number</label>
<input class="form-control" name="creditreport[street_no]" placeholder="Street No" type="text"
value="<?php echo auth()->user()->street_no; ?>" >
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Street Name">Street Name</label>
<input class="form-control" name="creditreport[street_name]" placeholder="Street Name" type="text"
value="<?php echo auth()->user()->street_name; ?>">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="City">City</label>
<input class="form-control" name="creditreport[city]" placeholder="City" type="text"
value="<?php echo auth()->user()->city; ?>" >
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="State">State</label>
<input class="form-control" name="creditreport[state]" placeholder="State" type="text"
value="<?php echo auth()->user()->state; ?>" >
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="dob">Zip</label>
<input class="form-control" name="creditreport[zip_code]" placeholder="Zip Code" type="text"
value="<?php echo auth()->user()->zip_code; ?>" >
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="dob">Email</label>
<input class="form-control" disabled name="creditreport[email]"
type="text" placeholder="Email"
value="<?php echo auth()->user()->email; ?>" >
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="dob">Password</label>
<div class="input-group" id="manage_client_show_hide_password">
<input class="form-control" name="creditreport[password]"
type="password" placeholder="Password"
value="{{customDecrypt(auth()->user()->password)}}">
<div class="input-group-addon">
<a href=""><i class="fa fa-eye-slash" aria-hidden="true"></i></a>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="source_type">Source Type</label>
<select name="creditreport[credit_report_company_type]" onchange="sourceTypeOnchange('{{auth()->user()->credit_report_company_type}}')" id="company_type" class="form-control">
@foreach($source_types as $key=>$value)
<option value="{{$value}}" {{auth()->user()->credit_report_company_type == $value ? 'selected':''}}> {{$key}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>
<div class="x_content" id="upload-document-panel">
@include('partials.upload_document')
</div>
<div class="col-md-12 hidden">
@if(count($question_answer) > 0 && auth()->user()->credit_report_company_type == config('constant.sourceType.SmartCredit'))
@include('partials.user_identity_question_answer',['question_answers'=>$question_answer])
@endif
</div>
@if(isClientSubscription())
<div class="col-sm-12 center" style="margin-top: 10px; text-align: center; ">
<input class="btn btn-success btn2" onclick="return client_form_submit(this,'{{ route('admin.ajax.get.process') }}','{{$user_type}}')" type="submit" value="Save Changes">
</div>
@endif
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="common_confirmation_modal" style="margin-top: 50px" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-md" id="modal-dialog-panel">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
</div>
<div class="modal-body">
<h4 class="mb-2 text-center" style="color: red" id="common_message_text">
</h4>
</div>
<div class="modal-footer" style="text-align: center">
<button type="button" class="btn btn-secondary btn-lg" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
@if (!empty($upload_medias))
@include('partials.modal.upload_doc_modal')
@endif
@endsection
@push('script')
<script>
$(document).ready(function() {
@if(getSession('login') == 1)
sessionStorage.setItem('user_data_viewed','0');
sessionStorage.setItem('video_shown','0');
{{setSession('login',0)}};
@endif
if(sessionStorage.getItem('video_shown') === '0') {
@if($is_first_login)
modalView('FIRST_TIME_LOGIN_MODAL_VIEW','first_time_login_video_modal');
// showFirstTimeLoginVideoModalView();
@endif
}
});
</script>
<script src="{{asset('/')}}js/accountinfo/clientinfo.js?v=1.0.2"></script>
@endpush

View File

@@ -0,0 +1,113 @@
@if ($paginator->total()>0)
<?php
$items_count = 3;
$show_first_item = false;
$show_last_item = false;
$limit_start= 1;
$limit_end= 1;
if (count($elements[0]) > $items_count*2) {
$limit_start= $paginator->currentPage() - 1;
$limit_end= $limit_start + 2;
}
if($paginator->currentPage() >= $items_count) {
$show_first_item= true;
}
if($paginator->lastPage() > $paginator->currentPage() + 1) {
$show_last_item= true;
}
?>
<div class="row">
<div class="col-md-6">
Showing {{($paginator->currentpage()-1)*$paginator->perpage()+1}}
to {{($paginator->hasMorePages())?
($paginator->currentpage()*$paginator->perpage()):
$paginator->total()}}
of {{$paginator->total()}} entries
</div>
<div class="col-md-6">
<div class="pull-right">
<nav aria-label="Page navigation">
<ul class="pagination justify-content-end">
@if ($paginator->onFirstPage())
<li class="page-item disabled">
<a class="page-link" href="#" tabindex="-1">< Previous </a>
</li>
@else
<li class="page-item"><a class="page-link" href="{{ $paginator->previousPageUrl() }}">< Previous </a></li>
@endif
@foreach ($elements as $element)
{{-- "Three Dots" Separator --}}
@if (is_string($element))
<li class="page-item disabled"><span class="">{{ $element }}</span></li>
@endif
{{-- Array Of Links --}}
@if (is_array($element))
@foreach ($element as $page => $url)
@if(count($element)>5)
@if($show_first_item and $page == 1)
<li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
@if($paginator->currentPage()!= 3)
<li class="page-item disabled"><a class="page-link">...</a></li>
@endif
@endif
@if($page >= $limit_start and $page <= $limit_end)
@if ($page == $paginator->currentPage())
<li class="page-item active"><a href=""><span class="page-link">{{ $page }}</span></a></li>
@else
<li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
@endif
@endif
@if($show_last_item and $page == $paginator->lastPage())
@if($paginator->currentPage()!= $paginator->lastPage()-2)
<li class="page-item disabled"><a class="page-link">...</a></li>
@endif
<li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
@endif
@else
@if ($page == $paginator->currentPage())
<li class="page-item active">
<a class="page-link">{{ $page }}</a>
</li>
@else
<li class="page-item">
<a class="page-link" href="{{ $url }}">{{ $page }}</a>
</li>
@endif
@endif
@endforeach
@endif
@endforeach
@if ($paginator->hasMorePages())
<li class="page-item">
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next"> Next ></a>
</li>
@else
<li class="page-item disabled">
<a class="page-link" href="#"> Next ></a>
</li>
@endif
</ul>
</nav>
</div>
</div>
</div>
@endif

View File

@@ -0,0 +1,51 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- Meta, title, CSS, favicons, etc. -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="{{ asset('images/CCE_favicon.png') }}"/>
<title>{{ config('app.name') }}</title>
<!-- Bootstrap -->
<link href="{{ asset('theme/bootstrap/dist/css/bootstrap.min.css') }}" rel="stylesheet">
<!-- Font Awesome -->
<link href="{{ asset('theme/font-awesome/css/font-awesome.min.css') }}" rel="stylesheet">
</head>
<body class="nav-sm"> <!-- nav-sm -->
<div class="container body" style="margin-top: 10px">
<div class="main_container" >
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading text-center">
<h1>Terms of service</h1>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_content">
{{empty($content['terms_service'])?'':print_r($content['terms_service'])}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,58 @@
@extends('layouts.admin')
@push('css')
<link href="{{ asset('js/summernote/summernote.css') }}" rel="stylesheet">
@endpush
@section('content')
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading">
<h1>Terms of service</h1>
</div>
<div class="panel-body">
<div class="clearfix"></div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<form method="post" action="{{route('terms.of.service')}}" enctype="multipart/form-data">
@csrf
<input type="hidden" name="id" value="{{empty($content['id'])?'':$content['id']}}" />
<div class="form-group">
<label>Title</label>
<input type="text" name="title" value="{{empty($content['title'])?'terms and service':$content['title']}}" class="form-control" />
</div>
<div class="form-group">
<label>Description</label>
<textarea id="summernote" name="body" > {{empty($content['terms_service'])?'':$content['terms_service']}}</textarea>
</div>
<div class="pull-right">
@if(isShowContent('terms.of.service'))
<button type="submit" class="btn btn-success btn-block">Publish</button>
@endif
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('script')
<script src="{{asset('/')}}js/summernote/summernote.min.js"></script>
<script>
$(document).ready(function() {
let selctor=$('#summernote');
common_helper.init_summernote(selctor);
})
</script>
@endpush

View File

@@ -0,0 +1,247 @@
@extends('layouts.admin')
<style>
#table-clients td {
text-align: left !important;
padding: 8px !important;
}
#table-clients th {
padding: 8px !important;
}
</style>
@php
$pageLimit = $searchData['pageLimit'];
$account_status = $searchData['account_status'];
$search_value = $searchData['search_value'];
$payment_status = $searchData['payment_status'];
@endphp
@section('content')
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading">
<div class="row" style="padding-left: 20px;padding-right: 15px">
<h3 class="pull-left">Client List</h3>
@if(isShowContent('client.create'))
<a href="{{route('client.create')}}" class="btn btn2 btn-success btn-flat pull-right">
<i class="fa fa-user" aria-hidden="true"></i>
Add Client
</a>
@endif
</div>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_content">
<form action="{{route('get.clients')}}" method="get" role="search">
<div class="row">
<div class="col-md-2 col-xs-12">
<div class="form-group">
<label>Show</label>
<select name="pageLimit" id="pagination" class="form-control"
onchange="this.form.submit()">
<option value="10" @if($pageLimit == 10) selected @endif>10</option>
<option value="20" @if($pageLimit == 20) selected @endif>20</option>
<option value="50" @if($pageLimit == 50) selected @endif>50</option>
<option value="100" @if($pageLimit == 100) selected @endif>100</option>
<option value="500" @if($pageLimit == 500) selected @endif>500</option>
</select>
</div>
</div>
<div class="col-md-2 col-xs-12">
<div class="form-group">
<label>Account Status</label>
<select name="account_status" id="account_status" class="form-control">
<option value="">All</option>
@foreach(config('constant.ACCOUNT_STATUS') as $key => $obj )
<option value="{{$obj}}"
@if ($obj==$searchData['account_status'])
selected="selected"
@endif
>{{$key}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-2 col-xs-12">
<div class="form-group">
<label>Payment Status</label>
<select name="payment_status" id="payment_status" class="form-control">
<option value="">All</option>
@if(!empty(config('constant.PAYMENT_STATUS')))
@foreach(config('constant.PAYMENT_STATUS') as $key => $obj )
<option value="{{$key}}"
@if ($key == $searchData['payment_status'])
selected="selected"
@endif
>{{$obj}}</option>
@endforeach
@endif
</select>
</div>
</div>
<div class="col-md-4 col-xs-12">
<div class="form-group">
<label>Client Name/Email/Phone</label>
<input id="search_value"
type="text"
value="{{$searchData['search_value']}}"
placeholder="Search By Client Name/Email/Phone"
class="form-control" name="search_value" autocomplete="off">
</div>
</div>
<div class="col-md-2 col-xs-12">
<div class="form-group" style="margin-top: 25px;">
<button class="btn btn-primary btn-outline-primary" style="width:100%" type="submit">Search</button>
</div>
</div>
</div>
<div class="row">
<div class="col-md-2">
@if(isShowContent('admin.ajax.process'))
<button style="margin-top: 15px;" onclick="return multipleClientDelete()" type="button"
class="btn btn-danger pull-left" style="margin-left: 10px"
id="btnDeleteMultipleClient" disabled>Delete Client
</button>
@endif
</div>
</div>
</form>
<div class="table-responsive py-5">
<table id="table-clients" class="table table-bordered table-hover">
<thead>
<tr>
<th><input type="checkbox" name="allChecked" value="all"
onclick="common_helper.allChecked(this,'checkedBoxClient')"></th>
<th>Client Name</th>
<th>Email</th>
<th>Phone</th>
<th>Address</th>
<th> Account Status</th>
<th> Account Cancel Date</th>
<th>Created At</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@if(!empty($users['data']))
@foreach ($users['data'] as $key => $obj)
@php
$user_info = json_encode([$obj->id,$obj->email]);
$action = 'DELETE_CLIENT';
@endphp
<tr class="tr-height">
<td><input type="checkbox" name="checkedBoxClient"
value="{{ $user_info }}" onclick="checkedornot(this)"></td>
<td>{{$obj->first_name.' '.$obj->last_name}}</td>
<td>{{ $obj->email}}</td>
<td>{{ $obj->phone }}</td>
<td>{{ $obj->street_no.', '.$obj->street_name.', '.$obj->city }}</td>
<td> @php echo getAccountStatus($obj->subscription_status,$obj->status) @endphp</td>
<td>{{ ($obj->account_cancel_datetime !=null)? getStringToDateTime($obj->account_cancel_datetime,'m/d/Y h:i:s a'):'' }}</td>
<td>{{ getStringToDateTime($obj->created_at,'m/d/Y h:i:s a') }}</td>
<td>
@if(isShowContent('get.client.info'))
<a href="{{route('get.client.info',$obj->id)}}"
class="btn btn-success" style="padding: 5px;"> <span
class="glyphicon glyphicon-pencil" title="Edit"></span></a>
@endif
@if(isShowContent('admin.ajax.process'))
<button onclick="return clientDelete({{$user_info}},'{{$action}}')"
class="btn btn-danger" style="padding: 5px;"><span
class="glyphicon glyphicon-trash" title="Delete"></span>
</button>
@endif
</td>
</tr>
@endforeach
@endif
</tbody>
</table>
</div>
<div id="pagination_panel">
{{ $users['data']->appends(compact('pageLimit' ,'account_status','payment_status', 'search_value')) ->links('basic.pagination') }}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('script')
<script>
const multipleClientDelete = () => {
let action = 'DELETE_MULTIPLE_CLIENT';
let checkedData = $("[name='checkedBoxClient']");
let clientId = [];
for (let checkbox of checkedData) {
if (checkbox.checked)
clientId.push(checkbox.value);
}
if (clientId.length > 0) {
clientDelete(clientId,action);
}
}
const clientDelete = (userData,action) => {
let html_content = `<h4>Are you sure you want to delete client?</h4>`;
const swalresponse = common_helper.swalAleart(html_content, 'warning', 450, true, '', true, true, 'Yes');
swalresponse.then(async function (result) {
if (result.isConfirmed) {
let response = await common_helper.globalAjaxRequest('{{route('admin.ajax.process')}}', 'POST', {
action: action,
userData: userData,
_token: "{{ csrf_token() }}"
});
if (response.status) {
Swal.fire({icon: response.type, title: response.message, width: 450,closeOnConfirm: true});
window.location = `{{route('get.clients')}}`;
} else {
Swal.fire({icon: response.type, title: response.message, width: 450,closeOnConfirm: true});
}
}
})
}
const checkedornot = (e) => {
let allData = $("[name='checkedBoxClient']");
let checkedData = $("[name='checkedBoxClient']:checked");
let allChecked = false;
let alldelete = false;
if(allData.length === checkedData.length){
allChecked = true;
}
if(checkedData.length === 0){
alldelete = true;
}
$("[name='allChecked']").prop('checked', allChecked);
$('#btnDeleteMultipleClient').prop('disabled', alldelete);
}
const paymentStatusOnChange = (e) => {
let status = $('#payment_status').val();
}
</script>
@endpush

View File

@@ -0,0 +1,307 @@
@extends('layouts.admin')
@section('content')
<div class="row">
<div class="col-xs-12 col-sm-12 column col-sm-offset-0 ">
<div class="panel panel-default panel-frm">
<div class="panel-heading">
<div class="row" style="padding-left: 20px;padding-right: 15px">
<h3 class="pull-left"> Client Registration</h3>
@if(isShowContent('get.clients'))
<a href="{{route('get.clients')}}" class="btn btn2 btn-success btn-flat pull-right">
<i class="fa fa-list" aria-hidden="true"></i>
Client List
</a>
@endif
</div>
</div>
<div class="panel-body">
<div class="clearfix"></div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<form method="post" action="{{route('client.insert')}}" id="client_form" autocomplete="off"
class="input-form-section">
@csrf
<div class="x_content">
<div class="col-md-12">
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="firstname">First Name</label>
<input class="form-control" name="first_name" type="text" placeholder=" First Name" >
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Last Name">Last Name</label>
<input class="form-control" name="last_name" type="text" placeholder=" Last Name">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="dob">Email</label>
<input class="form-control" name="email"
type="text" placeholder=" Email" >
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="dob">Password</label>
<div class="input-group" id="manage_client_show_hide_password">
<input class="form-control" name="password"
type="password" placeholder=" Password">
<div class="input-group-addon">
<a href=""><i class="fa fa-eye-slash" aria-hidden="true"></i></a>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Phone">Phone</label>
<input class="form-control" name="phone" type="text" placeholder=" Phone Number">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Street Number">Street Number</label>
<input class="form-control" name="street_no" type="text" placeholder="Street No">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Street Name">Street Name</label>
<input class="form-control" name="street_name" type="text" placeholder="Street Name">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="City">City</label>
<input class="form-control" name="city" type="text" placeholder="City" >
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="State">State</label>
<input class="form-control" name="state" type="text" placeholder="State" >
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="zip_code">Zip</label>
<input class="form-control" name="zip_code" type="text" placeholder="Zip Code">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="dob">Date of Birth</label>
<input class="form-control" name="birth_date" id="birth_date" type="text" maxlength="10" onkeyup="birthDateCompleted()" placeholder="mm/dd/yyyy" >
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="ssn">Social Security Number</label>
<input class="form-control" name="ssn" maxlength="4"
type="text" placeholder="Last 4 digit of ssn">
</div>
</div>
</div>
<div class="row">
{{-- <div class="form-group col-md-6 col-xs-12 text-left" >--}}
{{-- <input class="form-check-input" type="checkbox" name="report_provider_info"--}}
{{-- value="1" id="report_provider_info">--}}
{{-- <label class="form-check-label" data-toggle="tooltip" data-placement="right" title="">--}}
{{-- Credit Report Provider Information--}}
{{-- </label>--}}
{{-- </div>--}}
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="">Source Type</label>
@php
$source_types = config('constant.sourceType');
@endphp
<select name="source_type" class="form-control">
@foreach($source_types as $key=>$value)
<option value="{{$value}}"> {{$key}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>
<div class="col-sm-12 c" style="margin-top: 10px; text-align: center; ">
<input class="btn btn-success btn2" type="submit" onclick="return client_form_submit(this)" value="Save Changes">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="common_confirmation_modal" style="margin-top: 50px" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-md" id="modal-dialog-panel">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
</div>
<div class="modal-body">
<h4 class="mb-2 text-center" style="color: red" id="common_message_text">
</h4>
</div>
<div class="modal-footer" style="text-align: center">
<button type="button" class="btn btn-secondary btn-lg" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
@endsection
@push('script')
<script>
$(function(){
common_helper.datePicker('#birth_date','mm/dd/yyyy',true,null);
});
$("#manage_client_show_hide_password a").on('click', function(event) {
common_helper.globalPasswordView('#manage_client_show_hide_password',event);
});
const birthDateCompleted=()=>{
let birth_date=$("[name='birth_date']").val();
if(birth_date.length===2){
birth_date+='/';
}
else if(birth_date.length===5){
birth_date+='/';
}
$("[name='birth_date']").val(birth_date);
}
const client_form_submit =(e)=>{
$search_provider_info = $('#report_provider_info').prop("checked");
$('#client_form').validate({
rules: {
'first_name': 'required',
'last_name': 'required',
'email' : 'required',
'password' : 'required',
'street_no' : 'required',
'street_name' : 'required',
'city' : 'required',
'state' : 'required',
'zip_code' : 'required',
'phone' : 'required',
'birth_date': 'required',
'ssn' : 'required',
'source_type' : 'required',
},
messages: {
'first_name': {
required: "Please enter first name"
},
'last_name': {
required: "Please enter last name"
}, 'email': {
required: "Please enter email"
}, 'password': {
required: "Please enter password"
},
'street_no': {
required: "Please enter street number"
},
'street_name': {
required: "Please enter street name"
},
'state': {
required: "Please enter state"
},
'city': {
required: "Please enter city"
},
'zip_code': {
required: "Please enter zip code"
},
'phone': {
required: "Please enter phone number"
},
'birth_date': {
required: "Please enter birth date",
},
'ssn': {
required: "Please enter last 4 digit of your ssn"
},
'source_type': {
required: "Please enter source type"
},
},
highlight: function (element) {
$(element).parent().addClass("has-error");
},
// submitHandler: function (form) {
// form.submit();
// }
});
if($('#client_form').valid()) {
let url = '{{ route('admin.ajax.get.process') }}';
let email = $('#client_form').find('input[name=email]').val();
let password = $('[name="password"]').val();
let source_type = $('[name="source_type"]').val();
let ssn = $('[name="ssn"]').val();
let data = {
action: 'GET_SUBSCRIPTION_STATUS_CREDIT_REPORT_PROVIDER',
email: email,
password: password,
source_type: source_type,
ssn: ssn
};
common_helper.globalAjaxRequestAsync(url, 'get', data, callbackfromreportprovider);
}
return false;
};
const callbackfromreportprovider =(response)=>{
if(response.status) {
$('#client_form').submit();
}else {
let html = response.message;
$('#common_message_text').text(html);
$('#common_confirmation_modal').modal('show');
}
}
</script>
@endpush

View File

@@ -0,0 +1,117 @@
@extends('layouts.admin')
@section('content')
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading">
<h1>Client Recurring List</h1>
</div>
<div class="panel-body">
<div class="row">
<form action="{{route('recurring.data') }}" method="post">
@csrf
<div class="col-md-3 col-xs-12">
<div class="form-group">
<label>Client Name</label>
<input id="clientName"
type="text"
class="form-control" name="clientName" autocomplete="off">
</div>
</div>
<div class="col-md-3 col-xs-12">
<div class="form-group">
<label>From Date</label>
<input id="fdate"
type="text"
class="form-control " name="fdate" autocomplete="off">
</div>
</div>
<div class="col-md-3 col-xs-12">
<div class="form-group">
<label>To Date</label>
<input id="tdate"
type="text"
class="form-control" name="tdate" autocomplete="off">
</div>
</div>
<div class="col-md-3 col-xs-12">
<div class="form-group" style="margin-top: 25px;">
<button class="btn btn-outline-info" type="submit">Search</button>
</div>
</div>
</form>
</div>
<hr/>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_content">
<table id="datatable-responsive" class="table table-striped table-hover table-responsive dt-responsive nowrap" cellspacing="0" width="100%">
<thead>
<tr>
<th>Client Id</th>
<th>Client Name</th>
<th>Email</th>
<th>Subscription Id</th>
<th>Transaction Status</th>
<th>Transaction Id</th>
<th>Plan Amount</th>
<th>Month Frequency</th>
<th>Day Of Month</th>
</tr>
</thead>
<tbody>
@if(!empty($recurringInfo))
@foreach ($recurringInfo as $key => $obj)
@php
if(($obj->transaction_status==config('constant.API_SUCCESS_CODE')))
{
$label='Success';
}
else{
$label='Fail';
}
@endphp
<tr class="tr-height">
<td>{{$obj->user_id}}</td>
<td>{{$obj->name}}</td>
<td>{{ $obj->email}}</td>
<td>{{ $obj->subscription_id }}</td>
<td>{{ $label }}</td>
<td>{{ $obj->transaction_id}}</td>
<td>{{ $obj->plan_amount }}</td>
<td>{{ $obj->month_frequency}}</td>
<td>{{ $obj->day_of_month }}</td>
</tr>
@endforeach
@endif
</tbody>
</table>
<div id="pagination_panel">
{{ $recurringInfo->links('basic.pagination') }}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('script')
<script>
$(document).ready(function() {
$('#fdate,#tdate').val(common_helper.formatDate());
})
common_helper.datePicker('#fdate');
common_helper.datePicker('#tdate');
</script>
@endpush

View File

@@ -0,0 +1,507 @@
@extends('layouts.admin')
@section('content')
@php
$user_access_end_date = '';
if(!empty($user['data']['user_access_end_date'])){
$user_access_end_date = getStringToDate($user['data']['user_access_end_date'],'m/d/Y');
}
$inputData['subscription_status'] = $user['data']['subscription_status'];
$inputData['status'] = $user['data']['status'];
$inputData['is_import'] = $user['data']['is_import'];
$waves = clientWaves(config('constant.MAX_WAVE'));
@endphp
<div class="row">
<div class="col-xs-12 col-sm-12 column col-sm-offset-0">
<div class="panel panel-default panel-frm">
<div class="panel-heading">
<div class="row" style="padding-left: 20px;padding-right: 15px">
<h3 class="pull-left">Account Info Of {{$user['data']['first_name'].' '.$user['data']['last_name']}}</h3>
<form method="post" action="{{route('update.client.id')}}"
autocomplete="off"
class="input-form-section" id="client_activate_form">
@csrf
<input type="hidden" name="client_id" value="{{$user['data']['id']}}">
@if(getClientStatus($user['data']))
<div class="pull-right">
<input type="hidden" name="type" value="1">
<input class="btn btn-success btn2" type="submit" onclick="return client_activate(this)" value="Active">
</div>
@else
<div class="pull-right">
<input type="hidden" name="type" value="2">
<input class="btn btn-success btn2" type="submit" onclick="return client_activate(this)" value="Reset Credit Report">
</div>
@endif
{{-- @if(getEnableImportReset($inputData))--}}
{{-- @endif--}}
</form>
</div>
</div>
<div class="panel-body">
<div class="clearfix"></div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<form method="post" action="{{route('update.client')}}" id="client_form"
autocomplete="off"
class="input-form-section">
@csrf
<input type="hidden" name="id" value="{{$user['data']['id']}}">
<input type="hidden" name="previous_email" value="{{$user['data']['email']}}">
<div class="x_content">
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="firstname">First Name</label>
<input class="form-control" name="first_name" type="text" placeholder="First Name"
value="{{$user['data']['first_name']}}" id="firstname">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Last Name">Last Name</label>
<input class="form-control" name="last_name" type="text" placeholder="Last Name"
value="{{$user['data']['last_name']}}" id="lastname">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Phone">Phone</label>
<input class="form-control" name="phone" type="text" placeholder="Phone"
value="{{$user['data']['phone']}}" id="phone">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Street Number">Street Number</label>
<input class="form-control" name="street_no" type="text" placeholder="Street Number"
value="{{$user['data']['street_no']}}" id="street_no">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Street Name">Street Name</label>
<input class="form-control" name="street_name" type="text" placeholder="Street Name"
value="{{$user['data']['street_name']}}"
id="street_name">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="City">City</label>
<input class="form-control" name="city" type="text" placeholder="City"
value="{{$user['data']['city']}}" id="city">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="State">State</label>
<input class="form-control" name="state" type="text" placeholder="State"
value="{{$user['data']['state']}}" id="state">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="zip">Zip</label>
<input class="form-control" name="zip_code" type="text" placeholder="Zip Code"
value="{{$user['data']['zip_code']}}" id="zip_code">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="email">Email</label>
<input class="form-control" name="email" placeholder="Email"
type="text"
value="{{$user['data']['email']}}" id="email">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="password">Password</label>
<div class="input-group" id="client_show_hide_password">
<input class="form-control" name="password"
type="password" placeholder="Password"
value="{{customDecrypt($user['data']['password'])}}"
id="password">
<div class="input-group-addon">
<a href=""><i class="fa fa-eye-slash"
aria-hidden="true"></i></a>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="Status">Status</label>
<select name="status" class="form-control">
<option
value="1" {{ $user['data']['status'] == 1 ? 'selected' : '' }}>
Active
</option>
<option
value="2" {{ $user['data']['status'] == 2 ? 'selected' : '' }}>
Inactive
</option>
<option
value="2" {{ $user['data']['subscription_status'] == 2 ? 'selected' : '' }}>
Canceled
</option>
</select>
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="month">Last Access Date</label>
<input class="form-control" name="user_access_end_date" disabled value="{{$user['data']['user_access_end_date']}}" type="text" >
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12" id="user_access_date_div">
<div class="form-group">
<label for="month">Free Access Date</label>
<input class="form-control" name="user_access_date" readonly id="user_access_end_date" type="text" value="{{$user_access_end_date}}" placeholder="mm/dd/yyyy">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<div class="form-group col-md-6 col-xs-12 text-left" >
<input class="form-check-input" type="checkbox" name="change_wave"
value="1" id="change_wave">
<label class="form-check-label" data-toggle="tooltip" data-placement="right" title="">
Unlock Wave
</label>
</div>
<select name="wave" class="form-control" onchange="getDecision(this)" id="wave">
@foreach($waves as $key => $value)
@php $select = ($value['key'] == $user['data']['wave']) ? 'selected': ''; @endphp
<option value="{{$value['key']}}" {{$select}}> {{$value['text']}} </option>
@endforeach
</select>
{{-- <input class="form-control" name="wave" type="text" value="{{$user['data']['wave']}}" >--}}
</div>
</div>
</div>
<div class="row">
<div class="form-group col-md-6 col-xs-12 text-left" >
<input class="form-check-input" type="checkbox" name="report_provider_info"
value="1" id="report_provider_info">
<label class="form-check-label" data-toggle="tooltip" data-placement="right" title="">
Credit Report Provider Information
</label>
</div>
</div>
<div class="row" id="credit_report_info">
<div class="col-md-12">
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="birth_date">Date of Birth</label>
<input class="form-control" name="birth_date" id="birth_date" type="text"
value="{{$user['data']['birth_date']}}" placeholder="mm/dd/yyyy">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="ssn">Social Security Number</label>
<input class="form-control" name="ssn"
type="text" maxlength="4"
value="{{$user['data']['ssn']}}"
placeholder="Last 4 digit of ssn"
id="ssn">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="">Source Type</label>
@php
$source_types = config('constant.sourceType');
@endphp
<select name="source_type" class="form-control">
@foreach($source_types as $key=>$value)
<option value="{{$value}}" {{$user['data']['credit_report_company_type'] == $value ? 'selected':''}}> {{$key}}</option>
@endforeach
</select>
</div>
</div>
@if(isSupport())
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="month">Previous Import Date</label>
<input class="form-control" name="last_import_date" readonly id="last_import_date" type="text" value="{{$user['data']['last_import_date']}}" placeholder="mm/dd/yyyy">
</div>
</div>
@endif
</div>
</div>
</div>
</div>
@if(isShowContent('update.client'))
<div class="col-sm-12 center" style="margin-top: 10px; text-align: center; ">
<input class="btn btn-success btn2" type="submit" onclick="return client_form_submit(this)" value="Save Changes">
</div>
@endif
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="common_confirmation_modal" style="margin-top: 50px" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-md" id="modal-dialog-panel">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
</div>
<div class="modal-body">
<h4 class="mb-2 text-center" style="color: red" id="common_message_text">
</h4>
</div>
<div class="modal-footer" style="text-align: center">
<button type="button" class="btn btn-secondary btn-lg" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
@endsection
@push('script')
<script>
$(document).ready(function() {
common_helper.datePicker('#user_access_end_date','mm/dd/yyyy',false,new Date(new Date().setDate(new Date().getDate() + 1)),null);
common_helper.datePicker('#last_import_date','mm/dd/yyyy',true,null);
common_helper.datePicker('#birth_date','mm/dd/yyyy',true,null);
$('#wave').prop('disabled', true);
});
const client_form_submit =(e)=>{
var data = $('#report_provider_info').prop("checked");
if(data) {
$('#client_form').validate({
rules: {
'first_name': 'required',
'last_name': 'required',
'email': 'required',
'password': 'required',
'birth_date': 'required',
'street_no': 'required',
'street_name': 'required',
'city': 'required',
'state': 'required',
'zip_code': 'required',
'phone': 'required',
'ssn': 'required',
'source_type': 'required',
},
messages: {
'first_name': {
required: "Please enter first name"
},
'last_name': {
required: "Please enter last name"
}, 'email': {
required: "Please enter email"
}, 'password': {
required: "Please enter password"
},
'birth_date': {
required: "Please enter birth date",
},
'street_no': {
required: "Please enter street number"
},
'street_name': {
required: "Please enter street name"
},
'state': {
required: "Please enter state"
},
'city': {
required: "Please enter city"
},
'zip_code': {
required: "Please enter zip code"
},
'phone': {
required: "Please enter phone number"
},
'ssn': {
required: "Please enter last 4 digit of ssn"
},
'source_type': {
required: "Please enter source type"
},
},
highlight: function (element) {
$(element).parent().addClass("has-error");
},
});
if ($('#client_form').valid()) {
let url = '{{ route('admin.ajax.get.process') }}';
let previous_email = $('[name="previous_email"]').val();
let email = $('#client_form').find('input[name=email]').val();
let password = $('[name="password"]').val();
let source_type = $('[name="source_type"]').val();
let ssn = $('[name="ssn"]').val();
let data = {
action: 'GET_SUBSCRIPTION_STATUS_CREDIT_REPORT_PROVIDER',
email: email,
password: password,
previous_email: previous_email,
source_type: source_type,
ssn: ssn
};
common_helper.globalAjaxRequestAsync(url, 'POST', data, callbackfromreportprovider);
}
return false;
}else {
$('#client_form').validate({
rules: {
'first_name': 'required',
'last_name': 'required',
'email': 'required',
'password': 'required',
'street_no': 'required',
'street_name': 'required',
'city': 'required',
'state': 'required',
'zip_code': 'required',
'phone': 'required'
},
messages: {
'first_name': {
required: "Please enter first name"
},
'last_name': {
required: "Please enter last name"
}, 'email': {
required: "Please enter email"
}, 'password': {
required: "Please enter password"
},
'street_no': {
required: "Please enter street number"
},
'street_name': {
required: "Please enter street name"
},
'state': {
required: "Please enter state"
},
'city': {
required: "Please enter city"
},
'zip_code': {
required: "Please enter zip code"
},
'phone': {
required: "Please enter phone number"
},
},
highlight: function (element) {
$(element).parent().addClass("has-error");
},
submitHandler: function (form) {
form.submit();
}
});
}
};
const callbackfromreportprovider =(response)=>{
if(response.status) {
$('#client_form').submit();
}else {
let html = response.message;
$('#common_message_text').text(html);
$('#common_confirmation_modal').modal('show');
}
}
$("#client_show_hide_password a").on('click', function (event) {
common_helper.globalPasswordView('#client_show_hide_password', event);
})
const client_activate =(e) => {
let type = $('#client_activate_form').find('input[name=type]').val();
let html_content = `<h4>Are you sure you want to activate client?</h4>`;
if(type === '2'){
html_content = `<h4>Are you sure you want to reset credit report?</h4>`;
}
const swalresponse = common_helper.swalAleart(html_content, 'warning', 450, true, '', true, true, 'Yes');
swalresponse.then(function (result) {
if (result.isConfirmed) {
$('#client_activate_form').submit();
}
})
return false;
}
$("#change_wave").on('click', function (event) {
$('#wave').prop('disabled', !this.checked);
})
</script>
@endpush

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
<h3 class="text-center" >One Time Password Recovery</h3>
<form method="post" onsubmit="return oneTimeFormSubmit()" target="_blank" action="https://www.smartcredit.com/external-login">
<input type="hidden" name="loginType" value="CUSTOMER">
<input type="hidden" name="j_username" value="{{$email}}">
<input type="hidden" name="j_password" class="form-control" value="{{$password}}">
<div class="form-group text-center" >
<button type="submit" class="btn btn-default btn2" >
Click Here
<span> <i class="fa fa-chevron-right"></i><i class="fa fa-chevron-right"></i></span>
</button>
</div>
</form>
<script>
function oneTimeFormSubmit(){
$('#securityModal').modal('hide')
return true;
}
</script>

View File

@@ -0,0 +1,28 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Creditzombies</title>
</head>
<body style="margin-left: 20px">
<p style="margin-top: 5px"> Hello Admin ,</p>
<br/><br/>
<p> User account of name {{$data['email_body']}} has been canceled from Credit Zombies partnered with Smartcredit credit report system . </p>
<br/><br/>
<p>
Sincerely,<br/><br/>
Customer Support Team <br/>
Credit Zombies/ClickLetters LLC <br/>
Partner with SmartCredit
</p>
</body>
</html>

View File

@@ -0,0 +1,34 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>CCE</title>
</head>
<body style="margin-left: 20px">
<p style="margin-top: 5px"> Hello {{$data['email_body']}} ,</p>
<br/><br/>
<p> Your account for Credit Counsel Elite partnered with Smartcredit credit report system was canceled. </p>
<br/><br/>
<p> If this was made by someone other than you please contact support at : support@clickletters.com</p>
<br/><br/>
<p> If you need further assistance please let us know.</p>
<br/><br/>
<p> Credit Counsel Elite Owned by Clickletters LLC</p>
<br/><br/>
<p>
Sincerely,<br/><br/>
Customer Support Team <br/>
Credit Counsel Elite/ClickLetters LLC <br/>
Partner with SmartCredit
</p>
</body>
</html>

View File

@@ -0,0 +1,33 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>CCE</title>
</head>
<body style="margin-left: 20px">
<p style="margin-top: 5px"> Hello {{$data['email_body']}} ,</p>
<br/>
<p> Congratulations, your account is set to be activated soon. Our team has been notified and they will be activating you soon. </p>
<br/>
<p> Please allow 24 hours for all set up system to be turned on for you.</p>
<br/>
<p> If you do not see a link after 24 hours please check your spam folder for the email or contact support @</p>
<p><a href = "mailto:support@clickletters.com"> support@clickletters.com </a></p>
<br/>
<p> We are here to help </p>
<br/>
<p>
Sincerely,<br/><br/>
Technical Support Team <br/>
</p>
</body>
</html>

View File

@@ -0,0 +1,23 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>CCE</title>
</head>
<body style="margin-left: 20px">
<br/>
<p> Congratulations! Please activate {{$data['email_body']}} their email is {{$data['email']}} they are ready to be activated </p>
<br/>
<p>
Thanks,<br/><br/>
Technical Support Team <br/>
</p>
</body>
</html>

View File

@@ -0,0 +1,35 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>CCE</title>
</head>
<body style="margin-left: 20px">
<p style="margin-top: 5px"> Hello {{$data['email_body']}} ,</p>
<br/>
<p> Congratulations, your account is now active! </p>
<br/>
<p> Please click the this link <a href="{{$data['url']}}">{{$data['url']}}</a> to login to your account. Use the email and password you set up with to login.</p>
<p> Your Email: {{$data['email']}}</p>
<p> Your Password: {{$data['password']}}</p>
<br/>
<p> If you do not see a link after 24 hours please check your spam folder for the email or contact support:</p>
<p><a href = "mailto:support@clickletters.com"> support@clickletters.com </a></p>
<br/>
<p> We are here to help </p>
<br/>
<p>
Sincerely,<br/><br/>
Technical Support Team <br/>
</p>
</body>
</html>

View File

@@ -0,0 +1,19 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Credit Counsel Elite</title>
</head>
<body>
<p>Hello, {{$data['email_body']}}.</p>
<br/>
<br/>
<p>
Regards,<br/>
Credit Counsel Elite
</p>
</body>
</html>

View File

@@ -0,0 +1,27 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Creditzombies</title>
</head>
<body style="margin-left: 20px">
<p style="margin-top: 5px">Hello {{$data['email_body']}} ,We just tried to process your credit report payment for Credit Zombies partnered with SmartCredit. You should see a charge after you update your card on file for clickletters LLC. Please update your card on file to process your payment today, to prevent any interruption in your services moving forward.</p>
<br/>
<br/>
<p>If you have any questions please send and email to support@clickletters.com. </p>
<br/>
<p>
Sincerely,<br/>
Customer Support <br/>
Credit Zombies/Clickletters <br/>
Partnerd with smartcredit
</p>
</body>
</html>

View File

@@ -0,0 +1,45 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>CCE</title>
</head>
<body style="margin-left: 20px">
<p style="margin-top: 5px"> Hello {{$data['email_body']}} ,</p>
<br/><br/>
<p> Your purchase for Credit Zombies partnered with Smartcredit credit report system was just made. You will see a purchase on your bank statement for $24.97 from ClickLetters LLC.</p>
<br/><br/>
<p> If this was made buy someone other than you please contact support at : support@clickletters.com</p>
<br/><br/>
<p> Or call us at 614-547-6222</p>
<br/><br/>
<p> Between 9 am to 6pm eastern time</p>
<br/><br/>
<p> Please save this email for future use.</p>
<br/><br/>
<p> Step 1.</p>
<br/><br/>
<p> Login to your software to set up and get started</p>
<br/><br/>
<p> Here is the link: <a href="https://members.creditzombies.com/login">https://members.creditzombies.com/login</a></p>
<br/><br/>
<p> If you need further assistance please let us know, and thank you for choosing Credit Counsel Elite partner with SmartCredit</p>
<br/><br/>
<p> Credit Counsel Elite Owned by Clickletters LLC</p>
<br/><br/>
<p>
Sincerely,<br/><br/>
Customer Support Team <br/>
Credit Counsel Elite/ClickLetters LLC <br/>
Partner with SmartCredit
</p>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>businesscreditassistance</title>
</head>
<body>
<p>Hello, </p>
<br/>
<p>{{$data['email_body']}}.</p>
<br/>
<p>
Regards,<br/>
businesscreditassistance.com
</p>
</body>
</html>

View File

@@ -0,0 +1,139 @@
@extends('layouts.admin')
@section('content')
<div class="row">
<div class="col-xs-12 col-sm-12 column col-sm-offset-0 ">
<div class="panel panel-default panel-frm">
<div class="panel-heading">
<div class="row" style="padding-left: 25px;padding-right: 15px">
<h3 class="pull-left">Employee Registration</h3>
@if(isShowContent('employee.list'))
<a href="{{route('employee.list')}}" class="btn btn-success btn-flat pull-right">
<i class="fa fa-user" aria-hidden="true"></i>
Employee List
</a>
@endif
</div>
</div>
<div class="panel-body">
<div class="clearfix"></div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<form method="post" action="{{route('insert.employee')}}" id="client_form" autocomplete="on" enctype=multipart/form-data class="input-form-section">
@csrf
<div class="x_content">
<div class="col-md-12">
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="first_name">First Name</label>
<input class="form-control" name="first_name" type="text"
id="firstname">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="last_name">Last Name</label>
<input class="form-control" name="last_name" type="text">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="email">Email</label>
<input class="form-control" name="email" value=""
type="text" autocomplete="on">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="password">Password</label>
<div class="input-group" id="employee_registration_show_hide_password">
<input class="form-control" name="password"
type="password"
id="password">
<div class="input-group-addon">
<a href=""><i class="fa fa-eye-slash" aria-hidden="true"></i></a>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12" style="margin-left: 10px">
@include('partials.permission',['moduleSubmoduleAssoc'=>$moduleSubmoduleAssoc])
</div>
</div>
</div>
<div class="col-sm-12 center" style="margin-top: 10px; text-align: center; ">
@if(isShowContent('insert.employee'))
<input class="btn btn-success btn2" type="submit" value="Save Changes">
@endif
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('script')
<script src="{{asset('js/jsvalidate/validate-latest.js')}}"></script>
<script>
$('#client_form').validate({
rules: {
'first_name': 'required',
'last_name': 'required',
'email': { 'required':true,'email':true},
'password': 'required',
'userRole': 'required',
},
messages: {
'first_name': {
required: "Please enter your first name"
},
'last_name': {
required: "Please enter your last name"
},
'email': {
required: "Please enter an email address",
email: "Please enter a valid email address"
},
'password': {
required: "Please enter password again",
},
},
highlight: function (element) {
$(element).parent().addClass("has-error");
},
submitHandler: function (form) {
form.submit();
}
});
$('#employee_registration_show_hide_password a').on('click', function(event){
common_helper.globalPasswordView('#employee_registration_show_hide_password',event);
})
const birthDateCompleted=()=>{
let birth_date=$("[name='birth_date']").val();
if(birth_date.length===2){
birth_date+='/';
}
else if(birth_date.length===5){
birth_date+='/';
}
$("[name='birth_date']").val(birth_date);
}
</script>
@endpush

View File

@@ -0,0 +1,135 @@
@extends('layouts.admin')
@section('content')
<div class="row">
<div class="col-xs-12 col-sm-12 column col-sm-offset-0 ">
<div class="panel panel-default panel-frm">
<div class="panel-heading">
<div class="row" style="padding-left: 25px;padding-right: 15px">
<h3 class="pull-left">Information of {{$employee['first_name'].' '.$employee['last_name']}}</h3>
@if(isShowContent('employee.list'))
<a href="{{route('employee.list')}}" class="btn btn-success btn-flat pull-right">
<i class="fa fa-list" aria-hidden="true"></i>
Employee List
</a>
@endif
</div>
</div>
<div class="panel-body">
<div class="clearfix"></div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<form method="post" action="{{route('update.employee')}}" id="employee_edit_form" autocomplete="on" enctype=multipart/form-data class="input-form-section">
@csrf
<input type="hidden" name="id" value="{{$employee['id']}}">
<div class="x_content">
<div class="col-md-12">
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="first_name">First Name</label>
<input class="form-control"
name="first_name"
type="text"
value="{{$employee['first_name']}}"
id="firstname">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="last_name">Last Name</label>
<input class="form-control" name="last_name" value="{{$employee['last_name']}}" type="text">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="email">Email</label>
<input class="form-control" name="email" value="{{$employee['email']}}"
type="text" autocomplete="on">
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group">
<label for="password">Password</label>
<div class="input-group" id="employee_edit_show_hide_password">
<input class="form-control" name="password"
type="password"
value="{{customDecrypt($employee['password'])}}"
id="password">
<div class="input-group-addon">
<a href=""><i class="fa fa-eye-slash" aria-hidden="true"></i></a>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12" style="margin-left: 10px">
@include('partials.permission',['moduleSubmoduleAssoc'=>$moduleSubmoduleAssoc,'employee_permission'=>$employee_permission])
</div>
</div>
</div>
<div class="col-sm-12 center" style="margin-top: 10px; text-align: center; ">
@if(isShowContent('update.employee'))
<input class="btn btn-success btn2" type="submit" value="Save Changes">
@endif
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('script')
<script src="{{asset('js/jsvalidate/validate-latest.js')}}"></script>
<script>
$('#employee_edit_form').validate({
rules: {
'first_name': 'required',
'last_name': 'required',
'email': { 'required':true,'email':true},
'password': 'required',
'userRole': 'required',
},
messages: {
'first_name': {
required: "Please enter your first name"
},
'last_name': {
required: "Please enter your last name"
},
'email': {
required: "Please enter an email address",
email: "Please enter a valid email address"
},
'password': {
required: "Please enter password again",
},
},
highlight: function (element) {
$(element).parent().addClass("has-error");
},
submitHandler: function (form) {
form.submit();
}
});
$('#employee_edit_show_hide_password a').on('click', function(event){
common_helper.globalPasswordView('#employee_edit_show_hide_password',event);
})
</script>
@endpush

View File

@@ -0,0 +1,204 @@
@extends('layouts.admin')
<style>
#table-clients td {
text-align: left !important;
padding: 8px !important;
}
#table-clients th {
padding: 8px !important;
}
</style>
@php
$pageLimit = $searchData['pageLimit'];
$search_value = $searchData['search_value'];
@endphp
@section('content')
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading">
<div class="row" style="padding-left: 20px;padding-right: 15px">
<h3 class="pull-left">Employee List</h3>
@if(isShowContent('create.employee'))
<a href="{{route('create.employee')}}" class="btn btn-success btn-flat pull-right">
<i class="fa fa-user" aria-hidden="true"></i>
Add Employee
</a>
@endif
</div>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_content">
<form action="{{route('employee.list')}}" method="get" role="search">
<div class="row">
<div class="col-md-2 col-xs-12">
<div class="form-group">
<label>Show</label>
<select name="pageLimit" id="pagination" class="form-control"
onchange="this.form.submit()">
<option value="10" @if($pageLimit == 10) selected @endif>10</option>
<option value="20" @if($pageLimit == 20) selected @endif>20</option>
<option value="50" @if($pageLimit == 50) selected @endif>50</option>
<option value="100" @if($pageLimit == 100) selected @endif>100</option>
<option value="500" @if($pageLimit == 500) selected @endif>500</option>
</select>
</div>
</div>
<div class="col-md-4 col-xs-12">
<div class="form-group">
<label>Employee Name/Email</label>
<input id="search_value"
type="text"
value="{{$searchData['search_value']}}"
placeholder="Search By Name/Email"
class="form-control" name="search_value" autocomplete="off">
</div>
</div>
<div class="col-md-2 col-xs-12">
<div class="form-group" style="margin-top: 25px;">
<button class="btn btn-outline-info" style="width:100%" type="submit">Search</button>
</div>
</div>
</div>
<div class="row">
<div class="col-md-2">
@if(isShowContent('admin.ajax.process'))
<button style="margin-top: 15px;" onclick="return multipleEmployeeDelete()" type="button"
class="btn btn-danger pull-left" style="margin-left: 10px"
id="btnDeleteMultipleEmployee" disabled>Delete Employee
</button>
@endif
</div>
</div>
</form>
<div class="table-responsive py-5">
<table id="table-clients" class="table table-bordered table-hover">
<thead>
<tr>
<th><input type="checkbox" name="allChecked" value="all"
onclick="common_helper.allChecked(this,'checkedBoxEmployee')"></th>
<th>Employee Name</th>
<th>Email</th>
<th>Created At</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@if(!empty($employees))
@foreach ($employees as $key => $obj)
@php
$employee_info = json_encode([$obj->id,$obj->email]);
$action = 'DELETE_EMPLOYEE';
@endphp
<tr class="tr-height">
<td style="text-align: center !important;"><input type="checkbox" name="checkedBoxEmployee"
value="{{$employee_info}}" onclick="checkedornot(this)"></td>
<td>{{$obj->first_name.' '.$obj->last_name}}</td>
<td>{{ $obj->email}}</td>
<td> {{ getStringToDateTime($obj->created_at,'m/d/Y h:i:s a') }} </td>
<td>
@if(isShowContent('get.employee.info'))
<a href="{{route('get.employee.info',$obj->id)}}"
class="btn btn-success" style="padding: 5px;"> <span
class="glyphicon glyphicon-pencil" title="Edit"></span></a>
@endif
@if(isShowContent('get.employee.info'))
<button onclick="return employeeDelete({{$employee_info}},'{{$action}}')"
class="btn btn-danger" style="padding: 5px;"><span
class="glyphicon glyphicon-trash" title="Delete"></span>
</button>
@endif
</td>
</tr>
@endforeach
@endif
</tbody>
</table>
</div>
<div id="pagination_panel">
{{ $employees->appends(compact('pageLimit' , 'search_value')) ->links('basic.pagination') }}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('script')
<script>
const allEmployeeChecked =(e)=>{
$('input:checkbox').prop('checked',e.checked);
$('#btnDeleteMultipleEmployee').prop('disabled',(!e.checked));
}
const multipleEmployeeDelete = () => {
let action = 'DELETE_MULTIPLE_EMPLOYEE';
let checkedData = $("[name='checkedBoxEmployee']");
let clientId = [];
for (let checkbox of checkedData) {
if (checkbox.checked)
clientId.push(checkbox.value);
}
if (clientId.length > 0) {
employeeDelete(clientId,action);
}
}
const employeeDelete = (userData,action) => {
let html_content = `<h4>Are you sure you want to delete employee?</h4>`;
const swalresponse = common_helper.swalAleart(html_content, 'warning', 450, true, '', true, true, 'Yes');
swalresponse.then(async function (result) {
if (result.isConfirmed) {
let response = await common_helper.globalAjaxRequest('{{route('admin.ajax.process')}}', 'POST', {
action: action,
userData: userData,
delete_type:'employee',
_token: "{{ csrf_token() }}"
});
if (response.status) {
Swal.fire({icon: response.type, title: response.message, width: 450, closeOnConfirm: true});
window.location = `{{route('employee.list')}}`;
} else {
Swal.fire({icon: response.type, title: response.message, width: 450, closeOnConfirm: true});
}
}
})
}
const checkedornot = (e) => {
let allData = $("[name='checkedBoxEmployee']");
let checkedData = $("[name='checkedBoxEmployee']:checked");
let allChecked = false;
let alldelete = false;
if(allData.length === checkedData.length){
allChecked = true;
}
if(checkedData.length === 0){
alldelete = true;
}
$("[name='allChecked']").prop('checked', allChecked);
$('#btnDeleteMultipleEmployee').prop('disabled', alldelete);
}
</script>
@endpush

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
<h3 class="text-center" >One Time Password Recovery</h3>
<form method="post" onsubmit="return oneTimeFormSubmit()" target="_blank" action="https://www.smartcredit.com/external-login">
<input type="hidden" name="loginType" value="CUSTOMER">
<input type="hidden" name="j_username" value="{{$email}}">
<input type="hidden" name="j_password" class="form-control" value="{{$password}}">
<div class="form-group text-center" >
<button type="submit" class="btn btn-default btn2" >
Click Here
<span> <i class="fa fa-chevron-right"></i><i class="fa fa-chevron-right"></i></span>
</button>
</div>
</form>
<script>
function oneTimeFormSubmit(){
$('#securityModal').modal('hide')
return true;
}
</script>

View File

@@ -0,0 +1,142 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>404</title>
<style id="" media="all">
/* cyrillic-ext */
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 900;
font-display: swap;
src: url(/fonts.gstatic.com/s/montserrat/v25/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCvC73w0aXpsog.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
* {
-webkit-box-sizing: border-box;
box-sizing: border-box
}
body {
padding: 0;
margin: 0
}
#notfound {
position: relative;
height: 100vh
}
#notfound .notfound {
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%)
}
.notfound {
max-width: 520px;
width: 100%;
line-height: 1.4;
text-align: center
}
.notfound .notfound-404 {
position: relative;
height: 240px
}
.notfound .notfound-404 h1 {
font-family: montserrat, sans-serif;
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
font-size: 252px;
font-weight: 900;
margin: 0;
color: #262626;
text-transform: uppercase;
letter-spacing: -40px;
margin-left: -20px
}
.notfound .notfound-404 h1>span {
text-shadow: -8px 0 0 #fff
}
.notfound .notfound-404 h3 {
font-family: cabin, sans-serif;
position: relative;
font-size: 16px;
font-weight: 700;
text-transform: uppercase;
color: #262626;
margin: 0;
letter-spacing: 3px;
padding-left: 6px
}
.notfound h2 {
font-family: cabin, sans-serif;
font-size: 20px;
font-weight: 400;
text-transform: uppercase;
color: #000;
margin-top: 0;
margin-bottom: 25px
}
@media only screen and (max-width: 767px) {
.notfound .notfound-404 {
height: 200px
}
.notfound .notfound-404 h1 {
font-size: 200px
}
}
@media only screen and (max-width: 480px) {
.notfound .notfound-404 {
height: 162px
}
.notfound .notfound-404 h1 {
font-size: 162px;
height: 150px;
line-height: 162px
}
.notfound h2 {
font-size: 16px
}
}
</style>
<meta name="robots" content="noindex, follow">
</head>
<body>
<div id="notfound">
<div class="notfound">
<div class="notfound-404">
<h3>Oops! Page not found</h3>
<h1><span>4</span><span>0</span><span>4</span></h1>
</div>
<h2>we are sorry, but the page you requested was not found</h2>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,144 @@
@extends('layouts.admin')
@push('css')
<link href="{{ asset('css/support/support.css') }}" rel="stylesheet">
@endpush
@php
$pageLimit = $searchData['pageLimit'];
$status_code = $searchData['status_code'];
@endphp
@section('content')
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading">
<div class="row" style="padding-left: 20px;padding-right: 15px">
<h3 class="pull-left">Iq Call Histories</h3>
</div>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_content">
<form action="{{route('list.iq.history')}}" method="get" role="search">
<div class="row">
<div class="col-md-2 col-xs-12">
<div class="form-group">
<label>Show</label>
<select name="pageLimit" id="pagination" class="form-control"
onchange="this.form.submit()">
<option value="10" @if($pageLimit == 10) selected @endif>10</option>
<option value="20" @if($pageLimit == 20) selected @endif>20</option>
<option value="50" @if($pageLimit == 50) selected @endif>50</option>
<option value="100" @if($pageLimit == 100) selected @endif>100</option>
<option value="500" @if($pageLimit == 500) selected @endif>500</option>
</select>
</div>
</div>
<div class="col-md-2 col-xs-12">
<div class="form-group">
<label>From Date</label>
<input id="fdate"
type="text"
class="form-control" name="fdate"
value="{{$searchData['fdate']}}"
autocomplete="off">
</div>
</div>
<div class="col-md-2 col-xs-12">
<div class="form-group">
<label>To Date</label>
<input id="tdate"
type="text"
class="form-control" name="tdate"
value="{{$searchData['tdate']}}"
autocomplete="off">
</div>
</div>
<div class="col-md-2 col-xs-12">
<div class="form-group">
<label>Page Status</label>
<select name="status_code" class="form-control">
<option value="" @if($status_code == '') selected @endif>Please Select</option>
<option value="1" @if($status_code == 1) selected @endif>Ip Blocked</option>
<option value="2" @if($status_code == 2) selected @endif>Success</option>
</select>
</div>
</div>
<div class="col-md-2 col-xs-12">
<div class="form-group" style="margin-top: 25px;">
<button class="btn btn-primary btn-outline-primary" style="width:100%" type="submit">Search</button>
</div>
</div>
<div class="col-md-2 col-xs-12">
<div class="form-group" style="margin-top: 25px;">
<button class="btn btn-primary btn-outline-primary" name="export" value="1" style="width:100%" type="submit">Excel Export</button>
</div>
</div>
</div>
</form>
<div class="table-responsive py-5">
<table id="table-histories" class="table table-bordered table-hover">
<thead>
<tr>
<th>Id</th>
<th>IP</th>
<th>Port</th>
<th>Page</th>
<th>Status Code</th>
<th>Status</th>
<th>Created On</th>
</tr>
</thead>
<tbody>
@if(!empty($histories))
@foreach ($histories as $key => $obj)
@php
$status = "Success";
if($obj->error_code == 403)
$status = "Failed";
@endphp
<tr class="tr-height">
<td>{{ $obj->id }}</td>
<td>{{$obj->ip}}</td>
<td>{{$obj->port}}</td>
<td>{{$obj->page}}</td>
<td>{{$obj->error_code}}</td>
<td>{{$status}}</td>
<td>{{$obj->created_at}}</td>
</tr>
@endforeach
@endif
</tbody>
</table>
</div>
<div id="pagination_panel">
{{ $histories->links('basic.pagination') }}
<input type="hidden" name="redirect_url" value="{{route('list.iq.history')}}">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('script')
<script>
$(function() {
common_helper.datePicker('#fdate',"yyyy-mm-dd",true,null);
common_helper.datePicker('#tdate',"yyyy-mm-dd",true,null);
});
</script>
@endpush

View File

@@ -0,0 +1,191 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- Meta, title, CSS, favicons, etc. -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="csrf-token" content="{{ csrf_token() }}"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="{{ asset('images/CCE_favicon.png') }}"/>
<title>{{ config('app.name') }}</title>
<!-- Bootstrap -->
<link href="{{ asset('theme/bootstrap/dist/css/bootstrap.min.css') }}" rel="stylesheet">
<!-- Font Awesome -->
<link href="{{ asset('theme/font-awesome/css/font-awesome.min.css') }}" rel="stylesheet">
<!-- NProgress -->
<link href="{{ asset('theme/nprogress/nprogress.css') }}" rel="stylesheet">
<!-- bootstrap-progressbar -->
<link href="{{ asset('theme/bootstrap-progressbar/css/bootstrap-progressbar-3.3.4.min.css') }}" rel="stylesheet">
<!-- bootstrap-daterangepicker -->
<link href="{{ asset('theme/bootstrap-daterangepicker/daterangepicker.css') }}" rel="stylesheet">
<!-- Custom Theme Style -->
<!-- bootstrap-wysiwyg -->
<link href="{{ asset('theme/google-code-prettify/bin/prettify.min.css') }}" rel="stylesheet">
<!-- Select2 -->
<link href="{{ asset('theme/select2/dist/css/select2.min.css') }}" rel="stylesheet">
<link rel="stylesheet" href="{{ asset('css/loader.css') }}">
<link rel="stylesheet" href="{{ asset('css/spinner.css') }}">
<link href="{{ asset('theme/build/css/custom.min.css') }}" rel="stylesheet">
<link href="{{ asset('css/improved.css') }}" rel="stylesheet">
<link href="{{ asset('css/rtg_custom.css') }}" rel="stylesheet">
<link href="{{ asset('css/custom.css') }}" rel="stylesheet">
<!-- Magnific Popup Style-->
<link href="{{ asset('js/magnify/magnific-popup.css') }}" rel="stylesheet">
<!-- Datepicker css-->
<link href="{{ asset('css/datepicker.css') }}" rel="stylesheet">
<!-- summernote css-->
<link href="{{ asset('js/summernote/summernote.css') }}" rel="stylesheet">
<style>
.container_body{
height: fit-content;
min-height: 752px !important;
}
.tr-height{
line-height: 45px;
min-height: 45px;
height: 45px;
}
.swal2-confirm,.swal2-cancel {
font-size: 1.4em !important;
}
ul#remove {
list-style-type: none;
padding: 0;
}
</style>
@stack('css')
</head>
<body class="nav-md"> <!-- nav-sm -->
<div id="spinner">
<div id="loading">
<span class="timer-loader">Loading…</span>
</div>
</div>
<div class="container body">
<div class="main_container" >
@if (Auth::check())
@include('partials/adminsidemenu')
@include('partials/admintopbar')
<div class="right_col container_body" role="main" >
@if ($errors->any())
<div class="alert alert-danger" onclick="this.classList.add('hidden');">
<ul id="remove">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if (session()->has('success'))
<div class="alert alert-success" onclick="this.classList.add('hidden');">
{{ session()->get('success') }}
</div>
@endif
@if (session()->has('error'))
<div class="alert alert-danger" onclick="this.classList.add('hidden');">
{{ session()->get('error') }}
</div>
@endif
@yield('content')
</div>
@else
@yield('content')
@endif
</div>
</div>
@include('partials.footer')
<!-- jQuery -->
<script src="{{ asset('theme/jquery/dist/jquery.min.js') }}"></script>
<!-- Bootstrap -->
<script src="{{ asset('theme/bootstrap/dist/js/bootstrap.min.js') }}"></script>
<!-- Datepicker Script-->
<script src="{{asset('/')}}js/datepicker.js"></script>
<!-- FastClick -->
<script src="{{ asset('theme/fastclick/lib/fastclick.js') }}"></script>
<!-- NProgress -->
<script src="{{ asset('theme/nprogress/nprogress.js') }}"></script>
<!-- validation Scripts -->
<script src="{{asset('/')}}js/jsvalidate/jquery.validate.min.js"></script>
<!-- bootstrap-wysiwyg -->
<script src="{{ asset('theme/bootstrap-wysiwyg/js/bootstrap-wysiwyg.min.js') }}"></script>
<script src="{{ asset('theme/jquery.hotkeys/jquery.hotkeys.js') }}"></script>
<script src="{{ asset('theme/google-code-prettify/src/prettify.js') }}"></script>
<!-- Custom Theme Scripts -->
<script src="{{ asset('theme/build/js/custom.min.js') }}"></script>
<script src="{{asset('/')}}js/Common/common-helper.js?v=1.0.2"></script>
<!-- Magnific Popup Script-->
<script src="{{ asset('js/magnify/jquery.magnific-popup.js') }}"></script>
<!-- Sweetalert Script-->
<script src="{{ asset('js/sweetalert2/sweetalert2.min.js') }}"></script>
<!-- summernote -->
<script src="{{asset('/')}}js/summernote/summernote.min.js"></script>
<!-- <script>
$(window).ready(function(){
$(".right_col").css("height", $(document).height());
$(".left_col").css("height", $(document).height());
});
</script> -->
<script type="text/javascript">
function validDate(dValue) {
if (dValue == '') dValue = $('#exp_date').val();
var result = false;
dValue = dValue.split('/');
var pattern = /^\d{2}$/;
var pattern1 = /^\d{4}$/;
if (dValue[0] < 1 || dValue[0] > 12)
result = true;
if (!pattern.test(dValue[0]) || !pattern1.test(dValue[1]))
result = true;
if (dValue[2])
result = true;
if (result) {
alert("Please enter a valid date in MM/YYYY format.");
$('#exp_date').val('');
return false;
} else {
return true;
}
}
const globalAjaxRequest = async (url,method,data = {})=>{
$('#spinner').show();
let response = {}
try {
response = await $.ajax({
type: method,
url: url,
data: data
})
if (response) {
$('#spinner').hide();
}
}catch (e) {
$('#spinner').hide();
}
return response;
}
</script>
<script type="text/javascript" src="https://cdn.ywxi.net/js/1.js" async></script>
@stack('script')
</body>
</html>

View File

@@ -0,0 +1,133 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- Meta, title, CSS, favicons, etc. -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="csrf-token" content="{{ csrf_token() }}"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="{{ asset('images/CCE_favicon.png') }}"/>
<title>{{ config('app.name') }}</title>
<!-- Bootstrap -->
<link href="{{ asset('theme/bootstrap/dist/css/bootstrap.min.css') }}" rel="stylesheet">
<!-- Font Awesome -->
<link href="{{ asset('theme/font-awesome/css/font-awesome.min.css') }}" rel="stylesheet">
<!-- NProgress -->
<link href="{{ asset('theme/nprogress/nprogress.css') }}" rel="stylesheet">
<!-- bootstrap-progressbar -->
<link href="{{ asset('theme/bootstrap-progressbar/css/bootstrap-progressbar-3.3.4.min.css') }}" rel="stylesheet">
<!-- bootstrap-daterangepicker -->
<link href="{{ asset('theme/bootstrap-daterangepicker/daterangepicker.css') }}" rel="stylesheet">
<!-- Custom Theme Style -->
<!-- bootstrap-wysiwyg -->
<link href="{{ asset('theme/google-code-prettify/bin/prettify.min.css') }}" rel="stylesheet">
<!-- Select2 -->
<link href="{{ asset('theme/select2/dist/css/select2.min.css') }}" rel="stylesheet">
<link rel="stylesheet" href="{{ asset('css/loader.css') }}">
<link rel="stylesheet" href="{{ asset('css/spinner.css') }}">
<link href="{{ asset('theme/build/css/custom.min.css') }}" rel="stylesheet">
<link href="{{ asset('css/improved.css') }}" rel="stylesheet">
<link href="{{ asset('css/rtg_custom.css') }}" rel="stylesheet">
<link href="{{ asset('css/iq-default.min.css') }}" rel="stylesheet">
<link href="{{ asset('css/smart_credit_report.css') }}" rel="stylesheet">
<link href="{{ asset('css/custom.css') }}" rel="stylesheet">
<!-- Magnific Popup Style-->
<link href="{{ asset('js/magnify/magnific-popup.css') }}" rel="stylesheet">
<!-- Summernote Style-->
<link href="{{ asset('js/summernote/summernote.css') }}" rel="stylesheet">
<link href="{{ asset('css/client_layout.css') }}" rel="stylesheet">
@stack('css')
</head>
<body class="nav-md"> <!-- nav-sm -->
<div id="spinner" class="loading">
<div id="loading">
<span class="timer-loader">Loading…</span>
</div>
</div>
<div class="container body">
<div class="main_container">
@if (Auth::check())
@include('partials/sidemenu')
@include('partials/topbar')
<div class="right_col container_body" role="main" >
@if ($errors->any())
<div class="alert alert-danger" style="margin-top: 50px" onclick="this.classList.add('hidden');">
<ul id="remove">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if (session()->has('success'))
<div class="alert alert-success" style="margin-top: 50px" onclick="this.classList.add('hidden');">
{{ session()->get('success') }}
</div>
@endif
@if (session()->has('error'))
<div class="alert alert-danger" style="margin-top: 50px" onclick="this.classList.add('hidden');">
{{ session()->get('error') }}
</div>
@endif
@yield('content')
{{-- @include('partials.modal_views')--}}
@include('partials.footer')
</div>
@else
@yield('content')
@endif
</div>
</div>
<!-- jQuery -->
<script src="{{ asset('theme/jquery/dist/jquery.min.js') }}"></script>
<!-- Bootstrap -->
<script src="{{ asset('theme/bootstrap/dist/js/bootstrap.min.js') }}"></script>
<!-- FastClick -->
<script src="{{ asset('theme/fastclick/lib/fastclick.js') }}"></script>
<!-- NProgress -->
<script src="{{ asset('theme/nprogress/nprogress.js') }}"></script>
<!-- bootstrap-wysiwyg -->
<script src="{{ asset('theme/bootstrap-wysiwyg/js/bootstrap-wysiwyg.min.js') }}"></script>
<script src="{{ asset('theme/jquery.hotkeys/jquery.hotkeys.js') }}"></script>
<script src="{{ asset('theme/google-code-prettify/src/prettify.js') }}"></script>
<!-- validation Scripts -->
<script src="{{asset('/')}}js/jsvalidate/jquery.validate.min.js"></script>
<!-- Custom Theme Scripts -->
<script src="{{ asset('theme/build/js/custom.min.js') }}"></script>
<script src="{{asset('/')}}js/Common/common-helper.js?v=1.0.2"></script>
<!-- Magnific Popup Script-->
<script src="{{ asset('js/magnify/jquery.magnific-popup.js') }}"></script>
<!-- Sweetalert Script-->
<script src="{{ asset('js/sweetalert2/sweetalert2.min.js') }}"></script>
<!-- vimeo player -->
<script src="https://player.vimeo.com/api/player.js"></script>
<!-- summernote -->
<script src="{{asset('/')}}js/summernote/summernote.min.js"></script>
<!-- <script>
$(window).ready(function(){
$(".right_col").css("height", $(document).height());
$(".left_col").css("height", $(document).height());
});
</script> -->
<script type="text/javascript" src="https://cdn.ywxi.net/js/1.js" async></script>
@stack('script')
</body>
</html>

View File

@@ -0,0 +1,87 @@
<head>
<title>pdf</title>
<!-- Bootstrap -->
<link href="{{ public_path('theme/bootstrap/dist/css/bootstrap.min.css') }}" rel="stylesheet">
<link href="{{ public_path('css/iq-default.min.css') }}" rel="stylesheet">
<style type="text/css">
body {
font-size: 18px;
margin-top: 120px;
font-family: -webkit-body;
color: black;
margin-left: 50px;
margin-right: 50px;
text-align: justify;
}
.span-red { color: red; }
.span-large { font-size: 20px; text-align: center; }
.span-ul {text-decoration: underline; color: #333;background-color: yellow;font-size: 18px;}
.span-blue { color: #8aaed3;font-size: 20px; }
.txt-cen-ul {text-align: center;text-decoration: underline;font-weight: bold;}
.span-ul2 {text-decoration: underline; color: #333;}
/* div.cb-content * {
background-color: #eded80;
} */
.bg-yellow {
background-color:#e3f10d;
font-weight: bold;
}
.bg-pink {
background-color: #ead0ea;
}
.bg-tra {
background-color: #DAB96A;
}
.bg-exp {
background-color: #98BDC5;
}
.bg-equ {
background-color: #CBD06C;
}
.bg-yellow2 {
background-color:#e8de5e;
}
.cb-br {
font-weight: bold;
font-size: 16px;
background-color: #ccc;
}
.span-cl-green {
color: #1bd618
}
.addr_hsrty{
font-size:9px;
border-spacing: 0px;
padding: 0px;
}
.addr_hsrty td{
padding: 0px;
}
table.addr_hsrty td.headerTUC, table.addr_hsrty td.headerEXP, table.addr_hsrty td.headerEQF {
background-color: transparent !important;
color: black;
}
.cl-diff {
font-weight: bold !important;
font-size: 13px !important;
/*color: red;
mix-blend-mode: exclusion;*/
}
.clr-red {
color: red;
}
.bg-light-red {
background-color: #f19191;
}
.span-simple-ul {text-decoration: underline;}
.acct-cb-img table{
width: 100% !important;
}
.lower-part table{
width: 100%;
}
</style>
</head>

View File

@@ -0,0 +1,91 @@
<!DOCTYPE html>
<html>
@include('layouts.lg-pdf-css')
<body>
<div class="container" style="margin-top: 30px;">
<div class="row" id="pdf">
<div class="row"><br></div>
<div class="row">
<table style="width:100%">
<tr>
<td style="width:50%">
<span style="float:left" class="span-red">Today&apos;s Date is: <span
class="span-ul">{{$universal['today']}}</span></span>
</td>
<td style="width:50%">
<span
class="span-large">Credit Report Data Resource:</span> <span
style="font-size:16px;" class="span-ul" style="float: right;">{{$universal['cr_resource']}}
</span>
</td>
</tr>
</table>
<p>
</p>
</div>
<br>
<div class="row">
<p class="span-red">My First and Last Name is and ONLY is&nbsp; <span
class="span-ul">{{$universal['name']}}</span></p>
</div>
<div class="row">
<p class="span-red">My Address Street Number, Street Name, City, and State is and only is</p>
<p class="span-ul">{{$universal['address']}}</p><br>
<p class="span-red">My Date of Birth is and only is&nbsp; <span class="span-ul">{{$universal['dob']}}</span>
</p>
<p class="span-red">My current Legally acquired lawful Social Security Number last four is and only is
&nbsp;<span class="span-ul">{{$universal['ssn']}}</span></p>
</div>
<div class="row">
<p>****To begin, I would like to ensure you have and ONLY RETAIN current, TRUE, CORRECT, COMPLETE, and
MANDATED REPORTED information per FCRA regulations, any and all others that might be reported now or
else wise I DEMAND, as is my lawful RIGHT(s) to do so, that you annul permanently and immediately any
and all deficient of these afore-noted conditions, mentioned or not, especially if related directly or
indirectly to any potentially injurious information be it true or unknown! Again, I DO NOT AUTHORIZE you
to mis-report any mis-information now or ever, please review and ENSURE your adequate and full
accordance to the laws upon which govern your practice of reporting consumer credit profiles. </p>
</div>
<div class="row">
<p>(a)I do NOT have any requisite OTHER NAMES or aliases and I do NOT desire any OTHER NAMES or aliases to
be retained or reported, if ANY DELETE NOW or produce PROOF of your legitimate AUTHORITY to retain much
less report without infringing my consumer right(s).</p>
</div>
<div class="row">
<p>(b)I do NOT have any requisite OTHER CURRENT addresses and I do NOT desire any OTHER ADDRESSES to be
retained or reported, if ANY DELETE NOW or produce PROOF of your legitimate AUTHORITY to retain much
less report without infringing my consumer right(s).</p>
</div>
<div class="row">
<p>(c )I do NOT have any requisite OTHER SSNs and I do NOT desire any OTHER SSNs to be retained or reported,
if ANY DELETE NOW or product PROOF of your legitimate AUTHORITY to retain much less report without
infringing my consumer right(s)..</p>
</div>
<div class="row">
<p>(d)I do NOT have any requisite OTHER Dates of Birth and I do NOT desire any OTHER Dates of Birth to be
retained or reported, if ANY DELETE NOW or product PROOF of your legitimate AUTHORITY to retain much
less report without infringing my consumer right(s).</p>
</div>
<div class="row">
<p>(e)I do NOT have any requisite telephone numbers and I do NOT desire any telephone numbers to be retained
or reported, if ANY DELETE NOW or product PROOF of your legitimate AUTHORITY to retain much less report
without infringing my consumer right(s).</p>
</div>
<div class="row">
<p>(f)I do NOT have any requisite employers and I do NOT desire any employers to be retained or reported, if
ANY DELETE NOW or product PROOF of your legitimate AUTHORITY to retain much less report without
infringing my consumer right(s).</p>
</div>
<div class="row">
<p>(g)I do NOT have any requisite spouses/ roommates/ co-applicants and I do NOT desire any spouses/
roommates/ co-applicants to be retained or reported, if ANY DELETE NOW or product PROOF of your
legitimate AUTHORITY to retain much less report without infringing my consumer right(s).</p>
</div>
@yield('content')
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,42 @@
<!DOCTYPE html>
<html>
@include('layouts.lg-pdf-css')
<body>
<div class="container" style="margin-top: 30px;">
<div class="row" id="pdf">
<div class="row"><br></div>
<div class="row">
@yield('header_content')
<!-- <p><span style="float:left" class="span-red">Today&apos;s Date is: <span class="span-ul">{{$universal['today']}}</span></span> <span style="margin-left: 90px;width: 200px;" class="span-large">Credit Report Data Resource:</span> <span style="font-size:16px;" class="span-ul" style="float: right;">{{$universal['cr_resource']}} </span></p>-->
<table style="width:100%">
<tr>
<td style="width:50%">
<span style="float:left" class="span-red">Today&apos;s Date is: <span
class="span-ul">{{$universal['today']}}</span></span>
</td>
<td style="width:50%">
<span
style="margin-left: 90px;width: 150px;"
class="span-large">Credit Report Data Resource:</span> <span
style="font-size:16px;" class="span-ul" style="float: right;">{{$universal['cr_resource']}}
</span>
</td>
</tr>
</table>
</div><br>
<div class="row">
<p class="span-red">My First and Last Name is and ONLY is&nbsp; <span class="span-ul">{{$universal['name']}} </span></p>
</div>
<div class="row">
<p class="span-red">My Address Street Number, Street Name, City, and State is and only is</p>
<p class="span-ul">{{$universal['address']}} </p><br>
<p class="span-red">My Date of Birth is and only is&nbsp; <span class="span-ul">{{$universal['dob']}} </span></p>
</div>
@yield('content')
</div>
</div>
</body>
</html>

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