(function (angular, $, _) {
- var partialUrl = function (relPath) {
- return CRM.resourceUrls.civicrm + '/partials/crmMailing/' + relPath;
- };
// The following directives have the same simple implementation -- load
// a template and export a "mailing" object into scope.
var simpleBlocks = {
- crmMailingBlockHeaderFooter: partialUrl('headerFooter.html'),
- crmMailingBlockMailing: partialUrl('mailing.html'),
- crmMailingBlockPublication: partialUrl('publication.html'),
- crmMailingBlockResponses: partialUrl('responses.html'),
- crmMailingBlockRecipients: partialUrl('recipients.html'),
- crmMailingBlockSchedule: partialUrl('schedule.html'),
- crmMailingBlockSummary: partialUrl('summary.html'),
- crmMailingBlockTracking: partialUrl('tracking.html'),
- crmMailingBodyHtml: partialUrl('body_html.html'),
- crmMailingBodyText: partialUrl('body_text.html')
+ crmMailingBlockHeaderFooter: '~/crmMailing/headerFooter.html',
+ crmMailingBlockMailing: '~/crmMailing/mailing.html',
+ crmMailingBlockPublication: '~/crmMailing/publication.html',
+ crmMailingBlockResponses: '~/crmMailing/responses.html',
+ crmMailingBlockRecipients: '~/crmMailing/recipients.html',
+ crmMailingBlockSchedule: '~/crmMailing/schedule.html',
+ crmMailingBlockSummary: '~/crmMailing/summary.html',
+ crmMailingBlockTracking: '~/crmMailing/tracking.html',
+ crmMailingBodyHtml: '~/crmMailing/body_html.html',
+ crmMailingBodyText: '~/crmMailing/body_text.html'
};
_.each(simpleBlocks, function(templateUrl, directiveName){
angular.module('crmMailing').directive(directiveName, function ($parse) {
var model = $parse(attr.crmMailing);
scope.mailing = model(scope.$parent);
scope.crmMailingConst = CRM.crmMailing;
- scope.ts = CRM.ts('CiviMail');
+ scope.ts = CRM.ts(null);
scope[directiveName] = attr[directiveName] ? scope.$parent.$eval(attr[directiveName]) : {};
}
};
// note: the directive defines a variable called "preview" with any inputs supplied by the user (e.g. the target recipient for an example mailing)
angular.module('crmMailing').directive('crmMailingBlockPreview', function ($parse) {
return {
- templateUrl: partialUrl('preview.html'),
+ templateUrl: '~/crmMailing/preview.html',
link: function (scope, elm, attr) {
var mailingModel = $parse(attr.crmMailing);
scope.mailing = mailingModel(scope);
scope.crmMailingConst = CRM.crmMailing;
- scope.ts = CRM.ts('CiviMail');
+ scope.ts = CRM.ts(null);
scope.testContact = {email: CRM.crmMailing.defaultTestEmail};
scope.testGroup = {gid: null};
scope: {
crmMailing: '@'
},
- templateUrl: partialUrl('review.html'),
+ templateUrl: '~/crmMailing/review.html',
link: function (scope, elm, attr) {
var mailingModel = $parse(attr.crmMailing);
scope.mailing = mailingModel(scope.$parent);
scope.crmMailingConst = CRM.crmMailing;
- scope.ts = CRM.ts('CiviMail');
+ scope.ts = CRM.ts(null);
scope.previewMailing = function previewMailing(mailing, mode) {
return crmMailingPreviewMgr.preview(mailing, mode);
};
},
template: '<input type="text" class="crmMailingToken" />',
link: function (scope, element, attrs, crmUiIdCtrl) {
- $(element).select2({
- width: "10em",
+ $(element).addClass('crm-action-menu action-icon-token').select2({
+ width: "12em",
dropdownAutoWidth: true,
data: CRM.crmMailing.mailTokens,
- placeholder: ts('Insert')
+ placeholder: ts('Tokens')
});
$(element).on('select2-selecting', function (e) {
var id = crmUiIdCtrl.get(attrs.crmFor);
crmAvailMailings: '@', // available mailings
crmMailing: '@' // the mailing for which we are choosing recipients
},
- templateUrl: partialUrl('directive/recipients.html'),
+ templateUrl: '~/crmMailing/directive/recipients.html',
link: function (scope, element, attrs) {
scope.mailing = scope.$parent.$eval(attrs.crmMailing);
scope.groups = scope.$parent.$eval(attrs.crmAvailGroups);
scope.mailings = scope.$parent.$eval(attrs.crmAvailMailings);
- scope.ts = CRM.ts('CiviMail');
+ scope.ts = CRM.ts(null);
/// Convert MySQL date ("yyyy-mm-dd hh:mm:ss") to JS date object
scope.parseDate = function (date) {
return date;
}
var p = date.split(/[\- :]/);
- return new Date(p[0], p[1], p[2], p[3], p[4], p[5]);
+ return new Date(parseInt(p[0]), parseInt(p[1])-1, parseInt(p[2]), parseInt(p[3]), parseInt(p[4]), parseInt(p[5]));
};
/// Remove {value} from {array}