mirror of
https://github.com/moodle/moodle.git
synced 2025-08-11 20:06:46 +02:00
MDL-53186 tool_lp: Send competencies in review from evidence interface
This commit is contained in:
parent
e821c94799
commit
71cb304ad8
18 changed files with 565 additions and 43 deletions
|
@ -1 +1 @@
|
|||
define(["jquery","core/notification","core/ajax","core/templates","core/str","tool_lp/tree","tool_lp/competencypicker"],function(a,b,c,d,e,f,g){var h=function(a,b,c){g.prototype.constructor.apply(this,[1,!1,"self",c]),this._userId=a,this._plans=[],b&&(this._planId=b,this._singlePlan=!0)};return h.prototype=Object.create(g.prototype),h.prototype._plans=null,h.prototype._planId=null,h.prototype._singlePlan=!1,h.prototype._userId=null,h.prototype._afterRender=function(){var b=this;g.prototype._afterRender.apply(b,arguments),b._singlePlan||b._find('[data-action="chooseplan"]').change(function(c){b._planId=a(c.target).val(),b._loadCompetencies().then(b._refresh.bind(b))}.bind(b))},h.prototype._fetchCompetencies=function(a,d){var e=this;return c.call([{methodname:"tool_lp_list_plan_competencies",args:{id:a}}])[0].done(function(a){var b,c,f=[];for(b=0;b<a.length;b++)c=a[b].competency,c.shortname.toLowerCase().indexOf(d.toLowerCase())<0||(c.children=[],c.haschildren=0,f.push(c));e._competencies=f}).fail(b.exception)},h.prototype._getPlan=function(b){var c;return a.each(this._plans,function(a,d){return d.id==b?(c=d,!1):void 0}),c},h.prototype._loadCompetencies=function(){return this._fetchCompetencies(this._planId,this._searchText)},h.prototype._loadPlans=function(){var d,e=this;return e._plans.length>0?a.when():(d=e._singlePlan?c.call([{methodname:"tool_lp_read_plan",args:{id:this._planId}}])[0].then(function(a){return[a]}):c.call([{methodname:"tool_lp_list_user_plans",args:{userid:e._userId}}])[0],d.done(function(a){e._plans=a}).fail(b.exception))},h.prototype._preRender=function(){var b=this;return b._loadPlans().then(function(){return!b._planId&&b._plans.length>0&&(b._planId=b._plans[0].id),b._planId?b._loadCompetencies():(b._plans=[],a.when())}.bind(b))},h.prototype._render=function(){var b=this;return b._preRender().then(function(){b._singlePlan||a.each(b._plans,function(a,c){c.id==b._planId?c.selected=!0:c.selected=!1});var c={competencies:b._competencies,plan:b._getPlan(b._planId),plans:b._plans,search:b._searchText,singlePlan:b._singlePlan};return d.render("tool_lp/competency_picker_user_plans",c)}.bind(b))},h});
|
||||
define(["jquery","core/notification","core/ajax","core/templates","core/str","tool_lp/tree","tool_lp/competencypicker"],function(a,b,c,d,e,f,g){var h=function(a,b,c){g.prototype.constructor.apply(this,[1,!1,"self",c]),this._userId=a,this._plans=[],b&&(this._planId=b,this._singlePlan=!0)};return h.prototype=Object.create(g.prototype),h.prototype._plans=null,h.prototype._planId=null,h.prototype._singlePlan=!1,h.prototype._userId=null,h.prototype._requestReview=!1,h.prototype._afterRender=function(){var b=this;g.prototype._afterRender.apply(b,arguments),b._singlePlan||b._find('[data-action="chooseplan"]').change(function(c){b._planId=a(c.target).val(),b._loadCompetencies().then(b._refresh.bind(b))}.bind(b)),b._find('[data-action="request-review"]').change(function(c){b._requestReview=a(c.target).is(":checked"),b._refresh.bind(b)}.bind(b))},h.prototype._fetchCompetencies=function(a,d){var e=this;return c.call([{methodname:"tool_lp_list_plan_competencies",args:{id:a}}])[0].done(function(a){var b,c,f=[];for(b=0;b<a.length;b++)c=a[b].competency,c.shortname.toLowerCase().indexOf(d.toLowerCase())<0||(c.children=[],c.haschildren=0,f.push(c));e._competencies=f}).fail(b.exception)},h.prototype._getPlan=function(b){var c;return a.each(this._plans,function(a,d){return d.id==b?(c=d,!1):void 0}),c},h.prototype._loadCompetencies=function(){return this._fetchCompetencies(this._planId,this._searchText)},h.prototype._loadPlans=function(){var d,e=this;return e._plans.length>0?a.when():(d=e._singlePlan?c.call([{methodname:"tool_lp_read_plan",args:{id:this._planId}}])[0].then(function(a){return[a]}):c.call([{methodname:"tool_lp_list_user_plans",args:{userid:e._userId}}])[0],d.done(function(a){e._plans=a}).fail(b.exception))},h.prototype._preRender=function(){var b=this;return b._loadPlans().then(function(){return!b._planId&&b._plans.length>0&&(b._planId=b._plans[0].id),b._planId?b._loadCompetencies():(b._plans=[],a.when())}.bind(b))},h.prototype._render=function(){var b=this;return b._preRender().then(function(){b._singlePlan||a.each(b._plans,function(a,c){c.id==b._planId?c.selected=!0:c.selected=!1});var c={competencies:b._competencies,plan:b._getPlan(b._planId),plans:b._plans,search:b._searchText,singlePlan:b._singlePlan};return d.render("tool_lp/competency_picker_user_plans",c)}.bind(b))},h.prototype._trigger=function(a,b){var c=this;return"save"===a&&(b.requestReview=c._requestReview),g.prototype._trigger.apply(c,arguments)},h});
|
File diff suppressed because one or more lines are too long
|
@ -63,6 +63,8 @@ define(['jquery',
|
|||
Picker.prototype._singlePlan = false;
|
||||
/** @type {Number} The user the plans belongs to. */
|
||||
Picker.prototype._userId = null;
|
||||
/** @type {Boolean} Whether user want to send competencies to review. */
|
||||
Picker.prototype._requestReview = false;
|
||||
|
||||
/**
|
||||
* Hook to executed after the view is rendered.
|
||||
|
@ -81,6 +83,12 @@ define(['jquery',
|
|||
}.bind(self));
|
||||
}
|
||||
|
||||
// Add listener for checkbox change.
|
||||
self._find('[data-action="request-review"]').change(function(e) {
|
||||
self._requestReview = $(e.target).is(":checked");
|
||||
self._refresh.bind(self);
|
||||
}.bind(self));
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -236,6 +244,22 @@ define(['jquery',
|
|||
}.bind(self));
|
||||
};
|
||||
|
||||
/**
|
||||
* Trigger an event.
|
||||
*
|
||||
* @param {String} type The type of event.
|
||||
* @param {Object} The data to pass to the listeners.
|
||||
* @method _reset
|
||||
*/
|
||||
Picker.prototype._trigger = function(type, args) {
|
||||
var self = this;
|
||||
|
||||
if (type === 'save') {
|
||||
args.requestReview = self._requestReview;
|
||||
}
|
||||
return PickerBase.prototype._trigger.apply(self, arguments);
|
||||
};
|
||||
|
||||
return /** @alias module:tool_lp/competencypicker_user_plans */ Picker;
|
||||
|
||||
});
|
||||
|
|
|
@ -196,8 +196,9 @@ define(['jquery',
|
|||
*
|
||||
* @param {Object} evidenceData Evidence data from evidence node.
|
||||
* @param {Number} competencyIds The competency IDs.
|
||||
* @param {Boolean} requestReview Send competencies to review.
|
||||
*/
|
||||
UserEvidenceActions.prototype._doCreateUserEvidenceCompetency = function(evidenceData, competencyIds) {
|
||||
UserEvidenceActions.prototype._doCreateUserEvidenceCompetency = function(evidenceData, competencyIds, requestReview) {
|
||||
var self = this,
|
||||
calls = [];
|
||||
|
||||
|
@ -209,6 +210,16 @@ define(['jquery',
|
|||
competencyid: competencyId,
|
||||
}
|
||||
});
|
||||
if (requestReview) {
|
||||
calls.push({
|
||||
methodname: 'tool_lp_user_competency_request_review',
|
||||
args: {
|
||||
userid: evidenceData.userid,
|
||||
competencyid: competencyId,
|
||||
checkstatus: false
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
self._callAndRefresh(calls, evidenceData);
|
||||
|
@ -225,7 +236,7 @@ define(['jquery',
|
|||
|
||||
picker.on('save', function(e, data) {
|
||||
var competencyIds = data.competencyIds;
|
||||
self._doCreateUserEvidenceCompetency(evidenceData, competencyIds);
|
||||
self._doCreateUserEvidenceCompetency(evidenceData, competencyIds, data.requestReview);
|
||||
}.bind(self));
|
||||
|
||||
picker.display();
|
||||
|
@ -285,6 +296,66 @@ define(['jquery',
|
|||
this.deleteUserEvidenceCompetency(data, competencyId);
|
||||
};
|
||||
|
||||
/**
|
||||
* Send request review for user evidence competencies and reload the region.
|
||||
*
|
||||
* @param {Object} evidenceData Evidence data from evidence node.
|
||||
*/
|
||||
UserEvidenceActions.prototype._doReviewUserEvidenceCompetencies = function(evidenceData) {
|
||||
var self = this,
|
||||
calls = [{
|
||||
methodname: 'tool_lp_request_review_of_user_evidence_linked_competencies',
|
||||
args: { id: evidenceData.id }
|
||||
}];
|
||||
self._callAndRefresh(calls, evidenceData);
|
||||
};
|
||||
|
||||
/**
|
||||
* Send request review for user evidence competencies.
|
||||
*
|
||||
* @param {Object} evidenceData Evidence data from evidence node.
|
||||
*/
|
||||
UserEvidenceActions.prototype.reviewUserEvidenceCompetencies = function(evidenceData) {
|
||||
var self = this,
|
||||
requests;
|
||||
|
||||
requests = ajax.call([{
|
||||
methodname: 'tool_lp_read_user_evidence',
|
||||
args: { id: evidenceData.id }
|
||||
}]);
|
||||
|
||||
requests[0].done(function(evidence) {
|
||||
str.get_strings([
|
||||
{ key: 'confirm', component: 'moodle' },
|
||||
{ key: 'sendallcompetenciestoreview', component: 'tool_lp', param: evidence.name },
|
||||
{ key: 'confirm', component: 'moodle' },
|
||||
{ key: 'cancel', component: 'moodle' }
|
||||
]).done(function (strings) {
|
||||
notification.confirm(
|
||||
strings[0], // Confirm.
|
||||
strings[1], // Send all competencies in review for X?
|
||||
strings[2], // Confirm.
|
||||
strings[3], // Cancel.
|
||||
function() {
|
||||
self._doReviewUserEvidenceCompetencies(evidenceData);
|
||||
}.bind(self)
|
||||
);
|
||||
}).fail(notification.exception);
|
||||
}).fail(notification.exception);
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Send request review for user evidence competencies handler.
|
||||
*
|
||||
* @param {Event} e The event.
|
||||
*/
|
||||
UserEvidenceActions.prototype._reviewUserEvidenceCompetenciesHandler = function(e) {
|
||||
e.preventDefault();
|
||||
var data = this._findEvidenceData($(e.target));
|
||||
this.reviewUserEvidenceCompetencies(data);
|
||||
};
|
||||
|
||||
/**
|
||||
* Find the evidence data from the evidence node.
|
||||
*
|
||||
|
@ -317,6 +388,7 @@ define(['jquery',
|
|||
Menubar.enhance(selector, {
|
||||
'[data-action="user-evidence-delete"]': self._deleteEvidenceHandler.bind(self),
|
||||
'[data-action="link-competency"]': self._createUserEvidenceCompetencyHandler.bind(self),
|
||||
'[data-action="send-competencies-review"]': self._reviewUserEvidenceCompetenciesHandler.bind(self),
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -333,6 +405,7 @@ define(['jquery',
|
|||
wrapper.find('[data-action="user-evidence-delete"]').click(self._deleteEvidenceHandler.bind(self));
|
||||
wrapper.find('[data-action="link-competency"]').click(self._createUserEvidenceCompetencyHandler.bind(self));
|
||||
wrapper.find('[data-action="delete-competency-link"]').click(self._deleteUserEvidenceCompetencyHandler.bind(self));
|
||||
wrapper.find('[data-action="send-competencies-review"]').click(self._reviewUserEvidenceCompetenciesHandler.bind(self));
|
||||
};
|
||||
|
||||
return /** @alias module:tool_lp/user_evidence_actions */ UserEvidenceActions;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue