diff --git a/app/assets/javascripts/backbone/helpers/channels.js.coffee b/app/assets/javascripts/backbone/helpers/channels.js.coffee index 66210c67..2f4d35f9 100644 --- a/app/assets/javascripts/backbone/helpers/channels.js.coffee +++ b/app/assets/javascripts/backbone/helpers/channels.js.coffee @@ -6,9 +6,8 @@ class Kandan.Helpers.Channels @replaceCreateButton: ()-> $tabNav = $(".create_channel").parent().parent() - $createButton = $(".create_channel").parent().html() $tabNav.find(".create_channel").parent().remove() - $tabNav.append("
  • "+$createButton+"
  • ") + $tabNav.append JST['create_channel']() @pastAutoScrollThreshold: (channelId)-> currentPosition = @currentScrollPosition channelId @@ -33,11 +32,11 @@ class Kandan.Helpers.Channels $("#channels-#{channelId} .pagination") @selected_tab: ()-> - $('#channels').tabs('option', 'selected') + $('#kandan').tabs('option', 'selected') @getActiveChannelId: ()-> if $(document).data('active_channel_id') == undefined - return $("#channels .ui-tabs-panel") + return $("#kandan .ui-tabs-panel") .eq(@selected_tab()) .data('channel_id') else @@ -60,12 +59,12 @@ class Kandan.Helpers.Channels @confirmAndDeleteChannel: (channel, tabIndex)-> return false if @confirmDeletion() == false channel.destroy({success: ()=> - $("#channels").tabs("remove", tabIndex) + $("#kandan").tabs("remove", tabIndex) }) @getChannelIdByTabIndex: (tabIndex)-> - $("#channels .ui-tabs-panel") + $("#kandan .ui-tabs-panel") .eq(tabIndex) .data('channel_id') @@ -85,7 +84,7 @@ class Kandan.Helpers.Channels channel = new Kandan.Models.Channel({id: channelId}) return @confirmAndDeleteChannel(channel, tabIndex) if not deleted console.log "TAB INDEX", tabIndex - $("#channels").tabs("remove", tabIndex) + $("#kandan").tabs("remove", tabIndex) @channelExists: (channelId)-> @@ -95,9 +94,9 @@ class Kandan.Helpers.Channels @createChannelArea: (channel)-> channelArea = "#channels-#{channel.get('id')}" - totalTabs = $("#channels").tabs("length") + totalTabs = $("#kandan").tabs("length") - $("#channels").tabs('add', channelArea, "#{channel.get("name")}", totalTabs) + $("#kandan").tabs('add', channelArea, "#{channel.get("name")}", totalTabs) Kandan.Helpers.Channels.replaceCreateButton() view = new Kandan.Views.ChannelPane({channel: channel}) view.render $(channelArea) diff --git a/app/assets/javascripts/backbone/kandan.js.coffee b/app/assets/javascripts/backbone/kandan.js.coffee index 1b375c1c..f7ff6f00 100644 --- a/app/assets/javascripts/backbone/kandan.js.coffee +++ b/app/assets/javascripts/backbone/kandan.js.coffee @@ -58,7 +58,7 @@ window.Kandan = #{label} - x + x ''' diff --git a/app/assets/javascripts/backbone/views/channel_tabs.js.coffee b/app/assets/javascripts/backbone/views/channel_tabs.js.coffee new file mode 100644 index 00000000..808f9824 --- /dev/null +++ b/app/assets/javascripts/backbone/views/channel_tabs.js.coffee @@ -0,0 +1,29 @@ +class Kandan.Views.ChannelTabs extends Backbone.View + template: JST['chatarea'] + tagName: 'ul' + + events: + "click .close_channel" : "deleteChannel" + "click .create_channel": "createChannel" + + + render: ()-> + $(@el).html @template({channels: @options.channels}) + @ + + createChannel: (event)-> + channelName = prompt("What's the channel name?", "New channel") + channelName = channelName.replace(/^\s+|\s+$/g, '') + if channelName + channel = new Kandan.Models.Channel({name: channelName}) + channel.save({}, { + success: (model)-> + Kandan.Helpers.Channels.createChannelArea(model) + }) + console.log "create channel: #{channelName}" + + deleteChannel: (event)-> + console.log "deleteChannel" + channelIndex = $(event.target).parent().prevAll().length + console.log "request for deletion", channelIndex + Kandan.Helpers.Channels.deleteChannelByTabIndex(channelIndex) if channelIndex != 0 diff --git a/app/assets/javascripts/backbone/views/chatarea.js.coffee b/app/assets/javascripts/backbone/views/chatarea.js.coffee index a1992e92..99fbed7f 100644 --- a/app/assets/javascripts/backbone/views/chatarea.js.coffee +++ b/app/assets/javascripts/backbone/views/chatarea.js.coffee @@ -1,32 +1,11 @@ class Kandan.Views.ChatArea extends Backbone.View - template: JST['chatarea'] - # className: 'channels' + render: ()-> + tabView = new Kandan.Views.ChannelTabs({channels: @options.channels}) + $('.header .logo').after(tabView.render().el) - events: - "click .close_channel" : "deleteChannel" - "click .create_channel": "createChannel" - - render: -> - $('.header .logo').after(@template({channels: @options.channels})) for channel in @options.channels.models view = new Kandan.Views.ChannelPane({channel: channel}) $(@el).append(view.render().el) $(@el).attr('id', 'channels') @ - - createChannel: (event)-> - channelName = prompt("What's the channel name?", "New channel") - channelName = channelName.replace(/^\s+|\s+$/g, '') - if channelName - channel = new Kandan.Models.Channel({name: channelName}) - channel.save({}, { - success: (model)-> - Kandan.Helpers.Channels.createChannelArea(model) - }) - console.log "create channel: #{channelName}" - - deleteChannel: (event)-> - channelIndex = $(event.target).parent().prevAll().length - console.log "request for deletion", channelIndex - Kandan.Helpers.Channels.deleteChannelByTabIndex(channelIndex) if channelIndex != 0 diff --git a/app/assets/templates/chatarea.jst.eco b/app/assets/templates/chatarea.jst.eco index 289b90a2..40db865a 100644 --- a/app/assets/templates/chatarea.jst.eco +++ b/app/assets/templates/chatarea.jst.eco @@ -1,16 +1,11 @@ - - + + + + "><%= channel.get('name') %> + x + + +<% end %> +<%- JST['create_channel']() %> diff --git a/app/assets/templates/create_channel.jst.eco b/app/assets/templates/create_channel.jst.eco new file mode 100644 index 00000000..6475cdf8 --- /dev/null +++ b/app/assets/templates/create_channel.jst.eco @@ -0,0 +1,3 @@ +
  • + + +
  • \ No newline at end of file