@@ -17,7 +17,7 @@ window.upload_bg = (files, box) ->
17
17
xhr .upload .onprogress = (e ) ->
18
18
if e .lengthComputable
19
19
progress .style .width = (e .loaded / e .total ) * 100 + ' %'
20
- xhr .onload = (e ) ->
20
+ xhr .onload = () ->
21
21
if xhr .status != 200
22
22
p .textContent = ' Please upload JPG or PNG only.'
23
23
setTimeout (() ->
@@ -98,6 +98,60 @@ resetPasswordModalDialog = () ->
98
98
99
99
$ (' #change-password' ).on (' hidden.bs.modal' , resetPasswordModalDialog)
100
100
101
+ # Handling of the delete-account dialog
102
+ $ (' #delete-account-form' ).submit ((e ) ->
103
+ e .preventDefault ()
104
+
105
+ # Disable the buttons until we get an response
106
+ buttons = document .getElementsByClassName (' btn-account-del' )
107
+ for button in buttons
108
+ button .setAttribute (' disabled' , ' ' )
109
+
110
+ form_username = $ (' #username' ).val ()
111
+
112
+ xhr = new XMLHttpRequest ()
113
+ xhr .open (' POST' , " /api/user/#{ window .username } /delete" )
114
+ # Triggered after we get an response from the server.
115
+ # It's in the form {'error': bool, 'reason': string)
116
+ xhr .onload = () ->
117
+ result = JSON .parse (this .responseText )
118
+ error_message_display = $ (' #delete-account-error-message' )
119
+
120
+ if result .error == true
121
+ error_message_display .html (result .reason )
122
+ error_message_display .addClass (' text-danger' )
123
+ error_message_display .removeClass (' hidden' )
124
+ # Re-enable the buttons.
125
+ for button in buttons
126
+ button .removeAttribute (' disabled' )
127
+ else
128
+ error_message_display .html (' Account deleted successfully.' )
129
+ error_message_display .removeClass (' text-danger' )
130
+ error_message_display .addClass (' text-success' )
131
+ error_message_display .removeClass (' hidden' )
132
+ # .modal('hide') doesn't work. Let's reload the page instead.
133
+ # Delay it a bit to give the user a chance to read the response message.
134
+ setTimeout ((() -> window .location = ' /' ), 1000 )
135
+
136
+ form = new FormData ()
137
+ form .append (' username' , form_username)
138
+ xhr .send (form)
139
+ )
140
+
141
+ deleteAccountModalDialog = () ->
142
+ $ (' #delete-account-form' ).trigger (' reset' )
143
+ error_message_display = $ (' #delete-account-error-message' )
144
+ error_message_display .html (' ' )
145
+ error_message_display .removeClass (' text-danger' )
146
+ error_message_display .removeClass (' text-success' )
147
+ error_message_display .addClass (' hidden' )
148
+
149
+ buttons = document .getElementsByClassName (' btn-account-del' )
150
+ for button in buttons
151
+ button .removeAttribute (' disabled' )
152
+
153
+ $ (' #delete-account' ).on (' hidden.bs.modal' , deleteAccountModalDialog)
154
+
101
155
$ (' #check-all-updates' ).on (' click' , () -> $ (' [id^=updates-]' ).prop (' checked' , true ))
102
156
$ (' #uncheck-all-updates' ).on (' click' , () -> $ (' [id^=updates-]' ).prop (' checked' , false ))
103
157
$ (' #check-all-autoupdates' ).on (' click' , () -> $ (' [id^=autoupdates-]' ).prop (' checked' , true ))
@@ -117,4 +171,4 @@ $('#save-changes').on 'click', () ->
117
171
$ (' #overall-error' ).hide ()
118
172
else
119
173
$ (' #overall-error' ).show ()
120
- return allValid
174
+ return allValid
0 commit comments