Skip to content

Commit

Permalink
Fixes, Fixes and Fixes. And then merges 'master' into 'tweaks'
Browse files Browse the repository at this point in the history
* Changes jQuery events to backbone events
* Fixes channel deletion
* Fixes channels helper and deletes unnecessary methods
* Renames chatarea template to channel_tabs
* Fixes channel notification processing
* Uses a backbone view instead of directly appending channel tabs html

Conflicts:
	app/assets/javascripts/backbone/helpers/channels.js.coffee
	app/assets/javascripts/backbone/views/chatarea.js.coffee

Signed-off-by: Akash Manohar J <akash@akash.im>
  • Loading branch information
HashNuke committed Apr 5, 2012
2 parents c5de3c7 + 7fc3f7a commit 109eda1
Show file tree
Hide file tree
Showing 10 changed files with 59 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Kandan.Broadcasters.FayeBroadcaster
@faye_client.subscribe "/app/activities", (data)=>
[entityName, eventName] = data.event.split("#")
@processEventsForUser(eventName, data) if entityName == "user"
@processEventsForUser(eventName, data) if entityName == "channel"
@processEventsForChannel(eventName, data) if entityName == "channel"


processEventsForUser: (eventName, data)->
Expand Down
26 changes: 11 additions & 15 deletions app/assets/javascripts/backbone/helpers/channels.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,19 @@ class Kandan.Helpers.Channels
autoScrollThreshold: 0.90
maxActivities: 5

@replaceCreateButton: ()->
$tabNav = $(".create_channel").parent().parent()
$tabNav.find(".create_channel").parent().remove()
$tabNav.append JST['create_channel']()

@pastAutoScrollThreshold: (channelId)->
currentPosition = @currentScrollPosition channelId
totalHeight = $(document).height() - $(window).height()
scrollPercentage = (currentPosition) / (totalHeight)
scrollPercentage > @options.autoScrollThreshold

@scrollToLatestMessage: (channelId)->
console.log("scrolling to last message");
$('document').scrollTop($('docoument').height())
#@channel_activities_el(channelId).parent().scrollTop(100000)
console.log("scrolling to last message")
$(document).scrollTop($(document).height()+9000)

@currentScrollPosition: (channelId)->
console.log("current scroll position");
$('document').scrollTop()
#@channel_activities_el(channelId).parent().scrollTop()
console.log("current scroll position")
$(document).scrollTop()

@channel_activities_el: (channelId)->
$("#channel-activities-#{channelId}")
Expand Down Expand Up @@ -77,12 +70,15 @@ class Kandan.Helpers.Channels
@deleteChannelByTabIndex(tabIndex, true)

@deleteChannelByTabIndex: (tabIndex, deleted)->
# NOTE gotcha, 0 index being passed a natural index from the html views
deleted = deleted || false
console.log "try deleting #{tabIndex}"
channelId = @getChannelIdByTabIndex(tabIndex)
console.log "d ", channelId
throw "NO CHANNEL ID" if channelId == 'undefined'

channel = new Kandan.Models.Channel({id: channelId})
return @confirmAndDeleteChannel(channel, tabIndex) if not deleted

# NOTE this is for participating users who do not require confirmation
console.log "TAB INDEX", tabIndex
$("#kandan").tabs("remove", tabIndex)

Expand All @@ -95,9 +91,9 @@ class Kandan.Helpers.Channels
@createChannelArea: (channel)->
channelArea = "#channels-#{channel.get('id')}"
totalTabs = $("#kandan").tabs("length")

$createTab = $(".create_channel").parents('li').detach()
$("#kandan").tabs('add', channelArea, "#{channel.get("name")}", totalTabs)
Kandan.Helpers.Channels.replaceCreateButton()
$createTab.appendTo('ul.ui-tabs-nav')
view = new Kandan.Views.ChannelPane({channel: channel})
view.render $(channelArea)
$(channelArea).data('channel_id', channel.get('id'))
Expand Down
7 changes: 6 additions & 1 deletion app/assets/javascripts/backbone/kandan.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ window.Kandan =
registerAppEvents: ()->
Kandan.Data.ActiveUsers.registerCallback "change", (data)->
Kandan.Helpers.Channels.add_activity({
user: data.user,
user: data.entity,
action: data.event.split("#")[1]
})

Expand All @@ -50,6 +50,9 @@ window.Kandan =
$(document).data('active_channel_id',
Kandan.Helpers.Channels.getChannelIdByTabIndex(ui.index))
Kandan.Data.Channels.runCallbacks('change')
add: (event, ui) ->
$('.header .ui-tabs-panel:last').detach().appendTo('#channels')
$('#kandan').tabs('option', 'disabled', [])
})

$("#kandan").tabs 'option', 'tabTemplate', '''
Expand All @@ -66,6 +69,8 @@ window.Kandan =
initChatArea: (channels)->
chatArea = new Kandan.Views.ChatArea({channels: channels})
$(".main-area").html(chatArea.render().el)
$(document).scrollTop($(document).height()+9000)


onFetchActiveUsers: (channels)=>
return (activeUsers)=>
Expand Down
7 changes: 4 additions & 3 deletions app/assets/javascripts/backbone/views/channel_pane.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,20 @@ class Kandan.Views.ChannelPane extends Backbone.View

render: (container)->
container = container || $(@el)
console.log("channel view render", container);
$(container).html @paginatedActivitiesView()
$(container).append @chatboxView()
@setIdAndData(container)
@

setIdAndData: (container)->
$(container).attr "id", "channels-#{@options.channel.get("id")}"
$(container).data "channel_id", @options.channel.get('id')

paginatedActivitiesView: ()->
view = new Kandan.Views.PaginatedActivities({channel: @options.channel})
view.render().el

chatboxView: ()->
view = new Kandan.Views.Chatbox({channel: @options.channel})
view.render().el
6 changes: 2 additions & 4 deletions app/assets/javascripts/backbone/views/channel_tabs.js.coffee
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class Kandan.Views.ChannelTabs extends Backbone.View
template: JST['chatarea']
template: JST['channel_tabs']
tagName: 'ul'

events:
Expand All @@ -23,7 +23,5 @@ class Kandan.Views.ChannelTabs extends Backbone.View
console.log "create channel: #{channelName}"

deleteChannel: (event)->
console.log "deleteChannel"
channelIndex = $(event.target).parent().prevAll().length
console.log "request for deletion", channelIndex
channelIndex = $(event.target).closest('li').prevAll().length
Kandan.Helpers.Channels.deleteChannelByTabIndex(channelIndex) if channelIndex != 0
2 changes: 1 addition & 1 deletion app/assets/javascripts/backbone/views/chatarea.js.coffee
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
class Kandan.Views.ChatArea extends Backbone.View

render: ()->
render: ->
tabView = new Kandan.Views.ChannelTabs({channels: @options.channels})
$('.header .logo').after(tabView.render().el)

Expand Down
16 changes: 10 additions & 6 deletions app/assets/stylesheets/_base.sass
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
padding: 0 5px
+box-shadow(inset 0px -7px 6px -5px #3a4547)
border-bottom: 1px solid #FFF
margin-top: -2px

.user_menu_link
float: right
Expand All @@ -43,13 +44,16 @@
background-color: $header-bg-1
+background-image(linear-gradient($header-bg-1, $header-bg-2))
+border-radius(4px)
position: absolute
position: fixed
right: 0px
top: 0px
z-index: 9000
height: auto
height: 32px
width: 100px
padding: 5px
display: none
bottom: -24px
margin-top: 31px
a
color: #FFF

Expand All @@ -68,20 +72,20 @@

html
+full-height
width: 100%

body
background: $page-bg url(image_path('page_bg.png')) repeat
height: 100%
min-height: 100%
width: 100%
font-size: 13px
font-family: 'PT Sans', sans-serif

.main-area
+full-height
width: $main-area-width
float: left
border-right: 1px solid #CDD1D4
padding-bottom: 70px
padding-top: 22px


.main-area, .sidebar
padding-top: 15px
19 changes: 15 additions & 4 deletions app/assets/stylesheets/_chat_area.sass
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ html body .ui-tabs .ui-tabs-nav li
height: 88%
background: #FFF
padding: 10px
padding-bottom: 72px
.pagination
text-decoration: underline
cursor: pointer
Expand All @@ -93,14 +92,16 @@ html body .ui-tabs .ui-tabs-nav li

.chatbox
+border-bottom-radius(4px)
+background-image(linear-gradient($chatbox-bg-1, $chatbox-bg-2))
+box-shadow(5px 0px 5px -3px #cccccc, -5px 0px 5px -3px #cccccc, 0px 5px 5px 0px #cccccc)
float: left
border-top: 1px solid #EBEFF1
border-top: 1px solid #f5f8f9
padding: 10px 0px 10px 10px
width: 77%
width: 77.2%
position: fixed
bottom: 0px
margin-bottom: 20px
background: #e6edef
z-index: 600
textarea
+border-top-left-radius(4px)
+border-bottom-left-radius(4px)
Expand All @@ -123,3 +124,13 @@ html body .ui-tabs .ui-tabs-nav li
margin: 0px
height: 40px
font-size: 16px

#mask
position: fixed
z-index: 100
bottom: 0
display: block
height: 30px
margin-left: -16px
width: 81%
background: #E6EBEE url("/assets/page_bg.png") repeat
File renamed without changes.
13 changes: 9 additions & 4 deletions app/views/main/index.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@
<div class="user"></div>
</a>

<div class="user_menu">
<a href="<%= destroy_user_session_path %>">logout</a>
</div>


<div class="search">
<form method="get" action="/search" target="_blank">
Expand All @@ -27,11 +25,18 @@
</div>

<div id="app_body">
<div class="main-area"></div>
<div class="main-area"> </div>

<div class="sidebar">
<div class="widgets"></div>
</div>
</div>

<div id="mask">&nbsp;</div>

<div class="user_menu">
<a href="<%= destroy_user_session_path %>">logout</a>
</div>

</div>

0 comments on commit 109eda1

Please sign in to comment.