Class: Tempo::Controllers::Start
- Defined in:
- lib/tempo/controllers/start_controller.rb
Class Method Summary collapse
Methods inherited from Base
filter_projects_by_title, fuzzy_match, reassemble_the
Class Method Details
.start_timer(options, args) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/tempo/controllers/start_controller.rb', line 11 def start_timer(, args) return Views.project_assistance if Model::Project.index.empty? if not [:at] start_time = Time.new().round() else start_time = Time.parse [:at] end return Views.no_match_error( "valid timeframe", [:at], false ) if start_time.nil? if start_time > Time.new().round() Views.warning("WARNING: logging time in the future may cause trouble maintaining running records") end opts = { start_time: start_time } opts[:description] = reassemble_the args if [:end] end_time = Time.parse [:end] return Views.no_match_error( "valid timeframe", [:end], false ) if end_time.nil? opts[:end_time] = end_time end load_records(start_time, ) # Restart the last time record if [:resume] last_record = @time_records.last_record return Views.error("cannot resume last time record when it is still running") if last_record.running? opts[:description] = last_record.description # we use the last used project, but don't save it as current # in case a different project has been checked out. @projects.current = @projects.find_by_id(last_record.project) record = @time_records.new(opts) # Add a new time record else record = @time_records.new(opts) end @time_records.save_to_file Views.start_time_record_view record end |