diff options
Diffstat (limited to 'public/assets/javascripts/ui')
| -rw-r--r-- | public/assets/javascripts/ui/MasterView.js | 30 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/ModalView.js | 18 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/SignInModal.js | 50 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/SignUpModal.js | 89 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/z_misc.js (renamed from public/assets/javascripts/ui/signin.js) | 56 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/z_share.js (renamed from public/assets/javascripts/ui/share.js) | 0 |
6 files changed, 187 insertions, 56 deletions
diff --git a/public/assets/javascripts/ui/MasterView.js b/public/assets/javascripts/ui/MasterView.js new file mode 100644 index 0000000..9657c56 --- /dev/null +++ b/public/assets/javascripts/ui/MasterView.js @@ -0,0 +1,30 @@ + +var MasterView = View.extend({ + el: "body", + + events: { + "click [data-role='show-signup-modal']": 'showSignUpModal', + "click [data-role='show-signin-modal']": 'showSignInModal', + }, + + initialize: function(){ + this.signUpModal = new SignUpModal() + this.signInModal = new SignInModal() + + $("body").removeClass("loading") + // app.launch() + + }, + + showSignUpModal: function(e){ + e.preventDefault() + this.signUpModal.load() + }, + + showSignInModal: function(e){ + e.preventDefault() + this.signInModal.load() + }, + +}) + diff --git a/public/assets/javascripts/ui/ModalView.js b/public/assets/javascripts/ui/ModalView.js new file mode 100644 index 0000000..5c8e832 --- /dev/null +++ b/public/assets/javascripts/ui/ModalView.js @@ -0,0 +1,18 @@ + +var ModalView = View.extend({ + events: { + "click .close": 'hide', + }, + + show: function(){ + $(".mediaDrawer").removeClass("active"); + this.$el.addClass("active"); + $("body").addClass("noOverflow"); + }, + + hide: function(){ + // $(".mediaDrawer, .room1").removeClass("active editing"); + this.$el.removeClass("active"); + $("body").removeClass("noOverflow"); + } +}) diff --git a/public/assets/javascripts/ui/SignInModal.js b/public/assets/javascripts/ui/SignInModal.js new file mode 100644 index 0000000..e5cd02a --- /dev/null +++ b/public/assets/javascripts/ui/SignInModal.js @@ -0,0 +1,50 @@ + + +var SignInModal = ModalView.extend({ + el: ".mediaDrawer.signin", + action: "/auth/signin", + + events: { + "submit form": "submit" + }, + + 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() + + 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)); + } + +}) + diff --git a/public/assets/javascripts/ui/SignUpModal.js b/public/assets/javascripts/ui/SignUpModal.js new file mode 100644 index 0000000..160323b --- /dev/null +++ b/public/assets/javascripts/ui/SignUpModal.js @@ -0,0 +1,89 @@ + + +var SignUpModal = ModalView.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 = [] + + var username = this.$("#usernameInput").val() + var email = this.$("#emailInput").val() + var pw1 = this.$("#passwordInput1").val() + var pw2 = this.$("#passwordInput2").val() + + if (! username.length) { + errors.push("Please enter a username"); + } + if (! pw1.length) { + errors.push("Please enter a password"); + } + if (! email.length) { + errors.push("Please enter an email address"); + } + else if (email.indexOf("@") === -1) { + errors.push("Please enter a valid email address"); + } + if (pw1 !== pw2) { + 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 + }, + + 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)); + } + +}) diff --git a/public/assets/javascripts/ui/signin.js b/public/assets/javascripts/ui/z_misc.js index 06e3d44..7580e89 100644 --- a/public/assets/javascripts/ui/signin.js +++ b/public/assets/javascripts/ui/z_misc.js @@ -1,58 +1,4 @@ - -var SignIn = function(){ - var base = this; - - base.init = function(){ - base.bind() - } - - base.bind = function(){ - $("[data-role='show-signup-modal']").click(function(){ - $(".mediaDrawer.signup").addClass("active"); - }) - } - - base.show = function(){ - } - - base.hide = function(){ - } - -} - -var SignUp = function(){ - var base = this; - - base.init = function(){ - base.bind() - } - - base.bind = function(){ - $("[data-role='show-signin-modal']").click(function(){ - $(".mediaDrawer.signin").addClass("active"); - }) - } - - base.show = function(){ - } - - base.hide = function(){ - } -} - - $(".close").click(function(){ - $(".mediaDrawer, .room1").removeClass("active editing"); - $("body").removeClass("noOverflow"); - }); - - - - - -/* - - function bind () { if(is_mobile) { @@ -315,5 +261,3 @@ $(function(){ }); } }) - -*/ diff --git a/public/assets/javascripts/ui/share.js b/public/assets/javascripts/ui/z_share.js index d31aa89..d31aa89 100644 --- a/public/assets/javascripts/ui/share.js +++ b/public/assets/javascripts/ui/z_share.js |
