Removendo um Documento | Início Anterior Próximo

Removendo em Documento

A próxima página que criaremos será responsável pela exclusão das informações dos documentos do índice e do arquivo a depender da escolha feita pelo usuário. Para criarmos a página de exclusão de documentos vamos exibir um grid Java com as informações dos documentos que estão disponíveis no índice onde o usuário pode escolher através de check-boxes quais documentos a serem excluídos. Para criação desse grid faça os passos semelhantes à criação do grid resultadoPesquisa nomeando-o como removerDoc, como modelo do grid use o código HTML que segue abaixo.

<table border="1" cellspacing="0" cellpadding="3" width="100%"> <tr> <th bgcolor="#c0c0c0">Excluir</th> <th bgcolor="#c0c0c0">Título do documento</th> <th bgcolor="#c0c0c0">Arquivo</th> <th bgcolor="#c0c0c0">Data</th> </tr> <tr> <td> <input type="checkbox" name="id|id|" value="|iddoc|"> <input type="hidden" name="file|id|" value="|name|" </td> <td>|title|</td> <td><a href="visualizar.wsp?tmp.arquivo=|name|">|name|</a></td> <td>|dia|/|mes|/|ano|</td> </tr> <tr> <td colspan="4" align="center">Nenhum documento encontrado!</td> </tr> <tr> <td colspan="4" align="center"><INPUT TYPE="submit" VALUE="Excluir" NAME="tmp.excluir"></td> </tr> </table>

O código do modelo do grid listado acima é bem semelhante ao do grid resultadoPesquisa com alguns detalhes como a criação dos check-boxes e o uso das variáveis id e iddoc. A variável id representa o sequencial gerado pelo grid, enquanto a variável iddoc indica o sequencial único de um documento do índice. Os valores dessas variáveis serão úteis quando formos informar quais documentos queremos que sejam excluídos. Os campos HIDDEN contém o nome do arquivo respectivo ao seu iddoc.
A página que irá excluir os documentos do índice que foram escolhidos pelo usuário além do grid Java definido acima também fará referência à classe br.com.itx.modules.search.WIRemover através de um conector Java, essa é a classe responsável pela remoção dos documentos do índice e ao elemento Remover Arquivo que irá excluir fisicamente os arquivos do diretório de publicação.
Lembre-se que para a montagem do grid removerDoc, no pré-página da página que irá fazer a remoção de documentos deve ser colocado um elemento grid Java fazendo referência à classe br.com.itx.modules.search.SearchGrid com a seguinte configuração:

Campo | Valor
Condição | true

Nome da classe
br.com.itx.modules.search.SearchGrid
Grid
removerDoc
No pós-página, através de um conector Java, faça referência à classe br.com.itx.modules.search.WIRemover. Para que essa classe saiba quais são os documentos a serem removidos do índice as variáveis tmp.idList e tmp.indexName tem que estar configuradas respectivamente com uma lista dos iddocs dos documentos a serem removidos separados por vírgula e o nome do índice que terá excluídos seus documentos. A configuração do pós-página ficaria assim:

Campo | Valor
Condição | |tmp.excluir| = excluir && |tmp.idList| !=

Nome da classe
br.com.itx.modules.search.WIRemover
Para finalizar a configuração do pós-página adicione o elemento Remover Arquivo que será responsável pela exclusão física dos arquivos selecionados. A configuração ficaria assim:

Campo | Valor
Condição | |tmp.excluir| = excluir && |tmp.fileList| !=
Máscara | |tmp.fileList|
Diretório | |wi.proj.path|/documentos

Para finalizar a construção da página de remoção de documentos do índice logo abaixo segue uma sugestão do código-fonte. Perceba que através do formulário HTML da página estão sendo passadas tanto a variável tmp.indexName com o nome do índice e a variável tmp.idList com a lista de iddods dos documentos a serem excluídos que é montada através de uma rotina JavaScript (doList()).
<HTML><HEAD>
<TITLE>Remoção de documentos</TITLE>
<META HTTP-EQUIV=pragma CONTENT=no-cache>
<META HTTP-EQUIV=expires CONTENT=0>
<SCRIPT>
/**
* Monta a lista com o(s) IDDoc(s) do(s) documento(s) separados
* por virgula que serao removidos do indice.
*/
function doList() {
// variavel q contera a lista de IDDocs dos documentos a serem removidos
idList = "";
// variavel q contera a lista dos nomes de arquivos a serem removidos
fileList = "";
limit = 0;
if ("|tmp.search.count|" != "") {
limit = |tmp.search.count|;
}
frm = document.forms[0];
for (i = 0; i < limit; i++) {
id = "id" + i;
file = "file" + i;
if (frm.elements[id].checked) {
idList += frm.elements[id].value + ",";
fileList += frm.elements[file].value + ",";
}
}
idList = idList.slice(0, idList.length - 1);
fileList = fileList.slice(0, fileList.length - 1);
frm.elements["tmp.idList"].value = idList;
frm.elements["tmp.fileList"].value = fileList;
return (list != "");
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#ffffff">
<FORM ACTION="|wi.page.name|.wsp" METHOD="post" ONSUBMIT="doList()">
<!--- garante a execução do pós-página que fará a exclusão dos documentos -->
<INPUT TYPE="hidden" NAME="wi.page.prev" VALUE="|wi.page.id|">
<!--- nome do índice donde serão removidos os documentos -->
<INPUT TYPE="hidden" NAME="tmp.indexName" VALUE="modelo">
<!--- lista de IDDocs dos documentos a serem excluídos -->
<INPUT TYPE="hidden" NAME="tmp.idList" VALUE="">
<!--- lista de nome dos arquivos a serem excluídos -->
<INPUT TYPE="hidden" NAME="tmp.fileList" VALUE="">
<INPUT TYPE="text" NAME="tmp.search.query" VALUE="|tmp.search.query|">
<INPUT TYPE="button" VALUE="Pesquisar" onClick="javascript:submit()">
<!--- listagem dos documentos disponíveis no índice de acordo com
a query que foi digitada -->
|grid.removerDoc|
</FORM>
</BODY>
</HTML>