Skip to content

Commit

Permalink
Merge branch 'develop' into localguru-email_header_fix
Browse files Browse the repository at this point in the history
  • Loading branch information
sampaiodiego committed Nov 14, 2019
2 parents 4929a47 + b51d9f7 commit 4a156c4
Show file tree
Hide file tree
Showing 47 changed files with 945 additions and 228 deletions.
2 changes: 1 addition & 1 deletion app/apps/server/bridges/livechat.js
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ export class AppLivechatBridge {
return Livechat.transfer(
this.orch.getConverters().get('rooms').convertAppRoom(currentRoom),
this.orch.getConverters().get('visitors').convertAppVisitor(visitor),
{ userId: targetAgent.id, departmentId }
{ userId: targetAgent.id, departmentId },
);
}

Expand Down
3 changes: 3 additions & 0 deletions app/emoji/client/emojiPicker.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ import { t } from '../../utils/client';
import { EmojiPicker } from './lib/EmojiPicker';
import { emoji } from '../lib/rocketchat';

import './emojiPicker.html';
import '../../theme/client/imports/components/emojiPicker.css';

const ESCAPE = 27;

const emojiListByCategory = new ReactiveDict('emojiList');
Expand Down
2 changes: 0 additions & 2 deletions app/emoji/client/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import './emojiParser';
import './emojiPicker.html';
import './emojiPicker';
import { EmojiPicker } from './lib/EmojiPicker';
import { renderEmoji } from './lib/emojiRenderer';
import { emoji } from '../lib/rocketchat';
Expand Down
12 changes: 7 additions & 5 deletions app/emoji/client/lib/EmojiPicker.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import { ReactiveVar } from 'meteor/reactive-var';
import { Tracker } from 'meteor/tracker';

import { emoji } from '../../lib/rocketchat';
import { updateRecentEmoji } from '../emojiPicker';

let updatePositions = true;

Expand All @@ -22,10 +21,11 @@ export const EmojiPicker = {
pickCallback: null,
scrollingToCategory: false,
currentCategory: new ReactiveVar('recent'),
init() {
async init() {
if (this.initiated) {
return;
}

this.initiated = true;

this.recent = Meteor._localStorage.getItem('emoji.recent') ? Meteor._localStorage.getItem('emoji.recent').split(',') : [];
Expand Down Expand Up @@ -87,9 +87,9 @@ export const EmojiPicker = {

return $('.emoji-picker').css(cssProperties);
},
open(source, callback) {
async open(source, callback) {
if (!this.initiated) {
this.init();
await this.init();
}
this.pickCallback = callback;
this.source = source;
Expand Down Expand Up @@ -144,7 +144,9 @@ export const EmojiPicker = {
this.recent.splice(pos, 1);
Meteor._localStorage.setItem('emoji.recent', this.recent);
},
updateRecent(category) {
async updateRecent(category) {
const emojiPickerImport = await import('../emojiPicker');
const { updateRecentEmoji } = emojiPickerImport;
updateRecentEmoji(category);
},
calculateCategoryPositions() {
Expand Down
32 changes: 0 additions & 32 deletions app/livechat/client/index.js
Original file line number Diff line number Diff line change
@@ -1,39 +1,7 @@
import '../lib/messageTypes';
import '../lib/LivechatExternalMessage';
import './roomType';
import './route';
import './ui';
import './startup/notifyUnreadRooms';
import './views/app/analytics/livechatAnalytics';
import './views/app/analytics/livechatAnalyticsCustomDaterange';
import './views/app/analytics/livechatAnalyticsDaterange';
import './views/app/analytics/livechatRealTimeMonitoring';
import './views/app/livechatAgents';
import './views/app/livechatAppearance';
import './views/app/livechatAutocompleteUser';
import './views/app/livechatCurrentChats';
import './views/app/livechatCustomFields';
import './views/app/livechatCustomFieldForm';
import './views/app/livechatDepartmentForm';
import './views/app/livechatDepartments';
import './views/app/livechatInstallation';
import './views/app/livechatOfficeHours';
import './views/app/livechatQueue';
import './views/app/livechatReadOnly';
import './views/app/livechatTriggers';
import './views/app/livechatTriggersForm';
import './views/app/livechatManagers';
import './views/app/livechatNotSubscribed.html';
import './views/app/livechatRoomTagSelector.html';
import './views/app/integrations/livechatIntegrationWebhook';
import './views/app/integrations/livechatIntegrationFacebook';
import './views/app/tabbar/externalSearch';
import './views/app/tabbar/visitorEdit';
import './views/app/tabbar/visitorForward';
import './views/app/tabbar/visitorInfo';
import './views/app/tabbar/visitorHistory';
import './views/app/tabbar/visitorNavigation';
import './views/app/triggers/livechatTriggerAction';
import './views/app/triggers/livechatTriggerCondition';
import './views/sideNav/livechat';
import './views/sideNav/livechatFlex';
45 changes: 23 additions & 22 deletions app/livechat/client/route.js
Original file line number Diff line number Diff line change
@@ -1,176 +1,177 @@
import { FlowRouter } from 'meteor/kadira:flow-router';

import { AccountBox } from '../../ui-utils';
import './views/app/livechatDashboard.html';

export const livechatManagerRoutes = FlowRouter.group({
prefix: '/livechat-manager',
name: 'livechat-manager',
});

const load = () => import('./views');

AccountBox.addRoute({
name: 'livechat-dashboard',
path: '/dashboard',
sideNav: 'livechatFlex',
i18nPageTitle: 'Livechat_Dashboard',
pageTemplate: 'livechatDashboard',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-current-chats',
path: '/current',
sideNav: 'livechatFlex',
i18nPageTitle: 'Current_Chats',
pageTemplate: 'livechatCurrentChats',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-analytics',
path: '/analytics',
sideNav: 'livechatFlex',
i18nPageTitle: 'Analytics',
pageTemplate: 'livechatAnalytics',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-real-time-monitoring',
path: '/real-time-monitoring',
sideNav: 'livechatFlex',
i18nPageTitle: 'Real_Time_Monitoring',
pageTemplate: 'livechatRealTimeMonitoring',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-managers',
path: '/managers',
sideNav: 'livechatFlex',
i18nPageTitle: 'Livechat_managers',
pageTemplate: 'livechatManagers',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-agents',
path: '/agents',
sideNav: 'livechatFlex',
i18nPageTitle: 'Livechat_agents',
pageTemplate: 'livechatAgents',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-departments',
path: '/departments',
sideNav: 'livechatFlex',
i18nPageTitle: 'Departments',
pageTemplate: 'livechatDepartments',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-department-edit',
path: '/departments/:_id/edit',
sideNav: 'livechatFlex',
i18nPageTitle: 'Edit_Department',
pageTemplate: 'livechatDepartmentForm',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-department-new',
path: '/departments/new',
sideNav: 'livechatFlex',
i18nPageTitle: 'New_Department',
pageTemplate: 'livechatDepartmentForm',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-triggers',
path: '/triggers',
sideNav: 'livechatFlex',
i18nPageTitle: 'Triggers',
pageTemplate: 'livechatTriggers',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-trigger-edit',
path: '/triggers/:_id/edit',
sideNav: 'livechatFlex',
i18nPageTitle: 'Edit_Trigger',
pageTemplate: 'livechatTriggersForm',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-trigger-new',
path: '/triggers/new',
sideNav: 'livechatFlex',
i18nPageTitle: 'New_Trigger',
pageTemplate: 'livechatTriggersForm',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-installation',
path: '/installation',
sideNav: 'livechatFlex',
i18nPageTitle: 'Installation',
pageTemplate: 'livechatInstallation',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-appearance',
path: '/appearance',
sideNav: 'livechatFlex',
i18nPageTitle: 'Appearance',
pageTemplate: 'livechatAppearance',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-officeHours',
path: '/officeHours',
sideNav: 'livechatFlex',
i18nPageTitle: 'Office_Hours',
pageTemplate: 'livechatOfficeHours',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-customfields',
path: '/customfields',
sideNav: 'livechatFlex',
i18nPageTitle: 'Custom_Fields',
pageTemplate: 'livechatCustomFields',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-customfield-edit',
path: '/customfields/:_id/edit',
sideNav: 'livechatFlex',
i18nPageTitle: 'Edit_Custom_Field',
pageTemplate: 'livechatCustomFieldForm',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-customfield-new',
path: '/customfields/new',
sideNav: 'livechatFlex',
i18nPageTitle: 'New_Custom_Field',
pageTemplate: 'livechatCustomFieldForm',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-webhooks',
path: '/webhooks',
sideNav: 'livechatFlex',
i18nPageTitle: 'Webhooks',
pageTemplate: 'livechatIntegrationWebhook',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-facebook',
path: '/facebook',
sideNav: 'livechatFlex',
i18nPageTitle: 'Facebook Messenger',
pageTemplate: 'livechatIntegrationFacebook',
}, livechatManagerRoutes);
}, livechatManagerRoutes, load);

AccountBox.addRoute({
name: 'livechat-queue',
path: '/livechat-queue',
i18nPageTitle: 'Livechat_Queue',
pageTemplate: 'livechatQueue',
});
}, null, load);
15 changes: 9 additions & 6 deletions app/livechat/client/views/app/tabbar/externalSearch.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@
<div class="title">
<h2>{{_ "Knowledge_Base"}}</h2>
</div>
<div class="external-messages">
<div class="external-messages list-view">
{{#each messages}}
<div class="external-message">
<button class="pick-message"><i class="icon-edit"></i></button>
{{msg}}
</div>
<div class="external-message">
<button class="pick-message"><i class="icon-edit"></i></button>
{{msg}}
</div>
{{/each}}
{{#if hasMore}}
<button class="rc-button rc-button--secondary show-more-users load-more-livechat-external-messages {{#if loadingMore}}loading{{/if}}">{{_ "Show_more"}}</button>
{{/if}}
</div>
</div>
</template>
</template>
44 changes: 37 additions & 7 deletions app/livechat/client/views/app/tabbar/externalSearch.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,57 @@
import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';

import { LivechatExternalMessage } from '../../../../lib/LivechatExternalMessage';
import './externalSearch.html';
import { APIClient } from '../../../../../utils/client';

const MESSAGES_COUNT = 50;

Template.externalSearch.helpers({
messages() {
return LivechatExternalMessage.findByRoomId(this.rid, { ts: 1 });
return Template.instance().externalMessages.get();
},
hasMore() {
const instance = Template.instance();
const externalMessages = instance.externalMessages.get();
return instance.total.get() > externalMessages.length;
},
});

Template.externalSearch.events({
'click button.pick-message'(event, instance) {
event.preventDefault();

$(`#chat-window-${ instance.roomId } .input-message`).val(this.msg).focus();
$(`#chat-window-${ instance.roomId } .js-input-message`).val(this.msg).focus();
},
'click .load-more'(e, t) {
e.preventDefault();
e.stopPropagation();
t.offset.set(t.offset.get() + MESSAGES_COUNT);
},
'click .load-more-livechat-external-messages'(event, instance) {
return instance.offset.set(instance.offset.get() + MESSAGES_COUNT);
},
});

Template.externalSearch.onCreated(function() {
this.roomId = null;
// console.log('externalSearch.this ->',this);
this.autorun(() => {
this.externalMessages = new ReactiveVar([]);
this.offset = new ReactiveVar(0);
this.ready = new ReactiveVar(true);
this.total = new ReactiveVar(0);

this.autorun(async () => {
this.ready.set(false);
const offset = this.offset.get();
this.roomId = Template.currentData().rid;
this.subscribe('livechat:externalMessages', Template.currentData().rid);
if (this.roomId) {
const { messages, total } = await APIClient.v1.get(`livechat/messages.external/${ this.roomId }?count=${ MESSAGES_COUNT }&offset=${ offset }`);
this.total.set(total);
if (offset === 0) {
this.externalMessages.set(messages);
} else {
this.externalMessages.set(this.externalMessages.get().concat(messages));
}
}
this.ready.set(true);
});
});
Loading

0 comments on commit 4a156c4

Please sign in to comment.