[Lift] Re: New mapper class: MappedEnumString

2009-06-25 Thread Oliver Lambert
On Thu, Jun 25, 2009 at 10:49 PM, Jeppe Nejsum Madsen wrote:

>
> On Thu, Jun 25, 2009 at 1:12 AM, Oliver Lambert 
> wrote:
> >
> > Looks very nice.
> >
> > One thing I'm wondering, what if I wanted the displayed value outside of
> the mapper, such as TestTypes.Item1.displayValue. Would you use an implicit
> conversion to provide this or is the
> > display value conceptually always part of a mapper object.
>
> Good question :-) I'm still using CRUDify generated views while
> prototyping, but will probably need some more sophisticated layouts at
> some point. Don't yet know if the display value will come from the
> mapper object or the underlying enum.
>
> > I have a rough implementation called EnumWithDescription, that wraps (not
> extends) an Enumeration
> > and provides a description method on the enumeration value without using
> an implicit. I'm wondering
> > if it might be useful to combine your approach and mine?
>
> Sure. It might also be possible to make the original MappedEnum a bit
> more flexible instead (as Derek suggested earlier). My class is
> basically just a copy with very few modifications to handle the db
> value. I just haven't got the Scala knowledge yet to easily see how
> the interface should be and I needed to nail the db schema :-)
>

No this isn't what I'm suggesting, I don't think MappedEnum should be made
flexible.
I was thinking perhaps your class could work with EnumWithDescription as
shown below, which
extends Enumeration#Values to include a description.

/*
 A wrapper arround a Scala Enumeration Value that has a name, description
for each object
 */
trait ValueWithDescription  {
def description: String
def name: String
}

abstract class EnumWithDescription  {
type Value = enum.Value with ValueWithDescription

private var _values: List[Value] = Nil
def values = _values

// possibly not a good idea using this directly
val enum = new Enumeration {
def Value(inName: String, inDescription: String): Value with
ValueWithDescription = {
new Val(nextId, inName) with ValueWithDescription {
def description = inDescription
def name = inName
}
}
}

def Value(name: String, description: String): Value = {
val value = enum.Value(name, description)
_values = _values ::: List(value)  // build in order
value
}

def Value(name: String): Value = Value(name, name)

def valueOf(name: String) = values find (_.name == name)

def nameDescriptionList = values map(x => (x.name, x.description) )

}





>
> /Jeppe
>
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: Modify CRUDify XHTML

2009-06-25 Thread Peter Robinett

Naftoli, you would overload the _editTemplate field or the
editTemplate method, I imagine.

Peter

On Jun 24, 11:49 am, Naftoli Gugenheim  wrote:
> How would you customize the edit view, say to allow editing all child
> entities on the same screen?
>
> On Wed, Jun 24, 2009 at 2:01 PM, Jeppe Nejsum Madsen wrote:
>
>
>
> > On 24 Jun 2009, Peter Robinett wrote:
>
> > > Hi all,
>
> > > I'm using CRUDify on one of my models and I'd like to display some
> > > additional data on the view template. I believe that I need to
> > > override one of the model definitions with some sort of reference to
> > > my own XHTML file. Which one? _viewTemplate? Or perhaps the
> > > viewTemplate method?
>
> > If you look at the source to CRUDify, you'll see
>
> > def viewTemplate(): NodeSeq = pageWrapper(_viewTemplate)
>
> > where
>
> > def pageWrapper(body: NodeSeq): NodeSeq =
> >  
> >    {
> >      body
> >    }
> >  
>
> > def _viewTemplate =
> >  
> >    
> >      
> >        
> >          
> >          
> >        
> >      
> >    
> >  
>
> > So the simplest thing is to override _viewTemplate with something similar
> > to the above. This should be done on the companion objects where CRUDify
> > is mixed in
>
> > /Jeppe

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] form element specific error messages

2009-06-25 Thread Trav

I have a form such as:


  
  
  


and a bind:

bind("newCustomer", xhtml,
   "firstName" -> text(XXX),
   "lastName" -> text(XXX),
   "submit" -> submit(XXX)
)


If I want to require that both first and last name are required, but
the form is submitted with no last name, how anyone suggest that I put
the error message "*Required" in the appropriate div tag next to the
text box.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: Can't embed a snippet

2009-06-25 Thread Marc Boschma

Sleeping on it the snippet would be as simple as

def group(c : scala.xml.NodeSeq) : scala.xml.NodeSeq =  
scala.xml.Group(c)

which would allow for:


Welcome
Put welcome details here


The advantage is that it is in the lift name space...

Marc

On 25/06/2009, at 8:59 PM, Marc Boschma wrote:

>
> Wouldn't this work with the Scala XML parser?
>
> 
> Welcome
> Put welcome details here.
> 
> On 25/06/2009, at 1:08 AM, Nolan Darilek wrote:
>
>>
>


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: MySQL connection pool

2009-06-25 Thread Derek Chen-Becker
The MySQL driver may have facilities for connection pooling, but generally
you use a pool provider (dbcp, c3po, etc) or write your own.

Derek

On Thu, Jun 25, 2009 at 11:31 AM, ph  wrote:

>
> It's not strictly Lift question...
>
> Is connection pool a feature of MySQL JDBC driver? It is a feature of
> MySQL ODBC driver...
> Looking into this article
>
> http://dev.mysql.com/tech-resources/articles/connection_pooling_with_connectorj.html
> it's not clear to me wheather connection pool is implemented in
> application server or in driver itself.
> I'm planning on writing own application server and don't know if I
> need to worry about implementing connection pooling or not.
>
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: JPA and auto generation of id

2009-06-25 Thread Derek Chen-Becker
I've used JPA with MySQL in the past and I don't recall having to specify a
generator to get auto-incremenet IDs working. Does the schema for this
particular entity have AUTO_INCREMENT set for the id column?

Derek

On Wed, Jun 24, 2009 at 5:29 PM, David Persons  wrote:

>
> Thanks for all the answers guys.
>
> I managed to fix the id problem, I needed the Hibernate specific class
> GenericGenerator to fix it, which of cource is less pretty then using
> only JPA. Someone has an example of how to make it work with MySql and
> only JPA annotations? Current version:
>
> @Entity
> class Scene {
>  @Id
>  @GenericGenerator{val name="hibernate-increment", val
> strategy="increment"}
>  @GeneratedValue{val strategy = GenerationType.SEQUENCE, val
> generator = "hibernate-increment"}
>   var id : Long = _
>
>  @Column{val unique = true, val nullable = false}
>  var ordering : Int = _
>
>  @Column{val unique = true, val nullable = false}
>  var name : String = ""
>
>  @ManyToOne{val optional = false}
>  var storyBoard : StoryBoard = _
> }
>
> However, now I get an org.hibernate.PropertyValueException: not-null
> property references a null or transient value:
> model.Scene.storyBoard :-s I tried a lot of things already, the
> corresponding StoryBoard is saved and not null, so I guess it has to
> be transient. Merging the StoryBoard however still gives the same
> error..
>
> I tried to get JPA and Lift working together in the same way as in the
> JPADemo example.. Is it the use of MySql which prevents the example
> from working for me?
>
> regards,
> David
>
> On 23 jun, 00:54, Derek Chen-Becker  wrote:
> > Also, what does the schema for the entity's table look like?
> >
> > On Mon, Jun 22, 2009 at 4:54 PM, Derek Chen-Becker <
> dchenbec...@gmail.com>wrote:
> >
> > > Mind posting the snippet of code where you're saving the instance? A
> merge
> > > should interpret a null ID as a fresh instance, and a persist should
> just
> > > save it.
> >
> > > Derek
> >
> > > On Mon, Jun 22, 2009 at 1:50 PM, David Persons  >wrote:
> >
> > >> I am using MySql (5). After setting the hibernate.dialect to
> > >> org.hibernate.dialect.MySQLDialect in my persistence.xml file, I get a
> > >> org.hibernate.AssertionFailure: null id :-s
> >
> > >> cheers
> >
> > >> On 22 jun, 19:18, Derek Chen-Becker  wrote:
> > >> > That's not accurate, at least with Hibernate. By putting the
> annotations
> > >> on
> > >> > vars, the compiler ends up putting them on the internal fields,
> which
> > >> then
> > >> > forces Hibernate into a field-based persistence model and not a
> > >> > getter/setter based one. The SQLGrammarException is most likely what
> the
> > >> > other people have said. If you're in Oracle or PostgreSQL, for
> instance,
> > >> you
> > >> > need a sequence set up for the auto identity model. What database
> are
> > >> you
> > >> > using?
> >
> > >> > Derek
> >
> > >> > On Mon, Jun 22, 2009 at 8:54 AM, Eric Bowman 
> wrote:
> >
> > >> > > David Persons wrote:
> > >> > > > Hello guys,
> >
> > >> > > > I get a org.hibernate.exception.SQLGrammarException: could not
> get
> > >> or
> > >> > > > update next value error everytime I try to save the following
> > >> Entity:
> >
> > >> > > > @Entity
> > >> > > > class Scene {
> > >> > > >   @Id
> > >> > > >   @GeneratedValue(){val strategy = GenerationType.AUTO}
> > >> > > >   var id : Long = _
> >
> > >> > > >   @Column{val unique = true, val nullable = false}
> > >> > > >   var ordering : Int = _
> >
> > >> > > >   @Column{val unique = true, val nullable = false}
> > >> > > >   var name : String = ""
> >
> > >> > > >   @ManyToOne{val optional = false}
> > >> > > >   var storyBoard : StoryBoard = _
> > >> > > > }
> >
> > >> > > You almost certainly need some scala.reflect.BeanProperty
> annotations
> > >> on
> > >> > > your fields.
> >
> > >> > > cheers,
> > >> > > Eric
> >
> > >> > > --
> > >> > > Eric Bowman
> > >> > > Boboco Ltd
> > >> > > ebow...@boboco.ie
> > >> > >http://www.boboco.ie/ebowman/pubkey.pgp
> > >> > > +35318394189/+353872801532<
> > >>http://www.boboco.ie/ebowman/pubkey.pgp%0A+35318394189/+353872801532>
>
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: Lift website page renders incorrectly in IE

2009-06-25 Thread Timothy Perrett

This is a known issue - I'll get round to rebuilding the site soon (it was
originally thrown up in a matter of hours so it not the smoothest) so we can
eliminate these kinds of bugs.

Thanks

Tim 


On 25/06/2009 17:43, "samreid"  wrote:

> 
> This lift page renders incorrectly in IE:
> http://liftweb.net/docs/getting_started.html
> 
> The text is much too far to the right.  My coworker pointed this out
> to me and I reproduced the problem, let me know if you have any
> problems identifying or reproducing the problem.
> 
> > 
> 



--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Lift website page renders incorrectly in IE

2009-06-25 Thread samreid

This lift page renders incorrectly in IE:
http://liftweb.net/docs/getting_started.html

The text is much too far to the right.  My coworker pointed this out
to me and I reproduced the problem, let me know if you have any
problems identifying or reproducing the problem.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] MySQL connection pool

2009-06-25 Thread ph

It's not strictly Lift question...

Is connection pool a feature of MySQL JDBC driver? It is a feature of
MySQL ODBC driver...
Looking into this article
http://dev.mysql.com/tech-resources/articles/connection_pooling_with_connectorj.html
it's not clear to me wheather connection pool is implemented in
application server or in driver itself.
I'm planning on writing own application server and don't know if I
need to worry about implementing connection pooling or not.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] From JPA question to ScalaQuery to Collection Abstractions

2009-06-25 Thread Meredith Gregory
All,

Again -- many thanks to the posters and responders on this thread. i've
moved on to attempt to use
ScalaQueryas the
target for the SQL persistence. Stefan Szeiger describes his work
here
.

It seems to be a week of meeting resistance, however. i've been attempting
to build the simplest possible collection to use as a toy to test my
compilation strategy. This has turned out to be quite a little brain-teaser.

For me simpler means: contains less information. In this sense, a Set is
simpler than a List. The simplest possible collection i can imagine (that
still supports associativity -- and i don't know if i can call something
that doesn't support associativity a collection) is a monad. A monad doesn't
commit to what the collection contains; only parametrically commits to how
to put things into the collection; and only parametrically commits to how to
flatten the collection (which is tantamount to supporting associativity).

After thinking about it for half a day, and revisiting the
Moors-Piessens-Odersky (MPO) paper on higher-kinded types, i realized that
the MPO construction doesn't actually apply to Scala in practice (someone
please tell me if i'm wrong) because they fundamentally rely on
constructions using type *members* and not type *parameters*. Unfortunately,
most of the collections libraries are written using type parameters. So, i
decided to roll my own and see what i got.

Here's what i came up with last night.

// smallest expression of monad i can find
trait MBrace[C[_] <: MBrace[C,A],A] {
  def nest( a : A ) : C[A]
  def flatten[T <: C[C[A]]]( bsq : T ) : C[A]
}

// one of the simplest witnesses of monad i can find
class MBraceSeq[A]( a_ : A* ) extends Seq[A] with MBrace[MBraceSeq,A] {
  override def nest( a : A ) = new MBraceSeq[A]( a )
  override def flatten[T <: MBraceSeq[MBraceSeq[A]]]( bsq : T ) :
MBraceSeq[A] = {
(new MBraceSeq[A]( ) /: bsq)( {
  ( acc : MBraceSeq[A], e : MBraceSeq[A] ) => ( acc ++ e
).asInstanceOf[MBraceSeq[A]]
} )
  }
  override def length = a_.length
  override def elements = a_.elements
  override def apply( n : Int ) = a_.apply( n )
}

i was mostly ok with this -- apart from some desiderata/concerns regarding
the Seq methods being visible at this level. i woke up this am and realized
that this is not even wrong. It requires an instance of MBrace to invoke the
nest or flatten methods.

Geez, i feel like a first year undergrad. All i want to do is write the
simplest possible collection on which i can then test a persistence
strategry and i run into roadblocks everywhere. ;-)

Best wishes,

--greg

On Wed, Jun 24, 2009 at 8:00 AM, Derek Chen-Becker wrote:

> Well, in my real-world experience I've never had very complex models and
> I've never used TABLE-PER-CLASS either, so I don't really have a feel for
> what's not possible. Generally I think that JPA (which is a subset of
> Hibernate) covers a good portion of people's needs for ORM, but it
> definitely has some big missing functionality (e.g. no ordered collections
> until JPA 2). I think that in this case Greg is pushing the limits on a
> relatively unused corner of JPA (I've never seen someone use TABLE-PER-CLASS
> before) and he's hitting some bugs. I want to make clear that I think that
> what Greg is attempting is entirely possible. My earlier comment about
> rolling your own ORM was because I misunderstood what he was doing with
> abstract classes. In my mind, there would be a couple of places where you
> might want to roll your own stuff:
>
>
>1. An existing schema that doesn't map well to an object graph. We have
>a legacy database at work where the brilliant developers decided that
>nothing should be normalized and data can exist in one of four tables based
>on some arcane business logic. You can still build an ORM layer on 
> something
>like this, but essentially all you're doing is creating a thin wrapper on
>ResultSets
>2. You have very specific data that you need to retrieve with possibly
>complex joins, and you need it to be as performant as possible. There are
>some tricks you can do with EJB QL to make it prefetch things, but often 
> you
>can end up with multiple round trips to the database and/or data that you
>don't need being fetched. In certain scenarios I could see this being an
>issue.
>
> This list isn't intended to be exhaustive, these are just the top two that
> come to mind. In terms of Hibernate vs others like JPOX, TopLink, etc, I'd
> say that Hibernate is a first-class provider and at least equal to the
> others.
>
> Derek
>
>
> On Wed, Jun 24, 2009 at 2:21 AM, TSP  wrote:
>
>>
>> Derek
>> Would you distinguish between what is achievable in a specific ORM
>> such as Hibernate from JPA in this statement or would you think it
>> applies to all. I've got to "go with hibernate" in any case beca

[Lift] Re: date management

2009-06-25 Thread TylerWeir

The code Derek included:
// Set the up the RequstVar to initialize a new MyUserClass by default
object userVar extends RequestVar[MyUserClass](MyUserClass.create)

By default creates a MyUserClass instance.
Maybe you want to init the RequestVar as an Empty Box and then
conditionally modify it.

object userVar extends RequestVar[Box[MyUserClass]](Empty)

Then after you save, you can set the RequestVar to Empty again.

Without looking at your code, this is a guess, I could be/probably am
wrong.



On Jun 25, 12:10 am, g-man  wrote:
> OK, things are working well with RequestVar, but now I need to know
> how to kill it!
>
> After I create and save my record, if I refresh the browser, I get
> another record created. I did a temporary hack-fix with:
>
> if(! myRecord.saved_?)
>
> but I would just like to kill the RequestVar after the first round of
> record creation-saving.
>
> In terms of your example above, how would I do that?
>
> On Jun 8, 7:18 am, Derek Chen-Becker  wrote:
>
> > Generally you can either use RequestVars or a StatefulSnippet class to keep
> > the values around on form resubmission. If you're using a Mapper class, you
> > really just need one RequestVar to hold your Mapper instance. For example,
> > if I had a Mapper class for a person with first name, last name and email, I
> > could do something like this in my snippet class:
>
> > ...
> >   // Set the up the RequstVar to initialize a new MyUserClass by default
> >   object userVar extends RequestVar[MyUserClass](MyUserClass.create)
>
> >   def editMyUser (xhtml : NodeSeq) : NodeSeq = {
> >     // We define a val to capture the current value of the userVar. This
> > will be used to reinject later, as well
> >     // as for current access
> >     val current = userVar.is
> >     ...
> >     def saveMyUser () {
> >       current.validate match { ...
> >         ...
> >         current.save
> >       }
> >     }
>
> >     bind("user", xhtml,
> >            // First we re-inject the current MyUserClass instance using a
> > hidden field
> >            "current" -> SHtml.hidden(() => userVar(current))
> >            // normal fields follow, e.g.
> >            "name" -> SHtml.text(current.name.is, current.name(_))
> >            // alternatively, you could do both steps in the first form
> > field:
> >            "name" -> SHtml.text(current.name.is, { in => userVar(current);
> > current.name(in) })
> >            ...
> >     )
> >   }
> > ...
>
> > Let me know if you have any questions on that.
>
> > Derek
>
> > On Fri, Jun 5, 2009 at 9:47 PM, g-man  wrote:
>
> > > I now have the due date arriving OK from the jQuery datepicker, and I
> > > cobbled together some ugliness to give days left until the ToDo due
> > > date, so that is good.
>
> > > My problem now is since we are not using the 'magic' of the _toForm
> > > methods for the form elements, I have to set each var value for the
> > > model field from the input SHtml data, as was done in the PocketChange
> > > app AddEntry.scala file.
>
> > > What is happening is that the initialization for each var is resetting
> > > the form if validation fails, so I guess I need to institute some
> > > RequestVars to remember the form values for resubmission, right?
>
> > > All my questions will take take the form of 'how to' recipes of
> > > foundational webapp elements, as you can see. My plan is to develop
> > > them for a 'cookbook' section of the wiki, so that's why I am asking
> > > one simple conceptual thing at a time.
>
> > > Therefore, what I have to learn now is all about form binding and
> > > recalling form value state if validation fails, so please break that
> > > down for me.
>
> > > Thanks as always!
>
> > > On Jun 3, 10:25 pm, Derek Chen-Becker  wrote:
> > > > Box is the base class. What you want is Full("2").
>
> > > > Derek
>
> > > > On Wed, Jun 3, 2009 at 8:53 PM, g-man  wrote:
>
> > > > > Very good!
>
> > > > > I did a little homework, rearranged some things, and am getting some
> > > > > nice results with the 'manual method'...
>
> > > > > Since I am following the PocketChange app now rather than the ToDo
> > > > > example, there is no 'todo' val in scope to bind, so the
> > > > > todo.priority.toForm method will not work.
>
> > > > > I have SHtml.select working with a mapping for my choices, and I can
> > > > > use Empty for my default, but how do I get a Box["2"] as my default?
>
> > > > > On Jun 3, 7:21 am, Derek Chen-Becker  wrote:
> > > > > > The only issue I would mention is that there's currently an open
> > > ticket
> > > > > > because MappedDateTime won't save the time portion when you use
> > > Derby. I
> > > > > > haven't had time to triage this yet.
>
> > > > > > Derek
>
> > > > > > On Wed, Jun 3, 2009 at 3:01 AM, Timothy Perrett
> > >  > > > > >wrote:
>
> > > > > > > Greg,
>
> > > > > > > I dont really use toForm; have you explored "doing it manually"? 
> > > > > > > It
> > > > > > > seems like that would be able to tell you if there is a problem
> > > with
> > > > > > >

[Lift] Re: lift presentation

2009-06-25 Thread Jeremy Day
Guys,

I just want to say that I haven't started using Lift yet but I already love
it.  This community is very supportive and responsive.  Keep up the awesome
work!

Jeremy

On Thu, Jun 25, 2009 at 7:21 AM, Wilson MacGyver wrote:

>
> heheh, no problem. I did the one on Scala back in Feb. :)
>
> On Thu, Jun 25, 2009 at 7:31 AM, Francois Armand wrote:
> >
> >>
> >> I did a presentation some weeks ago, the slides are under a creative
> common
> >> licence, so use them if you want !
> >>
> >>
> http://fanf42.blogspot.com/2009/06/tour-of-scala-ossgtp-paris-oss-user.html
> >
> >
> > OK, just ignore this message, it was a *Scala* presentation, not a
> > *Lift* one - sorry, I read your post too quickly - and no, the fact
> > that we were in Lift ml didn't make me find that strange :)
> >
> >
> > --
> > --
> > Francois Armand
> > http://fanf42.blogspot.com/
> >
> > >
> >
>
>
>
> --
> Omnem crede diem tibi diluxisse supremum.
>
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: New mapper class: MappedEnumString

2009-06-25 Thread Jeppe Nejsum Madsen

On Thu, Jun 25, 2009 at 1:12 AM, Oliver Lambert  wrote:
>
> Looks very nice.
>
> One thing I'm wondering, what if I wanted the displayed value outside of the 
> mapper, such as TestTypes.Item1.displayValue. Would you use an implicit 
> conversion to provide this or is the
> display value conceptually always part of a mapper object.

Good question :-) I'm still using CRUDify generated views while
prototyping, but will probably need some more sophisticated layouts at
some point. Don't yet know if the display value will come from the
mapper object or the underlying enum.

> I have a rough implementation called EnumWithDescription, that wraps (not 
> extends) an Enumeration
> and provides a description method on the enumeration value without using an 
> implicit. I'm wondering
> if it might be useful to combine your approach and mine?

Sure. It might also be possible to make the original MappedEnum a bit
more flexible instead (as Derek suggested earlier). My class is
basically just a copy with very few modifications to handle the db
value. I just haven't got the Scala knowledge yet to easily see how
the interface should be and I needed to nail the db schema :-)

/Jeppe

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: lift presentation

2009-06-25 Thread Wilson MacGyver

heheh, no problem. I did the one on Scala back in Feb. :)

On Thu, Jun 25, 2009 at 7:31 AM, Francois Armand wrote:
>
>>
>> I did a presentation some weeks ago, the slides are under a creative common
>> licence, so use them if you want !
>>
>> http://fanf42.blogspot.com/2009/06/tour-of-scala-ossgtp-paris-oss-user.html
>
>
> OK, just ignore this message, it was a *Scala* presentation, not a
> *Lift* one - sorry, I read your post too quickly - and no, the fact
> that we were in Lift ml didn't make me find that strange :)
>
>
> --
> --
> Francois Armand
> http://fanf42.blogspot.com/
>
> >
>



-- 
Omnem crede diem tibi diluxisse supremum.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: lift presentation

2009-06-25 Thread Wilson MacGyver
Thank you very much!

On Thu, Jun 25, 2009 at 2:16 AM, marius d.  wrote:

>
> I'm giving today a presentation for Transylvania JUG  ... I'll email
> you my material.
>
> Br's,
> Marius
>
> On Jun 25, 8:04 am, Wilson MacGyver  wrote:
> > Hi,
> >
> > I'm doing a presentation on lift to my local java user group next month.
> >
> > I'm wondering if any of you have slides on lift that I can
> borrow/leverage? :)
> >
> > Thanks,
> > Mac
> >
> > --
> > Omnem crede diem tibi diluxisse supremum.
> >
>


-- 
Omnem crede diem tibi diluxisse supremum.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: Anyone working on the flot widget?

2009-06-25 Thread Jeppe Nejsum Madsen

On 25 Jun 2009, Francois Bertrand wrote:


> Hi Jeppe
> 
> Great to see you are interested in the flot widget.
> 
> My current to-do list for the flot widget, is:
> 
> - create more Lift JsExp and JsCmd to modify a already displayed flot
> graph.  They should be used in AJAX and Comet applications
> 
> - update to a more recent version of the javascrrit widget

I need this as well, especially since there are some patches that
provides pie charts

> 
> - create the test demo app,
> 
> - make the creation of FlotOptions, FlotLinesOptions, etc, less
> verbose.  I hope that Scala 2.8 Named and Default Arguments will help.

Yeah, this would be nice :-) We probably need some working code within
the next few weeks so probably can't wait for 2.8 though.

> - create a high level mechanism to display Lift's Record
> 
> I appreciate any help.

What's the best way to coordinate this? Just fork the code on github or?

/Jeppe


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: lift presentation

2009-06-25 Thread Francois Armand

>
> I did a presentation some weeks ago, the slides are under a creative common
> licence, so use them if you want !
>
> http://fanf42.blogspot.com/2009/06/tour-of-scala-ossgtp-paris-oss-user.html


OK, just ignore this message, it was a *Scala* presentation, not a
*Lift* one - sorry, I read your post too quickly - and no, the fact
that we were in Lift ml didn't make me find that strange :)


-- 
--
Francois Armand
http://fanf42.blogspot.com/

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: lift presentation

2009-06-25 Thread fan...@gmail.com

Wilson MacGyver a écrit :
> Hi,
> 
> I'm doing a presentation on lift to my local java user group next month.
> 
> I'm wondering if any of you have slides on lift that I can borrow/leverage? :)

I did a presentation some weeks ago, the slides are under a creative 
common licence, so use them if you want !

http://fanf42.blogspot.com/2009/06/tour-of-scala-ossgtp-paris-oss-user.html



-- 
Francois Armand
http://fanf42.blogspot.com

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: Getting Username and Password from URL of form hxxp://user:passw...@foo.org

2009-06-25 Thread Timothy Perrett

Are you using the builtin support for basic authentication in lift? If
not, please see my example here: http://is.gd/1cYhR

The format you mention is standard HTTP Basic, and in accordance with
the RFC's - it should be Base64 encoded. Lift supports both HTTP basic
and HTTP digest.

Cheers, Tim

On Jun 25, 5:10 am, Alan M  wrote:
> I can't seem to find anyway to get to those two values.  I've been
> searching all over the request class/object and no luck.
>
> I'm writing a RESTful web service that uses basic auth and for some
> reason jQuery likes to send things in the above mentioned format
> (http://user:passw...@foo.org).  I've tried to fix that on the
> Javascript side but I couldn't get anything to work.  So instead I
> decided on the service to recognize either the header style or the URL
> style of passing the login info.  Sounded simple enough, until I
> couldn't find how to get at that/those strings..
>
> Any help would be greatly appreciated..
>
> Alan Mortensen
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: Can't embed a snippet

2009-06-25 Thread Marc Boschma

Wouldn't this work with the Scala XML parser?


Welcome
Put welcome details here.

On 25/06/2009, at 1:08 AM, Nolan Darilek wrote:

>
> On 06/24/2009 09:40 AM, Derek Chen-Becker wrote:
>> Wait a second. I have plenty of templates that have multiple elements
>> in them. What exactly is the problem you're seeing here?
>>
> Using 1.1, I have the following in templates-hidden/welcome.html:
>
> Welcome
>
> Put welcome details here.
>
> Running mvn test gives me the following failure report:
>
> ---
> Test set: info.thewordnerd.therascribe.AppTest
> ---
> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.8  
> sec
> <<< FAILURE!
> testXml(info.thewordnerd.therascribe.AppTest)  Time elapsed: 1.474 sec
> <<< FAILURE!
> junit.framework.AssertionFailedError: Malformed XML in 1 file:
> src/main/webapp/templates-hidden/welcome.html
> at junit.framework.Assert.fail(Assert.java:47)
> at info.thewordnerd.therascribe.AppTest.testXml(AppTest.scala:72)
> ..
>
> From the surefire report:
>
> Malformed XML in 1 file:
> src/main/webapp/templates-hidden/welcome.html
> 
> :3:70: document must contain exactly one element
>  ^
> 
>
> Surrounding it in a div fixes that. Must be a new addition in 1.1?
>
>
> >


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: lift presentation

2009-06-25 Thread Timothy Perrett

You can find all of DPP's preso's here: http://is.gd/1cUi0

Cheers, Tim
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---