Autor Tópico: Calendário somente leitura  (Lida 9838 vezes)

Eduardo Alves

  • Avançado
  • ****
  • Mensagens: 262
    • SLords Informatica
    • Email
Re:Calendário somente leitura
« Responder #15 Online: Dezembro 16, 2011, 07:44:13 am »
Legal webermarques

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

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.5.2/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.5.2/demos/theme.html - este tem um design mais interessante, com cores mais vivas.

3 - http://arshaw.com/js/fullcalendar-1.5.2/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.5.2. 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!
Eduardo Alves
Gestor de TI e Segurança de Dados
Tel: (11) 8400-0224 (TIM) – Nextel: Id: 5 * 4522
email: analista@slords.com.br skype: analista.slords
www.slords.com.br

Weber Martins Marques

  • Novato
  • *
  • Mensagens: 17
  • Pra quem gosta de ruim, está ótimo!
    • Email
Re:Calendário somente leitura
« Responder #16 Online: Dezembro 17, 2011, 04:53:41 pm »
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
Weber Martins Marques
Chefe da Divisão de TI
Departamento de Planejamento Educacional
Secretaria Municipal de Educação
Prefeitura Municipal de Mogi das Cruzes - SP

Weber Martins Marques

  • Novato
  • *
  • Mensagens: 17
  • Pra quem gosta de ruim, está ótimo!
    • Email
Re:Calendário somente leitura
« Responder #17 Online: Dezembro 18, 2011, 07:18:06 pm »
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:

Código: [Selecionar]
<?php
if ($_SESSION['nivelAcesso'] == "Cliente" OR $_SESSION['nivelAcesso'] == "Secretário")
{
?>

editable: false,
<?php
} else
{
?>

editable: true,
<?php
}
?>


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:

Código: [Selecionar]
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!
Weber Martins Marques
Chefe da Divisão de TI
Departamento de Planejamento Educacional
Secretaria Municipal de Educação
Prefeitura Municipal de Mogi das Cruzes - SP

Wennys Carlos

  • Avançado
  • ****
  • Mensagens: 254
    • Email
Re:Calendário somente leitura
« Responder #18 Online: Dezembro 04, 2013, 09:03:57 pm »
Para quem desejar somente desabilitar a opção de arrastar, o atributo é:

disableDragging : true


Wennys
Wennys Carlos

paulomarcelo

  • Expert
  • *****
  • Mensagens: 638
    • Email
Re:Calendário somente leitura
« Responder #19 Online: Dezembro 04, 2013, 09:08:09 pm »
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.

Wennys Carlos

  • Avançado
  • ****
  • Mensagens: 254
    • Email
Re:Calendário somente leitura
« Responder #20 Online: Dezembro 04, 2013, 09:25:38 pm »
Olá, Paulo.

Diante das limitações do Calendário no SC, prefiro utilizá-lo 'por fora' do SC.

Ele é o plugin Jquery FullCalendar. É bem flexível, dá pra personalizar tudo: cores, eventos, botões etc.

No SC, esse código que citei acima só dá mesmo pra colocar editando o código gerado, infelizmente.

Wennys
Wennys Carlos

paulomarcelo

  • Expert
  • *****
  • Mensagens: 638
    • Email
Re:Calendário somente leitura
« Responder #21 Online: Dezembro 04, 2013, 09:40:39 pm »
Mas como vc interage com o plugin e o scriptcase e banco de dados?

Wennys Carlos

  • Avançado
  • ****
  • Mensagens: 254
    • Email
Re:Calendário somente leitura
« Responder #22 Online: Dezembro 04, 2013, 09:45:07 pm »
Vou preparar um exemplo para mostrar.

Wennys Carlos

paulomarcelo

  • Expert
  • *****
  • Mensagens: 638
    • Email
Re:Calendário somente leitura
« Responder #23 Online: Dezembro 04, 2013, 09:53:13 pm »
Muito obrigado Wennys fico no aguardo do seu exemplo.

Celso R.

  • Expert
  • *****
  • Mensagens: 941
Re:Calendário somente leitura
« Responder #24 Online: Dezembro 05, 2013, 09:09:29 pm »
Wennys Carlos.

Obrigado por ajudar. Ficou muito bom seu trabalho. Parabéns.
Celso R.
________________________________
SC - V 8

Wennys Carlos

  • Avançado
  • ****
  • Mensagens: 254
    • Email
Re:Calendário somente leitura
« Responder #25 Online: Dezembro 12, 2013, 12:32:05 am »
Prezado Paulo e demais,

Conforme prometido, segue um exemplo de uso do fullcalendar:

http://www.scriptcase.com.br/forum/index.php/topic,8031.msg39011.html#msg39011

Amanhã publicarei mais detalhes.



Wennys Carlos
Wennys Carlos

andreluiz

  • Iniciante
  • **
  • Mensagens: 52
    • André Luiz Web
Re:Calendário somente leitura
« Responder #26 Online: Junho 10, 2015, 09:02:39 am »
nada nem aparece e ja ta na versão 2.1 .

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Calendário somente leitura
« Responder #27 Online: Junho 10, 2015, 01:28:35 pm »
Boa tarde, não sei se ainda precisam desabilitar, mas segue como fazer: (calendário padrão do SC)

1) É só remover o botão de "Update" da aplicação
2) Utilizar a macro sc_apl_conf, para desabilitar o botão de update do calendário.

Ex. Não permite que a aplicação "meu_formulario" faça alteração de novos registros.
sc_apl_conf("meu_calendario", "update", "off");

OBS: Isso é um controle para deixar os usuários apenas com privilegio de visualização dos eventos do calendário, não permitindo fazer qualquer alteração.