Beispiel #1
0
Template.messages.helpers({
	messages() {
		return ChatMessage.find({
			rid: visitor.getRoom(),
			t: {
				$nin: ['t', 'livechat_navigation_history'],
			},
		}, {
			sort: {
				ts: 1,
			},
		});
	},
	showOptions() {
		if (Template.instance().showOptions.get()) {
			return 'show';
		} else {
			return '';
		}
	},
	optionsLink() {
		if (Template.instance().showOptions.get()) {
			return t('Close_menu');
		} else {
			return t('Options');
		}
	},
	videoCallEnabled() {
		return Livechat.videoCall;
	},
	fileUploadEnabled() {
		return Livechat.fileUpload && Template.instance().isMessageFieldEmpty.get();
	},
	showConnecting() {
		return Livechat.connecting;
	},
	usersTyping() {
		const users = MsgTyping.get(visitor.getRoom());
		if (users.length === 0) {
			return;
		}
		if (users.length === 1) {
			return {
				multi: false,
				selfTyping: MsgTyping.selfTyping.get(),
				users: users[0],
			};
		}
		// usernames = _.map messages, (message) -> return message.u.username
		let last = users.pop();
		if (users.length > 4) {
			last = t('others');
		}
		// else
		let usernames = users.join(', ');
		usernames = [usernames, last];
		return {
			multi: true,
			selfTyping: MsgTyping.selfTyping.get(),
			users: usernames.join(` ${ t('and') } `),
		};
	},
	agentData() {
		const { agent } = Livechat;
		if (!agent) {
			return null;
		}

		const agentData = {
			avatar: getAvatarUrlFromUsername(agent.username),
		};

		if (agent.name) {
			agentData.name = agent.name;
		}

		if (agent.emails && agent.emails[0] && agent.emails[0].address) {
			agentData.email = agent.emails[0].address;
		}

		if (agent.phone && agent.phone.length > 0) {
			agentData.phone = agent.phone[0].phoneNumber;
		} else if (agent.customFields && agent.customFields.phone) {
			agentData.phone = agent.customFields.phone;
		}

		return agentData;
	},
});
Beispiel #2
0
		return msgs;
}

Template.messages.helpers({
	messages (){
		var msgs = Messages.find({}, {sort:{'time': -1}, limit:Session.get("messageLimit") });
		return msgs;
	}

	/*
	customers: function() {
    return Messages.find();
  	},
  	prevPage: function() {
    var previousPage = currentPage === 1 ? 1 : currentPage - 1;
    return Router.routes.messages.path({page: previousPage});
  	},
  	nextPage: function() {
    var nextPage = hasMorePages() ? currentPage() + 1 : currentPage();
    return Router.routes.messages.path({page: nextPage});
  	},
  	prevPageClass: function() {
    return currentPage() <= 1 ? "disabled" : "";
  	},
  	nextPageClass: function() {
    return hasMorePages() ? "" : "disabled";
  }*/
});


//Message insertion
Beispiel #3
0
import { Accounts } from 'meteor/accounts-base';
import { Meteor } from 'meteor/meteor';
import { Template } from 'meteor/templating';
import { ReactiveDict } from 'meteor/reactive-dict';
Messages = new Meteor.Collection('messages');

if (Meteor.isClient) {
Template.messages.helpers({
	messages: function(){
		return Messages.find()
	}
  
});

Template.messages.events({
	'keypress textarea': function(e, instance){
		if(e.keyCode == 13) {
			e.preventDefault();
			var value = instance.find('textarea').value;
			instance.find('textarea').value = '';

			Messages.insert({
				message: value,
				timestamp: new Date(),
				user: Meteor.userId()
			});
		}
	}
});
	Template.message.helpers({
		user: function(){
Beispiel #4
0
import { Template } from 'meteor/templating';

Template.messages.helpers({
  messages: Messages.find({})
});

Accounts.ui.config({
    passwordSignupFields: 'USERNAME_AND_EMAIL'
});

Template.registerHelper('currentChannel', function () {
	return Session.get('channel');
});

Template.registerHelper("timestampToTime", function (timestamp) {
	var date = new Date(timestamp);
	var hours = date.getHours();
	var minutes = "0" + date.getMinutes();
	var seconds = "0" + date.getSeconds();
	return hours + ':' + minutes.substr(minutes.length-2) + ':' + seconds.substr(seconds.length-2);
});

Template.registerHelper("usernameFromId", function (userId) {
	var user = Meteor.users.findOne({_id: userId});
	if (typeof user === "undefined") {
		return "Anonymous";
	}
	if (typeof user.services.github !== "undefined") {
		return user.services.github.username;
	}
	return user.username;
Beispiel #5
0
        e.stopPropagation();
        Messages.insert({
            text: inputTxt,
            date: new Date(),
            user: Meteor.user() == null ? "Anonyme" : Meteor.user().username
          });
        $('.input-box_text').val("");
        return false;
      }
    }
  }
});

Template.messages.helpers({
  "messages": function() {
    return Messages.find();
  }
});


Template.message.helpers({
  formatDate: function(date) {
    var locale = window.navigator.userLanguage || window.navigator.language;
    moment.locale(locale);
    return moment(date).format('LLL');
  }
});


Accounts.ui.config({
  passwordSignupFields: 'USERNAME_AND_EMAIL'