sync
[web.mtrack] / MTrackWeb / templates / images / js / mtrack.project.js
1
2
3 MTrack.milestoneViewer = false;
4 MTrack.milestoneValues = false;
5 MTrack.milestoneShow = function(url, a)
6 {
7     
8     
9     if (MTrack.milestoneViewer) {
10         
11         if (MTrack.milestoneValues &&
12                 MTrack.milestoneValues != MTrack.milestoneViewer.find('.milestone-edit').serialize()) {
13             // skip showing new form..
14             alert("save or cancel first");
15             return;
16         }
17         
18         MTrack.milestoneViewer.remove();
19         MTrack.milestoneViewer=  false;
20     }
21     
22     MTrack.milestoneValues = false;
23     if (MTrack.milestoneActiveURL == url) { // hide current...
24         MTrack.milestoneActiveURL = false;
25         return;
26     }
27     MTrack.milestoneActiveURL  = url;
28     // create a row be
29     var into;
30     if ($(a).is('div')) {
31         MTrack.milestoneViewer = $('<div>Loading...</div>');
32         $(a).append(MTrack.milestoneViewer);
33         into = MTrack.milestoneViewer;
34     } else {
35         var tr = $($(a).parents('tr:first')[0]);
36         var cols = tr.find('td').length;
37         MTrack.milestoneViewer = $('<tr><td colspan="' + cols + '">Loading...</td></tr>');
38         tr.after(MTrack.milestoneViewer);
39         into = MTrack.milestoneViewer.find('td');
40         
41     }
42     
43     //console.log(MTrack.milestoneViewer);
44     jQuery.ajax({
45         url : url,
46         data : { ajax_body : 1 },
47         success : function(data) {
48             into.html(data);
49             MTrack.addHandlers(into);
50             //MTrack.milestoneViewer.find('#summary').focus();
51             MTrack.milestoneValues = MTrack.milestoneViewer.find('.milestone-edit').serialize();
52         }
53     })
54     
55 };
56
57 MTrack.register('.project-new-milestone', 'click', function(event) {
58     event.preventDefault();
59     MTrack.milestoneShow(baseURL + '/Milestone/0', $('.project-new-milestone-area'));
60     $(this).hide(); 
61 });
62     
63 MTrack.register('.mtrack-milestone-cancel', 'click', function(event) {
64     event.preventDefault();
65     if (MTrack.milestoneValues &&
66             MTrack.milestoneValues != MTrack.milestoneViewer.find('.milestone-edit').serialize()) {
67         // skip showing new form..
68         alert("save or cancel first");
69         return;
70     }
71     var id = $('.milestone-form').attr('id').split('-').pop();
72     if ((id*1) > 0) { // edit?!?
73         MTrack.ajaxLoad( '/Project.html' , true);
74         return;
75     }
76     $('.project-new-milestone').show();
77     MTrack.milestoneViewer.remove();
78     Track.milestoneValues= false;
79     MTrack.milestoneViewer=  false;
80 });
81
82
83 MTrack.register('.mtrack-milestone-save', 'click', function(event) {
84     event.preventDefault();
85     MTrack.milestoneViewer = false;
86     MTrack.milestoneValues= false;
87     var id = $('.milestone-form').attr('id').split('-').pop();
88     // reload the report..
89     jQuery.ajax({
90         url:  baseURL+'/Milestone/' + id,
91         type : 'POST',
92         data: $('.milestone-form').serializeArray(),
93         success : function() {
94             if ((id*1) > 0) { // edit?!?
95                 MTrack.ajaxLoad( '/Project.html' , true);
96                 return;
97             }
98             MTrack.ajaxLoad( MTrack.currentURL, true);
99             
100         }
101     });
102     
103 });
104
105
106 MTrack.register('.mtrack-perm', 'click', function(event) {
107     //console.log($(this).attr('name'));
108     var nar = $(this).attr('name').split('_');
109     jQuery.ajax({
110         url:  baseURL+'/Project',
111         type : 'POST',
112         data: {
113             action : 'perm',
114             gid : nar[1],
115             uid : nar[0],
116             value : this.checked ? 1 : 0
117         },
118         success : function(d) {
119             // our failure value may appear here?
120            // console.log(d);
121         }
122         // failure??
123         
124     });
125     
126      
127 });
128
129 MTrack.Project = {
130     rolesave : function(e)
131     {
132         
133         var nar = $(e).attr('name').split('_');
134         jQuery.ajax({
135             url:  baseURL+'/Project',
136             type : 'POST',
137             data: {
138                 action : 'role',
139                 pdid : nar[1],
140                 value : e.value
141             },
142             success : function(d) {
143                 // our failure value may appear here?
144                // console.log(d);
145             }
146             // failure??
147             
148         });
149         
150     }
151     
152 }
153     
154     
155 MTrack.register('.mtrack-project-person-role', 'keyup', function(event) {
156     //console.log($(this).attr('name'));
157     clearTimeout($.data(this, 'timer'));
158     var t = this;
159     
160     var wait = setTimeout(function() {
161         MTrack.Project.rolesave(t);
162     }, 1000);
163     
164     $(this).data('timer', wait);
165 });
166
167     
168