| 

.NET C# Java Javascript Exception

Private Message System mit Grails

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Private Message System mit Grails

whitenexx - 30.03.2009 19:46
Hi zusammen,
ich nutze noch Grails 1.0.4 (kann zur Zeit aus diversen Gründen nicht upgraden) und möchte ein Private Nachrichten System schreiben, dass ähnlich wie in einem Forum funktioniert.
Also UserA sieht Profil von UserB und kann dort auf einen PN/PM-Button klicken, kommt daraufhin auf eine PM-Seite wo er seine Nachricht+Betreff eingeben kann und abschicken klickt.

Das hab ich fast alles auch hinbekommen, nur habe ich ein Problem:
Wie bekomm ich das mit dem Button im Profil hin, also ich muss ja entweder die UserID per Post oder per Get an die Message-Seite übertragen, damit der MessageController weiß, an wen die Nachricht gerichtet ist. Im Moment muss ich immer auf die MessageController-Seite gehen und dort einen User auswählen, Nachricht ausfüllen und abschicken. Nur ich möchte nicht, dass der User immer wieder den Empfänger aussuchen muss. Wenn man im Profil von "Bill Gates" auf PN/PM klickt, soll die PN automatisch an "Bill Gates" gehen und die Auswahl fällt weg.

Hoffe jemand versteht was ich erreichen möchte und kann mir helfen das zu realisieren.

Danke,
whitenexx

/* Domain class for private messaging */
class Message {

  String message
  User from
  User to
  Date transmitted  /* Datum/Zeit der Übermittlung */
  String title
  Boolean read /* Nachricht schon gelesen = true */
  Boolean answered /* Nachricht beantwortet = true */
  Boolean deleted /*Nachricht gelöscht = true */

  static constraints = {
    message(blank: false, maxLength: 500)
    title(blank: false, maxLength: 80)
    to(blank: false, nullable: false)
    from(blank: false, nullable: false)
    transmitted(blank: false, nullable: false)
    read(nullable: true)
    answered(nullable: true)

  }


}

class MessageController {

  def authenticateService

  def index = { redirect(action: list, params: params) }

  // the delete, save and update actions only accept POST requests
  def allowedMethods = [delete: 'POST', save: 'POST', update: 'POST']

  def list = {
    //Message.list()



    if (!params.max) params.max = 10
    [messageInstanceList: Message.list(params)]
  }

  def show = {
    def messageInstance = Message.get(params.id)

    if (!messageInstance) {
      flash.message = "Message not found with id ${params.id}"
      redirect(action: list)
    }
    else { return [messageInstance: messageInstance] }
  }

  def delete = {
    def messageInstance = Message.get(params.id)
    if (messageInstance) {
      messageInstance.delete()
      flash.message = "Message ${params.id} deleted"
      redirect(action: list)
    }
    else {
      flash.message = "Message not found with id ${params.id}"
      redirect(action: list)
    }
  }

  def edit = {
    def messageInstance = Message.get(params.id)

    if (!messageInstance) {
      flash.message = "Message not found with id ${params.id}"
      redirect(action: list)
    }
    else {
      return [messageInstance: messageInstance]
    }
  }

  def update = {
    def messageInstance = Message.get(params.id)
    if (messageInstance) {
      messageInstance.properties = params
      if (!messageInstance.hasErrors() && messageInstance.save()) {
        flash.message = "Message ${params.id} updated"
        redirect(action: show, id: messageInstance.id)
      }
      else {
        render(view: 'edit', model: [messageInstance: messageInstance])
      }
    }
    else {
      flash.message = "Message not found with id ${params.id}"
      redirect(action: edit, id: params.id)
    }
  }

  def create = {
    def messageInstance = new Message()
    messageInstance.properties = params
    return ['messageInstance': messageInstance]
  }

  def save = {
    def messageInstance = new Message(params)
    messageInstance.answered = 0
    messageInstance.from = authenticateService.userDomain()
    messageInstance.read = 0
    messageInstance.transmitted = new Date()

    if (!messageInstance.hasErrors() && messageInstance.save()) {
      flash.message = "Message ${messageInstance.id} created"
      redirect(action: show, id: messageInstance.id)
    }
    else {
      render(view: 'create', model: [messageInstance: messageInstance])
    }
  }
}

#grails-de im irc.freenode.net <--- visit!
[android-developers.de]
[twitter.com]


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Private Message System mit Grails" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.