Alguem ja modificou via programação uma superwisget via programação. ja vi alguns codigos na net mas não consegui fazer no fluig. Ate chega a rodar mas as funções nativas se perdem.
Isso é muito util para modificar funções padrões do fluig.
At.te
Daniel Sales
Fiquei curioso pra entender a motivação.
Pelo que vi o objeto SuperWidget é derivado de Object, ou seja nem tem uma classe pra estender. O método instance
que faz a “mágica” de configurar um monte de coisas, enquanto o extend
faz um clone do objeto tratando os casos dos bindings.
Você pode “clonar” a SuperWidget, fazendo um
var MinhaSuperWidget = SuperWidget.mergeObjects(SuperWidget, {});
Então mudar os métodos da MinhaSuperWidget e então nas novas Widgets fazer o extend nela.
MinhaSuperWidget.minhaSuperFuncao = function () {};
var minhaWidget = MinhaSuperWidget.extend({
/* continua a widget */
});
Acredito que funcionaria.
Bom dia bruno,
Segue a necessidade:
Preciso saber exatamente quando um upload terminou para tomar algumas ações dentro do meu codigo. Vi que o fluig tem uma widget ou algo do tipo que não consegui identificar que contro.a todos os uploads que se chama FileMonitor. ela ate tem alguns metodos que eu n ão consegui utilizar por falta de conhecimento, dai a necessidade de modificar esse carinha e colocar a chamada da minha função em algum metodo dele.
Eu quero fazer lguns ajustes visuais apos o upload terminar e se usar o settimeout as vezes o formulario fica lento ou trava devido a ele rodar de tempos em tempos.
Se por acaso tiver alguma dica agradeço.
Bom dia Bruno,
Retomando esse velho assunto descobri algumas superwidgets padrão do fluig tais como a ECM,ECM_WKFView, FileUpload e etc.
Por exemplo surgiu uma demanda aqui de modificar a tela de cancelamento padrão do fluig em um determinado fluxo. eu ate achei a função que gera o modal de cancelamento e cheguei a modificar ela e de mais ou menos certo. A tela ficou como eu queria. mas na hora de clicar no botão cancelar ele perde as referencias. Dai o problema . Tenho que descobrir pelo menos como acessar essas superwidgets sem que se perca a referencia.
Tem alguma ideia?
@Daniel_Sales , eu não cheguei a pesquisar mais o assunto. Vou até dar uma olhada porque essa questão de modificar a tela padrão pode ser útil.
Aqui eu já modifiquei a modal do cancelamento para dar uma mensagem mais clara de que ao cancelar uma solicitação é impossível reabrir e que seria necessário iniciar uma nova solicitação. Mas eu fiz isso simplesmente alterando o texto da modal original. Também já ocultei o botão Cancelar e o botão Transferir em algumas situações.
Porém tudo isso só porque utilizamos o fluig quase totalmente via Browser e assim é possível fazer alterações dos elementos após eles carregarem.
pode me passar o que você usou e como?
O que eu estou tentando fazer é isso aqui
parent.ECM_WKFView.cancel=function() {
if (this.isCancelable) {
FLUIGC.modal(
{
title : 'Cancelar Solicitação de virus',
content : Mustache.render($('#template-cancelm').html()),
id : 'workflowView-cancel-modal',
size : 'normal',
actions : [
{
label : 'Cancelar Solicitação',
bind : 'data-cancel-request'
},
{
label : 'Descartar',
autoClose : true
}
]
}
);
} else {
this.warn('Esta solicitação não pode ser cancelada!')
}
}
Isso ate funciona mas la no modal context ele perde a referencia do template e se eu ponho meu conteudo o botão cancelar para de funcionar
Aqui fizemos isso:
/**
* Modifica as opções de Cancelar a Solicitação
*/
function changeCancelMenu() {
// Quando está em atividade do Responsável que é Solicitante só melhora o alerta
parent.$("a[data-cancel-workflow-request]")
.css({"color": "#FFF", "backgroundColor": "#d9534f"})
.html("Cancelar a Contratação")
.on("click", function () {
setTimeout(function () {
const modal = parent.$("#workflowView-cancel-modal");
modal.find("h4").html("<b>Cancelar a Contratação - Ação Irreversível</b>");
modal.find(".btn-primary").removeClass("btn-primary").addClass("btn-danger").html("Cancelar a Contratação");
}, 400);
});
// Quando está em atividade do Responsável que é Solicitante remove a transferência
parent.$("a[data-transfer]").remove();
// Quando está em atividade que o Solicitante não é o responsável remove o botão de cancelar
parent.$("button[data-cancel-workflow-request]").remove()
}
$(function () {
changeCancelMenu();
});
2 curtidas
Valeu pela ajuda, não foi bem do jeito que achei que seria mas me ajudou muito.
1 curtida
Na época tivemos que arranjar uma solução rápida (pessoal estava cancelando a solicitação achando que estava cancelando o envio pra aprovação da gerência), então fizemos isso de alterar os elementos HTML.
Mas a sua ideia de alterar os componentes do Fluig é bem interessante. Quando eu estiver mais tranquilo vou até estudar um pouco mais os componentes. Mas acho que vou esperar chegar o 1.8, já que ele será responsivo e provavelmente vai mudar bastante coisa dos componentes.
Eu até consegui modificar a função mas dava erro nas referencias w tal nas chamadas dos templates padrões. e o botão de cancelar propriamente dito parava de funcionar um pouquinho mais de paciência e vamos mudar tudo no fluig.