N°3649 - Activity panel: Continue improvement following the alpha feedbacks

- Update messages counters globally (not per caselog)
- Hide messages counter when no caselog
This commit is contained in:
Molkobain
2021-01-25 18:38:05 +01:00
parent a48d850721
commit 222fab27d1
3 changed files with 57 additions and 12 deletions

View File

@@ -25,17 +25,17 @@ Dict::Add('EN US', 'English', 'English', array(
// Activity tab
'UI:Layout:ActivityPanel:Tab:Activity:Title' => 'Activity',
'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:CaselogsFilter:Title' => 'Case logs',
'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:CaselogsFilter:Tooltip' => 'Show / hide case log entries',
'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:CaselogsFilter:Tooltip' => 'Show / hide case log entries on this tab',
'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:TransitionsFilter:Title' => 'State changes',
'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:TransitionsFilter:Tooltip' => 'Show / hide state changes',
'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:TransitionsFilter:Tooltip' => 'Show / hide state changes on this tab',
'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:EditsFilter:Title' => 'Edits',
'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:EditsFilter:Tooltip' => 'Show / hide fields edits',
'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:EditsFilter:Tooltip' => 'Show / hide fields edits on this tab',
// Case log tab
'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:OpenAll:Tooltip' => 'Open all messages',
'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:CloseAll:Tooltip' => 'Close all messages',
'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:AuthorsCount:Tooltip' => 'Number of persons interacting in this log',
'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:MessagesCount:Tooltip' => 'Number of messages in this log',
'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:AuthorsCount:Tooltip' => 'Number of persons interacting in the visible entries',
'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:MessagesCount:Tooltip' => 'Number of messages in the visible log(s)',
// Placeholder
'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'It\'s calm up here, no activity yet',

View File

@@ -42,9 +42,11 @@ $(function()
tab_toggler: '[data-role="ibo-activity-panel--tab-toggler"]',
tab_title: '[data-role="ibo-activity-panel--tab-title"]',
tab_toolbar: '[data-role="ibo-activity-panel--tab-toolbar"]',
activity_filter: '[data-role="ibo-activity-panel--activity-filter"]',
caselog_tab_open_all: '[data-role="ibo-activity-panel--caselog-open-all"]',
caselog_tab_close_all: '[data-role="ibo-activity-panel--caselog-close-all"]',
activity_filter: '[data-role="ibo-activity-panel--activity-filter"]',
authors_count: '[data-role="ibo-activity-panel--tab-toolbar-info-authors-count"]',
messages_count: '[data-role="ibo-activity-panel--tab-toolbar-info-messages-count"]',
compose_button: '[data-role="ibo-activity-panel--add-caselog-entry-button"]',
caselog_entry_form: '[data-role="ibo-caselog-entry-form"]',
entry_group: '[data-role="ibo-activity-panel--entry-group"]',
@@ -59,6 +61,11 @@ $(function()
tab_types: {
caselog: 'caselog',
activity: 'activity',
},
entry_types: {
caselog: 'caselog',
transition: 'transition',
edits: 'edits',
}
},
@@ -67,6 +74,7 @@ $(function()
{
this.element.addClass('ibo-activity-panel');
this._bindEvents();
this._UpdateMessagesCounters();
this._ReformatDateTimes();
// TODO 3.0.0: Modify PopoverMenu so we can pass it the ID of the block triggering the open/close
@@ -390,6 +398,40 @@ $(function()
this.element.find(this.js_selectors.entry + sExtraSelector)[sCallback](this.css_classes.is_closed);
},
/**
* Update the messages and users counters in the tabs toolbar
*
* @return {void}
* @private
*/
_UpdateMessagesCounters: function()
{
const me = this;
let iMessagesCount = 0;
let iUsersCount = 0;
let oUsers = {};
// Compute counts
this.element.find(this.js_selectors.entry + ':visible').each(function(){
// Increase messages count
if (me.enums.entry_types.caselog === $(this).attr('data-entry-type')) {
iMessagesCount++;
}
// Feed authors array so we can count them later
try {
oUsers[$(this).attr('data-entry-author-login')] = true;
}
catch (sError) {
// Do nothing, this is just in case the user's login has special chars that would break the object key
}
});
iUsersCount = Object.keys(oUsers).length;
// Update elements
this.element.find(this.js_selectors.messages_count).text(iMessagesCount);
this.element.find(this.js_selectors.authors_count).text(iUsersCount);
},
// - Helpers on entries
_ApplyEntriesFilters: function()
@@ -414,6 +456,7 @@ $(function()
});
this._UpdateEntryGroupsVisibility();
this._UpdateMessagesCounters();
},
_ShowAllEntries: function()
{

View File

@@ -38,14 +38,16 @@
</div>
<div class="ibo-activity-panel--tab-toolbar-right-actions">
{% block bTabToolbarRightActions %}
<span class="ibo-activity-panel--tab-toolbar-info ibo-activity-panel--tab-toolbar-info-authors-count" data-tooltip-content="{{ 'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:AuthorsCount:Tooltip'|dict_s }}">
<span class="ibo-activity-panel--tab-toolbar-info-text">-</span>
<span class="ibo-activity-panel--tab-toolbar-info" data-tooltip-content="{{ 'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:AuthorsCount:Tooltip'|dict_s }}">
<span class="ibo-activity-panel--tab-toolbar-info-text ibo-activity-panel--tab-toolbar-info-authors-count" data-role="ibo-activity-panel--tab-toolbar-info-authors-count">-</span>
<span class="ibo-activity-panel--tab-toolbar-info-icon fas fa-users"></span>
</span>
<span class="ibo-activity-panel--tab-toolbar-info ibo-activity-panel--tab-toolbar-info-messages-count" data-tooltip-content="{{ 'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:MessagesCount:Tooltip'|dict_s }}">
<span class="ibo-activity-panel--tab-toolbar-info-text">-</span>
<span class="ibo-activity-panel--tab-toolbar-info-icon fas fa-comment-alt"></span>
</span>
{% if oUIBlock.HasCaseLogTabs() %}
<span class="ibo-activity-panel--tab-toolbar-info" data-tooltip-content="{{ 'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:MessagesCount:Tooltip'|dict_s }}">
<span class="ibo-activity-panel--tab-toolbar-info-text ibo-activity-panel--tab-toolbar-info-messages-count" data-role="ibo-activity-panel--tab-toolbar-info-messages-count">-</span>
<span class="ibo-activity-panel--tab-toolbar-info-icon fas fa-comment-alt"></span>
</span>
{% endif %}
{% endblock %}
</div>
{% endblock %}