Calendário somente leitura

Amigos,

Alguém sabe como fazer para o caledário ficar somente leitura, ou seja, desativar os recursos de arrastar e soltar?

Fiz um calendário para compartilhamentos de compromissos. No formulário eu dasabilitei os botões … O problema agora é que quando um usuário abre o calendário com os compromissos de outro usuário ele pode alterar com o arrastar e soltar.

Precisava de algo do tipo, e além de não deixar mover o registro pra outra data, também não permitir incluir registros pelo calendário
Alguém sabe se é possível?

Para não incluir basta que, no formulário de entrada do calendário vc desabilite o botão de incluir, ou se usar permissões, não dê permissão de incluir para usuários que não podem incluir.

Então Cleyton, nesse caso eu teria que fazer outro form idêntico porque esse mesmo form do calendário eu uso também em outro canal, e nesse outro canal sim é possível incluir.
Achei uma solução mais fácil: quando eu clico em uma data do calendário como fosse inserir, eu verifico no evento onload se existe “id”, se não houver dou um sc_exit();

Agora sobre bloquear o arrastar e soltar ainda não resolvi.
Sabes em que evento ocorre essa ação? Como posso dar um sc_alert quando ele fizer esse arrastar soltar? Daí pra frente poderia pensar em alguma solução…

valeu

Se alguém souber algum evento que aconteça no calendário…, porque os eventos parecem que só ocorrem quando eu entro no form

Por que, pelo que eu vi no código, acredito eu, o scriptcase usar o draggable do Jquery UI, então seria só criar uma funcão Jquery pra correr o DOM e dar um .draggable(“destroy”) em cada elemento, logo conseguiria matar o arrastar.

Só preciso saber como disparar um evento no calendário e não no form que ele carrega

valeu

Seria bom o pessoal da NM dar uma força!!!

Boa noite a todos.

A aplicação calendário é uma aplicação recente, e provavelmente irá receber melhorias.

Irei averiguar isso.

Blz Rafael,

Se colocar uma opção para desabilitar o arrastar e soltar já ajuda muito mesmo. Pois numa agenda compartilhada, não temos como “impedir” que um usuário modifique um evento de outro usuário “acidentalmente”.

Com certeza… se fosse desabilitado o arrastar e soltar assim como um “calendario somente leitura”, seria show… assim como a não permissão de inclusão. Mais como o Rafael disse, vamos torcer e aguardar melhorias no mesmo.

Realmente esse lance de não conseguir inibir a edição inviabiliza o uso do calendário, juntando com o fato que nos eventos todos os scripts de ajuda estão em vermelho, acredito que não funcionam nesta modalidade do projeto e tentei vários códigos e não funcionam para fazer um tratamento manual para esse problema.

nao foi feito nada ainda no caso da inibição do “arrastar” e “soltar” do calendario né ???

ninguem conseguiu algo, “por fora” da solução em “andamento” da NM ???

vlw

Por enquanto, estou usando aquela dica de criar dois usuários no Mysql, um com todos os direitos e o outro com apenas o privilégio de insert.
Uma conexão diferente para cada calendário.
Eu procurando uma outra alternativa, mas perdi algum tempo e ainda não encontrei.

A aplicação de calendário irá receber novas atualizações, inclusive a opção que desabilita mover registros para outras datas.

Atualmente, não existe uma forma de resolver a questão. Se desejarem criar algum código que simule essa funcionalidade, recomendo usar javascript.

Não possuo data para essa implementação.

Obrigado pela resposta Arteiro. Apesar de não ter data para implementação, sabemos que a NM está dando atenção para uma reivindicação da comunidade. Abs.

Estou postando parte de outro post que fiz em outro tópico. Espero que ajude!

ATENÇÃO: Estou modificando este post pois encontrei uma coisa interessante na net:
Este site tem o FullCalendar, que usa jQuery e é a base do calendário do ScriptCase: http://arshaw.com/fullcalendar/

Acontece que quem desenvolveu o FullCalendar aprimorou ele depois da NM ter utilizado e achei pelo menos 3 exemplos nesse site que valem a pena dar uma olhada:
1 - http://arshaw.com/js/fullcalendar-1.6.1/demos/json.html - neste quando faz-se o arrastar e soltar ele chama um evento alert javascript (pode ser usado para verificar permissão de gravação, por exemplo).

2 - http://arshaw.com/js/fullcalendar-1.6.1/demos/theme.html - este tem um design mais interessante, com cores mais vivas.

3 - http://arshaw.com/js/fullcalendar-1.6.1/demos/external-dragging.html - este adicionou a funcionalidade de arrastar eventos externos para dentro do calendário.

A versão que o SC usa desse calendário é a 1.4.4. A versão atual no site é a 1.6.1. Baixei a versão atual e substituí na pasta ‘_lib\prod\third\jquery_plugin\fullcalendar’ e os eventos de dezembro apareceram. Recomendo fazerem um backup dos arquivos originais do SC antes.

Nos exemplos que baixei inclusive tem um que é apenas para visualização. O html que chama as funções jQuery (gcal.html e default.html) seta uma variável ‘editable: false’. Bem que o SC poderia utilizar essa variável para adicionar a funcionalidade de permissão de gravação.

Se alguém conseguir algo, posta aqui pra galera!

Valeu!

Legal webermarques

Vou fazer essas alterações e testar pra ver como está. Novidades, postarei … Obrigado pela contribuição…

Pessoal, ainda não consegui desabilitar a função arrastar e soltar do calendário, mas aí vai o CSS que modifiquei para ficar mais “bonito” com a versão 1.5.2. As marcações que criei ou alterei estão com o comentário /* WEBER */ em cima.

http://www.mafra-alves.com.br/scj/sc/_lib/prod/third/jquery_plugin/fullcalendar/fullcalendar.css

RESOLVIDO

Pessoal, enquanto a NM não altera o SC colocando uma flag ou algo do tipo que nos permita criar agendas editáveis ou não, dependendo de variáveis que podem mudar em tempo de execução (nivel de acesso do usuário logado, por exemplo), consegui uma solução para o caso. O problema é que esta solução envolve alterar código fonte gerado pelo SC, ou seja, sempre que a aplicação for gerada novamente, as alterações terão que ser refeitas. Aí vão os passos a seguir:

1 - Para desabilitar o recurso arrastar e soltar:
1.1 - Abra no editor que achar melhor o arquivo que tem a terminação “_apl.php” dentro da pasta da sua aplicação de calendário. No meu caso: “calendario_agenda_apl.php”.
1.2 - Localize a ocorrência do texto “editable: true” no código fonte. Esta é a parte do código que contém a chamada jQuery para a agenda visual. Todos os parâmetros são passados aqui, inclusive se a agenda é editável ou não.
1.3 - Mude a propriedade para “editable: false”. Pronto! Sua agenda está com o recurso arrastar e soltar (inclusive redimensionar eventos) desabilitado.
1.4 - No meu caso, a agenda deve estar habilitada para determinados usuários e somente leitura para outros, portanto utilizei o seguinte trecho de código:

[code]<?php
if ($_SESSION[‘nivelAcesso’] == “Cliente” OR $_SESSION[‘nivelAcesso’] == “Secretário”)
{
?>
editable: false,

<?php } else { ?>

editable: true,

<?php } ?>

[/code]

2 - Para desabilitar os botões de inserir, atualizar e excluir do formulário da agenda:
2.1 - no evento onLoad da aplicação agenda no SC utilizei o seguinte código:

if ([nivelAcesso] == "Cliente" OR [nivelAcesso] == "Secretário") { sc_btn_display("delete", "off"); sc_btn_display("update", "off"); sc_btn_display("insert", "off"); }

Espero que aproveitem!

Para quem desejar somente desabilitar a opção de arrastar, o atributo é:

disableDragging : true

Wennys

Wennys, e onde coloca isto, pois do jeito que Weber falou eu ja tinha testado e funciona o problema é que tem que fazer toda vida depois de gerar a tela.