| 1 | (function(angular, $, _) { |
| 2 | |
| 3 | // example: |
| 4 | // scope.myAbtest = new CrmMailingAB(); |
| 5 | // <crm-mailing-ab-block-setup="{abName: 1, group_percentage: 1}" crm-abtest="myAbtest" /> |
| 6 | var simpleDirectives = { |
| 7 | crmMailingAbBlockSetup: '~/crmMailingAB/BlockSetup.html' |
| 8 | }; |
| 9 | _.each(simpleDirectives, function(templateUrl, directiveName) { |
| 10 | angular.module('crmMailingAB').directive(directiveName, function($parse, crmMailingABCriteria, crmUiHelp) { |
| 11 | var scopeDesc = {crmAbtest: '@'}; |
| 12 | scopeDesc[directiveName] = '@'; |
| 13 | |
| 14 | return { |
| 15 | scope: scopeDesc, |
| 16 | templateUrl: templateUrl, |
| 17 | link: function(scope, elm, attr) { |
| 18 | var model = $parse(attr.crmAbtest); |
| 19 | scope.abtest = model(scope.$parent); |
| 20 | scope.crmMailingConst = CRM.crmMailing; |
| 21 | scope.crmMailingABCriteria = crmMailingABCriteria; |
| 22 | scope.ts = CRM.ts(null); |
| 23 | scope.hs = crmUiHelp({file: 'CRM/Mailing/MailingUI'}); |
| 24 | |
| 25 | var fieldsModel = $parse(attr[directiveName]); |
| 26 | scope.fields = fieldsModel(scope.$parent); |
| 27 | } |
| 28 | }; |
| 29 | }); |
| 30 | }); |
| 31 | |
| 32 | })(angular, CRM.$, CRM._); |