r157 - in trunk: chorem-entities/src/main/java/org/chorem/entities chorem-entities/src/main/xmi chorem-webmotion/src/main/java/org/chorem/webmotion/actions chorem-webmotion/src/main/resources chorem-webmotion/src/main/webapp/WEB-INF/jsp
Author: bpoussin Date: 2012-05-25 12:35:08 +0200 (Fri, 25 May 2012) New Revision: 157 Url: http://chorem.org/repositories/revision/chorem/157 Log: - ajout dashboard invoice - ajout dashboard vacation - ajout zone de filtre sur les dashbords - modif modele (enum vacation, interval subtime is datetime) Added: trunk/chorem-entities/src/main/java/org/chorem/entities/VacationStatus.java trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardInvoice.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardVacation.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardVacationAsked.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/hr.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/project.jsp Modified: trunk/chorem-entities/src/main/xmi/chorem-model.properties trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java trunk/chorem-webmotion/src/main/resources/mapping trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardProject.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotation.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/index.jsp Added: trunk/chorem-entities/src/main/java/org/chorem/entities/VacationStatus.java =================================================================== --- trunk/chorem-entities/src/main/java/org/chorem/entities/VacationStatus.java (rev 0) +++ trunk/chorem-entities/src/main/java/org/chorem/entities/VacationStatus.java 2012-05-25 10:35:08 UTC (rev 157) @@ -0,0 +1,18 @@ +package org.chorem.entities; + +/** + * + * @author poussin + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public enum VacationStatus { + + DRAFT, // cours de reflexion par l'employe + ASKED, // conge demande, doit etre accepte par un superieur + REJECTED, // conge refuse + ACCEPTED // conge accepte + +} Modified: trunk/chorem-entities/src/main/xmi/chorem-model.properties =================================================================== --- trunk/chorem-entities/src/main/xmi/chorem-model.properties 2012-05-25 10:01:43 UTC (rev 156) +++ trunk/chorem-entities/src/main/xmi/chorem-model.properties 2012-05-25 10:35:08 UTC (rev 157) @@ -12,9 +12,11 @@ org.chorem.entities.Person.class.tagvalue.version=5.0 org.chorem.entities.Person.class.tagvalue.toString=%Person.lastName$s %Person.firstName|noname$s org.chorem.entities.Person.class.tagvalue.sortOrder=Person.lastName,Person.firstName -org.chorem.entities.Interval.class.tagvalue.version=5.0 +org.chorem.entities.Interval.class.tagvalue.version=6.0 org.chorem.entities.Interval.class.tagvalue.toString=%Interval.beginDate$tF-%Interval.endDate$tF org.chorem.entities.Interval.class.tagvalue.sortOrder=Interval.beginDate,Interval.endDate +org.chorem.entities.Interval.attribute.beginDate.tagvalue.subtime=datetime +org.chorem.entities.Interval.attribute.endDate.tagvalue.subtime=datetime org.chorem.entities.Company.class.tagvalue.version=5.0 org.chorem.entities.Company.class.tagvalue.toString=%Company.name|noname$s org.chorem.entities.Company.class.tagvalue.sortOrder=Company.name @@ -45,9 +47,11 @@ org.chorem.entities.Evaluation.class.tagvalue.version=5.0 org.chorem.entities.Evaluation.class.tagvalue.toString=%Evaluation.level|nolevel$s org.chorem.entities.Evaluation.class.tagvalue.sortOrder=Evaluation.level -org.chorem.entities.Vacation.class.tagvalue.version=5.0 +org.chorem.entities.Vacation.class.tagvalue.version=6.0 +org.chorem.entities.Vacation.class.tagvalue.preload=Vacation.employee org.chorem.entities.Vacation.class.tagvalue.toString=%Interval.beginDate$tF-%Interval.endDate$tF %Vacation.type|notype$s org.chorem.entities.Vacation.class.tagvalue.sortOrder=Interval.beginDate,Interval.endDate,Vacation.type +org.chorem.entities.Vacation.attribute.status.tagvalue.allowed=DRAFT,ASKED,REJECTED,ACCEPTED org.chorem.entities.Touch.class.tagvalue.version=6.0 org.chorem.entities.Touch.class.tagvalue.preload=Touch.participant org.chorem.entities.Touch.class.tagvalue.toString=%Interval.beginDate$tF - %Touch.type$s - %Touch.goal|nogoal$s @@ -57,14 +61,18 @@ org.chorem.entities.Attachment.class.tagvalue.version=5.0 org.chorem.entities.Attachment.class.tagvalue.toString=%Attachment.name|noname$s (%Attachment.mimetype|notype$s) %Attachment.date$tF org.chorem.entities.Attachment.class.tagvalue.sortOrder=Attachment.name,Attachment.mimetype,Attachment.date -org.chorem.entities.Quotation.class.tagvalue.version=8.0 +org.chorem.entities.Quotation.class.tagvalue.version=9.0 org.chorem.entities.Quotation.class.tagvalue.preload=Quotation.project;Quotation.customer;Quotation.supplier org.chorem.entities.Quotation.class.tagvalue.toString=%Interval.beginDate$tF-%Interval.endDate$tF %Quotation.reference|noref$s(%Quotation.type|notype$s) %Quotation.description|nodescription$s org.chorem.entities.Quotation.class.tagvalue.sortOrder=Interval.beginDate,Interval.endDate,Quotation.reference,Quotation.type,Quotation.description org.chorem.entities.Quotation.attribute.status.tagvalue.allowed=DRAFT,SEND,REJECTED,ACCEPTED,STARTED,DELIVERED,VRS,WARRANTY,CLOSED -org.chorem.entities.Invoice.class.tagvalue.version=5.0 +org.chorem.entities.Quotation.attribute.conversionHope.tagvalue.min=0 +org.chorem.entities.Quotation.attribute.conversionHope.tagvalue.max=100 +org.chorem.entities.Invoice.class.tagvalue.version=6.0 +org.chorem.entities.Invoice.class.tagvalue.preload=Invoice.target org.chorem.entities.Invoice.class.tagvalue.toString=%Invoice.reference|noref$s %Invoice.amount|noamount$s %Invoice.postedDate$tF %Invoice.expectedDate$tF %Invoice.paymentDate$tF org.chorem.entities.Invoice.class.tagvalue.sortOrder=Invoice.postedDate,Invoice.expectedDate,Invoice.paymentDate,Invoice.reference,Invoice.amount -org.chorem.entities.Invoiceable.class.tagvalue.version=5.0 +org.chorem.entities.Invoiceable.class.tagvalue.version=6.0 +org.chorem.entities.Invoiceable.class.tagvalue.preload=Invoiceable.customer;Invoiceable.supplier org.chorem.entities.Invoiceable.class.tagvalue.toString=%Invoiceable.name|noname$s org.chorem.entities.Invoiceable.class.tagvalue.sortOrder=Invoiceable.name Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java =================================================================== --- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java 2012-05-25 10:01:43 UTC (rev 156) +++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java 2012-05-25 10:35:08 UTC (rev 157) @@ -1,26 +1,32 @@ package org.chorem.webmotion.actions; +import java.util.Collection; import java.util.EnumSet; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.ChoremClient; import org.chorem.entities.Attachment; import org.chorem.entities.Configuration; import org.chorem.entities.ConfigurationImpl; +import org.chorem.entities.Invoice; import org.chorem.entities.Quotation; import org.chorem.entities.QuotationStatus; import org.chorem.entities.Task; import org.chorem.entities.TaskStatus; import org.chorem.entities.Time; +import org.chorem.entities.Vacation; +import org.chorem.entities.VacationStatus; import org.debux.webmotion.server.WebMotionController; import org.debux.webmotion.server.render.Render; import org.nuiton.wikitty.query.WikittyQuery; import org.nuiton.wikitty.query.WikittyQueryMaker; +import org.nuiton.wikitty.query.WikittyQueryParser; import org.nuiton.wikitty.query.WikittyQueryResult; /** @@ -36,7 +42,55 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ static private Log log = LogFactory.getLog(DashboardAction.class); - protected Render quotationFilter(ChoremClient client, + protected <E> Map<String, List<Attachment>> prepareAttachment(ChoremClient client, Collection<E> ids) { + // recherche des attachments de chaque quotation trouvee + WikittyQuery attachmentQuery = new WikittyQueryMaker().and() + .exteq(Attachment.EXT_ATTACHMENT) + .containsOne(Attachment.FQ_FIELD_ATTACHMENT_TARGET, ids) + .end(); + + WikittyQueryResult<Attachment> attachmentResult = + client.findAllByQuery(Attachment.class, attachmentQuery); + + // preparation des attachements pour chaque quotation + Map<String, List<Attachment>> attachments = new HashMap<String, List<Attachment>>(); + for (Attachment a : attachmentResult) { + String id = a.getTarget(); + List<Attachment> l = attachments.get(id); + if (l == null) { + l = new LinkedList<Attachment>(); + attachments.put(id, l); + } + l.add(a); + } + + return attachments; + } + + //////////////////////////////////////////////////////////////////////////// + // + // C O N T A C T + // + //////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////// + // + // P R O J E C T + // + //////////////////////////////////////////////////////////////////////////// + + /** + * + * @param client wikitty client injected by wm + * @param query query to filter projet (can be null) + * @param status status required by quotation to appear + * @param jspRender jsp used to render result + * @param title title of jsp page + * @param computeTask true if we want to compute task info + * (task info not needed for not stated project) + * @return + */ + protected Render quotationFilter(ChoremClient client, String query, EnumSet<QuotationStatus> status, String jspRender, String title, boolean computeTask) { // recherche de la configuration pour les calcules @@ -53,32 +107,27 @@ // recuperation des quotations en fonction de leur status - WikittyQuery query = new WikittyQueryMaker() + // TODO poussin 20120525 lorsque wikitty supportera la methode parse sur + // WikittyQueryMaker l'utiliser au lieu de ce qui suit pour simplifier + // voir: http://www.nuiton.org/issues/2105 + WikittyQueryMaker quotationQueryMaker = new WikittyQueryMaker(); + + // si besoin on ajoute le filtre demande par l'utilisateur + if (StringUtils.isNotBlank(query)) { + WikittyQuery filter = WikittyQueryParser.parse(query); + quotationQueryMaker.and().condition(filter.getCondition()); + } + + WikittyQuery quotationQuery = quotationQueryMaker .containsOne(Quotation.FQ_FIELD_QUOTATION_STATUS, status) .end(); - WikittyQueryResult<Quotation> result = client.findAllByQuery(Quotation.class, query); + WikittyQueryResult<Quotation> result = client.findAllByQuery(Quotation.class, quotationQuery); + // recherche des attachments de chaque quotation trouvee - WikittyQuery attachmentQuery = new WikittyQueryMaker().and() - .exteq(Attachment.EXT_ATTACHMENT) - .containsOne(Attachment.FQ_FIELD_ATTACHMENT_TARGET, result.getAll()) - .end(); + Map<String, List<Attachment>> attachments = + prepareAttachment(client, result.getAll()); - WikittyQueryResult<Attachment> attachmentResult = - client.findAllByQuery(Attachment.class, attachmentQuery); - - // preparation des attachements pour chaque quotation - Map<String, List<Attachment>> attachments = new HashMap<String, List<Attachment>>(); - for (Attachment a : attachmentResult) { - String id = a.getTarget(); - List<Attachment> l = attachments.get(id); - if (l == null) { - l = new LinkedList<Attachment>(); - attachments.put(id, l); - } - l.add(a); - } - // TODO poussin 20120523 ajouer la recherche des note sur la quotation // si besoin recherche le nombre de tache ouvert et ferme @@ -160,25 +209,25 @@ "taskInfos", taskInfos); } - public Render quotation(ChoremClient client) { + public Render quotation(ChoremClient client, String query) { EnumSet<QuotationStatus> status = EnumSet.range(QuotationStatus.DRAFT, QuotationStatus.SEND); String jsp = "dashboardQuotation.jsp"; String title = "Les propositions en attente de réponse"; - return quotationFilter(client, status, jsp, title, false); + return quotationFilter(client, query, status, jsp, title, false); } - public Render projectOpen(ChoremClient client) { + public Render projectOpen(ChoremClient client, String query) { EnumSet<QuotationStatus> status = EnumSet.range(QuotationStatus.ACCEPTED, QuotationStatus.VRS); String jsp = "dashboardProject.jsp"; String title = "Les projets en cours"; - return quotationFilter(client, status, jsp, title, true); + return quotationFilter(client, query, status, jsp, title, true); } - public Render projectClosed(ChoremClient client) { + public Render projectClosed(ChoremClient client, String query) { EnumSet<QuotationStatus> status = EnumSet.range(QuotationStatus.WARRANTY, QuotationStatus.CLOSED); String jsp = "dashboardProject.jsp"; String title = "Les projets clos"; - return quotationFilter(client, status, jsp, title, true); + return quotationFilter(client, query, status, jsp, title, true); } static public class TaskInfo { @@ -280,4 +329,101 @@ return result; } }; + + //////////////////////////////////////////////////////////////////////////// + // + // F I N A N C I A L + // + //////////////////////////////////////////////////////////////////////////// + + public Render invoice(ChoremClient client, String query) { + // recuperation des factures + // TODO poussin 20120525 lorsque wikitty supportera la methode parse sur + // WikittyQueryMaker l'utiliser au lieu de ce qui suit pour simplifier + // voir: http://www.nuiton.org/issues/2105 + WikittyQueryMaker invoiceQueryMaker = new WikittyQueryMaker(); + + // si besoin on ajoute le filtre demande par l'utilisateur + if (StringUtils.isNotBlank(query)) { + WikittyQuery filter = WikittyQueryParser.parse(query); + invoiceQueryMaker.and().condition(filter.getCondition()); + } + + WikittyQuery invoiceQuery = invoiceQueryMaker + .exteq(Invoice.EXT_INVOICE) + .end(); + + WikittyQueryResult<Invoice> invoices = + client.findAllByQuery(Invoice.class, invoiceQuery); + + double amount = 0; + double amountPaid = 0; + double amountExpected = 0; + // calcul des amounts + for (Invoice i : invoices) { + double v = i.getAmount(); + amount += v; + if (i.getPaymentDate() == null) { + amountExpected += v; + } else { + amountPaid += v; + } + } + + // recherche des attachments de chaque quotation trouvee + Map<String, List<Attachment>> attachments = + prepareAttachment(client, invoices.getAll()); + + return renderView("dashboardInvoice.jsp", + "invoices", invoices.getAll(), + "amount", amount, + "amountPaid", amountPaid, + "amountExpected", amountExpected, + "attachments", attachments + ); + } + + //////////////////////////////////////////////////////////////////////////// + // + // H R + // + //////////////////////////////////////////////////////////////////////////// + + public Render vacationFilter(ChoremClient client, String query, String jspRender, EnumSet<VacationStatus> status) { + // recuperation des vacances en fonction de leur status + // TODO poussin 20120525 lorsque wikitty supportera la methode parse sur + // WikittyQueryMaker l'utiliser au lieu de ce qui suit pour simplifier + // voir: http://www.nuiton.org/issues/2105 + WikittyQueryMaker vacationQueryMaker = new WikittyQueryMaker(); + + // si besoin on ajoute le filtre demande par l'utilisateur + if (StringUtils.isNotBlank(query)) { + WikittyQuery filter = WikittyQueryParser.parse(query); + vacationQueryMaker.and().condition(filter.getCondition()); + } + + WikittyQuery vacationQuery = vacationQueryMaker + .containsOne(Vacation.FQ_FIELD_VACATION_STATUS, status) + .end(); + + WikittyQueryResult<Vacation> vacations = + client.findAllByQuery(Vacation.class, vacationQuery); + + return renderView(jspRender, + "vacations", vacations.getAll() + ); + + } + + public Render vacationAsked(ChoremClient client, String query) { + return vacationFilter(client, query, "dashboardVacationAsked.jsp", + EnumSet.of(VacationStatus.ASKED)); + } + + public Render vacation(ChoremClient client, String query) { + return vacationFilter(client, query, "dashboardVacation.jsp", + EnumSet.of(VacationStatus.ACCEPTED)); + } + + } Modified: trunk/chorem-webmotion/src/main/resources/mapping =================================================================== --- trunk/chorem-webmotion/src/main/resources/mapping 2012-05-25 10:01:43 UTC (rev 156) +++ trunk/chorem-webmotion/src/main/resources/mapping 2012-05-25 10:35:08 UTC (rev 157) @@ -28,3 +28,6 @@ * /wikitty-json/get/{id} action:GenericAction.getById * /fragment/dashboard/{method} action:DashboardAction.{method} * /contact view:contact.jsp +* /project view:project.jsp +* /financial view:financial.jsp +* /hr view:hr.jsp Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardInvoice.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardInvoice.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardInvoice.jsp 2012-05-25 10:35:08 UTC (rev 157) @@ -0,0 +1,45 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib uri="/WEB-INF/wikitty.tld" prefix="w"%> + +<h1>Invoices</h1> + +<table class="table table-striped table-bordered table-condensed"> + <thead> + <tr> + <th>Project/Task</th> + <th>Reference</th> + <th>Description</th> + <th>Customer</th> + <th>Supplier</th> + <th>Amount</th> + <th>Posted date</th> + <th>Expected date</th> + <th>Payment date</th> + <th>Attchment</th> + </tr> + </thead> + <c:forEach var="q" items="${invoices}"> + <tbody> + <tr> + <td><a href="<c:url value="/wikitty/view/${q.target}"/>">${q.getTarget()}</a></td> + <td><a href="<c:url value="/wikitty/Quotation/view/${q.wikittyId}"/>">${q.reference}</a></td> + <td>${q.description}</td> + <td><a href="<c:url value="/wikitty/Employee/view/${q.customer}"/>">${q.getCustomer(false)}</a></td> + <td><a href="<c:url value="/wikitty/Employee/view/${q.supplier}"/>">${q.getSupplier(false)}</a></td> + <td>${q.amount}</td> + <td>${q.postedDate}</td> + <td>${q.expectedDate}</td> + <td>${q.paymentDate}</td> + <td>${attachments.get(q.wikittyId)}</td> + </tr> + </tbody> + </c:forEach> +</table> + + +<dl class="dl-horizontal"> + <dt>Total</dt><dd>${amount}</dd> + <dt>Total paid</dt><dd>${amountPaid}</dd> + <dt>Total expected</dt><dd>${amountExpected}</dd> +</dl> Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardProject.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardProject.jsp 2012-05-25 10:01:43 UTC (rev 156) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardProject.jsp 2012-05-25 10:35:08 UTC (rev 157) @@ -11,8 +11,8 @@ <th>Description</th> <th>Customer</th> <th>Supplier</th> - <th>estimatedDays</th> - <th>workingDays</th> + <th>estimated days</th> + <th>working days</th> <th>task opened</th> <th>task closed</th> <th>Hoped price day</th> @@ -42,7 +42,7 @@ <td>${taskInfos.get(q.wikittyId).realProfit}</td> <td>${q.amount}</td> <td>${q.status}</td> - <td>${attachment.get(q.wikittyId)}</td> + <td>${attachments.get(q.wikittyId)}</td> </tr> </tbody> </c:forEach> Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotation.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotation.jsp 2012-05-25 10:01:43 UTC (rev 156) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotation.jsp 2012-05-25 10:35:08 UTC (rev 157) @@ -11,9 +11,9 @@ <th>Description</th> <th>Customer</th> <th>Supplier</th> - <th>estimatedDays</th> - <th>convsersionHope</th> - <th>Price days Hope</th> + <th>estimated days</th> + <th>convsersion hope</th> + <th>hoped price day</th> <th>Amount</th> <th>Status</th> <th>Attchment</th> @@ -32,7 +32,7 @@ <td>${q.amount / q.estimatedDays}</td> <td>${q.amount}</td> <td>${q.status}</td> - <td>${attachment.get(q.wikittyId)}</td> + <td>${attachments.get(q.wikittyId)}</td> </tr> </tbody> </c:forEach> Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardVacation.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardVacation.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardVacation.jsp 2012-05-25 10:35:08 UTC (rev 157) @@ -0,0 +1,29 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> + +<h1>Vacances</h1> + +<%-- TODO poussin 20120525 remplacer le tableau par une frise chronologique --%> + +<table class="table table-striped table-bordered table-condensed"> + <thead> + <tr> + <th>Employee</th> + <th>Begin date</th> + <th>End date</th> + <th>Type</th> + <th>Description</th> + </tr> + </thead> + <c:forEach var="q" items="${vacations}"> + <tbody> + <tr> + <td><a href="<c:url value="/wikitty/Employee/view/${q.employee}"/>">${q.getEmployee(false)}</a></td> + <td><a href="<c:url value="/wikitty/Vacation/view/${q.wikittyId}"/>">${q.beginDate}</a></td> + <td>${q.endDate}</td> + <td>${q.type}</td> + <td>${q.description}</td> + </tr> + </tbody> + </c:forEach> +</table> Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardVacationAsked.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardVacationAsked.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardVacationAsked.jsp 2012-05-25 10:35:08 UTC (rev 157) @@ -0,0 +1,27 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> + +<h1>Vacances en attente d'agrément</h1> + +<table class="table table-striped table-bordered table-condensed"> + <thead> + <tr> + <th>Employee</th> + <th>Begin date</th> + <th>End date</th> + <th>Type</th> + <th>Description</th> + </tr> + </thead> + <c:forEach var="q" items="${vacations}"> + <tbody> + <tr> + <td><a href="<c:url value="/wikitty/Employee/view/${q.employee}"/>">${q.getEmployee(false)}</a></td> + <td><a href="<c:url value="/wikitty/Vacation/view/${q.wikittyId}"/>">${q.beginDate}</a></td> + <td>${q.endDate}</td> + <td>${q.type}</td> + <td>${q.description}</td> + </tr> + </tbody> + </c:forEach> +</table> Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial.jsp 2012-05-25 10:35:08 UTC (rev 157) @@ -0,0 +1,10 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> + +<h1>HR</h1> + +<form> + <input type="text" name="query"/> + <input type="submit"/> +</form> + +<jsp:include page="/fragment/dashboard/invoice"/> Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/hr.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/hr.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/hr.jsp 2012-05-25 10:35:08 UTC (rev 157) @@ -0,0 +1,11 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> + +<h1>HR</h1> + +<form> + <input type="text" name="query"/> + <input type="submit"/> +</form> + +<jsp:include page="/fragment/dashboard/vacationAsked"/> +<jsp:include page="/fragment/dashboard/vacation"/> Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/index.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/index.jsp 2012-05-25 10:01:43 UTC (rev 156) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/index.jsp 2012-05-25 10:35:08 UTC (rev 157) @@ -3,7 +3,3 @@ <h1>Chorem</h1> Bienvenue sur Chorem, l'outil de gestion d'entreprise. - -<jsp:include page="/fragment/dashboard/quotation"/> -<jsp:include page="/fragment/dashboard/projectOpen"/> -<jsp:include page="/fragment/dashboard/projectClosed"/> Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/project.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/project.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/project.jsp 2012-05-25 10:35:08 UTC (rev 157) @@ -0,0 +1,12 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> + +<h1>Project</h1> + +<form> + <input type="text" name="query"/> + <input type="submit"/> +</form> + +<jsp:include page="/fragment/dashboard/quotation?query=${query}"/> +<jsp:include page="/fragment/dashboard/projectOpen?query=${query}"/> +<jsp:include page="/fragment/dashboard/projectClosed?query=${query}"/>
participants (1)
-
bpoussin@users.chorem.org