rip out unused html
Seva Luchianov
1 year, 7 months ago
0 | require('../scss/style.scss'); | |
1 | require('../scss/confirm-email.scss'); | |
2 | require('./utils/logger'); | |
3 | const ui = require('./ui/common'); | |
4 | const $ = require('jquery'); | |
5 | const utils = require('./utils'); | |
6 | const api = require('./utils/api'); | |
7 | const query_string = require('query-string'); | |
8 | const qs = query_string.parse(location.search); | |
9 | ||
10 | $("#request_new_confirmation").on("click", function() { | |
11 | utils.validate.keys({ | |
12 | token: qs.token | |
13 | }, [ | |
14 | ["token", { | |
15 | message: "No confirmation token", | |
16 | color: "red", | |
17 | persistent: true | |
18 | }, utils.validate.uuid] | |
19 | ]).then(function(data) { | |
20 | return api.post("/registration/confirm-email/request", data, { | |
21 | add_captcha_token: {} | |
22 | }); | |
23 | }).then(function(data) { | |
24 | ui.show_banner(data); | |
25 | if (data.show_login) { | |
26 | $("#goto_login").on("click", function() { | |
27 | window.location = "/login"; | |
28 | }); | |
29 | $("#request_wrapper").hide(); | |
30 | $("#login_wrapper").show(); | |
31 | } | |
32 | }).catch(api.handle_error_message); | |
33 | }); | |
34 | ||
35 | utils.validate.keys({ | |
36 | token: qs.token | |
37 | }, [ | |
38 | ["token", { | |
39 | message: "No confirmation token", | |
40 | color: "red", | |
41 | persistent: true | |
42 | }, utils.validate.uuid] | |
43 | ]).then(function(data) { | |
44 | return api.post("/registration/confirm-email", data); | |
45 | }).then(function(data) { | |
46 | $("#success_message").text(data.message); | |
47 | $("#goto_login").on("click", function() { | |
48 | window.location = "/login?" + query_string.stringify({ | |
49 | email: data.email | |
50 | }); | |
51 | }); | |
52 | $("#loading").hide(); | |
53 | $("#login_wrapper").show(); | |
54 | }).catch(api.handle_error_message);⏎ |
0 | require('../scss/style.scss'); | |
1 | require('./utils/logger'); | |
2 | const ui = require('./ui/common'); | |
3 | const $ = require('jquery'); | |
4 | const utils = require('./utils'); | |
5 | const api = require('./utils/api'); | |
6 | const query_string = require('query-string'); | |
7 | ||
8 | let qs = query_string.parse(location.search); | |
9 | logger.log(qs); | |
10 | ||
11 | ui.init_new_password(); | |
12 | ||
13 | $("#update_password_button").on("click", function() { | |
14 | let new_password = $("#new_password").val() | |
15 | utils.validate.keys({ | |
16 | token: qs.token, | |
17 | new_password: new_password | |
18 | }, [ | |
19 | ["token", "Password reset token required", utils.validate.uuid], | |
20 | ["new_password", "Passwords don't match", password => password === $("#confirm_password").val()], | |
21 | ["new_password", "You must appease the password strength meter", password => utils.validate.password(password).score] | |
22 | ]).then(function(data) { | |
23 | return api.post("/account/password-reset", data, { | |
24 | add_captcha_token: {} | |
25 | }); | |
26 | }).then(function(data) { | |
27 | return api.post("/account/login", { | |
28 | captcha_bypass_token: data.captcha_bypass_token, | |
29 | email: data.email, | |
30 | password: new_password | |
31 | }); | |
32 | }).then(function() { | |
33 | window.location = "/"; | |
34 | }).catch(api.handle_error_message); | |
35 | });⏎ |
0 | require('../scss/style.scss'); | |
1 | require('./utils/logger'); | |
2 | const ui = require('./ui/common'); | |
3 | const $ = require('jquery'); | |
4 | const utils = require('./utils'); | |
5 | const api = require('./utils/api'); | |
6 | const query_string = require('query-string'); | |
7 | ||
8 | let qs = query_string.parse(location.search); | |
9 | logger.log(qs); | |
10 | ||
11 | ui.init_new_password(); | |
12 | ||
13 | $("#register_button").on("click", function() { | |
14 | utils.validate.keys({ | |
15 | token: qs.token, | |
16 | email: $("#email").val().trim(), | |
17 | display_name: $("#display_name").val().trim(), | |
18 | password: $("#new_password").val() | |
19 | }, [ | |
20 | ["token", "Registration token required", utils.validate.uuid], | |
21 | ["email", "Email required"], | |
22 | ["email", "Invalid email", utils.validate.email], | |
23 | ["display_name", "You must pick a username"], | |
24 | ["password", "Passwords don't match", password => password === $("#confirm_password").val()], | |
25 | ["password", "You must appease the password strength meter", password => utils.validate.password(password).score] | |
26 | ]).then(function(data) { | |
27 | return api.post("/registration", data, { | |
28 | add_captcha_token: {} | |
29 | }); | |
30 | }).then(function(data) { | |
31 | logger.log(data); | |
32 | ui.show_banner(data); | |
33 | }).catch(api.handle_error_message); | |
34 | });⏎ |
28 | 28 | height: target_height, |
29 | 29 | opacity: 0.85 |
30 | 30 | }, 250); |
31 | }, | |
32 | init_new_password: function() { | |
33 | $(".password-strength-message").text(default_password_message); | |
34 | $("#new_password").on("input", function(event) { | |
35 | let password = event.target.value; | |
36 | if (password) { | |
37 | const result = utils.validate.password(password.slice(0, Math.min(password.length, 100))); | |
38 | logger.log(result); | |
39 | $(".password-strength-meter").val(result.score); | |
40 | let message = `Crackable in ${result.crack_times_display.online_throttling_100_per_hour}`; | |
41 | if (!result.score) { | |
42 | message += `. ${result.feedback.warning || result.feedback.suggestions[0] || "Do better"}`; | |
43 | } | |
44 | $(".password-strength-message").text(message); | |
45 | } else { | |
46 | $(".password-strength-meter").val(0); | |
47 | $(".password-strength-message").text(default_password_message); | |
48 | } | |
49 | }); | |
50 | 31 | } |
51 | 32 | };⏎ |
0 | <div class="centered-form"> | |
1 | <img id="loading" style="width:100px; height:100px;" src="/images/loading.gif"> | |
2 | <div class="confirmation-wrapper" id="login_wrapper"> | |
3 | <div class="confirmation-message" id="success_message"></div> | |
4 | <button id="goto_login">Log In</button> | |
5 | </div> | |
6 | <div class="confirmation-wrapper" id="request_wrapper"> | |
7 | <div class="confirmation-message" id="error_message"></div> | |
8 | <button id="request_new_confirmation">Resend Confirmation Email</button> | |
9 | </div> | |
10 | </div> | |
11 | <script src="/js/confirm-email.js"></script>⏎ |
1 | 1 | <img class="mobile-menu-icon left" src="/images/hamburger-icon.svg"> |
2 | 2 | <img class="mobile-menu-icon right" src="/images/watchrooms-icon.svg"> |
3 | 3 | <div class="torso"> |
4 | {{> page/chart}} | |
5 | 4 | <div class="left-sidebar"> |
6 | <div class="sidebar-item selected" id="library">Library</div> | |
7 | <div class="sidebar-item" id="account">Account</div> | |
5 | <div class="sidebar-item selected" id="transactions">Transactions</div> | |
6 | <div class="sidebar-item" id="withdrawals">Withdrawals</div> | |
7 | <div class="sidebar-item" id="credit_cards">Credit Cards</div> | |
8 | <div class="sidebar-item" id="savings">Savings</div> | |
9 | <div class="sidebar-item" id="income">Income</div> | |
8 | 10 | <div class="sidebar-item" id="settings">Settings</div> |
9 | <div class="sidebar-item" id="registration">Register a Friend</div> | |
10 | 11 | <div class="sidebar-item" id="logout">Logout</div> |
11 | 12 | </div> |
12 | <div class="content" id="library_content"> | |
13 | <div class="file-upload-wrapper"> | |
14 | <div class="field-header file-upload-header"> | |
15 | Upload Videos<span class="server-storage-info">Server Storage Remaining: <span id="server-storage"></span></span> | |
16 | </div> | |
17 | <div class="file-upload-controls"> | |
18 | <label for="file-upload" class="custom-file-upload">Select Files</label> | |
19 | <input type="file" id="file-upload" name="video" multiple> | |
20 | <span class="file-upload-total"></span> | |
21 | <div class="queued-files queued-files-empty">No Files Selected</div> | |
22 | <button class="upload-button">Upload</button> | |
23 | </div> | |
24 | </div> | |
25 | <div class="field-header">My Videos</div> | |
26 | <div class="library"></div> | |
13 | {{> page/chart}} | |
14 | <div class="content" id="transactions_content"> | |
15 | ||
27 | 16 | </div> |
28 | <div class="content" style="display: none;" id="account_content"> | |
29 | <div class="field-header">Change Username</div> | |
30 | <div class="account-field-group"> | |
31 | <div class="field-wrapper"> | |
32 | <input type="text" id="display_name" /> | |
33 | </div> | |
34 | <button class="account-button" id="save_display_name">Save</button> | |
35 | </div> | |
36 | <div class="field-header">Change Password</div> | |
37 | <div class="account-field-group"> | |
38 | <div class="field-wrapper"> | |
39 | <label>Current Password:</label> | |
40 | <input type="password" id="current_password" /> | |
41 | </div> | |
42 | <div class="field-wrapper"> | |
43 | <label>New Password:</label> | |
44 | <input type="password" id="new_password" /> | |
45 | <progress class="password-strength-meter" max="4" value="0"></progress> | |
46 | <div class="password-strength-message"></div> | |
47 | </div> | |
48 | <div class="field-wrapper"> | |
49 | <label>Confirm Password:</label> | |
50 | <input type="password" id="confirm_password" /> | |
51 | </div> | |
52 | <button class="account-button" id="save_new_password">Save</button> | |
53 | </div> | |
54 | <div class="field-header">Delete Account</div> | |
55 | <div class="account-field-group"> | |
56 | <div class="field-wrapper"> | |
57 | I understand that deleting my account will result in: | |
58 | <div style="margin-left: 20px;"> | |
59 | <li>The removal of all my videos from the server</li> | |
60 | <li>The removal of all my user data from the server</li> | |
61 | <li>The inability to register for a new account without a referral link from an existing Watch Together user</li> | |
62 | </div> | |
63 | <button class="scary" id="request_account_deletion">Request Account Deletion Code</button> | |
64 | <div id="deletion_code_wrapper" style="display: none;"> | |
65 | <div class="align-with-buttons"> | |
66 | <label>Deletion Code:</label> | |
67 | <input type="text" id="deletion_code" /> | |
68 | <label>Current Password:</label> | |
69 | <input type="password" id="deletion_current_password" /> | |
70 | </div> | |
71 | <button class="scary" id="submit_account_deletion">Confirm Account Deletion</button> | |
72 | </div> | |
73 | </div> | |
74 | </div> | |
17 | <div class="content" id="withdrawals_content"> | |
18 | ||
19 | </div> | |
20 | <div class="content" id="credit_cards_content"> | |
21 | ||
22 | </div> | |
23 | <div class="content" id="savings_content"> | |
24 | ||
25 | </div> | |
26 | <div class="content" id="income_content"> | |
27 | ||
75 | 28 | </div> |
76 | 29 | <div class="content" style="display: none;" id="settings_content"> |
77 | 30 | <div class="field-header">Logs</div> |
92 | 45 | <button id="export_logs">Export Logs</button> |
93 | 46 | </div> |
94 | 47 | </div> |
95 | <div class="field-header">Ads</div> | |
96 | <div class="account-field-group"> | |
97 | <div class="field-wrapper"> | |
98 | If you want to support Watch Together you can opt in to unobtrusive ads. | |
99 | By opting in, you agree to Google's <a href="https://policies.google.com/technologies/ads">Advertising Policy</a><br> | |
100 | <button id="toggle_ads"></button> | |
101 | </div> | |
102 | </div> | |
103 | 48 | </div> |
104 | <div class="content" style="display: none;" id="registration_content"> | |
105 | <div style="text-align: center;"> | |
106 | <div class="field-header"> | |
107 | Click the button below to generate a registration link.<br> | |
108 | Links expire after one day and are only valid for a single use.<br> | |
109 | If you want to register multiple people,<br> | |
110 | you must generate a new link for each user. | |
111 | </div> | |
112 | <div> | |
113 | <span id="registration-link"></span> | |
114 | </div> | |
115 | <button id="generate_registration_link">Generate Link</button> | |
116 | <button id="registration-link-copy" style="display: none;">Copy</button> | |
117 | </div> | |
118 | 49 | </div> |
119 | 50 | </div> |
120 | 51 | <script src="/js/home.js"></script>⏎ |
0 | <div class="centered-form"> | |
1 | <div class="field-wrapper"> | |
2 | <label>New Password:</label> | |
3 | <input type="password" id="new_password" /> | |
4 | <progress class="password-strength-meter" max="4" value="0"></progress> | |
5 | <div class="password-strength-message"></div> | |
6 | </div> | |
7 | <div class="field-wrapper"> | |
8 | <label>Confirm Password:</label> | |
9 | <input type="password" id="confirm_password" /> | |
10 | </div> | |
11 | <button style="float: right; margin: 10px;" id="update_password_button">Update Password</button> | |
12 | </div> | |
13 | <script src="/js/password-reset.js"></script>⏎ |
0 | <div class="centered-form"> | |
1 | <div class="field-wrapper"> | |
2 | <label>Email:</label> | |
3 | <input type="email" id="email" /> | |
4 | </div> | |
5 | <div class="field-wrapper"> | |
6 | <label>Username:</label> | |
7 | <input type="text" id="display_name" /> | |
8 | </div> | |
9 | <div class="field-wrapper"> | |
10 | <label>Password:</label> | |
11 | <input type="password" id="new_password" /> | |
12 | <progress class="password-strength-meter" max="4" value="0"></progress> | |
13 | <div class="password-strength-message"></div> | |
14 | </div> | |
15 | <div class="field-wrapper"> | |
16 | <label>Confirm Password:</label> | |
17 | <input type="password" id="confirm_password" /> | |
18 | </div> | |
19 | <button style="float: right; margin: 10px;" id="register_button">Register</button> | |
20 | </div> | |
21 | <script src="/js/register.js"></script>⏎ |