514 lines
13 KiB
JavaScript
514 lines
13 KiB
JavaScript
$(function(){
|
|
|
|
ls.initFileFoldersModel = function(modulenr){
|
|
|
|
function fAddFolder(p, layer){
|
|
this.id = p.id
|
|
this.organisatie_id = p.organisatie_id;
|
|
this.valtonder = p.valtonder;
|
|
this.nummer = ko.observable(p.nummer);
|
|
this.naam = ko.observable(p.naam);
|
|
this.geopend = ko.observable(false);
|
|
this.selected = ko.observable(false);
|
|
this.subfolders = ko.observableArray();
|
|
this.layer = ko.observable(layer);
|
|
var dit = this
|
|
this.bestanden = ko.observableArray()
|
|
if (p.files){
|
|
$.each(p.files, function(j,k){
|
|
dit.bestanden.push(new fAddFile(k));
|
|
});
|
|
}
|
|
if (p.subfolders){
|
|
$.each(p.subfolders, function(j,k){
|
|
dit.subfolders.push( new fAddFolder(k, dit.layer()+ 1));
|
|
})
|
|
}
|
|
}
|
|
|
|
function fAddFile(p){
|
|
this.id = p.id
|
|
this.naam = ko.observable(p.naam)
|
|
this.modified = p.modified
|
|
this.editMode = ko.observable(false)
|
|
this.pdf = ko.observable(false)
|
|
if (p.pdf==true || p.pdf==1) this.pdf(true);
|
|
this.owner = false;
|
|
if (p.owner == 1) this.owner = true
|
|
}
|
|
|
|
if (ls.FileFoldersModel !== undefined){
|
|
ls.FileFoldersModel.initModel(modulenr);
|
|
}
|
|
else {
|
|
ls.FileFoldersModel = {
|
|
modulenr : ko.observable(),
|
|
folders : ko.observableArray(),
|
|
bezig : ko.observable(false),
|
|
filefocus : ko.observable(),
|
|
zoekfile : ko.observable(),
|
|
zoekresultaat : ko.observableArray([]),
|
|
manager : ko.observable(false),
|
|
textAfwijkend : ko.observable(false),
|
|
specialetekst : ko.observable(''),
|
|
newTopNaam : ko.observable(''),
|
|
newTopNummer : ko.observable(),
|
|
newSubNaam : ko.observable(''),
|
|
newSubNummer : ko.observable(),
|
|
newNummer : ko.observable(),
|
|
newNaam : ko.observable(),
|
|
selectedFolder : ko.observable(),
|
|
|
|
|
|
initBindings :function(modulenr){
|
|
var vm = ls.FileFoldersModel;
|
|
if (!ko.dataFor(document.getElementById('pagfilefolders')) ) {
|
|
ko.applyBindings(ls.FileFoldersModel, document.getElementById("pagfilefolders"));
|
|
}
|
|
$.post('index.php/shared/filefolders/getAuth', function(result){
|
|
if (result > 0) vm.manager(true)
|
|
else vm.manager(false);
|
|
|
|
vm.initModel(modulenr);
|
|
},'json');
|
|
},
|
|
initModel: function(modulenr){
|
|
var vm = ls.FileFoldersModel;
|
|
vm.modulenr(modulenr)
|
|
vm.fGetFileFolders(modulenr);
|
|
|
|
var submitData={
|
|
'modulenr' : modulenr,
|
|
'paginanaam': 'filefolders',
|
|
}
|
|
|
|
$.post('index.php/shared/filefolders/getafwijkendetekst', submitData, function(result){
|
|
if (result){
|
|
vm.textAfwijkend(true);
|
|
vm.specialetekst(result);
|
|
}
|
|
},'json')
|
|
|
|
},
|
|
|
|
fGetFileFolders: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
var dit = this;
|
|
vm.folders.removeAll();
|
|
|
|
$.post('index.php/shared/filefolders/getfolders/' + modulenr, function(result){
|
|
|
|
if (result){
|
|
$.each(result, function(i,p){
|
|
vm.folders.push(new fAddFolder(p,0));
|
|
})
|
|
|
|
}
|
|
},'json')
|
|
},
|
|
|
|
fToggleGeopend: function(){
|
|
this.geopend(! this.geopend())
|
|
},
|
|
|
|
fSetSelected:function(){
|
|
var vm = ls.FileFoldersModel;
|
|
var dit = this;
|
|
var huidig = this.selected();
|
|
if (vm.folders()){
|
|
$.each(vm.folders(), function(i,p){
|
|
vm.fUnselectAll(p)
|
|
});
|
|
}
|
|
dit.selected(! huidig);
|
|
},
|
|
|
|
fUnselectAll:function(folder){
|
|
var vm =ls.FileFoldersModel;
|
|
folder.selected(false);
|
|
if (folder.subfolders()){
|
|
$.each(folder.subfolders(), function(j,k){
|
|
vm.fUnselectAll(k);
|
|
});
|
|
}
|
|
},
|
|
|
|
fNewTopFolder: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
$(" #modNewTopFolder ").modal('show');
|
|
vm.newTopNaam('');
|
|
if(vm.folders && vm.folders().length > 0){
|
|
var index = vm.folders().length -1;
|
|
vm.newTopNummer(Number(vm.folders()[index].nummer()) + 1);
|
|
}
|
|
else{
|
|
vm.newTopNummer(1);
|
|
}
|
|
},
|
|
|
|
fSafeTopfolder: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
var dit = this;
|
|
var nummer = dit.newTopNummer();
|
|
if(isNaN(nummer) && nummer !== '' ){
|
|
apprise("Vul bij nummer een getal in of vul niets in.")
|
|
return;
|
|
}
|
|
if(nummer === ''){
|
|
nummer= false;
|
|
}
|
|
|
|
var sd ={
|
|
nummer : nummer,
|
|
naam : dit.newTopNaam(),
|
|
modulenr : vm.modulenr()}
|
|
|
|
|
|
|
|
$("#modNewTopFolder").modal('hide');
|
|
$.post("index.php/shared/filefolders/maakTopFolder" ,sd, function(result){
|
|
vm.bezig(false);
|
|
if (! result) return;
|
|
dit.folders.push(new fAddFolder(result, 0));
|
|
dit.newTopNummer('');
|
|
dit.newTopNaam('');
|
|
},'json')
|
|
},
|
|
|
|
fNewSubFolder: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
vm.newSubNummer(1);
|
|
vm.newSubNaam('');
|
|
vm.selectedFolder(this);
|
|
$("#modNieuweSubFolder").modal('show');
|
|
|
|
|
|
if(vm.selectedFolder().subfolders() && vm.selectedFolder().subfolders().length > 0){
|
|
var index = vm.selectedFolder().subfolders().length -1;
|
|
vm.newSubNummer( Number(vm.selectedFolder().subfolders()[index].nummer() ) + 1 )
|
|
}
|
|
else{
|
|
vm.newSubNummer(1);
|
|
}
|
|
|
|
},
|
|
|
|
fSafeSubfolder: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
var dit = this;
|
|
var nummer = dit.newSubNummer()
|
|
if(isNaN(nummer) && nummer !== '' ){
|
|
apprise("Vul bij nummer een getal in of vul niets in.")
|
|
return;
|
|
}
|
|
|
|
var sd ={
|
|
nummer : nummer,
|
|
naam : dit.newSubNaam(),
|
|
folderID : vm.selectedFolder().id,
|
|
modulenr : vm.modulenr()}
|
|
|
|
|
|
$("#modNieuweSubFolder").modal('hide');
|
|
$.post("index.php/shared/filefolders/maakSubFolder" ,sd, function(result){
|
|
vm.bezig(false);
|
|
if (! result) return;
|
|
vm.selectedFolder().subfolders.push(new fAddFolder(result, vm.selectedFolder().layer() + 1))
|
|
dit.newTopNummer('');
|
|
dit.newTopNaam('');
|
|
vm.selectedFolder('');
|
|
},'json')
|
|
},
|
|
|
|
fStandaardFolders: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
var sd ={modulenr : vm.modulenr()}
|
|
$.post("index.php/shared/filefolders/maakStandaardFolders" ,sd, function(result){
|
|
if (! result){
|
|
apprise('Geen standaardfolders beschikbaar.')
|
|
return;
|
|
}
|
|
$.each(result, function(i,p){
|
|
vm.folders.push(new fAddFolder(p,0))
|
|
});
|
|
},'json')
|
|
},
|
|
|
|
fDeleteFolder: function(parent){
|
|
var vm = ls.FileFoldersModel;
|
|
if (vm.bezig() ) return;
|
|
vm.bezig(true);
|
|
var dit = this;
|
|
apprise("Weet u zeker dat u <i>" + this.naam() + "</i> wilt verwijderen?", {verify:true, textYes: " ja ",textNo:"nee"},
|
|
function(ans){
|
|
if (ans){
|
|
|
|
$.post("index.php/shared/filefolders/deleteFolder/" + dit.id,function(){
|
|
if (parent.constructor.name == "fAddFolder") {
|
|
parent.subfolders.remove(dit);
|
|
} else {
|
|
parent.folders.remove(dit)
|
|
}
|
|
vm.bezig(false);
|
|
})
|
|
|
|
} else {
|
|
vm.bezig(false);
|
|
}
|
|
}); // apprise
|
|
},
|
|
|
|
fEditFolder: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
if (vm.manager() != 1) {
|
|
apprise("U bent niet de eigenaar van dit bestand.");
|
|
return;
|
|
}
|
|
vm.selectedFolder(this);
|
|
vm.newNummer(vm.selectedFolder().nummer())
|
|
vm.newNaam(vm.selectedFolder().naam())
|
|
$(" #modEditFolder ").modal('show');
|
|
|
|
},
|
|
|
|
fSaveEditFolder: function() {
|
|
var vm = ls.FileFoldersModel;
|
|
var dit = this;
|
|
|
|
if (isNaN(vm.newNummer()) && vm.newNummer() !== '') {
|
|
apprise("Vul bij nummer een getal in of vul niets in.")
|
|
return;
|
|
}
|
|
$(" #modEditFolder ").modal('hide')
|
|
var valtonder = vm.selectedFolder().valtonder ? vm.selectedFolder().valtonder : vm.selectedFolder().id;
|
|
|
|
var sd = {
|
|
nummer : vm.newNummer(),
|
|
naam : vm.newNaam(),
|
|
valtonderID: valtonder,
|
|
folderID : vm.selectedFolder().id
|
|
}
|
|
|
|
$.post("index.php/shared/filefolders/editFolder", sd, function (result) {
|
|
if(result) {
|
|
vm.fGetFileFolders();
|
|
vm.bezig(false);
|
|
vm.selectedFolder('')
|
|
vm.newNummer('');
|
|
vm.newNaam('');
|
|
}
|
|
|
|
}, 'json')
|
|
},
|
|
|
|
fSaveFilenaam: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
this.editMode(false);
|
|
vm.filefocus().editMode(false);
|
|
var sd= {naam: this.naam(),
|
|
id: this.id}
|
|
$.post('index.php/shared/filefolders/saveFileNaam', sd);
|
|
|
|
},
|
|
|
|
fGetSelectedRecursive(folder){
|
|
var vm = ls.FileFoldersModel;
|
|
selected = false;
|
|
if (folder.selected()) {
|
|
selected= folder;
|
|
return selected;
|
|
} else{
|
|
if (folder.subfolders()){
|
|
$.each(folder.subfolders(), function(j,k){
|
|
vm.fGetSelectedRecursive(k);
|
|
});
|
|
}
|
|
}
|
|
return selected;
|
|
},
|
|
|
|
fGetSelected:function(){
|
|
var vm = ls.FileFoldersModel;
|
|
var selected = false;
|
|
if (vm.folders()){
|
|
$.each(vm.folders(), function(i,p){
|
|
if (p.selected()) {
|
|
selected= p;
|
|
return false;
|
|
} else {
|
|
selected= vm.fGetSelectedRecursive(p);
|
|
if (selected) return false;
|
|
}
|
|
});
|
|
}
|
|
return selected;
|
|
},
|
|
|
|
fUploadFile: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
var folder = vm.fGetSelected();
|
|
if (! folder) {
|
|
apprise("Selecteer eerst een folder");
|
|
return;
|
|
}
|
|
else{
|
|
var dit = this;
|
|
var docID = 0;
|
|
// als this een file is geef dan fileID mee om te overschrijven
|
|
// docID = this.id
|
|
ls.initUploader(vm.modulenr(), folder.id,docID,
|
|
function(succes){
|
|
if (succes) vm.fRefreshFiles(folder) });
|
|
}
|
|
},
|
|
fRefreshFiles: function(folder){
|
|
var vm = ls.FileFoldersModel;
|
|
|
|
if (vm.bezig()) return
|
|
vm.bezig(true)
|
|
var sd ={folderID :folder.id}
|
|
$.post("index.php/shared/filefolders/getFiles", sd, function(result){
|
|
folder.bestanden.removeAll();
|
|
if (result){
|
|
$.each(result,function(i,p){
|
|
folder.bestanden.push(new fAddFile(p));
|
|
});
|
|
}
|
|
vm.bezig(false);
|
|
},'json');
|
|
},
|
|
|
|
|
|
fSetEditMode: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
if (this.owner != 1) {
|
|
apprise("U bent niet de eigenaar van dit bestand.");
|
|
return;
|
|
}
|
|
if (vm.filefocus()) vm.filefocus().editMode(false);
|
|
vm.filefocus(this);
|
|
this.editMode(! this.editMode());
|
|
},
|
|
|
|
fDeleteBestand: function(parent){
|
|
var vm = ls.FileFoldersModel;
|
|
if (vm.bezig()) return;
|
|
vm.bezig(true);
|
|
|
|
var that = this
|
|
apprise("Weet u zeker dat u " + that.naam() + " wilt verwijderen?" , {verify: true, textYes: ' ja ', textNo: 'nee'},
|
|
function(ans){
|
|
if (ans){
|
|
$.post('index.php/shared/filefolders/deleteFile/' + that.id, function(){
|
|
parent.bestanden.remove(that);
|
|
vm.bezig(false);
|
|
});
|
|
} else {vm.bezig(false); }
|
|
}); // apprise
|
|
},
|
|
fShowDocument:function(){
|
|
ls.initDownloadModel(this,"INZIEN");
|
|
},
|
|
fNoConversionAvailable: function(){
|
|
ls.initDownloadModel(this,"INZIEN");
|
|
},
|
|
fDownloadDoc:function(){
|
|
ls.initDownloadModel(this,"DOWNLOAD");
|
|
},
|
|
|
|
fStartZoek: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
if (! vm.zoekfile() || vm.zoekfile().length < 2) return;
|
|
if (vm.bezig()) return;
|
|
vm.bezig(true);
|
|
var sd = {zoekfile : vm.zoekfile(),
|
|
modulenr : vm.modulenr()}
|
|
$.post('index.php/shared/filefolders/zoekFile' , sd, function(result){
|
|
vm.zoekresultaat.removeAll();
|
|
if (result) {
|
|
vm.zoekresultaat(result);
|
|
$("#modZoekresultaten").modal('show');
|
|
} else {
|
|
apprise('Geen bestanden gevonden.');
|
|
}
|
|
|
|
vm.bezig(false);
|
|
},'json');
|
|
},
|
|
|
|
fCheckEnter:function(d,e){
|
|
var vm = ls.FileFoldersModel;
|
|
if (e.keyCode == 13) vm.fStartZoek();
|
|
return true;
|
|
},
|
|
|
|
fGetZoekResultaatInFolders: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
var dit = this;
|
|
if (! vm.folders() || vm.folders().length< 1) return;
|
|
if (dit.modulenr !== vm.modulenr() ) {
|
|
apprise("Dit document bevindt zich in binnen een ander instrument (" +dit.naamkort +"). <br> U dient eerst naar " + dit.naamkort +" te gaan voordat u het document kunt inzien.");
|
|
return;
|
|
} else {
|
|
vm.fGetFolderString( dit.folder_id, vm.folders, '')
|
|
|
|
}
|
|
},
|
|
|
|
fOpenFolders: function(folders, folderIDstring){
|
|
var vm = ls.FileFoldersModel;
|
|
if (folders()){
|
|
$.each(folders(), function(j,k){
|
|
k.geopend(false);
|
|
if (folderIDstring.indexOf(k.id) > -1) {
|
|
k.geopend(true)
|
|
}
|
|
if (k.subfolders()){
|
|
vm.fOpenFolders(k.subfolders, folderIDstring);
|
|
}
|
|
}) // foreach
|
|
}
|
|
$("#modZoekresultaten").modal('hide')
|
|
},
|
|
|
|
fGetFolderString: function(zoekfolderID, folders, folderIDstring){
|
|
var vm = ls.FileFoldersModel;
|
|
var found = false;
|
|
if (folders() ){
|
|
$.each(folders(), function(i,p){
|
|
if (p.id == zoekfolderID){
|
|
if (folderIDstring) folderIDstring= folderIDstring + ',' + p.id
|
|
else folderIDstring = p.id
|
|
vm.fOpenFolders(vm.folders, folderIDstring);
|
|
return false;
|
|
} else{
|
|
|
|
if (p.subfolders && p.subfolders()){
|
|
if (folderIDstring) folderIDstring= folderIDstring + ',' + p.id
|
|
else folderIDstring = p.id
|
|
$.each(p.subfolders(), function(j,k){
|
|
if (k.id == zoekfolderID){
|
|
folderIDstring = folderIDstring + ',' + zoekfolderID;
|
|
vm.fOpenFolders(vm.folders,folderIDstring);
|
|
return false;
|
|
}else{
|
|
folderIDstring = vm.fGetFolderString(zoekfolderID, p.subfolders, folderIDstring);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
},
|
|
fPrintFolders: function(){
|
|
var vm = ls.FileFoldersModel;
|
|
|
|
window.open("index.php/shared/filefolders/maakpdf/" + vm.modulenr() );
|
|
}
|
|
} ; // definition van model
|
|
ls.FileFoldersModel.initBindings(modulenr);
|
|
}; // else
|
|
}// function initFileFoldersModel
|
|
}); |