Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding: utf-8
- # Encoding: utf-8
- # encode: UTF-8
- # -*- coding: UTF-8 -*-
- require 'sinatra'
- require 'erb'
- require 'sinatra/default_charset'
- require './helpers'
- Sinatra::Base.register Sinatra::DefaultCharset
- ERROR_MESSAGES = {
- :generic => "Oops. Noe gikk galt"
- }
- DAYS = %w{Man Tir Ons Tor Fre Lør Søn}
- configure :development do
- require './service'
- enable :sessions
- end
- configure :production do
- require './service'
- require 'rack/ssl'
- use Rack::SSL
- enable :sessions
- end
- configure :test do
- use Rack::Session::Cookie
- require 'date'
- require './mock_service'
- set :service, Service.new
- end
- configure do
- set :default_charset, 'utf-8'
- end
- helpers do
- include Helpers
- end
- before do
- halt erb(:login) unless session[:logged_in] || test? || request.path_info == "/login"
- end
- get '/week/:week_number' do
- week(params[:week_number])
- @available_projects = service_call(:projects).collect{ |p|
- {:code => p["Code"], :name => p["Name"]}
- }
- erb :week
- end
- get '/hour_entries/:date/new' do
- @hours = ""
- @code = ""
- @date = params[:date]
- @projects = service_call(:projects).collect{ |p|
- {:code => p["Code"], :name => p["Name"]}
- }
- erb :edit
- end
- post '/hour_entries/create/:date' do
- service_call(:post_project, params[:date], params[:code], params[:hours])
- redirect to("/week/#{session[:week]}")
- end
- get '/hour_entry/delete/:date/:code' do
- service_call(:post_project, params[:date], params[:code], "0")
- redirect to("/week/#{session[:week]}")
- end
- get '/hour_entries/:date/lock' do
- service_call(:lock_hours, params[:date])
- redirect to("/week/#{session[:week]}")
- end
- get '/' do
- week = Date.today.cweek
- session[:week] ||= Date.today.cweek
- puts "session week is #{session[:week]}"
- if session[:logged_in]
- redirect to("/week/#{session[:week]}")
- else
- redirect to("/login")
- end
- end
- get '/login' do
- erb :login
- end
- post '/login' do
- auth = {:username => params[:username], :password => params[:password]}
- session[:auth] = auth
- if service_call(:login_ok?)
- session[:logged_in] = true
- session[:week] ||= Date.today.cweek
- redirect to("/week/#{session[:week]}")
- else
- @notice = "Ugyldig brukernavn eller passord"
- halt erb(:login)
- end
- end
Add Comment
Please, Sign In to add comment