Team:Cambridge/static/introduction.js
From 2011.igem.org
/*
This file is part of the cambridge 2011 igem team's wiki. nothing is guaranteed.
DO WHAT THE F*CK YOU WANT TO PUBLIC LICENSE Version 2, December 2004
Copyright (C) 2011 Haydn King hjking734@gmail.com
Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed.
DO WHAT THE F*CK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE F*CK YOU WANT TO.
- /
/*
* A jQuery UI 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 = ; this.subarea = ; }, setArea: function(area, subarea) {
//check if we're already displaying this area/subarea if((this.area == area) && (this.subarea == subarea)) return;
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){
var $data = $(data); colorize_links($data);
self.$content.fadeOut('fast', function() {$(this).html($data).fadeIn('fast');}); }, }); }, _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('fast', function() {$(this).html(err).fadeIn('fast');}); }, 'success': function(data){
var $d = $('Could not load description for "' + area + '/' + subarea + '"
' + data);$d.find('#add-desc-link').attr('href', self.options.baseUrl + area + '/' + subarea + '?action=edit'); self.$content.fadeOut('fast', function() {$(this).html($d).fadeIn('fast');}); }, }); }, });
})(jQuery);
$(window).ready( function() { $('#cam_desc').introduction(); });