Every repository with this icon (
Every repository with this icon (
| Description: | The Lift web framework for Scala edit |
-
0 comments Created 2 days ago by DridusdppxS.notice, S.error, etc. broken from within AJAX/JSON callsOn Review BoardxI had some code working where the snippet generates a JSON callback which uses S.notice / S.error to push notifications back to the browser in addition to whatever JS commands the snippet decides to push down, but it seems that this is now broken in 1.1-SNAPSHOT and 1.1-M7. I can confirm that just after I call S.notice within the jsonCall that S.getNotices has the proper thing in it, but by the time LiftRules.noticesToJsCmd gets called it has vanished.
I've created a modified lift-archetype-blank that demonstrates the behavior at http://www.github.com/dridus/test-missing-notices -- here is a overview of the code:
In template:
<lift:surround with="default" at="content"> <lift:helloWorld.callback /> <h2>Welcome to your project!</h2> <p> </p> <lift:Msgs /> <button onclick="testCallback()">Click me</button> </lift:surround>In Boot:
val oldNoticesToJsCmd = LiftRules.noticesToJsCmd LiftRules.noticesToJsCmd = () => { println("at noticesToJsCmd: S.getNotices = " + S.getNotices) oldNoticesToJsCmd() }In snippet:
class HelloWorld extends DispatchSnippet { val dispatch: DispatchIt = { case "callback" => renderCallback _ } def renderCallback(ns: NodeSeq): NodeSeq = { S.notice("this is the test notice from the snippet") <head>{ Script { Function("testCallback", Nil, jsonCall(JsNull, (_: Any) => { S.notice("this is the test notice from the callback") println("in callback: S.getNotices = " + S.getNotices) Noop })._2) } }</head> } }The output from this on the command line is:
INFO - Service request (GET) / took 570 Milliseconds INFO - Service request (GET) /classpath/jquery.js took 15 Milliseconds INFO - Service request (GET) /ajax_request/liftAjax.js took 8 Milliseconds in callback: S.getNotices = List((net.liftweb.http.NoticeType(0),this is the test notice from the snippet,Empty), (net.liftweb.http.NoticeType(0),this is the test notice from the callback,Empty)) at noticesToJsCmd: S.getNotices = List() INFO - Service request (POST) /ajax_request/F1007892194776GPS/ took 59 MillisecondsAnd no notice appears.
Comments
-
snapshot jars contains several Box.class files
0 comments Created 1 day ago by jeppenejsumThere seems to be a build issue after the reorg into common.
I can find e.g. net.liftweb.common.Box.class in both
lift-common-1.1-SNAPSHOT
lift-webkit-1.1-SNAPSHOTThis causes confusion in Eclipse when you try to find the source of a class.
Comments
-
2 comments Created 5 days ago by econoplasindrajitrxJPADemo update pom dependencies hibernate-em 3.4.0GA and slf4jOn Review BoardxOpening an issue at Indrajit's request to update JPADemo/spa/pom.xml to use a newer version of hibernate-entitymanager 3.4.0.GA and resolve slf4j-1.4.2 impl dependencies.
The hibernate-entitymanager 3.4.0.GA version update causes an update to hibernate-core to 3.3.0.SP1 which fixes auto-increment column problem with MySQL and H2 databases, which was present in the older hibernate 3.2.4 (which dated back to before they called it hibernate-core) upon which hibernate-entitymanager 3.3.1 was depending.
Below is the configuration that worked for me.
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>3.4.0.GA</version> <exclusions> <exclusion> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.4.2</version> </dependency>Had to manually install slf4j-simple/1.4.2 into to my local maven repo to avoid runtime exception for missing org.slf4j.impl.StaticLoggerBinder. By putting the slf4j-simple dependency in the spa/pom.xml this allows users to swap out different impl providers (for example slf4j-log4j12) as they see fit, in fact it might not hurt to have an example of switching this over to slf4j-log4j12 or some other provider, perhaps even commented out just below the other one right in the pom.xml such as:
<!-- <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.4.2</version> </dependency> -->Thanks! Troy
Comments
Per Chris's suggestion, I updated the dependency in my description from slf4j-nop to slf4j-simple as that probably makes more sense for most users.
Thank you for super awesome ticket!
Fix on ReviewBoard: http://reviewboard.liftweb.net/r/90/ -
0 comments Created 9 days ago by andythedestroyerdppxProblem splitting last "." when parsing path.On Review BoardxHere is a post in the groups regarding the issue.
http://groups.google.com/group/liftweb/browse_thread/thread/fc7244ce54f1768e
I need to parse a path in the following format.
http://domain.com/api/package/my.company.package%3Akey%3DvalueThe following should extract "my.company.package:key=value" into my packageName var
case Req(List("api","package", packageName), _, GetRequest)
It doesn't; only "my" is extracted.
-Andy
Comments
-
0 comments Created 20 days ago by hseebergerhseebergerxlift-core.properties contains misspelled key for reset.password.confirmationWork In ProgressxIt is spelled reset.pasword.confirmarion
Comments
-
7 comments Created 2 months ago by dppmariusxAdd lazy loading to LiftWork In ProgressxLet's say you have a bit of a page like so:
<lift:SomeSnippet.section>
<foo:name/> <lift:SomeSnippet.section>Now, let's assume that computing whatever is bound to <foo:name/>
takes a long time (maybe it takes a network call, or a long database
query, or whatever). You don't want to hold up your entire page view
on that so.....<lift:Util.lazyLoad>
<lift:SomeSnippet.section> <foo:name/> <lift:SomeSnippet.section> </lift:Util.lazyLoad>Then in your Util snippet:
def lazyLoad(xhtml: NodeSeq) = {
val id = "lazy"+System.currentTimeMillis() val (name, exp) = ajaxInvoke(() => { SetHtml(id, xhtml) })
{Script(OnLoad(exp.cmd))} }
Feel free to critique if there is a better way of doing this. It's
working pretty good for me so far though.Comments
Seems like this would be a pretty useful function to have expose as a snippet tag attribute (like how we have eager_eval). Maybe an "async_load" attr and a corresponding LiftRule NodeSeq var that controls what gets displayed while waiting?
A problem I've run into that should possibly be considered if/when this is added to lift. It would be extremely helpful if the asynchronously run snippet had access to the queryString in the original request. Not immediately obvious to me what the best way of doing this might be. Thinking about dropping it in a SessionVar, but that seems hacky.
The parallel snippet has access to the state of request processing at the time that the fork took place. This means the Req is shared (so you get query params, query string, etc.)
mariusdanciu
Sat Oct 24 14:09:24 -0700 2009
| link
I finally had some time to start looking into this:
From your code:
def lazyLoad(xhtml: NodeSeq) = {
val id = "lazy"+System.currentTimeMillis() val (name, exp) = ajaxInvoke(() => { SetHtml(id, xhtml) }) waitI'm not sure I understand the wait call since the lazyLoad function should return very fast.
Secondly assume this sequence:
<lift:SnippetA.doit></lift:SnippetA.doit>
<lift:lazy-load>
// some static markup ... <lift:SnippetB.doit></lift:SnippetB.doit> // some other static markup ... </lift:lazy-load><lift:SnippetC.doit></lift:SnippetC.doit>
The content of lazy-load will be loaded asynchronously via the Ajax request. However if SnippetA sets some RequestVar or sets some state in a StatefulSnippet, then the invocation of SnippetB asynchronously will not be able to see this state. SessionVar's would of course work.
Potentially SnippetA, SnippetB and SnippetC are the same Snipppet class or the same stateful snippet.
Are we willing to live with this behavior? ... the lack of request vars (previously set by other synchronous snippets) context from inside of the <lift:lazy-load> snippet? ... I think this is acceptable.
The other approach would be:
- SetHtml is called from a LiftActor. The lazy-load snippet just sends a message to the Lift actor to start computing the markup.
- When the ajax request comes in, we just return the content if it is ready or wait for the LiftActor until it terminates.
This is pretty tricky and probably more error prone. Once we do the fork to the LiftActor the S state may or may not be visible. For instance while we're computing the HTML Lift may return the actual page back and destroy the S state before the async computation is done. So if there are snippets part of this markup they will fail to function properly.
Br's,
MariusI don't have a wait call in my code (perhaps something got messed up when I was transcribing it before). My current code is this:
def lazyLoad(xhtml: NodeSeq) = { val id = randomString(6) val (name, exp) = ajaxInvoke(() => { SetHtml(id, xhtml) }) <div id={id}> Loading...<img src="/img/ajax_spinner.gif" height="32" width="32" alt="wait"/> {Script(OnLoad(exp.cmd))} </div> }More comments on your points on RequestVars after I have a bit of time to think about it.
mariusdanciu
Sat Oct 24 23:33:32 -0700 2009
| link
Looking forward for your comments. One other thing as I described above. You put a div and set its content asynchronously. In my mind <lift:lazy-load> should not impact the final markup. For instance the content of the <lift:lazy-load>should be rendered (asynchronously) not inside of an additional div but just as if the lazy-load would not be there. I'm saying that would not contain the async markup but will be replaced by the async markup.
mariusdanciu
Wed Nov 04 12:30:51 -0800 2009
| link
Going for the comet approach. generateSnapshotRestorer seems to do exactly what I need.
- SetHtml is called from a LiftActor. The lazy-load snippet just sends a message to the Lift actor to start computing the markup.
-
0 comments Created 5 months ago by tjweirderekchenbeckerxUpdate Lift and JPA page on WikiwikixUpdate Lift and JPA page on Wiki
Lighthouse #23: http://liftweb.lighthouseapp.com/projects/26102/tickets/23
Comments
-
0 comments Created about 1 month ago by dppBetter handling of context and allow Lift apps to have context modified on a session-by-session basisdppxSupport for changing the context root for requests so the root can be blank even if the actual context path is not or that a context path can be added (and all requests will be rewritten removing that context path from the head of the path) or subtracted.
Comments
-
0 comments Created 6 days ago by dppMapper's view bounds and conversions to Unit don't mixdppxMappedField's apply methods take view bounds. This causes a nasty interaction with Scala's mechanism for converting to Unit. So:
val u: Unit = myModel.myForiegnKeyField(1L) // causes problems
Fix: concrete apply method without view bound conversion.
Comments
-
1 comment Created 5 months ago by tjweirderekchenbeckerxFix varchar and text types in SqlServerDriverMapperxFix varchar and text types in SqlServerDriver
Lighthouse #22: http://liftweb.lighthouseapp.com/projects/26102/tickets/22
Comments
-
5 comments Created 5 months ago by tjweirtjweirxAdd Twitter IDs to the team page.websitexAdd Twitter IDs to the team page.
Lighthouse #3: http://liftweb.lighthouseapp.com/projects/26102/tickets/3
Comments
timperrett
Sun Jun 28 11:42:44 -0700 2009
| link
lol - i think this is the oldest ticket and its still not fixed ;-)
viktorklang
Mon Jun 29 06:55:31 -0700 2009
| link
My first(!) Twitter account (2 minutes old): "viktorklang"
timperrett
Mon Jun 29 08:54:07 -0700 2009
| link
mine is "timperrett"
-
0 comments Created about 1 month ago by dppThere should be an image map function in SHtmldppxThere should be support for image maps in SHtml. See http://groups.google.com/group/liftweb/browse_frm/thread/84fee9386108a922?hl=en#
Comments
-
SQL Server Alter Table Fail
Lighthouse #25: http://liftweb.lighthouseapp.com/projects/26102/tickets/25
Comments
fter changing one of my Mapper models, and then trying to update the database table I get:
INFO - ALTER TABLE documents ADD COLUMN xmpie_datasource_id BIGINT ERROR - Failed to Boot java.sql.SQLException: Incorrect syntax near the keyword 'COLUMN'.
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368) at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816) at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254) at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631) at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:584) at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:546) at net.sourceforge.jtds.jdbc.JtdsStatement.executeImpl(JtdsStatement.java:723) at net.sourceforge.jtds.jdbc.JtdsStatement.execute(JtdsStatement.java:1157) at net.liftweb.mapper.Schemifier$.net$liftweb$mapper$Schemifier$$maybeWrite(Schemifier.scala:150) at net.liftweb.mapper.Schemifier$$anonfun$6$$anonfun$apply$9.apply(Schemifier.scala:204) at net.liftweb.mapper.Schemifier$$anonfun$6$$anonfun$apply$9.apply(Schemifier.scala:203) at scala.List.foreach(List.scala:834) at net.liftweb.mapper.Schemifier$$anonfun$6.apply(Schemifier.scala:202) at net.liftweb.mapper.Schemifier$$anonfun$6.apply(Schemifier.scala:184) at scala.List.flatMap(List.scala:1125) at net.liftweb.mapper.Schemifier$.net$liftweb$mapper$Schemifier$$ensureColumns(Schemifier.scala:183) at net.liftweb.mapper.Schemifier$$anonfun$schemify$1$$anonfun$2.apply(Schemifier.scala:61) at net.liftweb.mapper.Schemifier$$anonfun$schemify$1$$anonfun$2.apply(Schemifier.scala:61) at scala.List.foldLeft(List.scala:1059) at net.liftweb.mapper.Schemifier$$anonfun$schemify$1.apply(Schemifier.scala:61) at net.liftweb.mapper.Schemifier$$anonfun$schemify$1.apply(Schemifier.scala:54) at net.liftweb.mapper.DB$.use(DB.scala:305) at net.liftweb.mapper.Schemifier$.schemify(Schemifier.scala:53) at net.liftweb.mapper.Schemifier$.schemify(Schemifier.scala:36) at bootstrap.liftweb.Boot$$M$21056508.boot(Boot.scala:24) at bootstrap.liftweb.Boot$$A$21056508.boot(<generated>) at bootstrap.liftweb.Boot.boot(<generated>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at net.liftweb.util.ClassHelpers$$anonfun$createInvoker$1.apply(ClassHelpers.scala:392) at net.liftweb.util.ClassHelpers$$anonfun$createInvoker$1.apply(ClassHelpers.scala:390) at net.liftweb.http.DefaultBootstrap$$anonfun$boot$1.apply(LiftRules.scala:912) at net.liftweb.http.DefaultBootstrap$$anonfun$boot$1.apply(LiftRules.scala:912) at net.liftweb.util.Full.map(Box.scala:330) at net.liftweb.http.DefaultBootstrap$.boot(LiftRules.scala:912) at net.liftweb.http.LiftFilter.bootLift(LiftServlet.scala:577) at net.liftweb.http.LiftFilter.init(LiftServlet.scala:552) at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:620) at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1233) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:460) at org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:124) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart(Server.java:222) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132) at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:379) at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:321) at org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.java:205) at org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:184) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:512) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:482) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129) at org.apache.maven.cli.MavenCli.main(MavenCli.java:287) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375)The database user has all the permissions to do this. I think its another schemifier bug?
-
0 comments Created 18 days ago by harryhSHtml.text should be able to fire an ajaxRequest on enter but not onBlurdppx -
1 comment Created 5 months ago by tjweirProblems with MappedStringIndex (Derby / H2)MapperxProblems with MappedStringIndex (Derby / H2)
Lighthouse #26: http://liftweb.lighthouseapp.com/projects/26102/tickets/26
Comments
I posted this to the mailing list back in december. Posting again so it's preserved :)
I tested this with Scala 2.7.3 and the Lift 1.0 release.
Recently I wanted to have a Mapper with a String uuid as primary key. I found out that MappedStringIndex does that. It didn't work though.Using it with with a derby driver threw this exception:
Caused by: java.sql.SQLException: 'ID' cannot be a column of a
primary key or unique key because it can contain null values.
The create table looked here like it generated the id itself, so the lift generated id isn't saved in the db.
Using the H2 driver:
CREATE TABLE myuuidmapper (id VARCHAR(64)) INSERT INTO myuuidmapper () VALUES ()This means the table has been created but the lift-generated id was not saved in the database.
I attached an example project. Boot.scala is configured to use the Derby driver. If requested I can provide an example for H2.
-
4 comments Created 3 months ago by acangianoInstaller issue with existing bash profiletperrettxThe Liftweb installer for Mac OS X generates a .bash_profile file whether .profile exists already or not. As a result of this, the shell will ignore the preexisting environment variables defined by .profile. The installer should detect the presence of .profile, and perform an append operation instead.
Comments
Haven't seen the details but Macport installer does something very similar. Could be useful.
See the function write_setting() in http://trac.macports.org/browser/trunk/base/portmgr/dmg/postflight
timperrett
Wed Aug 26 14:44:33 -0700 2009
| link
bah - this issue is actually arisen from my background... I didnt realize that some people use .profile to store their configuration - I thought everyone used .bash_profile... not to worry, its just a case of changing some of the installer code to check for a .profile as well as .bash_profile.
timperrett
Mon Oct 26 16:07:06 -0700 2009
| link
doh - tottaly forgot this was outstanding... will get to it in the next few days.
-
0 comments Created 2 months ago by ebiggsautocomplete widget - make options settable?mariusxthe default autocomplete options i.e.
val autocompleteOptions = JsRaw(...
need to be more easily set. I had to override and copy-paste the render function to change these. Making them settable without extending the class would be ideal. making the autocompleteOptions val an overridable outer function would be fine though.
Comments
-
0 comments Created about 1 month ago by dchenbeckerFix Date/Time parsingderekchenbeckerxIt should be reconfigured to use Joda Time
Comments
-
Support for i18n formatting/parsing of numbers
0 comments Created about 1 month ago by jeppenejsumIt would be nice if LIftRules has support for formatting/parsing of numbers in the same way as for dates. Both integers and decimals should be supported
When this is complete, Mapper should use this machinery in MappedInt (for thousand separators) and MappedDouble/Decimal
Comments
-
0 comments Created 27 days ago by ErosCandealresiAdd script merge similar to head/tail mergedppxProblem:
On heavily JavaScript based forms (sections appearing/enabling depending on user input) it is good practice to outsource form creation code to widget/component classes (homegrown). It improves readability of Snippet code and reusability of widgets. For event registration and other client side code, each component class would generate a head/lift:tail and a script tag. While head/tail tags are merged by the Lift framework, the resulting HTML code still remains cluttered with script tags (example below).Suggested solution:
Introduce a script merge that similarly to head/tail merge merges all script tags in head into one and all script tags in tail into a second one.Comments
-
JsObj requires String for property name, ECMA-262 allows for either String or Number
0 comments Created 25 days ago by DridusECMA-262 (http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf) section
11.1.5 describes the object initializer syntax as being either empty braces or braces containing PropertyNameAndValueList. PropertyNameAndValueList is comma-separated sequence of PropertyName : AssignmentExpression. PropertyName is one of Identifier, StringLiteral, or NumericLiteral.However, JE.JsObj.apply and JsObj both require the key to be a String, so what I would think the natural translation from the JavaScript:
{ headers: { 1: { sortable: false } } }To Lift:
JsObj("headers" -> JsObj(1 -> JsObj("sortable" -> false)))Does not work:
<console>:7: error: type mismatch; found : (Int, net.liftweb.http.js.JsObj) required: (String, net.liftweb.http.js.JsExp) JsObj("headers" -> JsObj(1 -> JsObj("sortable" -> false))) ^as 1 is not a String. This is trivially worked around by either making ones own JsExp or by converting the Int to a String:
JsObj("headers" -> JsObj("1" -> JsObj("sortable" -> false)))Apparently because JavaScript is entirely willing to treat strings as numbers and vice versa in property names, however it seems like it would be more natural.
This is low priority to me.
Comments
-
0 comments Created 23 days ago by mariusdanciuCalendarMonthView should allow populating records from JavaScriptmariusxRelated discussion here: http://groups.google.com/group/liftweb/browse_thread/thread/7de2d785a38bf27f
Br's,
MariusComments
-
0 comments Created 20 days ago by nafgMail should not be multipart when unnecessaryderekchenbeckerxA simple plain text mail should not be multipart. (Thread "URL in PlainMailBodyType to BlackBerry")
Comments
-
ALTER TABLE statement cannot add an IDENTITY column to a table.
0 comments Created 19 days ago by serefayarHi, i newbie for lift and scala.. im using eclipse. i create project by maven and i try to run. thats all bu i get :
INFO - CREATE TABLE users (id BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY , firstname VARCHAR(32) , lastname VARCHAR(32) , email VARCHAR(48) , locale VARCHAR(16) , timezone VARCHAR(32) , password_pw VARCHAR(48) , password_slt VARCHAR(20) , textarea VARCHAR(2048) , superuser SMALLINT , validated SMALLINT , uniqueıd VARCHAR(32))
INFO - ALTER TABLE users ADD CONSTRAINT users_PK PRIMARY KEY(id)
INFO - ALTER TABLE users ADD COLUMN id BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY
ERROR - Failed to Boot
java.sql.SQLSyntaxErrorException: ALTER TABLE statement cannot add an IDENTITY column to a table.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)Comments
-
0 comments Created 15 days ago by dlouwersdlouwersxAdd core dutch language filesWork In ProgressxAdd core nl_NL language file. Will also add as default nl language file since nl_BE isn't available.
Comments
-
0 comments Created 13 days ago by dlouwersdlouwersxAdd Ext Core support to LiftWork In ProgressxAdd Ext Core support to Lift
Comments
-
0 comments Created 11 days ago by nuttycomnuttycomxSitemapxType safety enhancements for LocWork In ProgressxAs discussed on the mailing list, it would be advantageous to:
- Add a type parameter to the base LocParam trait to allow for safety in the association between typeful LocParam instances such as Title and the type parameter of the Loc.
- Remove the overloading of "Param" that currently refers both to LocParam and the value associated with a Loc (potentially provided by a default or rewrite rule)
- Add data-aware instances of If, Unless, and Template LocParams
- Make LocParam a sealed trait with a well-defined extension point to help the compiler catch possible incomplete match statements.
Comments
-
SHtml.ajaxForm should take an optional postSubmit JsCmd
0 comments Created 8 days ago by dchenbeckerThis would allow client-side processing or updates after the form is submitted.
Comments
-
0 comments Created 8 days ago by mariusdanciumariusxAjax and JSON forms do not work well when submitting from JS ...On Review BoardxTim ran into this crappy behavior when calling submit() function on a form the onsubmit event doesn't actually get called. Apparently this is a known browser behavior.
I propose to have alternative helpers in SHtml calls where we feed say the form ID and the actual Ajax call happens immediately outside of onsubmit context. For instance
Assume <form id="login"> ... </form>
Somewhere in a bind we have
<button onclick={submitJsonForm(jsonHandler, "login")}>Press me </button>
def submitJsonForm(jsonHandler: JsonHandler, formId: String): JsCmd = {
jsonHandler.call("processForm", FormToJSON(formId)) }a similar concept for ajaxForms ...
haven't compiled it but you get the idea ...
Br's,
MariusComments
-
The documentation suggests that certain elements (like error_class) can be overridden. But I did it using:
<lift:Msgs> <lift:error_class>errorBox</lift:error_class> </lift:Msgs>I'm guessing that the <lift:snippet type="error_report"> is dated?
Comments
-
Lift Mapper (Record) camelCase to snake_case for case insensitive databases
0 comments Created 6 days ago by awhitfordPlease make the Scala identifier to database identifier translation convention dependent on whether the database supports case sensitive or case insensitive identifiers.
For example, Hibernate offers an Enhanced Naming Convention that translates Java camelCase to a more Oracle friendly snake_case. I am interested in doing the same thing with Lift Mapper/
Record. In the mean time, I need to override dbTableName and dbColumnName, but I'd like to avoid that and just agree on the convention.I could imagine that the Database Provider would maintain a flag to say whether the database is case sensitive or not, and then based on that flag, would pass either the camelCase directly (for case sensitive), or snake_case(camelCase) (for case insensitive).
I am specifically using Lift Mapper with Oracle, but I think this issue relates to Lift Record too as well as any other case insensitive database.
See discussion: http://groups.google.com/group/liftweb/t/e7f85ede13b303da
Comments
-
0 comments Created 2 days ago by dpp1.1xImplement Wizard multi-screen input formsdppxComments
-
Part of the build process should insure that archetypes are tested automatically
Comments
-
Please add valMinLen and valMaxLen validation functions to net.liftweb.record.field.StringField. If it's preferred to put them in a separate helper object that would be fine as well.
Also, a companion object for LocaleField that has a list of all possible locales (similar to TimeZoneField) would be nice.
Thanks
Comments
-
MappedForeignKey : Access to .obj field after update
0 comments Created 2 days ago by jeanadrien- Module
- Mapper
- Request
- When updating the referenced object in a MappedForeignKey column, the .is field returns the new value of the id, but the .obj field still returns the reference of the object originally loaded with the owner. The .is and .obj should be coherent.
- Example
-
val testUser : User = User.find(By(User.id, 1)).open_! val testAddress = testUser.homeAddress.obj; Log.debug("Current FK id is "+testUser.homeAddress.is) // returns 1 testAddress match { case Full(addr) => val anotherAddr : Address = Address.find(By(Address.id,2)).open_! Log.debug("There was an address: "+addr+". Replace it with addr id#2: "+anotherAddr); testUser.homeAddress(anotherAddr).save case _ => [...] } val retestAddress = testUser.homeAddress.obj Log.debug("Now obj is "+retestAddress); // returns a Box with the old address (id == 1) Log.debug("And is is "+testUser.homeAddress.is) // returns 2 - See
- http://groups.google.com/group/liftweb/browse_thread/thread/0041894ec33fc538/0bcb1a85658155af?hl=en#0bcb1a85658155af
Regarding to this thread
Comments
-
No scala source file in *SNAPSHOT-sources.jar
0 comments Created 1 day ago by jeppenejsumThe *SNAPSHOT-sources.jar doesn't seem to contain any scala source files, only static resources
Comments
-
If javax.activation is merely a transitive dependency for javax.mail, then it should not be explicitly declared in http://scala-tools.org/repo-releases/net/liftweb/lift/1.1-M7/lift-1.1-M7.pom
Note that according to this: http://java.sun.com/products/javamail/
the Activation framework dependency is not necessary for Java 6 users because it is included.See thread: http://groups.google.com/group/liftweb/browse_thread/thread/f435fd3a0ddbd08e
Comments
-
Lift should allow injecting custom driver abstractions
0 comments Created about 19 hours ago by lopexIn Driver.scala there is no way to intercept singleton method calcDriver to allow user supported driver abstractions since in DB.scala DriverType object is used explicitly.
Comments
-
Missing a space after "URL" and before "was":
private[liftweb] def defaultCreateNotFound(in: Req) =
XhtmlResponse(( The Requested URL{in.contextPath + in.uri}was not found on this server ), ResponseInfo.docType(in), List("Content-Type" -> "text/html; charset=utf-8"), Nil, 404, S.ieMode)Comments
- 1.1▾
- Derby▾
- Mapper▾
- On Review Board▾
- Sitemap▾
- Work In Progress▾
- aboisvert▾
- could not repro.▾
- derekchenbecker▾
- dlouwers▾
- dpp▾
- hseeberger▾
- indrajitr▾
- joni▾
- marius▾
- more info▾
- nuttycom▾
- tjweir▾
- tperrett▾
- website▾
- wiki▾
- Apply to Selection
-
Change Color…
Preview:preview
- Rename…
- Delete











