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

« back to all changes in this revision

Viewing changes to ivle/webapp/admin/subject-media/project.js

  • Committer: William Grant
  • Date: 2010-02-23 08:55:42 UTC
  • mto: This revision was merged to the branch mainline in revision 1674.
  • Revision ID: grantw@unimelb.edu.au-20100223085542-r8xw14bxxoraza51
Permit underscores in all names.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
$(document).ready(function(){
 
2
    $("#new_projectset_form").submit(add_projectset);
 
3
    $(".new_project").submit(add_project);
 
4
    $('li').show();
 
5
    $('.add-project-link').click(show_add);
 
6
    $('.add-projectset-link').click(show_add);
 
7
});
 
8
 
 
9
function serializeForm(form){
 
10
 
 
11
    mylist = form.serializeArray();
 
12
    var data = {};
 
13
    for (var i = 0; i < mylist.length; i++){
 
14
        data[mylist[i].name] = mylist[i].value;
 
15
    }
 
16
    return data;
 
17
 
 
18
};
 
19
 
 
20
function add_project(){
 
21
    var add_project_form = $(this);
 
22
    function callback(xhr) {
 
23
        if (xhr.status == 200) {
 
24
            add_project_form.slideToggle('fast');
 
25
            var response = JSON.parse(xhr.responseText);
 
26
            var projectlist = $('#projectslist_' + response.projectset_id);
 
27
            var new_element = response.html.split('\n').slice(1).join('\n');
 
28
            projectlist.children(".list_empty_indicator").remove()
 
29
            add_section = projectlist.children(".add-project");
 
30
            $(add_section).before(new_element).hide().slideDown();
 
31
        } else if (xhr.status == 400) {
 
32
            alert("Could not create project: " + xhr.getResponseHeader("X-IVLE-Error"));
 
33
        } else {
 
34
            alert("Project creation failed due to an internal server error.");
 
35
        }
 
36
    };
 
37
 
 
38
    var data = serializeForm($(this));
 
39
 
 
40
    ajax_call(callback, $(this).attr("action"), "", data, 'POST');
 
41
 
 
42
    return false;
 
43
};
 
44
 
 
45
function add_projectset(){
 
46
 
 
47
    $("#add_projectset").attr('disabled', 'disabled');
 
48
 
 
49
    function callback(xhr) {
 
50
        var response = JSON.parse(xhr.responseText);
 
51
        $('#projectset_list').append(response.html);
 
52
        var projectset_div = $('#projectset_' + response.projectset_id);
 
53
        projectset_div.hide();
 
54
        projectset_div.slideDown();
 
55
        $("#add_projectset").removeAttr('disabled');
 
56
        projectset_div.find(".new_project").submit(add_project);
 
57
        projectset_div.find(".add-project-link").click(show_add);
 
58
    };
 
59
 
 
60
    var data = serializeForm($("#new_projectset_form"));
 
61
 
 
62
    data['ivle.op'] = 'add_projectset';
 
63
 
 
64
    ajax_call(callback, $("#new_projectset_form").attr("action"), "", data, 
 
65
            'POST');
 
66
 
 
67
    return false;
 
68
};
 
69
 
 
70
function show_add(){
 
71
    $(this).next().slideToggle();
 
72
    return false;
 
73
}