Fixed context selection bugs
This commit is contained in:
parent
0de002bf3a
commit
de97031326
12 changed files with 45 additions and 17 deletions
2
amd/build/page-edit-plan.min.js
vendored
2
amd/build/page-edit-plan.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
amd/build/page-view-plan.min.js
vendored
2
amd/build/page-view-plan.min.js
vendored
|
@ -1,3 +1,3 @@
|
||||||
define("local_treestudyplan/page-view-plan",["exports","core/ajax","core/notification","./vue/vue","./util/debugger","./util/string-helper","./studyplan-processor","./util/date-helper","./report-viewer-components","./treestudyplan-components","./modedit-modal","./portal-vue/portal-vue.esm","./bootstrap-vue/bootstrap-vue"],(function(_exports,_ajax,_notification,_vue,_debugger,_stringHelper,_studyplanProcessor,_dateHelper,_reportViewerComponents,_treestudyplanComponents,_modeditModal,_portalVue,_bootstrapVue){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=function(contextid,categoryid){contextid=void 0===contextid||!Number.isInteger(Number(contextid))||contextid<1?1:Number(contextid);categoryid=void 0!==categoryid&&Number.isInteger(Number(categoryid))?Number(categoryid):0;let app=new _vue.default({el:"#root",data:{displayedstudyplan:null,activestudyplan:null,associatedstudents:[],selectedstudent:null,studentstudyplan:null,loadingstudyplan:!1,studyplans:[],text:strings.studyplan,toolbox:{right:!0},usedcontexts:[]},async mounted(){(0,_ajax.call)([{methodname:"local_treestudyplan_list_studyplans",args:{context_id:contextid}}])[0].done((function(response){const timingval={present:0,past:1,future:2};response.sort(((a,b)=>{const timinga=(0,_dateHelper.studyplanTiming)(a),timingb=(0,_dateHelper.studyplanTiming)(b),t=timingval[timinga]-timingval[timingb];return 0==t?a.name.localeCompare(b.name):t})),app.studyplans=response;const parts=window.location.hash.replace("#","").split("-");if(parts&&parts.length>0)for(let idx in app.studyplans)if(app.studyplans[idx].id==parts[0]){app.selectStudyplan(app.studyplans[idx],parts[1]);break}})).fail(_notification.default.exception),(0,_ajax.call)([{methodname:"local_treestudyplan_list_used_categories",args:{operation:"view"}}])[0].done((function(response){const contexts=[];for(const ix in response)response[ix].studyplancount>0&&contexts.push(response[ix]);app.usedcontexts=contexts})).fail(_notification.default.exception)},computed:{dropdown_title(){return this.activestudyplan&&this.activestudyplan.name?this.activestudyplan.name:this.text.studyplan_select_placeholder},contextid:()=>contextid},methods:{switchContext(ctx){const params=new URLSearchParams(location.search);params.set("categoryid",ctx.id),window.location.search=params.toString()},closeStudyplan(){app.activestudyplan=null,app.associatedstudents=[],app.studentstudyplan=[],app.displayedstudyplan=null,window.location.hash=""},selectStudyplan(studyplan,studentid){app.loadingstudyplan=!0,app.activestudyplan=null,app.associatedstudents=[],app.selectedstudent=null,app.studentstudyplan=null,(0,_ajax.call)([{methodname:"local_treestudyplan_get_studyplan_map",args:{id:studyplan.id}}])[0].done((function(response){app.activestudyplan=(0,_studyplanProcessor.ProcessStudyplan)(response,!0),app.displayedstudyplan=app.activestudyplan,app.loadingstudyplan=!1,window.location.hash=app.activestudyplan.id,(0,_ajax.call)([{methodname:"local_treestudyplan_all_associated",args:{studyplan_id:studyplan.id}}])[0].done((function(response){if(app.associatedstudents=response,studentid)for(const student of app.associatedstudents)if(student.id==studentid){app.showStudentView(student);break}})).fail(_notification.default.exception)})).fail((function(error){_notification.default.exception(error),app.loadingstudyplan=!1}))},showStudentView(student){app.selectedstudent=student,app.studentstudyplan=null,app.loadingstudyplan=!0,(0,_ajax.call)([{methodname:"local_treestudyplan_get_user_studyplan",args:{userid:student.id,studyplanid:app.activestudyplan.id}}])[0].done((function(response){app.studentstudyplan=(0,_studyplanProcessor.ProcessStudyplan)(response,!1),app.displayedstudyplan=app.studentstudyplan,app.loadingstudyplan=!1,window.location.hash=app.activestudyplan.id+"-"+student.id})).fail((function(error){_notification.default.exception(error),app.loadingstudyplan=!1}))},showOverview(){app.selectedstudent=null,app.studentstudyplan=null,app.displayedstudyplan=app.activestudyplan,window.location.hash=app.activestudyplan.id}}})},_notification=_interopRequireDefault(_notification),_vue=_interopRequireDefault(_vue),_debugger=_interopRequireDefault(_debugger),_reportViewerComponents=_interopRequireDefault(_reportViewerComponents),_treestudyplanComponents=_interopRequireDefault(_treestudyplanComponents),_modeditModal=_interopRequireDefault(_modeditModal),_portalVue=_interopRequireDefault(_portalVue),_bootstrapVue=_interopRequireDefault(_bootstrapVue),_vue.default.use(_reportViewerComponents.default),_vue.default.use(_modeditModal.default),_vue.default.use(_portalVue.default),_vue.default.use(_bootstrapVue.default);new _debugger.default("treestudyplanviewer");let strings=(0,_stringHelper.load_strings)({studyplan:{studyplan_select_placeholder:"studyplan_select_placeholder"}})}));
|
define("local_treestudyplan/page-view-plan",["exports","core/ajax","core/notification","./vue/vue","./util/debugger","./util/string-helper","./studyplan-processor","./util/date-helper","./report-viewer-components","./treestudyplan-components","./modedit-modal","./portal-vue/portal-vue.esm","./bootstrap-vue/bootstrap-vue"],(function(_exports,_ajax,_notification,_vue,_debugger,_stringHelper,_studyplanProcessor,_dateHelper,_reportViewerComponents,_treestudyplanComponents,_modeditModal,_portalVue,_bootstrapVue){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=function(contextid,categoryid){contextid=void 0===contextid||!Number.isInteger(Number(contextid))||contextid<1?1:Number(contextid);categoryid=void 0!==categoryid&&Number.isInteger(Number(categoryid))?Number(categoryid):0;let app=new _vue.default({el:"#root",data:{displayedstudyplan:null,activestudyplan:null,associatedstudents:[],selectedstudent:null,studentstudyplan:null,loadingstudyplan:!1,studyplans:[],text:strings.studyplan,toolbox:{right:!0},usedcontexts:[]},async mounted(){(0,_ajax.call)([{methodname:"local_treestudyplan_list_studyplans",args:{context_id:contextid}}])[0].done((function(response){const timingval={present:0,past:1,future:2};response.sort(((a,b)=>{const timinga=(0,_dateHelper.studyplanTiming)(a),timingb=(0,_dateHelper.studyplanTiming)(b),t=timingval[timinga]-timingval[timingb];return 0==t?a.name.localeCompare(b.name):t})),app.studyplans=response;const parts=window.location.hash.replace("#","").split("-");if(parts&&parts.length>0)for(let idx in app.studyplans)if(app.studyplans[idx].id==parts[0]){app.selectStudyplan(app.studyplans[idx],parts[1]);break}})).fail(_notification.default.exception),(0,_ajax.call)([{methodname:"local_treestudyplan_list_used_categories",args:{operation:"view"}}])[0].done((function(response){const contexts=[];for(const ix in response)response[ix].studyplancount>0&&contexts.push(response[ix]);app.usedcontexts=contexts})).fail(_notification.default.exception)},computed:{dropdown_title(){return this.activestudyplan&&this.activestudyplan.name?this.activestudyplan.name:this.text.studyplan_select_placeholder},contextid:()=>contextid},methods:{switchContext(cat){const params=new URLSearchParams(location.search);params.delete("categoryid"),params.set("contextid",cat.context_id),window.location.search=params.toString()},closeStudyplan(){app.activestudyplan=null,app.associatedstudents=[],app.studentstudyplan=[],app.displayedstudyplan=null,window.location.hash=""},selectStudyplan(studyplan,studentid){app.loadingstudyplan=!0,app.activestudyplan=null,app.associatedstudents=[],app.selectedstudent=null,app.studentstudyplan=null,(0,_ajax.call)([{methodname:"local_treestudyplan_get_studyplan_map",args:{id:studyplan.id}}])[0].done((function(response){app.activestudyplan=(0,_studyplanProcessor.ProcessStudyplan)(response,!0),app.displayedstudyplan=app.activestudyplan,app.loadingstudyplan=!1,window.location.hash=app.activestudyplan.id,(0,_ajax.call)([{methodname:"local_treestudyplan_all_associated",args:{studyplan_id:studyplan.id}}])[0].done((function(response){if(app.associatedstudents=response,studentid)for(const student of app.associatedstudents)if(student.id==studentid){app.showStudentView(student);break}})).fail(_notification.default.exception)})).fail((function(error){_notification.default.exception(error),app.loadingstudyplan=!1}))},showStudentView(student){app.selectedstudent=student,app.studentstudyplan=null,app.loadingstudyplan=!0,(0,_ajax.call)([{methodname:"local_treestudyplan_get_user_studyplan",args:{userid:student.id,studyplanid:app.activestudyplan.id}}])[0].done((function(response){app.studentstudyplan=(0,_studyplanProcessor.ProcessStudyplan)(response,!1),app.displayedstudyplan=app.studentstudyplan,app.loadingstudyplan=!1,window.location.hash=app.activestudyplan.id+"-"+student.id})).fail((function(error){_notification.default.exception(error),app.loadingstudyplan=!1}))},showOverview(){app.selectedstudent=null,app.studentstudyplan=null,app.displayedstudyplan=app.activestudyplan,window.location.hash=app.activestudyplan.id}}})},_notification=_interopRequireDefault(_notification),_vue=_interopRequireDefault(_vue),_debugger=_interopRequireDefault(_debugger),_reportViewerComponents=_interopRequireDefault(_reportViewerComponents),_treestudyplanComponents=_interopRequireDefault(_treestudyplanComponents),_modeditModal=_interopRequireDefault(_modeditModal),_portalVue=_interopRequireDefault(_portalVue),_bootstrapVue=_interopRequireDefault(_bootstrapVue),_vue.default.use(_reportViewerComponents.default),_vue.default.use(_modeditModal.default),_vue.default.use(_portalVue.default),_vue.default.use(_bootstrapVue.default);new _debugger.default("treestudyplanviewer");let strings=(0,_stringHelper.load_strings)({studyplan:{studyplan_select_placeholder:"studyplan_select_placeholder"}})}));
|
||||||
|
|
||||||
//# sourceMappingURL=page-view-plan.min.js.map
|
//# sourceMappingURL=page-view-plan.min.js.map
|
File diff suppressed because one or more lines are too long
2
amd/build/studyplan-editor-components.min.js
vendored
2
amd/build/studyplan-editor-components.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -213,18 +213,31 @@ export function init(contextid,categoryid,options) {
|
||||||
const params = new URLSearchParams(location.search);
|
const params = new URLSearchParams(location.search);
|
||||||
params.delete('categoryid');
|
params.delete('categoryid');
|
||||||
params.set("contextid", to);
|
params.set("contextid", to);
|
||||||
|
setTimeout(() => {
|
||||||
|
// Reload page in a timeout to give other form javasccript the change to remove the beforeunload handler.
|
||||||
window.location.search = params.toString();
|
window.location.search = params.toString();
|
||||||
|
},50);
|
||||||
},
|
},
|
||||||
onStudyPlanCreated(newstudyplan){
|
onStudyPlanCreated(newstudyplan){
|
||||||
|
if (newstudyplan.context_id != contextid) {
|
||||||
|
// Study plan has changed context id - reload page into new context id and show the plan
|
||||||
|
const params = new URLSearchParams(location.search);
|
||||||
|
params.delete('categoryid');
|
||||||
|
params.set("contextid", newstudyplan.context_id);
|
||||||
|
setTimeout(() => {
|
||||||
|
// Reload page in a timeout to give other form javasccript the change to remove the beforeunload handler.
|
||||||
|
window.location = window.location.pathname + "?" + params.toString() + "#" + newstudyplan.id;
|
||||||
|
},50);
|
||||||
|
} else {
|
||||||
app.studyplans.push(newstudyplan);
|
app.studyplans.push(newstudyplan);
|
||||||
app.selectStudyplan(newstudyplan);
|
app.selectStudyplan(newstudyplan);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
switchContext(ctx){
|
switchContext(cat){
|
||||||
const params = new URLSearchParams(location.search);
|
const params = new URLSearchParams(location.search);
|
||||||
params.set('categoryid', ctx.id);
|
params.delete('categoryid');
|
||||||
|
params.set('contextid', cat.context_id);
|
||||||
window.location.search = params.toString();
|
window.location.search = params.toString();
|
||||||
|
|
||||||
},
|
},
|
||||||
selectStudyplan(studyplan){
|
selectStudyplan(studyplan){
|
||||||
// fetch studyplan
|
// fetch studyplan
|
||||||
|
|
|
@ -126,11 +126,11 @@ export function init(contextid,categoryid) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
switchContext(ctx){
|
switchContext(cat){
|
||||||
const params = new URLSearchParams(location.search);
|
const params = new URLSearchParams(location.search);
|
||||||
params.set('categoryid', ctx.id);
|
params.delete('categoryid');
|
||||||
|
params.set('contextid', cat.context_id);
|
||||||
window.location.search = params.toString();
|
window.location.search = params.toString();
|
||||||
|
|
||||||
},
|
},
|
||||||
closeStudyplan() {
|
closeStudyplan() {
|
||||||
app.activestudyplan = null;
|
app.activestudyplan = null;
|
||||||
|
|
|
@ -153,6 +153,8 @@ export default {
|
||||||
studyplan_add: 'studyplan_add',
|
studyplan_add: 'studyplan_add',
|
||||||
studyplanpage_add: 'studyplanpage_add',
|
studyplanpage_add: 'studyplanpage_add',
|
||||||
studyplanpage_edit: 'studyplanpage_edit',
|
studyplanpage_edit: 'studyplanpage_edit',
|
||||||
|
info_periodsextended: 'studyplanpage_info_periodsextended',
|
||||||
|
warning: 'warning@core',
|
||||||
},
|
},
|
||||||
period_edit: {
|
period_edit: {
|
||||||
edit: 'period_edit',
|
edit: 'period_edit',
|
||||||
|
@ -698,7 +700,16 @@ export default {
|
||||||
else {
|
else {
|
||||||
const page = ProcessStudyplanPage(updatedpage);
|
const page = ProcessStudyplanPage(updatedpage);
|
||||||
debug.info('studyplan page processed');
|
debug.info('studyplan page processed');
|
||||||
|
|
||||||
|
if (self.value.periods < page.periods) {
|
||||||
|
this.$bvModal.msgBoxOk(this.text.info_periodsextended, {
|
||||||
|
title: this.text.warning,
|
||||||
|
okVariant: 'success',
|
||||||
|
centered: true
|
||||||
|
});
|
||||||
|
}
|
||||||
self.$emit('input',page);
|
self.$emit('input',page);
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,6 +176,7 @@ class studyplan_editform extends formbase {
|
||||||
foreach(courseservice::list_accessible_categories() as $c){
|
foreach(courseservice::list_accessible_categories() as $c){
|
||||||
$contextlist[$c['context_id']] = implode(" / ",$c['category']['path']);
|
$contextlist[$c['context_id']] = implode(" / ",$c['category']['path']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$mform->addElement('autocomplete', 'context_id',
|
$mform->addElement('autocomplete', 'context_id',
|
||||||
get_string('studyplan_context','local_treestudyplan'),
|
get_string('studyplan_context','local_treestudyplan'),
|
||||||
$contextlist);
|
$contextlist);
|
||||||
|
@ -295,7 +296,7 @@ class studyplan_editform extends formbase {
|
||||||
$plan = studyplan::add(['name' => $entry->name,
|
$plan = studyplan::add(['name' => $entry->name,
|
||||||
'shortname' => $entry->shortname,
|
'shortname' => $entry->shortname,
|
||||||
'idnumber' => $entry->idnumber,
|
'idnumber' => $entry->idnumber,
|
||||||
'context_id' => $customdata->contextid,
|
'context_id' => $entry->context_id,
|
||||||
'aggregation' => $entry->aggregation,
|
'aggregation' => $entry->aggregation,
|
||||||
'aggregation_config' => $aggregation_config,
|
'aggregation_config' => $aggregation_config,
|
||||||
'startdate' => date("Y-m-d",$entry->startdate),
|
'startdate' => date("Y-m-d",$entry->startdate),
|
||||||
|
@ -331,6 +332,7 @@ class studyplan_editform extends formbase {
|
||||||
$plan->edit(['name' => $entry->name,
|
$plan->edit(['name' => $entry->name,
|
||||||
'shortname' => $entry->shortname,
|
'shortname' => $entry->shortname,
|
||||||
'idnumber' => $entry->idnumber,
|
'idnumber' => $entry->idnumber,
|
||||||
|
'context_id' => $entry->context_id,
|
||||||
'description' => $entry->description,
|
'description' => $entry->description,
|
||||||
'descriptionformat' => $entry->descriptionformat,
|
'descriptionformat' => $entry->descriptionformat,
|
||||||
'aggregation' => $entry->aggregation,
|
'aggregation' => $entry->aggregation,
|
||||||
|
|
|
@ -140,6 +140,7 @@ $string["studyplanpage"] = 'Study plan page';
|
||||||
$string["studyplanpage_add"] = 'Add study plan page';
|
$string["studyplanpage_add"] = 'Add study plan page';
|
||||||
$string["studyplanpage_edit"] = 'Edit study plan page';
|
$string["studyplanpage_edit"] = 'Edit study plan page';
|
||||||
$string["studyplanpage_remove"] = 'Remove study plan page';
|
$string["studyplanpage_remove"] = 'Remove study plan page';
|
||||||
|
$string["studyplanpage_info_periodsextended"] = 'Warning: You have added periods to the study plan page. These new periods have automatically generated timespans that may lie outside of this pages designated end time. Please verify the correct start and end times for each period.';
|
||||||
$string["studyplanpage_confirm_remove"] = 'Are you sure you want to remove study plan page {$a}?';
|
$string["studyplanpage_confirm_remove"] = 'Are you sure you want to remove study plan page {$a}?';
|
||||||
$string["studyplan_duration"] = 'Duration';
|
$string["studyplan_duration"] = 'Duration';
|
||||||
$string["studyplan_name"] = 'Full name';
|
$string["studyplan_name"] = 'Full name';
|
||||||
|
|
|
@ -140,6 +140,7 @@ $string["studyplanpage"] = 'Studieplan-tabblad';
|
||||||
$string["studyplanpage_add"] = 'Nieuw studieplan-tabblad';
|
$string["studyplanpage_add"] = 'Nieuw studieplan-tabblad';
|
||||||
$string["studyplanpage_edit"] = 'Studieplan-tabblad bewerken';
|
$string["studyplanpage_edit"] = 'Studieplan-tabblad bewerken';
|
||||||
$string["studyplanpage_remove"] = 'Studieplan-tabblad verwijderen';
|
$string["studyplanpage_remove"] = 'Studieplan-tabblad verwijderen';
|
||||||
|
$string["studyplanpage_info_periodsextended"] = 'Let op! Je hebt perioden toegevoegd aan dit tabblad. Deze nieuwe perioden hebben een ingeschatte start- en eindttijd die mogelijk na de ingestelde eindtijd van het tabblad liggen. Controleer daarom de start- en eindtijden van elke periode.';
|
||||||
$string["studyplanpage_confirm_remove"] = 'Weet je zeker dat je studieplan-tabblad {$a} wilt verwijderen?';
|
$string["studyplanpage_confirm_remove"] = 'Weet je zeker dat je studieplan-tabblad {$a} wilt verwijderen?';
|
||||||
$string["studyplan_duration"] = 'Duur';
|
$string["studyplan_duration"] = 'Duur';
|
||||||
$string["studyplan_name"] = 'Volledige Naam';
|
$string["studyplan_name"] = 'Volledige Naam';
|
||||||
|
|
Loading…
Reference in a new issue