Vulcan/client/helpers/handlebars.js

82 lines
2.5 KiB
JavaScript
Raw Normal View History

// ** Handlebars helpers **
UI.registerHelper('eachWithRank', function(items, options) {
2013-10-29 16:05:55 +09:00
// not used, forces multiple renders
2013-10-28 16:04:55 +09:00
// note: cannot use this because it would delete and recreate all nodes
items.rewind();
2013-10-28 13:35:20 +09:00
var out = '';
items.forEach(function(item, i){
var key = 'Branch-' + i;
out = out + Spark.labelBranch(key,function(){
2013-10-28 17:07:18 +11:00
return options.fn(_.extend(item, {rank: i}));
2013-10-28 13:35:20 +09:00
});
});
return out;
});
2013-10-28 16:04:55 +09:00
UI.registerHelper('getSetting', function(setting, defaultArgument){
var defaultArgument = (typeof defaultArgument !== 'undefined') ? defaultArgument : '';
var setting = getSetting(setting, defaultArgument);
return setting;
});
2014-08-12 17:11:36 +09:00
UI.registerHelper('isLoggedIn', function() {
return !!Meteor.user();
});
UI.registerHelper('canView', function() {
return can.view(Meteor.user());
});
UI.registerHelper('canPost', function() {
return can.post(Meteor.user());
});
UI.registerHelper('canComment', function() {
return can.comment(Meteor.user());
});
UI.registerHelper('isAdmin', function(showError) {
if(isAdmin(Meteor.user())){
return true;
}else{
if((typeof showError === "string") && (showError === "true"))
flashMessage(i18n.t('sorry_you_do_not_have_access_to_this_page'), "error");
return false;
}
});
UI.registerHelper('canEdit', function(item) {
return can.edit(Meteor.user(), item, false);
});
UI.registerHelper('log', function(context){
console.log(context);
});
UI.registerHelper("formatDate", function(datetime, format) {
Session.get('momentLocale'); // depend on session variable to reactively rerun the helper
return moment(datetime).format(format);
});
2014-11-20 14:55:34 +09:00
UI.registerHelper("timeAgo", function(datetime) {
Session.get('momentLocale'); // depend on session variable to reactively rerun the helper
return moment(datetime).fromNow()
2014-11-20 14:55:34 +09:00
});
UI.registerHelper("sanitize", function(content) {
console.log('cleaning up…')
console.log(content)
return cleanUp(content);
});
UI.registerHelper('pluralize', function(count, string) {
string = count === 1 ? string : string + 's';
return i18n.t(string);
});
2014-12-14 15:15:34 +09:00
UI.registerHelper("profileUrl", function(userOrUserId) {
var user = (typeof userOrUserId === "string") ? Meteor.users.findOne(userOrUserId) : userOrUserId;
if (!!user)
return getProfileUrl(user);
});
UI.registerHelper("userName", function(userOrUserId) {
var user = (typeof userOrUserId === "string") ? Meteor.users.findOne(userOrUserId) : userOrUserId;
if (!!user)
return getUserName(user);
});