r674 - in trunk: faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action faxtomail-ui-web/src/main/resources/i18n faxtomail-ui-web/src/main/webapp/WEB-INF faxtomail-ui-web/src/main/webapp/WEB-INF/content faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin faxtomail-ui-web/src/main/webapp/css
Author: kmorin Date: 2014-10-07 18:13:01 +0200 (Tue, 07 Oct 2014) New Revision: 674 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/674 Log: refs #5939 Page web de recherche des ?\195?\169l?\195?\169ments archiv?\195?\169s Added: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/ArchiveSearchAction.java trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/DemandDetailAction.java trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/archive-search-input.jsp trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/demand-detail.jsp Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/MailFolderTopiaDao.java trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java trunk/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/user-folder-input.jsp trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/wro.xml trunk/faxtomail-ui-web/src/main/webapp/css/faxtomail.css Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-10-03 15:29:56 UTC (rev 673) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-10-07 16:13:01 UTC (rev 674) @@ -25,6 +25,7 @@ */ import java.util.Calendar; +import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -476,6 +477,26 @@ return result; } + public Collection<Email> findArchivedEmails(String commandQuotationNumber, Collection<MailFolder> folders) { + StringBuilder query = new StringBuilder(); + Map<String, Object> args = new HashMap<>(); + + query.append(newFromClause("E") + " WHERE E." + Email.PROPERTY_MAIL_FOLDER + " in (:folders)"); + args.put("folders", folders); + +// query.append(" AND E." + Email.PROPERTY_DEMAND_STATUS + " = :archiveStatus"); +// args.put("archiveStatus", DemandStatus.ARCHIVED); + + query.append(" AND (EXISTS (FROM " + RangeRow.class.getName() + " RR WHERE RR in elements(E." + Email.PROPERTY_RANGE_ROW + ")"); + query.append(" AND lower(RR." + RangeRow.PROPERTY_COMMAND_NUMBER + ") LIKE lower(:" + SearchFilter.PROPERTY_COMMAND_NB + "))"); + query.append(" OR lower(E." + Email.PROPERTY_COMPANY_REFERENCE + ") LIKE lower(:" + SearchFilter.PROPERTY_COMMAND_NB + ")"); + args.put(SearchFilter.PROPERTY_COMMAND_NB, "%" + commandQuotationNumber + "%"); + + query.append(")"); + + return findAll(query.toString(), args); + } + /** * Search for email using filter. * Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/MailFolderTopiaDao.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/MailFolderTopiaDao.java 2014-10-03 15:29:56 UTC (rev 673) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/MailFolderTopiaDao.java 2014-10-07 16:13:01 UTC (rev 674) @@ -24,7 +24,9 @@ * #L% */ +import com.google.common.base.Preconditions; import com.google.common.collect.Maps; +import org.apache.commons.lang3.StringUtils; import java.util.Collection; import java.util.HashMap; Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-10-03 15:29:56 UTC (rev 673) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-10-07 16:13:01 UTC (rev 674) @@ -91,6 +91,8 @@ PaginationResult<Email> search(SearchFilter emailFilter, FaxToMailUser user, PaginationParameter pagination); + Collection<Email> searchArchives(String commandQuotationNumber, String company); + Email groupEmails(String email1Id, String email2Id, FaxToMailUser user); Email reply(String from, String to, String cc, String bcc, String subject, Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java 2014-10-03 15:29:56 UTC (rev 673) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java 2014-10-07 16:13:01 UTC (rev 674) @@ -954,6 +954,39 @@ } @Override + public Collection<Email> searchArchives(String commandQuotationNumber, String company) { + Preconditions.checkArgument(StringUtils.isNotBlank(commandQuotationNumber)); + Preconditions.checkArgument(StringUtils.isNotBlank(company)); + + MailFolderTopiaDao mailFolderDao = getPersistenceContext().getMailFolderDao(); + Collection<MailFolder> companyFolders = mailFolderDao.forCompanyEquals(company).findAll(); + Set<MailFolder> archiveFolders = new HashSet<>(companyFolders); + for (MailFolder folder : companyFolders) { + Collection<MailFolder> children = folder.getChildren(); + if (children != null) { + for (MailFolder child : children) { + findCompanyFoldersChildren(child, archiveFolders); + } + } + } + + EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); + return emailDao.findArchivedEmails(commandQuotationNumber, archiveFolders); + } + + protected void findCompanyFoldersChildren(MailFolder folder, Set<MailFolder> archiveFolders) { + if (!folder.isUseCurrentLevelCompany()) { + archiveFolders.add(folder); + Collection<MailFolder> children = folder.getChildren(); + if (children != null) { + for (MailFolder child : children) { + findCompanyFoldersChildren(child, archiveFolders); + } + } + } + } + + @Override public Email groupEmails(String email1Id, String email2Id, FaxToMailUser user) { EmailGroupTopiaDao groupDao = getPersistenceContext().getEmailGroupDao(); Added: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/ArchiveSearchAction.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/ArchiveSearchAction.java (rev 0) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/ArchiveSearchAction.java 2014-10-07 16:13:01 UTC (rev 674) @@ -0,0 +1,355 @@ +package com.franciaflex.faxtomail.web.action; + +import com.franciaflex.faxtomail.persistence.entities.Attachment; +import com.franciaflex.faxtomail.persistence.entities.Client; +import com.franciaflex.faxtomail.persistence.entities.Email; +import com.franciaflex.faxtomail.persistence.entities.EmailGroup; +import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.persistence.entities.HasLabel; +import com.franciaflex.faxtomail.persistence.entities.MailField; +import com.franciaflex.faxtomail.persistence.entities.RangeRow; +import com.franciaflex.faxtomail.persistence.entities.Reply; +import com.franciaflex.faxtomail.services.DecoratorService; +import com.franciaflex.faxtomail.services.service.ConfigurationService; +import com.franciaflex.faxtomail.services.service.EmailService; +import com.franciaflex.faxtomail.web.FaxToMailActionSupport; +import com.google.common.base.Function; +import com.google.common.collect.Collections2; +import com.google.common.collect.Lists; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.struts2.convention.annotation.Action; +import org.apache.struts2.convention.annotation.InterceptorRef; +import org.apache.struts2.convention.annotation.InterceptorRefs; +import org.apache.struts2.convention.annotation.Result; +import org.nuiton.decorator.Decorator; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.nuiton.i18n.I18n.t; + +/** + * @author Kevin Morin (Code Lutin) + * @since 1.1 + */ + +@InterceptorRefs({ + @InterceptorRef("faxToMailInterceptor"), + @InterceptorRef("paramsPrepareParamsStack") +}) +public class ArchiveSearchAction extends FaxToMailActionSupport { + + private static final Log log = LogFactory.getLog(ArchiveSearchAction.class); + + protected EmailService emailService; + protected ConfigurationService configurationService; + protected DecoratorService decoratorService; + + protected String commandQuotationNb; + protected String company; + protected List<Email> results; + protected Map<MailField, String> tableMailFields; + + public void setEmailService(EmailService emailService) { + this.emailService = emailService; + } + + public void setConfigurationService(ConfigurationService configurationService) { + this.configurationService = configurationService; + } + + public void setDecoratorService(DecoratorService decoratorService) { + this.decoratorService = decoratorService; + } + + @Override + @Action("archive-search-input") + public String input() throws Exception { + return INPUT; + } + + @Override + @Action("archive-search") + public String execute() throws Exception { + results = new ArrayList<>(emailService.searchArchives(commandQuotationNb, company)); + List<MailField> mailFields = configurationService.getSearchDisplayColumns(); + if (CollectionUtils.isEmpty(mailFields)) { + mailFields = Lists.newArrayList(MailField.getTableFields()); + } + tableMailFields = getEnumAsMap(mailFields.toArray(new MailField[mailFields.size()])); + return INPUT; + } + + public String getCommandQuotationNb() { + return commandQuotationNb; + } + + public void setCommandQuotationNb(String commandQuotationNb) { + this.commandQuotationNb = commandQuotationNb; + } + + public String getCompany() { + return company; + } + + public void setCompany(String company) { + this.company = company; + } + + public List<Email> getResults() { + return results; + } + + public void setResults(List<Email> results) { + this.results = results; + } + + public Map<MailField, String> getTableMailFields() { + return tableMailFields; + } + + public String getAttr(MailField field, Email email) { + Object attrValue = null; + switch (field) { + case PRIORITY: + attrValue = email.getPriority(); + break; + case DEMAND_TYPE: + attrValue = email.getDemandType(); + break; + case OBJECT: + attrValue = email.getObject(); + break; + case CLIENT_CODE: + Client client = email.getClient(); + attrValue = client == null ? null : client.getCode(); + break; + case CLIENT_BRAND: + client = email.getClient(); + attrValue = client == null ? null : client.getBrand(); + break; + case SENDER: + attrValue = email.getSender(); + break; + case PROJECT_REFERENCE: + attrValue = email.getProjectReference(); + break; + case COMPANY_REFERENCE: + attrValue = email.getCompanyReference(); + break; + case REFERENCE: + attrValue = email.getReference(); + break; + case RECEPTION_DATE: + attrValue = email.getReceptionDate(); + break; + case RECIPIENT: + attrValue = email.getRecipient(); + break; + case DEMAND_STATUS: + attrValue = email.getDemandStatus(); + break; + case WAITING_STATE: + attrValue = email.getWaitingState(); + break; + case PF_NB: + int intAttrValue = 0; + for (RangeRow rr : email.getRangeRow()) { + Integer productQuantity = rr.getProductQuantity(); + if (productQuantity != null) { + intAttrValue += productQuantity; + } + } + attrValue = intAttrValue; + break; + case SAV_NB: + intAttrValue = 0; + for (RangeRow rr : email.getRangeRow()) { + Integer savQuantity = rr.getSavQuantity(); + if (savQuantity != null) { + intAttrValue += savQuantity; + } + } + attrValue = intAttrValue; + break; + case QUOTATION_NB: + intAttrValue = 0; + for (RangeRow rr : email.getRangeRow()) { + Integer quotationQuantity = rr.getQuotationQuantity(); + if (quotationQuantity != null) { + intAttrValue += quotationQuantity; + } + } + attrValue = intAttrValue; + break; + case TAKEN_BY: + attrValue = email.getTakenBy(); + break; + case COMMENT: + attrValue = email.getComment(); + break; + case EDI_RETURN: + attrValue = email.getEdiError(); + break; + case LAST_ATTACHMENT_OPENING_IN_THIS_FOLDER_USER: + attrValue = email.getLastAttachmentOpener(); + break; + case REPLIES: + attrValue = "<i class='fa fa-envelope-o'></i> " + email.sizeReplies(); + break; + case ATTACHMENT: + attrValue = "<i class='fa fa-paperclip'></i> " + email.sizeAttachment(); + break; + case GROUP: + EmailGroup emailGroup = email.getEmailGroup(); + attrValue = "<i class='fa fa-link'></i> " + (emailGroup == null ? 1 : emailGroup.sizeEmail()); + break; + } + + String result; + if (attrValue == null) { + result = " "; + + } else { + Decorator decorator = decoratorService.getDecorator(attrValue); + if (decorator != null) { + result = decorator.toString(attrValue); + } else { + result = attrValue.toString(); + } + } + return result; + } + + public String getTooltip(MailField field, Email email) { + String tooltipText = null; + switch (field) { + case PF_NB: + List<String> ranges = new ArrayList<String>(); + Collection<RangeRow> rangeRows = email.getRangeRow(); + if (rangeRows != null) { + for (RangeRow rangeRow : rangeRows) { + Integer qty = rangeRow.getProductQuantity(); + if (qty != null && qty > 0) { + ranges.add(rangeRow.getRange().getLabel() + " : " + qty); + } + } + } + + if (!ranges.isEmpty()) { + tooltipText = StringUtils.join(ranges, "\n"); + } + break; + + case SAV_NB: + ranges = new ArrayList<String>(); + rangeRows = email.getRangeRow(); + if (rangeRows != null) { + for (RangeRow rangeRow : rangeRows) { + Integer qty = rangeRow.getSavQuantity(); + if (qty != null && qty > 0) { + ranges.add(rangeRow.getRange().getLabel() + " : " + qty); + } + } + } + + if (!ranges.isEmpty()) { + tooltipText = StringUtils.join(ranges, "\n"); + } + break; + + case QUOTATION_NB: + ranges = new ArrayList<String>(); + rangeRows = email.getRangeRow(); + if (rangeRows != null) { + for (RangeRow rangeRow : rangeRows) { + Integer qty = rangeRow.getQuotationQuantity(); + if (qty != null && qty > 0) { + ranges.add(rangeRow.getRange().getLabel() + " : " + qty); + } + } + } + + if (!ranges.isEmpty()) { + tooltipText = StringUtils.join(ranges, "\n"); + } + break; + + case REPLIES: + List<Reply> replies = email.getReplies(); + if (CollectionUtils.isNotEmpty(replies)) { + final Decorator<Reply> decorator = decoratorService.getDecoratorByType(Reply.class); + + List<String> replyNames = Lists.transform(replies, new Function<Reply, String>() { + @Override + public String apply(Reply attachment) { + return decorator.toString(attachment); + } + }); + tooltipText = StringUtils.join(replyNames, "\n"); + } + break; + + case ATTACHMENT: + List<Attachment> attachments = email.getAttachment(); + if (CollectionUtils.isNotEmpty(attachments)) { + final Decorator<Attachment> decorator = decoratorService.getDecoratorByType(Attachment.class); + + List<String> attachmentNames = Lists.transform(attachments, new Function<Attachment, String>() { + @Override + public String apply(Attachment attachment) { + String name = decorator.toString(attachment); + if (attachment.getEditedFileName() != null) { + name += " (+ édité)"; + } + return name; + } + }); + tooltipText = StringUtils.join(attachmentNames, "\n"); + } + break; + + case GROUP: + + EmailGroup emailGroup = email.getEmailGroup(); + Collection<Email> emails = new ArrayList<>(); + if (emailGroup != null) { + Collection<Email> groupEmails = emailGroup.getEmail(); + if (CollectionUtils.isNotEmpty(groupEmails)) { + emails.addAll(groupEmails); + } + } + if (emails.isEmpty()) { + emails.add(email); + } + Collection<String> emailTitles = Collections2.transform(emails, new Function<Email, String>() { + @Override + public String apply(Email email) { + String result = email.getObject(); + String ref = email.getReference(); + if (!ref.isEmpty()) { + result = ref + " - " + result; + } + return result; + } + }); + tooltipText = StringUtils.join(emailTitles, "\n"); + break; + + default: + tooltipText = getAttr(field, email); + } + + if (tooltipText == null) { + tooltipText = " "; + } + + return tooltipText; + } +} Added: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/DemandDetailAction.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/DemandDetailAction.java (rev 0) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/DemandDetailAction.java 2014-10-07 16:13:01 UTC (rev 674) @@ -0,0 +1,76 @@ +package com.franciaflex.faxtomail.web.action; + +import com.franciaflex.faxtomail.persistence.entities.Attachment; +import com.franciaflex.faxtomail.persistence.entities.Client; +import com.franciaflex.faxtomail.persistence.entities.Email; +import com.franciaflex.faxtomail.persistence.entities.EmailGroup; +import com.franciaflex.faxtomail.persistence.entities.MailField; +import com.franciaflex.faxtomail.persistence.entities.RangeRow; +import com.franciaflex.faxtomail.persistence.entities.Reply; +import com.franciaflex.faxtomail.services.DecoratorService; +import com.franciaflex.faxtomail.services.service.ConfigurationService; +import com.franciaflex.faxtomail.services.service.EmailService; +import com.franciaflex.faxtomail.web.FaxToMailActionSupport; +import com.google.common.base.Function; +import com.google.common.collect.Collections2; +import com.google.common.collect.Lists; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.struts2.convention.annotation.Action; +import org.apache.struts2.convention.annotation.InterceptorRef; +import org.apache.struts2.convention.annotation.InterceptorRefs; +import org.nuiton.decorator.Decorator; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * @author Kevin Morin (Code Lutin) + * @since 1.1 + */ + +@InterceptorRefs({ + @InterceptorRef("faxToMailInterceptor"), + @InterceptorRef("paramsPrepareParamsStack") +}) +public class DemandDetailAction extends FaxToMailActionSupport { + + private static final Log log = LogFactory.getLog(DemandDetailAction.class); + + protected EmailService emailService; + protected DecoratorService decoratorService; + + protected String id; + protected Email demand; + + public void setEmailService(EmailService emailService) { + this.emailService = emailService; + } + + public void setDecoratorService(DecoratorService decoratorService) { + this.decoratorService = decoratorService; + } + + @Override + @Action("demand-detail") + public String execute() throws Exception { + demand = emailService.getEmailById(id); + return SUCCESS; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Email getDemand() { + return demand; + } +} Modified: trunk/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties =================================================================== --- trunk/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties 2014-10-03 15:29:56 UTC (rev 673) +++ trunk/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties 2014-10-07 16:13:01 UTC (rev 674) @@ -38,5 +38,5 @@ faxtomail.email.content.attachment.htmlfileName=contenu html du mail faxtomail.email.content.attachment.plainfileName=contenu texte du mail faxtomail.email.object.noClient=Client non trouvé -faxtomail.email.projectReference.default= +faxtomail.email.projectReference.default=Votre demande du %s faxtomail.email.subject.re=Re \: %s Modified: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/user-folder-input.jsp =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/user-folder-input.jsp 2014-10-03 15:29:56 UTC (rev 673) +++ trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/user-folder-input.jsp 2014-10-07 16:13:01 UTC (rev 674) @@ -57,7 +57,7 @@ <s:form id="main_form" action="user-folder" method="post" ng-controller="UserFolderController"> <s:hidden name="userFoldersJson" value="{{userFolders}}" /> - Voici la liste des utilisateurs dont vous avez la gestion car vous faites partit d'un groupe + Voici la liste des utilisateurs dont vous avez la gestion car vous faites partie d'un groupe capable de gérer les utilisateurs suivants : <table id='table-snapshot' class="table table-bordered"> Added: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/archive-search-input.jsp =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/archive-search-input.jsp (rev 0) +++ trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/archive-search-input.jsp 2014-10-07 16:13:01 UTC (rev 674) @@ -0,0 +1,70 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<!DOCTYPE html> +<%@taglib uri="/struts-tags" prefix="s" %> + +<html> + <head> + <title>Recherche d'archives</title> + <link rel="stylesheet" type="text/css" href="<s:url value='/nuiton-js/faxtomail-archive-search.css' />" /> + </head> + + <body> + + <div id="main-container" class="container"> + + <h1 class="page-header">Recherche d'archives</h1> + + <s:form id="main_form" action="archive-search" method="post" theme="simple"> + <s:actionmessage/> + <s:actionerror/> + + <label for="commandQuotationNbField" class="control-label">Numéro de commande / devis :</label> + <s:textfield type="text" id="commandQuotationNbField" name="commandQuotationNb" required="true" class="form-control"/> + <label for="companyField" class="control-label">Société :</label> + <s:textfield type="text" id="companyField" name="company" required="true" class="form-control"/> + <s:submit cssClass="btn btn-primary" value="Valider"/> + + </s:form> + + <s:if test="results != null"> + + <div style="overflow-x: scroll; margin-top: 20px"> + + <s:if test="results.isEmpty()"> + <em>Aucun résultat pour cette recherche.</em> + </s:if> + <s:else> + <table class="table table-bordered"> + <thead> + <tr> + <th></th> + <s:iterator value="tableMailFields"> + <th><s:property value="value"/></th> + </s:iterator> + </tr> + </thead> + <tbody> + <s:iterator value="results" var="result"> + <tr> + <td> + <s:url id="detailUrlId" value="demand-detail.action"> + <s:param name="id" value="%{topiaId}" /> + </s:url> + <s:a href="%{detailUrlId}"><i class="fa fa-eye"></i></s:a> + </td> + <s:iterator value="tableMailFields"> + <td class="cut-eol" title="<s:text name="%{getTooltip(key, #result)}"/>"><s:text name="%{getAttr(key, #result)}"/></td> + </s:iterator> + </tr> + </s:iterator> + </tbody> + </table> + </s:else> + + </div> + + </s:if> + + </div> + </body> +</html> \ No newline at end of file Added: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/demand-detail.jsp =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/demand-detail.jsp (rev 0) +++ trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/demand-detail.jsp 2014-10-07 16:13:01 UTC (rev 674) @@ -0,0 +1,19 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<!DOCTYPE html> +<%@taglib uri="/struts-tags" prefix="s" %> + +<html> + <head> + <title>Détail de l'élément</title> + </head> + + <body> + + <div id="main-container" class="container"> + + <h1 class="page-header">Détail de l'élément <s:property value="demand.object"/></h1> + + + + </body> +</html> \ No newline at end of file Modified: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/wro.xml =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/wro.xml 2014-10-03 15:29:56 UTC (rev 673) +++ trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/wro.xml 2014-10-07 16:13:01 UTC (rev 674) @@ -91,4 +91,8 @@ <group name='faxtomail-lock'> <css>/css/faxtomail.css</css> </group> + + <group name='faxtomail-archive-search'> + <css>/css/faxtomail.css</css> + </group> </groups> Modified: trunk/faxtomail-ui-web/src/main/webapp/css/faxtomail.css =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/css/faxtomail.css 2014-10-03 15:29:56 UTC (rev 673) +++ trunk/faxtomail-ui-web/src/main/webapp/css/faxtomail.css 2014-10-07 16:13:01 UTC (rev 674) @@ -92,3 +92,10 @@ /*.chosen-container { width:100%; }*/ + +.cut-eol { + max-width: 150px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} \ No newline at end of file
participants (1)
-
kmorin@users.forge.codelutin.com