Team:Cambridge/static/introduction.js

From 2011.igem.org

(Difference between revisions)
 
(9 intermediate revisions not shown)
Line 1: Line 1:
/*
/*
-
  * A jQuery widget to fetch and display page introductions.
+
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
 +
 
 +
            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.
  *  
  *  
  * */
  * */
Line 16: Line 30:
this.$subarea = this.$el.find('#cam_desc_subarea');
this.$subarea = this.$el.find('#cam_desc_subarea');
this.$color = this.$el.find('#cam_desc_color');
this.$color = this.$el.find('#cam_desc_color');
-
this.area = 'overview';
+
this.area = '';
-
this.subarea = 'home';
+
this.subarea = '';
},
},
setArea: function(area, 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._display_content(area, subarea);
this.$area.text(area.toUpperCase());
this.$area.text(area.toUpperCase());
Line 32: Line 49:
var self = this;
var self = this;
var url = this.options.baseUrl + area.toLowerCase() + '/' + subarea.toLowerCase() + '?action=raw';
var url = this.options.baseUrl + area.toLowerCase() + '/' + subarea.toLowerCase() + '?action=raw';
-
self.$content.fadeOut('slow');
+
$.ajax({
$.ajax({
'url': url,
'url': url,
Line 40: Line 57:
},
},
'success': function(data){
'success': function(data){
-
  self.$content.html(data).fadeIn('slow');
+
      var $data = $(data);
 +
      colorize_links($data);
 +
  self.$content.fadeOut('fast', function() {$(this).html($data).fadeIn('fast');});
},
},
  });
  });
Line 52: Line 71:
'dataType': 'html',
'dataType': 'html',
'error': function(jqXHR, textStatus, errorThrown) {
'error': function(jqXHR, textStatus, errorThrown) {
-
var err = '<p class="error">Description for ' + area + '/' + subarea + 'does not exist. Also, the default page returned "' + errorThrown + '"</p>';
+
var err = '<p style="color:red;">Description for ' + area + '/' + subarea + 'does not exist. Also, the default page returned "' + errorThrown + '"</p>';
-
self.$content.html(err).fadeIn('slow');
+
self.$content.fadeOut('fast', function() {$(this).html(err).fadeIn('fast');});
},
},
'success': function(data){
'success': function(data){
-
var $d = $(data);
+
var $d = $('<p style="color:red;">Could not load description for "' + area + '/' + subarea + '"</p>' + data);
-
$d.find('#add-desc-link').attr('href', this.options.baseUrl + area + '/' + subarea + '?action=edit');
+
$d.find('#add-desc-link').attr('href', self.options.baseUrl + area + '/' + subarea + '?action=edit');
-
self.$content.html($d).fadeIn('slow');
+
self.$content.fadeOut('fast', function() {$(this).html($d).fadeIn('fast');});
},
},
  });
  });

Latest revision as of 03:25, 22 September 2011

/*

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