Skip to content

Instantly share code, notes, and snippets.

View brunogasparetto's full-sized avatar

Bruno Gasparetto brunogasparetto

View GitHub Profile
@brunogasparetto
brunogasparetto / htmlpurifier_bootstrap.php
Created January 23, 2019 11:43
Exemplo de uma configuração mais restrita ao HTML Purifier para tratar HTML inserido dentro do framework Bootstrap
<?php
/**
* Adiciona as classes indicadas a um elemento HTML
*/
class TagClassTransform extends HTMLPurifier_TagTransform
{
/**
* @var array
*/
@brunogasparetto
brunogasparetto / AdobeConnectClientExample.php
Last active March 26, 2020 13:15
Use examples for AdobeConnectClient Library
<?php
use AdobeConnectClient\Connection\Curl\Connection;
use AdobeConnectClient\Client;
$connection = new Connection('https://hostname.adobeconnect.com');
$client = new Client($connection);
$client->login('username', 'password');
// Creating a User
$principal = Principal::instance()
@brunogasparetto
brunogasparetto / ds_solicitacao_material_expediente_items.js
Created January 18, 2021 21:24
Fluig - Exemplo de consulta Pai Filho em Dataset
/*
* Exemplo de como consultar pai filho em dataset
*/
/**
* Itens da Solicitação de Material de Expediente
*
* @param {string[]} fields Campos para retornar
* @param {Constraint[]} constraints Filtros
* @param {string[]} sortFields Campos para ordenar
@brunogasparetto
brunogasparetto / WorkflowEngineService.js
Last active January 18, 2021 21:30
Fluig - Exemplo teste de como utilizar o serviço em um Dataset do Fluig
/**
* Teste do Serviço
*
* @param {string[]} fields Campos a retornar
* @param {Constraint[]} constraints Filtros
* @param {string[]} sortFields Campos da ordenação
*/
function createDataset(fields, constraints, sortFields) {
var SERVICE_NAME = "ECMWorkflowEngineService", // Nome do Serviço cadastrado no Fluig
SERVICE_PATH = "com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService";
@brunogasparetto
brunogasparetto / zoom_pai_filho_reload_filters.js
Last active March 18, 2021 15:08
Fluig - Exemplo de Zoom interligados em um Pai Filho
/*
* Tenho uma Pai Filho com os seguintes campos Zoom:
* - ccProjeto
* - ccAcao
* - ccUnidade
*
* Comportamento desejado:
*
* - Quando houver uma seleção em ccProjeto o Zoom ccAcao recarregue usando o Projeto como filtro.
@brunogasparetto
brunogasparetto / javascript_base64_from_url.js
Created March 26, 2021 15:07
Pegar o Base64 de um arquivo através da sua URL
fetch(urlDoArquivo)
.then(response => response.blob())
.then(blob => {
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function() {
// reader.result é o base64
console.log(reader.result);
}
@brunogasparetto
brunogasparetto / Fluig-PostgreSQL.xml
Last active July 12, 2021 13:21
Fluig: Configurar o PostgreSQL no Fluig.
<!--
Criar a pasta <instalação do fluig>\appserver\modules\system\layers\base\org\postgresql\main
Colocar o .jar do jdbc nessa pasta.
Utilizei o postgresql-42.2.20.jar, então deve-se indicar a versão correta no path de resource-root.
Criar o arquivo "module.xml" nesta pasta com o seguinte conteúdo:
-->
<?xml version="1.0" encoding="UTF-8"?>
@brunogasparetto
brunogasparetto / inserir_pai_filho.js
Last active October 22, 2021 01:48
Fluig: Exemplo de Inserção de Pai Filho por Web Service em Widget
const response = await fetch(
`${WCMAPI.serverURL}/webdesk/ECMCardService?wsdl`,
{
method: "POST",
redirect: "follow",
credentials: "omit",
headers: {
"Content-Type": "text/xml;charset=utf-8"
},
body: createItemXml(documentId, novoIndice, conteudoDoItem)
@brunogasparetto
brunogasparetto / fluig-requests.js
Last active October 12, 2022 14:15
Funções auxiliares para requisições no TOTVS Fluig Platform. Recomendo criar uma Widget somente para ter os arquivos disponibilizados no próprio Fluig e então adicionar nos formulários e demais widgets quando necessário.
/**
* Pega um dataset
*
* Wrapper para tornar a DatasetFactory.getDataset (da lib vcXMLRPC.js) em Promise.
*
* @param {string} dataset Nome do Dataset
* @param {string[]} fields Campos para retornar (pode ser null pra retornar todos)
* @param {Constraint[]} constraints Os filtros a aplicar ou null se não filtrar nada
* @param {string[]} sorters Campos para ordenar ou null para não ordenar. Pode colocar ;desc no campo para ordenar decrescente
* @returns {Promise<{columns: string[], values: object[]}>}
@brunogasparetto
brunogasparetto / send_file_webservice.js
Last active December 14, 2022 22:54
Fluig: enviar um documento do GED para um WS externo como chunked post
var fluigUsername = "username";
var fluigPassword = "password";
var fluigEmpresa = 1;
var documentId = 0;
var documentVersion = "1000";
var documentDescription = "arquivo.pdf";
var mimeType = "application/pdf";
var ECMDocumentServiceProvider = ServiceManager.getServiceInstance("ECMDocumentService");
var ECMDocumentServiceLocator = ECMDocumentServiceProvider.instantiate("com.totvs.technology.ecm.dm.ws.ECMDocumentServiceService");