Hello Sebastian, AFAIK in case you need to "attach an ajax validation behavior to all form component's keydown" to all Admin form you can put your code into AdminBaseForm constructor :)
On Wed, Sep 26, 2012 at 1:34 AM, <[email protected]> wrote: > Author: sebawagner > Date: Tue Sep 25 18:34:13 2012 > New Revision: 1390044 > > URL: http://svn.apache.org/viewvc?rev=1390044&view=rev > Log: > OPENMEETINGS-428 add some runtime validation and modify config admin for > user login > > Modified: > > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Configuration.java > > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/config/TestConfig.java > > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java > > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigForm.java > > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupForm.java > > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangForm.java > > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/ldaps/LdapForm.java > > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomForm.java > > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java > > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java > > Modified: > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Configuration.java > URL: > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Configuration.java?rev=1390044&r1=1390043&r2=1390044&view=diff > > ============================================================================== > --- > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Configuration.java > (original) > +++ > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Configuration.java > Tue Sep 25 18:34:13 2012 > @@ -23,14 +23,16 @@ import java.util.Date; > > import javax.persistence.Column; > import javax.persistence.Entity; > +import javax.persistence.FetchType; > import javax.persistence.GeneratedValue; > import javax.persistence.GenerationType; > import javax.persistence.Id; > +import javax.persistence.JoinColumn; > import javax.persistence.Lob; > +import javax.persistence.ManyToOne; > import javax.persistence.NamedQueries; > import javax.persistence.NamedQuery; > import javax.persistence.Table; > -import javax.persistence.Transient; > > import org.apache.openmeetings.persistence.beans.OmEntity; > import org.apache.openmeetings.persistence.beans.user.Users; > @@ -39,10 +41,11 @@ import org.simpleframework.xml.Root; > > @Entity > @NamedQueries({ > - @NamedQuery(name = "getConfigurationByKey", query = "SELECT c FROM > Configuration c WHERE c.conf_key LIKE :conf_key and c.deleted = false") > - , @NamedQuery(name = "getConfigurationsByKeys", query = "SELECT c > FROM Configuration c WHERE c.conf_key IN :conf_keys and c.deleted = false") > - , @NamedQuery(name="getNondeletedConfiguration", query="SELECT u > FROM Configuration u WHERE u.deleted = false") > - , @NamedQuery(name = "getConfigurationById", query = "SELECT c > FROM Configuration c WHERE c.configuration_id = :configuration_id and > c.deleted = false") > + @NamedQuery(name = "getConfigurationByKey", query = > "SELECT c FROM Configuration c WHERE c.conf_key LIKE :conf_key and > c.deleted = false"), > + @NamedQuery(name = "getConfigurationsByKeys", query = > "SELECT c FROM Configuration c WHERE c.conf_key IN :conf_keys and c.deleted > = false"), > + @NamedQuery(name = "getNondeletedConfiguration", query = > "SELECT c FROM Configuration c " > + + "LEFT JOIN c.users users WHERE c.deleted > = false"), > + @NamedQuery(name = "getConfigurationById", query = "SELECT > c FROM Configuration c WHERE c.configuration_id = :configuration_id and > c.deleted = false") > }) > @Table(name = "configuration") > @Root(name="config") > @@ -83,7 +86,9 @@ public class Configuration implements Se > @Element(data=true, required=false) > private Long user_id; > > - @Transient > + @ManyToOne(fetch = FetchType.LAZY) > + @JoinColumn(name = "user_id") > + @Element(name = "user_id", data = true, required = false) > private Users users; > > public String getComment() { > > Modified: > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/config/TestConfig.java > URL: > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/config/TestConfig.java?rev=1390044&r1=1390043&r2=1390044&view=diff > > ============================================================================== > --- > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/config/TestConfig.java > (original) > +++ > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/config/TestConfig.java > Tue Sep 25 18:34:13 2012 > @@ -20,7 +20,10 @@ package org.apache.openmeetings.test.con > > import static junit.framework.Assert.assertEquals; > > +import java.util.List; > + > import org.apache.openmeetings.data.basic.Configurationmanagement; > +import org.apache.openmeetings.persistence.beans.basic.Configuration; > import org.apache.openmeetings.test.AbstractOpenmeetingsSpringTest; > import > org.apache.openmeetings.test.calendar.TestAppointmentAddAppointment; > import org.junit.Test; > @@ -41,11 +44,35 @@ public class TestConfig extends Abstract > public void getConfigKey() { > > try { > - String use_old_style_ffmpeg_map = > configurationmanagement.getConfValue("use.old.style.ffmpeg.map.option", > String.class, "0"); > + > + System.err.println("THIS"); > + > + Configuration smtp_server = > configurationmanagement.getConfKey(3L, > + "smtp_server"); > > - log.debug("use_old_style_ffmpeg_map > "+use_old_style_ffmpeg_map); > + System.err.println("smtp_server " + > smtp_server.getUser_id()); > + System.err.println("smtp_server " + > smtp_server.getUsers()); > > - assertEquals(use_old_style_ffmpeg_map,"1"); > + assertEquals(null, smtp_server.getUsers()); > + > + } catch (Exception err) { > + log.error("[startConversion]", err); > + } > + > + } > + > + @Test > + public void getConfigs() { > + > + try { > + List<Configuration> list = > configurationmanagement.get(0, 1); > + > + for (Configuration conf : list) { > + System.err.println("conf.getUser_id() " + > conf.getUser_id()); > + System.err.println("conf.getUsers() " + > conf.getUsers()); > + } > + > + assertEquals(list.size(), 1); > > } catch (Exception err) { > log.error("[startConversion]", err); > > Modified: > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java > URL: > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java?rev=1390044&r1=1390043&r2=1390044&view=diff > > ============================================================================== > --- > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java > (original) > +++ > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java > Tue Sep 25 18:34:13 2012 > @@ -81,6 +81,8 @@ public class AdminBaseForm<T> extends Fo > > }; > add(basePanel); > + > + > } > > public void hideNewRecord() { > > Modified: > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigForm.java > URL: > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigForm.java?rev=1390044&r1=1390043&r2=1390044&view=diff > > ============================================================================== > --- > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigForm.java > (original) > +++ > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigForm.java > Tue Sep 25 18:34:13 2012 > @@ -24,13 +24,15 @@ import org.apache.openmeetings.web.app.A > import org.apache.openmeetings.web.app.WebSession; > import org.apache.openmeetings.web.components.admin.AdminBaseForm; > import org.apache.wicket.ajax.AjaxRequestTarget; > +import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior; > import org.apache.wicket.datetime.markup.html.basic.DateLabel; > import org.apache.wicket.markup.html.WebMarkupContainer; > import org.apache.wicket.markup.html.basic.Label; > import org.apache.wicket.markup.html.form.Form; > +import org.apache.wicket.markup.html.form.RequiredTextField; > import org.apache.wicket.markup.html.form.TextArea; > -import org.apache.wicket.markup.html.form.TextField; > import org.apache.wicket.model.CompoundPropertyModel; > +import org.apache.wicket.util.time.Duration; > > /** > * Handle {@link Configuration} items as list and form > @@ -47,12 +49,17 @@ public class ConfigForm extends AdminBas > super(id, new > CompoundPropertyModel<Configuration>(configuration)); > setOutputMarkupId(true); > this.listContainer = listContainer; > - add(new TextField<String>("conf_key")); > - add(new TextField<String>("conf_value")); > - add(DateLabel.forDatePattern("updatetime", "dd.MM.yyyy > hh:mm")); > + add(new RequiredTextField<String>("conf_key")); > + add(new RequiredTextField<String>("conf_value")); > + add(DateLabel.forDatePattern("updatetime", "dd.MM.yyyy > HH:mm:ss")); > add(new Label("users.login")); > add(new TextArea<String>("comment")); > > + // attach an ajax validation behavior to all form > component's keydown > + // event and throttle it down to once per second > + AjaxFormValidatingBehavior.addToAllFormComponents(this, > "keydown", > + Duration.ONE_SECOND); > + > } > > void updateView(AjaxRequestTarget target) { > > Modified: > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupForm.java > URL: > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupForm.java?rev=1390044&r1=1390043&r2=1390044&view=diff > > ============================================================================== > --- > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupForm.java > (original) > +++ > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupForm.java > Tue Sep 25 18:34:13 2012 > @@ -24,10 +24,12 @@ import org.apache.openmeetings.web.app.A > import org.apache.openmeetings.web.app.WebSession; > import org.apache.openmeetings.web.components.admin.AdminBaseForm; > import org.apache.wicket.ajax.AjaxRequestTarget; > +import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior; > import org.apache.wicket.markup.html.WebMarkupContainer; > import org.apache.wicket.markup.html.form.Form; > import org.apache.wicket.markup.html.form.RequiredTextField; > import org.apache.wicket.model.CompoundPropertyModel; > +import org.apache.wicket.util.time.Duration; > > public class GroupForm extends AdminBaseForm<Organisation> { > private static final long serialVersionUID = -1720731686053912700L; > @@ -42,6 +44,11 @@ public class GroupForm extends AdminBase > add(new RequiredTextField<String>("name")); > usersPanel = new GroupUsersPanel("users", getOrgId()); > add(usersPanel); > + > + // attach an ajax validation behavior to all form > component's keydown > + // event and throttle it down to once per second > + AjaxFormValidatingBehavior.addToAllFormComponents(this, > "keydown", > + Duration.ONE_SECOND); > } > > void updateView(AjaxRequestTarget target) { > > Modified: > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangForm.java > URL: > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangForm.java?rev=1390044&r1=1390043&r2=1390044&view=diff > > ============================================================================== > --- > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangForm.java > (original) > +++ > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangForm.java > Tue Sep 25 18:34:13 2012 > @@ -29,12 +29,14 @@ import org.apache.openmeetings.web.compo > import org.apache.wicket.ajax.AjaxRequestTarget; > import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; > import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; > +import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior; > import org.apache.wicket.ajax.markup.html.form.AjaxButton; > import org.apache.wicket.markup.html.WebMarkupContainer; > import org.apache.wicket.markup.html.form.DropDownChoice; > import org.apache.wicket.markup.html.form.Form; > import org.apache.wicket.markup.html.form.IChoiceRenderer; > import org.apache.wicket.model.CompoundPropertyModel; > +import org.apache.wicket.util.time.Duration; > > /** > * Modify the language selection, add/delete {@link FieldLanguage} > @@ -100,6 +102,11 @@ public class LangForm extends AdminBaseF > addSaveAndDeleteButtons(); > > // addNewLanguagePopUp(langPanel); > + > + // attach an ajax validation behavior to all form > component's keydown > + // event and throttle it down to once per second > + AjaxFormValidatingBehavior.addToAllFormComponents(this, > "keydown", > + Duration.ONE_SECOND); > } > > /** > > Modified: > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/ldaps/LdapForm.java > URL: > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/ldaps/LdapForm.java?rev=1390044&r1=1390043&r2=1390044&view=diff > > ============================================================================== > --- > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/ldaps/LdapForm.java > (original) > +++ > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/ldaps/LdapForm.java > Tue Sep 25 18:34:13 2012 > @@ -20,7 +20,9 @@ package org.apache.openmeetings.web.comp > > import org.apache.openmeetings.persistence.beans.basic.LdapConfig; > import org.apache.openmeetings.web.components.admin.AdminBaseForm; > +import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior; > import org.apache.wicket.model.CompoundPropertyModel; > +import org.apache.wicket.util.time.Duration; > > public class LdapForm extends AdminBaseForm<LdapConfig> { > > @@ -30,5 +32,9 @@ public class LdapForm extends AdminBaseF > super(id, new > CompoundPropertyModel<LdapConfig>(ldapConfig)); > setOutputMarkupId(true); > > + // attach an ajax validation behavior to all form > component's keydown > + // event and throttle it down to once per second > + AjaxFormValidatingBehavior.addToAllFormComponents(this, > "keydown", > + Duration.ONE_SECOND); > } > } > > Modified: > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomForm.java > URL: > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomForm.java?rev=1390044&r1=1390043&r2=1390044&view=diff > > ============================================================================== > --- > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomForm.java > (original) > +++ > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomForm.java > Tue Sep 25 18:34:13 2012 > @@ -20,7 +20,9 @@ package org.apache.openmeetings.web.comp > > import org.apache.openmeetings.persistence.beans.rooms.Rooms; > import org.apache.openmeetings.web.components.admin.AdminBaseForm; > +import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior; > import org.apache.wicket.model.CompoundPropertyModel; > +import org.apache.wicket.util.time.Duration; > > public class RoomForm extends AdminBaseForm<Rooms> { > > @@ -30,5 +32,9 @@ public class RoomForm extends AdminBaseF > super(id, new CompoundPropertyModel<Rooms>(room)); > setOutputMarkupId(true); > > + // attach an ajax validation behavior to all form > component's keydown > + // event and throttle it down to once per second > + AjaxFormValidatingBehavior.addToAllFormComponents(this, > "keydown", > + Duration.ONE_SECOND); > } > } > > Modified: > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java > URL: > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java?rev=1390044&r1=1390043&r2=1390044&view=diff > > ============================================================================== > --- > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java > (original) > +++ > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java > Tue Sep 25 18:34:13 2012 > @@ -20,7 +20,9 @@ package org.apache.openmeetings.web.comp > > import org.apache.openmeetings.persistence.beans.basic.Server; > import org.apache.openmeetings.web.components.admin.AdminBaseForm; > +import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior; > import org.apache.wicket.model.CompoundPropertyModel; > +import org.apache.wicket.util.time.Duration; > > public class ServerForm extends AdminBaseForm<Server> { > > @@ -29,6 +31,11 @@ public class ServerForm extends AdminBas > public ServerForm(String id, final Server server) { > super(id, new CompoundPropertyModel<Server>(server)); > setOutputMarkupId(true); > + > > + // attach an ajax validation behavior to all form > component's keydown > + // event and throttle it down to once per second > + AjaxFormValidatingBehavior.addToAllFormComponents(this, > "keydown", > + Duration.ONE_SECOND); > } > } > > Modified: > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java > URL: > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java?rev=1390044&r1=1390043&r2=1390044&view=diff > > ============================================================================== > --- > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java > (original) > +++ > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java > Tue Sep 25 18:34:13 2012 > @@ -302,8 +302,9 @@ public class UserForm extends AdminBaseF > add(new TextArea<String>("userSearchs")); > > // attach an ajax validation behavior to all form > component's keydown > - // event and throttle it down to once per second > - AjaxFormValidatingBehavior.addToAllFormComponents(this, > "keydown", Duration.ONE_SECOND); > + // event and throttle it down to once per second > + AjaxFormValidatingBehavior.addToAllFormComponents(this, > "keydown", > + Duration.ONE_SECOND); > > } > > > > -- WBR Maxim aka solomax
