From a5f4f8de0628241e1a118b012fe76a7a0c698329 Mon Sep 17 00:00:00 2001 From: sairaj mote Date: Tue, 22 Sep 2020 21:04:42 +0530 Subject: [PATCH] 0.0.37 --- css/main.css | 18 +- css/main.min.css | 2 +- css/main.scss | 16 +- index.html | 646 +++++++++++++++++++++++++---------------------- 4 files changed, 370 insertions(+), 312 deletions(-) diff --git a/css/main.css b/css/main.css index 4dd73a0..c048556 100644 --- a/css/main.css +++ b/css/main.css @@ -427,11 +427,13 @@ sm-popup sm-input:not(:last-of-type) { sm-popup p { margin-block-end: 1rem; } -sm-popup .action { - margin-top: 1.5rem; -} sm-popup .action h4 { - padding: 0.8rem 1.6rem; + padding: 0.5rem 1rem; + font-weight: 500; +} +sm-popup h5:not(.tag) { + margin-bottom: 0.4rem; + margin-top: 1rem; } .popup-header { @@ -1044,7 +1046,7 @@ sm-panel { padding: 1rem 1.2rem; gap: 0 1rem; grid-template-columns: auto 1fr auto; - grid-template-areas: "icon type amount" "icon time time"; + grid-template-areas: "icon type amount" "icon receiver time"; max-width: 70ch; } .activity .icon { @@ -1058,6 +1060,11 @@ sm-panel { .activity .activity-type { grid-area: type; text-transform: capitalize; + font-weight: 400; + font-size: 0.9rem; +} +.activity .activity-receiver { + grid-area: receiver; font-weight: 500; } .activity .activity-amount { @@ -1079,7 +1086,6 @@ sm-panel { padding: 0.8rem 1rem; border-radius: 0.3rem; background: rgba(var(--text-color), 0.1); - margin-top: 1rem; align-items: center; cursor: pointer; } diff --git a/css/main.min.css b/css/main.min.css index 33f9a07..157a8ea 100644 --- a/css/main.min.css +++ b/css/main.min.css @@ -1 +1 @@ -a,h1,h2,h3,h4,h5{font-weight:600}.options-tab .option,button{-webkit-tap-highlight-color:transparent;transition:transform .3s;text-transform:capitalize}*{box-sizing:border-box;padding:0;margin:0;font-family:Roboto,sans-serif}button,h1,h2,h3,h4,h5{font-family:Poppins,sans-serif}:root{scroll-behavior:smooth}body{--accent-color:#2237CD;--text-color:17,17,17;--text-color-light:85,85,85;--foreground-color:255,255,255;--background-color:#e8e8e8;--dark-shade:#dadada;background:linear-gradient(rgba(var(--foreground-color),.1),rgba(var(--foreground-color),.3)),url(back.svg) no-repeat fixed;color:rgba(var(--text-color),1);font-size:16px;background-size:cover}a{text-decoration:none;color:var(--accent-color)}.dark-text{color:#111}h1{font-size:3.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1rem}h5{font-size:.8rem}p{line-height:1.5;max-width:60ch;color:rgba(var(--text-color),.9)}strong{font-weight:500}button{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.2rem;font-weight:600;cursor:pointer;border-radius:.3rem;color:var(--accent-color);border:none;background:rgba(var(--text-color),.1)}.action,.align-center{align-items:center}button:focus{outline:solid thin}button:disabled{cursor:default;background:rgba(var(--text-color),.5)}.action,.action[disabled] .primary-btn{background:0 0}button:disabled~.loader{opacity:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=text]::-ms-clear{display:none;width:0;height:0}input[type=text]::-ms-reveal{display:none;width:0;height:0}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}input[type=number]{-moz-appearance:textfield}input:invalid{outline:0;box-shadow:none}::-moz-focus-inner{border:none}.bottom-padding{padding-bottom:1.5rem}.top-padding{padding-top:1em}.bottom-margin{margin-bottom:1.5rem}.top-margin{margin-top:1.5rem}.flex{display:flex}.grid{display:grid}.grid-2{grid-template-columns:auto auto;gap:1em}#confirmation,#prompt,.direction-column,.options-tab .option{flex-direction:column}.space-between{justify-content:space-between}.label{margin-bottom:.4rem}.light-text{opacity:.7}.hide{opacity:0;pointer-events:none}.hide-completely{display:none!important}.breakable{word-break:break-all}.separator{padding:.1em}.no-transformations{transform:none!important}.loader{fill:none;stroke-width:10;stroke:var(--accent-color);height:2rem;width:2rem;overflow:visible;stroke-dashoffset:230;stroke-dasharray:230;padding:2px;justify-self:center}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes load{50%{stroke-dashoffset:0}100%{stroke-dashoffset:-210}}.action{position:relative;display:inline-flex;justify-content:center;padding:0}.action h4{padding:.5rem 1.2rem;font-size:.9rem;clip-path:circle(100%);transition:clip-path .3s;border-radius:.2rem}.action .btn{z-index:2}.action .loader{position:absolute;z-index:1;padding:.4em}.clip{clip-path:circle(0)!important}.animate-loader{animation:load 2.6s infinite,rotate 1s infinite linear}.expand{width:100%}.fade-left{animation:fadeleft .3s}.fade-right{animation:faderight .3s}@keyframes faderight{from{opacity:0;transform:translateX(-1em)}to{opacity:1;transform:none}}@keyframes fadeleft{from{opacity:0;transform:translateX(1em)}to{opacity:1;transform:none}}#logo{display:inline-grid;align-items:center;grid-template-columns:auto 1fr;gap:.6rem .4rem;margin-right:1rem}#logo h4{letter-spacing:.06rem;word-spacing:.12rem}#logo h5{font-weight:400}#logo #main_logo{height:1.6rem;width:1.6rem;fill:rgba(var(--text-color),1);stroke:none}textarea{width:100%;max-width:100%;background:rgba(var(--text-color),.1);border:none;border-radius:.2rem;resize:none;font-size:1rem;line-height:1.6;padding:.8rem}:empty+.empty-state{display:grid}.empty-state{display:none;place-items:center;width:100%}.empty-state svg{stroke:rgba(var(--text-color),.8);height:12em;width:12em}.container-header{display:flex;align-items:center;flex-direction:row;width:100%;padding:1rem 0}.container-header h2{flex:1}.container-header button{align-self:center}.btn{background:var(--accent-color);color:rgba(var(--foreground-color),1);padding:.4em 1em}.back-arrow{stroke:rgba(var(--text-color),1);stroke-width:6;fill:none;height:2rem;padding:.5rem .5rem .5rem 0;cursor:pointer}.card{border-radius:.6rem;padding:1.5em;background:rgba(var(--foreground-color),1)}.solid-background{background:rgba(var(--foreground-color),1)!important}.activity,.activity .icon,details p,sm-popup .illustration{background:rgba(var(--text-color),.06)}#confirmation p,#prompt p{margin:1rem}#confirmation h4,#prompt h4{font-weight:500;margin-bottom:1.5rem}#confirmation .flex sm-button:first-of-type,#prompt .flex sm-button:first-of-type{margin-right:.6em;margin-left:auto}.refresh{margin-top:.6em;margin-bottom:1em}sm-popup .illustration{position:relative;height:4rem;width:4rem;padding:1rem;stroke:var(--accent-color);margin-bottom:1rem;border-radius:5rem}#main_loader,#navbar{position:fixed;left:0}sm-popup sm-input:not(:last-of-type){margin-bottom:1rem}sm-popup p{margin-block-end:1rem}sm-popup .action{margin-top:1.5rem}sm-popup .action h4{padding:.8rem 1.6rem}.popup-header{padding:1.5rem;padding-bottom:0;display:flex;align-items:center;width:100%}.popup-header .icon{margin-right:1rem;padding:.2rem;stroke-width:10;cursor:pointer}.popup-header button{width:auto;margin-left:auto}details,summary{margin-bottom:1rem}details p{border-radius:.2rem;padding:.5rem 1rem;margin-bottom:0}#sign_in_popup h3{margin-top:2rem}#sign_in_popup h4{font-weight:500;margin-bottom:3rem}#sign_in_popup button{margin:1rem 0}#sign_in_popup p{margin-top:1rem;margin-bottom:0!important}.primary-btn{background:var(--accent-color);justify-content:center;color:rgba(var(--foreground-color),1)}#main_header{align-items:center;padding:1rem;justify-content:space-between}.display-balance{gap:1rem;grid-auto-flow:row}.display-balance .balance{width:100%}.display-balance .icon{height:1.4rem;width:1.4rem;padding:.3rem;stroke-width:10;cursor:pointer}.icon,.select .radio{width:1.2rem;height:1.2rem;fill:none}.icon{stroke:rgba(var(--text-color),.8);stroke-width:6;overflow:visible;stroke-linecap:round;stroke-linejoin:round}#navbar{display:flex;flex-direction:row;align-items:center;justify-content:space-evenly;right:0;bottom:0;top:auto;border-top:solid 1px rgba(var(--text-color),.2);border-right:none;z-index:3;background:rgba(var(--foreground-color),1)}#navbar .navbar-item{position:relative;text-align:center;cursor:pointer;padding:.3em;margin:.3em;border-radius:.4em;color:rgba(var(--text-color),.8);font-size:.8em;text-transform:capitalize;width:100%;font-weight:600}#navbar .navbar-item h5{margin-top:.4em}#navbar .active{color:var(--accent-color)}.user-panel,.user-panel .grid P{color:rgba(var(--foreground-color),1)}#navbar .active .icon{stroke:var(--accent-color)}.banking{stroke-width:4}#home_page{padding:1rem 0 4rem}#home_page .left{padding:1.5rem 0;width:auto;border-radius:.6rem}#home_page .left h3,#home_page .left h4,#home_page .left p{padding:0 1.5rem}#home_page .left h3{font-size:2rem;margin-bottom:1rem}#home_page .user-panel{margin:0 1.5rem}.user-panel{position:relative;padding:1.5rem;border-radius:.6rem;background:linear-gradient(135deg,var(--accent-color),#2F2B76);box-shadow:0 .1rem .1rem #00010,0 1rem 1rem -1rem #00010;align-self:flex-start}.user-panel .icon{stroke:rgba(var(--foreground-color),1)}.user-panel .copy-row{margin-bottom:1rem;padding-bottom:1rem;border-bottom:solid 1px rgba(var(--foreground-color),.3)}.user-panel sm-button{--text-color:rgba(var(--foreground-color), 1);background:rgba(var(--foreground-color),.2);border-radius:2rem}.user-panel .grid{gap:1.5rem;grid-template-columns:1fr 1fr;margin-top:1rem}.user-panel .grid h5{font-weight:500}.user-panel .grid h4{font-size:1.2rem}.user-panel .grid P{font-size:.8rem;opacity:.9;margin-bottom:0!important;max-width:30ch}.complaint .processed,.deposited{color:#007732}.balance{display:grid;gap:0 1rem}.user-type{font-weight:500}.options-tab{margin:1rem 0}.options-tab>.grid{min-width:100vw;padding:0 1.5rem;grid-auto-flow:column;gap:.2rem}.options-tab .option{position:relative;display:flex;align-items:center;text-align:center;border-radius:.4rem;margin-bottom:1rem;width:5rem;min-width:5rem;cursor:pointer}.options-tab .option .icon{height:3rem;width:3rem;padding:.8rem;stroke:var(--accent-color)}.options-tab .option h4{font-size:.9rem;font-weight:500}.options-tab .option:active{transform:scale(.95)}.request-icon{transform:rotate(180deg)}.notification-dot::after{content:"";position:absolute;z-index:1;top:0;right:0;height:.6em;width:.6em;background-color:#E53935;border-radius:.4em;transition:transform .3s}.shrink.notification-dot::after{transform:scale(0)}#deposit .container-header,#withdraw .container-header{background:linear-gradient(rgba(var(--foreground-color),1) 90%,transparent)}.page .container-header,sm-tab-header{background:rgba(var(--foreground-color),1);z-index:2;top:0}sm-tab-header{position:sticky;margin-bottom:1rem;border-bottom:solid 1px rgba(var(--text-color),.2)}sm-tab::part(tab){padding:.8rem .4rem;text-transform:capitalize}sm-panel{width:100%}.request{display:inline-flex;flex-direction:column;padding:1.5em;border-radius:.4em;border:1px solid}.request h5{margin-bottom:.2rem;text-transform:capitalize}.request h3,.request h4{margin-bottom:1.5rem}.copy-row h4,.request button{margin-bottom:0}.request h4:last-of-type{margin-bottom:0}.request .action{align-self:flex-end}.request .amount{font-size:1.4em}.request button{width:auto;align-self:flex-end;margin-top:1.5rem}.request .copy-row{margin-bottom:1.5rem}.request .flex{align-items:center;justify-content:flex-end;margin-top:1.5rem}.request .flex button,.request .flex h5{margin:0}.deposited::before{content:"+ "}.decline-request{margin-right:.5rem!important}.withdrawn{color:#d43125}.withdrawn::before{content:"- "}.container{display:grid;gap:1em;width:100%;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr))}.copy-row,.page .container-header{display:grid;grid-template-columns:1fr auto}.page{padding:1rem 1.5rem;padding-bottom:5rem}.page .container-header{grid-template-areas:". ." "search search";gap:1rem;will-change:auto}.page .container-header .search{grid-area:search}.page .container-header .search input{padding:1em;border:none;width:100%;background:var(--dark-shade);font-size:1rem;font-weight:500;color:rgba(var(--text-color),1);border-radius:.2em}.page .container-header .search input:focus{outline:0;background:rgba(var(--text-color-light),.2)}.copy-row{align-items:center;gap:.5rem;width:auto}.copy-row .icon{cursor:pointer;padding:.4rem;height:1.8rem;width:1.8rem}.copy-row .copy{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time{margin-bottom:1.5rem!important;font-weight:500}#report_popup{width:32rem}#profile_page{display:flex;flex-direction:column}#profile_page button{align-self:flex-start}.complaint{display:grid;gap:1.5rem 0}.complaint .complaint-actions{align-items:center;margin:1.5rem 0 0}#helpline_page sm-select,.complaint .processed,.complaint .unprocessed{margin-bottom:1.5rem}.complaint .unprocessed{color:#d43125}.complaint button .icon{padding:.2rem;margin-right:.5rem;stroke:var(--accent-color);stroke-width:8}.complaints-container{padding-top:1.5rem;display:grid;align-items:flex-start;gap:1.5rem}.complaint-placeholder{animation:pulse infinite .6s alternate}.complaint-placeholder h4,.complaint-placeholder h5{border-radius:.2rem}.complaint-placeholder h5{background:rgba(var(--text-color),.1);padding:.5rem .6rem}.complaint-placeholder h4{background:rgba(var(--text-color),.2);padding:.8rem}.complaint-placeholder .demo-btn{padding:.8rem 3rem}@keyframes pulse{from{opacity:.4}to{opacity:1}}#main_loader{text-align:center;place-content:center;height:100vh;width:100vw}#main_loader sm-button{margin-left:0;margin-top:1rem}#main_loader svg{height:2rem;width:2rem;stroke:var(--accent-color);stroke-width:6;fill:none;overflow:visible;stroke-linecap:round;stroke-dashoffset:210;stroke-dasharray:210;justify-self:center;align-self:center;margin-bottom:2rem}#main_loader h3{width:100%;font-weight:400;word-spacing:.16em}#upi_txId_section .copy-row{margin-bottom:1.5rem}#send_amount_to_deposit{margin-bottom:0!important}@keyframes popup{0%{stroke-dashoffset:50;transform:translateY(4rem) scale(.2,.6)}40%,41%{transform:translateY(0) scale(.2)}50%{stroke-dashoffset:50;transform:translateY(0) scale(1)}100%{stroke-dashoffset:0}}#transaction_result{z-index:12}#transaction_result::part(popup){background-image:url(card-back.svg);background-size:cover;background-position-y:-3rem;background-repeat:no-repeat}#transaction_result .copy-row{grid-template-areas:"label label" ". .";margin-top:1rem;gap:0 1rem}#transaction_result .copy-row h4{font-weight:500}#transaction_result h5{grid-area:label;color:rgba(var(--text-color),.7)}#transaction_result h4,#transaction_result h5,#transaction_result p{text-align:center}#transaction_result>h4{font-size:1.2rem;margin-top:6rem;margin-bottom:.5rem}#failure_svg,#success_svg{height:5rem;width:5rem;stroke-width:4;align-self:center;stroke:none;stroke-dasharray:50;fill:rgba(var(--foreground-color),1);animation:popup 2s forwards cubic-bezier(.175,.885,.32,1.275)}#success_svg polyline{fill:none;stroke:#00C853}#failure_svg line{stroke:#EF5350}.rupee-symbol{height:1rem;width:1rem;fill:rgba(var(--text-color),.5)}#deposit_rupee .copy-row{margin-bottom:1rem}.activity-container{display:grid;gap:1rem}.activity{display:grid;border-radius:.6rem;padding:1rem 1.2rem;gap:0 1rem;grid-template-columns:auto 1fr auto;grid-template-areas:"icon type amount" "icon time time";max-width:70ch}.activity .icon{grid-area:icon;height:3rem;width:3rem;padding:.8rem;border-radius:2rem}.activity .activity-type{grid-area:type;text-transform:capitalize;font-weight:500}.activity .activity-amount{text-align:right;grid-area:amount}.activity .activity-time{text-align:right;grid-area:time;color:rgba(var(--text-color),.7);font-weight:500}.select{max-width:50ch;position:relative;display:flex;width:100%;padding:.8rem 1rem;border-radius:.3rem;background:rgba(var(--text-color),.1);margin-top:1rem;align-items:center;cursor:pointer}.select:first-of-type:not(:last-of-type){border-radius:.3rem .3rem 0 0}.select+.select{margin-top:0;border-radius:0 0 .3rem .3rem;border-top:solid 1px rgba(var(--text-color),.16)}.select input[type=radio]{display:none}.select input:checked~.radio .outer-ring{stroke:var(--accent-color)}.select input:checked~.radio .inner-disc{transform:none}.select .radio{overflow:visible;margin-right:.6rem}.select .radio .outer-ring{stroke-width:8;stroke:rgba(var(--text-color),.5)}.select .radio .inner-disc{transform-origin:center;fill:var(--accent-color);transform:scale(0);transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.select .tag{opacity:.6;font-weight:500;margin-left:auto}.select h4{font-weight:400}.select .outer{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none}.add-upi{margin-top:.4rem;justify-self:flex-start;width:max-content}@media only screen and (max-width:640px){#deposit,#home_page{display:grid;gap:1.5rem;grid-template-areas:"." "left";grid-template-columns:minmax(0,1fr)}#deposit .left,#home_page .left{grid-area:left;background:rgba(var(--text-color),.06)}sm-select{width:100%}}@media only screen and (min-width:640px){body{padding:0 2rem;margin-left:6rem}sm-popup{background:rgba(var(--foreground-color),1)}#confirmation,sm-popup::part(popup){width:24rem}#navbar{justify-content:center;flex-direction:column;align-items:stretch;left:0;bottom:0;top:0;right:auto;width:6rem;border-top:none;border-right:solid 1px rgba(var(--text-color),.2)}#navbar .navbar-item{border-radius:.5rem;width:auto;padding:.5rem 0;margin:.5rem .6rem}#navbar .navbar-item .icon{height:1.4rem;width:1.4rem}#navbar .navbar-item:hover{background:rgba(var(--foreground-color),.2)}#navbar .navbar-item.active{background:rgba(var(--foreground-color),1);color:var(--accent-color)}#navbar .navbar-item.active .icon{stroke:var(--accent-color)}.page{padding-bottom:2rem}#sign_in_popup{width:24rem}.options-tab>.grid{gap:1rem;min-width:auto}.options-tab .grid:first-of-type{padding-right:0}.options-tab .grid:last-of-type{padding-left:0}#settings_page .copy-row{display:inline-grid}}@media only screen and (min-width:800px){.complaint{gap:0 1.5rem;grid-template-columns:1fr 1fr;grid-template-areas:". . " "header header"}.complaint .complaint-actions{grid-area:header}.complaint .left{border-right:1px solid rgba(var(--text-color),.2);padding-right:1.5rem}.complaint .right{display:flex;justify-content:center;flex-direction:column}.user-panel{position:sticky;top:1.5rem}#deposit,#home_page{display:grid;gap:1.5rem;grid-template-columns:minmax(0,1fr) 24rem}}@media only screen and (min-width:1920px){body{font-size:24px}}@media only screen and (min-width:2048px){body{font-size:24px}}@media only screen and (max-width:320px){body{font-size:14px}}@media (prefers-color-scheme:dark){:root{--text-color:238,238,238;--text-color-light:170,170,170;--foreground-color:26,26,26;--background-color:#111;--dark-shade:#1a1a1a}}@media (prefers-color-scheme:light){:root{--text-color:17,17,17;--text-color-light:85,85,85;--foreground-color:255,255,255;--background-color:#e8e8e8;--dark-shade:#dadada}}@media (prefers-color-scheme:no-preference){:root{--text-color:17,17,17;--text-color-light:85,85,85;--foreground-color:255,255,255;--background-color:#e8e8e8;--dark-shade:#dadada}}@media (any-hover:hover){.option:hover{background:rgba(var(--text-color),.1)}} \ No newline at end of file +a,h1,h2,h3,h4,h5{font-weight:600}.options-tab .option,button{-webkit-tap-highlight-color:transparent;transition:transform .3s;text-transform:capitalize;cursor:pointer}*{box-sizing:border-box;padding:0;margin:0;font-family:Roboto,sans-serif}button,h1,h2,h3,h4,h5{font-family:Poppins,sans-serif}:root{scroll-behavior:smooth}body{--accent-color:#2237CD;--text-color:17,17,17;--text-color-light:85,85,85;--foreground-color:255,255,255;--background-color:#e8e8e8;--dark-shade:#dadada;background:linear-gradient(rgba(var(--foreground-color),.1),rgba(var(--foreground-color),.3)),url(back.svg) no-repeat fixed;color:rgba(var(--text-color),1);font-size:16px;background-size:cover}a{text-decoration:none;color:var(--accent-color)}.dark-text{color:#111}h1{font-size:3.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1rem}h5{font-size:.8rem}p{line-height:1.5;max-width:60ch;color:rgba(var(--text-color),.9)}strong{font-weight:500}button{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.2rem;font-weight:600;border-radius:.3rem;color:var(--accent-color);border:none;background:rgba(var(--text-color),.1)}button:focus{outline:solid thin}button:disabled{cursor:default;background:rgba(var(--text-color),.5)}.action,.action[disabled] .primary-btn{background:0 0}button:disabled~.loader{opacity:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=text]::-ms-clear{display:none;width:0;height:0}input[type=text]::-ms-reveal{display:none;width:0;height:0}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}input[type=number]{-moz-appearance:textfield}input:invalid{outline:0;box-shadow:none}::-moz-focus-inner{border:none}.bottom-padding{padding-bottom:1.5rem}.top-padding{padding-top:1em}.bottom-margin{margin-bottom:1.5rem}.top-margin{margin-top:1.5rem}.flex{display:flex}.grid{display:grid}.grid-2{grid-template-columns:auto auto;gap:1em}.align-center{align-items:center}#confirmation,#prompt,.direction-column,.options-tab .option{flex-direction:column}.space-between{justify-content:space-between}.label{margin-bottom:.4rem}.light-text{opacity:.7}.hide{opacity:0;pointer-events:none}.hide-completely{display:none!important}.breakable{word-break:break-all}.separator{padding:.1em}.no-transformations{transform:none!important}.loader{fill:none;stroke-width:10;stroke:var(--accent-color);height:2rem;width:2rem;overflow:visible;stroke-dashoffset:230;stroke-dasharray:230;padding:2px;justify-self:center}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes load{50%{stroke-dashoffset:0}100%{stroke-dashoffset:-210}}.action{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:0}.action h4{padding:.5rem 1.2rem;font-size:.9rem;clip-path:circle(100%);transition:clip-path .3s;border-radius:.2rem}.action .btn{z-index:2}.action .loader{position:absolute;z-index:1;padding:.4em}.clip{clip-path:circle(0)!important}.animate-loader{animation:load 2.6s infinite,rotate 1s infinite linear}.expand{width:100%}.fade-left{animation:fadeleft .3s}.fade-right{animation:faderight .3s}@keyframes faderight{from{opacity:0;transform:translateX(-1em)}to{opacity:1;transform:none}}@keyframes fadeleft{from{opacity:0;transform:translateX(1em)}to{opacity:1;transform:none}}#logo{display:inline-grid;align-items:center;grid-template-columns:auto 1fr;gap:.6rem .4rem;margin-right:1rem}#logo h4{letter-spacing:.06rem;word-spacing:.12rem}#logo h5{font-weight:400}#logo #main_logo{height:1.6rem;width:1.6rem;fill:rgba(var(--text-color),1);stroke:none}textarea{width:100%;max-width:100%;background:rgba(var(--text-color),.1);border:none;border-radius:.2rem;resize:none;font-size:1rem;line-height:1.6;padding:.8rem}:empty+.empty-state{display:grid}.empty-state{display:none;place-items:center;width:100%}.empty-state svg{stroke:rgba(var(--text-color),.8);height:12em;width:12em}.container-header{display:flex;align-items:center;flex-direction:row;width:100%;padding:1rem 0}.container-header h2{flex:1}.container-header button{align-self:center}.btn{background:var(--accent-color);color:rgba(var(--foreground-color),1);padding:.4em 1em}.back-arrow{stroke:rgba(var(--text-color),1);stroke-width:6;fill:none;height:2rem;padding:.5rem .5rem .5rem 0;cursor:pointer}.card{border-radius:.6rem;padding:1.5em;background:rgba(var(--foreground-color),1)}.solid-background{background:rgba(var(--foreground-color),1)!important}.activity,.activity .icon,details p,sm-popup .illustration{background:rgba(var(--text-color),.06)}#confirmation p,#prompt p{margin:1rem}#confirmation h4,#prompt h4{font-weight:500;margin-bottom:1.5rem}#confirmation .flex sm-button:first-of-type,#prompt .flex sm-button:first-of-type{margin-right:.6em;margin-left:auto}.refresh{margin-top:.6em;margin-bottom:1em}sm-popup .illustration{position:relative;height:4rem;width:4rem;padding:1rem;stroke:var(--accent-color);margin-bottom:1rem;border-radius:5rem}#main_loader,#navbar{position:fixed;left:0}sm-popup sm-input:not(:last-of-type){margin-bottom:1rem}sm-popup p{margin-block-end:1rem}sm-popup .action h4{padding:.5rem 1rem;font-weight:500}sm-popup h5:not(.tag){margin-bottom:.4rem;margin-top:1rem}.popup-header{padding:1.5rem;padding-bottom:0;display:flex;align-items:center;width:100%}.popup-header .icon{margin-right:1rem;padding:.2rem;stroke-width:10;cursor:pointer}.popup-header button{width:auto;margin-left:auto}details,summary{margin-bottom:1rem}details p{border-radius:.2rem;padding:.5rem 1rem;margin-bottom:0}#sign_in_popup h3{margin-top:2rem}#sign_in_popup h4{font-weight:500;margin-bottom:3rem}#sign_in_popup button{margin:1rem 0}#sign_in_popup p{margin-top:1rem;margin-bottom:0!important}.primary-btn{background:var(--accent-color);justify-content:center;color:rgba(var(--foreground-color),1)}#main_header{align-items:center;padding:1rem;justify-content:space-between}.display-balance{gap:1rem;grid-auto-flow:row}.display-balance .balance{width:100%}.display-balance .icon{height:1.4rem;width:1.4rem;padding:.3rem;stroke-width:10;cursor:pointer}.icon,.select .radio{width:1.2rem;fill:none}.icon{height:1.2rem;stroke:rgba(var(--text-color),.8);stroke-width:6;overflow:visible;stroke-linecap:round;stroke-linejoin:round}#navbar{display:flex;flex-direction:row;align-items:center;justify-content:space-evenly;right:0;bottom:0;top:auto;border-top:solid 1px rgba(var(--text-color),.2);border-right:none;z-index:3;background:rgba(var(--foreground-color),1)}#navbar .navbar-item{position:relative;text-align:center;cursor:pointer;padding:.3em;margin:.3em;border-radius:.4em;color:rgba(var(--text-color),.8);font-size:.8em;text-transform:capitalize;width:100%;font-weight:600}#navbar .navbar-item h5{margin-top:.4em}#navbar .active{color:var(--accent-color)}.user-panel,.user-panel .grid P{color:rgba(var(--foreground-color),1)}#navbar .active .icon{stroke:var(--accent-color)}.banking{stroke-width:4}#home_page{padding:1rem 0 4rem}#home_page .left{padding:1.5rem 0;width:auto;border-radius:.6rem}#home_page .left h3,#home_page .left h4,#home_page .left p{padding:0 1.5rem}#home_page .left h3{font-size:2rem;margin-bottom:1rem}#home_page .user-panel{margin:0 1.5rem}.user-panel{position:relative;padding:1.5rem;border-radius:.6rem;background:linear-gradient(135deg,var(--accent-color),#2F2B76);box-shadow:0 .1rem .1rem #00010,0 1rem 1rem -1rem #00010;align-self:flex-start}.user-panel .icon{stroke:rgba(var(--foreground-color),1)}.user-panel .copy-row{margin-bottom:1rem;padding-bottom:1rem;border-bottom:solid 1px rgba(var(--foreground-color),.3)}.user-panel sm-button{--text-color:rgba(var(--foreground-color), 1);background:rgba(var(--foreground-color),.2);border-radius:2rem}.user-panel .grid{gap:1.5rem;grid-template-columns:1fr 1fr;margin-top:1rem}.user-panel .grid h5{font-weight:500}.user-panel .grid h4{font-size:1.2rem}.user-panel .grid P{font-size:.8rem;opacity:.9;margin-bottom:0!important;max-width:30ch}.complaint .processed,.deposited{color:#007732}.balance{display:grid;gap:0 1rem}.user-type{font-weight:500}.options-tab{margin:1rem 0}.options-tab>.grid{min-width:100vw;padding:0 1.5rem;grid-auto-flow:column;gap:.2rem}.options-tab .option{position:relative;display:flex;align-items:center;text-align:center;border-radius:.4rem;margin-bottom:1rem;width:5rem;min-width:5rem}.options-tab .option .icon{height:3rem;width:3rem;padding:.8rem;stroke:var(--accent-color)}.options-tab .option h4{font-size:.9rem;font-weight:500}.options-tab .option:active{transform:scale(.95)}.request-icon{transform:rotate(180deg)}.notification-dot::after{content:"";position:absolute;z-index:1;top:0;right:0;height:.6em;width:.6em;background-color:#E53935;border-radius:.4em;transition:transform .3s}.shrink.notification-dot::after{transform:scale(0)}#deposit .container-header,#withdraw .container-header{background:linear-gradient(rgba(var(--foreground-color),1) 90%,transparent)}.page .container-header,sm-tab-header{background:rgba(var(--foreground-color),1);z-index:2;top:0}sm-tab-header{position:sticky;margin-bottom:1rem;border-bottom:solid 1px rgba(var(--text-color),.2)}sm-tab::part(tab){padding:.8rem .4rem;text-transform:capitalize}sm-panel{width:100%}.request{display:inline-flex;flex-direction:column;padding:1.5em;border-radius:.4em;border:1px solid}.request h5{margin-bottom:.2rem;text-transform:capitalize}.request h3,.request h4{margin-bottom:1.5rem}.copy-row h4,.request button{margin-bottom:0}.request h4:last-of-type{margin-bottom:0}.request .action{align-self:flex-end}.request .amount{font-size:1.4em}.request button{width:auto;align-self:flex-end;margin-top:1.5rem}.request .copy-row{margin-bottom:1.5rem}.request .flex{align-items:center;justify-content:flex-end;margin-top:1.5rem}.request .flex button,.request .flex h5{margin:0}.deposited::before{content:"+ "}.decline-request{margin-right:.5rem!important}.withdrawn{color:#d43125}.withdrawn::before{content:"- "}.container{display:grid;gap:1em;width:100%;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr))}.copy-row,.page .container-header{display:grid;grid-template-columns:1fr auto}.page{padding:1rem 1.5rem;padding-bottom:5rem}.page .container-header{grid-template-areas:". ." "search search";gap:1rem;will-change:auto}.page .container-header .search{grid-area:search}.page .container-header .search input{padding:1em;border:none;width:100%;background:var(--dark-shade);font-size:1rem;font-weight:500;color:rgba(var(--text-color),1);border-radius:.2em}.page .container-header .search input:focus{outline:0;background:rgba(var(--text-color-light),.2)}.copy-row{align-items:center;gap:.5rem;width:auto}.copy-row .icon{cursor:pointer;padding:.4rem;height:1.8rem;width:1.8rem}.copy-row .copy{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time{margin-bottom:1.5rem!important;font-weight:500}#report_popup{width:32rem}#profile_page{display:flex;flex-direction:column}#profile_page button{align-self:flex-start}.complaint{display:grid;gap:1.5rem 0}.complaint .complaint-actions{align-items:center;margin:1.5rem 0 0}#helpline_page sm-select,.complaint .processed,.complaint .unprocessed{margin-bottom:1.5rem}.complaint .unprocessed{color:#d43125}.complaint button .icon{padding:.2rem;margin-right:.5rem;stroke:var(--accent-color);stroke-width:8}.complaints-container{padding-top:1.5rem;display:grid;align-items:flex-start;gap:1.5rem}.complaint-placeholder{animation:pulse infinite .6s alternate}.complaint-placeholder h4,.complaint-placeholder h5{border-radius:.2rem}.complaint-placeholder h5{background:rgba(var(--text-color),.1);padding:.5rem .6rem}.complaint-placeholder h4{background:rgba(var(--text-color),.2);padding:.8rem}.complaint-placeholder .demo-btn{padding:.8rem 3rem}@keyframes pulse{from{opacity:.4}to{opacity:1}}#main_loader{text-align:center;place-content:center;height:100vh;width:100vw}#main_loader sm-button{margin-left:0;margin-top:1rem}#main_loader svg{height:2rem;width:2rem;stroke:var(--accent-color);stroke-width:6;fill:none;overflow:visible;stroke-linecap:round;stroke-dashoffset:210;stroke-dasharray:210;justify-self:center;align-self:center;margin-bottom:2rem}#main_loader h3{width:100%;font-weight:400;word-spacing:.16em}#upi_txId_section .copy-row{margin-bottom:1.5rem}#send_amount_to_deposit{margin-bottom:0!important}@keyframes popup{0%{stroke-dashoffset:50;transform:translateY(4rem) scale(.2,.6)}40%,41%{transform:translateY(0) scale(.2)}50%{stroke-dashoffset:50;transform:translateY(0) scale(1)}100%{stroke-dashoffset:0}}#transaction_result{z-index:12}#transaction_result::part(popup){background-image:url(card-back.svg);background-size:cover;background-position-y:-3rem;background-repeat:no-repeat}#transaction_result .copy-row{grid-template-areas:"label label" ". .";margin-top:1rem;gap:0 1rem}#transaction_result .copy-row h4{font-weight:500}#transaction_result h5{grid-area:label;color:rgba(var(--text-color),.7)}#transaction_result h4,#transaction_result h5,#transaction_result p{text-align:center}#transaction_result>h4{font-size:1.2rem;margin-top:6rem;margin-bottom:.5rem}#failure_svg,#success_svg{height:5rem;width:5rem;stroke-width:4;align-self:center;stroke:none;stroke-dasharray:50;fill:rgba(var(--foreground-color),1);animation:popup 2s forwards cubic-bezier(.175,.885,.32,1.275)}#success_svg polyline{fill:none;stroke:#00C853}#failure_svg line{stroke:#EF5350}.rupee-symbol{height:1rem;width:1rem;fill:rgba(var(--text-color),.5)}#deposit_rupee .copy-row{margin-bottom:1rem}.activity-container{display:grid;gap:1rem}.activity{display:grid;border-radius:.6rem;padding:1rem 1.2rem;gap:0 1rem;grid-template-columns:auto 1fr auto;grid-template-areas:"icon type amount" "icon receiver time";max-width:70ch}.activity .icon{grid-area:icon;height:3rem;width:3rem;padding:.8rem;border-radius:2rem}.activity .activity-type{grid-area:type;text-transform:capitalize;font-weight:400;font-size:.9rem}.activity .activity-receiver{grid-area:receiver;font-weight:500}.activity .activity-amount{text-align:right;grid-area:amount}.activity .activity-time{text-align:right;grid-area:time;color:rgba(var(--text-color),.7);font-weight:500}.select{max-width:50ch;position:relative;display:flex;width:100%;padding:.8rem 1rem;border-radius:.3rem;background:rgba(var(--text-color),.1);align-items:center;cursor:pointer}.select:first-of-type:not(:last-of-type){border-radius:.3rem .3rem 0 0}.select+.select{margin-top:0;border-radius:0 0 .3rem .3rem;border-top:solid 1px rgba(var(--text-color),.16)}.select input[type=radio]{display:none}.select input:checked~.radio .outer-ring{stroke:var(--accent-color)}.select input:checked~.radio .inner-disc{transform:none}.select .radio{height:1.2rem;overflow:visible;margin-right:.6rem}.select .radio .outer-ring{stroke-width:8;stroke:rgba(var(--text-color),.5)}.select .radio .inner-disc{transform-origin:center;fill:var(--accent-color);transform:scale(0);transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.select .tag{opacity:.6;font-weight:500;margin-left:auto}.select h4{font-weight:400}.select .outer{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none}.add-upi{margin-top:.4rem;justify-self:flex-start;width:max-content}@media only screen and (max-width:640px){#deposit,#home_page{display:grid;gap:1.5rem;grid-template-areas:"." "left";grid-template-columns:minmax(0,1fr)}#deposit .left,#home_page .left{grid-area:left;background:rgba(var(--text-color),.06)}sm-select{width:100%}}@media only screen and (min-width:640px){body{padding:0 2rem;margin-left:6rem}sm-popup{background:rgba(var(--foreground-color),1)}#confirmation,sm-popup::part(popup){width:24rem}#navbar{justify-content:center;flex-direction:column;align-items:stretch;left:0;bottom:0;top:0;right:auto;width:6rem;border-top:none;border-right:solid 1px rgba(var(--text-color),.2)}#navbar .navbar-item{border-radius:.5rem;width:auto;padding:.5rem 0;margin:.5rem .6rem}#navbar .navbar-item .icon{height:1.4rem;width:1.4rem}#navbar .navbar-item:hover{background:rgba(var(--foreground-color),.2)}#navbar .navbar-item.active{background:rgba(var(--foreground-color),1);color:var(--accent-color)}#navbar .navbar-item.active .icon{stroke:var(--accent-color)}.page{padding-bottom:2rem}#sign_in_popup{width:24rem}.options-tab>.grid{gap:1rem;min-width:auto}.options-tab .grid:first-of-type{padding-right:0}.options-tab .grid:last-of-type{padding-left:0}#settings_page .copy-row{display:inline-grid}}@media only screen and (min-width:800px){.complaint{gap:0 1.5rem;grid-template-columns:1fr 1fr;grid-template-areas:". . " "header header"}.complaint .complaint-actions{grid-area:header}.complaint .left{border-right:1px solid rgba(var(--text-color),.2);padding-right:1.5rem}.complaint .right{display:flex;justify-content:center;flex-direction:column}.user-panel{position:sticky;top:1.5rem}#deposit,#home_page{display:grid;gap:1.5rem;grid-template-columns:minmax(0,1fr) 24rem}}@media only screen and (min-width:1920px){body{font-size:24px}}@media only screen and (min-width:2048px){body{font-size:24px}}@media only screen and (max-width:320px){body{font-size:14px}}@media (prefers-color-scheme:dark){:root{--text-color:238,238,238;--text-color-light:170,170,170;--foreground-color:26,26,26;--background-color:#111;--dark-shade:#1a1a1a}}@media (prefers-color-scheme:light){:root{--text-color:17,17,17;--text-color-light:85,85,85;--foreground-color:255,255,255;--background-color:#e8e8e8;--dark-shade:#dadada}}@media (prefers-color-scheme:no-preference){:root{--text-color:17,17,17;--text-color-light:85,85,85;--foreground-color:255,255,255;--background-color:#e8e8e8;--dark-shade:#dadada}}@media (any-hover:hover){.option:hover{background:rgba(var(--text-color),.1)}} \ No newline at end of file diff --git a/css/main.scss b/css/main.scss index 2be36f2..5ee3879 100644 --- a/css/main.scss +++ b/css/main.scss @@ -448,11 +448,15 @@ sm-popup{ margin-block-end: 1rem; } .action{ - margin-top: 1.5rem; h4{ - padding: 0.8rem 1.6rem; + padding: 0.5rem 1rem; + font-weight: 500; } } + h5:not(.tag){ + margin-bottom: 0.4rem; + margin-top: 1rem; + } } .popup-header{ @@ -1115,7 +1119,7 @@ sm-panel{ padding: 1rem 1.2rem; gap: 0 1rem; grid-template-columns: auto 1fr auto; - grid-template-areas: 'icon type amount' 'icon time time'; + grid-template-areas: 'icon type amount' 'icon receiver time'; max-width: 70ch; .icon{ grid-area: icon; @@ -1128,6 +1132,11 @@ sm-panel{ .activity-type{ grid-area: type; text-transform: capitalize; + font-weight: 400; + font-size: 0.9rem; + } + .activity-receiver{ + grid-area: receiver; font-weight: 500; } .activity-amount{ @@ -1149,7 +1158,6 @@ sm-panel{ padding: 0.8rem 1rem; border-radius: 0.3rem; background: rgba(var(--text-color), 0.1); - margin-top: 1rem; align-items: center; cursor: pointer; &:first-of-type:not(:last-of-type){ diff --git a/index.html b/index.html index 35228d0..704bced 100644 --- a/index.html +++ b/index.html @@ -61,6 +61,14 @@

Send Rupee

+ - deposit @@ -125,14 +133,6 @@ -

- Deposit -

- - - -
withdraw @@ -163,16 +171,10 @@ + +
Withdraw To
+ Add UPI address -
- @@ -237,17 +247,10 @@ +
Send from
Add an UPI address for completing the transaction.
+ Add UPI address -
- @@ -313,10 +316,10 @@

Report

+ -
@@ -747,11 +750,11 @@

You haven't deposited rupee yet.

-
+

You haven't withdrawn rupee yet.

-
+

You haven't paid through cashier yet.

@@ -844,8 +847,9 @@ floDapps.launchStartUp().then(async result => { console.log(`Welcome ${myFloID}`) refresh_balance() - renderUserUPI() userFloIdContainers.forEach(container => container.textContent = myFloID) + defaultUPI = localStorage.getItem(`defaultUPI${myFloID}`) + renderUserUPI() hideLoader() await token_app.actions.doShreeGanesh(); }).catch(error => console.error(error)) @@ -855,7 +859,8 @@ let frag = document.createDocumentFragment(), currentTimeout, notificationSound = document.getElementById('notification_sound'); - const render = { + let defaultUPI + const render = { depositRequest(txid, floId) { let card = document.createElement('div'); card.classList.add('request') @@ -911,11 +916,14 @@ `; return card; }, - activityCard(type, amount, timesStamp){ + activityCard(obj){ + console.log(obj) + let {type, amount, timeStamp, receiver} = obj; let card = document.createElement('div'), composition = ``, icon, - sign + sign, + transaction card.classList.add('activity') switch(type){ case 'sent': @@ -926,6 +934,7 @@ ` sign = '-' + transaction = 'Sent to' break; case 'deposit': icon = ` @@ -941,6 +950,7 @@ ` sign = '+' + transaction = 'Deposited' break; case 'withdraw': icon = ` @@ -957,111 +967,33 @@ ` sign = '-' + transaction = 'withdrawn to' + break; + case 'payCashier': + icon = ` + + + + + ` + sign = '-' + transaction = 'Paid to' break; } - composition = ` + composition += ` ${icon} -

${type}

+

${transaction}

` + if(receiver) + composition += ` +

${receiver}

+ ` + composition += `

${sign} ₹${amount}

-
${formatedTime(timesStamp)}
+
${formatedTime(timeStamp)}
` card.innerHTML = composition; return card; }, - depositActivity(vectorClock, txid, amount) { - let card = document.createElement('div'), - time = parseInt(vectorClock.split('_')[0]) - card.classList.add('request') - setAttributes(card, { - 'data-vector-clock': vectorClock, - 'data-type': 'deposit' - }) - card.innerHTML = `
${formatedTime(time)}
-
UPI Address
-
-

${txid}

- - Copy - - - -
-
Amount
-

₹${amount}

-
- -
`; - return card; - }, - withdrawActivity(vectorClock, txid, upi, amount) { - let card = document.createElement('div'), - time = parseInt(vectorClock.split('_')[0]) - card.classList.add('request') - let timeFrag = time.toString().split(' '); - setAttributes(card, { - 'data-vector-clock': vectorClock, - 'data-type': 'withdraw' - }) - card.innerHTML = `
${formatedTime(time)}
-
Transanction ID
-
-

${txid}

- - Copy - - - -
-
Withdrawn to
-

${upi}

-
Amount
-

₹${amount}

-
- -
`; - return card; - }, - payCashierActivity(vectorClock, receiver, upiTxid, amount) { - let card = document.createElement('div'), - time = parseInt(vectorClock.split('_')[0]) - card.classList.add('request') - let timeFrag = time.toString().split(' '); - setAttributes(card, { - 'data-vector-clock': vectorClock, - 'data-type': 'pay_thru_cashier' - }) - card.innerHTML = `
${formatedTime(time)}
-
UPI Address
-
-

${upiTxid}

- - Copy - - - -
-
Sent to
-
-

${receiver}

- - Copy - - - -
-
Amount
-

₹${amount}

-
- -
`; - return card; - }, paymentRequest(time, senderAddress, amount, id, enableActions) { let card = document.createElement('div') card.classList.add('request'), @@ -1550,6 +1482,8 @@ const currentYear = new Date().getFullYear() function formatedTime(time) { try { + if(time.indexOf('_')) + time = time.split('_')[0] let timeFrag = new Date(parseInt(time)).toString().split(' '), day = timeFrag[0], month = timeFrag[1], @@ -1797,7 +1731,7 @@ } const addUpiInput = document.getElementById('add_upi_input') - let defaultUPI = localStorage.getItem('defaultUPI') + async function addUserUPI() { userUPI = addUpiInput.value @@ -1816,7 +1750,7 @@ } function setDefaultUPI(upiAddress){ - localStorage.setItem('defaultUPI', upiAddress) + localStorage.setItem(`defaultUPI${myFloID}`, upiAddress) defaultUPI = upiAddress } const UPIContainers = document.querySelectorAll('.upi-container') @@ -1842,7 +1776,7 @@
Default
` radios += '' } - container.innerHTML = `
Select UPI address
` + radios + container.innerHTML = radios }) } @@ -11433,184 +11367,206 @@ return false; }, - doShreeGanesh: async function () { + doShreeGanesh: async function () { - // fetch configs from master comment - await this.fetch_configs(); + // fetch configs from master comment + await this.fetch_configs(); - const allCashierOptions = document.querySelectorAll('.cashier-option'), - allUserOptions = document.querySelectorAll('.user-option'), - allHelplineOptions = document.querySelectorAll('.helpline-option'), - userType = document.querySelectorAll('.user-type') + const allCashierOptions = document.querySelectorAll('.cashier-option'), + allUserOptions = document.querySelectorAll('.user-option'), + allHelplineOptions = document.querySelectorAll('.helpline-option'), + userType = document.querySelectorAll('.user-type') - //Cashier startup sequence - if (Object.keys(token_app.master_configurations.cashiers).includes(myFloID)) { - allCashierOptions.forEach(option => { - option.classList.remove('hide-completely') - }) - allUserOptions.forEach(option => { - option.classList.add('hide-completely') - }) - allHelplineOptions.forEach(option => { - option.classList.add('hide-completely') - }) - show_deposit_request() - show_withdraw_request() - showPayRequests() - userType.forEach(user => user.textContent = 'Cashier') - showPage(document.getElementById('deposit_page_btn'), 'deposit') - } + //Cashier startup sequence + if (Object.keys(token_app.master_configurations.cashiers).includes(myFloID)) { + allCashierOptions.forEach(option => { + option.classList.remove('hide-completely') + }) + allUserOptions.forEach(option => { + option.classList.add('hide-completely') + }) + allHelplineOptions.forEach(option => { + option.classList.add('hide-completely') + }) + show_deposit_request() + show_withdraw_request() + showPayRequests() + userType.forEach(user => user.textContent = 'Cashier') + showPage(document.getElementById('deposit_page_btn'), 'deposit') + } - //Helpline startup sequence - else if (token_app.master_configurations.helplineFloId === myFloID) { - allCashierOptions.forEach(option => { - option.classList.add('hide-completely') - }) - allHelplineOptions.forEach(option => { - option.classList.remove('hide-completely') - }) - allUserOptions.forEach(option => { - option.classList.add('hide-completely') - }) - let cashierList = ``, - cashierSelect = document.getElementById('select_cashier') - cashierList += `Select Cashier...`; - for (cashier in token_app.master_configurations.cashiers) - cashierList += `${cashier}` - cashierSelect.innerHTML = cashierList; - await Promise.all([load_deposit_complaints(cashierSelect.value), load_withdraw_complaints( - cashierSelect.value), load_pay_thru_cashier_complaints(cashierSelect.value)]) - userType.forEach(user => user.textContent = 'Cashier') - showPage(document.getElementById('helpline_page_btn'), 'helpline_page') - } + //Helpline startup sequence + else if (token_app.master_configurations.helplineFloId === myFloID) { + allCashierOptions.forEach(option => { + option.classList.add('hide-completely') + }) + allHelplineOptions.forEach(option => { + option.classList.remove('hide-completely') + }) + allUserOptions.forEach(option => { + option.classList.add('hide-completely') + }) + let cashierList = ``, + cashierSelect = document.getElementById('select_cashier') + cashierList += `Select Cashier...`; + for (cashier in token_app.master_configurations.cashiers) + cashierList += `${cashier}` + cashierSelect.innerHTML = cashierList; + await Promise.all([load_deposit_complaints(cashierSelect.value), load_withdraw_complaints( + cashierSelect.value), load_pay_thru_cashier_complaints(cashierSelect.value)]) + userType.forEach(user => user.textContent = 'Cashier') + showPage(document.getElementById('helpline_page_btn'), 'helpline_page') + } - //user startup sequence - else { - allCashierOptions.forEach(option => { - option.classList.add('hide-completely') - }) - allHelplineOptions.forEach(option => { - option.classList.add('hide-completely') - }) - allUserOptions.forEach(option => { - option.classList.remove('hide-completely') - }) - userType.forEach(user => user.textContent = 'User') - show_user_activities() - show_payment_requests() - showPage(document.getElementById('home_page_btn'), 'home_page') - } - - + //user startup sequence + else { + allCashierOptions.forEach(option => { + option.classList.add('hide-completely') + }) + allHelplineOptions.forEach(option => { + option.classList.add('hide-completely') + }) + allUserOptions.forEach(option => { + option.classList.remove('hide-completely') + }) + userType.forEach(user => user.textContent = 'User') + show_all_user_activities() + show_payment_requests() + showPage(document.getElementById('home_page_btn'), 'home_page') + withdraw_token_to_get_cash(); - + transferTokensManually(); pay_through_cashier(); + } + this.retrieveLatestContent(); + }, - await this.retrieveLatestContent(); - }, + retrieveLatestContent: async function (request_args='', receiverID = floGlobals.adminID, senderIDs = floGlobals + .subAdmins) { - retrieveLatestContent: async function (receiverID = floGlobals.adminID, senderIDs = floGlobals - .subAdmins) { + floCloudAPI.requestObjectData(floGlobals.application, { + receiverID, + senderIDs + }); - floCloudAPI.requestObjectData(floGlobals.application, { - receiverID, - senderIDs - }); + if (Object.keys(token_app.master_configurations.cashiers).includes(myFloID)) { - if (Object.keys(token_app.master_configurations.cashiers).includes(myFloID)) { + if(typeof request_args=='object' && typeof request_args.datatype=='string') { + return floCloudAPI.requestGeneralData(request_args.datatype, + request_args.options); + } - await Promise.all([ + await Promise.all([ + + create_root_structure(), + + floCloudAPI.requestGeneralData(token_app.master_configurations.TYPE_DEPOSITS, { + receiverID: myFloID + }), - create_root_structure(), + floCloudAPI.requestGeneralData(token_app.master_configurations.TYPE_WITHDRAWS, { + receiverID: myFloID + }), - floCloudAPI.requestGeneralData(token_app.master_configurations - .TYPE_DEPOSITS, { - receiverID: myFloID - }), + floCloudAPI.requestGeneralData(token_app.master_configurations.TYPE_MSGES, { + receiverID: myFloID + }), - floCloudAPI.requestGeneralData(token_app.master_configurations.TYPE_WITHDRAWS, { - receiverID: myFloID - }), + floCloudAPI.requestGeneralData(token_app.master_configurations.TYPE_PAY_THROUGH_CASHIER, { + receiverID: myFloID + }) + ]) - floCloudAPI.requestGeneralData(token_app.master_configurations.TYPE_MSGES, { - receiverID: myFloID - }), + return true; + } else if (token_app.master_configurations.helplineFloId === myFloID) { + await clearCashierData(); - floCloudAPI.requestGeneralData(token_app.master_configurations - .TYPE_PAY_THROUGH_CASHIER, { - receiverID: myFloID + if(typeof request_args=='object' && typeof request_args.datatype=='string') { + return floCloudAPI.requestGeneralData(request_args.datatype); + } + + await Promise.all([ + + create_root_structure(), + + floCloudAPI.requestGeneralData(token_app.master_configurations + .TYPE_FILE_DEPOSITS_COMPLAINT), + floCloudAPI.requestGeneralData(token_app.master_configurations + .TYPE_FILE_PAY_THROUGH_CASHIER_COMPLAINT), + floCloudAPI.requestGeneralData(token_app.master_configurations + .TYPE_FILE_WITHDRAWS_COMPLAINT), + floCloudAPI.requestGeneralData(token_app.master_configurations + .TYPE_PROCESSED_DEPOSITS_COMPLAINT), + floCloudAPI.requestGeneralData(token_app.master_configurations + .TYPE_PROCESSED_PAY_THROUGH_CASHIER_COMPLAINT), + floCloudAPI.requestGeneralData(token_app.master_configurations + .TYPE_PROCESSED_WITHDRAWS_COMPLAINT) + ]) + + return true; + } else { + + let promises = []; + + if(typeof request_args=='object' && typeof request_args.datatype=='string' + && request_args.datatype===token_app.master_configurations.TYPE_MSGES) { + await floCloudAPI.requestGeneralData(token_app.master_configurations.TYPE_MSGES, + {receiverID: myFloID}); + return true; + } else if(typeof request_args!=='object' || typeof request_args.datatype!=='string') { + let p4 = { + func: floCloudAPI.requestGeneralData, + arg1: token_app.master_configurations.TYPE_MSGES, + arg2: {receiverID: myFloID} + } + + promises.push(p4); + } + + for (let cashier in token_app.master_configurations.cashiers) { + if(typeof request_args=='object' && typeof request_args.datatype=='string') { + + promises.push({ + func: floCloudAPI.requestGeneralData, + arg1: request_args.datatype, + arg2: {receiverID: cashier, senderIDs: [myFloID]} }) - ]) - - return true; - } else if (token_app.master_configurations.helplineFloId === myFloID) { - await clearCashierData(); - - await Promise.all([ - - create_root_structure(), - - floCloudAPI.requestGeneralData(token_app.master_configurations - .TYPE_FILE_DEPOSITS_COMPLAINT), - floCloudAPI.requestGeneralData(token_app.master_configurations - .TYPE_FILE_PAY_THROUGH_CASHIER_COMPLAINT), - floCloudAPI.requestGeneralData(token_app.master_configurations - .TYPE_FILE_WITHDRAWS_COMPLAINT), - floCloudAPI.requestGeneralData(token_app.master_configurations - .TYPE_PROCESSED_DEPOSITS_COMPLAINT), - floCloudAPI.requestGeneralData(token_app.master_configurations - .TYPE_PROCESSED_PAY_THROUGH_CASHIER_COMPLAINT), - floCloudAPI.requestGeneralData(token_app.master_configurations - .TYPE_PROCESSED_WITHDRAWS_COMPLAINT) - ]) - - return true; - } else { - - let promises = []; - - for (let cashier in token_app.master_configurations.cashiers) { + + } else { let p1 = { - func: floCloudAPI.requestGeneralData, + func: floCloudAPI.requestGeneralData, arg1: token_app.master_configurations.TYPE_DEPOSITS, - arg2: { receiverID: cashier, senderIDs: [myFloID] } + arg2: {receiverID: cashier, senderIDs: [myFloID]} } - let p2 = { + let p2 = { func: floCloudAPI.requestGeneralData, arg1: token_app.master_configurations.TYPE_WITHDRAWS, - arg2: { receiverID: cashier, senderIDs: [myFloID] } + arg2: {receiverID: cashier, senderIDs: [myFloID]} } let p3 = { func: floCloudAPI.requestGeneralData, arg1: token_app.master_configurations.TYPE_PAY_THROUGH_CASHIER, - arg2: { receiverID: cashier, senderIDs: [myFloID] } + arg2: {receiverID: cashier, senderIDs: [myFloID]} } promises.push(p1, p2, p3); } - - let p4 = { - func: floCloudAPI.requestGeneralData, - arg1: token_app.master_configurations.TYPE_MSGES, - arg2: { receiverID: myFloID } - } - - promises.push(p4); - - await Promise.all(promises.map(prom => prom.func.call(floCloudAPI, prom.arg1, prom.arg2))); - - create_root_structure(); - - return promises; - } + await Promise.all(promises.map(prom => prom.func.call(floCloudAPI,prom.arg1, prom.arg2))); + + create_root_structure(); + + return promises; + } + } + } @@ -12370,9 +12326,9 @@ payCashierActivityContainer = document.getElementById('pay_cashier_activity_container'), cashierMessageContainer = document.getElementById('cashier_message_container') - async function show_user_activities() { + async function show_all_user_activities() { try { - await token_app.actions.retrieveLatestContent(); + //await token_app.actions.retrieveLatestContent(); const deposit_msg = floDapps.getNextGeneralData(token_app.master_configurations.TYPE_DEPOSITS, "0") .reverse(); @@ -12389,7 +12345,7 @@ upi_txid, deposit_amount } = usr_deposits.message; - frag.append(render.activityCard('deposit', deposit_amount, usr_deposits.vectorClock, upi_txid)) + frag.append(render.activityCard({type: 'deposit', amount: deposit_amount, timeStamp: usr_deposits.vectorClock, upi_txid})) } depositActivityContainer.innerHTML = ``; @@ -12401,7 +12357,7 @@ withdrawer_upi, withdraw_amount } = usr_withdraws.message; - frag.append(render.activityCard('withdraw', withdraw_amount, usr_withdraws.vectorClock, token_txid, withdrawer_upi)) + frag.append(render.activityCard({type: 'withdraw', amount: withdraw_amount, timeStamp: usr_withdraws.vectorClock, token_txid, receiver: withdrawer_upi})) } withdrawActivityContainer.innerHTML = ``; withdrawActivityContainer.append(frag) @@ -12413,8 +12369,7 @@ upi_txid, amount } = cashier_message.message; - frag.append(render.payCashierActivity(cashier_message.vectorClock, receiver_flo_id, upi_txid, - amount)) + frag.append(render.activityCard({type: 'payCashier', amount, timeStamp: cashier_message.vectorClock, receiver: receiver_flo_id, upi_txid})) } payCashierActivityContainer.innerHTML = ``; @@ -12431,6 +12386,95 @@ } } + async function show_specific_user_activities(req_type='') { + try { + if(req_type.length<1) return; + + let request_args = {}; + request_args.datatype = req_type; + request_args.options = {receiverID: cashier, senderIDs: [myFloID]}; + + if(req_type==token_app.master_configurations.TYPE_MSGES) + request_args.options = {receiverID: myFloID}; + + console.log(request_args); + + await token_app.actions.retrieveLatestContent(request_args); + + switch (req_type) { + case token_app.master_configurations.TYPE_DEPOSITS: + const deposit_msg = floDapps.getNextGeneralData(token_app.master_configurations.TYPE_DEPOSITS, "0") + .reverse(); + + for (usr_deposits of deposit_msg) { + let { + upi_txid, + deposit_amount + } = usr_deposits.message; + frag.append(render.depositActivity(usr_deposits.vectorClock, upi_txid, deposit_amount)) + } + + depositActivityContainer.innerHTML = ``; + depositActivityContainer.append(frag) + break; + + case token_app.master_configurations.TYPE_WITHDRAWS: + const withdraw_msg = floDapps.getNextGeneralData(token_app.master_configurations.TYPE_WITHDRAWS, + "0").reverse(); + + for (usr_withdraws of withdraw_msg) { + let { + token_txid, + withdrawer_upi, + withdraw_amount + } = usr_withdraws.message; + frag.append(render.withdrawActivity(usr_withdraws.vectorClock, token_txid, withdrawer_upi, + withdraw_amount)) + } + withdrawActivityContainer.innerHTML = ``; + withdrawActivityContainer.append(frag) + break; + + case token_app.master_configurations.TYPE_MSGES: + const user_msg = floDapps.getNextGeneralData(token_app.master_configurations.TYPE_MSGES, "0") + .reverse(); + + for (cashier_message of pay_thru_cashier_msg) { + console.log(cashier_message) + let { + receiver_flo_id, + upi_txid, + amount + } = cashier_message.message; + frag.append(render.payCashierActivity(cashier_message.vectorClock, receiver_flo_id, upi_txid, + amount)) + } + + payCashierActivityContainer.innerHTML = ``; + payCashierActivityContainer.append(frag) + break; + + case token_app.master_configurations.TYPE_PAY_THROUGH_CASHIER: + const pay_thru_cashier_msg = floDapps.getNextGeneralData(token_app.master_configurations + .TYPE_PAY_THROUGH_CASHIER, "0").reverse(); + + for (msg of user_msg) { + frag.append(render.cashierMessage(msg)) + } + + cashierMessageContainer.innerHTML = ``; + cashierMessageContainer.append(frag) + + break; + default: + break; + } + + } catch (e) { + notify(e, 'error'); + } + } + async function file_complaint(order_type = '', order_vc = '', custom_msg = '') { try { let input_data = {