diff --git a/Gemfile b/Gemfile
index 1a3a097a..8fa2d077 100644
--- a/Gemfile
+++ b/Gemfile
@@ -22,7 +22,7 @@ gem 'remotipart'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
-
+ gem 'bourbon'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'execjs'
gem 'eco'
diff --git a/Gemfile.lock b/Gemfile.lock
index 6772c5dd..a8f3639e 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -47,6 +47,8 @@ GEM
nokogiri (<= 1.5.0)
uuidtools (~> 2.1)
bcrypt-ruby (3.0.1)
+ bourbon (1.4.0)
+ sass (>= 3.1)
builder (3.0.0)
bushido (0.0.36)
highline (>= 1.6.1)
@@ -228,6 +230,7 @@ PLATFORMS
DEPENDENCIES
aws-sdk
+ bourbon
bushido
capybara
coffee-rails (~> 3.2.1)
diff --git a/app/assets/javascripts/backbone/kandan.js.coffee b/app/assets/javascripts/backbone/kandan.js.coffee
index 8152fdf6..5be84ecc 100644
--- a/app/assets/javascripts/backbone/kandan.js.coffee
+++ b/app/assets/javascripts/backbone/kandan.js.coffee
@@ -22,7 +22,7 @@ window.Kandan =
chat_area = new Kandan.Views.ChatArea({channels: channels})
create_channel = new Kandan.Views.CreateChannel()
- $(".create_channel").html create_channel.render().el
+ # $(".create_channel").html create_channel.render().el
# TODO move broadcast subscription to a helper
# TODO change this to use the broadcaster from the settings
@@ -46,9 +46,9 @@ window.Kandan =
Kandan.Plugins.init_all()
- $(".container").html(chat_area.render().el)
+ $(".main-area").html(chat_area.render().el)
chatbox = new Kandan.Views.Chatbox()
- $(".container").append(chatbox.render().el)
+ $(".main-area").append(chatbox.render().el)
$('#channels').tabs({select: (event, ui)->
$(document).data('active_channel_id',
Kandan.Helpers.Channels.get_channel_id_from_tab_index(ui.index))
diff --git a/app/assets/javascripts/backbone/plugins/attachments.js.coffee b/app/assets/javascripts/backbone/plugins/attachments.js.coffee
index 372b334c..165c1056 100644
--- a/app/assets/javascripts/backbone/plugins/attachments.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/attachments.js.coffee
@@ -1,7 +1,6 @@
class Kandan.Plugins.Attachments
- @widget_title: "Attachments"
- @widget_name: "attachments"
+ @widget_title: "Media"
@plugin_namespace: "Kandan.Plugins.Attachments"
@template: _.template('''
@@ -48,9 +47,9 @@ class Kandan.Plugins.Attachments
@init: ()->
- Kandan.Widgets.register @widget_name, @plugin_namespace
+ Kandan.Widgets.register @plugin_namespace
Kandan.Data.Channels.register_callback "change", ()=>
- Kandan.Widgets.render(@widget_name)
+ Kandan.Widgets.render @plugin_namespace
Kandan.Plugins.register "Kandan.Plugins.Attachments"
\ No newline at end of file
diff --git a/app/assets/javascripts/backbone/plugins/music_player.js.coffee b/app/assets/javascripts/backbone/plugins/music_player.js.coffee
index 47eb52df..0a48b0fa 100644
--- a/app/assets/javascripts/backbone/plugins/music_player.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/music_player.js.coffee
@@ -2,7 +2,7 @@ class Kandan.Plugins.MusicPlayer
@plugin_namespace: "Kandan.Plugins.MusicPlayer"
@plugin_id: ""
- @widget_name: "music_player"
+ @widget_title: "Player"
@play_regex: /^\/play .+/
@stop_regex: /^\/stop/
@local_song_data: false
@@ -49,7 +49,7 @@ class Kandan.Plugins.MusicPlayer
@register_widget: ()->
- Kandan.Widgets.register @widget_name, @plugin_namespace
+ Kandan.Widgets.register @plugin_namespace
@register_modifier: ()->
@@ -72,7 +72,7 @@ class Kandan.Plugins.MusicPlayer
Kandan.Store.set @plugin_id, {
success: (data)->
@local_song_data = data
- Kandan.Widgets.render_widget @widget_name
+ Kandan.Widgets.render_widget @plugin_namespace
}
})
diff --git a/app/assets/javascripts/backbone/plugins/user_list.js.coffee b/app/assets/javascripts/backbone/plugins/user_list.js.coffee
index fc607c64..fa7dc084 100644
--- a/app/assets/javascripts/backbone/plugins/user_list.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/user_list.js.coffee
@@ -1,7 +1,8 @@
class Kandan.Plugins.UserList
- @widget_title: "Users"
+ @widget_title: "People"
@widget_name: "users"
+ @plugin_namespace: "Kandan.Plugins.UserList"
@render: ($el)->
$users = $("
")
@@ -12,8 +13,8 @@ class Kandan.Plugins.UserList
@init: ()->
- Kandan.Widgets.register(@widget_name, "Kandan.Plugins.UserList")
+ Kandan.Widgets.register @plugin_namespace
Kandan.Data.ActiveUsers.register_callback "change", ()=>
- Kandan.Widgets.render(@widget_name)
+ Kandan.Widgets.render @plugin_namespace
Kandan.Plugins.register "Kandan.Plugins.UserList"
\ No newline at end of file
diff --git a/app/assets/javascripts/backbone/routers/main_router.js.coffee b/app/assets/javascripts/backbone/routers/main_router.js.coffee
index d08c2361..9079be04 100644
--- a/app/assets/javascripts/backbone/routers/main_router.js.coffee
+++ b/app/assets/javascripts/backbone/routers/main_router.js.coffee
@@ -5,5 +5,5 @@ class Kandan.Routers.Main extends Backbone.Router
index: ()->
view = new Kandan.Views.ChatArea()
- $('.container').html(view.render().el)
+ $('.main-area').html(view.render().el)
$('.channels').tabs()
diff --git a/app/assets/javascripts/backbone/widgets.js.coffee b/app/assets/javascripts/backbone/widgets.js.coffee
index 2754dfd4..f88c89fb 100644
--- a/app/assets/javascripts/backbone/widgets.js.coffee
+++ b/app/assets/javascripts/backbone/widgets.js.coffee
@@ -1,26 +1,32 @@
class Kandan.Widgets
@widgets: {}
- @register: (widget_name, callback)->
- @widgets[widget_name] = callback
+ @register: (widget_namespace)->
+ @widgets[widget_namespace] = "widget_#{Object.size(@widgets)}"
@all: ()->
@widgets
- @widget_names: ()->
- widget_names = []
- for widget_name of @all()
- widget_names.push(widget_name) if @all().hasOwnProperty(widget_name)
- widget_names
-
@init_all: ()->
- @init(widget_name) for widget_name in @widget_names()
+ $.each @widgets, (widget_namespace, el_name)=>
+ @init(widget_namespace)
+
+ @template: _.template '''
+
+
<%= title %>
+
+
+ '''
+
+ @init: (widget_namespace)->
+ widget = eval(widget_namespace)
+ $(".sidebar .widgets").append(@template({
+ element_id: @widgets[widget_namespace],
+ title: widget.widget_title
+ }))
+ @render(widget_namespace)
- @init: (widget_name)->
- # TODO use the widget_name property on the plugin module to get the title
- $(".sidebar").append("