*SOAPLogin and Invitations are not that similar. both of them are used to get hash, both stores user the hash is generated for. I feel its functionality is the same (or very similar)
*Will result in that the Object "Fieldvalues" has a primary key called "fieldvalues_id" OK, since we can easily change it the future *"Language" might be a reserved word OmLanguage? :) On Sun, Sep 30, 2012 at 10:42 PM, [email protected] < [email protected]> wrote: > OpenXGReturnObject can be removed, it was part of the OpenXG integration > to Kamailio (former OpenSER). > > SOAPLogin and Invitations are not that similar. > SOAPLogin and SessionData are kind of similar. But SessionData is cleaned > by a Scheduler every xx minutes so I don't want to mix those tables (at the > moment). > > Changing table names to singular => ok > > This renaming action: > > Fieldlanguage => Language > Fieldvalues => Label > FieldLanguageValue => LabelValue > => Will result in that the Object "Fieldvalues" has a primary key called > "fieldvalues_id". Are you okay with that? We might change attribute names > on a later iteration. But for now the attribute names will then be quite > different from the Table name. > > "Language" might be a reserved word in some database vendors. Do you have > other ideas for this table/Object ? > > > Sebastian > > 2012/9/30 Maxim Solodovnik <[email protected]> > >> I agree :)) >> >> couple of things >> >> I would recommend to: >> >> Fieldlanguagesvalues => FieldLanguageValue >> >> Or maybe even better: >> Fieldlanguage => Language >> Fieldvalues => Label >> FieldLanguageValue => LabelValue >> >> I would change table name from users to user since it is common practice >> (like mysql.user _not_ mysql.users) >> >> i also don't really like >> FileExplorerItem => File (or FileItem) >> and >> FlvRecording => Recording (FlvRecordingLog, FlvRecordingMetaData, >> FlvRecordingMetaDelta) >> >> also I'm not sure why do we need OpenXGReturnObject, never use it :( >> >> Additionally I feel SOAPLogin and Invitations are similar objects, do we >> really need both? >> >> On Sun, Sep 30, 2012 at 10:04 PM, [email protected] < >> [email protected]> wrote: >> >>> Thanks Maxim! >>> >>> I think we might also discuss those issues: >>> >>> I would like to rename some classes: >>> OmDAO => OmDao >>> Users => User >>> Adresses => Address >>> States => State >>> ErrorValues => ErrorValue >>> AppointmentReminderTyps => AppointmentReminderType >>> Organisation_Users => OrganisationUser >>> Invitations => Invitation >>> Fieldlanguagesvalues => Fieldlanguagesvalue >>> Fieldvalues => Fieldvalue >>> RoomPollAnswers => RoomPollAnswer >>> RoomModerators => RoomModerator >>> Rooms_Organisation => RoomOrganisation >>> Rooms => Room >>> RoomTypes => RoomType >>> PrivateMessages => PrivateMessage >>> Salutations => Salutation >>> UserContacts => UserContact >>> >>> The table name should stay the same, for example: >>> Java Object: User => Table name: users >>> From my point of view a table is a List of users, so in that sense >>> plural is ok. >>> >>> This refactoring will only affect the Java Object _names_ NO attribute >>> name changes. >>> Attribute names will stay the same (for now). You might claim that this >>> is only 50% of the work, but it would otherwise need heavy refactoring all >>> over the existing OpenLaszlo client. And we can't handle that as we would >>> rely on search+find mechanism. >>> >>> So for now it will be that the "User"-Object has an attribute of Type >>> "Address" but which attribute name is "adresses". Which is inconsistent but >>> from my point of view a step in the right direction. >>> >>> As soon as we have a Wicket only interface, we can effectively >>> refactor/rename attribute names and Eclipse will update most of the >>> references. >>> >>> What do you think about it? >>> How would this change affect the Backup Export/Import from your point of >>> view? Would it work (theoretically) or is there already an issue with this >>> change? >>> >>> Sebastian >>> >>> 2012/9/30 Maxim Solodovnik <[email protected]> >>> >>>> done. >>>> >>>> As you wish :) I'm not adding it myself since I believe it is always >>>> possible to find via SVN history who was the author :) >>>> >>>> >>>> On Sun, Sep 30, 2012 at 2:59 PM, [email protected] < >>>> [email protected]> wrote: >>>> >>>>> ++ I hope you don't mind if I complete the header javaDoc of the >>>>> classes with the author information including your name :) >>>>> >>>>> Sebastoan >>>>> >>>>> 2012/9/30 [email protected] <[email protected]> >>>>> >>>>> Hi Maxim, >>>>>> >>>>>> public Server getServerWithMinimumUsers() in the ServerDaoImpl: >>>>>> I tried to understand it but I did not fully understood the >>>>>> operations involved in that method. >>>>>> >>>>>> Could you please write a short sentence/notice in the javaDoc at this >>>>>> method explaining it? >>>>>> >>>>>> Thanks! >>>>>> Sebastian >>>>>> >>>>>> ---------- Forwarded message ---------- >>>>>> From: <[email protected]> >>>>>> Date: 2012/9/30 >>>>>> Subject: svn commit: r1391961 - in >>>>>> /incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings: >>>>>> axis/services/ data/basic/dao/ persistence/beans/basic/ remote/ >>>>>> web/components/admin/servers/ >>>>>> To: [email protected] >>>>>> >>>>>> >>>>>> Author: sebawagner >>>>>> Date: Sun Sep 30 07:52:45 2012 >>>>>> New Revision: 1391961 >>>>>> >>>>>> URL: http://svn.apache.org/viewvc?rev=1391961&view=rev >>>>>> Log: >>>>>> OPENMEETINGS-434 complete Server/serverDaoImpl CRUD via Wicket, add >>>>>> "comments,inserted,insertedby,updated,updatedby" fields in Server entity >>>>>> >>>>>> Modified: >>>>>> >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java >>>>>> >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java >>>>>> >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java >>>>>> >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java >>>>>> >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.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/servers/ServersPanel.html >>>>>> >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java >>>>>> >>>>>> Modified: >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java?rev=1391961&r1=1391960&r2=1391961&view=diff >>>>>> >>>>>> ============================================================================== >>>>>> --- >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java >>>>>> (original) >>>>>> +++ >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java >>>>>> Sun Sep 30 07:52:45 2012 >>>>>> @@ -62,7 +62,7 @@ public class ServerWebService { >>>>>> Long user_level = >>>>>> userManagement.getUserLevelByID(users_id); >>>>>> >>>>>> if >>>>>> (authLevelManagement.checkWebServiceLevel(user_level)) { >>>>>> - return serversDao.getServerList(start, >>>>>> max).toArray(new Server[0]); >>>>>> + return serversDao.get(start, max).toArray(new >>>>>> Server[0]); >>>>>> } else { >>>>>> log.warn("Insuffisient permissions"); >>>>>> return null; >>>>>> @@ -81,7 +81,7 @@ public class ServerWebService { >>>>>> Long user_level = >>>>>> userManagement.getUserLevelByID(users_id); >>>>>> >>>>>> if >>>>>> (authLevelManagement.checkWebServiceLevel(user_level)) { >>>>>> - return (int)serversDao.getServerCount(); >>>>>> + return (int)serversDao.count(); >>>>>> } else { >>>>>> log.warn("Insuffisient permissions"); >>>>>> return -1; >>>>>> @@ -123,7 +123,7 @@ public class ServerWebService { >>>>>> Long user_level = >>>>>> userManagement.getUserLevelByID(users_id); >>>>>> >>>>>> if >>>>>> (authLevelManagement.checkWebServiceLevel(user_level)) { >>>>>> - return serversDao.deleteServer(id); >>>>>> + return serversDao.delete(id); >>>>>> } else { >>>>>> log.warn("Insuffisient permissions"); >>>>>> return false; >>>>>> >>>>>> Modified: >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java?rev=1391961&r1=1391960&r2=1391961&view=diff >>>>>> >>>>>> ============================================================================== >>>>>> --- >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java >>>>>> (original) >>>>>> +++ >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java >>>>>> Sun Sep 30 07:52:45 2012 >>>>>> @@ -18,27 +18,47 @@ >>>>>> */ >>>>>> package org.apache.openmeetings.data.basic.dao; >>>>>> >>>>>> +import java.util.Date; >>>>>> import java.util.List; >>>>>> >>>>>> import javax.persistence.EntityManager; >>>>>> import javax.persistence.NoResultException; >>>>>> import javax.persistence.PersistenceContext; >>>>>> +import javax.persistence.PersistenceException; >>>>>> import javax.persistence.TypedQuery; >>>>>> >>>>>> import org.apache.openmeetings.OpenmeetingsVariables; >>>>>> +import org.apache.openmeetings.data.OmDAO; >>>>>> +import org.apache.openmeetings.data.user.dao.UsersDaoImpl; >>>>>> import org.apache.openmeetings.persistence.beans.basic.Server; >>>>>> import org.red5.logging.Red5LoggerFactory; >>>>>> import org.slf4j.Logger; >>>>>> +import org.springframework.beans.factory.annotation.Autowired; >>>>>> import org.springframework.transaction.annotation.Transactional; >>>>>> >>>>>> +/** >>>>>> + * >>>>>> + * CRUD for {@link Server} >>>>>> + * >>>>>> + * @author solomax, swagner >>>>>> + * >>>>>> + */ >>>>>> @Transactional >>>>>> -public class ServerDaoImpl { >>>>>> +public class ServerDaoImpl implements OmDAO<Server> { >>>>>> private static final Logger log = Red5LoggerFactory.getLogger( >>>>>> ServerDaoImpl.class, >>>>>> OpenmeetingsVariables.webAppRootKey); >>>>>> >>>>>> @PersistenceContext >>>>>> private EntityManager em; >>>>>> >>>>>> + @Autowired >>>>>> + private UsersDaoImpl usersDao; >>>>>> + >>>>>> + /** >>>>>> + * Get a list of all available servers >>>>>> + * >>>>>> + * @return >>>>>> + */ >>>>>> public List<Server> getServerList() { >>>>>> log.debug("getServerList enter"); >>>>>> TypedQuery<Server> q = >>>>>> em.createNamedQuery("getAllServers", >>>>>> @@ -46,8 +66,12 @@ public class ServerDaoImpl { >>>>>> return q.getResultList(); >>>>>> } >>>>>> >>>>>> - >>>>>> - public List<Server> getServerList(int start, int max) { >>>>>> + /* >>>>>> + * (non-Javadoc) >>>>>> + * >>>>>> + * @see org.apache.openmeetings.data.OmDAO#get(int, int) >>>>>> + */ >>>>>> + public List<Server> get(int start, int max) { >>>>>> log.debug("getServerList enter"); >>>>>> TypedQuery<Server> q = >>>>>> em.createNamedQuery("getAllServers", >>>>>> Server.class); >>>>>> @@ -57,14 +81,24 @@ public class ServerDaoImpl { >>>>>> return q.getResultList(); >>>>>> } >>>>>> >>>>>> - public long getServerCount() { >>>>>> + /* >>>>>> + * (non-Javadoc) >>>>>> + * >>>>>> + * @see org.apache.openmeetings.data.OmDAO#count() >>>>>> + */ >>>>>> + public long count() { >>>>>> log.debug("getServerCount enter"); >>>>>> TypedQuery<Long> q = >>>>>> em.createNamedQuery("getServerCount", Long.class); >>>>>> >>>>>> return q.getSingleResult(); >>>>>> } >>>>>> >>>>>> - public Server getServer(long id) { >>>>>> + /* >>>>>> + * (non-Javadoc) >>>>>> + * >>>>>> + * @see org.apache.openmeetings.data.OmDAO#get(long) >>>>>> + */ >>>>>> + public Server get(long id) { >>>>>> Server result = null; >>>>>> log.debug("getServer enter, id = " + id); >>>>>> TypedQuery<Server> q = >>>>>> em.createNamedQuery("getServerById", Server.class); >>>>>> @@ -77,6 +111,12 @@ public class ServerDaoImpl { >>>>>> return result; >>>>>> } >>>>>> >>>>>> + /** >>>>>> + * Get server by its address >>>>>> + * >>>>>> + * @param address >>>>>> + * @return >>>>>> + */ >>>>>> public Server getServerByAddress(String address) { >>>>>> log.debug("getServer enter, address = " + address); >>>>>> TypedQuery<Server> q = >>>>>> em.createNamedQuery("getServerByAddress", Server.class); >>>>>> @@ -85,6 +125,11 @@ public class ServerDaoImpl { >>>>>> return list.size() > 0 ? list.get(0) : null; >>>>>> } >>>>>> >>>>>> + /** >>>>>> + * Get the number of minimum users for a server(?) >>>>>> + * >>>>>> + * @return >>>>>> + */ >>>>>> public Server getServerWithMinimumUsers() { >>>>>> Server result = null; >>>>>> log.debug("getServerWithMinimumUsers enter"); >>>>>> @@ -95,7 +140,7 @@ public class ServerDaoImpl { >>>>>> List<Object> r = q1.getResultList(); >>>>>> if (!r.isEmpty()) { >>>>>> // get server id from first line >>>>>> - result = >>>>>> getServer((Long)((Object[])r.get(0))[0]); >>>>>> + result = >>>>>> get((Long)((Object[])r.get(0))[0]); >>>>>> } >>>>>> } else { >>>>>> result = l.get(0); >>>>>> @@ -103,8 +148,17 @@ public class ServerDaoImpl { >>>>>> return result; >>>>>> } >>>>>> >>>>>> + /** >>>>>> + * @deprecated user standard mechanism of >>>>>> + * {@link >>>>>> OmDAO#update(org.apache.openmeetings.persistence.beans.OmEntity, long)} >>>>>> + * @param id >>>>>> + * @param name >>>>>> + * @param address >>>>>> + * @return >>>>>> + */ >>>>>> + @Deprecated >>>>>> public Server saveServer(long id, String name, String >>>>>> address) { >>>>>> - Server s = getServer(id); >>>>>> + Server s = get(id); >>>>>> if (s == null) { >>>>>> s = new Server(); >>>>>> } >>>>>> @@ -114,8 +168,15 @@ public class ServerDaoImpl { >>>>>> return em.merge(s); >>>>>> } >>>>>> >>>>>> - public boolean deleteServer(long id) { >>>>>> - Server s = getServer(id); >>>>>> + /** >>>>>> + * @deprecated use standard mechanism of >>>>>> + * {@link >>>>>> OmDAO#delete(org.apache.openmeetings.persistence.beans.OmEntity, long)} >>>>>> + * @param id >>>>>> + * @return >>>>>> + */ >>>>>> + @Deprecated >>>>>> + public boolean delete(long id) { >>>>>> + Server s = get(id); >>>>>> if (s == null) { >>>>>> return false; >>>>>> } >>>>>> @@ -124,4 +185,45 @@ public class ServerDaoImpl { >>>>>> >>>>>> return true; >>>>>> } >>>>>> + >>>>>> + /* >>>>>> + * (non-Javadoc) >>>>>> + * >>>>>> + * @see >>>>>> + * >>>>>> org.apache.openmeetings.data.OmDAO#update(org.apache.openmeetings.persistence >>>>>> + * .beans.OmEntity, long) >>>>>> + */ >>>>>> + public void update(Server entity, long userId) { >>>>>> + try { >>>>>> + if (entity.getId() <= 0) { >>>>>> + entity.setInserted(new Date()); >>>>>> + >>>>>> entity.setInsertedby(usersDao.get(userId)); >>>>>> + entity.setDeleted(false); >>>>>> + em.persist(entity); >>>>>> + } else { >>>>>> + entity.setUpdated(new Date()); >>>>>> + >>>>>> entity.setUpdatedby(usersDao.get(userId)); >>>>>> + entity.setDeleted(false); >>>>>> + em.merge(entity); >>>>>> + } >>>>>> + } catch (PersistenceException ex) { >>>>>> + log.error("[update LdapConfig]", ex); >>>>>> + } >>>>>> + } >>>>>> + >>>>>> + /* >>>>>> + * (non-Javadoc) >>>>>> + * >>>>>> + * @see >>>>>> + * >>>>>> org.apache.openmeetings.data.OmDAO#delete(org.apache.openmeetings.persistence >>>>>> + * .beans.OmEntity, long) >>>>>> + */ >>>>>> + public void delete(Server entity, long userId) { >>>>>> + if (entity.getId() >= 0) { >>>>>> + entity.setUpdated(new Date()); >>>>>> + entity.setUpdatedby(usersDao.get(userId)); >>>>>> + entity.setDeleted(true); >>>>>> + em.merge(entity); >>>>>> + } >>>>>> + } >>>>>> } >>>>>> >>>>>> Modified: >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java?rev=1391961&r1=1391960&r2=1391961&view=diff >>>>>> >>>>>> ============================================================================== >>>>>> --- >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java >>>>>> (original) >>>>>> +++ >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java >>>>>> Sun Sep 30 07:52:45 2012 >>>>>> @@ -19,73 +19,97 @@ >>>>>> package org.apache.openmeetings.persistence.beans.basic; >>>>>> >>>>>> import java.io.Serializable; >>>>>> +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 org.apache.openmeetings.persistence.beans.OmEntity; >>>>>> +import org.apache.openmeetings.persistence.beans.user.Users; >>>>>> import org.simpleframework.xml.Element; >>>>>> import org.simpleframework.xml.Root; >>>>>> >>>>>> @Entity >>>>>> @NamedQueries({ >>>>>> - @NamedQuery(name="getAllServers", query="SELECT s FROM Server >>>>>> s WHERE s.deleted = false") >>>>>> - , @NamedQuery(name="getServerCount", query="SELECT COUNT(s) >>>>>> FROM Server s WHERE s.deleted = false") >>>>>> - , @NamedQuery(name="getServerById", query="SELECT s FROM >>>>>> Server s WHERE s.deleted = false AND s.id = :id") >>>>>> - , @NamedQuery(name="getServerByAddress", query="SELECT s FROM >>>>>> Server s WHERE s.deleted = false AND s.address = :address") >>>>>> - , @NamedQuery(name="getServersWithNoUsers" >>>>>> - , query="SELECT s FROM Server s WHERE s.deleted = >>>>>> false AND s.id NOT IN (SELECT u.server.id FROM Users u where >>>>>> u.server.id IS NOT NULL)") >>>>>> - , @NamedQuery(name="getServerWithMinimumUsers" >>>>>> - , query="SELECT s.id, COUNT(u) AS cnt FROM Users u >>>>>> JOIN u.server s WHERE s.deleted = false GROUP BY s.id ORDER BY cnt") >>>>>> -}) >>>>>> + @NamedQuery(name = "getAllServers", query = "SELECT s >>>>>> FROM Server s WHERE s.deleted = false"), >>>>>> + @NamedQuery(name = "getServerCount", query = "SELECT >>>>>> COUNT(s) FROM Server s WHERE s.deleted = false"), >>>>>> + @NamedQuery(name = "getServerById", query = "SELECT s >>>>>> FROM Server s WHERE s.deleted = false AND s.id = :id"), >>>>>> + @NamedQuery(name = "getServerByAddress", query = >>>>>> "SELECT s FROM Server s WHERE s.deleted = false AND s.address = >>>>>> :address"), >>>>>> + @NamedQuery(name = "getServersWithNoUsers", query = >>>>>> "SELECT s FROM Server s WHERE s.deleted = false AND s.id NOT IN >>>>>> (SELECT u.server.id FROM Users u where u.server.id IS NOT NULL)"), >>>>>> + @NamedQuery(name = "getServerWithMinimumUsers", query >>>>>> = "SELECT s.id, COUNT(u) AS cnt FROM Users u JOIN u.server s WHERE >>>>>> s.deleted = false GROUP BY s.id ORDER BY cnt") }) >>>>>> @Table(name = "server") >>>>>> @Root >>>>>> public class Server implements Serializable, OmEntity { >>>>>> + >>>>>> private static final long serialVersionUID = >>>>>> -6822732074549167727L; >>>>>> + >>>>>> @Id >>>>>> @GeneratedValue(strategy = GenerationType.IDENTITY) >>>>>> - @Column(name="id") >>>>>> - @Element(data=true) >>>>>> - private Long id; >>>>>> - >>>>>> - @Column(name="name") >>>>>> - @Element(data=true) >>>>>> + @Column(name = "id") >>>>>> + @Element(data = true) >>>>>> + private long id = 0; >>>>>> + >>>>>> + @Column(name = "name") >>>>>> + @Element(data = true) >>>>>> private String name; >>>>>> - >>>>>> - @Column(name="address") >>>>>> - @Element(data=true) >>>>>> + >>>>>> + @Column(name = "address") >>>>>> + @Element(data = true) >>>>>> private String address; >>>>>> - >>>>>> - @Column(name="deleted", nullable=false) >>>>>> - @Element(data=true) >>>>>> + >>>>>> + @Column(name = "inserted") >>>>>> + public Date inserted; >>>>>> + >>>>>> + @Column(name = "updated") >>>>>> + public Date updated; >>>>>> + >>>>>> + @ManyToOne(fetch = FetchType.EAGER) >>>>>> + @JoinColumn(name = "insertedby_id", updatable = true, >>>>>> insertable = true) >>>>>> + public Users insertedby; >>>>>> + >>>>>> + @ManyToOne(fetch = FetchType.EAGER) >>>>>> + @JoinColumn(name = "updatedby_id", updatable = true, >>>>>> insertable = true) >>>>>> + public Users updatedby; >>>>>> + >>>>>> + @Lob >>>>>> + @Column(name = "comment_field", length = 2048) >>>>>> + @Element(data = true, required = false) >>>>>> + private String comment; >>>>>> + >>>>>> + @Column(name = "deleted", nullable = false) >>>>>> + @Element(data = true) >>>>>> private boolean deleted = false; >>>>>> - >>>>>> + >>>>>> public Long getId() { >>>>>> return id; >>>>>> } >>>>>> - >>>>>> + >>>>>> public void setId(Long id) { >>>>>> this.id = id; >>>>>> } >>>>>> - >>>>>> + >>>>>> public String getName() { >>>>>> return name; >>>>>> } >>>>>> - >>>>>> + >>>>>> public void setName(String name) { >>>>>> this.name = name; >>>>>> } >>>>>> - >>>>>> + >>>>>> public String getAddress() { >>>>>> return address; >>>>>> } >>>>>> - >>>>>> + >>>>>> public void setAddress(String address) { >>>>>> this.address = address; >>>>>> } >>>>>> @@ -98,6 +122,46 @@ public class Server implements Serializa >>>>>> this.deleted = deleted; >>>>>> } >>>>>> >>>>>> + public Date getInserted() { >>>>>> + return inserted; >>>>>> + } >>>>>> + >>>>>> + public void setInserted(Date inserted) { >>>>>> + this.inserted = inserted; >>>>>> + } >>>>>> + >>>>>> + public Date getUpdated() { >>>>>> + return updated; >>>>>> + } >>>>>> + >>>>>> + public void setUpdated(Date updated) { >>>>>> + this.updated = updated; >>>>>> + } >>>>>> + >>>>>> + public Users getInsertedby() { >>>>>> + return insertedby; >>>>>> + } >>>>>> + >>>>>> + public void setInsertedby(Users insertedby) { >>>>>> + this.insertedby = insertedby; >>>>>> + } >>>>>> + >>>>>> + public Users getUpdatedby() { >>>>>> + return updatedby; >>>>>> + } >>>>>> + >>>>>> + public void setUpdatedby(Users updatedby) { >>>>>> + this.updatedby = updatedby; >>>>>> + } >>>>>> + >>>>>> + public String getComment() { >>>>>> + return comment; >>>>>> + } >>>>>> + >>>>>> + public void setComment(String comment) { >>>>>> + this.comment = comment; >>>>>> + } >>>>>> + >>>>>> @Override >>>>>> public String toString() { >>>>>> return "Server [id=" + id + ", name=" + name + ", >>>>>> address=" + address >>>>>> >>>>>> Modified: >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java?rev=1391961&r1=1391960&r2=1391961&view=diff >>>>>> >>>>>> ============================================================================== >>>>>> --- >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java >>>>>> (original) >>>>>> +++ >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java >>>>>> Sun Sep 30 07:52:45 2012 >>>>>> @@ -699,7 +699,7 @@ public class ConferenceService { >>>>>> if (roomId > -1 && serverId > -1) { >>>>>> try { >>>>>> Rooms room = >>>>>> roommanagement.getRoomById(roomId); >>>>>> - >>>>>> room.setServer(serverDao.getServer(serverId)); >>>>>> + >>>>>> room.setServer(serverDao.get(serverId)); >>>>>> >>>>>> roommanagement.updateRoomObject(room); >>>>>> } catch (Exception e) { >>>>>> log.error("Error while >>>>>> setting server."); >>>>>> >>>>>> Modified: >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java?rev=1391961&r1=1391960&r2=1391961&view=diff >>>>>> >>>>>> ============================================================================== >>>>>> --- >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java >>>>>> (original) >>>>>> +++ >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java >>>>>> Sun Sep 30 07:52:45 2012 >>>>>> @@ -495,7 +495,7 @@ public class UserService { >>>>>> if (userId > -1 && serverId > -1) { >>>>>> try { >>>>>> Users user = >>>>>> userManagement.getUserById(userId); >>>>>> - >>>>>> user.setServer(serverDao.getServer(serverId)); >>>>>> + >>>>>> user.setServer(serverDao.get(serverId)); >>>>>> >>>>>> userManagement.updateUser(user); >>>>>> } catch (Exception e) { >>>>>> log.error("Error while >>>>>> setting server."); >>>>>> >>>>>> 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=1391961&r1=1391960&r2=1391961&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 >>>>>> Sun Sep 30 07:52:45 2012 >>>>>> @@ -18,24 +18,90 @@ >>>>>> */ >>>>>> package org.apache.openmeetings.web.components.admin.servers; >>>>>> >>>>>> +import org.apache.openmeetings.data.basic.dao.ServerDaoImpl; >>>>>> import org.apache.openmeetings.persistence.beans.basic.Server; >>>>>> +import org.apache.openmeetings.web.app.Application; >>>>>> +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.model.CompoundPropertyModel; >>>>>> import org.apache.wicket.util.time.Duration; >>>>>> >>>>>> +/** >>>>>> + * Form component to insert/update/delete {@link Server} >>>>>> + * >>>>>> + * @author swagner >>>>>> + * >>>>>> + */ >>>>>> public class ServerForm extends AdminBaseForm<Server> { >>>>>> >>>>>> + private final WebMarkupContainer listContainer; >>>>>> private static final long serialVersionUID = 1L; >>>>>> >>>>>> - public ServerForm(String id, final Server server) { >>>>>> + public ServerForm(String id, WebMarkupContainer listContainer, >>>>>> + final Server server) { >>>>>> super(id, new CompoundPropertyModel<Server>(server)); >>>>>> setOutputMarkupId(true); >>>>>> + this.listContainer = listContainer; >>>>>> + >>>>>> + add(new RequiredTextField<String>("name")); >>>>>> + add(new RequiredTextField<String>("address")); >>>>>> + add(DateLabel.forDatePattern("inserted", "dd.MM.yyyy >>>>>> HH:mm:ss")); >>>>>> + add(new Label("insertedby.login")); >>>>>> + add(DateLabel.forDatePattern("updated", "dd.MM.yyyy >>>>>> HH:mm:ss")); >>>>>> + add(new Label("updatedby.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); >>>>>> } >>>>>> + >>>>>> + @Override >>>>>> + protected void onSaveSubmit(AjaxRequestTarget target, Form<?> >>>>>> form) { >>>>>> + >>>>>> Application.getBean(ServerDaoImpl.class).update(getModelObject(), >>>>>> + WebSession.getUserId()); >>>>>> + Server server = >>>>>> Application.getBean(ServerDaoImpl.class).get( >>>>>> + getModelObject().getId()); >>>>>> + this.setModelObject(server); >>>>>> + target.add(this); >>>>>> + target.add(listContainer); >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + protected void onNewSubmit(AjaxRequestTarget target, Form<?> >>>>>> form) { >>>>>> + this.setModelObject(new Server()); >>>>>> + target.add(this); >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + protected void onRefreshSubmit(AjaxRequestTarget target, >>>>>> Form<?> form) { >>>>>> + Server server = this.getModelObject(); >>>>>> + if (server.getId() <= 0) { >>>>>> + server = >>>>>> Application.getBean(ServerDaoImpl.class).get( >>>>>> + server.getId()); >>>>>> + } else { >>>>>> + server = new Server(); >>>>>> + } >>>>>> + this.setModelObject(server); >>>>>> + target.add(this); >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + protected void onDeleteSubmit(AjaxRequestTarget target, >>>>>> Form<?> form) { >>>>>> + >>>>>> Application.getBean(ServerDaoImpl.class).delete(this.getModelObject(), >>>>>> + WebSession.getUserId()); >>>>>> + this.setModelObject(new Server()); >>>>>> + target.add(listContainer); >>>>>> + target.add(this); >>>>>> + } >>>>>> + >>>>>> } >>>>>> >>>>>> Modified: >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html?rev=1391961&r1=1391960&r2=1391961&view=diff >>>>>> >>>>>> ============================================================================== >>>>>> --- >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html >>>>>> (original) >>>>>> +++ >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html >>>>>> Sun Sep 30 07:52:45 2012 >>>>>> @@ -49,6 +49,20 @@ >>>>>> <td class="adminPanelColumnForm"> >>>>>> <form wicket:id="form" >>>>>> class="adminForm"> >>>>>> <div >>>>>> wicket:id="buttons"></div> >>>>>> + <wicket:ommessage >>>>>> key="1500" />: <input type="text" wicket:id="name"/> >>>>>> + <br/> >>>>>> + <wicket:ommessage key="1501" />: >>>>>> <input type="text" wicket:id="address"/> >>>>>> + <br/> >>>>>> + <wicket:ommessage >>>>>> key="1110" />: <span wicket:id="inserted"/> >>>>>> + <br/> >>>>>> + <wicket:ommessage key="1111" />: >>>>>> <span wicket:id="insertedby.login"/> >>>>>> + <br/> >>>>>> + <wicket:ommessage key="1112" />: >>>>>> <span wicket:id="updated"/> >>>>>> + <br/> >>>>>> + <wicket:ommessage key="1113" />: >>>>>> <span wicket:id="updatedby.login"/> >>>>>> + <br/> >>>>>> + <wicket:ommessage key="270" />: >>>>>> <textarea wicket:id="comment"/> >>>>>> + <br/> >>>>>> </form> >>>>>> </td> >>>>>> </tr> >>>>>> >>>>>> Modified: >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java?rev=1391961&r1=1391960&r2=1391961&view=diff >>>>>> >>>>>> ============================================================================== >>>>>> --- >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java >>>>>> (original) >>>>>> +++ >>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java >>>>>> Sun Sep 30 07:52:45 2012 >>>>>> @@ -18,13 +18,11 @@ >>>>>> */ >>>>>> package org.apache.openmeetings.web.components.admin.servers; >>>>>> >>>>>> -import java.util.Iterator; >>>>>> - >>>>>> import org.apache.openmeetings.data.basic.dao.ServerDaoImpl; >>>>>> import org.apache.openmeetings.persistence.beans.basic.Server; >>>>>> -import org.apache.openmeetings.web.app.Application; >>>>>> import org.apache.openmeetings.web.components.admin.AdminPanel; >>>>>> import >>>>>> org.apache.openmeetings.web.components.admin.PagedEntityListPanel; >>>>>> +import org.apache.openmeetings.web.data.OmDataProvider; >>>>>> import org.apache.wicket.AttributeModifier; >>>>>> import org.apache.wicket.ajax.AjaxEventBehavior; >>>>>> import org.apache.wicket.ajax.AjaxRequestTarget; >>>>>> @@ -32,10 +30,13 @@ import org.apache.wicket.markup.html.Web >>>>>> import org.apache.wicket.markup.html.basic.Label; >>>>>> import org.apache.wicket.markup.repeater.Item; >>>>>> import org.apache.wicket.markup.repeater.data.DataView; >>>>>> -import org.apache.wicket.markup.repeater.data.IDataProvider; >>>>>> -import org.apache.wicket.model.CompoundPropertyModel; >>>>>> -import org.apache.wicket.model.IModel; >>>>>> >>>>>> +/** >>>>>> + * Form component with list and form to manipulate {@link Server} >>>>>> + * >>>>>> + * @author swagner >>>>>> + * >>>>>> + */ >>>>>> public class ServersPanel extends AdminPanel { >>>>>> >>>>>> private static final long serialVersionUID = -1L; >>>>>> @@ -43,26 +44,8 @@ public class ServersPanel extends AdminP >>>>>> >>>>>> public ServersPanel(String id) { >>>>>> super(id); >>>>>> - DataView<Server> dataView = new >>>>>> DataView<Server>("serverList", new IDataProvider<Server>(){ >>>>>> - private static final long serialVersionUID = >>>>>> -1L; >>>>>> - >>>>>> - public void detach() { >>>>>> - //empty >>>>>> - } >>>>>> - >>>>>> - public Iterator<? extends Server> >>>>>> iterator(long first, long count) { >>>>>> - return >>>>>> Application.getBean(ServerDaoImpl.class).getServerList((int)first, >>>>>> (int)count).iterator(); >>>>>> - } >>>>>> - >>>>>> - public long size() { >>>>>> - return >>>>>> Application.getBean(ServerDaoImpl.class).getServerCount(); >>>>>> - } >>>>>> - >>>>>> - public IModel<Server> model(Server object) { >>>>>> - return new >>>>>> CompoundPropertyModel<Server>(object); >>>>>> - } >>>>>> - >>>>>> - }) { >>>>>> + DataView<Server> dataView = new >>>>>> DataView<Server>("serverList", >>>>>> + new >>>>>> OmDataProvider<Server>(ServerDaoImpl.class)) { >>>>>> private static final long serialVersionUID = >>>>>> 8715559628755439596L; >>>>>> >>>>>> @Override >>>>>> @@ -95,7 +78,7 @@ public class ServersPanel extends AdminP >>>>>> }); >>>>>> >>>>>> Server Server = new Server(); >>>>>> - form = new ServerForm("form", Server); >>>>>> + form = new ServerForm("form", listContainer, Server); >>>>>> add(form); >>>>>> >>>>>> } >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Sebastian Wagner >>>>>> https://twitter.com/#!/dead_lock >>>>>> http://www.webbase-design.de >>>>>> http://www.wagner-sebastian.com >>>>>> [email protected] >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Sebastian Wagner >>>>> https://twitter.com/#!/dead_lock >>>>> http://www.webbase-design.de >>>>> http://www.wagner-sebastian.com >>>>> [email protected] >>>>> >>>> >>>> >>>> >>>> -- >>>> WBR >>>> Maxim aka solomax >>>> >>> >>> >>> >>> -- >>> Sebastian Wagner >>> https://twitter.com/#!/dead_lock >>> http://www.webbase-design.de >>> http://www.wagner-sebastian.com >>> [email protected] >>> >> >> >> >> -- >> WBR >> Maxim aka solomax >> > > > > -- > Sebastian Wagner > https://twitter.com/#!/dead_lock > http://www.webbase-design.de > http://www.wagner-sebastian.com > [email protected] > -- WBR Maxim aka solomax
