Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1441
Línea 21... Línea 21...
21
 * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
21
 * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
22
 */
22
 */
Línea 23... Línea 23...
23
 
23
 
Línea 24... Línea -...
24
"use strict";
-
 
25
 
24
"use strict";
26
import $ from 'jquery';
25
 
27
import AutoComplete from 'core/form-autocomplete';
26
import AutoComplete from 'core/form-autocomplete';
28
import 'core/inplace_editable';
27
import 'core/inplace_editable';
29
import Notification from 'core/notification';
28
import Notification from 'core/notification';
Línea 149... Línea 148...
149
                return;
148
                return;
150
            });
149
            });
151
        }
150
        }
152
    });
151
    });
Línea 153... Línea 152...
153
 
152
 
-
 
153
    // Initialize sortable list to handle active filters moving.
154
    // Initialize sortable list to handle active filters moving (note JQuery dependency, see MDL-72293 for resolution).
154
    const activeFiltersSelector = `${reportSelectors.regions.activeFilters} ul`;
155
    var activeFiltersSortableList = new SortableList(`${reportSelectors.regions.activeFilters} ul`, {isHorizontal: false});
155
    const activeFiltersSortableList = new SortableList(activeFiltersSelector, {isHorizontal: false});
Línea 156... Línea 156...
156
    activeFiltersSortableList.getElementName = element => Promise.resolve(element.data('filterName'));
156
    activeFiltersSortableList.getElementName = element => Promise.resolve(element.data('filterName'));
-
 
157
 
157
 
158
    document.addEventListener(SortableList.EVENTS.elementDrop, event => {
158
    $(document).on(SortableList.EVENTS.DROP, `${reportSelectors.regions.report} li[data-filter-id]`, (event, info) => {
159
        const reportOrderFilter = event.target.closest(`${activeFiltersSelector} ${reportSelectors.regions.activeFilter}`);
-
 
160
        if (reportOrderFilter && event.detail.positionChanged) {
159
        if (info.positionChanged) {
161
            const pendingPromise = new Pending('core_reportbuilder/filters:reorder');
160
            const pendingPromise = new Pending('core_reportbuilder/filters:reorder');
-
 
161
            const reportElement = event.target.closest(reportSelectors.regions.report);
162
 
Línea 162... Línea 163...
162
            const filterId = info.element.data('filterId');
163
            const reportElement = reportOrderFilter.closest(reportSelectors.regions.report);
163
            const filterPosition = info.element.data('filterPosition');
164
            const {filterId, filterPosition, filterName} = reportOrderFilter.dataset;
-
 
165
 
164
 
166
            // Select target position, if moving to the end then count number of element siblings.
165
            // Select target position, if moving to the end then count number of element siblings.
167
            let targetFilterPosition = event.detail.targetNextElement.data('filterPosition')
166
            let targetFilterPosition = info.targetNextElement.data('filterPosition') || info.element.siblings().length + 2;
168
                || event.detail.element.siblings().length + 2;
Línea 167... Línea 169...
167
            if (targetFilterPosition > filterPosition) {
169
            if (targetFilterPosition > filterPosition) {
168
                targetFilterPosition--;
170
                targetFilterPosition--;
169
            }
171
            }
170
 
172
 
171
            // Re-order filter, giving drop event transition time to finish.
173
            // Re-order filter, giving drop event transition time to finish.
172
            const reorderPromise = reorderFilter(reportElement.dataset.reportId, filterId, targetFilterPosition);
174
            const reorderPromise = reorderFilter(reportElement.dataset.reportId, filterId, targetFilterPosition);
173
            Promise.all([reorderPromise, new Promise(resolve => setTimeout(resolve, 1000))])
175
            Promise.all([reorderPromise, new Promise(resolve => setTimeout(resolve, 1000))])
174
                .then(([data]) => reloadSettingsFiltersRegion(reportElement, data))
176
                .then(([data]) => reloadSettingsFiltersRegion(reportElement, data))
175
                .then(() => getString('filtermoved', 'core_reportbuilder', info.element.data('filterName')))
177
                .then(() => getString('filtermoved', 'core_reportbuilder', filterName))
176
                .then(addToast)
178
                .then(addToast)