Chapter 7. Liquid Reference

The following variables are available in every Liquid template:

  • provider - all your services, plans and settings under one hood
  • urls - routes to built-in pages of the developers portal (login, signup etc.)
  • current_user - username, address and rights of the currently logged-in user
  • current_account - messages, applications and plans of the currently logged-in user
  • today - current date

Builtin pages can also have other variables available (they are mentioned in the CMS editor). For example, an edit user form edit will have a user variable assigned or while displaying an application detail, you can expect to have a variable application accessible.

The type of a variable (an important thing to know to use this reference) can be determined by putting a {% debug:help %} tag into the page which will list all the available variables and it’s types in an HTML comment for you. However, usually they can be guessed quite easily from the method or variable name.

7.1. Drops

7.2. Tags

7.3. Filters

7.4. Drops (up)

7.4.1. Account drop (up)

A developer account. See User drop if you are looking for the email addresses or similar information.

<h2>Account organization name {{ current_account.name }}</h2>
Plan {{ current_account.bought_account_plan.name }}
Telephone {{ current_account.telephone_number }}

{{ current_account.fields_plain_text }}
{{ current_account.extra_fields_plain_text }}

{% if current_account.approval_required? %}
   <p>This account requires approval.</p>
{% endif %}

{% if current_account.credit_card_required? %}

  {% if current_account.credit_card_stored? %}
    <p>This account has credit card details stored in database.</p>
  {% else %}
    <p>Please enter your {{ 'credit card details' | link_to: urls.payment_details }}.</p>
  {% endif %}

  {% if current_account.credit_card_missing? %}
    <p>This account has no credit card details stored in database.</p>
  {% endif %}
{% endif %}

7.4.1.1. Methods

7.4.1.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ account.errors.name | inline_errors }}
7.4.1.1.2. id

Returns the id of the account

7.4.1.1.3. name

Returns the organization name of the developer’s account

7.4.1.1.4. vat_zero_text

Return a text about a vat zero

7.4.1.1.5. vat_rate

Return the vat rate

7.4.1.1.6. unread_messages

Unread messages

7.4.1.1.7. latest_messages

Return the latest messages

7.4.1.1.8. bought_account_plan

Returns the plan the account has contracted

7.4.1.1.9. bought_account_contract

Returns the contract account

7.4.1.1.10. credit_card_display_number
7.4.1.1.11. credit_card_expiration_date
7.4.1.1.12. credit_card_required?

Returns whether the account is required to enter credit card details

7.4.1.1.13. credit_card_stored?

Returns whether the account has credit card details stored

7.4.1.1.14. credit_card_missing?

Returns whether the account has no credit card details stored

7.4.1.1.15. timezone

Returns timezone of this account

7.4.1.1.17. on_trial?

Returns whether the account is on trial period, i.e. all his paid contracts has to be in trial period

7.4.1.1.18. telephone_number

Returns the telephone number of the account

7.4.1.1.19. approval_required?

Returns whether the account requires approval?

7.4.1.1.20. created_at

Returns UNIX timestamp of account creation (signup) Example: Converting timestamp to JavaScript Date

<script>
  var data = new Date({{ account.created_at }} * 1000);
</script>
7.4.1.1.21. full_address

Can be composed by legal address, city and state

7.4.1.1.22. applications

Returns the applications of the account

7.4.1.1.23. subscribed_services

Returns a array with ServiceContract drops

7.4.1.1.24. admin

Returns the admin user of this account

7.4.1.1.25. extra_fields_plain_text

Returns the extra fields defined for the account as plain text

7.4.1.1.26. fields_plain_text

Returns the fields defined for the account as plain text

7.4.1.1.27. extra_fields

Returns only extra fields with values of this account Example: Print all extra fields

{% for field in account.extra_fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
7.4.1.1.28. fields

Returns all fields with values of this account Example: Print all fields

{% for field in account.fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
7.4.1.1.29. builtin_fields
7.4.1.1.30. multiple_applications_allowed?
7.4.1.1.31. billing_address

Returns the billing address of this account

7.4.1.1.32. has_billing_address?

Returns whether this account has a billing address or not

7.4.1.1.33. can

Give access to permission methods

{% if account.can.be_deleted? %}
  <!-- do something -->
{% endif %}
7.4.1.1.34. edit_url
7.4.1.1.35. edit_ogone_billing_address_url
7.4.1.1.36. edit_payment_express_billing_address_url
7.4.1.1.37. edit_braintree_blue_credit_card_details_url
7.4.1.1.38. domain
7.4.1.1.39. upgraded?
7.4.1.1.40. requires_credit_card?
7.4.1.1.41. support_email
7.4.1.1.42. finance_support_email

7.4.2. AccountPlan drop (up)

Example: Using account plan drop in liquid

<p class="notice">The examples for plan drop apply here</p>

7.4.2.1. Methods

7.4.2.1.1. selected?

Returns whether the plan is selected

{% if plan.selected? %}
  <p>You will signup to {{ plan.name }}</p>
{% endif %}
7.4.2.1.2. bought?

Returns whether the plan is bought

{% if plan.bought? %}
   <p>You are  on this plan already!</p>
{% endif %}
7.4.2.1.3. features

Returns an array of available features

7.4.2.1.4. setup_fee

Returns the setup fee

7.4.2.1.5. name

Returns the name of the plan

<h2>We offer you a new {{ plan.name }} plan!</h2>
7.4.2.1.6. system_name

Returns the system name of the plan

{% for plan in available_plans %}
  {% if plan.system_name == 'my_free_plan' %}

    <p>You will buy our only free plan!</p>
  {% endif %}
{% endfor %}
7.4.2.1.7. id

Returns the plan id

7.4.2.1.8. free?

The plan is free if it is not 'paid' (see the 'paid?' method)

{% if plan.free? %}
   <p>This plan is free of charge.</p>
{% else %}

     <p>Plan costs</p>
     Setup fee {{ plan.setup_fee }}
     Flat cost {{ plan.flat_cost }}

{% endif %}
7.4.2.1.10. approval_required?

Returns whether the plan requires approval?

{% if plan.approval_required? %}
   <p>This plan requires approval.</p>
{% endif %}
7.4.2.1.11. flat_cost

Returns the monthly fixed fee of the plan

7.4.3. Alert drop (up)

Example: Using alert drop in liquid

<h2>Alert details</h2>
Level {{ alert.level }}
Message {{ alert.message }}
Utilization {{ alert.utilization }}

7.4.3.1. Methods

7.4.3.1.1. level

The alert level can be one of 50, 80, 90, 100, 120, 150, 200, 300.

7.4.3.1.2. message

Text message describing the alert, for example 'hits per minute: 5 of 5'

7.4.3.1.3. utilization

Decimal number marking the actual utilization that triggered the alert (1.0 is equal to 100%).

Used by {{ alert.utilization | times: 100 }} percent.

7.4.4. Application drop (up)

Example: Using application drop in liquid

<h2>Application {{ application.name }} ({{ application.application_id }})</h2>
<p>{{ application.description }}</p>

7.4.4.1. Methods

7.4.4.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ application.errors.name | inline_errors }}
7.4.4.1.2. id

Returns the id of the application

7.4.4.1.3. can_change_plan?

Returns 'true' if changing of the application is allowed either directly or by request.

7.4.4.1.4. trial?

Returns true if the contract is still in the trial period.

Note: If you change the trial period length of a plan, it does not affect the existing contracts.

7.4.4.1.5. live?
7.4.4.1.6. state

There are three possible states:

    - pending
    - live
    - suspended
7.4.4.1.7. remaining_trial_period_days

Number of day still left in the trial period.

7.4.4.1.8. plan

Returns a plan drop with the plan of the application

7.4.4.1.9. plan_change_permission_name

Returns name of the allowed action

7.4.4.1.10. plan_change_permission_warning

Returns a warning messenger of the allowed action

7.4.4.1.11. contract
7.4.4.1.12. admin_url

Returns the admin_url of the application

7.4.4.1.13. name

Returns the name of the application

7.4.4.1.14. can
7.4.4.1.15. oauth
7.4.4.1.16. pending?

Returns 'true' if application state is pending

7.4.4.1.17. buyer_alerts_enabled?
7.4.4.1.18. description

Returns the description of the application

7.4.4.1.19. redirect_url

Returns the redirect url for the OAuth of the application

7.4.4.1.20. filters_limit

Returns the amount of referrer filters allowed for this application

7.4.4.1.21. keys_limit

Returns the amount of application keys allowed for this application

7.4.4.1.22. referrer_filters

Returns the referrer filters associated with this application

7.4.4.1.23. rejection_reason

Returns the reason for rejecting an application

7.4.4.1.24. user_key

Returns the user_key of application

7.4.4.1.25. application_id

Returns the application_id of an application

7.4.4.1.26. key

Returns the application id or the user key

7.4.4.1.27. url

Returns URL of the builtin detail view for this application.

7.4.4.1.28. edit_url

Returns URL of the builtin edit view for this application.

7.4.4.1.29. update_user_key_url
7.4.4.1.30. log_requests_url
7.4.4.1.31. alerts_url
7.4.4.1.32. application_keys_url
7.4.4.1.33. service

Service to which that application belongs to.

7.4.4.1.34. keys

Returns the keys of an application

{% case application.keys.size %}
{% when 0 %}
  Generate your application key.
{% when 1 %}
  <h4>Application key for {{ application.name }} {{ application.application_id }}</h4>
  <p>Key is: {{ application.keys.first }}</p>
{% else %}
  <h4>Application keys for {{ application.name }} {{ application.application_id }}</h4>
  <ul>
    {% for key in application.keys %}
      <li>{{ key }}</li>
    {% endfor %}
  </ul>
{% endcase %}
7.4.4.1.35. user_key_mode?
7.4.4.1.36. app_id_mode?
7.4.4.1.37. change_plan_url
7.4.4.1.38. log_requests?
7.4.4.1.39. application_keys
7.4.4.1.40. extra_fields

Returns non-hidden extra fields with values for this application Example: Print all extra fields

{% for field in application.extra_fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
7.4.4.1.41. fields

Returns all builtin and extra fields with values for this application Example: Print all fields

{% for field in application.fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
7.4.4.1.42. builtin_fields

Returns only builtin fields of the application

7.4.4.1.43. cinstance

7.4.5. ApplicationKey drop (up)

7.4.5.1. Methods

7.4.5.1.1. id
7.4.5.1.2. value
7.4.5.1.3. url
7.4.5.1.4. application

7.4.6. ApplicationPlan drop (up)

7.4.6.1. Methods

7.4.6.1.1. selected?

Returns whether the plan is selected

{% if plan.selected? %}
  <p>You will signup to {{ plan.name }}</p>
{% endif %}
7.4.6.1.2. bought?

Returns whether the plan is bought

{% if plan.bought? %}
   <p>You are  on this plan already!</p>
{% endif %}
7.4.6.1.3. features

Returns the visible features of the plan

{% if plan == my_free_plan %}
   <p>These plans are the same.</p>
{% else %}
   <p>These plans are not the same.</p>
{% endif %}
7.4.6.1.4. setup_fee

Returns the setup fee of the plan

7.4.6.1.5. name

Returns the name of the plan

<h2>We offer you a new {{ plan.name }} plan!</h2>
7.4.6.1.6. system_name

Returns the system name of the plan

{% for plan in available_plans %}
  {% if plan.system_name == 'my_free_plan' %}

    <p>You will buy our only free plan!</p>
  {% endif %}
{% endfor %}
7.4.6.1.7. id

Returns the plan id

7.4.6.1.8. free?

The plan is free if it is not 'paid' (see the 'paid?' method)

{% if plan.free? %}
   <p>This plan is free of charge.</p>
{% else %}

     <p>Plan costs</p>
     Setup fee {{ plan.setup_fee }}
     Flat cost {{ plan.flat_cost }}

{% endif %}
7.4.6.1.10. approval_required?

Returns whether the plan requires approval?

{% if plan.approval_required? %}
   <p>This plan requires approval.</p>
{% endif %}
7.4.6.1.11. flat_cost

Returns the monthly fixed fee of the plan

7.4.6.1.12. metrics

Returns the metrics of the plan

7.4.6.1.13. usage_limits

Returns the usage limits of the plan

7.4.6.1.14. service

Returns the service of the plan

7.4.7. Base drop (up)

7.4.7.1. Methods

7.4.7.1.1. login_url
7.4.7.1.2. user_identified?

7.4.8. Base drop (up)

7.4.8.1. Methods

7.4.8.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ base.errors.name | inline_errors }}
7.4.8.1.2. title

Returns the title result

7.4.8.1.3. kind

Returns the kind of result, can be 'topic' or 'page'

7.4.8.1.4. url

Returns the resource url of the result

7.4.8.1.5. description

Returns a descriptive string for the result

7.4.9. BillingAddressField drop (up)

7.4.9.1. Methods

7.4.9.1.1. input_name
7.4.9.1.2. label
7.4.9.1.3. choices
7.4.9.1.4. errors
7.4.9.1.5. html_id
7.4.9.1.6. hidden?
7.4.9.1.7. visible?
7.4.9.1.8. read_only?
7.4.9.1.9. name
7.4.9.1.10. value
7.4.9.1.11. required

7.4.10. Can drop (up)

7.4.10.1. Methods

7.4.10.1.1. be_updated?
7.4.10.1.2. add_referrer_filters?
7.4.10.1.3. add_application_keys?
7.4.10.1.4. regenerate_user_key?
7.4.10.1.5. regenerate_oauth_secret?
7.4.10.1.6. manage_keys?
7.4.10.1.7. delete_key?

7.4.11. Can drop (up)

7.4.11.1. Methods

7.4.11.1.1. change_plan?

7.4.12. Cas drop (up)

7.4.12.1. Methods

7.4.12.1.1. login_url
7.4.12.1.2. user_identified?

7.4.13. Contract drop (up)

Plan of the contract {{ contract.plan.name }}

7.4.13.1. Methods

7.4.13.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ contract.errors.name | inline_errors }}
7.4.13.1.2. id

Returns the id

7.4.13.1.3. can_change_plan?

Returns true if any form of change is possible

7.4.13.1.4. trial?

Returns true if the contract is still in the trial period.

Note: If you change the trial period length of a plan, it does not affect the existing contracts.

7.4.13.1.5. live?
7.4.13.1.6. state

There are three possible states:

    - pending
    - live
    - suspended
7.4.13.1.7. remaining_trial_period_days

Number of day still left in the trial period.

7.4.13.1.8. plan

Returns the plan of the contract

7.4.13.1.9. plan_change_permission_name

Returns name of the allowed action

7.4.13.1.10. plan_change_permission_warning

Returns a warning messenger of the allowed action

7.4.13.1.11. contract

7.4.14. Country drop (up)

7.4.14.1. Methods

7.4.14.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ country.errors.name | inline_errors }}
7.4.14.1.2. to_str
7.4.14.1.3. code
7.4.14.1.4. label

7.4.15. CountryField drop (up)

7.4.15.1. Methods

7.4.15.1.1. value

Returns ID of the country

{{ account.fields.country.value }} => 42

compare with:

{{ account.fields.country }} => 'United States'
7.4.15.1.2. name

Returns system name of the field

7.4.15.1.3. required
7.4.15.1.4. hidden?
7.4.15.1.5. hidden
7.4.15.1.6. visible?
7.4.15.1.7. visible
7.4.15.1.8. read_only
7.4.15.1.9. errors
7.4.15.1.10. input_name
7.4.15.1.11. html_id
7.4.15.1.12. label

Returns label of the field

{{ account.fields.country.label }}
<!-- => 'Country' -->
7.4.15.1.13. to_str

Returns name of the country

{{ account.fields.country }} => 'United States'
7.4.15.1.14. choices

7.4.16. CurrentUser drop (up)

7.4.16.1. Methods

7.4.16.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ current_user.errors.name | inline_errors }}
7.4.16.1.2. admin?

Returns whether the user is an admin.

{% if user.admin? %}
  <p>You are an admin of your account.</p>
{% endif %}
7.4.16.1.3. username

Returns the username of the user, html escaped.

7.4.16.1.4. account

Returns the account of the user.

7.4.16.1.5. name

Returns the first and surname of the user.

7.4.16.1.6. email

Returns the email of the user.

7.4.16.1.7. password_required?

This method will return true for users using the builtin Developer Portal authentication mechanisms and false for those that are authenticated via Janrain, CAS or other single-sign-on method.

{{ if user.password_required? }}


{{ endif }}
7.4.16.1.8. sections

Returns the list of sections the user has access to.

{% if user.sections.size > 0 %}
  <p>You can access following sections of our portal:</p>
   <ul>
    {% for section in user.sections %}
      <li>{{ section }}</li>
    {% endfor %}
  </ul>
{% endif %}
7.4.16.1.9. role

Returns the role of the user

7.4.16.1.10. roles_collection

Retuns a list of available roles for the user

{% for role in user.roles_collection %}
  <li>
    <label for="user_role_{{ role.key }}">

      {{ role.text&nbsp;}}
    </label>
    </li>
  {% endfor %}
7.4.16.1.11. url

Return the resource url of the user

{{ 'Delete' | delete_button: user.url }}
7.4.16.1.12. edit_url

Return the url to edit the user

{{ 'Edit' | link_to: user.edit_url, title: 'Edit', class: 'action edit' }}
7.4.16.1.13. can

Exposes rights of current user which are dependent on your settings and user’s role. You can call these methods on the returned object:

  • invite_user?
  • create_application?
  • see_log_requests?
{% if current_user.can.see_log_requests? and application.log_requests? %}
   (<a href="{{ application.log_requests_url }}" class="action edit">App Request Log</a>)
{% endif %}
7.4.16.1.14. extra_fields

Returns non-hidden extra fields with values for this user Example: Print all extra fields

{% for field in user.extra_fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
7.4.16.1.15. fields

Returns all fields with values for this user Example: Print all fields

{% for field in user.fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
7.4.16.1.16. builtin_fields

Returns all builtin fields with values for this user

7.4.17. Error drop (up)

When a form fails to submit because of invalid data, the errors array will be available on the related model.

7.4.17.1. Methods

7.4.17.1.1. attribute

Returns attribute of the model to this error is related

{{ account.errors.org_name.first.attribute }}
<!-- org_name -->
7.4.17.1.2. message

Returns description of the error

{{ account.errors.first.message }}
<!-- can't be blank -->
7.4.17.1.3. value

Returns value of the attribute to which the error is related

{{ account.errors.org_name.first.value }}
 <!-- => "ACME Co." -->
7.4.17.1.4. to_str

Returns full description of the error (includes the attribute name)

{{ model.errors.first }}
<!-- => "Attribute can't be blank" -->

7.4.18. Errors drop (up)

Example: get all errors

{% for error in form.errors %}
  attribute: {{ error.attribute }}
  ...
{% endfor %}

7.4.18.1. Methods

7.4.18.1.1. empty?

Returns true if there are no errors

{% if form.errors == empty %}
  Congratulations! You have no errors!
{% endif %}
7.4.18.1.2. present?

Returns true if there are some errors

{% if form.errors == present %}
  Sorry, there were some errors.
{% endif %}

7.4.19. Feature drop (up)

7.4.19.1. Methods

7.4.19.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ feature.errors.name | inline_errors }}
7.4.19.1.2. name

Returns the name of the feature

<h2>Feature {{ feature.name }}</h2>
7.4.19.1.3. description

Returns the description of the feature

7.4.19.1.4. has_description?

Returns whether the feature has description

{% if feature.has_description? %}
  {{ feature.description }}
{% else %}
   This feature has no description.
{% endif %}

7.4.20. Field drop (up)

7.4.20.1. Methods

7.4.20.1.1. value

Returns value if the field

Name: {{ account.fields.first_name.value }}
7.4.20.1.2. name

Returns system name of the field

7.4.20.1.3. required
7.4.20.1.4. hidden?
7.4.20.1.5. hidden
7.4.20.1.6. visible?
7.4.20.1.7. visible
7.4.20.1.8. read_only
7.4.20.1.9. errors
7.4.20.1.10. input_name

Returns name for the HTML input that is expected when the form is submitted.

<!-- the 'name' attribute will be 'account[country]' -->
7.4.20.1.11. html_id

Returns a unique field identifier that is commonly used as HTML ID attribute.

{{ account.fields.country.html_id }}
<!--  => 'account_country' -->
7.4.20.1.12. label

Returns label of the field

{{ account.fields.country.label }}
<!-- => 'Country' -->
7.4.20.1.13. to_str

Returns value of the field if used as variable

{{ account.fields.first_name }} => 'Tom'
7.4.20.1.14. choices

Returns array of choices available for that field, if any. For example for a field called fruit it may respond with ['apple', 'bannana', 'orange'].

You can define the choices in your /admin/fields_definitions[admin dashboard]. Each of the array elements responds to id and label which are usually just the same unless the field is a special builtin one (like country) It is recommended to use those methods rather that output the choice 'as is' for future compatibility.

{% for choice in field.choices %}
  <select name="{{ field.input_name }}" id="{{ field.html_id }}_id"
          class="{{ field.errors | error_class }}">
  <option {% if field.value == choice %} selected {% endif %} value="{{ choice.id }}">
    {{ choice }}
  </option>
{% endfor %}

7.4.21. Flash drop (up)

7.4.21.1. Methods

7.4.21.1.1. messages

Return an array of messages

{% for message in flash.messages %}
   <p id="flash-{{ message.type }}">
     {{ message.text }}
   </p>
{% endfor %}

7.4.22. Forum drop (up)

7.4.22.1. Methods

7.4.22.1.1. enabled?

Returns true if you have forum functionality enabled.

{% if forum.enabled? %}
  <a href="/forum">Check out our forum!</a>
{% endif %}
7.4.22.1.2. latest_posts

7.4.23. I18n drop (up)

Provide useful strings for i18n support.

{{ object.some_date | date: i18n.long_date }}

7.4.23.1. Methods

7.4.23.1.1. short_date

Alias for %b %d

Dec 11
7.4.23.1.2. long_date

Alias for %B %d, %Y

December 11, 2013
7.4.23.1.3. default_date

Alias for %Y-%m-%d

2013-12-11

7.4.24. Invitation drop (up)

 Email: {{ invitation.email }}


<tr id="invitation_{{ invitation.id }}">
  <td> {{ invitation.email }} </td>
  <td> {{ invitation.sent_at | date: i18n.short_date }} </td>
  <td>
    {% if invitation.accepted? %}
      yes, on {{invitation.accepted_at | format: i18n.short_date }}
    {% else %}
      no
    {% endif %}
  </td>
</tr>

7.4.24.1. Methods

7.4.24.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ invitation.errors.name | inline_errors }}
7.4.24.1.2. email

Returns email address

7.4.24.1.3. accepted?

Returns true if the invitation was accepted

7.4.24.1.4. accepted_at

Returns a date if the invitations was accepted

{{ invitation.accepted_at | date: i18n.short_date }}
7.4.24.1.5. sent_at

Returns the creation date

{{ invitation.sent_at | date: i18n.short_date }}
7.4.24.1.6. resend_url

Returns the url for resend the invitation

{{ "Resend" | update_button: invitation.resend_url}}
7.4.24.1.7. url

Returns the resource url

{{ "Delete" | delete_button: invitation.url }}

7.4.25. Invoice drop (up)

7.4.25.1. Methods

7.4.25.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ invoice.errors.name | inline_errors }}
7.4.25.1.2. friendly_id

Returns a friendly id

<td> {{ invoice.id }} </td>
<td> {{ invoice.name }} </td>
<td> {{ invoice.state }} </td>
<td> {{ invoice.cost }} {{ invoice.currency }} </td>
7.4.25.1.3. name

String composed by month and year

7.4.25.1.4. state
7.4.25.1.5. cost

Returns a number with two decimals

23.00
7.4.25.1.6. currency
7.4.25.1.7. cost_without_vat

Returns cost withot VAT

7.4.25.1.8. vat_amount

Returns vat ammount

7.4.25.1.9. exists_pdf?

Return true if the pdf was generated

7.4.25.1.10. period_begin
{{ invoice.period_begin | date: i18n.short_date }}
7.4.25.1.11. period_end
{{ invoice.period_end | date: i18n.long_date }}
7.4.25.1.12. issued_on
{{ invoice.issued_on | date: i18n.long_date }}
7.4.25.1.13. due_on
{{ invoice.due_on | date: i18n.long_date }}
7.4.25.1.15. vat_code
7.4.25.1.16. fiscal_code
7.4.25.1.17. account

Return a AccountDrop

7.4.25.1.18. buyer_account
7.4.25.1.19. line_items

Returns a array of LineItemDrop

{% for line_item in invoice.line_items %}
  <tr class="line_item {% cycle 'odd', 'even' %}">
    <th>{{ line_item.name }}</th>
    <td>{{ line_item.description }}</td>
    <td>{{ line_item.quantity }}</td>
    <td>{{ line_item.cost }}</td>
  </tr>
{% endfor %}
7.4.25.1.20. payment_transactions

Returns a array of PaymentTransactionDrop

{% for payment_transaction in invoice.payment_transactions %}
  <tr>
    <td> {% if payment_transaction.success? %} Success {% else %} Failure {% endif %} </td>
    <td> {{ payment_transaction.created_at }} </td>
    <td> {{ payment_transaction.reference }} </td>
    <td> {{ payment_transaction.message }} </td>
    <td> {{ payment_transaction.amount }} {{ payment_transaction.currency }} </td>
  </tr>
{% endfor %}
7.4.25.1.21. url

Return the resource url of the invoice

{{ "Show" | link_to: invoice.url }}
7.4.25.1.22. pdf_url

Return the resource url of the invoice pdf

{{ "PDF" | link_to: invoice.pdf_url }}

7.4.26. Janrain drop (up)

7.4.26.1. Methods

7.4.26.1.1. login_url
7.4.26.1.2. user_identified?
7.4.26.1.3. session_url
7.4.26.1.4. relying_party

7.4.27. LineItem drop (up)

7.4.27.1. Methods

7.4.27.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ line_item.errors.name | inline_errors }}
7.4.27.1.2. name
{% for line_item in invoice.line_items %}
  <tr class="line_item {% cycle 'odd', 'even' %}">
    <th>{{ line_item.name }}</th>
    <td>{{ line_item.description }}</td>
    <td>{{ line_item.quantity }}</td>
    <td>{{ line_item.cost }}</td>
  </tr>
{% endfor %}
7.4.27.1.3. description
7.4.27.1.4. quantity
7.4.27.1.5. cost

7.4.28. Message drop (up)

7.4.28.1. Methods

7.4.28.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ message.errors.name | inline_errors }}
7.4.28.1.2. id

Returns the id of the message

7.4.28.1.3. subject

If subject is not present then either a truncated body or (no subject) string is returned.

7.4.28.1.4. body

Body of the message

7.4.28.1.5. created_at

Returns the creation date

{{ message.created_at | date: i18n.short_date }}
7.4.28.1.6. url

URL of the message detail, points either to inbox or outbox.

7.4.28.1.7. state

Either 'read' or 'unread'

7.4.28.1.8. sender

Returns the name of the sender

7.4.28.1.9. to

Returns the name of the receiver

7.4.28.1.10. recipients

7.4.29. Message drop (up)

7.4.29.1. Methods

7.4.29.1.1. type

The possible types of the messages are:

  • success (not used by now)
  • info
  • warning
  • danger
7.4.29.1.2. text

7.4.30. Metric drop (up)

7.4.30.1. Methods

7.4.30.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ metric.errors.name | inline_errors }}
7.4.30.1.2. unit

Returns the unit of the metric

This metric is measured in {{ metric.unit | pluralize }}
7.4.30.1.3. description

Returns the description of the metric

7.4.30.1.4. name

Returns the name of the metric

<h4>Metric {{ metric.name }}</h4>
<p>{{ metric.description }}</p>
7.4.30.1.5. system_name

Returns the system name of this metric

<h4>Metric {{ metric.name }}</h4>
<p>{{ metric.system_name }}</p>
7.4.30.1.6. usage_limits

Returns the usage limits of the metric

{% if metric.usage_limits.size > 0 %}
   <p>Usage limits of the metric</p>
   <ul>
     {% for usage_limit in metric.usage_limits %}
       <li>{{ usage_limit.period }} : {{ usage_limit.value }}</li>
     {% endfor %}
   </ul>
 {% else %}
   <p>This metric has no usage limits</p>
{% endif %}
7.4.30.1.7. pricing_rules

Returns the pricing rules of the metric

{% if metric.pricing_rules.size > 0 %}
  <p>Pricing rules of the metric</p>
  <ul>
  {% for pricing_rule in metric.pricing_rules %}
    <li>{{ pricing_rule.cost_per_unit }}</li>
  {% endfor %}
  </ul>

{% else %}
  <p>This metric has no pricing rules</p>
{% endif %}
7.4.30.1.8. has_parent

7.4.31. Page drop (up)

7.4.31.1. Methods

7.4.31.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ page.errors.name | inline_errors }}
7.4.31.1.2. title

Returns the title of the page

<title>{{ page.title }}</title>
7.4.31.1.3. system_name

Returns system name of the page

{% if page.system_name == 'my_page' %}
  {% include 'custom_header' %}
{% endif %}

7.4.32. Page drop (up)

7.4.32.1. Methods

7.4.32.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ page.errors.name | inline_errors }}
7.4.32.1.2. title
7.4.32.1.3. kind
7.4.32.1.4. url
7.4.32.1.5. description

7.4.33. Pagination drop (up)

7.4.33.1. Methods

7.4.33.1.1. page_size

Number of items on one full page.

  {% for part in pagination.parts %}
    {% if part.is_link %}
      {% case part.rel %}
      {% when 'previous' %}
        {% assign css_class = 'previous_page' %}
      {% when 'next' %}
        {% assign css_class = 'next_page' %}
      {% else %}
        {% assign css_class = '' %}
      {% endcase %}

      <a class="{{ css_class }}" rel="{{ part.rel}}" href="{{ part.url }}">{{ part.title }}</a>
    {% else %}
      {% case part.rel %}
      {% when 'current' %}
         <em class="current">{{ part.title }}</em>
      {% when 'gap' %}
         &#x2026;
      {% else %}
         {{ part.title }}
      {% endcase %}
    {% endif %}
  {% endfor %}


<!-- Outputs:
  ============================================

  <a class="previous_page" rel="prev" href="?page=7">&#x2190; Previous</a>
  <a rel="start" href="?page=1">1</a>
  <a href="?page=2">2</a>
  <a href="?page=3">3</a>
  <a href="?page=4">4</a>
  <a href="?page=5">5</a>
  <a href="?page=6">6</a>
  <a rel="prev" href="?page=7">7</a>
  <em class="current">8</em>
  <a rel="next" href="?page=9">9</a>
  <a href="?page=10">10</a>
  <a href="?page=11">11</a>
  <a href="?page=12">12</a>
  &#x2026;
  <a href="?page=267">267</a>
  <a href="?page=268">268</a>
  <a class="next_page" rel="next" href="?page=9">Next &#x2192;</a>

=======================================
-->
7.4.33.1.2. current_page

Number of the currently selected page.

7.4.33.1.3. current_offset

Items skipped so far.

7.4.33.1.4. pages

Total number of pages.

7.4.33.1.5. items

Total number of items in all pages together.

7.4.33.1.6. previous

Number of the previous page or empty.

7.4.33.1.7. next

Number of the next page or empty.

7.4.33.1.8. parts

Elements that help to render a user-friendly pagination. See the [[part-drop[part drop] for more information.

7.4.34. Part drop (up)

7.4.34.1. Methods

7.4.34.1.1. url
7.4.34.1.2. rel
7.4.34.1.3. current?
7.4.34.1.5. title
7.4.34.1.6. to_s

7.4.35. PaymentGateway drop (up)

7.4.35.1. Methods

7.4.35.1.1. braintree_blue?

Returns whether current payment gateway is authorize.Net

7.4.35.1.2. authorize_net?

Returns whether current payment gateway is authorize.Net

7.4.35.1.3. type

Returns the type of this payment gateway.

7.4.36. PaymentTransaction drop (up)

7.4.36.1. Methods

7.4.36.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ payment_transaction.errors.name | inline_errors }}
7.4.36.1.2. currency

Returns the currency

{% for payment_transaction in invoice.payment_transactions %}
  <tr>
    <td> {% if payment_transaction.success? %} Success {% else %} Failure {% endif %} </td>
    <td> {{ payment_transaction.created_at }} </td>
    <td> {{ payment_transaction.reference }} </td>
    <td> {{ payment_transaction.message }} </td>
    <td> {{ payment_transaction.amount }} {{ payment_transaction.currency }} </td>
  </tr>
{% endfor %}
7.4.36.1.3. amount

Returns the amount

7.4.36.1.4. created_at

Returns the creation date

7.4.36.1.5. success?

Returns true if was success

7.4.36.1.6. message

Returns the message of the transaction

7.4.36.1.7. reference

Returns the reference

7.4.37. PlanFeature drop (up)

7.4.37.1. Methods

7.4.37.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ plan_feature.errors.name | inline_errors }}
7.4.37.1.2. name

Returns the name of the feature

<h2>Feature {{ feature.name }}</h2>
7.4.37.1.3. description

Returns the description of the feature

7.4.37.1.4. has_description?

Returns whether the feature has description

{% if feature.has_description? %}
  {{ feature.description }}
{% else %}
   This feature has no description.
{% endif %}
7.4.37.1.5. enabled?

7.4.38. Post drop (up)

7.4.38.1. Methods

7.4.38.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ post.errors.name | inline_errors }}
7.4.38.1.2. body

Text of the post.

7.4.38.1.3. topic

Every post belongs to a [[topic-drop[topic]

7.4.38.1.4. created_at

Date when this post created

{{ post.created_at | date: i18n.short_date }}
7.4.38.1.5. url

The url of this post within its topic

7.4.39. Post drop (up)

7.4.39.1. Methods

7.4.39.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ post.errors.name | inline_errors }}
7.4.39.1.2. title
7.4.39.1.3. kind
7.4.39.1.4. url
7.4.39.1.5. description

7.4.40. PricingRule drop (up)

7.4.40.1. Methods

7.4.40.1.1. cost_per_unit

Returns the cost per unit of the pricing rule Example: Using pricing rule drop in liquid

<h2>Pricing rule</h2>
Min value {{ pricing_rule.min }}
Max value {{ pricing_rule.max }}
Cost per unit {{ pricing_rule.cost_per_unit }}
7.4.40.1.2. min

Returns the minimum value of the pricing rule

7.4.40.1.3. max

Returns the maximum value of the pricing rule

7.4.40.1.4. plan

Returns plan of pricing rule

7.4.41. Provider drop (up)

7.4.41.1. Methods

7.4.41.1.1. name

Returns the name of your organization.

Domain {{ provider.domain }}

{% if provider.multiple_applications_allowed? %}

     <p>Applications</p>
     <ul>
     {% for app in account.applications %}
       <li>{{ app.name }}</li>
     {% endfor %}
     </ul>

{% else %}
   Application {{ account.applications.first.name }}
{% endif %}

For general questions contact us at {{ provider.support_email }},
for invoice or payment related questions contact us at {{ provider.finance_support_email }}
7.4.41.1.2. payment_gateway

Returns the payment gateway associated with your organization

7.4.41.1.3. domain

Domain of your developer portal

7.4.41.1.4. timezone

Returns timezone that you use. Can be changed in your /p/admin/account/edit[administration dashboard].

7.4.41.1.5. support_email

Support email of the account

7.4.41.1.6. finance_support_email

Finance support email of the account

7.4.41.1.7. telephone_number

Returns the telephone number of the account

7.4.41.1.8. multiple_applications_allowed?

True if developers can have more separate applications with their own keys, stats, etc. Depends on your 3scale plan.

{% if provider.multiple_applications_allowed? %}

     <p>Applications</p>
     <ul>
     {% for app in account.applications %}
       <li>{{ app.name }}</li>
     {% endfor %}
     </ul>

{% else %}
   Application {{ account.applications.first.name }}
{% endif %}
7.4.41.1.9. logo_url

Return the logo url

7.4.41.1.10. multiple_services_allowed?

True if your 3scale plan allows you to manage multiple APIs as separate services.

{% if provider.multiple_services_allowed? %}
  {% for service in provider.services %}
     Service {{ service.name }} is available.
  {% endfor %}
{% endif %}
7.4.41.1.11. finance_allowed?
7.4.41.1.12. multiple_users_allowed?

True if the developer accounts can have multiple logins associated with them (depends on your 3scale plan) and its visibility has been turned on for your develoeper portal in the /p/admin/cms/switches[settings].

{% if provider.multiple_users_allowed? %}
  <ul id="subsubmenu">
    <li>
       {{ 'Users' | link_to: urls.users }}
    </li>
    <li>
      {{ 'Sent invitations' | link_to: urls.invitations }}
    </li>
  </ul>
{% endif %}
7.4.41.1.13. account_plans

Returns all published account plans.

<p>We offer following account plans:</p>
<ul>
{% for plan in model.account_plans %}
  <li>{{ plan.name }} </li>
{% endfor %}
</ul>
7.4.41.1.14. services

Returns all defined services.

<p>You can signup to any of our services!</p>
<ul>
{% for service in provider.services %}
  <li>{{ service.name }} <a href="/signup/service/{{ service.system_name }}">Signup!</a></li>
{% endfor %}
7.4.41.1.15. signups_enabled?

You can enable or disable signups in the Usage rules section of your Admin Portal.

7.4.41.1.16. account_management_enabled?

You can enable or disable account management in the Usage rules section.

7.4.42. ReferrerFilter drop (up)

7.4.42.1. Methods

7.4.42.1.1. id
7.4.42.1.2. value
7.4.42.1.3. delete_url
7.4.42.1.4. application

7.4.43. Request drop (up)

Example: Using request drop in liquid

<h2>Request details</h2>
URI {{ request.request_uri }}
Host {{ request.host }}
Host and port {{ request.host_with_port }}

7.4.43.1. Methods

7.4.43.1.1. request_uri

Returns the URI of the request

7.4.43.1.2. host_with_port

Returns the host with port of the request

7.4.43.1.3. host

Returns the host part of the request URL

7.4.43.1.4. path

Returns the path part of the request URL

{% if request.path == '/' %}
  Welcome on a landing page!
{% else %}
  This just an ordinary page.
{% endif %}

7.4.44. Role drop (up)

7.4.44.1. Methods

7.4.44.1.1. name

Return internal name of the role, important for the system

7.4.44.1.2. description

Return a descriptiptive text for the role

7.4.45. Search drop (up)

7.4.45.1. Methods

7.4.45.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ search.errors.name | inline_errors }}
7.4.45.1.2. query

Returns the searched string

<h3>{{ search.token }}</h3>
<p>found on {{ search.total_found }} {{ search.item | pluralize }} </p>
<dl>
  {% for result in search.results %}
    <dt>
       [ {{ result.kind | capitalize}} ]
      {{ result.title | link_to: result.url }}
    </dt>
    <dd>
      {{ result.description }}
    </dd>
  {% endfor %}
</dl>
7.4.45.1.3. total_found

Returns the number of matching elements

7.4.45.1.4. results

Returs an array of results for que search

7.4.46. Service drop (up)

7.4.46.1. Methods

7.4.46.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ service.errors.name | inline_errors }}
7.4.46.1.2. name

Returns the name of the service

7.4.46.1.3. system_name

Returns the system name of the service

{% case service.system_name %}
{% when 'api' %}
  API is our newest service!
{% when 'old' %}
  Unfortunately we dont allow more signups to our old service.
{% endcase %}
7.4.46.1.4. description

Returns the description of the service

7.4.46.1.5. subscribed?

Returns whether the service is subscribed

{% if service.subscribed? %}
   <p>You already subscribed this service.</p>
{% endif %}
7.4.46.1.6. subscription

Returns a subscription(ServiceContract drop) if the currently logged in user is subscribed to this service, Nil otherwise.

{% if service.subscription %}
   Your applications for service {{ service.name }} are:
   {% for app in service.subscription.applications %}
     {{ app.name }}<br/>
   {% endfor %}
{% else %}
   <p>You are not subscribed to this.</p>
{% endif %}
7.4.46.1.7. subscribable?
7.4.46.1.8. subscribe_url
7.4.46.1.9. application_plans

Returns the published application plans of the service

{% for service in model.services %}
  <h4>{{ service.name }} application plans:</h4>
  <dl>
  {% for application_plan in service.application_plans %}
    <dt>{{ application_plan.name }}</dt>
    <dd>{{ application_plan.system_name }}</dd>
  {% endfor %}
  </dl>
{% endfor %}
7.4.46.1.10. service_plans

Returns the published service plans of the service

<p>We offer following service plans:</p>
<dl>
{% for service in model.services %}
  {% for service_plan in service.service_plans %}
    <dt>{{ service_plan.name }}</dt>
    <dd>{{ service_plan.system_name }}</dd>
  {% endfor %}
{% endfor %}
</dl>
7.4.46.1.11. plans

Returns the application plans of the service

7.4.46.1.12. features

Returns the visible features of the service

{% if service.features.size > 0 %}
  <p>{{ service.name }} has following features:</p>
  <ul>
  {% for feature in service.features %}
    <li>{{ feature.name }}</li>
  {% endfor %}
  </ul>
{% else %}
  <p>Unfortunately, {{ service.name }} currently has no features.</p>
{% endif %}
7.4.46.1.13. apps_identifier

Depending on the authentication mode set, returns either 'ID', 'API key' or 'Client ID' for OAuth authentication.

{{ service.application_key_name }}
7.4.46.1.14. backend_version
7.4.46.1.15. referrer_filters_required?
7.4.46.1.16. metrics

Returns the metrics of the service

<p>On {{ service.name }} we measure following metrics:</p>
<ul>
{% for metric in service.metrics %}
  <li>{{ metric.name }}</li>
{% endfor %}
</ul>
7.4.46.1.17. support_email

Support email of the service

7.4.47. ServiceContract drop (up)

7.4.47.1. Methods

7.4.47.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ service_contract.errors.name | inline_errors }}
7.4.47.1.2. id
7.4.47.1.3. can_change_plan?

Returns true if any form of change is possible

7.4.47.1.4. trial?

Returns true if the contract is still in the trial period.

Note: If you change the trial period length of a plan, it does not affect the existing contracts.

7.4.47.1.5. live?
7.4.47.1.6. state

There are three possible states:

    - pending
    - live
    - suspended
7.4.47.1.7. remaining_trial_period_days

Number of day still left in the trial period.

7.4.47.1.8. plan

Returns the plan of the contract

7.4.47.1.9. plan_change_permission_name

Returns name of the allowed action

7.4.47.1.10. plan_change_permission_warning

Returns a warning messenger of the allowed action

7.4.47.1.11. contract
7.4.47.1.12. name
7.4.47.1.13. system_name
7.4.47.1.14. change_plan_url
7.4.47.1.15. service
7.4.47.1.16. applications
7.4.47.1.17. can

Exposes specific rights of the current user for that subscription.

{% if subscription.can.change_plan? %}
  ...
{% endif %}

7.4.48. ServicePlan drop (up)

7.4.48.1. Methods

7.4.48.1.1. selected?

Returns whether the plan is selected

{% if plan.selected? %}
  <p>You will signup to {{ plan.name }}</p>
{% endif %}
7.4.48.1.2. bought?

Returns whether the plan is bought

{% if plan.bought? %}
   <p>You are  on this plan already!</p>
{% endif %}
7.4.48.1.3. features

Returns the visible features of the plan

{% if plan == my_free_plan %}
   <p>These plans are the same.</p>
{% else %}
   <p>These plans are not the same.</p>
{% endif %}
7.4.48.1.4. setup_fee

Returns the setup fee of the plan

7.4.48.1.5. name

Returns the name of the plan

<h2>We offer you a new {{ plan.name }} plan!</h2>
7.4.48.1.6. system_name

Returns the system name of the plan

{% for plan in available_plans %}
  {% if plan.system_name == 'my_free_plan' %}

    <p>You will buy our only free plan!</p>
  {% endif %}
{% endfor %}
7.4.48.1.7. id

Returns the plan id

7.4.48.1.8. free?

The plan is free if it is not 'paid' (see the 'paid?' method)

{% if plan.free? %}
   <p>This plan is free of charge.</p>
{% else %}

     <p>Plan costs</p>
     Setup fee {{ plan.setup_fee }}
     Flat cost {{ plan.flat_cost }}

{% endif %}
7.4.48.1.10. approval_required?

Returns whether the plan requires approval?

{% if plan.approval_required? %}
   <p>This plan requires approval.</p>
{% endif %}
7.4.48.1.11. flat_cost

Returns the monthly fixed fee of the plan

7.4.48.1.12. service

Example: Using service plan drop in liquid

<p class="notice">The examples for plan drop apply here</p>
Service of this plan {{ plan.service.name }}

7.4.49. TimeZone drop (up)

7.4.49.1. Methods

7.4.49.1.1. full_name
7.4.49.1.2. to_str

7.4.50. Today drop (up)

7.4.50.1. Methods

7.4.50.1.1. month

Returns current month (1-12)

7.4.50.1.2. day

Returns current day of the month (1-31)

7.4.50.1.3. year

Returns current year Example: Create dynamic copyright

&copy;{{ today.year }}
7.4.50.1.4. beginning_of_month

Returns date of beginning of current month

This month began on {{ today.beginning_of_month | date: '%A' }}

7.4.51. Topic drop (up)

7.4.51.1. Methods

7.4.51.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ topic.errors.name | inline_errors }}
7.4.51.1.2. title
7.4.51.1.3. kind
7.4.51.1.4. url
7.4.51.1.5. description

7.4.52. Topic drop (up)

7.4.52.1. Methods

7.4.52.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ topic.errors.name | inline_errors }}
7.4.52.1.2. title

Name of the topic. Submitted when first post to the thread is posted.

7.4.52.1.3. url

7.4.53. Url drop (up)

7.4.53.1. Methods

7.4.53.1.1. to_s
7.4.53.1.2. to_str
7.4.53.1.3. title
7.4.53.1.4. current_or_subpath?

True if the path of the current page is the same as this one or it’s a 'direct subpath' of it (i.e. extended by ID). For example with {{ urls.outbox }} these will return true:

  • /admin/sent/messages/received
  • /admin/sent/messages/received/42

But not these:

  • /admin/sent/messsages/new
  • /admin/sent/messsages/longer/subpath

See also '#active?', '#current?'.

7.4.53.1.5. current?

True if the URL’s path is the the same as of the current. Parameters and other components are not taken into account. See also '#active?'.

{% assign url = urls.messages_inbox %}
<!-- => http://awesome.3scale.net/admin/messages/sent -->

<!-- Current page: http://awesome.3scale.net/admin/messages/sent?unread=1 -->
{{ url.current? }} => true

<!-- Current page: http://awesome.3scale.net/admin/messages -->
{{ url.current? }} => false
7.4.53.1.6. active?

True if the current page is in the same menu structure as this URL. See also '#current?'.

{% assign url = urls.messages_inbox %}
<!-- => http://awesome.3scale.net/admin/messages/sent -->

<!-- Current page: http://awesome.3scale.net/admin/messages -->
{{ url.active? }} => true

<!-- Current page: http://awesome.3scale.net/admin/messages/trash -->
{{ url.active? }} => true

<!-- Current page: http://awesome.3scale.net/admin/stats -->
{{ url.active? }} => false

7.4.54. Urls drop (up)

7.4.54.1. Methods

7.4.54.1.1. provider
7.4.54.1.2. cas_login
<a href="{{ urls.signup }}">signup here</a>
<a href="{{ urls.service_subscription }}">subscribe to a service here</a>
7.4.54.1.3. new_application
7.4.54.1.4. signup

URL of a signup page. Accessible for all.

<a href="{{ urls.signup }}?{{ service_plan | param_filter }}&{{ app_plan | param_filter }}" >Signup Now!</a>
7.4.54.1.6. login
7.4.54.1.7. logout
7.4.54.1.8. forgot_password
7.4.54.1.9. service_subscription

URL to a service subscription page. Only for logged in users.

<a href="{{ urls.service_subscription }}?{{ service_plan | param_filter }}" >
  Subscribe to service {{ service.name }}
</a>
7.4.54.1.10. compose_message

URL to a page that allows the developer contact provider via the internal messaging system.

7.4.54.1.11. messages_outbox

URL to the list of messages sent by a developer.

7.4.54.1.12. messages_trash
7.4.54.1.13. empty_messages_trash
7.4.54.1.14. credit_card_terms
7.4.54.1.15. credit_card_privacy
7.4.54.1.16. credit_card_refunds
7.4.54.1.17. users
7.4.54.1.18. personal_details

URL or Nil if user account management is disabled (check your Usage rules).

7.4.54.1.19. access_details

A page with API key(s) and other authentication info. Differs depending on the authentication strategy.

7.4.54.1.20. payment_details
7.4.54.1.21. new_invitation

Page to invite new users

7.4.54.1.22. invitations

List of all the sent invitations

7.4.54.1.23. dashboard
7.4.54.1.24. applications
7.4.54.1.25. api_access_details
7.4.54.1.26. services
7.4.54.1.27. messages_inbox

URL to the list of received messages.

7.4.54.1.28. stats
7.4.54.1.29. account_overview
7.4.54.1.30. account_plans
7.4.54.1.31. invoices

7.4.55. UsageLimit drop (up)

Example: Using usage limit drop in liquid

You cannot do more than {{ limit.value }} {{ limit.metric.unit }}s per {{ limit.period }}

7.4.55.1. Methods

7.4.55.1.1. period

Returns the period of the usage limit

7.4.55.1.2. metric

Usually hits but can be any custom method.

7.4.55.1.3. value

Returns the value of the usage limit

7.4.56. User drop (up)

<h2>User {{ user.display_name }}</h2>
Account {{ user.account.name }}
Username {{ user.username }}
Email {{ user.email }}
Website {{ user.website }}

7.4.56.1. Methods

7.4.56.1.1. errors

If a form of this model is rendered after unsuccesfull submit, this returns" errors that occured.

{{ user.errors.name | inline_errors }}
7.4.56.1.2. admin?

Returns whether the user is an admin.

{% if user.admin? %}
  <p>You are an admin of your account.</p>
{% endif %}
7.4.56.1.3. username

Returns the username of the user, html escaped.

7.4.56.1.4. account

Returns the account of the user.

7.4.56.1.5. name

Returns the first and surname of the user.

7.4.56.1.6. email

Returns the email of the user.

7.4.56.1.7. password_required?

This method will return true for users using the builtin Developer Portal authentication mechanisms and false for those that are authenticated via Janrain, CAS or other single-sign-on method.

{% if user.password_required? %}


{% endif %}
7.4.56.1.8. sections

Returns the list of sections the user has access to.

{% if user.sections.size > 0 %}
  <p>You can access following sections of our portal:</p>
   <ul>
    {% for section in user.sections %}
      <li>{{ section }}</li>
    {% endfor %}
  </ul>
{% endif %}
7.4.56.1.9. role

Returns the role of the user

7.4.56.1.10. roles_collection

Retuns a list of available roles for the user

{% for role in user.roles_collection %}
  <li>
    <label for="user_role_{{ role.key }}">

      {{ role.text&nbsp;}}
    </label>
    </li>
  {% endfor %}
7.4.56.1.11. url

Return the resource url of the user

{{ 'Delete' | delete_button: user.url }}
7.4.56.1.12. edit_url

Return the url to edit the user

{{ 'Edit' | link_to: user.edit_url, title: 'Edit', class: 'action edit' }}
7.4.56.1.13. can

Give access to permission methods

{% if user.can.be_managed? %}
  <!-- do something -->
{% endif %}
7.4.56.1.14. extra_fields

Returns non-hidden extra fields with values for this user Example: Print all extra fields

{% for field in user.extra_fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
7.4.56.1.15. fields

Returns all fields with values for this user Example: Print all fields

{% for field in user.fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
7.4.56.1.16. builtin_fields

Returns all builtin fields with values for this user

7.5. Tags (up)

7.5.1. Tag 'braintree_customer_form' (up)

Renders a form to enter data required for Braintree Blue payment gateway

7.5.2. Tag 'csrf' (up)

Renders the cross site request forgery meta tags.

Example: Using csrf tag in liquid

  <head>
    {% csrf %}
  </head>

7.5.3. Tag 'content' (up)

Renders body of a page. Use this only inside a layout.

7.5.4. Tag 'content_for' (up)

7.5.5. Tag 'debug' (up)

Prints all liquid variables available in a template into an HTML comment.' We recommend to remove this tag from public templates.

``{% debug:help %}``

7.5.6. Tag 'email' (up)

The email tag allows you to customize headers of your outgoing emails and is available only inside the email templates.

There are several convenience subtags such as cc or subject (see the table below) that simplify the job but you can also use a header subtag to set an arbitrary SMTP header for the message.

Subtag

Description

Example

subject

dynamic subject

{% subject = 'Greetings from Example company!' %}

cc

carbon copy

{% cc = 'boss@example.com' %}

bcc

blind carbon copy

{% bcc = 'all@example.com' %}

from

the actual sender

{% from = 'system@example.com' %}

reply-to

 

{% reply-to = 'support@example.com' %}

header

custom SMTP header

{% header 'X-SMTP-Group' = 'Important' %}

do_not_send

discard the email

{% do_not_send %}

Example: Conditional blind carbon copy

{% email %}
  {% if plan.system_name == 'enterprise' %}
     {% bcc 'marketing@world-domination.org' %}
  {% endif%}
{% endemail %}

Example: Disabling emails at all

{% email %}
  {% do_not_send %}
{% endemail %}

Example: Signup email filter

{% email %}
  {% if plan.system == 'enterprise' %}
    {% subject = 'Greetings from Example company!' %}
    {% reply-to = 'support@example.com' %}
  {% else %}
    {% do_not_send %}
  {% endif %}
{% endemail %}

7.5.7. Tag 'flash' (up)

Renders informational or error messages of the system.

DEPRECATED: This tag is deprecated, use FlashDrop instead.

Example: Using flash tag in liquid

   {% flash %}

7.5.9. Tag 'form' (up)

Renders a form tag with an action and class attribute specified, depending on the name of the form. The supported forms are:

Form

Allowed Field Names

Spam Protection

Notes

application.create

  • application[name]
  • application[description]
  • application[<any-extra-field>]

No

 

application.update

  • application[name]
  • application[description]
  • application[<any-extra-field>]

No

 

signup

  • account[org_name]
  • account[org_legaladdress]
  • account[org_legaladdress_cont]
  • account[city]
  • account[state]
  • account[zip]
  • account[telephone_number]
  • account[country_id]
  • account[<any-extra-field>]
  • account[user][username]
  • account[user][email]
  • account[user][first_name]
  • account[user][last_name]
  • account[user][password]
  • account[user][password_confirmation]
  • account[user][title]
  • account[user][<any-extra-field>]

Yes

Sign Up directly to plans of your choice by adding one one or more hidden fields with a name plan_ids[]. If a parameter of such name is found in the current URL, the input field is filled automatically.

Example: A form to create an application

{% form 'application.create', application %}


   {{ application.errors.name | inline_errors }}


{% endform %}

7.5.10. Tag 'latest_forum_posts' (up)

An HTML table with latest forum posts.

DEPRECATED: Use forum drop instead.

Example: Using latest_forum_posts tag liquid

{% latest_forum_posts %}

7.5.11. Tag 'latest_messages' (up)

Renders a html snippet with the latest messages for the user.

Example: Using latest_messages tag liquid

{% latest_messages %}

7.5.13. Tag 'menu' (up)

DEPRECATED: This tag is deprecated, use '{% include "menu" %}' instead.

7.5.14. Tag 'oldfooter' (up)

Renders a footer html snippet.

DEPRECATED: This tag is deprecated, use a CMS partial instead

7.5.15. Tag 'plan_widget' (up)

Includes a widget to review or change application plan

{% if application.can_change_plan? %}
  <a href="#choose-plan-{{ application.id }}"
     id="choose-plan-{{application.id}}">
    Review/Change
  </a>
  {% plan_widget application %}
{% endif %}

7.5.16. Tag 'portlet' (up)

This tag includes portlet by system name.

7.5.17. Tag 'submenu' (up)

Renders a submenu html snippet for a logged in user.

DEPRECATED: This tag is deprecated, use a 'submenu' partial instead

Example: Using submenu tag in liquid

   {% submenu %}

7.5.18. Tag '3scale_essentials' (up)

7.5.19. Tag 'user_widget' (up)

Renders a user widget html snippet.

DEPRECATED: This tag is deprecated, use a CMS partial instead

Example: Using user_widget tag in liquid

   {% user_widget %}
    <p class="notice">If you are logged in you see profile related links above.</p>
    <p class="notice">If you are not login you are invited to login or signup.</p>

7.6. Filters (up)

7.6.1. FormHelpers filters (up)

7.6.1.1. error_class filter

Outputs error class if argument is not empty Example: Using error_class to show output an error class

7.6.1.2. inline_errors filter

Outputs error fields inline in paragraph Example: Using inline_errors to show errors inline

{{ form.errors.description | inline_errors }}

7.6.2. ParamFilter filters (up)

7.6.2.1. to_param filter

Converts a supplied drop to URL parameter if possible. Example: Using to_param filter in liquid

<h2>Signup to a service</h2>
<a href="{{ urls.signup }}?{{ service | to_param }}">Signup to {{ service.name }}</a>

7.6.3. Common filters (up)

7.6.3.1. group_by filter

Group collection by some key Example: Group applications by service

{% assign grouped = applications | group_by: 'service' %}
{% for group in grouped %}
  Service: {{ group[0 }}
  {% for app in group[1] %}
    Application: {{ app.name }}
  {% endfor %}
{% endfor %}

7.6.3.2. any filter

True if any string in the collection equals to the parameter Example: Are there any pending apps of the current account?

{% assign has_pending_apps = current_account.applications | map: 'state' | any: 'live' %}

7.6.3.4. javascript_include_tag filter

Javascript include tag

7.6.3.5. image_tag filter

Outputs an tag using the parameters as its src attribute.

{{ 'http://example.com/cool.gif' | image_tag }}
## =>

7.6.3.6. mail_to filter

Converts email address to a 'mailto' link.

{{ 'me@there.is' | mail_to }}
## => <a href="mailto:me@there.is">me@there.is</a>

7.6.3.7. html_safe filter

Marks content as HTML safe so that it is not escaped.

7.6.3.8. pluralize filter

Convert word to plural form

7.6.3.9. delete_button filter

Generates a button to delete a resource present on the URL. First parameter is a URL, second is a title. You can also add more HTML tag attributes as a third parameter.

{{ 'Delete Message' | delete_button: message.url, class: 'my-button' }}

7.6.3.10. delete_button_ajax filter

Generates a button to delete a resource present on the URL using AJAX. First parameter is a URL, second is a title.

{{ 'Delete Message' | delete_button_ajax: message.url }}

7.6.3.11. update_button filter

Generates a button to 'update' (HTTP PUT request) a resource present on the URL. First parameter is a URL, second is a title. You can also add more HTML tag attributes as a third parameter.

{{ 'Resend' | update_button: message.url, class: 'my-button' }}

7.6.3.12. create_button filter

Generates a button to create a resource present on the URL. First parameter is a URL, second is a title.

{{ 'Create Message' | create_button: message.url }}

7.6.3.13. create_button_ajax filter

7.6.3.14. regenerate_oauth_secret_button filter