diff options
Diffstat (limited to 'public/assets/javascripts')
| -rw-r--r-- | public/assets/javascripts/ui/EditProfileModal.js | 51 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/MasterView.js | 3 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/ModalFormView.js | 70 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/ModalView.js | 1 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/NewProjectModal.js | 39 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/SignInModal.js | 49 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/SignUpModal.js | 60 |
7 files changed, 97 insertions, 176 deletions
diff --git a/public/assets/javascripts/ui/EditProfileModal.js b/public/assets/javascripts/ui/EditProfileModal.js index de8a8be..5b79a31 100644 --- a/public/assets/javascripts/ui/EditProfileModal.js +++ b/public/assets/javascripts/ui/EditProfileModal.js @@ -1,48 +1,23 @@ -var EditProfileModal = ModalView.extend({ +var EditProfileModal = ModalFormView.extend({ el: ".mediaDrawer.editProfile", - action: "/project/edit", + action: "/api/profile", - 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() + $.get("/api/profile", $.proxy(function(data){ + console.log(data) + + for (var i in data) { + this.$("[name='" + i + "']").val(data[i]) + } + + this.show() + }, this)) }, - submit: function(e){ - e.preventDefault() - - this.$errors.hide(); - this.$errorList.empty() - - var fields = this.$form.serializeArray() - - var request = $.post(this.action, $.param(fields)); - request.done($.proxy(function (response) { - if (response.error) { - this.$errors.show(); - for (var key in response.error.errors) { - this.$errorList.append('<div>' + response.error.errors[key].message + '</div>'); - } - return - } - else { - window.location.href = "/profile" - } - }, this)); + success: function(){ + window.location.href = "/profile" } }) diff --git a/public/assets/javascripts/ui/MasterView.js b/public/assets/javascripts/ui/MasterView.js index a39c6f0..5aca4e0 100644 --- a/public/assets/javascripts/ui/MasterView.js +++ b/public/assets/javascripts/ui/MasterView.js @@ -25,6 +25,8 @@ var MasterView = View.extend({ this.editProjectModal = new EditProjectModal() this.editProfileModal = new EditProfileModal() + this.originalPath = window.location.pathname + for (var route in this.routes) { if (window.location.pathname.indexOf(route) === 0) { this[this.routes[route]]() @@ -61,7 +63,6 @@ var MasterView = View.extend({ editProject: function(e){ e && e.preventDefault() window.history.pushState(null, document.title, "/project/edit") - this.editProjectModal.load() }, 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)); + } + +}) diff --git a/public/assets/javascripts/ui/ModalView.js b/public/assets/javascripts/ui/ModalView.js index a34520f..80ce8d0 100644 --- a/public/assets/javascripts/ui/ModalView.js +++ b/public/assets/javascripts/ui/ModalView.js @@ -21,6 +21,7 @@ var ModalView = View.extend({ window.location.pathname = "/" } else { + history.pushState(null, document.title, app.master.originalPath) this.hide() } } diff --git a/public/assets/javascripts/ui/NewProjectModal.js b/public/assets/javascripts/ui/NewProjectModal.js index 58dcb73..cf2044f 100644 --- a/public/assets/javascripts/ui/NewProjectModal.js +++ b/public/assets/javascripts/ui/NewProjectModal.js @@ -1,49 +1,16 @@ -var NewProjectModal = ModalView.extend({ +var NewProjectModal = ModalFormView.extend({ el: ".mediaDrawer.newProject", action: "/project/new", - 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() }, - submit: function(e){ - e.preventDefault() - - this.$errors.hide(); - this.$errorList.empty() - - var fields = this.$form.serializeArray() - - var request = $.post(this.action, $.param(fields)); - request.done($.proxy(function (response) { - if (response.error) { - this.$errors.show(); - for (var key in response.error.errors) { - this.$errorList.append('<div>' + response.error.errors[key].message + '</div>'); - } - return - } - else { - window.location.href = "/profile" - } - }, this)); + success: function(){ + // } }) diff --git a/public/assets/javascripts/ui/SignInModal.js b/public/assets/javascripts/ui/SignInModal.js index 0112513..4c91b54 100644 --- a/public/assets/javascripts/ui/SignInModal.js +++ b/public/assets/javascripts/ui/SignInModal.js @@ -1,54 +1,11 @@ -var SignInModal = ModalView.extend({ +var SignInModal = ModalFormView.extend({ el: ".mediaDrawer.signin", action: "/auth/signin", - 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() - }, - - submit: function(e){ - e.preventDefault() - - this.$errors.hide(); - this.$errorList.empty() - - 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(); - for (var key in response.error.errors) { - this.$errorList.append('<div>' + response.error.errors[key].message + '</div>'); - } - return - } - else { - window.location.href = "/profile" - } - }, this)); + success: function(res){ + window.location.href = "/profile" } }) diff --git a/public/assets/javascripts/ui/SignUpModal.js b/public/assets/javascripts/ui/SignUpModal.js index 160323b..95b5837 100644 --- a/public/assets/javascripts/ui/SignUpModal.js +++ b/public/assets/javascripts/ui/SignUpModal.js @@ -1,28 +1,9 @@ -var SignUpModal = ModalView.extend({ +var SignUpModal = ModalFormView.extend({ el: ".mediaDrawer.signup", action: "/auth/signup", - - 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() - }, - validate: function(){ var errors = [] @@ -47,43 +28,12 @@ var SignUpModal = ModalView.extend({ errors.push("Passwords don't match"); } - if (errors.length) { - this.$errors.show(); - for (var i in errors) { - this.$errorList.append('<div>' + errors[i] + '</div>'); - } - } - - return ! errors.length + return errors }, - submit: function(e){ - e.preventDefault() - - this.$errors.hide(); - this.$errorList.empty() - - if (! this.validate()) 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(); - for (var key in response.error.errors) { - this.$errorList.append('<div>' + response.error.errors[key].message + '</div>'); - } - return; - } - else { - window.location.href = "/profile" - } - }, this)); + success: function(res){ + window.location.href = "/profile" } }) + |
