Busca

Acompanhe

RSS

Wiki UI Services #249

NodeModal

João Borsoi, #249, novembro 2016

Palavras-chave: modal

Descrição

Este serviço consiste numa função que abre um modal na aplicação, contendo o formulário para cadastro ou edição de uma pasta ou documento da biblioteca do avalanche.

Os campos do formulário em caso de uma pasta são sempre os mesmos. Os campos do formulário de um documento está associado ao tipo do documento, identficado pela pasta na qual ele se encontra ou onde será criado.

Opções

parâmetro tipo obrigatório padrão descrição
docId inteiro não   docId do documento para ser recuperado
folderId inteiro não   folderId da pasta para ser recuperada
path texto não / Caminho da pasta onde se deseja recuperar o formulário para cadastro de uma nova pasta ou documento. Deve ser usado quando não se utiliza os parâmetros docId e folderId
folder booleano não falso Indica quando deve-se recuperar o formulário de uma nova pasta. Se for falso será recuperado o formulário de um novo documento. Deve ser usado em conjunto com o parãmetro path, quando não se utiliza os parâmetros docId e folderId
title texto sim   Texto de título do modal
excludeFields array não   Array contendo nome de campos a serem excluídos do formulário
extraFields objeto não
Objeto com campos adicionais com respectivos valores para serem enviados quando o formulário for salvo.
nodeService objeto não Documents ou Folders Indica referência ao serviço do tipo $resource que deve ser usado pelo modal para realizar as operações CRUD.
docLinks booleano não falso Indica quando a leitura de um documento da biblioteca deve retornar sua lista de links (array contendo nome das pastas onde o documento se encontra na biblioteca)
extraParams objeto não   Parâmetros adicionais para serem passados quando o formulário for salvo (ação save do $resource utilizado)
node objeto não   Dados do documento ou pasta para ser exibido no modal. Neste caso os dados não serão recuperados pelo serviço $resource.
formTemplate texto não avForm.html Nome do template a ser utilizado pelo formulário
contentTemplate texto não avNodeModal.html Nome do template a ser utilizado pelo modal
buttons objeto não {history:true, remove:true, ok: true} Objeto indicando quando cada botão do modal deverá ser exibido
labels objeto não recupera labels de acordo com a língua do backend Labels para serem usados no formulário (ex: adminCancelTag).
taToolbar array não   Indica lista de botões a serem exibidos em campos do tipo avHtmlArea que utilizam o compontente textAngular. Se não estiver definido procura por definições do avalancheConfig
modalSize texto não   Opções para o tamanho do modal: sm, lg ou xlg
onOpen função     Evento disparado ao abrir o modal

Sintaxe: function(scope)
onBeforeSave função     Evento disparado antes de iniciar salvamento do documento ou pasta

Sintaxe: function() 
onSave função     Evento disparado quando o documento ou pasta são salvos

Sintaxe: function(node)
onSaveError função     Evento disparado caso haja algum erro ao salvar um documento ou pasta, quando o modal é exibido novamente.

Sintaxe: function() 
onBeforeDelete função     Evento disparado antes de remover o documento ou pasta. Deve retornar as informações para desfazer operação caso o usuário opte por cancelar a remoção.

Sintaxe: function()
onUndoUndelete função     Evento disparado caso o usuário cancele a operação de remover. O parâmetro undoData indica as informações para desfazer a remoção, retornadas pela função onBeforeDelete

Sintaxe: function(undoData)
onDelete função     Evento disparado quando o documento ou pasta é removido

Sintaxe: function()

Exemplo

$scope.openDoc = function(path, item) {
var params = {
   title: 'Documento',
   path: path,
   buttons: { history: false, remove: true },
   excludeFields:  ['userId','groupId','userRight','groupRight',
    'otherRight','creationDate','lastChanged',
    'lastChangedUserId','keywords','contentType',
    'authors','descr','publicationDate',
    'pendingApproval'],
   taToolbar: [['bold', 'italics', 'underline', 'undo', 'redo', 'clear'],
['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],
['insertImage','insertLink','insertVideo']],
   onSave: function(node) {
$scope.itens[$scope.itens.indexOf(item)] = node.attrs;
   },
   onBeforeDelete: function() {
return $scope.itens.splice($scope.itens.indexOf(item),1);
   },
   onUndoDelete: function(undoData) {
$scope.itens.push(undoData[0]);
   }
}
if(item) {
   params.docId = item.docId;
}
NodeModal(params);
}

Imprimir

Comentários

Adicionar Comentário