Removendo um Documento
Início  Anterior  Próximo

minilogowi


seta 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>