~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/media/common/util.js

  • Committer: dcoles
  • Date: 2008-07-23 07:38:03 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:944
Special Home Directory: Work to create a special home directory that shows the 
subjects you are enrolled in, the repositories that you have for those subjects 
and aranges the files in a sensible fashion. (See bugtracker [ 2010232 ] Home 
directory: special user interface)

This should also support showing group repositories at a later date.

Show diffs side-by-side

added added

removed removed

Lines of Context:
620
620
    return str.join('');
621
621
}
622
622
 
623
 
/** Makes an asynchronous XMLHttpRequest call to the server.
 
623
/** Makes an XMLHttpRequest call to the server.
624
624
 * Sends the XMLHttpRequest object containing the completed response to a
625
625
 * specified callback function.
626
626
 *
627
627
 * \param callback A callback function. Will be called when the response is
628
628
 *      complete. Passed 1 parameter, an XMLHttpRequest object containing the
629
 
 *      completed response.
 
629
 *      completed response. If callback is null this is a syncronous request 
 
630
 *      otherwise this is an asynchronous request.
630
631
 * \param app IVLE app to call (such as "fileservice").
631
632
 * \param path URL path to make the request to, within the application.
632
633
 * \param args Argument object, as described in parse_url and friends.
646
647
     * used within this function) */
647
648
    var boundary = random_string(20);
648
649
    var xhr = new_xmlhttprequest();
649
 
    xhr.onreadystatechange = function()
650
 
        {
651
 
            if (xhr.readyState == 4)
 
650
    var asyncronous = callback != null;
 
651
    if (asyncronous)
 
652
    {
 
653
        xhr.onreadystatechange = function()
652
654
            {
653
 
                callback(xhr);
 
655
                if (xhr.readyState == 4)
 
656
                {
 
657
                    callback(xhr);
 
658
                }
654
659
            }
655
 
        }
 
660
    }
656
661
    if (method == "GET")
657
662
    {
658
663
        /* GET sends the args in the URL */
659
664
        url = build_url({"path": path, "args": args});
660
665
        /* open's 3rd argument = true -> asynchronous */
661
 
        xhr.open(method, url, true);
 
666
        xhr.open(method, url, asyncronous);
662
667
        xhr.send(null);
663
668
    }
664
669
    else
665
670
    {
666
671
        /* POST sends the args in application/x-www-form-urlencoded */
667
672
        url = encodeURI(path);
668
 
        xhr.open(method, url, true);
 
673
        xhr.open(method, url, asyncronous);
669
674
        var message;
670
675
        if (content_type == "multipart/form-data")
671
676
        {
680
685
        }
681
686
        xhr.send(message);
682
687
    }
 
688
    /* Only return the XHR for syncronous requests */
 
689
    if (!asyncronous)
 
690
    { 
 
691
        return xhr;
 
692
    }
683
693
}
684
694
 
 
695
/** Attempts to JSON decodes a response object
 
696
 * If a non-200 response or the JSON decode fails then returns null
 
697
 */
 
698
function decode_response(response)
 
699
{
 
700
    if (response.status == 200)
 
701
    {
 
702
        try
 
703
        {
 
704
            var responseText = response.responseText;
 
705
            return JSON.parse(responseText);
 
706
        }
 
707
        catch (e)
 
708
        {
 
709
            // Pass
 
710
        }
 
711
     }
 
712
    
 
713
     return null;
 
714
}