Skip to content

Commit

Permalink
Merge pull request #19 from lkuczera/kukems
Browse files Browse the repository at this point in the history
test
  • Loading branch information
lkuczera committed Mar 20, 2012
2 parents 05dd805 + 4a8ac9d commit be994d5
Show file tree
Hide file tree
Showing 11 changed files with 101 additions and 97 deletions.
3 changes: 2 additions & 1 deletion .gitignore
@@ -1,8 +1,9 @@
/target
target
lift_proto*
lib_managed
project/build/target
project/boot/
project/plugins/target
.scala_dependencies


Expand Down
3 changes: 2 additions & 1 deletion README.txt
Expand Up @@ -29,4 +29,5 @@ p: demo11

Have fun!

Lift-blog needs new design. If you would like to contribute one please contact team :)
Lift-blog needs new design. If you would like to contribute one please contact me.

6 changes: 3 additions & 3 deletions project/build.properties
@@ -1,9 +1,9 @@
#Project properties
#Fri Apr 23 11:24:20 PDT 2010
project.organization=Lift
project.name=Lift SBT Template
project.organization=lift
project.name=lift-blog
sbt.version=0.7.5
project.version=0.1
project.version=0.2
def.scala.version=2.7.7
build.scala.versions=2.9.0
project.initialize=false
6 changes: 2 additions & 4 deletions project/build/LiftProject.scala
@@ -1,9 +1,7 @@
import sbt._
import de.element34.sbteclipsify._


class LiftProject(info: ProjectInfo) extends DefaultWebProject(info) with Eclipsify {
val liftVersion = "2.4-M1"
class LiftProject(info: ProjectInfo) extends DefaultWebProject(info) {
val liftVersion = "2.4-M2"

// uncomment the following if you want to use the snapshot repo
val scalatoolsSnapshot = ScalaToolsSnapshots
Expand Down
6 changes: 6 additions & 0 deletions project/plugins/LiftProjectPlugins.scala
@@ -0,0 +1,6 @@
import sbt._

class MySbtProjectPlugins(info: ProjectInfo) extends PluginDefinition(info) {
lazy val eclipse = "de.element34" % "sbt-eclipsify" % "0.7.0"
}

3 changes: 3 additions & 0 deletions project/plugins/project/build.properties
@@ -0,0 +1,3 @@
#Project properties
#Sat Jun 04 22:50:36 CEST 2011
plugin.uptodate=true
2 changes: 1 addition & 1 deletion src/main/scala/org/liftblog/model/LinkList.scala
Expand Up @@ -12,7 +12,7 @@ class LinkList extends LongKeyedMapper[LinkList] with IdPK {
object description extends MappedText(this)

object position extends MappedInt(this){
override def dbIndexed_? = true
//override def dbIndexed_? = true
}

object userId extends MappedLongForeignKey(this,User)
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/org/liftblog/model/LinkListItem.scala
Expand Up @@ -18,7 +18,7 @@ class LinkListItem extends LongKeyedMapper[LinkListItem] with IdPK {
}

object position extends MappedInt(this){
override def dbIndexed_? = true
//override def dbIndexed_? = true
}

def moveUp() = move(-1)
Expand Down
163 changes: 79 additions & 84 deletions src/main/scala/org/liftblog/snippet/Posting.scala
Expand Up @@ -6,111 +6,106 @@ import _root_.net.liftweb.util._
import _root_.net.liftweb.util.Helpers
import net.liftweb.http._
import Helpers._
import net.liftweb.mapper.{By, ByList}
import net.liftweb.mapper.{ By, ByList }
import net.liftweb.textile.TextileParser
import net.liftweb.common._


class Posting extends Logger {

/**
* Creates PostTag ManyToMany relationships for specified post and tags.
* @param post - post to associate
* @param tags - tags
*/
def assocTags(post: Post, tags: Seq[String]) = {
val tagsBuf = new ListBuffer[Tag]()
for(tagText <- tags) {
val tag: Tag = Tag.find(By(Tag.text, tagText)) match {
case Full(tag) => tag
case Empty => Tag.create.text(tagText)
case f: Any => info("error occured" + f); S.redirectTo("/error")
}
tag.save
PostTag.join(tag, post)
tagsBuf += tag
}
tagsBuf.toList
}
/**
* Add and/or remove tags.
* @param post
* @param tags
*/
def editTagsFor(post: Post, tags: List[String]) = {
val oldTags = PostTag.findAll(By(PostTag.post, post)).map(_.tag.obj).filter(_.isDefined).map(_.open_!)
val newTags = assocTags(post, tags -- oldTags.map(_.text.is))
val toremove = oldTags filterNot (Tag.findAll(ByList(Tag.text, tags)) contains);
for(postTag <- PostTag.findAll(By(PostTag.post, post))) {
postTag.tag.obj match {
case Full(tag) if(toremove.contains(tag))=> postTag.delete_!
case _ =>
}
}
}


/**
* Creates new post.
* @param in
* @return
*/
def add(in: NodeSeq): NodeSeq = {
var postValues = Map[String,String]()

/**
* Creates PostTag ManyToMany relationships for specified post and tags.
* @param post - post to associate
* @param tags - tags
*/
def assocTags(post: Post, tags: Seq[String]) = {
val tagsBuf = new ListBuffer[Tag]()
for (tagText <- tags) {
val tag: Tag = Tag.find(By(Tag.text, tagText)) match {
case Full(tag) => tag
case Empty => Tag.create.text(tagText)
case f: Any => info("error occured"+f); S.redirectTo("/error")
}
tag.save
PostTag.join(tag, post)
tagsBuf += tag
}
tagsBuf.toList
}
/**
* Add and/or remove tags.
* @param post
* @param tags
*/
def editTagsFor(post: Post, tags: List[String]) = {
val oldTags = PostTag.findAll(By(PostTag.post, post)).map(_.tag.obj).filter(_.isDefined).map(_.open_!)
val newTags = assocTags(post, tags -- oldTags.map(_.text.is))
val toremove = oldTags filterNot (Tag.findAll(ByList(Tag.text, tags)) contains);
for (postTag <- PostTag.findAll(By(PostTag.post, post))) {
postTag.tag.obj match {
case Full(tag) if (toremove.contains(tag)) => postTag.delete_!
case _ =>
}
}
}

/**
* Creates new post.
* @param in
* @return
*/
def add(in: NodeSeq): NodeSeq = {
var postValues = Map[String, String]()

def submit() = {
List("en").foreach(lang => {
val title = postValues(lang+"title").trim
if(title=="") S.error("Title musn't be empty")
else {
val html = postValues(lang+"text")
val post = Post.create.date(new java.util.Date).text(html).title(title)
post.save
assocTags(post, postValues(lang+"tags").split(" "))
}}
)
if(S.errors.isEmpty) S.redirectTo("/index")
}
List("en").foreach(lang => {
val title = postValues(lang+"title").trim
if (title == "") S.error("Title musn't be empty")
else {
val html = postValues(lang+"text")
val post = Post.create.date(new java.util.Date).text(html).title(title)
post.save
assocTags(post, postValues(lang+"tags").split(" "))
}
})
if (S.errors.isEmpty) S.redirectTo("/index")
}

((".post" #> List("en").map(lang =>
".lang" #> lang &
".title" #> SHtml.text("", parm => postValues += ((lang+"title", parm)), ("size", "55")) &
".tags" #> SHtml.text("", parm => postValues += ((lang+"tags", parm))) &
".text" #> SHtml.textarea("", parm => postValues += ((lang+"text", parm)), ("id", "markitup")))) & ":submit" #> SHtml.submit("Post", submit))(in)
}

((".post" #> List("en").map( lang =>
".lang" #> lang &
".title" #> SHtml.text("", parm => postValues += ((lang+"title",parm)), ("size","55")) &
".tags" #> SHtml.text("", parm => postValues += ((lang+"tags",parm))) &
".text" #> SHtml.textarea("", parm => postValues += ((lang+"text",parm)), ("id", "markitup"))
)) & ":submit" #> SHtml.submit("Post", submit))(in)
}

def edit(in: NodeSeq): NodeSeq = {
def edit(in: NodeSeq): NodeSeq = {

val post = Post.find(Index.postid)

post match {
case Full(p) =>
case Empty => S.error("Post to edit not found"); S.redirectTo("/index")
case _ => S.error("Error occured"); S.redirectTo("/index")
case Empty => S.error("Post to edit not found"); S.redirectTo("/index")
case _ => S.error("Error occured"); S.redirectTo("/index")
}

val p = post.openTheBox

var tags = PostTag.findAll(By(
PostTag.post, p)
).map(_.tag.obj).filter(
_.isDefined
).map(_.open_!.text.is).mkString(" ")
PostTag.post, p)).map(_.tag.obj).filter(
_.isDefined).map(_.open_!.text.is).mkString(" ")

def submit() = {
def submit() = {

if(p.title.isEmpty) S.error("Title musn't be empty")
else {
if (p.title.isEmpty) S.error("Title musn't be empty")
else {
p.save
editTagsFor(p, tags.split(" ").toList)
S.redirectTo("/index")
}
}
S.redirectTo("/index")
}
}

(".title" #> SHtml.text(p.title, p.title.set(_), ("size","55")) &
".tags" #> SHtml.text(tags, parm => tags=parm) &
".text" #> (SHtml.textarea(p.text, p.text.set(_), ("id", "markitup")) ++ SHtml.hidden(() => submit())))(in)
(".title" #> SHtml.text(p.title, p.title.set(_), ("size", "55")) &
".tags" #> SHtml.text(tags, parm => tags = parm) &
".text" #> (SHtml.textarea(p.text, p.text.set(_), ("id", "markitup")) ++ SHtml.hidden(() => submit())))(in)

}
}
}
2 changes: 1 addition & 1 deletion src/main/webapp/edit.html
Expand Up @@ -9,7 +9,7 @@
replaced with embedded content
</span>

<form class="lift:Posting.edit" action="#" method="get">
<form class="lift:Posting.edit?form=post">
<h2>Edit Post</h2>
<p>
Title: <div class="title" /><br />
Expand Down
2 changes: 1 addition & 1 deletion src/main/webapp/posting.html
Expand Up @@ -9,7 +9,7 @@
replaced with embedded content
</span>

<form class="lift:Posting.add" action="#" method="get">
<form class="lift:Posting.add?form=post">
<h2>Create Post</h2>
<p>
<div class="post">
Expand Down

0 comments on commit be994d5

Please sign in to comment.