summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/ui
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/ui')
-rw-r--r--public/assets/javascripts/ui/EditProfileModal.js51
-rw-r--r--public/assets/javascripts/ui/MasterView.js3
-rw-r--r--public/assets/javascripts/ui/ModalFormView.js70
-rw-r--r--public/assets/javascripts/ui/ModalView.js1
-rw-r--r--public/assets/javascripts/ui/NewProjectModal.js39
-rw-r--r--public/assets/javascripts/ui/SignInModal.js49
-rw-r--r--public/assets/javascripts/ui/SignUpModal.js60
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"
}
})
+