mirror of
https://github.com/moodle/moodle.git
synced 2025-04-14 04:52:36 +02:00
MDL-81766 courseformat: Fix bulk actions for delegated sections
Disable bulk editing for delegated sections and fix some styles related to it.
This commit is contained in:
parent
b18db24552
commit
c51989d649
@ -8,6 +8,6 @@ define("core_courseformat/local/content/section/cmitem",["exports","core_coursef
|
||||
* @class core_courseformat/local/content/section/cmitem
|
||||
* @copyright 2021 Ferran Recio <ferran@moodle.com>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_dndcmitem=(obj=_dndcmitem)&&obj.__esModule?obj:{default:obj};class _default extends _dndcmitem.default{create(){this.name="content_section_cmitem",this.selectors={BULKSELECT:"[data-for='cmBulkSelect']",BULKCHECKBOX:"[data-bulkcheckbox]",CARD:"[data-region='activity-card']",DRAGICON:".editing_move",INPLACEEDITABLE:"[data-inplaceeditablelink]"},this.classes={LOCKED:"editinprogress",HIDE:"d-none",SELECTED:"selected"},this.id=this.element.dataset.id}stateReady(state){var _this$getElement;this.configDragDrop(this.id),null===(_this$getElement=this.getElement(this.selectors.DRAGICON))||void 0===_this$getElement||_this$getElement.classList.add(this.classes.DRAGICON),this._refreshBulk({state:state})}getWatchers(){return[{watch:"cm[".concat(this.id,"]:deleted"),handler:this.unregister},{watch:"cm[".concat(this.id,"]:updated"),handler:this._refreshCm},{watch:"bulk:updated",handler:this._refreshBulk}]}setDragImage(){return this.getElement(this.selectors.CARD)}_refreshCm(_ref){var _element$dragging,_element$locked;let{element:element}=_ref;this.element.classList.toggle(this.classes.DRAGGING,null!==(_element$dragging=element.dragging)&&void 0!==_element$dragging&&_element$dragging),this.element.classList.toggle(this.classes.LOCKED,null!==(_element$locked=element.locked)&&void 0!==_element$locked&&_element$locked),this.locked=element.locked}_refreshBulk(_ref2){var _this$getElement2;let{state:state}=_ref2;const bulk=state.bulk;this.setDraggable(!bulk.enabled),bulk.enabled?(this.element.dataset.action="toggleSelectionCm",this.element.dataset.preventDefault=1):(this.element.removeAttribute("data-action"),this.element.removeAttribute("data-preventDefault")),null===(_this$getElement2=this.getElement(this.selectors.BULKSELECT))||void 0===_this$getElement2||_this$getElement2.classList.toggle(this.classes.HIDE,!bulk.enabled);const disabled=!this._isCmBulkEnabled(bulk),selected=this._isSelected(bulk);this._refreshActivityCard(bulk,selected),this._setCheckboxValue(selected,disabled)}_refreshActivityCard(bulk,selected){var _this$getElement3,_this$getElement4;null===(_this$getElement3=this.getElement(this.selectors.INPLACEEDITABLE))||void 0===_this$getElement3||_this$getElement3.classList.toggle(this.classes.HIDE,bulk.enabled),null===(_this$getElement4=this.getElement(this.selectors.CARD))||void 0===_this$getElement4||_this$getElement4.classList.toggle(this.classes.SELECTED,selected),this.element.classList.toggle(this.classes.SELECTED,selected)}_setCheckboxValue(checked,disabled){const checkbox=this.getElement(this.selectors.BULKCHECKBOX);checkbox&&(checkbox.checked=checked,checkbox.disabled=disabled,disabled?checkbox.removeAttribute("data-is-selectable"):checkbox.dataset.isSelectable=1)}_isCmBulkEnabled(bulk){return!!bulk.enabled&&(""===bulk.selectedType||"cm"===bulk.selectedType)}_isSelected(bulk){return"cm"===bulk.selectedType&&bulk.selection.includes(this.id)}}return _exports.default=_default,_exports.default}));
|
||||
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_dndcmitem=(obj=_dndcmitem)&&obj.__esModule?obj:{default:obj};class _default extends _dndcmitem.default{create(){this.name="content_section_cmitem",this.selectors={BULKSELECT:"[data-for='cmBulkSelect']",BULKCHECKBOX:"[data-bulkcheckbox]",CARD:"[data-region='activity-card']",DRAGICON:".editing_move",INPLACEEDITABLE:'[data-itemtype="activityname"] > [data-inplaceeditablelink]'},this.classes={LOCKED:"editinprogress",HIDE:"d-none",SELECTED:"selected"},this.id=this.element.dataset.id}stateReady(state){var _this$getElement;this.configDragDrop(this.id),null===(_this$getElement=this.getElement(this.selectors.DRAGICON))||void 0===_this$getElement||_this$getElement.classList.add(this.classes.DRAGICON),this._refreshBulk({state:state})}getWatchers(){return[{watch:"cm[".concat(this.id,"]:deleted"),handler:this.unregister},{watch:"cm[".concat(this.id,"]:updated"),handler:this._refreshCm},{watch:"bulk:updated",handler:this._refreshBulk}]}setDragImage(){return this.getElement(this.selectors.CARD)}_refreshCm(_ref){var _element$dragging,_element$locked;let{element:element}=_ref;this.element.classList.toggle(this.classes.DRAGGING,null!==(_element$dragging=element.dragging)&&void 0!==_element$dragging&&_element$dragging),this.element.classList.toggle(this.classes.LOCKED,null!==(_element$locked=element.locked)&&void 0!==_element$locked&&_element$locked),this.locked=element.locked}_refreshBulk(_ref2){var _this$getElement2;let{state:state}=_ref2;const bulk=state.bulk;this.setDraggable(!bulk.enabled),bulk.enabled?(this.element.dataset.action="toggleSelectionCm",this.element.dataset.preventDefault=1):(this.element.removeAttribute("data-action"),this.element.removeAttribute("data-preventDefault")),null===(_this$getElement2=this.getElement(this.selectors.BULKSELECT))||void 0===_this$getElement2||_this$getElement2.classList.toggle(this.classes.HIDE,!bulk.enabled);const disabled=!this._isCmBulkEnabled(bulk),selected=this._isSelected(bulk);this._refreshActivityCard(bulk,selected),this._setCheckboxValue(selected,disabled)}_refreshActivityCard(bulk,selected){var _this$getElement3,_this$getElement4;null===(_this$getElement3=this.getElement(this.selectors.INPLACEEDITABLE))||void 0===_this$getElement3||_this$getElement3.classList.toggle(this.classes.HIDE,bulk.enabled),null===(_this$getElement4=this.getElement(this.selectors.CARD))||void 0===_this$getElement4||_this$getElement4.classList.toggle(this.classes.SELECTED,selected),this.element.classList.toggle(this.classes.SELECTED,selected)}_setCheckboxValue(checked,disabled){const checkbox=this.getElement(this.selectors.BULKCHECKBOX);checkbox&&(checkbox.checked=checked,checkbox.disabled=disabled,disabled?checkbox.removeAttribute("data-is-selectable"):checkbox.dataset.isSelectable=1)}_isCmBulkEnabled(bulk){return!!bulk.enabled&&(""===bulk.selectedType||"cm"===bulk.selectedType)}_isSelected(bulk){return"cm"===bulk.selectedType&&bulk.selection.includes(this.id)}}return _exports.default=_default,_exports.default}));
|
||||
|
||||
//# sourceMappingURL=cmitem.min.js.map
|
File diff suppressed because one or more lines are too long
@ -40,7 +40,7 @@ export default class extends DndCmItem {
|
||||
BULKCHECKBOX: `[data-bulkcheckbox]`,
|
||||
CARD: `[data-region='activity-card']`,
|
||||
DRAGICON: `.editing_move`,
|
||||
INPLACEEDITABLE: `[data-inplaceeditablelink]`,
|
||||
INPLACEEDITABLE: `[data-itemtype="activityname"] > [data-inplaceeditablelink]`,
|
||||
};
|
||||
// Most classes will be loaded later by DndCmItem.
|
||||
this.classes = {
|
||||
|
@ -123,6 +123,7 @@ class cm implements named_templatable, renderable {
|
||||
'cmid' => $mod->id,
|
||||
'editing' => $PAGE->user_is_editing(),
|
||||
'sectionnum' => $this->section->section,
|
||||
'cmbulk' => !$mod->get_delegated_section_info(),
|
||||
];
|
||||
|
||||
// Add partial data segments.
|
||||
|
@ -114,7 +114,7 @@ class header implements named_templatable, renderable {
|
||||
$data->name = get_section_name($course, $section);
|
||||
$data->selecttext = $format->get_format_string('selectsection', $data->name);
|
||||
|
||||
if (!$format->get_sectionnum()) {
|
||||
if (!$format->get_sectionnum() && !$section->is_delegated()) {
|
||||
$data->sectionbulk = true;
|
||||
}
|
||||
|
||||
|
@ -65,9 +65,11 @@
|
||||
<div class="activity-item focus-control {{#modstealth}}hiddenactivity{{/modstealth}}{{!
|
||||
}}{{#modhiddenfromstudents}}hiddenactivity{{/modhiddenfromstudents}}{{!
|
||||
}}{{#modinline}}activityinline{{/modinline}}" data-activityname="{{activityname}}" data-region="activity-card">
|
||||
{{$ core_courseformat/local/content/cm/bulkselect }}
|
||||
{{> core_courseformat/local/content/cm/bulkselect }}
|
||||
{{/ core_courseformat/local/content/cm/bulkselect }}
|
||||
{{#cmbulk}}
|
||||
{{$ core_courseformat/local/content/cm/bulkselect }}
|
||||
{{> core_courseformat/local/content/cm/bulkselect }}
|
||||
{{/ core_courseformat/local/content/cm/bulkselect }}
|
||||
{{/cmbulk}}
|
||||
{{!
|
||||
Place the actual content of the activity-item in a separate template to make it easier for other formats to add
|
||||
additional content to the activity wrapper.
|
||||
|
@ -1650,6 +1650,11 @@ $divider-hover-color: $primary !default;
|
||||
position: absolute;
|
||||
left: -2rem;
|
||||
}
|
||||
// Delegated sections are not available for bulk editing.
|
||||
&:has(.delegated-section):hover {
|
||||
outline: none !important; // stylelint-disable-line declaration-no-important
|
||||
box-shadow: none !important; // stylelint-disable-line declaration-no-important
|
||||
}
|
||||
}
|
||||
.course-section-header .bulkselect {
|
||||
left: -2.75rem;
|
||||
|
@ -29837,6 +29837,10 @@ span.editinstructions .alert-link {
|
||||
position: absolute;
|
||||
left: -2rem;
|
||||
}
|
||||
.bulkenabled .activity-item:has(.delegated-section):hover {
|
||||
outline: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.bulkenabled .course-section-header .bulkselect {
|
||||
left: -2.75rem;
|
||||
position: relative;
|
||||
|
@ -29837,6 +29837,10 @@ span.editinstructions .alert-link {
|
||||
position: absolute;
|
||||
left: -2rem;
|
||||
}
|
||||
.bulkenabled .activity-item:has(.delegated-section):hover {
|
||||
outline: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.bulkenabled .course-section-header .bulkselect {
|
||||
left: -2.75rem;
|
||||
position: relative;
|
||||
|
Loading…
x
Reference in New Issue
Block a user