Author: bpoussin Date: 2013-02-23 03:47:03 +0100 (Sat, 23 Feb 2013) New Revision: 315 Url: http://chorem.org/projects/chorem/repository/revisions/315 Log: ajout de nouvelle fonction d'admin (reindexation, import/export) Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/admin/ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/admin/importExport.jsp Modified: trunk/chorem-entities/src/main/java/org/chorem/ChoremClient.java trunk/chorem-entities/src/main/java/org/chorem/ChoremMain.java trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/AdminAction.java 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/decorator.jsp Modified: trunk/chorem-entities/src/main/java/org/chorem/ChoremClient.java =================================================================== --- trunk/chorem-entities/src/main/java/org/chorem/ChoremClient.java 2013-02-22 22:40:22 UTC (rev 314) +++ trunk/chorem-entities/src/main/java/org/chorem/ChoremClient.java 2013-02-23 02:47:03 UTC (rev 315) @@ -216,7 +216,7 @@ //org.chorem.entities.WikittyTreeNode.attribute.parent.tagvalue.help=La catégorie Parente de celle-ci (ex: dépense pour Loyer) //org.chorem.entities.WikittyTreeNode.attribute.parent.tagvalue.allowed=Category WikittyExtension e = org.nuiton.wikitty.entities.WikittyTreeNodeAbstract.extensionWikittyTreeNode; - e.setVersion(WikittyUtil.incrementMajorRevision(e.getVersion())); // toujours faire attention d'etre a +1 par rapport a l'objet genere + e.setVersion(WikittyUtil.incrementMajorRevision(e.getTagValue("version"))); // toujours faire attention d'etre a +1 par rapport a l'objet genere e.getFieldType("name").addTagValue("help", "Le nom pour cette catégorie (ex: dépense, Salaire, ...)"); e.getFieldType("attachment").addTagValue("visible", "false"); e.getFieldType("parent").addTagValue("help", "La catégorie Parente de celle-ci (ex: dépense pour Loyer)"); Modified: trunk/chorem-entities/src/main/java/org/chorem/ChoremMain.java =================================================================== --- trunk/chorem-entities/src/main/java/org/chorem/ChoremMain.java 2013-02-22 22:40:22 UTC (rev 314) +++ trunk/chorem-entities/src/main/java/org/chorem/ChoremMain.java 2013-02-23 02:47:03 UTC (rev 315) @@ -44,7 +44,7 @@ // args = "--clear -ic /tmp/chorem-company.csv -ip /tmp/chorem-person.csv -ie /tmp/chorem-employee.csv --import-contract-type /tmp/chorem-contracttype.csv --import-contract /tmp/chorem-contract.csv --commit".split(" "); // args = "-ic /tmp/chorem-company.csv --commit".split(" "); // args = "--removeObject Invoice".split(" "); - args = "-ii /tmp/bill.csv --import-costs /tmp/cost.csv --commit".split(" "); +// args = "--removeObject Invoice -ii /tmp/bill.csv --import-costs /tmp/cost.csv --commit".split(" "); // args = "--reindex".split(" "); System.out.println(String.format("Launching ChoremMain ... (args: %s)", Arrays.toString(args))); // getConfig do all: parse and doAllAction Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/AdminAction.java =================================================================== --- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/AdminAction.java 2013-02-22 22:40:22 UTC (rev 314) +++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/AdminAction.java 2013-02-23 02:47:03 UTC (rev 315) @@ -23,15 +23,30 @@ package org.chorem.webmotion.actions; +import com.kenai.jaffl.annotations.Pinned; +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.InputStreamReader; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; +import java.io.Reader; import java.text.NumberFormat; +import javassist.bytecode.ByteArray; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.ChoremClient; import org.chorem.entities.Configuration; import org.debux.webmotion.server.WebMotionController; +import org.debux.webmotion.server.call.UploadFile; import org.debux.webmotion.server.render.Render; +import org.nuiton.wikitty.addons.WikittyImportExportService; import org.nuiton.wikitty.query.WikittyQuery; import org.nuiton.wikitty.query.WikittyQueryMaker; +import org.nuiton.wikitty.query.WikittyQueryParser; /** * @@ -60,4 +75,24 @@ // "client", client, "id", conf.getWikittyId(), "extension", null ); } + public Render reindex(ChoremClient client) { + client.syncSearchEngine(); + return renderSuccess(); + } + + public Render doImport(ChoremClient client, UploadFile file) throws FileNotFoundException { + WikittyImportExportService ies = new WikittyImportExportService(client); + Reader in = new BufferedReader(new FileReader(file.getFile())); + ies.syncImport(WikittyImportExportService.FORMAT.CSV, in); + return renderSuccess(); + } + + public Render doExport(ChoremClient client, String query) { + WikittyImportExportService ies = new WikittyImportExportService(client); + WikittyQuery q = new WikittyQueryParser().parseQuery(query); + String result = ies.syncExportAllByQuery(WikittyImportExportService.FORMAT.CSV, q); + ByteArrayInputStream in = new ByteArrayInputStream(result.getBytes()); + return renderStream(in, "text/csv", "UTF-8"); + } + } 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 2013-02-22 22:40:22 UTC (rev 314) +++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java 2013-02-23 02:47:03 UTC (rev 315) @@ -414,14 +414,6 @@ int invoiceIncomeNb = invoices[1].getTotalResult(); // montant total de toutes les factures double invoiceIncome = invoices[1].peek(); -// TODO a garder en Map pour permettre l'ajout de lien sur la requete -// // montant total de toutes les factures -// double annualDebt = (Double)annualDebtIncome.get("debts"); -// double annualIncome = (Double)annualDebtIncome.get("incomes"); -// -// // montant total de toutes les factures -// double lastYearAnnualDebt = (Double)pastAnnualDebtIncome.get("debts"); -// double lastYearAnnualIncome = (Double)pastAnnualDebtIncome.get("incomes"); int touchNb = touchs.getTotalResult(); @@ -437,10 +429,6 @@ "invoiceIncome", invoiceIncome, "annualDebtIncome", annualDebtIncome, "pastAnnualDebtIncome", pastAnnualDebtIncome, -// "annualDebt", annualDebt, -// "annualIncome", annualIncome, -// "lastYearAnnualDebt", lastYearAnnualDebt, -// "lastYearAnnualIncome", lastYearAnnualIncome, "touchNb", touchNb, "touchQueryString", touchQueryString ); Modified: trunk/chorem-webmotion/src/main/resources/mapping =================================================================== --- trunk/chorem-webmotion/src/main/resources/mapping 2013-02-22 22:40:22 UTC (rev 314) +++ trunk/chorem-webmotion/src/main/resources/mapping 2013-02-23 02:47:03 UTC (rev 315) @@ -46,6 +46,7 @@ * /fragment/dashboardHR/{method} action:DashboardHRAction.{method} * /fragment/sales/{method} action:sales.SalesAction.{method} * /admin view:contact.jsp +* /admin/importExport view:admin/importExport.jsp * /admin/{method} action:AdminAction.{method} * /contact view:contact.jsp * /report view:report.jsp Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/admin/importExport.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/admin/importExport.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/admin/importExport.jsp 2013-02-23 02:47:03 UTC (rev 315) @@ -0,0 +1,15 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f" %> + +<h1>Import</h1> +<form action="<c:url value="/admin/doImport"/>" method="POST" enctype="multipart/form-data"> + <input type="file" name="file"/> + <input type="submit" value="Import"/> +</form> + +<h1>Export</h1> +<form action="<c:url value="/admin/doExport"/>" method="POST"> + <input type="text" name="query"/> + <input type="submit" value="Export"/> +</form> \ No newline at end of file Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/decorator.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/decorator.jsp 2013-02-22 22:40:22 UTC (rev 314) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/decorator.jsp 2013-02-23 02:47:03 UTC (rev 315) @@ -197,6 +197,10 @@ <li><a href="<c:url value="/wikitty/WikittyUser/edit/new"/>"><i class="icon-plus icon-black"></i> Add user</a></li> <li class="divider"></li> <li><a href="<c:url value="/admin/variables"/>">Variables</a></li> + <li class="divider"></li> + <li><a href="<c:url value="/admin/importExport"/>">Import/Export</a></li> + <li class="divider"></li> + <li><a href="<c:url value="/admin/reindex"/>">Reindex</a></li> </ul> </li> </ul>