package plugins.data;
import gcc.catalogue.ShoppingCart;
import java.util.ArrayList;
import java.util.List;
import org.molgenis.auth.MolgenisUser;
import org.molgenis.framework.db.Database;
import org.molgenis.framework.db.DatabaseException;
import org.molgenis.framework.db.Query;
import org.molgenis.framework.db.QueryRule;
import org.molgenis.framework.db.QueryRule.Operator;
import org.molgenis.framework.ui.PluginModel;
import org.molgenis.framework.ui.ScreenController;
import org.molgenis.framework.ui.ScreenMessage;
import org.molgenis.util.Entity;
import org.molgenis.util.Tuple;
/**
*
*/
public class ApproveUserDownloads extends PluginModel<Entity>
{
private static final long serialVersionUID = -6096870458186217098L;
private List<MolgenisUser> arrayUsers = new ArrayList<MolgenisUser>();
private String selectedUser;
private List<ShoppingCart> UserDownloads = new ArrayList<ShoppingCart>();
private List<Integer> shoppingCartIds = new ArrayList<Integer>();
public ApproveUserDownloads(String name, ScreenController<?> parent)
{
super(name, parent);
}
@Override
public String getViewName()
{
return "plugins_data_ApproveUserDownloads";
}
@Override
public String getViewTemplate()
{
return "plugins/data/ApproveUserDownloads.ftl";
}
public String getCustomHtmlHeaders()
{
return "<link rel=\"stylesheet\" style=\"text/css\" href=\"res/css/download_list.css\">"
+ "<link rel=\"stylesheet\" style=\"text/css\" href=\"res/css/catalogue.css\">";
}
@Override
public void handleRequest(Database db, Tuple request) throws Exception
{
if ("showDownloads".equals(request.getAction()))
{
UserDownloads.clear();
selectedUser = request.getString("user");
System.out.println(">>" + selectedUser);
// arrayUsers.clear();
Query<ShoppingCart> q = db.query(ShoppingCart.class);
q.addRules(new QueryRule(ShoppingCart.USERID, Operator.EQUALS, this.getLogin().getUserName()));
q.addRules(new QueryRule(ShoppingCart.CHECKEDOUT, Operator.EQUALS, true));
q.addRules(new QueryRule(ShoppingCart.APPROVED, Operator.EQUALS, false));
if (!q.find().isEmpty())
{
UserDownloads.addAll(q.find());
for (int i = 0; i < UserDownloads.size(); i++)
shoppingCartIds.add(UserDownloads.get(i).getId());
}
else
{
this.getModel().getMessages().add(new ScreenMessage("No Downloads found!", false));
}
}
else if ("ApproveSelectedDownloads".equals(request.getAction()))
{
System.out.println("the user has pressed approve , now let's retrieve the selected items ");
String selecteditems = request.getString("approvedItems");
String[] temp;
String delimiter = ",";
temp = selecteditems.split(delimiter);
for (int i = 0; i < temp.length; i++)
{
temp[i] = temp[i].replace("[", "").replace("]", "").trim();
System.out.println("-->" + temp[i]);
}
for (int i = 0; i < temp.length; i++)
{
ShoppingCart sc = db.query(ShoppingCart.class).eq(ShoppingCart.ID, temp[i]).find().get(0);
sc.setApproved(true);
db.update(sc);
}
}
}
@Override
public void reload(Database db)
{
this.arrayUsers.clear();
try
{
for (MolgenisUser u : db.find(MolgenisUser.class))
{
this.arrayUsers.add(u);
}
}
catch (DatabaseException e)
{
e.printStackTrace();
logger.error(e.getMessage());
}
}
public List<MolgenisUser> getArrayUsers()
{
return arrayUsers;
}
public List<ShoppingCart> getUserDownloads()
{
return UserDownloads;
}
public List<Integer> getShoppingCartIds()
{
return shoppingCartIds;
}
}