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

« back to all changes in this revision

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

  • Committer: matt.giuca
  • Date: 2009-01-14 10:10:12 UTC
  • mto: This revision was merged to the branch mainline in revision 1090.
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:branches%2Fstorm:1132
The new ivle.database.User class is now used in Request and usrmgt, which
    means it is now almost universally used in favour of ivle.user.User (now
    deprecated).

Noticeable change: The minor bug where the change to a user object in the
    database is not reflected in the user's session (eg. changing nick doesn't
    update title until log out).

ivle.dispatch:
    Session now contains 'login' (username string) rather than 'user' (full
        ivle.user.User object). This is a unicode string now.

    req.user is now a ivle.database.User object rather than an ivle.user.User
        object. This makes for a whole lot of really subtle differences, but
        largely conforms to the same interface. Note that strings must now all
        be unicode.

    login: Removed use of ivle.db. Now uses User object.

    html: Now handles unicode login and config options.

ivle.db: Removed update_user. Now replaced with Storm model.

ivle.database: Renamed has_cap back to hasCap (saved for later). Fixed small
    unicode bug.

ivle.makeuser.make_svn_auth now takes a store object.

usrmgt-server: Use new User class.

userservice: Now uses User class internally.
    get_user action now returns ISO 8601 date format, rather than a
        time tuple. (Wasn't being used).
    get_user action no longer transmits local_password (small security risk;
        note that it wasn't possible to see this for any user other than
        yourself unless admin).

ivle.util - added function object_to_dict.

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
 
}