Team:Cambridge/static/introduction.js
From 2011.igem.org
Line 7: | Line 7: | ||
$.widget("ui.introduction", { | $.widget("ui.introduction", { | ||
+ | options: { | ||
+ | baseUrl = '/Team:Cambridge/desc/', | ||
+ | }, | ||
_create: function() { | _create: function() { | ||
this.$el = $(this.element[0]); | this.$el = $(this.element[0]); | ||
Line 29: | Line 32: | ||
{ | { | ||
var self = this; | var self = this; | ||
- | var url = | + | var url = this.options.baseUrl + area.toLowerCase() + '/' + subarea.toLowerCase() + '?action=raw'; |
$.ajax({ | $.ajax({ | ||
'url': url, | 'url': url, | ||
Line 44: | Line 47: | ||
{ | { | ||
var self = this; | var self = this; | ||
- | var url = ' | + | var url = this.options.baseUrl + 'default/default?action=raw'; |
$.ajax({ | $.ajax({ | ||
'url': url, | 'url': url, |
Revision as of 14:54, 11 September 2011
/*
* A jQuery widget to fetch and display page introductions. * * */
(function( $, undefined ) {
$.widget("ui.introduction", { options: { baseUrl = '/Team:Cambridge/desc/', }, _create: function() { this.$el = $(this.element[0]); this.$content = this.$el.find('#cam_desc_content'); this.$area = this.$el.find('#cam_desc_area'); this.$subarea = this.$el.find('#cam_desc_subarea'); this.$color = this.$el.find('#cam_desc_color'); this.area = 'overview'; this.subarea = 'home'; this._display_content(this.area, this.subarea); }, setArea: function(area, subarea) { this._display_content(area, subarea); this.$area.text(area.toUpperCase()); this.$subarea.text(subarea.toLowerCase()); this.$color.removeClass('cam-desc-' + this.area).addClass('cam-desc-' + area); this.area = area; this.subarea = subarea; }, _display_content: function(area, subarea) { var self = this; var url = this.options.baseUrl + area.toLowerCase() + '/' + subarea.toLowerCase() + '?action=raw'; $.ajax({ 'url': url, 'dataType': 'html', 'error': function(jqXHR, textStatus, errorThrown) { self._display_default(area,subarea); }, 'success': function(data){ self.$content.fadeOut('slow', function() {$(this).html(data).fadeIn('slow');}); }, }); }, _display_default: function(area, subarea) { var self = this; var url = this.options.baseUrl + 'default/default?action=raw'; $.ajax({ 'url': url, 'dataType': 'html', 'error': function(jqXHR, textStatus, errorThrown) {
var err = 'Description for ' + area + '/' + subarea + 'does not exist. Also, the default page returned "' + errorThrown + '"
';self.$content.fadeOut('slow', function() {$(this).html(err).fadeIn('slow');}); }, 'success': function(data){ var $d = $(data); $d.find('#add-desc-link').attr('href', '/Team:Cambridge/' + area + '/' + subarea + '?action=edit'); self.$content.fadeOut('slow', function() {$(this).html($d).fadeIn('slow');}); }, }); }, });
})(jQuery);
$(window).ready( function() { $('#cam_desc').introduction(); });