Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
roles_grid_js.phtml
Go to the documentation of this file.
1 <?php
7 // @codingStandardsIgnoreFile
8 
9 ?>
10 <script>
11 require([
12  "mage/adminhtml/grid",
13  "prototype"
14 ], function(){
15 
16 <?php $myBlock = $block->getLayout()->getBlock('user.roles.grid'); ?>
17 <?php if (is_object($myBlock) && $myBlock->getJsObjectName()): ?>
18  var radioBoxes = $H({});
19  var warning = false;
20  var userRoles = $H(<?= /* @escapeNotVerified */ $myBlock->getSelectedRoles(true) ?>);
21  if (userRoles.size() > 0) warning = true;
22  $('user_user_roles').value = userRoles.toQueryString();
23 
24  function registerUserRole(grid, element, checked){
25  if(checked){
26  userRoles.each(function(o){userRoles.remove(o[0]);});
27  userRoles[element.value] = 0;
28  } else {
29  userRoles.remove(element.value);
30  }
31  $('user_user_roles').value = userRoles.toQueryString();
32  grid.reloadParams = {'user_roles[]':userRoles.keys()};
33  }
34 
35  function roleRowClick(grid, event){
36  var trElement = Event.findElement(event, 'tr');
37  var isInput = Event.element(event).tagName == 'INPUT';
38  if(trElement){
39  var checkbox = Element.getElementsBySelector(trElement, 'input');
40  if(checkbox[0] && !checkbox[0].checked){
41  var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
42  if (checked && warning && radioBoxes.size() > 0) {
43  if ( !confirm("<?= /* @escapeNotVerified */ __('Warning!\r\nThis action will remove this user from already assigned role\r\nAre you sure?') ?>") ) {
44  checkbox[0].checked = false;
45  for(i in radioBoxes) {
46  if( radioBoxes[i].status == 1) {
47  radioBoxes[i].object.checked = true;
48  }
49  }
50  return false;
51  }
52  warning = false;
53  }
54  <?= /* @escapeNotVerified */ $myBlock->getJsObjectName() ?>.setCheckboxChecked(checkbox[0], checked);
55  }
56  }
57  }
58 
59  function rolesRowInit(grid, row){
60  var checkbox = $(row).getElementsByClassName('radio')[0];
61  if (checkbox) {
62  radioBoxes[checkbox.value] = {'status' : ((checkbox.checked) ? 1 : 0), 'object' : checkbox};
63  }
64  }
65 
66 <?= /* @escapeNotVerified */ $myBlock->getJsObjectName() ?>.rowClickCallback = roleRowClick;
67 <?= /* @escapeNotVerified */ $myBlock->getJsObjectName() ?>.initRowCallback = rolesRowInit;
68 <?= /* @escapeNotVerified */ $myBlock->getJsObjectName() ?>.checkboxCheckCallback = registerUserRole;
69 <?= /* @escapeNotVerified */ $myBlock->getJsObjectName() ?>.rows.each(function(row){rolesRowInit(<?= /* @escapeNotVerified */ $myBlock->getJsObjectName() ?>, row)});
70 <?php endif; ?>
71 
72 });
73 </script>
74 
75 <?php $editBlock = $block->getLayout()->getBlock('adminhtml.user.edit'); ?>
76 <?php if (is_object($editBlock)): ?>
77  <script type="text/x-magento-init">
78  {
79  "[data-role=delete-user]" : {
80  "deleteUserAccount" : {
81  "message": "<?= $editBlock->escapeHtml($editBlock->getDeleteMessage()) ?>",
82  "url": "<?= /* @noEscape */ $editBlock->getDeleteUrl() ?>",
83  "objId": "<?= $editBlock->escapeHtml($editBlock->getObjectId()) ?>"
84  }
85  }
86  }
87  </script>
88 <?php endif; ?>
rolesRowInit(grid, row)
$editBlock
$block
Definition: block.php:8
$myBlock
userRoles
roleRowClick(grid, event)
jquery extjs ext tree checkbox
Definition: tree.phtml:41
registerUserRole(grid, element, checked)