const TIPO_DOCUMENTO_PASTA = 0;
const TIPO_DOCUMENTO_ARQUIVO = 1;
function carregarAbaDocumentos(origem, idOrigem) {
if (localStorage.getItem('iconVisaoDocsGerais') === null && localStorage.getItem('tipoVisaoDocsGerais') === null) {
localStorage.setItem('iconVisaoDocsGerais', '');
localStorage.setItem('tipoVisaoDocsGerais', 'grid');
}
$.ajax({
type: "GET",
url: `/${URL_BASE}App/View/Pages/DocumentosGerais/home.php?origem=${origem}&idOrigem=${idOrigem}`,
success: function (data) {
$('#nav-documentos').html(data);
AtualizarListaDocsGerais(origem, idOrigem);
}
});
}
function setListagemDocsGerais(origem, idOrigem, idPastaPai = 0) {
$.ajax({
url: '/' + URL_BASE + 'App/View/Pages/DocumentosGerais/include/lista_ajax.php',
dataType: 'html',
type: 'POST',
data: {
origem: origem,
idOrigem: idOrigem,
idPai: idPastaPai,
},
success: (data) => {
localStorage.setItem('tipoVisaoDocsGerais', 'listagem');
$('#btnAlterarVisaoDocsGerais').html('');
$('#btnAlterarVisaoDocsGerais').attr('visao', localStorage.getItem('tipoVisaoDocsGerais'));
$('#btnAlterarVisaoDocsGerais').attr('title', 'Grid');
$('#mainDocumentosGerais').html(data);
}
});
}
function setGridDocsGerais(origem, idOrigem, idPastaPai = 0) {
$.ajax({
url: '/' + URL_BASE + 'App/View/Pages/DocumentosGerais/include/grid_ajax.php',
dataType: 'html',
type: 'POST',
data: {
origem: origem,
idOrigem: idOrigem,
idPai: idPastaPai,
},
success: (data) => {
localStorage.setItem('tipoVisaoDocsGerais', 'grid');
$('#btnAlterarVisaoDocsGerais').html('');
$('#btnAlterarVisaoDocsGerais').attr('visao', localStorage.getItem('tipoVisaoDocsGerais'));
$('#btnAlterarVisaoDocsGerais').attr('title', 'Listagem');
$('#mainDocumentosGerais').html(data);
}
});
}
function alterarVisao(origem, idOrigem) {
let btn = $('#btnAlterarVisaoDocsGerais');
let visao = btn.attr('visao');
let idUltimoItem = PegarIdUltimoItemBreadcrumbDocsGerais();
(visao === 'grid') ? setListagemDocsGerais(origem, idOrigem, idUltimoItem) : setGridDocsGerais(origem, idOrigem, idUltimoItem);
}
function AtualizarListaDocsGerais(origem, idOrigem, idPastaPai = 0) {
(localStorage.getItem('tipoVisaoDocsGerais') === 'grid') ? setGridDocsGerais(origem, idOrigem, idPastaPai) : setListagemDocsGerais(origem, idOrigem, idPastaPai);
}
async function OpenModalPastaDocsGerais(origem, idOrigem) {
await PageModal('/' + URL_BASE + `App/View/Pages/DocumentosGerais/cadastro_pasta.php?origem=${origem}&idOrigem=${idOrigem}`, ' Criar Pasta');
}
async function OpenModalArquivoDocsGerais(origem, idOrigem) {
await PageModalFull('/' + URL_BASE + `App/View/Pages/DocumentosGerais/cadastro.php?origem=${origem}&idOrigem=${idOrigem}`, ' Criar Arquivo', false);
await ConfigurarCKEDITORDocsGerais();
}
async function OpenModalAnexarArquivoDocsGerais(origem, idOrigem) {
await PageModal('/' + URL_BASE + `App/View/Pages/DocumentosGerais/cadastro_anexar_arquivo.php?origem=${origem}&idOrigem=${idOrigem}`, ' Anexar Arquivos', false);
carregarMetodosDragDropAnexoDocsGerais(origem, idOrigem);
}
function CriarPastaDocsGerais(origem, idOrigem) {
if (ValidaForm('formPasta')) {
const session = getDataSession();
let idPastaPai = PegarIdUltimoItemBreadcrumbDocsGerais();
$('.inputTemp').remove();
if ($('#formPasta inputID').val() == '') {
$('#formPasta').append(``);
$('#formPasta').append(``);
} else {
$('#formPasta').append(``);
$('#formPasta').append(``);
$('#formPasta').append(``);
}
_EXEC('formPasta').done(data => {
AtualizarListaDocsGerais(origem, idOrigem, idPastaPai);
ClosePageModal();
});
}
}
function CriarArquivoDocsGerais(origem, idOrigem) {
const conteudoAtual = CKEDITOR.instances.arquivo.getData();
if (ValidaForm('formArquivo')) {
let conteudo = CKEDITOR.instances.arquivo.getData();
$('#arquivo').val(conteudo);
const session = getDataSession();
let idPastaPai = PegarIdUltimoItemBreadcrumbDocsGerais();
$('.inputTemp').remove();
if ($('#formArquivo inputID').val() == '') {
$('#formArquivo').append(``);
$('#formArquivo').append(``);
/*
* Só altera de fato o conteudoBackup, se o conteudo tiver sido alterado, caso contrário não a
* motivos para alterar o conteúdo bkp, já que nada foi alterado.
*/
if (conteudoAtual != conteudo) $('#conteudo_bkp').val(conteudoAtual);
} else {
$('#formArquivo').append(``);
$('#formArquivo').append(``);
$('#formArquivo').append(``);
}
_EXEC('formArquivo').done(data => {
AtualizarListaDocsGerais(origem, idOrigem, idPastaPai);
ClosePageModalFull();
});
}
}
function FavoritarOuDesfavoritarDocsGerais(idDocumento, idUsuario, element) {
let tipo = $(element).attr('tipo');
const FAVORITAR = 1;
const DESFAVORITAR = 0
$.ajax({
url: '/' + URL_BASE + 'App/Controller/Documentos/Documentos.controller.php',
type: 'POST',
cache: false,
data: {
acao: (tipo == FAVORITAR) ? 'desfavoritar' : 'favoritar',
idUsuario: idUsuario,
idDocumento: idDocumento,
},
success: (data) => {
let obj = JSON.parse(data);
if (obj.erro == 0) {
OpenToast(obj.msg);
$(element).attr('tipo', (tipo == FAVORITAR) ? DESFAVORITAR : FAVORITAR)
$(element).attr('class', (tipo == FAVORITAR) ? 'ri-heart-line' : 'ri-heart-fill');
$(element).attr('title', (tipo == FAVORITAR) ? 'Não Favorito' : 'Favorito');
return;
}
if (obj.erro == 1) {
OpenToast(obj.msg);
return;
}
},
});
}
function PegarIdUltimoItemBreadcrumbDocsGerais() {
return $("#breadcrumb-documentos-gerais").find("li").last().attr('id-pasta-pai');
}
function EditaDocsGerais(id, tipoDocumento, origem, idOrigem) {
RemoveIdURL();
/**ADCIONA O ID A URL */
window.history.replaceState('', document.title, document.URL + '/' + id);
(tipoDocumento == 1) ? OpenModalArquivoDocsGerais(origem, idOrigem) : OpenModalPastaDocsGerais(origem, idOrigem);
setEditForm((tipoDocumento == 1) ? '#formArquivo' : '#formPasta');
}
function AbrirPastaDocsGerais(origem, idOrigem, objPastas) {
let length = objPastas.length;
// Limpar os Itens do BreadCrumb
$("#breadcrumb-documentos-gerais").empty();
$("#breadcrumb-documentos-gerais").append(`
Home`);
// Le o Obj de trás para frente, para ficar na ordem correta.
for (let i = length - 1; i >= 0; i--) {
$("#breadcrumb-documentos-gerais").append(`${objPastas[i].nome}`);
}
// Após a interação ser finalizar, pega o id do último item e atualiza.
AtualizarListaDocsGerais(origem, idOrigem, PegarIdUltimoItemBreadcrumbDocsGerais());
}
function VoltarPastaClicadaDocsGerais(origem, idOrigem, idPastaClicada) {
$("#breadcrumb-documentos-gerais li").each(function () {
let idAtual = $(this).attr("id-pasta-pai");
if (idAtual > idPastaClicada) {
$(this).remove();
}
});
AtualizarListaDocsGerais(origem, idOrigem, idPastaClicada);
}
function retrocederDocsGerais(origem, idOrigem) {
const idRetrocedido = $("#breadcrumb-documentos-gerais li").slice(-2, -1).attr("id-pasta-pai");
if (idRetrocedido) {
$("#breadcrumb-documentos-gerais li").slice(-1).remove();
AtualizarListaDocsGerais(origem, idOrigem, idRetrocedido);
}
}
function GerarPDFDocsGerais(idArquivo, nomeArquivo, download = false) {
$.ajax({
url: '/' + URL_BASE + 'App/Controller/Documentos/Documentos.controller.php',
type: 'POST',
cache: false,
xhrFields: {
responseType: 'blob',
},
data: {
acao: 'gerar-pdf',
idArquivo: idArquivo,
},
success: (data) => {
if (data) {
let blob = new Blob([data], { type: 'application/pdf' });
let url = window.URL.createObjectURL(blob);
(download) ? DownloadDocsGerais(url, nomeArquivo, true) : VisualizarPDFDocsGerais(url, nomeArquivo);
} else {
OpenToast('Ocorreu um erro inesperado ao gerar o PDF !', true);
}
}, error: function (err) {
console.log(err);
}
});
}
function GerarWordDocsGerais(idArquivo, nomeArquivo) {
$.ajax({
url: '/' + URL_BASE + 'App/Controller/Documentos/Documentos.controller.php',
type: 'POST',
cache: false,
xhrFields: {
responseType: 'blob',
},
data: {
acao: 'gerar-word',
idArquivo: idArquivo,
},
success: (data) => {
// Cria um link temporário para fazer o download do blob
let url = window.URL.createObjectURL(data);
DownloadDocsGerais(url, nomeArquivo, false);
},
});
}
function DownloadDocsGerais(url, nomeArquivo, pdf = true) {
let fileName = (pdf) ? `${nomeArquivo}.pdf` : `${nomeArquivo}.docx`;
let $a = $('', {
href: url,
download: fileName
}).appendTo('body');
$a[0].click();
$a.remove();
}
function VisualizarPDFDocsGerais(url, nomeArquivo) {
FileModalPDF(url, nomeArquivo);
}
function ConfigurarCKEDITORDocsGerais() {
arquivo = CKEDITOR.replace('arquivo', {
language: 'pt-BR',
extraPlugins: 'clipboard,uploadimage,image2',
removePlugins: 'exportpdf,image',
allowedContent: true,
toolbar: [{
name: 'styles',
items: ['Format']
},
{
name: 'basicstyles',
groups: ['basicstyles', 'cleanup'],
items: ['Bold', 'Italic', 'Underline', 'Strike', '-', 'CopyFormatting', 'RemoveFormat']
},
{
name: 'colors',
items: ['TextColor', 'BGColor']
},
{
name: 'clipboard',
groups: ['clipboard', 'undo'],
items: ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo']
},
{
name: 'paragraph',
groups: ['list', 'indent', 'blocks', 'align', 'bidi'],
items: ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', '-', 'NumberedList', 'BulletedList']
},
{
name: 'links',
items: ['Link', 'Unlink']
},
{
name: 'insert',
items: ['Table', 'Image', 'UploadImage'] // Adicione 'UploadImage' aqui
},
{
name: 'tools',
items: ['Maximize']
}
]
}).on('paste', function (event) {
let image = event.data.dataTransfer._.files
if (image.length > 0) {
let file = image[0];
let reader = new FileReader();
reader.onload = function (e) {
let base64Data = e.target.result;
$.ajax({
url: '/' + URL_BASE + 'App/Controller/Documentos/Documentos.controller.php?uploadImagem=true',
cache: false,
type: 'POST',
data: {
'base64': base64Data,
},
success: (data) => {
let obj = JSON.parse(data);
if (obj == null) {
OpenToast('Não foi possível fazer o upload da imagem !!', true);
return;
}
if (obj.arquivos_processados.length > 0) {
let urlImagem = `https://files.dots.app.br/${obj.arquivos_processados[0].caminho_curto}`;
CKEDITOR.instances['arquivo'].insertHtml('
');
return;
}
},
});
};
reader.readAsDataURL(file);
return;
}
});
CKEDITOR.config.removePlugins = 'resize';
CKEDITOR.on('instanceReady', function () {
$('.cke_wysiwyg_frame').css({
'max-width': '214.2mm', // A4 = 209mm || 10px = 2,6mm || 20px = 5,2mm, logo 209mm + 5,2 = 214.2mm
'word-wrap': 'break-word',
'margin': '0 auto',
'padding': '0 10px',
'border-left': '2px dashed red',
'border-right': '2px dashed red'
});
$('#cke_arquivo').css({ 'height': '96%' });
$('.cke_inner').css({ 'height': '100%', 'display': 'flex', 'flex-direction': 'column', 'justify-content': 'space-between' });
$('.cke_contents').css({ 'flex-grow': '1' });
});
$(window).on('resize', function () {
let modalHeight = document.querySelector('.modal-dialog');
let modalHeader = document.querySelector('.modal-header');
// validação para evitar erros de exeção.
if (modalHeight) modalHeight = modalHeight.clientHeight;
if (modalHeader) modalHeader = modalHeader.clientHeight;
height = ((modalHeight - modalHeader) * 60) / 100;
$('.cke_contents').css('height', `${height}px`);
});
let modalHeight = document.querySelector('.modal-dialog').clientHeight;
CKEDITOR.config.height = (modalHeight * 60) / 100;
CKEDITOR.config.resize_enabled = true;
}
function carregarMetodosDragDropAnexoDocsGerais(origem, idOrigem) {
var dropzone = $('.dropzone');
var input = $('#inputArquivosAnexados');
dropzone.on('dragover', function (e) {
e.preventDefault();
$(this).addClass('dragover');
});
dropzone.on('dragleave', function (e) {
e.preventDefault();
$(this).removeClass('dragover');
});
dropzone.on('drop', function (e) {
e.preventDefault();
$(this).addClass('dragover');
input[0].files = e.originalEvent.dataTransfer.files;
uploadAnexoDocsGerais(origem, idOrigem);
});
$('#inputArquivosAnexados').on('change', () => {
uploadAnexoDocsGerais(origem, idOrigem);
})
}
async function uploadAnexoDocsGerais(origem, idOrigem) {
const session = getDataSession();
const permissao = $('#formAnexarArquivo #selectTipo').find('option:selected').val();
var filesArray = $('#inputArquivosAnexados').prop('files');
var idPastaPai = PegarIdUltimoItemBreadcrumbDocsGerais();
var qtdFilesSuccess = 0;
var qtdFilesError = 0;
$('#iconDropzone').html('');
$('#msgDropzone').text('Upando Arquivo...');
// Criando um array de promessas
const uploadPromises = Array.from(filesArray).map(async (file) => {
try {
let response = await sendFiles(file, '00000000000000', 0, 'file', true);
// Verifica se a resposta é válida antes de processá-la
if (response.id_arquivo > 0 || response.id_arquivo != '') {
qtdFilesSuccess++;
$('#formInsertAnexoDocsGerais').remove();
let form = ``;
form += `";
/* adiciona form no html e envia */
$('body').append(form);
_EXEC('formInsertAnexoDocsGerais', null, false, false);
} else {
qtdFilesError++;
}
} catch (error) {
qtdFilesError++;
}
});
// Aguarda todas as promessas serem resolvidas
await Promise.all(uploadPromises);
$('#iconDropzone').html('');
$('#msgDropzone').html('Arraste e solte para fazer o upload do arquivo.');
OpenToast(`Arquivos upados: ${qtdFilesSuccess} com sucesso e ${qtdFilesError} com falha.`);
ClosePageModal();
AtualizarListaDocsGerais(origem, idOrigem, idPastaPai);
}