Guest User

Untitled

a guest
Jan 25th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. # coding: utf-8
  2. # Encoding: utf-8
  3. # encode: UTF-8
  4. # -*- coding: UTF-8 -*-
  5. require 'sinatra'
  6. require 'erb'
  7. require 'sinatra/default_charset'
  8. require './helpers'
  9. Sinatra::Base.register Sinatra::DefaultCharset
  10.  
  11. ERROR_MESSAGES = {
  12. :generic => "Oops. Noe gikk galt"
  13. }
  14. DAYS = %w{Man Tir Ons Tor Fre Lør Søn}
  15.  
  16. configure :development do
  17. require './service'
  18. enable :sessions
  19. end
  20.  
  21. configure :production do
  22. require './service'
  23. require 'rack/ssl'
  24. use Rack::SSL
  25. enable :sessions
  26. end
  27.  
  28. configure :test do
  29. use Rack::Session::Cookie
  30. require 'date'
  31. require './mock_service'
  32. set :service, Service.new
  33. end
  34.  
  35. configure do
  36. set :default_charset, 'utf-8'
  37. end
  38.  
  39. helpers do
  40. include Helpers
  41. end
  42.  
  43. before do
  44. halt erb(:login) unless session[:logged_in] || test? || request.path_info == "/login"
  45. end
  46.  
  47. get '/week/:week_number' do
  48. week(params[:week_number])
  49. @available_projects = service_call(:projects).collect{ |p|
  50. {:code => p["Code"], :name => p["Name"]}
  51. }
  52. erb :week
  53. end
  54.  
  55. get '/hour_entries/:date/new' do
  56. @hours = ""
  57. @code = ""
  58. @date = params[:date]
  59. @projects = service_call(:projects).collect{ |p|
  60. {:code => p["Code"], :name => p["Name"]}
  61. }
  62. erb :edit
  63. end
  64.  
  65. post '/hour_entries/create/:date' do
  66. service_call(:post_project, params[:date], params[:code], params[:hours])
  67. redirect to("/week/#{session[:week]}")
  68. end
  69.  
  70. get '/hour_entry/delete/:date/:code' do
  71. service_call(:post_project, params[:date], params[:code], "0")
  72. redirect to("/week/#{session[:week]}")
  73. end
  74.  
  75. get '/hour_entries/:date/lock' do
  76. service_call(:lock_hours, params[:date])
  77. redirect to("/week/#{session[:week]}")
  78. end
  79.  
  80. get '/' do
  81. week = Date.today.cweek
  82. session[:week] ||= Date.today.cweek
  83. puts "session week is #{session[:week]}"
  84. if session[:logged_in]
  85. redirect to("/week/#{session[:week]}")
  86. else
  87. redirect to("/login")
  88. end
  89. end
  90.  
  91. get '/login' do
  92. erb :login
  93. end
  94.  
  95. post '/login' do
  96. auth = {:username => params[:username], :password => params[:password]}
  97. session[:auth] = auth
  98. if service_call(:login_ok?)
  99. session[:logged_in] = true
  100. session[:week] ||= Date.today.cweek
  101. redirect to("/week/#{session[:week]}")
  102. else
  103. @notice = "Ugyldig brukernavn eller passord"
  104. halt erb(:login)
  105. end
  106. end
Add Comment
Please, Sign In to add comment