frappe.ready(function() { $('.task-status-switch').on('click', function() { var $btn = $(this); if($btn.attr('data-status')==='Open') { reload_items('closed', 'task', $btn); } else { reload_items('open', 'task', $btn); } }) $('.issue-status-switch').on('click', function() { var $btn = $(this); if($btn.attr('data-status')==='Open') { reload_items('closed', 'issue', $btn); } else { reload_items('open', 'issue', $btn); } }) var start = 10; $(".more-tasks").click(function() { more_items('task', true); }); $(".more-issues").click(function() { more_items('issue', true); }); $(".more-timelogs").click(function() { more_items('timelog', false); }); $(".more-timelines").click(function() { more_items('timeline', false); }); var reload_items = function(item_status, item, $btn) { $.ajax({ method: "GET", url: "/", dataType: "json", data: { cmd: "erpnext.templates.pages.projects.get_"+ item +"_html", project: '{{ doc.name }}', item_status: item_status, }, dataType: "json", success: function(data) { if(typeof data.message == 'undefined') { $('.project-'+ item).html("No "+ item_status +" "+ item); $(".more-"+ item).toggle(false); } $('.project-'+ item).html(data.message); $(".more-"+ item).toggle(true); // update status if(item_status==='open') { $btn.html(__('Show closed')).attr('data-status', 'Open'); } else { $btn.html(__('Show open')).attr('data-status', 'Closed'); } } }); } var more_items = function(item, item_status){ if(item_status) { var item_status = $('.project-'+ item +'-section .btn-group .bold').hasClass('btn-closed-'+ item) ? 'closed' : 'open'; } $.ajax({ method: "GET", url: "/", dataType: "json", data: { cmd: "erpnext.templates.pages.projects.get_"+ item +"_html", project: '{{ doc.name }}', start: start, item_status: item_status, }, dataType: "json", success: function(data) { $(data.message).appendTo('.project-'+ item); if(typeof data.message == 'undefined') { $(".more-"+ item).toggle(false); } start = start+10; } }); } var close_item = function(item, item_name){ var args = { project: '{{ doc.name }}', item_name: item_name, } frappe.call({ btn: this, type: "POST", method: "erpnext.templates.pages.projects.set_"+ item +"_status", args: args, callback: function(r) { if(r.exc) { if(r._server_messages) frappe.msgprint(r._server_messages); } else { $(this).remove(); } } }) return false; } });