943 lines
34 KiB
JavaScript
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
|
|
}); |