mirror of
https://github.com/Combodo/iTop.git
synced 2026-05-18 06:48:50 +02:00
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:
@@ -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',
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
Reference in New Issue
Block a user