Separate the global message data from the list display data

The messages being passed to the handlebars templates were global
messages which we were adding per list details to, show name bar etc.
This causes rendering bugs when you try to rerender a message, because a
different list may have changed it. This commit moves the global message
data to a msg attribute on the message_container which will contain the
per list attributes.

(imported from commit 26b1f0d2c72d6288a6d3e7ed5f8692426f2a97ad)
This commit is contained in:
Jason Michalski
2014-03-14 11:28:54 -04:00
parent c39e657a3b
commit 1613cad6f6
5 changed files with 119 additions and 77 deletions

View File

@@ -65,4 +65,4 @@
</div>
</div>
</div>
{{/if}}
{{/if}}

View File

@@ -1,8 +1,8 @@
<div zid="{{id}}" id="{{table_name}}{{id}}"
class="message_row{{^is_stream}} private-message{{/is_stream}}{{#include_sender}} include-sender{{/include_sender}}{{#contains_mention}} mention{{/contains_mention}}{{#include_footer}} last_message{{/include_footer}}{{#unread}} unread{{/unread}} {{#if local_id}}local{{/if}} selectable_row">
<div zid="{{msg/id}}" id="{{table_name}}{{msg/id}}"
class="message_row{{^msg/is_stream}} private-message{{/msg/is_stream}}{{#include_sender}} include-sender{{/include_sender}}{{#contains_mention}} mention{{/contains_mention}}{{#include_footer}} last_message{{/include_footer}}{{#unread}} unread{{/unread}} {{#if local_id}}local{{/if}} selectable_row">
<div class="unread_marker"><div class="unread-marker-fill"></div></div>
<div class="messagebox{{^include_sender}} prev_is_same_sender{{/include_sender}}{{^is_stream}} private-message{{/is_stream}} {{#if next_is_same_sender}}next_is_same_sender{{/if}}"
style="box-shadow: inset 2px 0px 0px 0px {{#if is_stream}}{{background_color}}{{else}}#444444{{/if}}, -1px 0px 0px 0px {{#if is_stream}}{{background_color}}{{else}}#444444{{/if}};">
<div class="messagebox{{^include_sender}} prev_is_same_sender{{/include_sender}}{{^msg/is_stream}} private-message{{/msg/is_stream}} {{#if next_is_same_sender}}next_is_same_sender{{/if}}"
style="box-shadow: inset 2px 0px 0px 0px {{#if msg/is_stream}}{{background_color}}{{else}}#444444{{/if}}, -1px 0px 0px 0px {{#if msg/is_stream}}{{background_color}}{{else}}#444444{{/if}};">
<div class="messagebox-border">
<div class="messagebox-content">
<div class="message_top_line">
@@ -10,7 +10,7 @@
<span class="message_sender{{^status_message}} sender_info_hover{{/status_message}}">
{{! See ../js/notifications.js for another user of avatar_url. }}
<div class="inline_profile_picture{{#status_message}} sender_info_hover{{/status_message}}"
style="background-image: url('{{small_avatar_url}}');"/><span class="{{^status_message}}sender_name{{/status_message}}{{#status_message}}sender-status{{/status_message}}">{{#unless status_message}}{{sender_full_name}}{{else}}<span class="sender_name sender_info_hover">{{sender_full_name}}</span>{{{ status_message }}}{{/unless}}</span>
style="background-image: url('{{small_avatar_url}}');"/><span class="{{^status_message}}sender_name{{/status_message}}{{#status_message}}sender-status{{/status_message}}">{{#unless status_message}}{{msg/sender_full_name}}{{else}}<span class="sender_name sender_info_hover">{{msg/sender_full_name}}</span>{{{ status_message }}}{{/unless}}</span>
</span>
{{/include_sender}}
<span class="message_time{{#if local_id}} notvisible{{/if}}{{#if status_message}} status-time{{/if}}">{{timestr}}</span>
@@ -19,8 +19,8 @@
{{/if_and}}
<div class="message_controls">
<div class="star">
<span class="message_star {{#if starred}}icon-vector-star{{else}}icon-vector-star-empty empty-star{{/if}}"
title="{{#if starred}}Unstar{{else}}Star{{/if}} this message"></span>
<span class="message_star {{#if msg/starred}}icon-vector-star{{else}}icon-vector-star-empty empty-star{{/if}}"
title="{{#if msg/starred}}Unstar{{else}}Star{{/if}} this message"></span>
</div>
<div class="info actions_hover">
<i class="icon-vector-chevron-down"></i>
@@ -30,14 +30,14 @@
</div>
</div>
</div>
<div class="message_content">{{#unless status_message}}{{#if use_match_properties}}{{{match_content}}}{{else}}{{{content}}}{{/if}}{{/unless}}</div>
<div class="message_content">{{#unless status_message}}{{#if use_match_properties}}{{{match_content}}}{{else}}{{{msg/content}}}{{/if}}{{/unless}}</div>
{{#if last_edit_timestr}}
{{#unless include_sender}}
<div class="message_edit_notice" title="Edited ({{last_edit_timestr}})">EDITED</div>
{{/unless}}
{{/if}}
<div class="message_edit">
<div class="message_edit_form" id="{{id}}"></div>
<div class="message_edit_form" id="{{msg/id}}"></div>
</div>
<div class="message_expander message_length_controller" title="See the rest of this message">[More...]</div>
<div class="message_condenser message_length_controller" title="Make this message take up less space on the screen">[Condense this message]</div>