Files
monpas/public/js/monpas/models/flexibelsopmodel.js
T
2021-07-10 16:25:16 +02:00

943 lines
34 KiB
JavaScript

function startTinyMCE2(callback) {
if ($("#contentSopNew").tinymce()) {
// tinyMCE.activeEditor.setContent('');
// $("#contentSopNew").tinymce().remove();
}
tinymce.init({ selector: "textarea#contentSopNew",
fontsize_formats: "8pt 9pt 10pt 11pt 12pt 26pt 36pt",
fontName: "Verdana",
theme: "modern",
plugins:"advlist ,paste , table, pagebreak, code",
theme_modern_buttons_add: "tablecontrols",
menubar:false,
statusbar:false,
height:554,
width: 700,
table_class_list: [
{title: 'geen', value: ''},
{title: 'zonder rand', value: 'without-border'},
{title: 'met rand', value: 'with-border'}],
table_cell_class_list: [
{title: 'geen', value: ''},
{title: 'zonder rand', value: 'without-border'},
{title: 'met rand', value: 'with-border'}],
table_row_class_list: [
{title: 'geen', value: ''},
{title: 'zonder rand', value: 'without-border'},
{title: 'met rand', value: 'with-border'}],
content_css: "../css/edcontent.css",
browser_spellcheck: true,
paste_data_images:true,
valid_elements: "b,br,em,h1, h2,h3,h4,i,li,ol,a,pagebreak,strong,style,table[style|class|id], tbody,thead,tr,td,th,ul,#p",
extended_valid_elements: "h1[style],h2[style],h3[style],table[style|class|id] ,tr[style|class],td[style|colspan|class],thead[style|class],p[style|class],th[style],div[style|class|id],*[*]",
pagebreak_separator: "<div style='page-break-after:always'></div> ",
paste_auto_cleanup_on_paste: true,
paste_retain_style_properties:"none",
paste_strip_class_attributes:"none",
font_formats:"Default='Verdana', sans-serif;",
toolbar: 'undo redo | fontsizeselect | styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | table | pagebreak | code',
setup:function(ed){
ed.on('blur',function(e){
// on blur is goed om alle focus verlies van de editor op te
//vangen en wijzigingen op te slaan. Maar hierdoor gaat on click verloren.
// daarom wordt elk click event in de html afgevangen
// met name= savecatched. De functie aangeroepen met
// het click event moet dan zelf de save afvangen.
if (event){
var att = event.target.getAttribute('name')
if (att && att =='savecatched') return false
}
ls.FlexibelSopModel.fSaveChapter();
});
ed.on('init', function(){
ls.FlexibelSopModel.TinymceKlaar(true);
})
}
});
if (typeof callback == 'function') callback();
}
$(function(){
ls.initFlexibelSopModel = function() {
function fAddChapter(p) {
var dit = this;
this.id = p.id;
this.sopinhoudID = p.sopinhoudID;
this.nummer = p.nummer;
this.naam = p.naam;
this.module = p.module;
this.selected = ko.observable(false);
this.volgorde = ko.observable(p.volgorde);
this.standaard = p.standaard;
this.insop = ko.observable(p.insop == 1 ? true : false);
this.orgversieid = ko.observable(p.orgversieid)
}
function fAddProfiel(p) {
this.id = p.profielID;
this.soort = p.soort; // geerf vanuit organisatie
this.naam = ko.observable(p.naam);
this.van = ko.observable(p.van);
this.tm = ko.observable(p.tm);
}
function fAddTabel(t) {
var dit = this;
this.tabelid = t.id;
this.htmlid = t.tabelid;
this.type = t.type;
//ls okt 2020 this.imagecode = t.imagecode;
this.soort = t.soort;
this.css = t.css;
this.view = t.tab;
}
function fAddVersie(p) {
this.orgversieid = ko.observable('');
if(p.id){
this.orgversieid(p.id);
}
if(p.schooljaarnr){
this.orgversieid(p.schooljaarnr);
}
this.naam = p.naam;
this.naamkort = p.naamkort;
this.scoretype = p.scoretype;
this.periodenummer = p.periodenummer;
this.versieid = p.versie_id;
this.insop = p.insop;
this.vorm = p.vorm;
this.geselecteerd = ko.observable(false);
}
function fAddReferentieVersie(r) {
this.orgversieid = ko.observable('');
this.orgversieid(r.orgversieid());
this.naam = r.naam;
this.naamkort = r.naamkort;
this.scoretype = r.scoretype;
this.periodenummer = r.periodenummer;
this.versieid = r.versieid;
this.insop = r.insop;
this.vorm = r.vorm;
this.geselecteerd = ko.observable(false);
}
if (ls.FlexibelSopModel !== undefined) {
ls.FlexibelSopModel.initModel();
} else {
ls.FlexibelSopModel = {
profielen : ko.observableArray([]),
erZijnProfielen : ko.observable(false),
selectedProfiel : ko.observable(),
newnaam : ko.observable(''),
periodetm : ko.observable(''),
periodevan : ko.observable(''),
chapters : ko.observableArray([]),
selectedChapter : ko.observable(),
targetChapter : ko.observable(), // als een nieuw hoofdstuk wordt toegevoegd moetaangepast omdat men eventueel nog kan annuleren
modus : ko.observable(null), // nieuw: voeg nieuw hoofdstuk toe
// ververs: ververs tabellen met dezelfde versies // bekend zijn welk hoofdstuk wordt toegevoegd maar selectedChapter mag niet worden
// wijzig: gebruik nieuwe versies
ls_laatstehfst : ko.pureComputed(function(){
var vm = ls.FlexibelSopModel
var id = null
var vorige= 0
if (vm){
if (vm.chapters()){
$.each(vm.chapters(), function( j,k){
if (k.insop() && parseFloat(k.volgorde()) >= vorige){
id = k.sopinhoudID
vorige = k.volgorde()
}
})
} // if chapters
} // if vm
return id
}),
ls_eerstehfst : ko.pureComputed(function(){
var vm = ls.FlexibelSopModel
var id = null
var eerstevolgnr= 99999999
if (vm){
if (vm.chapters()){
$.each(vm.chapters(), function( j,k){
if (k.insop() && k.module != 0 && parseFloat(k.volgorde()) <= eerstevolgnr){
id = k.sopinhoudID
eerstevolgnr = k.volgorde()
}
})
} // if chapters
} // if vm
return id
}),
schooljanee : ko.observable(false),
editok : ko.observable(false),
versies : ko.observableArray([]),
referentieVersies : ko.observableArray([]),
selectedReferenties: ko.observableArray([]),
selectedVersie : ko.observable(null), // inhoud is een object met versie, orgversie etc
aangeklikt : ko.observable(0),
ijkpunten : ko.observable(false),
erZijnMeerVersies : ko.observable(false),
bezig : ko.observable(false),
TinymceKlaar : ko.observable(false),
initBindings: function () {
var self = ls.FlexibelSopModel;
if (!ko.dataFor(document.getElementById('pagflexibelsop'))) {
ko.applyBindings(ls.FlexibelSopModel, document.getElementById('pagflexibelsop'));
}
$.post('index.php/monpas/sop/getrechten', function (result) {
self.editok(result);
}, 'json');
startTinyMCE2( function(){self.initModel();});
},
initModel: function() {
var self = ls.FlexibelSopModel;
$.post("index.php/monpas/sop/controleerschool/", function(result){
self.schooljanee(result);
if (self.schooljanee()){
$.post("index.php/monpas/sop/ls_getProfielen", function(data){
self.profielen.removeAll();
if(data) {
self.erZijnProfielen(true);
$.each(data, function (i, p) {
self.profielen.push(new fAddProfiel(p));
});//each
self.selectedProfiel(self.profielen()[0])
//self.fGetHoofdstukken() wordt getriggerd in de html
} // if
},'json')
}; //if schooljanee
},'json');
},
fResetSelectedChapter : function(){
var self = ls.FlexibelSopModel
if (! self.selectedChapter()) return;
self.selectedChapter().id = null
self.selectedChapter().sopinhoudID = null
self.selectedChapter().nummer = null;
self.selectedChapter().naam = null
self.selectedChapter().module = null
self.selectedChapter().selected(false);
self.selectedChapter().volgorde( 0);
self.selectedChapter().standaard = null
self.selectedChapter().insop(false);
self.selectedChapter().orgversieid(null)
},
fGetHoofdstukken: function(){
var self = ls.FlexibelSopModel
if (self.bezig() ) return
if (! self.selectedProfiel()) return;
self.bezig(true)
var sd = {profielID : self.selectedProfiel().id}
$.post("index.php/monpas/sop/ls_getHoofdstukken",sd,function(data){
self.chapters.removeAll()
self.selectedVersie(null);
self.fResetSelectedChapter();
if (data){
$.each(data, function(i,p){
self.chapters.push(new fAddChapter(p))
}) // each
$.each(self.chapters(), function(j,k){
if (k.insop()) {
self.selectedChapter(self.chapters()[j]);
// self.versies is toch een functie?
// dit begrijp ik dus niet
$.each(self.versies, function (x, v) {
if(self.selectedChapter().orgversieid() === v.orgversieid )
self.selectedVersie(v);
});
return false
}
}) // each chapters
if (self.selectedChapter()) self.fGetContent();
// else self.fGetInleiding()
}
},'json').always(function(){self.bezig(false)})
},
fGetContent: function(){
var self = ls.FlexibelSopModel
if (! self.selectedChapter()) return
if (! self.selectedProfiel()) return
var sd = { inhoudID : self.selectedChapter().sopinhoudID}
showAjaxLoader()
$.post("index.php/monpas/sop/ls_getHoofdstukContent",sd,function(data){
if ( ! data) self.fSetEditorContent('')
else self.fSetEditorContent(data)
},'json').always(function(){hideAjaxLoader()})
},
fSetEditorContent: function( content){
var self = ls.FlexibelSopModel;
if (content) tinymce.get('contentSopNew').setContent(content,{format: 'html'});
else tinymce.get('contentSopNew').setContent('');
if (! self.TinymceKlaar() ) {
setTimeout(function() {self.fSetEditorContent(content)},500)
} // if not klaar
tinymce.activeEditor.isNotDirty = true
},
fSaveChapter: function(){
var self =ls.FlexibelSopModel;
if (!self.editok()) return;
if (! self.selectedChapter() || self.selectedChapter() == null) return;
if ( tinymce.activeEditor.isNotDirty) return;
var orgversie = 0;
if(self.selectedChapter().orgversieid()) {
orgversie = self.selectedChapter().orgversieid();
}
var tekst = tinymce.get('contentSopNew').getContent({format: 'html'});
var submitData ={ id : self.selectedChapter().sopinhoudID,
tekst : tekst,
orgversie : orgversie};
// showAjaxLoader();
$.post("index.php/monpas/sop/saveinhoud", submitData)
.always(function(){
// hideAjaxLoader()
})
.success(function(){tinymce.activeEditor.isNotDirty = true})
},
fVerversTabellen : function(){
var self =ls.FlexibelSopModel;
self.fSaveChapter();
if (!self.selectedProfiel()) return;
if (!self.selectedChapter()) {
apprise("U heeft geen hoofdstuk geselecteerd");
return;
}
if(self.selectedChapter().id === '49' ||
self.selectedChapter().id === '56' ||
self.selectedChapter().id === '57' ){
apprise("Bij dit hoofdstuk horen geen tabellen uit een instrument" );
return;
}
apprise( "Weet u zeker dat u de tabellen wilt updaten? <br>" +
"Eventuele nieuw ingevulde en aangepaste lijsten worden in de resultaten meegenomen. <br>" +
"Dit kan niet ongedaan gemaakt worden.",
{verify:true, textYes: ' ja ', textNo:'nee'}, function(ans){
if(ans) {
self.modus('ververs');
self.fGoEnVerversTabellen();
}
}); // apprise
},
fGoEnVerversTabellen: function(){
var self = ls.FlexibelSopModel;
if (! self.selectedProfiel()) return;
if (! self.selectedChapter()) {
apprise("U heeft geen hoofdstuk geselecteeerd.");
return;
}
var submitData ={ sopinhoudid : self.selectedChapter().sopinhoudID }
showAjaxLoader();
$.post("index.php/monpas/sop/ls_renewTabellen", submitData, function(result) {
if (result.error) apprise(result.error);
else self.fSetEditorContent(result.nieuweinhoud)
}, 'json').always(function(){ hideAjaxLoader() } );
},
fGetNieuweTabellen(){
var self = ls.FlexibelSopModel;
if (! self.selectedProfiel()) return;
if (! self.selectedChapter()) {
apprise("U heeft geen hoofdstuk geselecteeerd.");
return;
}
//ook meesturen referentieversie
var referenties = []
if(self.ijkpunten()) {
if (self.selectedReferenties()) {
$.each(self.selectedReferenties(), function (i, r){
referenties.push(r.orgversieid())
})
}
}
var submitData ={ sopinhoudid : self.selectedChapter().sopinhoudID,
orgversieID : self.selectedVersie().orgversieid(),
referenties : referenties}
showAjaxLoader();
$.post("index.php/monpas/sop/ls_nieuweTabellen", submitData, function(result) {
if (result.error) {
apprise(result.error);
} else {
// waarom onderstaande. orgversieid verandert toch niet bij ververs tabellen?
// hm kan wel veranderen want wordt ook aangeroepen bij
// verander versie
// daar kan ik beter een andere functie gebruiken
self.selectedChapter().orgversieid(result.orgversieid);
// self.selectedVersie(result.orgversieid);
self.fSetEditorContent(result.nieuweinhoud)
}
}, 'json').always(function(){ hideAjaxLoader() } );
},
fVerversHoofdstuk : function(){
var self = ls.FlexibelSopModel;
if (! self.TinymceKlaar() ) return
if (! self.selectedProfiel()) return
if (! self.selectedChapter() ){
apprise("U heeft geen hoofdstuk geselecteerd");
return;
}
apprise("Weet u zeker dat u het hoofdstuk opnieuw wilt laten maken? <br> " +
"Alle wijzigingen die u heeft aangebracht gaan daarmee verloren.",
{verify: true, textYes: ' ja ', textNo: 'nee'}, function(ans){
if (ans){
showAjaxLoader();
var submitData ={ inhoudID : self.selectedChapter().sopinhoudID}
$.post('index.php/monpas/sop/ls_renewChapter/', submitData, function(result){
if (result.error) apprise(result.error)
else self.fSetEditorContent( result.nieuweinhoud);
},'json')
.always(function(){hideAjaxLoader() } );
} // if ans
else {self.fSaveChapter() }
}); // apprise
},
// ********** nieuw hoofdstuk toevoegen ***********//
// 1. save het oude hoofdstuk
// 2. set het nieuwe hoofdstuk in de tijdelijke variabele targethoofdstuk
// 3. haal de versies bij het nieuwe hoofdstuk op
// 4. toon de versies in de modal
// 5. set selected Versie en sluit de modal
// 6. maak het nieuwe hoofdstuk en zet de versie
fCheckIngevuldeVersies : function(){
var self = ls.FlexibelSopModel;
if ( ! self.TinymceKlaar()) return
if ( ! self.editok()) return;
if ( ! self.selectedProfiel()) {
apprise("Er is nog geen SOP gemaakt.");
return;
}
self.ijkpunten(false);
self.erZijnMeerVersies(false);
self.fSaveChapter();
self.modus('nieuw');
var hoofdstuk = this;
if(hoofdstuk.id === '56' || hoofdstuk.id === '57' ){
self.fNewHoofdstuk(hoofdstuk);
return;
}
var submitData = { "chapterid" : hoofdstuk.id,
"profielid" : self.selectedProfiel().id};
// showAjaxLoader()
$.post("index.php/monpas/sop/checkLijsten", submitData, function(result){
if (result) {
if (result.ingevuld === 'F'){
if (hoofdstuk.id !== '50' && hoofdstuk.id !=='53' && hoofdstuk.id !== '80' && result.standaarden !== 'F') {
hideAjaxLoader();
apprise("Om dit hoofdstuk te kunnen toevoegen aan het sop <br>" +
"moet eerst een lijst bij dit instrument worden ingevuld. ");
return;
}
if (hoofdstuk.id !== '50' && hoofdstuk.id !=='53' && hoofdstuk.id !== '80' && result.standaarden === 'F') {
hideAjaxLoader();
apprise("Om dit hoofdstuk te kunnen toevoegen aan het sop <br>" +
"moet eerst een lijst bij dit instrument worden ingevuld en/of <br>" +
"de standaarden moeten nog worden toegevoegd. <br>" +
"Neem voor dit laatste contact op met de helpdesk");
return;
}
if(hoofdstuk.id === '50' || hoofdstuk.id ==='53' || hoofdstuk.id === '80' ){
hideAjaxLoader();
apprise("Om dit hoofdstuk te kunnen toevoegen aan het sop <br>" +
"moeten eerst gegevens over de ondersteuning in <br>" +
"de verschillende groepen worden ingevuld bij dit instrument. ");
return;
}
} // if ingevuld = F
if(result.ingevuld === 'T') {
if(result.filledversies.length > 1){
self.ijkpunten(result.metijkpunten =="T");
self.versies.removeAll();
self.fVulVersies(result.filledversies, true, function(){self.fOpenModel()});
self.targetChapter(hoofdstuk); //hier is de hulpvariabel targetChapter nodig omdat de popup er tussendoor komt
} // if length > 1
if(result.filledversies.length === 1){
self.versies.removeAll();
var geenCallback = "";
self.fVulVersies(result.filledversies, true, geenCallback)
self.fNewHoofdstuk(hoofdstuk);
}
}
} // if result
}, 'json')
},
fOpenModel(){
var self = ls.FlexibelSopModel;
$("#modKiesFilledVersie").modal('show');
return true;
},
fVulVersies : function(versieSet, setVersie, callback){
var self = ls.FlexibelSopModel;
self.versies.removeAll();
self.erZijnMeerVersies(false);
$.each(versieSet, function (j, versie) {
self.versies.push(new fAddVersie(versie));
if (versie.orgversieid == self.selectedChapter().orgversieid())
self.selectedVersie(versie);
}) // each
if (setVersie) self.selectedVersie(self.versies()[0]);
self.referentieVersies.removeAll();
if(self.ijkpunten()){
self.fGetVergelijkbareVersies();
}
if(typeof callback ==='function' && callback()){
callback();
}
},
fSetSelectedVersie:function(){
var self = ls.FlexibelSopModel;
self.selectedVersie(this);
self.erZijnMeerVersies(false);
self.referentieVersies.removeAll();
if(self.ijkpunten()){
self.fGetVergelijkbareVersies();
}
},
fGetVergelijkbareVersies: function(){
var self = ls.FlexibelSopModel;
self.selectedReferenties.removeAll();
if (! self.selectedVersie()) self.selectedVersie(self.versies()[0]);
$.each(self.versies(), function(i,p){
if(p.versieid === self.selectedVersie().versieid &&
p.scoretype === self.selectedVersie().scoretype &&
p.orgversieid() !== self.selectedVersie().orgversieid() &&
p.periodenummer < self.selectedVersie().periodenummer){
self.referentieVersies.push(new fAddReferentieVersie(p));
self.erZijnMeerVersies(true);
}
});
},
fSelecteerReferentie: function(){
var self = ls.FlexibelSopModel;
this.geselecteerd(! this.geselecteerd());
var dit = this;
if(!dit.geselecteerd()){
var delIndex = "";
if(self.selectedReferenties()){
$.each(self.selectedReferenties(), function(i, r){
if(r.orgversieid() === dit.orgversieid()){
delIndex = i;
}
});
self.selectedReferenties().splice(delIndex, 1);
}
}
if(dit.geselecteerd() && self.selectedReferenties().length === '3'){
dit.geselecteerd(false);
apprise("u kunt maximaal 3 lijsten vergelijken");
}
if(dit.geselecteerd() && self.selectedReferenties().length < '3' ){
self.selectedReferenties().push(dit);
}
return true;
},
fSetFilledVersie: function(){
var self = ls.FlexibelSopModel;
$("#modKiesFilledVersie").modal('hide');
if (self.selectedVersie()) {
// targetChapter wordt gezet in fCheckIngevuldeVersie
// selectedChapter wordt gezet in fNewHoofdstuk
switch (self.modus()) {
case 'nieuw' :self.fNewHoofdstuk(self.targetChapter());
break;
case "ververs": // hier komt ie niet
// want wordt apart aangeroepen
break;
case "wijzig" : self.fGetNieuweTabellen();
break;
} // einde switch
} // if selectedVersie
else {
// uit de modal zonder een versie te selecteren
// dat kan eigenlijk niet maar toch controleren
//self.selectedVersie().orgversieid(self.selectedChapter().orgversieid);
self.selectedVersie(null)
self.modus(null)
}
},
fCloseModalFilledVersie: function(){
var self = ls.FlexibelSopModel;
// de modal wordt gesloten zonder een versie te kiezen
// selected versie moet dan weer teruggezet worden op null
// in het geselecteerde hoofdstuk wordt orgversieid bewaard
// eigenlijk kan je dit met 1 modal afhandelen
self.selectedVersie(null)
$("#modKiesFilledVersie").modal('hide')
$("#modkiesversie").modal('hide')
},
fNewHoofdstuk: function(hoofdstuk){
// geef het toe te voegen hoofstuk mee
// hier kun je immers nog bepalen dat het hoofdstuk niet
//toegevoegd wordt
//dus je kunt selectedChapter pas zetten als deze functie goed gaat
var self =ls.FlexibelSopModel;
if ( ! self.editok()) return;
var versieid = "";
var referenties = [];
if (self.selectedVersie() && hoofdstuk.naam !== 'Inleiding' && hoofdstuk.id !== 56 && hoofdstuk.id !== 57) versieid = self.selectedVersie().orgversieid();
if(self.ijkpunten()) {
if (self.selectedReferenties()) {
$.each(self.selectedReferenties(), function (i, r){
referenties.push(r.orgversieid())
})
}
}
var submitData ={"chapterid" : hoofdstuk.id,
"profielid" : self.selectedProfiel().id,
"versie" : versieid,
"referenties" : referenties};
showAjaxLoader();
$.post("index.php/monpas/sop/ls_newChapter", submitData, function(result){
if (result.error){
apprise(result.error);
return;}
else {
self.selectedChapter(hoofdstuk);
self.selectedChapter().insop(true);
self.selectedChapter().sopinhoudID = result.nieuweinhoud.id;
self.selectedChapter().volgorde ( result.nieuweinhoud.volgorde);
self.selectedChapter().orgversieid(result.nieuweinhoud.orgversieid);
$.each(self.versies, function (x, v) {
if(self.selectedChapter().orgversieid() === v.orgversieid )
self.selectedVersie(v);
});
self.fSetEditorContent( result.nieuweinhoud.content)
} // if result
}, 'json').always(function(){ hideAjaxLoader() } );
},
// ************ einde toevoegen nieuw hoofdstuk ****************
// ************** wijzigen van de versie van een hoofdstuk ***********
// 1. save het oude hoofdstuk
// 2. haal de versies bij het hoofdstuk op
// 3. indien nodig : toon de versies in de modal
// 4. set selected Versie en sluit de modal
// 5. maak het hoofdstuk en zet de versie
fWijzigVersie: function(){
var self = ls.FlexibelSopModel;
if ( ! self.selectedChapter() ) return;
self.fSaveChapter();
var submitData ={ "chapterid" : self.selectedChapter().id,
"profielid" : self.selectedProfiel().id}
$.post("index.php/monpas/sop/checkLijsten", submitData, function(result){
if (result.orgversieid <= 0){
apprise("Dit hoofstuk gebruikt geen versies.");
return;
}
// dit gaat niet goed als men ondertussen de huidige versie heeft
// uitgeschakeld en er maar 1 andere versie is
// vandaar <= 1 gewijzigd naar < 1
if ( ( result &&
result.filledversies.length == 1 &&
result.filledversies[0].id == self.selectedChapter().orgversieid()) ||
(! result || result.filledversies.length < 1) ) {
apprise("Geen (andere) versies gevonden.")
return
}
apprise("Weet u zeker dat u andere versies wilt gebruiken? De huidige tabellen worden dan overschreven.",
{verify:true, textYes: 'ja, doorgaan', textNo: 'nee, annuleren'},
function(ans){
self.modus("wijzig");
self.ijkpunten(result.metijkpunten =="T")
if (ans) self.fVulVersies(result.filledversies, false, function(){$("#modKiesFilledVersie").modal('show')});
})// apprise
}, 'json')
},
// fSelecteerVersie: function(){
// var self = ls.FlexibelSopModel
// // aangeroepen in modal modkiesversie
// $("#modkiesversie").modal('hide');
// if (confirm("Weet u zeker dat u nieuwe versies wilt gebruiken? De huidige tabellen worden dan overschreven."))
// $("#modKiesFilledVersie").modal('show');
// self.fGetNieuweTabellen();
// },
// ************ einde maak hoofdstuk met nieuwe versie **************
fGetChapter: function(){
var self = ls.FlexibelSopModel;
self.fSaveChapter()
if ( ! self.selectedProfiel()) {
apprise("Er is geen SOP geselecteerd.");
return;
}
var dit = this;
if (self.selectedChapter() && dit.id === self.selectedChapter().id) return; //hoofdstuk is al geselecteerd
self.selectedChapter(dit);
self.fGetContent();
},
fNieuwProfiel: function(){
var self =ls.FlexibelSopModel;
self.fSaveChapter()
self.newnaam('');
self.periodevan('');
self.periodetm('');
$("#modNieuwProfielSop").modal('show');
},
fSaveProfiel: function(){
var self =ls.FlexibelSopModel;
var submitData ={ naam : self.newnaam(),
van : self.periodevan(),
tm : self.periodetm()}
self.chapters.removeAll();
$.post("index.php/monpas/sop/maaknewprofiel", submitData, function(result){
if (result){
self.profielen.push(new fAddProfiel(result));
self.selectedProfiel(self.profielen()[self.profielen().length-1 ] );
self.erZijnProfielen(true);
self.chapters.removeAll();
self.fGetHoofdstukken();
// wordt getriggerd in de html
}
},'json');
$("#modNieuwProfielSop").modal('hide');
},
fDeleteProfiel :function(){
var self =ls.FlexibelSopModel;
apprise("Weet u zeker dat u " + self.selectedProfiel().naam() + " wilt verwijderen?<br> U kunt dit niet ongedaan maken!",
{verify:true, textYes:' ja ', textNo:"nee"}, function(ans){
if (ans){
$.post("index.php/monpas/sop/deleteprofiel/" + self.selectedProfiel().id, function(){
self.profielen.remove(self.selectedProfiel());
if(self.profielen.length === 0){
self.erZijnProfielen(false);
}
self.chapters.removeAll();
if (self.profielen().length>0){
self.selectedProfiel(self.profielen()[0]);
self.fGetHoofdstukken()
}
else{
tinyMCE.activeEditor.setContent('');
$.each(self.chapters(), function(i,p){
p.selected(false);
});
self.selectedChapter(null);
}
});
} // if ans
else {self.fSaveChapter()}
});//apprise
},
fEditProfiel:function(){
var self = ls.FlexibelSopModel;
if (!self.selectedProfiel()) return;
self.fSaveChapter()
$("#modChangeProfielSop").modal('show');
},
fUpdateProfiel: function(){
var self = ls.FlexibelSopModel;
var submitData = { id : self.selectedProfiel().id,
naam : self.selectedProfiel().naam(),
van : self.selectedProfiel().van(),
tm : self.selectedProfiel().tm()}
$.post('index.php/monpas/sop/updateprofiel', submitData, function(){
$("#modChangeProfielSop").modal('hide');
},'json');
},
fMaakPdf :function(){
var self = ls.FlexibelSopModel;
if (!self.selectedProfiel()) return;
self.fSaveChapter()
var data={profielid : self.selectedProfiel().id};
showAjaxLoader();
var submitUrl = "index.php/monpas/sop/maakpdfSopNieuw/?json=" +JSON.stringify(data);
hideAjaxLoader();
window.open(submitUrl);
},
fMaakWord: function(){
var self = ls.FlexibelSopModel;
if (!self.selectedProfiel()) return;
self.fSaveChapter()
showAjaxLoader();
var sURL="index.php/monpas/sop/maakwordSopNieuw/" + self.selectedProfiel().id ;
hideAjaxLoader();
window.open(sURL);
},
fHoofdstukOmhoog: function(){
var self = ls.FlexibelSopModel;
var dit = this;
if (self.bezig()) return
self.fSaveChapter()
self.bezig(true)
showAjaxLoader();
var richting = 'omhoog';
var submitData={
"sopid" : self.selectedProfiel().id,
"sopinhoudid" : dit.sopinhoudID,
"richting" : richting,
}
$.post("index.php/monpas/sop/verplaatsHoofdstuk", submitData, function(result) {
if (result) {
$.each(self.chapters(), function(i,p){
$.each(result, function(x,y){
if (y.sopinhoudID == p.sopinhoudID) p.volgorde( y.volgorde)
}) // each result
}) // each chapters
self.chapters.sort(function(a,b) {
return a.volgorde() - b.volgorde()
});
} // if result
}, 'json').always(function(){self.bezig(false)
hideAjaxLoader()})
},
fHoofdstukOmlaag: function(){
var self = ls.FlexibelSopModel;
var dit = this;
if (self.bezig()) return
self.fSaveChapter()
self.bezig(true)
var submitData={
"sopid" : self.selectedProfiel().id,
"sopinhoudid" : dit.sopinhoudID,
"richting" : 'omlaag'
};
$.post("index.php/monpas/sop/verplaatshoofdstuk", submitData, function(result) {
if (result) {
$.each(self.chapters(), function(i,p){
$.each(result, function(x,y){
if (y.sopinhoudID == p.sopinhoudID) p.volgorde( y.volgorde)
}) // each result
}) // each chapters
self.chapters.sort(function(a,b) {
return a.volgorde() - b.volgorde()
});
}
}, 'json').always(function(){self.bezig(false)})
},
fDeleteChapter: function(){ // gebruikt
var self =ls.FlexibelSopModel;
var dit = this;
if ( ! dit.sopinhoudID) return;
self.fSaveChapter() // doe dit altijd want het geselecteerd en eventueel gewijzigde chapter hoeft niet gelijk te zijn aan het chapter
// dat weggegooid wordt
apprise("Weet u zeker dat u het hoofdstuk " + dit.naam + " wilt verwijderen? ", {verify:true, textYes:' ja ', textNo: 'nee'}, function(ans){
if (ans){
var submitData ={"tekstid" : dit.sopinhoudID }
$.post("index.php/monpas/sop/deletechapter", submitData, function(result){
if (result ) {
dit.insop(false)
dit.volgorde(0)
if ( dit == self.selectedChapter()) { //verversen hoeft alleen als het weggegooide hoofdstuk het geselecteerde hoofdstuk is
self.selectedChapter(self.chapters()[0] );
self.fGetContent();
} // if dit == selectedChapter
}
},'json');
} // if ans
}); // apprise
}
// functies nodig voor wijzig versie
}; // definition van model
ls.FlexibelSopModel.initBindings();
}; // else
}// function initFlexibelSopModel
});