Estou projetando um aplicativo Web que inclui funcionalidade para indicar a disponibilidade de um funcionário para trabalhar. Esse é um conceito fácil para duas pessoas se comunicarem verbalmente: "Estou disponível às terças-feiras de segunda-feira o dia todo e às quartas-feiras após as 12:00". Mas é difícil para mim descobrir como traduzir isso em um formulário da web. As opções que eu acho que preciso ter são:
Alguém conhece algum bom exemplo disso ou tem alguma sugestão geral para implementar esse tipo de recurso?
Obrigado!
Eu sugeriria ter duas áreas separadas - uma onde o usuário faz entradas descrevendo sua disponibilidade e outra em que o sistema exibe o resultado agregado.
Essencialmente, isso replica a conversa que duas pessoas podem ter, fornecendo uma área para o usuário "falar" e outra para o sistema "refletir de volta" seu entendimento.
Forneça uma área em que os usuários descrevam sua disponibilidade.
Uma maneira de fazer isso seria permitir que eles fizessem uma série de declarações altamente estruturadas, mas em inglês.
Você pode permitir que os usuários os digitem diretamente ou forneça algum tipo de construtor simples.
Ao lado da entrada de dados, forneça um calendário mostrando como as instruções do usuário definem sua disponibilidade. Torne isso navegável, para que as pessoas possam olhar para o futuro (ou, talvez, o passado). Se o usuário parar em um intervalo de tempo específico, mostre uma dica de ferramenta que descreve por que eles estão (ou não) disponíveis no momento.
Se o usuário clicar em um intervalo de tempo, você pode destacar as regras que contribuem para a disponibilidade naquele momento.
Qualquer calendário compartilhável possui recursos como este (Outlook, Gmail, etc.) ... copie um.
você pode usar um calendário simples com código de cores.
- verde: disponível
- amarelo: parcialmente disponível
- azul: indisponível; (vermelho seria muito duro, eu acredito).
- em branco/transparente: sem informação.
Edit: Usando a navalha de Occam, depois dos pontos pensativos de peterchen abaixo:
o pensamento aqui é que usar apenas uma cor e variar a intensidade dela nos daria o máximo de informações com a menor quantidade de elementos. Isso seria mais fácil de digitalizar do que usar um esquema tradicional de 'semáforo'.
Para especificar o horário disponível, você pode usar controles deslizantes com dois indicadores, um para o horário de início e outro para o horário de término.
O formulário para especificar o horário de trabalho padrão pode mostrar uma semana de datas e um controle deslizante para cada data. Pode haver uma caixa de seleção para indicar se isso é recorrente (ou seja, semana padrão usual).
Com base nos cenários mencionados, você pode ter um formulário para eventos de exceção. Isso permitiria especificar eventos únicos (ou recorrentes) além da semana padrão. Por exemplo, precisa ter folga na quarta-feira à tarde ou no caso de alguém estar disponível na segunda segunda-feira de cada mês.
Eventos de exceção precisariam indicar o tempo disponível ou indisponível. Isso pode ser indicado por um botão de opção na parte superior do formulário e pelo código de cores do intervalo de tempo no controle deslizante.