Sha256: fd89fe775096387769f435f4e6d67bac949569044e84dcad09e00ee70f126551

Contents?: true

Size: 1.41 KB

Versions: 44

Compression:

Stored size: 1.41 KB

Contents

var Ajaxify = new Class({
	version: 0.2,

	Implements: [Options, Events],

	options: {
		events: {
			loading: {
				name: 'ajax:loading',
				text: 'Loading…'
			},
			success: {
				name: 'ajax:success',
				text: 'Changes successfully saved!'
			},
			failure: {
				name: 'ajax:failure',
				text: 'Oops, something went wrong…'
			}
		},
		holder: new Element('div#ajax_holder'),
		fadeOutDuration: 2000
	},

	initialize: function(_options) {
		this.setOptions(_options);
		this.holder = this.options.holder.inject(document.body);
	},
	
	applyEvents: function(el){
		el = document.id(el || document.body);
		var apply = function(action, callback) {
			el.getElements('[data-remote="true"]').addEvent(action, callback);
		};
		
		apply(this.options.events.loading.name, this.loading.bind(this));
		apply(this.options.events.success.name, this.success.bind(this));
		apply(this.options.events.failure.name, this.failure.bind(this));
	},

	loading: function(xhr){
		this.setMessage('loading', false);
	},
	success: function(xhr){
		this.setMessage('success', true);
	},
	failure: function(xhr){
		this.setMessage('failure', true);
	},

	setMessage: function(status, fadeOut) {
		this.holder
			.set('text', this.options.events[status].text)
			.set('class', status);

		if (fadeOut) {
			this.holder.addClass('fadeout');
			setTimeout(function(){
				this.holder.erase('class');
			}.bind(this), this.options.fadeOutDuration);
		}
	}
});

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
bhf-0.5.9 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.5.8 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.5.7 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.5.6 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.5.5 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.5.4 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.5.3 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.5.2 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.5.1 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.5.0 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.4.36 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.4.35 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.4.34 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.4.33 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.4.32 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.4.31 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.4.30 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.4.25 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.4.24 vendor/assets/javascripts/bhf/classes/Ajaxify.js
bhf-0.4.23 vendor/assets/javascripts/bhf/classes/Ajaxify.js