Author: fdesbois Date: 2010-05-04 18:24:31 +0200 (Tue, 04 May 2010) New Revision: 2986 Url: http://chorem.org/repositories/revision/pollen/2986 Log: Remove components moved in nuiton-tapestry-extra Added: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollenRequiresAuthentication.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthentication.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthenticationFilter.java Removed: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedBack.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AbstractMappedGridDataSource.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/RequiresAuthentication.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/mixins/Confirm.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/mixins/ZoneUpdater.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AuthenticationFilter.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/FormatBinding.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/FormatBindingFactory.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceAuthenticationImpl.java trunk/pollen-ui/src/main/webapp/js/confirm.js trunk/pollen-ui/src/main/webapp/js/zoneUpdater.js Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/FavoriteParticipantDataSource.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/UserAccountDataSource.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminPolls.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminUsers.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CloseValidation.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CreationValidation.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ModificationValidation.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserProfile.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java trunk/pollen-ui/src/main/webapp/admin/AdminUsers.tml trunk/pollen-ui/src/main/webapp/css/common.css Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -41,6 +41,7 @@ import org.chorem.pollen.ui.data.AddressBar; import org.chorem.pollen.ui.pages.Index; import org.chorem.pollen.ui.services.PollenManager; +import org.nuiton.web.tapestry5.components.FeedBack; import org.nuiton.web.tapestry5.services.ServiceAuthentication; import org.slf4j.Logger; Deleted: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedBack.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedBack.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedBack.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -1,151 +0,0 @@ -/* *##% - * Pollen :: Pollen Web Interface - * Copyright (C) 2009 - 2010 Code Lutin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * ##%*/ - -package org.chorem.pollen.ui.components; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.tapestry5.BindingConstants; -import org.apache.tapestry5.ComponentResources; -import org.apache.tapestry5.MarkupWriter; -import org.apache.tapestry5.annotations.Log; -import org.apache.tapestry5.annotations.Parameter; -import org.apache.tapestry5.ioc.annotations.Inject; - -/** - * Composant qui affiche des messages à l'utilisateur. - * - * Ce composant permet d'afficher des messages avec une apparence différente - * selon leur type (info ou erreur). Lors de l'affichage de la page, les - * messages seront affichés et la collection de messages sera vidée. - * - * Pour personnaliser l'apparence des messages il faut définir les classes - * fb-error et fb-info dans le CSS. - * - * <pre> - * Utilisation : - * <t:feedback t:id="feedback"/> - * @Component(id = "feedback") private FeedBack feedback; - * feedback.addInfo("message d'info"); - * feedback.addError("message d'erreur"); - * </pre> - * - * @author rannou - * @version $Id$ - */ -public class FeedBack { - - @Parameter(defaultPrefix = BindingConstants.LITERAL, value= "true") - private boolean autoClear; - - /** Messages d'erreur */ - private List<String> errorMessages; - - /** Messages d'info */ - private List<String> infoMessages; - - private boolean errors; - - @Inject - private ComponentResources resources; - - private boolean reload; - - public FeedBack() { - errorMessages = new ArrayList<String>(); - infoMessages = new ArrayList<String>(); - } - - void beginRender(MarkupWriter writer) { - - // Rendu des messages d'erreur et vidage de la collection - if (!errorMessages.isEmpty()) { - errors = true; - writer.element("div", "class", "fb-error"); - for (String message : errorMessages) { - writer.write(message); - writer.element("br"); - writer.end(); - } - writer.end(); - } - if (autoClear) { - errorMessages.clear(); - } - - // Rendu des messages d'info et vidage de la collection - if (!infoMessages.isEmpty()) { - writer.element("div", "class", "fb-info"); - for (String message : infoMessages) { - writer.write(message); - writer.element("br"); - writer.end(); - } - writer.end(); - } - infoMessages.clear(); - - resources.renderInformalParameters(writer); - } - - void afterRender(MarkupWriter writer) { - - } - - /** - * Ajout d'un message d'info. - * - * @param message le message - */ - public void addInfo(String message) { - if (!infoMessages.contains(message)) { - infoMessages.add(message); - } - } - - /** - * Ajout d'un message d'erreur. - * - * @param message le message - */ - public void addError(String message) { - if (!errorMessages.contains(message)) { - errorMessages.add(message); - } - } - - public boolean hasErrors() { - return errors; - } - - @Log - public void reload() { - reload = true; - } - - public boolean hasBeeanReloaded() { - return reload; - } - - public void clearErrors() { - errorMessages.clear(); - reload = false; - } -} Deleted: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AbstractMappedGridDataSource.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AbstractMappedGridDataSource.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AbstractMappedGridDataSource.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -1,127 +0,0 @@ - -package org.chorem.pollen.ui.data; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import org.apache.commons.collections.CollectionUtils; -import org.apache.tapestry5.beaneditor.PropertyModel; -import org.apache.tapestry5.grid.ColumnSort; -import org.apache.tapestry5.grid.GridDataSource; -import org.apache.tapestry5.grid.SortConstraint; -import org.apache.tapestry5.ioc.internal.util.TapestryException; -import org.chorem.pollen.PollenException; -import org.nuiton.topia.persistence.TopiaEntity; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * AbstractMappedGridDataSource - * - * TODO : javadoc - * - * Created: 18 janv. 2010 - * - * @param <K> Type of the map key - * @param <E> Type of the map value - * @author fdesbois <fdesbois@codelutin.com> - */ -public abstract class AbstractMappedGridDataSource<K, E> - implements GridDataSource { - - private Logger log = - LoggerFactory.getLogger(AbstractMappedGridDataSource.class); - - private Map<K, E> mapResults; - - private List<E> listResults; - - private int nbRows = -1; - - private int nbRowsPerPage; - - @Override - public abstract Class<?> getRowType(); - - protected abstract int count(); - - protected abstract Map<K, E> execute(int startIndex, int endIndex, - SortConstraint orderBy); - - @Override - public int getAvailableRows() { - if (nbRows < 0) { - nbRows = count(); - if (log.isDebugEnabled()) { - log.debug("Count : " + nbRows); - } - } - return nbRows; - } - - @Override - public void prepare(int startIndex, int endIndex, - List<SortConstraint> sortConstraints) { - if (log.isDebugEnabled()) { - log.debug("Prepare results : " + startIndex + ", " + endIndex); - } - nbRowsPerPage = endIndex - startIndex + 1; - mapResults = execute(startIndex, endIndex, - getSortConstraint(sortConstraints)); - listResults = new ArrayList<E>(mapResults.values()); - } - - @Override - public Object getRowValue(int index) { - index = index % nbRowsPerPage; - if (index >= listResults.size()) { - if (log.isErrorEnabled()) { - log.error("Size error : " + index + " / " + listResults.size()); - } - return null; - } - return CollectionUtils.get(listResults, index); - } - - public E get(K key) { - return mapResults.get(key); - } - - public List<E> values() { - return listResults; - } - - public boolean contains(K key) { - return mapResults.containsKey(key); - } - - protected SortConstraint getSortConstraint( - List<SortConstraint> sortConstraints) { - for (SortConstraint constraint : sortConstraints) { - final ColumnSort sort = constraint.getColumnSort(); - if (sort != ColumnSort.UNSORTED) { - return constraint; - } - } - return null; - } - - protected String resolveOrderBy(SortConstraint orderBy) { - String filterOrder = null; - if (orderBy != null) { - PropertyModel property = orderBy.getPropertyModel(); - filterOrder = property.getPropertyName(); - - ColumnSort sort = orderBy.getColumnSort(); - if (sort.equals(ColumnSort.DESCENDING)) { - filterOrder += " desc"; - } - - if (log.isDebugEnabled()) { - log.debug("Order : " + filterOrder); - } - } - return filterOrder; - } - -} Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/FavoriteParticipantDataSource.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/FavoriteParticipantDataSource.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/FavoriteParticipantDataSource.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -8,6 +8,7 @@ import org.chorem.pollen.entity.FavoriteParticipant; import org.chorem.pollen.entity.PollAccount; import org.chorem.pollen.service.ServiceUser; +import org.nuiton.web.tapestry5.data.AbstractMappedGridDataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Copied: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollenRequiresAuthentication.java (from rev 2983, trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/RequiresAuthentication.java) =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollenRequiresAuthentication.java (rev 0) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollenRequiresAuthentication.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -0,0 +1,25 @@ + +package org.chorem.pollen.ui.data; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * This annotation is used on pages and components that need authentication + * to be rendered. + * + * Created: 3 mai 2010 + * + * @author fdesbois + * $Id$ + */ +@Target( { ElementType.TYPE }) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface PollenRequiresAuthentication { + + boolean adminOnly() default false; +} Property changes on: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollenRequiresAuthentication.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:mergeinfo + Deleted: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/RequiresAuthentication.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/RequiresAuthentication.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/RequiresAuthentication.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -1,25 +0,0 @@ - -package org.chorem.pollen.ui.data; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * This annotation is used on pages and components that need authentication - * to be rendered. - * - * Created: 3 mai 2010 - * - * @author fdesbois - * $Id$ - */ -@Target( { ElementType.TYPE }) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface RequiresAuthentication { - - boolean adminOnly() default false; -} Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/UserAccountDataSource.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/UserAccountDataSource.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/UserAccountDataSource.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -7,6 +7,7 @@ import org.chorem.pollen.bean.Filter; import org.chorem.pollen.entity.UserAccount; import org.chorem.pollen.service.ServiceUser; +import org.nuiton.web.tapestry5.data.AbstractMappedGridDataSource; /** * UserAccountDataSource Deleted: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/mixins/Confirm.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/mixins/Confirm.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/mixins/Confirm.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -1,47 +0,0 @@ -package org.chorem.pollen.ui.mixins; - -import org.apache.tapestry5.BindingConstants; -import org.apache.tapestry5.ClientElement; -import org.apache.tapestry5.RenderSupport; -import org.apache.tapestry5.annotations.AfterRender; -import org.apache.tapestry5.annotations.IncludeJavaScriptLibrary; -import org.apache.tapestry5.annotations.InjectContainer; -import org.apache.tapestry5.annotations.Parameter; -import org.apache.tapestry5.ioc.annotations.Inject; - -/** - * Confirm.java - * - * A simple mixin for attaching a javascript confirmation box to the onclick - * event of any component that implements ClientElement. - * - * @author fdesbois - * @version $Revision$ - * - * Last update: $Date$ - * by : $Author: fdesbois $ - */ -@IncludeJavaScriptLibrary("context:js/confirm.js") -public class Confirm { - - @Parameter(value = "Are you sure?", defaultPrefix = BindingConstants.MESSAGE) - private String message; - - @Inject - private RenderSupport renderSupport; - - @InjectContainer - private ClientElement element; - - @Parameter - private boolean wDisabled; - - @AfterRender - public void afterRender() { - if (!wDisabled) { - renderSupport.addScript(String.format("new Confirm('%s', '%s');", - element.getClientId(), message)); - } - } - -} Deleted: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/mixins/ZoneUpdater.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/mixins/ZoneUpdater.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/mixins/ZoneUpdater.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -1,101 +0,0 @@ -/** - * *##% - * Wao :: Web Interface - * Copyright (C) 2009 - 2010 Ifremer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * ##%* - */ -package org.chorem.pollen.ui.mixins; - -import org.apache.commons.lang.ArrayUtils; -import org.apache.tapestry5.BindingConstants; -import org.apache.tapestry5.ClientElement; -import org.apache.tapestry5.ComponentResources; -import org.apache.tapestry5.Link; -import org.apache.tapestry5.RenderSupport; -import org.apache.tapestry5.annotations.Environmental; -import org.apache.tapestry5.annotations.IncludeJavaScriptLibrary; -import org.apache.tapestry5.annotations.InjectContainer; -import org.apache.tapestry5.annotations.Parameter; -import org.apache.tapestry5.ioc.annotations.Inject; - -/** - * ZoneUpdater.java - * - * From http://tinybits.blogspot.com/2009/05/update-zone-on-any-client-side-event.ht... by ingesol - * - * @author ingesol - * @version $Revision$ - * - * Last update: $Date$ - * by : $Author: fdesbois $ - */ -@IncludeJavaScriptLibrary("context:js/zoneUpdater.js") -public class ZoneUpdater { - - public static final String PLACEHOLDER = "XXX"; - - @Inject - private ComponentResources resources; - - @Environmental - private RenderSupport renderSupport; - - @Parameter(defaultPrefix = BindingConstants.LITERAL) - private String clientEvent; - - @Parameter(defaultPrefix = BindingConstants.LITERAL, required = true) - private String event; - - @InjectContainer - private ClientElement element; - - @Parameter - private Object[] context; - - @Parameter(defaultPrefix = BindingConstants.LITERAL) - // To enable popups to fire events on this document, enter "document" here. - private String listeningElement; - - @Parameter(defaultPrefix = BindingConstants.LITERAL, required = true) - private String zone; - - protected Link createLink(Object[] context) { - - if (context == null) { - context = new Object[]{PLACEHOLDER}; - } else { - context = ArrayUtils.add(context, PLACEHOLDER); // To be replaced by javascript - } - - return resources.createEventLink(event, context); - - } - - void afterRender() { - String link = createLink(context).toAbsoluteURI(); - String elementId = element.getClientId(); - if (clientEvent == null) { - clientEvent = event; - } - - if (listeningElement == null) { - listeningElement = "$('" + elementId + "')"; - } - renderSupport.addScript("new ZoneUpdater('%s', %s, '%s', '%s', '%s', '%s')", elementId, listeningElement, clientEvent, link, zone, PLACEHOLDER); - - } -} Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminPolls.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminPolls.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminPolls.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -28,7 +28,7 @@ import org.chorem.pollen.service.ServicePoll; import org.chorem.pollen.ui.base.AbstractPollsPage; import org.chorem.pollen.ui.components.Border; -import org.chorem.pollen.ui.components.FeedBack; +import org.nuiton.web.tapestry5.components.FeedBack; /** * Classe de la page d'administration des sondages. Si l'utilisateur n'est pas Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminUsers.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminUsers.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminUsers.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -39,7 +39,7 @@ import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.data.AddressBar; -import org.chorem.pollen.ui.data.RequiresAuthentication; +import org.chorem.pollen.ui.data.PollenRequiresAuthentication; import org.chorem.pollen.ui.data.UserAccountDataSource; import org.chorem.pollen.ui.services.PollenManager; import org.slf4j.Logger; @@ -50,7 +50,7 @@ * @author fdesbois <fdesbois@codelutin.com> * @version $Id$ */ -@RequiresAuthentication(adminOnly = true) +@PollenRequiresAuthentication(adminOnly = true) @IncludeStylesheet("context:css/usersAdmin.css") public class AdminUsers extends AbstractPollenPage { Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CloseValidation.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CloseValidation.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CloseValidation.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -31,8 +31,8 @@ import org.chorem.pollen.service.ServiceUser; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; -import org.chorem.pollen.ui.components.FeedBack; import org.chorem.pollen.ui.data.AddressBarItem; +import org.nuiton.web.tapestry5.components.FeedBack; /** * Classe de la page de confirmation de la cloture d'un sondage. Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CreationValidation.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CreationValidation.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CreationValidation.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -29,8 +29,8 @@ import org.chorem.pollen.entity.PollAccount; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; -import org.chorem.pollen.ui.components.FeedBack; import org.chorem.pollen.ui.data.AddressBarItem; +import org.nuiton.web.tapestry5.components.FeedBack; /** * Classe de la page de confirmation de la création d'un sondage. Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ModificationValidation.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ModificationValidation.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ModificationValidation.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -29,8 +29,8 @@ import org.chorem.pollen.entity.PollAccount; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; -import org.chorem.pollen.ui.components.FeedBack; import org.chorem.pollen.ui.data.AddressBarItem; +import org.nuiton.web.tapestry5.components.FeedBack; /** * Classe de la page de confirmation de la modification d'un sondage. Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -48,8 +48,8 @@ import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.components.Chart; -import org.chorem.pollen.ui.components.FeedBack; import org.chorem.pollen.ui.data.AddressBarItem; +import org.nuiton.web.tapestry5.components.FeedBack; import org.slf4j.Logger; /** Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -52,13 +52,13 @@ import org.chorem.pollen.service.ServiceUser; import org.chorem.pollen.ui.base.AbstractUploadPage; import org.chorem.pollen.ui.components.Border; -import org.chorem.pollen.ui.components.FeedBack; import org.chorem.pollen.ui.components.Pager; import org.chorem.pollen.ui.data.AddressBar; import org.chorem.pollen.ui.data.ChoiceField; import org.chorem.pollen.ui.data.PollUri; import org.chorem.pollen.ui.services.PollenManager; import org.chorem.pollen.ui.services.ServiceImage; +import org.nuiton.web.tapestry5.components.FeedBack; import org.slf4j.Logger; /** Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -29,7 +29,7 @@ import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.data.AddressBar; -import org.chorem.pollen.ui.data.RequiresAuthentication; +import org.chorem.pollen.ui.data.PollenRequiresAuthentication; /** * Classe de la page d'affichage des listes de votants favorites de @@ -40,7 +40,7 @@ * @author fdesbois <fdesbois@codelutin.com> * @version $Id$ */ -@RequiresAuthentication +@PollenRequiresAuthentication @IncludeStylesheet("context:css/lists.css") public class UserLists extends AbstractPollenPage { Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserProfile.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserProfile.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserProfile.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -38,7 +38,7 @@ import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.data.AddressBar; -import org.chorem.pollen.ui.data.RequiresAuthentication; +import org.chorem.pollen.ui.data.PollenRequiresAuthentication; import org.chorem.pollen.ui.services.PollenManager; import org.slf4j.Logger; @@ -49,7 +49,7 @@ * @author rannou * @version $Id$ */ -@RequiresAuthentication +@PollenRequiresAuthentication @IncludeStylesheet("context:css/account.css") public class UserProfile extends AbstractPollenPage { Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -28,9 +28,8 @@ import org.apache.tapestry5.services.ApplicationStateContribution; import org.apache.tapestry5.services.ApplicationStateCreator; import org.apache.tapestry5.services.ApplicationStateManager; -import org.apache.tapestry5.services.BindingFactory; -import org.apache.tapestry5.services.BindingSource; import org.apache.tapestry5.services.ComponentRequestFilter; +import org.apache.tapestry5.services.LibraryMapping; import org.apache.tapestry5.upload.services.UploadSymbols; import org.chorem.pollen.PollenContextImpl; import org.chorem.pollen.entity.UserAccount; @@ -94,7 +93,7 @@ public ServiceAuthentication<UserAccount> buildServiceAuthentication( ApplicationStateManager stateManager) { ServiceAuthentication<UserAccount> instance = - new ServiceAuthenticationImpl(stateManager); + new PollenAuthentication(stateManager); return instance; } @@ -213,6 +212,8 @@ // .getComponentResources().getMessages(); // return new BackgroundWorkerImpl(messages, servicePoll, context); // } + + /** * Used to instanciate SessionState UserAccount when session expires. * @@ -252,12 +253,6 @@ public static void contributeComponentRequestHandler( OrderedConfiguration<ComponentRequestFilter> configuration) { configuration.addInstance("RequiresAuthentication", - AuthenticationFilter.class); + PollenAuthenticationFilter.class); } - - public static void contributeBindingSource( - MappedConfiguration<String, BindingFactory> configuration, - BindingSource bindingSource) { - configuration.add("format", new FormatBindingFactory(bindingSource)); - } } Deleted: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AuthenticationFilter.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AuthenticationFilter.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AuthenticationFilter.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -1,43 +0,0 @@ - -package org.chorem.pollen.ui.services; - -import org.apache.tapestry5.services.ComponentSource; -import org.apache.tapestry5.services.PageRenderLinkSource; -import org.apache.tapestry5.services.Response; -import org.chorem.pollen.entity.UserAccount; -import org.chorem.pollen.ui.data.RequiresAuthentication; -import org.chorem.pollen.ui.pages.Connexion; -import org.chorem.pollen.ui.pages.ErrorPage; -import org.nuiton.web.tapestry5.services.AbstractAuthenticationFilter; -import org.nuiton.web.tapestry5.services.ServiceAuthentication; - -/** - * AuthenticationFilter - * - * Created: 4 mai 2010 - * - * @author fdesbois - * $Id$ - */ -public class AuthenticationFilter extends - AbstractAuthenticationFilter<UserAccount, RequiresAuthentication>{ - - public AuthenticationFilter(PageRenderLinkSource renderLinkSource, - ComponentSource componentSource, Response response, - ServiceAuthentication<UserAccount> serviceAuthentication) { - super(renderLinkSource, componentSource, response, - serviceAuthentication, RequiresAuthentication.class); - } - - @Override - protected Class<?> getRedirectPage(AuthenticationRedirect redirectType) { - switch (redirectType) { - case CONNEXION: - return Connexion.class; - case NOT_ALLOWED: - return ErrorPage.class; - } - return null; - } - -} Deleted: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/FormatBinding.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/FormatBinding.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/FormatBinding.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -1,72 +0,0 @@ -package org.chorem.pollen.ui.services; - -import java.util.ArrayList; -import java.util.List; -import org.apache.tapestry5.Binding; -import org.apache.tapestry5.internal.bindings.AbstractBinding; -import org.apache.tapestry5.ioc.Location; -import org.apache.tapestry5.ioc.Messages; - -/** - * From <http://wiki.apache.org/tapestry/Tapestry5HowToAddMessageFormatBindingPrefix> - * - * Created: 27 avr. 2010 - * - * @author fdesbois - */ -public class FormatBinding extends AbstractBinding { - - private final Messages messages; - private final boolean invariant; - private final List<Binding> keyBindings; - private final List<Binding> valueBindings; - - public FormatBinding(Location location, Messages messages, boolean invariant, - ArrayList<Binding> keyBindings, List<Binding> valueBindings) { - super(location); - - this.messages = messages; - this.invariant = invariant; - this.keyBindings = keyBindings; - this.valueBindings = valueBindings; - } - - public FormatBinding(Location location, Messages messages, boolean invariant, ArrayList<Binding> keyBindings) { - super(location); - - this.messages = messages; - this.invariant = invariant; - this.keyBindings = keyBindings; - this.valueBindings = null; - } - - @Override - public Object get() { - String key = ""; - for (Binding keyBinding : keyBindings) { - key += keyBinding.get(); - } - - if (null == valueBindings) { - return messages.get(key); - } - - List<Object> values = new ArrayList<Object>(valueBindings.size()); - for (Binding valueBinding : valueBindings) { - values.add(valueBinding.get()); - } - - return messages.format(key, values.toArray()); - } - - @Override - public boolean isInvariant() { - return this.invariant; - } - - @SuppressWarnings("unchecked") - @Override - public Class<?> getBindingType() { - return String.class; - } -} Deleted: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/FormatBindingFactory.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/FormatBindingFactory.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/FormatBindingFactory.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -1,79 +0,0 @@ -package org.chorem.pollen.ui.services; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import org.apache.tapestry5.Binding; -import org.apache.tapestry5.BindingConstants; -import org.apache.tapestry5.ComponentResources; -import org.apache.tapestry5.ioc.Location; -import org.apache.tapestry5.services.BindingFactory; -import org.apache.tapestry5.services.BindingSource; - -/** - * From <http://wiki.apache.org/tapestry/Tapestry5HowToAddMessageFormatBindingPrefix> - * - * Created: 27 avr. 2010 - * - * @author fdesbois - */ -public class FormatBindingFactory - implements BindingFactory { - - private static final String SEPARATOR = "="; - private static final String DELIMITER = ","; - private static final String KEY_PREFIX = BindingConstants.LITERAL; - private static final String VALUE_PREFIX = BindingConstants.PROP; - private final BindingSource bindingSource; - - public FormatBindingFactory(BindingSource bindingSource) { - this.bindingSource = bindingSource; - } - - @Override - public Binding newBinding(String description, ComponentResources container, ComponentResources component, - String expression, Location location) { - int separatorIndex = expression.indexOf(SEPARATOR); - - if (-1 == separatorIndex) { - List<String> keys = Arrays.asList(expression.split(DELIMITER)); - - ArrayList<Binding> keyBindings = createBindings(description, container, component, KEY_PREFIX, keys, location); - - boolean invariant = isInvariant(keyBindings); - return new FormatBinding(location, container.getMessages(), invariant, keyBindings); - } - - List<String> keys = Arrays.asList(expression.substring(0, separatorIndex).split(DELIMITER)); - ArrayList<Binding> keyBindings = createBindings(description, container, component, KEY_PREFIX, keys, location); - - List<String> values = Arrays.asList(expression.substring(separatorIndex + 1).split(DELIMITER)); - ArrayList<Binding> valueBindings = createBindings(description, container, component, VALUE_PREFIX, values, - location); - - boolean invariant = isInvariant(keyBindings) && isInvariant(valueBindings); - return new FormatBinding(location, container.getMessages(), invariant, keyBindings, valueBindings); - } - - private ArrayList<Binding> createBindings(String description, ComponentResources container, - ComponentResources component, String defaultPrefix, - List<String> expressions, Location location) { - ArrayList<Binding> bindings = new ArrayList<Binding>(expressions.size()); - - for (String expression : expressions) { - bindings.add(bindingSource.newBinding(description, container, component, defaultPrefix, expression, location)); - } - - return bindings; - } - - private boolean isInvariant(ArrayList<Binding> bindings) { - for (Binding binding : bindings) { - if (!binding.isInvariant()) { - return false; - } - } - - return true; - } -} Copied: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthentication.java (from rev 2985, trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceAuthenticationImpl.java) =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthentication.java (rev 0) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthentication.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -0,0 +1,38 @@ + +package org.chorem.pollen.ui.services; + +import org.apache.tapestry5.services.ApplicationStateManager; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.UserAccountImpl; +import org.chorem.pollen.ui.data.PollenRequiresAuthentication; +import org.nuiton.web.tapestry5.services.ServiceAuthenticationImpl; + +/** + * ServiceAuthenticationImpl + * + * Created: 4 mai 2010 + * + * @author fdesbois + * $Id$ + */ +public class PollenAuthentication extends + ServiceAuthenticationImpl<UserAccount, PollenRequiresAuthentication> { + + public PollenAuthentication(ApplicationStateManager stateManager) { + super(stateManager, UserAccount.class, + PollenRequiresAuthentication.class); + } + + @Override + protected boolean checkAuthorizations(UserAccount user, + PollenRequiresAuthentication annotation) { + // No problem for an admin or if the annotation has no limitation + return user.getAdmin() || !annotation.adminOnly(); + } + + @Override + public UserAccount getNewUserInstance() { + return new UserAccountImpl(); + } + +} Property changes on: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthentication.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:mergeinfo + Copied: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthenticationFilter.java (from rev 2985, trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AuthenticationFilter.java) =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthenticationFilter.java (rev 0) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthenticationFilter.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -0,0 +1,43 @@ + +package org.chorem.pollen.ui.services; + +import org.apache.tapestry5.services.ComponentSource; +import org.apache.tapestry5.services.PageRenderLinkSource; +import org.apache.tapestry5.services.Response; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.ui.data.PollenRequiresAuthentication; +import org.chorem.pollen.ui.pages.Connexion; +import org.chorem.pollen.ui.pages.ErrorPage; +import org.nuiton.web.tapestry5.services.AbstractAuthenticationFilter; +import org.nuiton.web.tapestry5.services.ServiceAuthentication; + +/** + * AuthenticationFilter + * + * Created: 4 mai 2010 + * + * @author fdesbois + * $Id$ + */ +public class PollenAuthenticationFilter extends + AbstractAuthenticationFilter<UserAccount, PollenRequiresAuthentication>{ + + public PollenAuthenticationFilter(PageRenderLinkSource renderLinkSource, + ComponentSource componentSource, Response response, + ServiceAuthentication<UserAccount> serviceAuthentication) { + super(renderLinkSource, componentSource, response, + serviceAuthentication, PollenRequiresAuthentication.class); + } + + @Override + protected Class<?> getRedirectPage(AuthenticationRedirect redirectType) { + switch (redirectType) { + case NOT_CONNECTED: + return Connexion.class; + case NOT_ALLOWED: + return ErrorPage.class; + } + return null; + } + +} Property changes on: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthenticationFilter.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:mergeinfo + Deleted: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceAuthenticationImpl.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceAuthenticationImpl.java 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceAuthenticationImpl.java 2010-05-04 16:24:31 UTC (rev 2986) @@ -1,37 +0,0 @@ - -package org.chorem.pollen.ui.services; - -import org.apache.tapestry5.services.ApplicationStateManager; -import org.chorem.pollen.entity.UserAccount; -import org.chorem.pollen.entity.UserAccountImpl; -import org.chorem.pollen.ui.data.RequiresAuthentication; -import org.nuiton.web.tapestry5.services.ServiceAuthenticationAbstract; - -/** - * ServiceAuthenticationImpl - * - * Created: 4 mai 2010 - * - * @author fdesbois - * $Id$ - */ -public class ServiceAuthenticationImpl extends - ServiceAuthenticationAbstract<UserAccount, RequiresAuthentication> { - - public ServiceAuthenticationImpl(ApplicationStateManager stateManager) { - super(stateManager, UserAccount.class, RequiresAuthentication.class); - } - - @Override - protected boolean checkAuthorizations(UserAccount user, - RequiresAuthentication annotation) { - // No problem for an admin or if the annotation has no limitation - return user.getAdmin() || !annotation.adminOnly(); - } - - @Override - public UserAccount getNewUserInstance() { - return new UserAccountImpl(); - } - -} Modified: trunk/pollen-ui/src/main/webapp/admin/AdminUsers.tml =================================================================== --- trunk/pollen-ui/src/main/webapp/admin/AdminUsers.tml 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/webapp/admin/AdminUsers.tml 2010-05-04 16:24:31 UTC (rev 2986) @@ -53,7 +53,7 @@ <img src="${asset:context:img/editSmall.png}" alt="Edit" title="${message:pollen.ui.user.update.edit}" /> </a> <a t:type="actionlink" t:id="deleteAccount" t:context="account.login" - t:mixins="confirm" t:message="pollen.ui.user.delete.confirmMessage"> + t:mixins="nuiton/confirm" t:message="pollen.ui.user.delete.confirmMessage"> <img src="${asset:context:img/delete.png}" alt="Delete" title="${message:pollen.ui.user.delete}"/> </a> </p:else> Modified: trunk/pollen-ui/src/main/webapp/css/common.css =================================================================== --- trunk/pollen-ui/src/main/webapp/css/common.css 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/webapp/css/common.css 2010-05-04 16:24:31 UTC (rev 2986) @@ -34,6 +34,7 @@ display: block; } +/** feedback.css not worked yet in nuiton-tapestry-extra **/ .fb-error { width: 400px; margin: auto; Deleted: trunk/pollen-ui/src/main/webapp/js/confirm.js =================================================================== --- trunk/pollen-ui/src/main/webapp/js/confirm.js 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/webapp/js/confirm.js 2010-05-04 16:24:31 UTC (rev 2986) @@ -1,20 +0,0 @@ -/** - * Dialogue de confirmation - */ -var Confirm = Class.create({ - /** - * element : Element DOM depuis lequel le dialogue de confirmation va s'ouvrir - * message : Message à afficher dans la boîte de dialogue - */ - initialize: function(element, message) { - this.message = message; - Event.observe($(element), 'click', this.doConfirm.bindAsEventListener(this)); - }, - doConfirm: function(e) { - //Tapestry.debug('click ' + element); - if(! confirm(this.message)) { - //Tapestry.debug('STOP ' + e); - Event.stop(e); - } - } -}); \ No newline at end of file Deleted: trunk/pollen-ui/src/main/webapp/js/zoneUpdater.js =================================================================== --- trunk/pollen-ui/src/main/webapp/js/zoneUpdater.js 2010-05-04 14:07:47 UTC (rev 2985) +++ trunk/pollen-ui/src/main/webapp/js/zoneUpdater.js 2010-05-04 16:24:31 UTC (rev 2986) @@ -1,103 +0,0 @@ -var ZoneUpdater = Class.create(); - -ZoneUpdater.prototype = { - - initialize: function(zoneElementId, listeningElement, event, link, zone, placeholder) { - - this.zoneElement = $(zoneElementId); - - this.event = event; - - this.link = link; - - this.placeholder = placeholder; - - $T(this.zoneElement).zoneId = zone; - - listeningElement.observe(this.event, this.updateZone.bindAsEventListener(this)); - - }, - - updateZone: function(event) { - - var zoneObject = Tapestry.findZoneManager(this.zoneElement); - - if ( !zoneObject ) return; - - var param; - - if (this.zoneElement.value) { - - param = this.zoneElement.value; - - } - - if (!param) param = ' '; - - param = this.encodeForUrl(param); - - var updatedLink = this.link.gsub(this.placeholder, param); - - zoneObject.updateFromURL(updatedLink); - - }, - - encodeForUrl: function(string) { - - /** - - * See equanda.js for updated version of this - - */ - - string = string.replace(/\r\n/g,"\n"); - - var res = ""; - - for (var n = 0; n < string.length; n++) - - { - - var c = string.charCodeAt( n ); - - if ( '$' == string.charAt( n ) ) - - { - - res += '$$'; - - } - - else if ( this.inRange( c, "AZ" ) || this.inRange( c, "az" ) || this.inRange( c, "09" ) || this.inRange( c, ".." ) ) - - { - - res += string.charAt( n ) - - } - - else - - { - - var tmp = c.toString(16); - - while ( tmp.length < 4 ) tmp = "0" + tmp; - - res += '$' + tmp; - - } - - } - - return res; - - }, - - inRange: function(code, range) { - - return code >= range.charCodeAt( 0 ) && code <= range.charCodeAt( 1 ); - - } - -} \ No newline at end of file