Ignore:
Timestamp:
Sep 12, 2011, 6:05:43 PM (8 years ago)
Author:
tjeerd@…
Message:

New fancy interface update l33t! w00t!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/web-app/js/visualization.js

    r2014 r2017  
    33 */
    44var visualization = null;
     5var visType = null;
    56
    67$(document).ready(function() {
     
    3334            "success": function( data, textStatus, jqXHR ) {
    3435                // Remove all previous entries from the list
    35                 $( '#rows, #columns' ).empty();
     36                $( '#rows, #columns, #types' ).empty();
     37
     38                if( visualization )
     39                    visualization.destroy();
    3640
    3741                if(data.infoMessage) {
    38                     showError(data.infoMessage,"warning");
     42                    showError(data.infoMessage,"message_warning");
    3943                }
    4044
     
    4852                        $.each( returnData, function( idx, field ) {
    4953                        if(field.category!=prevCat) {
    50                             $( '#rows, #columns' )
    51                                     .append( $( "<option>" )
    52                                     .val( "" )
    53                                     .text( field.source+": "+field.category )
    54                                     .attr("disabled","disabled")
    55                                     .css("font-weight","bold")
    56                                     .css("color","white")
    57                                     .css("background-color","#333") );
     54                            if(prevCat.length>0) $( '#rows, #columns' ).append( "</optgroup>" );
     55                            $( '#rows, #columns' ).append( "<optgroup label='"+field.source+": "+field.category+"' onClick='return false;'>" );
    5856                            prevCat = field.category;
    5957                        }
    6058                            $( '#rows, #columns' ).append( $( "<option>" ).val( field.id ).text( field.name ) );
    6159                        });
     60                    $( '#rows, #columns' ).append( "</optgroup>" );
    6261                       
    6362                        $( "#menu_study" ).find("div.menu_item_info").html("<br />"+$( '#study option:selected' ).text());
     
    6867        },'menu_study');
    6968    } else {
    70         $( '#rows, #columns' ).empty();
     69        $( '#rows, #columns, #types' ).empty();
    7170        clearStep(".menu_item");
     71
    7272        $( "#menu_study" ).addClass("menu_item_fill");
    7373    }
     
    9494
    9595                if(data.infoMessage!=null) {
    96                     showError(data.infoMessage,"warning");
     96                    showError(data.infoMessage,"message_warning");
    9797                } else {
    9898
     
    102102                    $.each( returnData, function( idx, field ) {
    103103                        $( '#types' ).append( $( "<option>" ).val( field.id ).text( field.name ) );
     104                        if(field.name==visType) {$( '#types option:last' ).attr("selected","selected");};
    104105                    });
    105106
     
    117118                    clearStep("#menu_vis");
    118119                    $( "#menu_vis" ).addClass("menu_item_fill");
     120                    if( visualization )
     121                        visualization.destroy();
     122                   
    119123                    if($( '#types option' ).length==1) {
    120124                        $( '#types :first-child' ).attr("selected","selected");
     125                    }
     126                    if($( '#types option:selected' ).length>0) {
    121127                        changeVis();
    122128                    }
     
    139145    if($( '#types option:selected' ).val()!="") {
    140146        $( "#menu_vis" ).removeClass().addClass("menu_item menu_item_done");
    141         $( "#menu_vis" ).find("div.menu_item_info").html("<br />"+$( '#types option:selected' ).text());
     147        visType = $( '#types option:selected' ).text();
     148        $( "#menu_vis" ).find("div.menu_item_info").html("<br />"+visType);
    142149    } else {
    143150        $( "#menu_vis" ).find("div.menu_item_info").html("");
     
    175182
    176183                if(data.infoMessage!=null) {
    177                     showError(data.infoMessage,"warning");
     184                    showError(data.infoMessage,"message_warning");
    178185                }
    179186                // Handle erroneous data
    180187                /*if( !checkCorrectData( data.returnData ) ) {
    181                     showError( "Unfortunately the server returned data in a format that we did not expect.", "error" );
     188                    showError( ["Unfortunately the server returned data in a format that we did not expect."], "message_error" );
    182189                    return;
    183190                }*/
     
    238245/**
    239246 * Shows an error message in a proper way
    240  * @param message       String  Message to show
    241  */
    242 function showError( message, strClass ) {
    243         $( '#message' ).html( message );
    244     $( '#message' ).removeClass().addClass(strClass);
    245         $( '#message' ).fadeIn();
    246     $(document).bind('click',function() {
    247         $( '#message' ).removeClass();
    248         $( '#message' ).html("");
    249         $(document).unbind('click');
    250     });
     247 * @param messages      array of Strings
     248 * @param strClass  the Class the messages get
     249 */
     250function showError( messages, strClass ) {
     251    for (index in messages) {
     252        var newClose = $( "<div>" ).css("position","absolute").css("top","3px").css("right","10px").html("<a href='#' onclick='removeError(this); return false;'>x</a>");
     253            $( '#message_container' ).prepend( $( "<div>" ).addClass("message_box "+strClass).html( messages[index] ).css("position","relative").fadeIn().append(newClose) );
     254    }
     255    $( '#message_counter' ).addClass("message_newmessage");
     256    $( '#message_counter' ).switchClass("message_newmessage","",2000);
     257    $( '#message_counter' ).html($('.message_box').length);
     258}
     259
     260function errorDiv() {
     261    if($( '#message_container' ).css("display")=="none") {
     262        $( '#message_container' ).show("fast");
     263    } else {
     264        $( '#message_container' ).hide("fast");
     265    }
     266}
     267
     268function removeError(strSelector) {
     269    $( strSelector ).closest(".message_box").remove();
     270    $( "#message_counter" ).html($(".message_box").length);
     271    if($(".message_box").length==0) {
     272        errorDiv();
     273    }
    251274}
    252275
     
    323346                ajaxParameters[ "error" ] = function( jqXHR, textStatus, errorThrown ) {
    324347                        // An error occurred while retrieving fields from the server
    325                         showError( "An error occurred while retrieving variables from the server. Please try again or contact a system administrator.<br />"+textStatus, "error" );
     348                        showError( ["An error occurred while retrieving variables from the server. Please try again or contact a system administrator.<br />"+textStatus], "message_error" );
    326349            $( "#"+divid ).removeClass().addClass('menu_item menu_item_error');
    327350            $( "#"+divid ).find("img.spinner").hide();
Note: See TracChangeset for help on using the changeset viewer.