summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/ui/ModalFormView.js
diff options
context:
space:
mode:
authorJulie Lala <jules@okfoc.us>2014-06-09 07:48:34 -0400
committerJulie Lala <jules@okfoc.us>2014-06-09 07:48:34 -0400
commite8ba718205d41e75923264ef945178030b662c93 (patch)
tree97bff0c0ec0a2bd2b6efb7d5ddbb1ff60c102529 /public/assets/javascripts/ui/ModalFormView.js
parentd385f80d0942494410432f11d3f3ca0f05d9e4a9 (diff)
populate edit profile form
Diffstat (limited to 'public/assets/javascripts/ui/ModalFormView.js')
-rw-r--r--public/assets/javascripts/ui/ModalFormView.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/public/assets/javascripts/ui/ModalFormView.js b/public/assets/javascripts/ui/ModalFormView.js
new file mode 100644
index 0000000..608b8c1
--- /dev/null
+++ b/public/assets/javascripts/ui/ModalFormView.js
@@ -0,0 +1,70 @@
+
+var ModalFormView = ModalView.extend({
+
+ events: {
+ "submit form": "submit"
+ },
+
+ initialize: function(){
+ this.$form = this.$("form")
+ this.$errors = this.$(".errors")
+ this.$errorList = this.$(".errorList")
+ },
+
+ reset: function(){
+ this.$("input").not("[type='submit']").not("[type='hidden']").val("")
+ },
+
+ load: function(){
+ this.reset()
+ this.show()
+ },
+
+ showErrors: function(errors){
+ if (errors && errors.length) {
+ this.$errors.show();
+ for (var i in errors) {
+ this.$errorList.append('<div>' + errors[i] + '</div>');
+ }
+ }
+ },
+
+ submit: function(e){
+ e.preventDefault()
+
+ this.$errors.hide();
+ this.$errorList.empty();
+
+ if (this.validate) {
+ var errors = this.validate()
+ if (errors && errors.length) {
+ this.showErrors(errors)
+ return
+ }
+ }
+
+ var fields = this.$form.serializeArray()
+ fields.forEach(function(pair){
+ if (pair.name == "password" && pair.value.length > 0) {
+ pair.value = SHA1.hex('lol$' + pair.value + '$vvalls')
+ }
+ })
+
+ var request = $.post(this.action, $.param(fields));
+ request.done($.proxy(function (response) {
+ if (response.error) {
+ this.$errors.show();
+ var errors = []
+ for (var key in response.error.errors) {
+ errors.push(response.error.errors[key].message);
+ }
+ this.showErrors(errors)
+ return
+ }
+ else {
+ this.success && this.success(response)
+ }
+ }, this));
+ }
+
+})