name=fi_oulu_AllPlatesByProject
title=Latest plates, by project
description=A list of the most recent plates (yours or not), by project.
admin_only=no
version=1
height=2
width=1
url=/api/project/isarchived/0?sortby=name
---- Below this line is deemed to be HTML content if url above is empty, Javascript otherwise. If Javascript, you MUST define an object BRICKNAME_functions containing at least a function onSuccess(transport,box){}, transport contains a responseJSON object, box is the homepage brick itself.
document.fi_oulu_AllPlatesByProject_functions={
	onSuccess:function(transport,box){
		var projects=transport.responseJSON.rows;
		var bb=box.down(".boxbody");
		bb.innerHTML="";
		projects.each(function(p){
			if(1*p.owner!=userId){ return; }
			bb.treeItem({ 
				id:'fi_oulu_AllPlatesByProject_proj'+p.id,
				header:'<a href="/project/'+p.id+'">'+p.name+'</a> (mine)',
				record:p,
				updater:document.fi_oulu_AllPlatesByProject_functions.getPlatesForProject
			});
		});
		projects.each(function(p){
			if(1*p.owner==userId){ return; }
			bb.treeItem({ 
				id:'fi_oulu_AllPlatesByProject_proj'+p.id,
				header:'<a href="/project/'+p.id+'">'+p.name+'</a>',
				record:p,
				updater:document.fi_oulu_AllPlatesByProject_functions.getPlatesForProject
			});
		});
	},

	onFailure:function(transport,box){
		if(transport.responseJSON && transport.responseJSON.error){
			box.down(".boxbody").innerHTML=transport.responseJSON.error;
		} else {
			box.down(".boxbody").innerHTML="Could not get projects.";
		}
	},
	
	getPlatesForProject: function(clicked){
		var treeItem=clicked.up(".treeitem");
		var projectid=treeItem.record.id;
		new Ajax.Request("/api/plate/projectid/"+projectid+"?pagesize=25&pagenumber=1&sortby=name&sortdescending=1",{
			method:"get",
			onSuccess:function(transport){ document.fi_oulu_AllPlatesByProject_functions.getPlatesForProject_onSuccess(transport,treeItem)},
			onFailure:function(transport){ document.fi_oulu_AllPlatesByProject_functions.getPlatesForProject_onFailure(transport,treeItem)},
		});
	},
	getPlatesForProject_onSuccess: function(transport,treeItem){
		var t=ui.table({
			headers:['Plate','Owner'],
			cellTemplates:['<a href="/plate/{{id}}">{{name}}</a>','<a href="/user/{{ownerid}}">{{ownername}}</a>']
		}, transport.responseJSON, treeItem.down(".treebody") );
		t.select("tr").last().remove();
	},
	getPlatesForProject_onFailure: function(transport,treeItem){
		if(transport.responseJSON && transport.responseJSON.error){
			treeItem.down(".treebody").innerHTML=transport.responseJSON.error;
		} else {
			treeItem.down(".treebody").innerHTML="Could not get plates.";
		}
	},

}
