Header

Posts Tagged ‘Brian Moschel’

Hands on JavaScript

Brian Moschel of Jupiter IT did a live walkthrough of adding JavaScript functionality to your pages at the May 2009 meetup. He went through adding client side form validation.

Here is the code used in the demo (which mixes JavaScriptMVC and jQuery):

FormController = MVC.Controller.extend('registration_form',
/* @Static */
{},
/* @Prototype */
{
	submit: function(params){
		params.event.kill();
		var data = params.form_params();
		this.check_email(data.email)
		this.check_username(data.username)
		if(!this.failed)
			new MVC.Ajax('/users/create',
			{
				parameters: data,
				onComplete: this.continue_to('after_submit')
			})
	},
	after_submit: function(results){
		eval(results.responseText);
	},
	success: function(message){
		$("#registration_form").css('display','none');
		$("#notifier")[0].innerHTML = message;
		$('#notifier').fadeOut(3000)
	},
	'input blur': function(params){
		if(params.element.type == 'submit') return;
		var name = params.element.className;
		var value = params.element.value;
		this["check_"+name](value);
	},
	check_email: function(value){
		var empty_regex = /^\s*$/;
		var email_regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		// check if its empty
		if(value.match(empty_regex) != null) this.failure("Email is a required field.", "email")
		// check if its valid
		if(value.match(email_regex) == null) this.failure("The email you entered is not a valid email address.", "email")
	},
	check_username: function(value){
		var empty_regex = /^\s*$/;
		// check if its empty
		if(value.match(empty_regex) != null) this.failure("Name is a required field.", "username")
	},
	failure: function(message, field_type){
		var field = $('#registration_form input.'+field_type);
		field.css('border','2px red solid');
 
		var error_div = $('#registration_form span.'+field_type+"_error");
		error_div[0].innerHTML = message;
 
		setTimeout(this.continue_to('reset_failure'), 3000);
		this.failed = true;
	},
	reset_failure: function(){
		$('#registration_form input').css('border', '');
 
		var errors = $('#registration_form .error');
		for(var i=0; i<errors.length; i++){
			errors[i].innerHTML = "";
		}
	},
});

Comet: an Overview and New Solution Called Jabbify

Brian Moschel of Jupiter IT presented at the April 2009 Meetup.

This talk provides an overview of Comet, also known as HTTP Push, covering how it works on the server and client, several implementation options, and using a new Comet API called Jabbify in an interactive demo.