summaryrefslogtreecommitdiff
path: root/www/crm/wp-content/plugins/civicrm/civicrm/ang/crmMailing/Token.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/crm/wp-content/plugins/civicrm/civicrm/ang/crmMailing/Token.js')
-rw-r--r--www/crm/wp-content/plugins/civicrm/civicrm/ang/crmMailing/Token.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/ang/crmMailing/Token.js b/www/crm/wp-content/plugins/civicrm/civicrm/ang/crmMailing/Token.js
new file mode 100644
index 00000000..71131d21
--- /dev/null
+++ b/www/crm/wp-content/plugins/civicrm/civicrm/ang/crmMailing/Token.js
@@ -0,0 +1,28 @@
+(function(angular, $, _) {
+ // example: <input name="subject" /> <input crm-mailing-token on-select="doSomething(token.name)" />
+ // WISHLIST: Instead of global CRM.crmMailing.mailTokens, accept token list as an input
+ angular.module('crmMailing').directive('crmMailingToken', function() {
+ return {
+ require: '^crmUiIdScope',
+ scope: {
+ onSelect: '@'
+ },
+ template: '<input type="text" class="crmMailingToken" />',
+ link: function(scope, element, attrs, crmUiIdCtrl) {
+ $(element).addClass('crm-action-menu fa-code').crmSelect2({
+ width: "12em",
+ dropdownAutoWidth: true,
+ data: CRM.crmMailing.mailTokens,
+ placeholder: ts('Tokens')
+ });
+ $(element).on('select2-selecting', function(e) {
+ e.preventDefault();
+ $(element).select2('close').select2('val', '');
+ scope.$parent.$eval(attrs.onSelect, {
+ token: {name: e.val}
+ });
+ });
+ }
+ };
+ });
+})(angular, CRM.$, CRM._);