Naftoli,
I set up my mapper to use your new ManyToMany trait, but I'm not sure
how exactly to use it in a snippet or view.
Here's what I have so far, a User, Role and UserRole for my model
classes:
class Role extends LongKeyedMapper[Role] with IdPK {
def getSingleton = Role
object name extends MappedPoliteString(this, 50) {
override def setFilter = notNull _ :: trim _ :: super.setFilter
}
}
class UserRole extends LongKeyedMapper[UserRole] with IdPK {
def getSingleton = UserRole
object role extends MappedLongForeignKey(this, Role){
override def dbIndexed_? = true
}
object user extends MappedLongForeignKey(this,User) {
override def dbIndexed_? = true
}
}
class User extends MegaProtoUser[User] with ManyToMany[UserRole, Role]
{
def getSingleton = User // what's the "meta" server
// define an additional field for a personal essay
object textArea extends MappedTextarea(this, 2048) {
override def textareaRows = 10
override def textareaCols = 50
override def displayName = "Personal Essay"
}
object role extends MappedManyToMany(UserRole, this, Role)
}
and their corresponding singleton objects.
In the past, without the ManyToMany trait, I would do this in User
object
override def editXhtml(user: User) = {
(<form method="post" action={S.uri}>
<table><tr><td colspan="2">{S.??("edit")}</td></tr>
{localForm(user, true)}
<tr><td>Roles</td><td><user:roles/></td></tr>
<tr><td> </td><td><user:submit/></td></tr>
<tr><td><a href={changePasswordPath.mkString("/", "/",
"")}
>{S.??("change.password")}</a></td></tr>
</table>
</form>)
}
and bind this with the following to show the roles for a particular
user as a comma delimited string.
def innerEdit = User.isa_?("admin") match {
case true => bind("user", editXhtml(theUser),
"roles" -> text(roles,
doRolesAndSubmit),
"submit" -> SHtml.submit(S.??("edit"),
testEdit _))
case false => bind("user", editXhtml(theUser),
"roles" ->
theUser.showRoles,
"submit" -> SHtml.submit(S.??("edit"),
testEdit _))
}
here roles is defined as
var roles = theUser.roles.map(_.
name.is).mkString(", ")
Do you have an example of how to achieve something similar with your
new ManyToMany and MappedManyToMany code?
Appreciate any help you can give me.
Thanks,
Glenn...