Skip to content

4commerce-technologies-AG/meteor-package-pubsettings-template-helper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

4commerce:pubsettings-template-helper

This meteorjs package allows you to get access to the objects and values you have stored at Meteor.settings.public within your templates.

So you do not need a number of template helpers by yourself anymore.

Usecase

You want to show the information given by your settings at your client app.

$ export METEOR_SETTINGS="{ public: { about_info: 'Hello World App', version: '1.0' } }"
$ meteor

Alternative you may use --settings option

$ meteor --settings mysettings.json

Before

mytemplate.html:

<template "mytemplate">
  <span>{{about_info}}</span>
  <span>{{version}}</span>
</template>

mytemplate.js:

Template.mytemplate.helpers({
  about_info: function() {
    return Meteor.settings.public.about_info;
  },
  version: function() {
    return Meteor.settings.public.version;
  }
});

With this package

mytemplate.html:

<template "mytemplate">
  <span>{{pubSettings.about_info}}</span>
  <span>{{pubSettings.version}}</span>
</template>

That's it

Installation

You can add this package to your meteor app like any other package from atmosphere

$ meteor add 4commerce:pubsettings-template-helper

Usage

You may address your public settings directly within your templates by just using the relative path from starting at the Meteor.settings.public element.

mytemplate.html:

<template "mytemplate">
  <span>{{pubSettings.about_info}}</span>
  <span>{{pubSettings.version}}</span>
</template>

You also may address the config values by a dotted string argument. So the next example shows equal options

mytemplate.html:

<template "mytemplate">
  <span>{{pubSettings.about_info}}</span>
  <span>{{pubSettings 'about_info'}}</span>
</template>

You may also address deeper elements as normal objects. Let's imaging you have the following settings.json

{
  "public": {
    "application": {
      "version": "1.0",
      "author": {
        name: "My Name",
        email: "mail-address"
      }
    }
  }
}

then you can get those element values in your templates by

<template "mytemplate">
  {{#if pubSettings.application.author}}
    <span>{{pubSettings.application.author.name}}</span>
    <span>{{pubSettings 'application.author.email'}}</span>
  {{/if}}
</template>

Extended usage

For a more sophiticated usage, you even may pass another expression to get the name of the config value to show.

The following example will return either the value for about_info or version whatever the bool expression of foo is:

mytemplate.html:

<template "mytemplate">
  <span>{{pubSettings what_to_show}}</span>
</template>
Template.mytemplate.helpers({
  what_to_show: function() {
    return (foo) ? "version" : "about_info"
  }
});

Additional Packages

If you are looking for an easy and highly flexible configuration management based on the NODE_ENV environment, you should have a look at the 4commerce:env-settings package.

See: https://github.com/4commerce-technologies-AG/meteor-package-env-settings

Issues & help

In case of support or error please report your issue request. The issue tracker is available at: https://github.com/4commerce-technologies-AG/meteor-package-pubsettings-template-helper/issues

Author & Credits

Author: Tom Freudenberg, 4commerce technologies AG

Copyright (c) 2015 Tom Freudenberg, 4commerce technologies AG, released under the MIT license

About

Enables access to Meteor.settings.public within your templates.

Resources

License

Stars

Watchers

Forks

Packages

No packages published