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/MasterView.js30
-rw-r--r--public/assets/javascripts/ui/ModalView.js18
-rw-r--r--public/assets/javascripts/ui/SignInModal.js50
-rw-r--r--public/assets/javascripts/ui/SignUpModal.js89
-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