]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blame - cmd/web/js/main.jsx
JS clean.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / cmd / web / js / main.jsx
CommitLineData
989fb5c7 1import SignupForm from './signup.js';
2import SigninForm from './signin.js';
85545aba 3import PasswordResetForm from './password_reset.js';
4import ChangePasswordForm from './change_password.js';
989fb5c7 5import OtpEnrollForm from './otp.js';
6import PoloniexController from './poloniex.js';
d1c0ccfc 7import UserAccount from './account.js';
2e4885d9 8import AdminDashboard from './admin.js';
989fb5c7 9import App from './app.js';
10import Api from './api.js';
11import cookies from './cookies.js';
12import React from 'react';
85545aba 13import qs from 'qs';
7a9e5112 14
7a9e5112 15App.page('/signup', false, function(context) {
16 if (App.isUserSignedIn()) {
17 App.go('/me');
18 return;
19 }
20
989fb5c7 21 App.mount(<div>
7a9e5112 22 <SignupForm onSuccess={App.onUserSignUp}/>
989fb5c7 23 </div>);
7a9e5112 24});
25
26App.page('/signin', false, function(context) {
27 if (App.isUserSignedIn()) {
28 App.go('/me');
29 return;
30 }
31
989fb5c7 32 App.mount(<div>
7a9e5112 33 <SigninForm onSuccess={App.onUserSignIn}/>
989fb5c7 34 </div>);
7a9e5112 35});
36
85545aba 37App.page('/reset-password', false, function(context) {
38 if (App.isUserSignedIn()) {
39 App.go('/me');
40 return;
41 }
42
43 App.mount(<div>
85545aba 44 <PasswordResetForm />
45 </div>);
46});
47
48App.page('/change-password', false, function(context) {
49 if (App.isUserSignedIn()) {
50 App.go('/me');
51 return;
52 }
53
54 var token = qs.parse(context.querystring).token;
55
56 if (token === undefined) {
57 App.go('/');
58 return;
59 }
60
61 App.mount(<div>
85545aba 62 <ChangePasswordForm token={token} onSuccess={App.go.bind(App, '/signin')}/>
63 </div>);
64});
65
2da5b12c 66App.page('/confirm', false, function(context) {
67 var token = qs.parse(context.querystring).token;
68
69 if (token === undefined) {
70 App.go('/');
71 return;
72 }
73
74 Api.Call(
75 'CONFIRM_EMAIL',
76 {'token': token},
77 function(err, status, data) {
78 if (err) {
79 console.error(err, data);
80 }
81
82 App.go('/me');
83 }
84 );
85});
86
7a9e5112 87App.page('/signout', true, function(context) {
88 cookies.removeItem('jwt');
a6820180 89 cookies.removeItem('isAdmin');
7a9e5112 90
91 App.go('/');
92});
93
94App.page('/me', true, function(context) {
989fb5c7 95 App.mount(<div>
2f91f20a 96 <PoloniexController/>
989fb5c7 97 </div>);
7a9e5112 98});
99
16e43cc7 100App.page('/account', true, function(context) {
101 App.mount(<div>
d1c0ccfc 102 <UserAccount/>
16e43cc7 103 </div>);
104});
105
2e4885d9 106App.page('/admin', true, function(context) {
107 App.mount(<div>
108 <AdminDashboard/>
109 </div>);
110});
111
adf936f6 112App.page('/not_confirmed', true, function(context) {
113 App.mount(<div>
adf936f6 114 <div className="row">
115 <div className="box offset-3 col-6 text-center">
2da5b12c 116 <p>An email has now been sent to your email address.</p>
a7873be2 117 <p>{'Please click the \'Confirm your account\' button to validate your email.'}</p>
adf936f6 118 </div>
119 </div>
120 </div>);
121});
122
7a9e5112 123App.page('/otp/setup', true, function(context) {
124 Api.Call('OTP_ENROLL', {}, function(err, status, data) {
125 if (err) {
126 console.error(err, data);
127 return;
128 }
129
989fb5c7 130 App.mount(<div>
7a9e5112 131 <OtpEnrollForm onSuccess={App.onUserValidateOtp} img={'data:image/png;base64,' + data.base64img} secret={data.secret}/>
989fb5c7 132 </div>);
7a9e5112 133
989fb5c7 134 });
7a9e5112 135});
136
137App.page('/otp/validate', true, function(context) {
989fb5c7 138 App.mount(<div>
7a9e5112 139 <OtpEnrollForm onSuccess={App.onUserValidateOtp} />
989fb5c7 140 </div>);
7a9e5112 141});
142
143App.page('/', false, function(context) {
144 App.go('/me');
145});
146
147$(document).ready(function() {
148 App.start();
149});