Spaces:
No application file
No application file
File size: 3,311 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
//UserBundle
Mautic.userOnLoad = function (container) {
if (mQuery(container + ' form[name="user"]').length) {
if (mQuery('#user_position').length) {
Mautic.activateTypeahead('#user_position', {displayKey: 'position'});
}
} else {
if (mQuery(container + ' #list-search').length) {
Mautic.activateSearchAutocomplete('list-search', 'user.user');
}
}
};
Mautic.roleOnLoad = function (container, response) {
if (mQuery(container + ' #list-search').length) {
Mautic.activateSearchAutocomplete('list-search', 'user.role');
}
if (response && response.permissionList) {
MauticVars.permissionList = response.permissionList;
}
};
/**
* Toggles permission panel visibility for roles
*/
Mautic.togglePermissionVisibility = function () {
//add a very slight delay in order for the clicked on checkbox to be selected since the onclick action
//is set to the parent div
setTimeout(function () {
if (mQuery('#role_isAdmin_0').prop('checked')) {
mQuery('#rolePermissions').removeClass('hide');
mQuery('#isAdminMessage').addClass('hide');
} else {
mQuery('#rolePermissions').addClass('hide');
mQuery('#isAdminMessage').removeClass('hide');
}
}, 10);
};
/**
* Toggle permissions, update ratio, etc
*
* @param changedPermission
* @param bundle
*/
Mautic.onPermissionChange = function (changedPermission, bundle) {
var granted = 0;
if (mQuery(changedPermission).prop('checked')) {
if (mQuery(changedPermission).val() == 'full') {
//uncheck all of the others
mQuery(changedPermission).closest('.choice-wrapper').find("label input:checkbox:checked").map(function () {
if (mQuery(this).val() != 'full') {
mQuery(this).prop('checked', false);
mQuery(this).parent().toggleClass('active');
}
})
} else {
//uncheck full
mQuery(changedPermission).closest('.choice-wrapper').find("label input:checkbox:checked").map(function () {
if (mQuery(this).val() == 'full') {
granted = granted - 1;
mQuery(this).prop('checked', false);
mQuery(this).parent().toggleClass('active');
}
})
}
}
//update granted numbers
if (mQuery('.' + bundle + '_granted').length) {
var granted = 0;
var levelPerms = MauticVars.permissionList[bundle];
mQuery.each(levelPerms, function(level, perms) {
mQuery.each(perms, function(index, perm) {
var isChecked = mQuery('input[data-permission="' + bundle + ':' + level + ':' + perm + '"]').prop('checked');
if (perm == 'full') {
if (isChecked) {
if (perms.length === 1) {
granted++;
} else {
granted += perms.length - 1;
}
}
} else if (isChecked) {
granted++;
}
});
});
mQuery('.' + bundle + '_granted').html(granted);
}
}; |