]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blob - cmd/web/js/main.jsx
JS clean.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / cmd / web / js / main.jsx
1 import SignupForm from './signup.js';
2 import SigninForm from './signin.js';
3 import PasswordResetForm from './password_reset.js';
4 import ChangePasswordForm from './change_password.js';
5 import OtpEnrollForm from './otp.js';
6 import PoloniexController from './poloniex.js';
7 import UserAccount from './account.js';
8 import AdminDashboard from './admin.js';
9 import App from './app.js';
10 import Api from './api.js';
11 import cookies from './cookies.js';
12 import React from 'react';
13 import qs from 'qs';
14
15 App.page('/signup', false, function(context) {
16 if (App.isUserSignedIn()) {
17 App.go('/me');
18 return;
19 }
20
21 App.mount(<div>
22 <SignupForm onSuccess={App.onUserSignUp}/>
23 </div>);
24 });
25
26 App.page('/signin', false, function(context) {
27 if (App.isUserSignedIn()) {
28 App.go('/me');
29 return;
30 }
31
32 App.mount(<div>
33 <SigninForm onSuccess={App.onUserSignIn}/>
34 </div>);
35 });
36
37 App.page('/reset-password', false, function(context) {
38 if (App.isUserSignedIn()) {
39 App.go('/me');
40 return;
41 }
42
43 App.mount(<div>
44 <PasswordResetForm />
45 </div>);
46 });
47
48 App.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>
62 <ChangePasswordForm token={token} onSuccess={App.go.bind(App, '/signin')}/>
63 </div>);
64 });
65
66 App.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
87 App.page('/signout', true, function(context) {
88 cookies.removeItem('jwt');
89 cookies.removeItem('isAdmin');
90
91 App.go('/');
92 });
93
94 App.page('/me', true, function(context) {
95 App.mount(<div>
96 <PoloniexController/>
97 </div>);
98 });
99
100 App.page('/account', true, function(context) {
101 App.mount(<div>
102 <UserAccount/>
103 </div>);
104 });
105
106 App.page('/admin', true, function(context) {
107 App.mount(<div>
108 <AdminDashboard/>
109 </div>);
110 });
111
112 App.page('/not_confirmed', true, function(context) {
113 App.mount(<div>
114 <div className="row">
115 <div className="box offset-3 col-6 text-center">
116 <p>An email has now been sent to your email address.</p>
117 <p>{'Please click the \'Confirm your account\' button to validate your email.'}</p>
118 </div>
119 </div>
120 </div>);
121 });
122
123 App.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
130 App.mount(<div>
131 <OtpEnrollForm onSuccess={App.onUserValidateOtp} img={'data:image/png;base64,' + data.base64img} secret={data.secret}/>
132 </div>);
133
134 });
135 });
136
137 App.page('/otp/validate', true, function(context) {
138 App.mount(<div>
139 <OtpEnrollForm onSuccess={App.onUserValidateOtp} />
140 </div>);
141 });
142
143 App.page('/', false, function(context) {
144 App.go('/me');
145 });
146
147 $(document).ready(function() {
148 App.start();
149 });