Team:Cambridge/static/introduction.js

From 2011.igem.org

Revision as of 03:23, 22 September 2011 by Hjking734 (Talk | contribs)

/*

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(); });