sync
[web.mtrack] / MTrackWeb / templates / images / js / mtrack.project.js
index 2342bd5..728552a 100644 (file)
@@ -1,8 +1,168 @@
 
 
+MTrack.milestoneViewer = false;
+MTrack.milestoneValues = false;
+MTrack.milestoneShow = function(url, a)
+{
+    
+    
+    if (MTrack.milestoneViewer) {
+        
+        if (MTrack.milestoneValues &&
+                MTrack.milestoneValues != MTrack.milestoneViewer.find('.milestone-edit').serialize()) {
+            // skip showing new form..
+            alert("save or cancel first");
+            return;
+        }
+        
+        MTrack.milestoneViewer.remove();
+        MTrack.milestoneViewer=  false;
+    }
+    
+    MTrack.milestoneValues = false;
+    if (MTrack.milestoneActiveURL == url) { // hide current...
+        MTrack.milestoneActiveURL = false;
+        return;
+    }
+    MTrack.milestoneActiveURL  = url;
+    // create a row be
+    var into;
+    if ($(a).is('div')) {
+        MTrack.milestoneViewer = $('<div>Loading...</div>');
+        $(a).append(MTrack.milestoneViewer);
+        into = MTrack.milestoneViewer;
+    } else {
+        var tr = $($(a).parents('tr:first')[0]);
+        var cols = tr.find('td').length;
+        MTrack.milestoneViewer = $('<tr><td colspan="' + cols + '">Loading...</td></tr>');
+        tr.after(MTrack.milestoneViewer);
+        into = MTrack.milestoneViewer.find('td');
+        
+    }
+    
+    //console.log(MTrack.milestoneViewer);
+    jQuery.ajax({
+        url : url,
+        data : { ajax_body : 1 },
+        success : function(data) {
+            into.html(data);
+            MTrack.addHandlers(into);
+            //MTrack.milestoneViewer.find('#summary').focus();
+            MTrack.milestoneValues = MTrack.milestoneViewer.find('.milestone-edit').serialize();
+        }
+    })
+    
+};
+
 MTrack.register('.project-new-milestone', 'click', function(event) {
     event.preventDefault();
-    MTrack.reportShow(baseURL + '/Milestone/0', $('.project-new-ticket-area'));
+    MTrack.milestoneShow(baseURL + '/Milestone/0', $('.project-new-milestone-area'));
     $(this).hide(); 
 });
-    
\ No newline at end of file
+    
+MTrack.register('.mtrack-milestone-cancel', 'click', function(event) {
+    event.preventDefault();
+    if (MTrack.milestoneValues &&
+            MTrack.milestoneValues != MTrack.milestoneViewer.find('.milestone-edit').serialize()) {
+        // skip showing new form..
+        alert("save or cancel first");
+        return;
+    }
+    var id = $('.milestone-form').attr('id').split('-').pop();
+    if ((id*1) > 0) { // edit?!?
+        MTrack.ajaxLoad( '/Project.html' , true);
+        return;
+    }
+    $('.project-new-milestone').show();
+    MTrack.milestoneViewer.remove();
+    Track.milestoneValues= false;
+    MTrack.milestoneViewer=  false;
+});
+
+
+MTrack.register('.mtrack-milestone-save', 'click', function(event) {
+    event.preventDefault();
+    MTrack.milestoneViewer = false;
+    MTrack.milestoneValues= false;
+    var id = $('.milestone-form').attr('id').split('-').pop();
+    // reload the report..
+    jQuery.ajax({
+        url:  baseURL+'/Milestone/' + id,
+        type : 'POST',
+        data: $('.milestone-form').serializeArray(),
+        success : function() {
+            if ((id*1) > 0) { // edit?!?
+                MTrack.ajaxLoad( '/Project.html' , true);
+                return;
+            }
+            MTrack.ajaxLoad( MTrack.currentURL, true);
+            
+        }
+    });
+    
+});
+
+
+MTrack.register('.mtrack-perm', 'click', function(event) {
+    //console.log($(this).attr('name'));
+    var nar = $(this).attr('name').split('_');
+    jQuery.ajax({
+        url:  baseURL+'/core_project',
+        type : 'POST',
+        data: {
+            action : 'perm',
+            gid : nar[1],
+            uid : nar[0],
+            value : this.checked ? 1 : 0
+        },
+        success : function(d) {
+            // our failure value may appear here?
+           // console.log(d);
+        }
+        // failure??
+        
+    });
+    
+     
+});
+
+MTrack.Project = {
+    rolesave : function(e)
+    {
+        
+        var nar = $(e).attr('name').split('_');
+        jQuery.ajax({
+            url:  baseURL+'/core_project',
+            type : 'POST',
+            data: {
+                action : 'role',
+                pdid : nar[1],
+                value : e.value
+            },
+            success : function(d) {
+                // our failure value may appear here?
+               // console.log(d);
+            }
+            // failure??
+            
+        });
+        
+    }
+    
+}
+    
+    
+MTrack.register('.mtrack-project-person-role', 'keyup', function(event) {
+    //console.log($(this).attr('name'));
+    clearTimeout($.data(this, 'timer'));
+    var t = this;
+    
+    var wait = setTimeout(function() {
+        MTrack.Project.rolesave(t);
+    }, 1000);
+    
+    $(this).data('timer', wait);
+});
+
+    
+