diff --git a/Gemfile b/Gemfile
index fb86cab..47ebd95 100644
--- a/Gemfile
+++ b/Gemfile
@@ -12,6 +12,9 @@ group :assets do
end
gem 'jquery-rails'
+gem 'omniauth'
+gem 'omniauth-google'
+gem 'omniauth-google-oauth2'
group :development do
gem 'sqlite3'
@@ -19,5 +22,5 @@ end
group :production do
gem 'pg'
- gem 'psych'
-end
\ No newline at end of file
+ # gem 'psych'
+end
\ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
index e578e30..32ca89e 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,6 +1,6 @@
GIT
remote: git://github.com/maccman/spine-rails.git
- revision: 0825b5ba0f44725cc026601a1c88808f19037627
+ revision: fc469c14379d57af842794d211044cce495fc9c0
specs:
spine-rails (0.0.9)
rails (>= 3.1.0)
@@ -37,6 +37,7 @@ GEM
activesupport (3.2.0.rc1)
i18n (~> 0.6)
multi_json (~> 1.0)
+ addressable (2.2.6)
arel (3.0.0.rc1)
builder (3.0.0)
coffee-rails (3.2.0)
@@ -56,6 +57,11 @@ GEM
eventmachine (0.12.10)
execjs (1.2.13)
multi_json (~> 1.0)
+ faraday (0.7.5)
+ addressable (~> 2.2.6)
+ multipart-post (~> 1.1.3)
+ rack (>= 1.1.0, < 2)
+ hashie (1.2.0)
hike (1.2.1)
i18n (0.6.0)
journey (1.0.0.rc4)
@@ -69,10 +75,22 @@ GEM
treetop (~> 1.4.8)
mime-types (1.17.2)
multi_json (1.0.4)
+ multipart-post (1.1.4)
+ oauth2 (0.5.1)
+ faraday (~> 0.7.4)
+ multi_json (~> 1.0.3)
+ omniauth (1.0.1)
+ hashie (~> 1.2)
+ rack
+ omniauth-google-oauth2 (0.1.8)
+ omniauth (~> 1.0)
+ omniauth-oauth2
+ omniauth-oauth2 (1.0.0)
+ oauth2 (~> 0.5.0)
+ omniauth (~> 1.0)
pg (0.12.0)
rake-compiler (~> 0.7)
polyglot (0.3.3)
- psych (1.2.2)
rack (1.3.6)
rack-cache (1.1)
rack (>= 0.4)
@@ -130,8 +148,9 @@ DEPENDENCIES
coffee-rails (~> 3.2.0)
eco
jquery-rails
+ omniauth
+ omniauth-google-oauth2
pg
- psych
rails (= 3.2.0.rc1)
spine-rails!
sqlite3
diff --git a/app/assets/images/blacky.png b/app/assets/images/blacky.png
new file mode 100644
index 0000000..d125b4b
Binary files /dev/null and b/app/assets/images/blacky.png differ
diff --git a/app/assets/images/larrow.png b/app/assets/images/larrow.png
index ab800b3..2156abe 100644
Binary files a/app/assets/images/larrow.png and b/app/assets/images/larrow.png differ
diff --git a/app/assets/images/new.png b/app/assets/images/new.png
index 1c10d24..7918876 100755
Binary files a/app/assets/images/new.png and b/app/assets/images/new.png differ
diff --git a/app/assets/images/rarrow.png b/app/assets/images/rarrow.png
index 8c77f83..090790e 100644
Binary files a/app/assets/images/rarrow.png and b/app/assets/images/rarrow.png differ
diff --git a/app/assets/images/star.png b/app/assets/images/star.png
new file mode 100755
index 0000000..e4c2a34
Binary files /dev/null and b/app/assets/images/star.png differ
diff --git a/app/assets/images/starb.png b/app/assets/images/starb.png
new file mode 100755
index 0000000..86167bb
Binary files /dev/null and b/app/assets/images/starb.png differ
diff --git a/app/assets/images/stard.png b/app/assets/images/stard.png
new file mode 100755
index 0000000..d4198a4
Binary files /dev/null and b/app/assets/images/stard.png differ
diff --git a/app/assets/images/whitey.png b/app/assets/images/whitey.png
new file mode 100644
index 0000000..365c61a
Binary files /dev/null and b/app/assets/images/whitey.png differ
diff --git a/app/assets/javascripts/app/controllers/activity.js.coffee b/app/assets/javascripts/app/controllers/activity.js.coffee
new file mode 100644
index 0000000..b337733
--- /dev/null
+++ b/app/assets/javascripts/app/controllers/activity.js.coffee
@@ -0,0 +1,10 @@
+class App.Activity extends Spine.Controller
+ # elements:
+ # '.items': items
+ #
+ # events:
+ # 'click .item': 'itemClick'
+
+ constructor: ->
+ super
+ # ...
\ No newline at end of file
diff --git a/app/assets/javascripts/app/controllers/messages.js.coffee b/app/assets/javascripts/app/controllers/messages.js.coffee
new file mode 100644
index 0000000..4d53ae8
--- /dev/null
+++ b/app/assets/javascripts/app/controllers/messages.js.coffee
@@ -0,0 +1,13 @@
+$ = Spine.$
+
+class App.Messages extends Spine.Controller
+ className: 'messages'
+
+ constructor: ->
+ super
+ @render()
+
+ render: ->
+ @append new App.Messages.Aside
+ @append $('
').addClass('vdivide')
+ @append new App.Messages.Article
\ No newline at end of file
diff --git a/app/assets/javascripts/app/controllers/messages/article.js.coffee b/app/assets/javascripts/app/controllers/messages/article.js.coffee
new file mode 100644
index 0000000..1a6ce4b
--- /dev/null
+++ b/app/assets/javascripts/app/controllers/messages/article.js.coffee
@@ -0,0 +1,50 @@
+records = [
+ {
+ subject: 'New Email idea',
+ body: 'This is the new email idea',
+ avatar_url: 'https://secure.gravatar.com/avatar/11d44fdc7a81963600d079813ede2b69'
+ },
+
+ {
+ subject: 'New Email idea',
+ body: 'This is the new email idea',
+ avatar_url: 'https://secure.gravatar.com/avatar/11d44fdc7a81963600d079813ede2b69',
+ me: true
+ }
+]
+
+compose = {
+ avatar_url: 'https://secure.gravatar.com/avatar/11d44fdc7a81963600d079813ede2b69'
+}
+
+class Item extends Spine.Controller
+ className: 'item'
+
+ render: ->
+ @el.toggleClass('me', @record.me or false)
+ @html @view('messages/article/item')(@record)
+
+class Compose extends Spine.Controller
+ className: 'item me compose'
+
+ constructor: ->
+ super
+ @render()
+
+ render: ->
+ @html @view('messages/article/compose')(compose)
+
+class App.Messages.Article extends Spine.Controller
+ elements:
+ '.items': 'items'
+
+ constructor: ->
+ super
+
+ @replace @view('messages/article')()
+
+ @add(records)
+
+ add: (records) ->
+ for record in records
+ @items.append(new Item(record: record).render())
\ No newline at end of file
diff --git a/app/assets/javascripts/app/controllers/messages/aside.js.coffee b/app/assets/javascripts/app/controllers/messages/aside.js.coffee
new file mode 100644
index 0000000..c6e75f4
--- /dev/null
+++ b/app/assets/javascripts/app/controllers/messages/aside.js.coffee
@@ -0,0 +1,26 @@
+records = [
+ {
+ subject: 'New Email idea',
+ body: 'This is the new email idea',
+ avatar_url: 'https://secure.gravatar.com/avatar/11d44fdc7a81963600d079813ede2b69'
+ }
+]
+
+class Item extends Spine.Controller
+ className: 'item active'
+
+ render: ->
+ @html @view('messages/aside/item')(@record)
+
+class App.Messages.Aside extends Spine.Controller
+ elements:
+ '.items': 'items'
+
+ constructor: ->
+ super
+ @replace @view('messages/aside')()
+ @add(records)
+
+ add: (records) ->
+ for record in records
+ @items.append(new Item(record: record).render())
\ No newline at end of file
diff --git a/app/assets/javascripts/app/controllers/nav.js.coffee b/app/assets/javascripts/app/controllers/nav.js.coffee
new file mode 100644
index 0000000..08f2885
--- /dev/null
+++ b/app/assets/javascripts/app/controllers/nav.js.coffee
@@ -0,0 +1,7 @@
+class App.Nav extends Spine.Controller
+ constructor: ->
+ super
+ @render()
+
+ render: ->
+ @replace @view('nav')()
\ No newline at end of file
diff --git a/app/assets/javascripts/app/controllers/starred.js.coffee b/app/assets/javascripts/app/controllers/starred.js.coffee
new file mode 100644
index 0000000..6615198
--- /dev/null
+++ b/app/assets/javascripts/app/controllers/starred.js.coffee
@@ -0,0 +1,10 @@
+class App.Starred extends Spine.Controller
+ # elements:
+ # '.items': items
+ #
+ # events:
+ # 'click .item': 'itemClick'
+
+ constructor: ->
+ super
+ # ...
\ No newline at end of file
diff --git a/app/assets/javascripts/app/index.js.coffee b/app/assets/javascripts/app/index.js.coffee
index 660b5f2..c41e7ec 100644
--- a/app/assets/javascripts/app/index.js.coffee
+++ b/app/assets/javascripts/app/index.js.coffee
@@ -4,6 +4,8 @@
#= require spine/manager
#= require spine/ajax
#= require spine/route
+#= require gfx
+#= require gfx/effects
#= require_tree ./lib
#= require_self
@@ -15,10 +17,23 @@ class App extends Spine.Controller
constructor: ->
super
- # Initialize controllers:
- # @append(@items = new App.Items)
- # ...
+ @append new App.Nav
+ @append new App.Stack
- Spine.Route.setup()
+ Spine.Route.setup()
+
+class App.Stack extends Spine.Stack
+ constructor: ->
+ super
+
+ @activity = new App.Activity(stack: @)
+ @messages = new App.Messages(stack: @)
+ @starred = new App.Starred(stack: @)
+
+ @add(@activity)
+ @add(@messages)
+ @add(@starred)
+
+ @messages.active()
window.App = App
\ No newline at end of file
diff --git a/app/assets/javascripts/app/models/conversation.js.coffee b/app/assets/javascripts/app/models/conversation.js.coffee
new file mode 100644
index 0000000..db03ecb
--- /dev/null
+++ b/app/assets/javascripts/app/models/conversation.js.coffee
@@ -0,0 +1,3 @@
+class App.Conversation extends Spine.Model
+ @configure 'Conversation', 'from'
+ @extend Spine.Model.Ajax
\ No newline at end of file
diff --git a/app/assets/javascripts/app/models/message.js.coffee b/app/assets/javascripts/app/models/message.js.coffee
new file mode 100644
index 0000000..5a555bf
--- /dev/null
+++ b/app/assets/javascripts/app/models/message.js.coffee
@@ -0,0 +1,3 @@
+class App.Message extends Spine.Model
+ @configure 'Message', 'subject', 'body'
+ @extend Spine.Model.Ajax
\ No newline at end of file
diff --git a/app/assets/javascripts/app/views/messages/article.jst.eco b/app/assets/javascripts/app/views/messages/article.jst.eco
new file mode 100644
index 0000000..b148e6f
--- /dev/null
+++ b/app/assets/javascripts/app/views/messages/article.jst.eco
@@ -0,0 +1,8 @@
+
+
+ Archive
+ Activity
+
+
+
+
\ No newline at end of file
diff --git a/app/assets/javascripts/app/views/messages/article/compose.jst.eco b/app/assets/javascripts/app/views/messages/article/compose.jst.eco
new file mode 100644
index 0000000..10b0937
--- /dev/null
+++ b/app/assets/javascripts/app/views/messages/article/compose.jst.eco
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/assets/javascripts/app/views/messages/article/item.jst.eco b/app/assets/javascripts/app/views/messages/article/item.jst.eco
new file mode 100644
index 0000000..bd0f2fe
--- /dev/null
+++ b/app/assets/javascripts/app/views/messages/article/item.jst.eco
@@ -0,0 +1,3 @@
+
+
<%= @body %>
+
\ No newline at end of file
diff --git a/app/assets/javascripts/app/views/messages/aside.jst.eco b/app/assets/javascripts/app/views/messages/aside.jst.eco
new file mode 100644
index 0000000..6b3c5d9
--- /dev/null
+++ b/app/assets/javascripts/app/views/messages/aside.jst.eco
@@ -0,0 +1,12 @@
+
\ No newline at end of file
diff --git a/app/assets/javascripts/app/views/messages/aside/item.jst.eco b/app/assets/javascripts/app/views/messages/aside/item.jst.eco
new file mode 100644
index 0000000..02e5b23
--- /dev/null
+++ b/app/assets/javascripts/app/views/messages/aside/item.jst.eco
@@ -0,0 +1,6 @@
+
+
+