Skip to content

Commit

Permalink
Episode 12.
Browse files Browse the repository at this point in the history
  • Loading branch information
Chris Peters committed May 23, 2010
1 parent 31e661a commit 61af9a7
Show file tree
Hide file tree
Showing 9 changed files with 89 additions and 1 deletion.
1 change: 1 addition & 0 deletions config/settings.cfm
Expand Up @@ -15,3 +15,4 @@
<cfset set(functionName="textField", labelPlacement="before", prependToLabel="<div>", append="</div>", appendToLabel="<br />")>
<cfset set(functionName="passwordField", labelPlacement="before", prependToLabel="<div>", append="</div>", appendToLabel="<br />")>
<cfset set(functionName="radioButton", labelPlacement="after", prepend="<div>", appendToLabel="</div>")>
<cfset set(functionName="textArea", labelPlacement="before", prependToLabel="<div>", append="</div>", appendToLabel="<br />")>
4 changes: 3 additions & 1 deletion controllers/Controller.cfc
Expand Up @@ -8,7 +8,9 @@

<cffunction name="checkLogin">

<cfif not StructKeyExists(session, "user")>
<cfif StructKeyExists(session, "user")>
<cfset loggedInUser = model("person").findByKey(session.user.id)>
<cfelse>
<cfset redirectTo(controller="main", action="login")>
</cfif>

Expand Down
2 changes: 2 additions & 0 deletions controllers/Main.cfc
Expand Up @@ -3,6 +3,8 @@
<cffunction name="home">

<cfset users = model("person").findAll(order="createdAt DESC", maxRows=3)>
<cfset status = model("status").new()>
<cfset statusUpdates = model("status").findAll(include="person", order="createdAt DESC", maxRows=15)>

</cffunction>

Expand Down
17 changes: 17 additions & 0 deletions controllers/StatusUpdates.cfc
@@ -0,0 +1,17 @@
<cfcomponent extends="Controller" output="false">

<cffunction name="add">

<cfset status = model("status").new(params.status)>
<cfset status.personId = loggedInUser.id>
<cfif status.save()>
<cfset flashInsert(success="Your status was updated.")>
<cfset redirectTo(controller="main", action="home")>
<cfelse>
<cfset users = model("person").findAll(order="createdAt DESC", maxRows=3)>
<cfset renderPage(controller="main", action="home")>
</cfif>

</cffunction>

</cfcomponent>
1 change: 1 addition & 0 deletions controllers/User.cfc
Expand Up @@ -23,6 +23,7 @@
<cffunction name="profile">

<cfset user = model("person").findOneByUrlId(params.urlId)>
<cfset statusUpdates = user.statuses(order="createdAt DESC", maxRows=10)>

</cffunction>

Expand Down
4 changes: 4 additions & 0 deletions models/Person.cfc
Expand Up @@ -2,6 +2,10 @@

<cffunction name="init">

<!--- Associations --->
<cfset hasMany("statuses")>

<!--- Validations --->
<cfset validatesPresenceOf("firstName,lastName,email,gender,urlId")>
<cfset validatesFormatOf(property="email", type="email")>
<cfset validatesLengthOf(property="firstName", maximum=30)>
Expand Down
14 changes: 14 additions & 0 deletions models/Status.cfc
@@ -0,0 +1,14 @@
<cfcomponent extends="Model" output="false">

<cffunction name="init">

<!--- Associations --->
<cfset belongsTo("person")>

<!--- Validations --->
<cfset validatesPresenceOf("message,personId")>
<cfset validatesNumericalityOf(property="personId", allowBlank=true)>

</cffunction>

</cfcomponent>
35 changes: 35 additions & 0 deletions views/main/home.cfm
@@ -1,4 +1,6 @@
<cfparam name="users" type="query">
<cfparam name="status">
<cfparam name="statusUpdates" type="query">

<cfoutput>

Expand All @@ -8,6 +10,39 @@
<p class="success">#flash("success")#</p>
</cfif>

<!--- Status update form --->
<h2>Update Your Status</h2>

<cfif status.hasErrors()>
<div class="error">
<p>There were some problems with your update:</p>
#errorMessagesFor("status")#
</div>
</cfif>

#startFormTag(controller="statusUpdates", action="add")#

#textArea(label="What are you up to?", objectName="status", property="message")#

<div>
#submitTag(value="Share")#
</div>

#endFormTag()#

<!--- Status updates --->
<h2>Happening in Your Network</h2>
<cfloop query="statusUpdates">
<div>
<p>
<strong>#linkTo(text="#statusUpdates.firstName# #statusUpdates.lastName#", route="userProfile", urlId=statusUpdates.urlId)#:</strong>
#statusUpdates.message#<br />
#timeAgoInWords(statusUpdates.createdAt)# ago
</p>
</div>
</cfloop>

<!--- Newest members --->
<h2>Newest Members</h2>
<ul>
<cfloop query="users">
Expand Down
12 changes: 12 additions & 0 deletions views/user/profile.cfm
@@ -1,4 +1,5 @@
<cfparam name="user">
<cfparam name="statusUpdates" type="query">

<cfoutput>

Expand All @@ -12,4 +13,15 @@
#DateFormat(user.createdAt, "mmmm d, yyyy")#
</p>

<h2>Latest Updates</h2>
<cfloop query="statusUpdates">
<div>
<p>
<strong>#linkTo(text="#user.firstName# #user.lastName#", route="userProfile", urlId=user.urlId)#:</strong>
#statusUpdates.message#<br />
#timeAgoInWords(statusUpdates.createdAt)# ago
</p>
</div>
</cfloop>

</cfoutput>

0 comments on commit 61af9a7

Please sign in to comment.