]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blame_incremental - cmd/web/js/main.jsx
JS clean.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / cmd / web / js / main.jsx
... / ...
CommitLineData
1import SignupForm from './signup.js';
2import SigninForm from './signin.js';
3import PasswordResetForm from './password_reset.js';
4import ChangePasswordForm from './change_password.js';
5import OtpEnrollForm from './otp.js';
6import PoloniexController from './poloniex.js';
7import UserAccount from './account.js';
8import AdminDashboard from './admin.js';
9import App from './app.js';
10import Api from './api.js';
11import cookies from './cookies.js';
12import React from 'react';
13import qs from 'qs';
14
15App.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
26App.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
37App.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
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>
62 <ChangePasswordForm token={token} onSuccess={App.go.bind(App, '/signin')}/>
63 </div>);
64});
65
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
87App.page('/signout', true, function(context) {
88 cookies.removeItem('jwt');
89 cookies.removeItem('isAdmin');
90
91 App.go('/');
92});
93
94App.page('/me', true, function(context) {
95 App.mount(<div>
96 <PoloniexController/>
97 </div>);
98});
99
100App.page('/account', true, function(context) {
101 App.mount(<div>
102 <UserAccount/>
103 </div>);
104});
105
106App.page('/admin', true, function(context) {
107 App.mount(<div>
108 <AdminDashboard/>
109 </div>);
110});
111
112App.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
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
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
137App.page('/otp/validate', true, function(context) {
138 App.mount(<div>
139 <OtpEnrollForm onSuccess={App.onUserValidateOtp} />
140 </div>);
141});
142
143App.page('/', false, function(context) {
144 App.go('/me');
145});
146
147$(document).ready(function() {
148 App.start();
149});