Proyectos de Subversion Moodle

Rev

Rev 361 | Rev 1225 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 361 Rev 1224
Línea 48... Línea 48...
48
    ?.querySelector(reportSelectors.regions.report);
48
    ?.querySelector(reportSelectors.regions.report);
49
  if (!userBulkForm || !userReport) {
49
  if (!userBulkForm || !userReport) {
50
    return;
50
    return;
51
  }
51
  }
52
  const actionSelect = userBulkForm.querySelector("select");
52
  const actionSelect = userBulkForm.querySelector("select");
-
 
53
  const inputs = userBulkForm.querySelectorAll("input, select"); // Capturar todos los inputs y selects
-
 
54
 
53
  CustomEvents.define(actionSelect, [CustomEvents.events.accessibleChange]);
55
  CustomEvents.define(actionSelect, [CustomEvents.events.accessibleChange]);
Línea 54... Línea 56...
54
 
56
 
55
  jQuery(actionSelect).on(CustomEvents.events.accessibleChange, (event) => {
57
  jQuery(actionSelect).on(CustomEvents.events.accessibleChange, (event) => {
56
    if (event.target.value && `${event.target.value}` !== "0") {
58
    if (event.target.value && `${event.target.value}` !== "0") {
Línea 61... Línea 63...
61
        userBulkForm.submit();
63
        userBulkForm.submit();
62
      }
64
      }
63
    }
65
    }
64
  });
66
  });
Línea -... Línea 67...
-
 
67
 
-
 
68
  const resetForm = () => {
65
 
69
    inputs.forEach((input) => {
66
  // Every time the checkboxes in the report are changed, update the list of users in the form values
70
      if (input.type === "checkbox" || input.type === "radio") {
-
 
71
        input.checked = false;
-
 
72
      } else {
-
 
73
        input.value = "";
-
 
74
      }
-
 
75
    });
-
 
76
  };
67
  // and enable/disable the action select.
77
 
68
  const updateUserIds = () => {
78
  const updateUserIds = () => {
69
    const selectedUsers = [
79
    const selectedUsers = [
70
      ...userReport.querySelectorAll(Selectors.checkedRows),
80
      ...userReport.querySelectorAll(Selectors.checkedRows),
71
    ];
81
    ];
72
    const selectedUserIds = selectedUsers.map((check) => parseInt(check.value));
82
    const selectedUserIds = selectedUsers.map((check) => parseInt(check.value));
73
    userBulkForm.querySelector('[name="userids"]').value =
83
    userBulkForm.querySelector('[name="userids"]').value =
Línea 74... Línea -...
74
      selectedUserIds.join(",");
-
 
75
 
84
      selectedUserIds.join(",");
76
    // Disable the action selector if nothing selected, and reset the current selection.
85
 
77
    actionSelect.disabled = selectedUsers.length === 0;
86
    actionSelect.disabled = selectedUsers.length === 0;
78
    if (actionSelect.disabled) {
87
    if (actionSelect.disabled) {
Línea 79... Línea 88...
79
      actionSelect.value = "0";
88
      actionSelect.value = "0";
80
    }
89
    }
81
 
90
 
82
    const selectedUsersNames = selectedUsers.map(
-
 
83
      (check) => document.querySelector(`label[for="${check.id}"]`).textContent
-
 
-
 
91
    const selectedUsersNames = selectedUsers.map(
84
    );
92
      (check) => document.querySelector(`label[for="${check.id}"]`).textContent
85
    // Add the user ids and names to the form data attributes so they can be available from the
93
    );
86
    // other JS modules that listen to the form submit event.
94
    
87
    userBulkForm.data = {
95
    userBulkForm.data = {
88
      userids: selectedUserIds,
96
      userids: selectedUserIds,
Línea 89... Línea 97...
89
      usernames: selectedUsersNames,
97
      usernames: selectedUsersNames,
Línea 90... Línea 98...
90
    };
98
    };
91
  };
-
 
92
 
99
  };
93
  updateUserIds();
100
 
94
 
101
  updateUserIds();
95
  document.addEventListener("change", (event) => {
102
 
96
    // When checkboxes are checked next to individual users or the master toggle (Select all/none).
103
  document.addEventListener("change", (event) => {
97
    if (
104
    if (
98
      (event.target.matches(Selectors.checkbox) ||
105
      (event.target.matches(Selectors.checkbox) ||
99
        event.target.matches(Selectors.masterCheckbox)) &&
106
        event.target.matches(Selectors.masterCheckbox)) &&
Línea 100... Línea 107...
100
      userReport.contains(event.target)
107
      userReport.contains(event.target)
101
    ) {
-
 
102
      updateUserIds();
108
    ) {
103
    }
109
      updateUserIds();
-
 
110
    }
104
  });
111
  });
105
 
112
 
106
  document.addEventListener(tableEvents.tableContentRefreshed, (event) => {
113
  document.addEventListener(tableEvents.tableContentRefreshed, (event) => {
107
    // When the report contents is updated (i.e. page is changed, filters applied, etc).
114
    if (userReport.contains(event.target)) {