Novo git da alteração

This commit is contained in:
2026-03-01 17:27:48 -03:00
parent 8b7a079235
commit 9ec8d6e70b
366 changed files with 50299 additions and 27325 deletions
@@ -0,0 +1,19 @@
application.type=widget
application.code=consulta_solicitacoes
application.title=ConsultaSolicitacoes
application.description=Description: Widget para consultar solicitações de compras
application.fluig.version=null
application.category=DevGin
application.renderer=freemarker
developer.code=G-ALES1NT-TEC06
developer.name=andrey.cunha
developer.url=http://www.fluig.com
application.uiwidget=true
application.mobileapp=true
application.version=${build.version}-${build.revision}
view.file=view.ftl
edit.file=edit.ftl
locale.file.base.name=consulta_solicitacoes
application.resource.js.1=/resources/js/consulta_solicitacoes.js
application.resource.css.2=/resources/css/consulta_solicitacoes.css
hash=4a16315e9e66fa7d797b3f6b1fb365b69f9a4ce2
@@ -0,0 +1,49 @@
<div id="consultaSolicitacoes"
class="super-widget fluig-style-guide"
data-params="MyWidget.instance()">
<h3>Consultar Solicitações</h3>
<!-- Filtros -->
<div class="row">
<div class="col-sm-3">
<label>Nº da Solicitação</label>
<input type="text" id="numSolicitacao" class="form-control">
</div>
<div class="col-sm-3">
<label>Solicitante</label>
<input type="text" id="solicitante" class="form-control" placeholder="login do usuário">
</div>
<div class="col-sm-3">
<label>Status</label>
<select id="status" class="form-control">
<option value="">Todos</option>
<option value="0">Aberto</option>
<option value="1">Cancelado</option>
<option value="2">Finalizado</option>
</select>
</div>
<div class="col-sm-2">
<label>&nbsp;</label><br>
<button class="btn btn-primary" data-pesquisar="true">Pesquisar</button>
</div>
</div>
<br>
<!-- Resultados -->
<table class="table table-bordered">
<thead>
<tr>
<th>Nº Solicitação</th>
<th>Solicitante</th>
<th>Data</th>
<th>Status</th>
<th>Ações</th>
</tr>
</thead>
<tbody id="tbSolicitacoes">
<tr><td colspan="5" class="text-center">Nenhum resultado</td></tr>
</tbody>
</table>
</div>
@@ -0,0 +1,4 @@
<div id="MyWidget_${instanceId}" class="super-widget wcm-widget-class fluig-style-guide" data-params="MyWidget.instance()">
</div>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/consulta_solicitacoes</context-root>
<disable-cross-context>false</disable-cross-context>
</jboss-web>
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
@@ -0,0 +1 @@
/* Coloque aqui seu codigo CSS */
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

@@ -0,0 +1,106 @@
var MyWidget = SuperWidget.extend({
// variáveis globais se precisar
variavelNumerica: null,
variavelCaracter: null,
// quando a widget carrega
init: function() {
// já pode disparar consulta inicial se quiser
this.consultarSolicitacoes();
},
// binds de botões
bindings: {
local: {
'pesquisar': ['click_consultarSolicitacoes'] // data-pesquisar="true"
},
global: {}
},
// método que consulta o dataset
consultarSolicitacoes: function() {
var numSolicitacao = $("#numSolicitacao").val();
var solicitante = $("#solicitante").val();
var status = $("#status").val();
var constraints = [];
// filtra apenas o processo correto
constraints.push(DatasetFactory.createConstraint(
"processId",
"Solicitação de compras - v2", // ⚠️ deve ser idêntico ao dataset tester
"Solicitação de compras - v2",
ConstraintType.MUST
));
// filtro nº solicitação
if (numSolicitacao) {
constraints.push(DatasetFactory.createConstraint(
"workflowProcessPK.processInstanceId",
numSolicitacao,
numSolicitacao,
ConstraintType.MUST
));
}
// filtro solicitante
if (solicitante) {
constraints.push(DatasetFactory.createConstraint(
"requesterId",
solicitante,
solicitante,
ConstraintType.MUST
));
}
// filtro status
if (status !== "") {
constraints.push(DatasetFactory.createConstraint(
"status",
status,
status,
ConstraintType.MUST
));
}
// consulta dataset
var ds = DatasetFactory.getDataset("workflowProcess", null, constraints, null);
// monta tabela
var tbody = $("#tbSolicitacoes");
tbody.empty();
if (ds && ds.values && ds.values.length > 0) {
ds.values.forEach(function(item) {
var statusTxt = traduzStatus(item["status"]);
var tr = "<tr>";
tr += "<td>" + item["workflowProcessPK.processInstanceId"] + "</td>";
tr += "<td>" + item["requesterId"] + "</td>";
tr += "<td>" + item["startDateProcess"] + "</td>";
tr += "<td>" + statusTxt + "</td>";
tr += "<td><button class='btn btn-info btn-sm' onclick='abrirSolicitacao("
+ item["workflowProcessPK.processInstanceId"] + ")'>Abrir</button></td>";
tr += "</tr>";
tbody.append(tr);
});
} else {
tbody.append("<tr><td colspan='5' class='text-center'>Nenhum resultado encontrado</td></tr>");
}
}
});
// helpers fora do extend
function traduzStatus(status) {
if (status === "0") return "Aberto";
if (status === "1") return "Cancelado";
if (status === "2") return "Finalizado";
return status;
}
function abrirSolicitacao(processInstanceId) {
window.open('/portal/p/1/pageworkflowview?app_ecm_workflowview&processInstanceId=' + processInstanceId, '_blank');
}