Skip to content

Instantly share code, notes, and snippets.

@ddsilva
Created December 10, 2013 12:06
Show Gist options
  • Save ddsilva/7889617 to your computer and use it in GitHub Desktop.
Save ddsilva/7889617 to your computer and use it in GitHub Desktop.
SIPLAN - main.coffee
define [
'core'
'layout/layout'
], () ->
'use strict'
Core = require 'core'
Session = require 'core/session'
Layout = require 'layout/layout'
class App extends Core.SescApplication
initialize: ->
super
@aplicationCustomization()
aplicationCustomization: ->
Session.serviceUrl = 'api'
# Configura o jQuery Validate para não ignorar nenhum tipo de campo nas validações
$.validator.setDefaults ignore: ''
Core.Feedback.defaults.timeout = 2000
# Personalização da mensagem de erro de data
$.extend $.validator.messages,
time: 'Insira uma data válida, entre 00:00 e 23:59'
# Bloqueio do scrool do body quando houver uma modal aberta
if $.fn.livequery
$('.modal').livequery ->
$(this).on 'show' , -> $('body').css 'overflow-y' : 'hidden'
$(this).on 'hide' , -> $('body').css 'overflow-y' : 'auto'
# O método routes deve ser extendido para que o usuário descreva todas
# as rotas necessárias para descrever os wireframes da aplicação.
routes: (match) ->
# Programação
match '', 'site#index'
# Agenda
match '!/agenda' , 'agenda#index'
match '!/agenda/busca' , 'agenda#busca'
# Programação
match '!/programacao/create' , 'programacao#create'
match '!/programacao/visualizar' , 'programacao#visualizar'
match '!/programacao/:id' , 'programacao#edit'
# Checklist
match '!/checklist', 'checklist#index'
# Aprovacao
match '!/aprovacao', 'aprovacao#index'
# Cadastros
match '!/cadastro/itens' , 'itens#index'
match '!/cadastro/itens/create' , 'itens#create'
match '!/cadastro/itens/:id' , 'itens#edit',
contains: {'id': '/.+$'}
match '!/cadastro/setor' , 'setor#index'
match '!/cadastro/setor/create' , 'setor#create'
match '!/cadastro/setor/:id' , 'setor#edit',
contains: {'id': '/.+$'}
match '!/cadastro/local' , 'local#index'
match '!/cadastro/local/create' , 'local#create'
match '!/cadastro/local/:id' , 'local#edit',
contains: {'id': '/.+$'}
match '!/cadastro/projeto' , 'projeto#index'
match '!/cadastro/projeto/create' , 'projeto#create'
match '!/cadastro/projeto/:id' , 'projeto#edit',
contains: {'id': '/.+$'}
match '!/cadastro/funcaocontato' , 'funcaocontato#index'
match '!/cadastro/funcaocontato/create' , 'funcaocontato#create'
match '!/cadastro/funcaocontato/:id' , 'funcaocontato#edit',
contains: {'id': '/.+$'}
match '!/cadastro/tipoinscricao' , 'tipoinscricao#index'
match '!/cadastro/tipoinscricao/create' , 'tipoinscricao#create'
match '!/cadastro/tipoinscricao/:id' , 'tipoinscricao#edit',
contains: {'id': '/.+$'}
return @
# Inicializa o layout principal da aplicação.
initLayout: ->
# O layout contêm a estrutura base para a aplicação
@layout = new Layout()
@layout.title = @title
getUserOperation: ->
return $.ajax
url: 'api/usuario/logado'
# Nesse método temos a oportunidade de efetuar um mock do usuário e das suas
# permissões.
#
# Esse método é chamado pela aplicação logo após o processo de request/response do serviço
# que retorna a 'Promise' com os dados do usuário.
#
# [Atenção] É importante que esse tipo de informação seja utilizada
# apenas durante o desenvolvimento da aplicação. Nunca envie um código
# para produção com o código abaixo pois você estará sobreescrevendo as permissões reais do
# usuário logado e fatalmente interferindo no funcionamento geral da aplicação.
getUserObject: (userData) ->
user = new Core.WebUser
user.authenticate userData
return user
# Aqui instanciamos a aplicação e guardamos uma referência da mesma no window.application
# Toda aplicação deve ser instânciada com o seu ID e nome.
appId = 1
window.application = new App(appId, 'SIPLAN')
# Retornamos a classe para utilizar esse arquivo numa fase de teste unitário
App
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment