From 4b9f0169bc4caba35e9d390709b437d681ac0892 Mon Sep 17 00:00:00 2001 From: Edwin Perez Date: Sat, 19 Oct 2013 15:43:53 -0400 Subject: [PATCH] Added units to the user time input on the log --- app/components/user_logs_add_item.rb | 6 ++- .../javascripts/init_component.js | 47 +++++++++++++++---- 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/app/components/user_logs_add_item.rb b/app/components/user_logs_add_item.rb index 2823df7..d357af9 100644 --- a/app/components/user_logs_add_item.rb +++ b/app/components/user_logs_add_item.rb @@ -11,12 +11,14 @@ class UserLogsAddItem < Netzke::Basepack::Form c.items = [ { :no_binding => true, :xtype => 'displayfield', :fieldLabel => "Log for:", :value => "#{current_user.to_s}"}, { :id => :user_logs_add_form_start, :name => :start_date}, - { :id => :user_logs_add_form_hours, :no_binding => true, :name => :hours, :xtype => 'field', :fieldLabel => "Hours:", :value => 0 }, + { :id => :user_logs_add_form_time, :no_binding => true, :name => :time, :xtype => 'field', :fieldLabel => "Time:", :value => 0 }, + { :id => :user_logs_add_form_units, :xtype => 'combo', :no_binding => true, :name => :units, :fieldLabel => 'Units', :store => ['Mins', 'Hrs'], :value => 'Mins' }, { :id => :user_logs_add_form_end, :name => :end_date, :hidden => true }, { :name => :description}, #had to hack acts_as_loggable/log.rb to get this to work { :name => :user_action__action, :field_label => 'Action'}, - { :name => :for_bike, :checkboxName => :copy_log, :inputValue => true, :title => "Copy description to a Bike's History?", :xtype => 'fieldset', :checkboxToggle => true, :collapsed => true, :items => [ + { :name => :for_bike, :checkboxName => :copy_log, :inputValue => true, + :title => "Copy description to a Bike's History?", :xtype => 'fieldset', :checkboxToggle => true, :collapsed => true, :items => [ {:xtype => 'combo', :no_binding => true, :name => :copy_id, :title => 'Bike', :fieldLabel => 'Bike', :store => bike_store, :value => bike_id} ] } diff --git a/app/components/user_logs_add_item/javascripts/init_component.js b/app/components/user_logs_add_item/javascripts/init_component.js index 461441f..4299ad2 100644 --- a/app/components/user_logs_add_item/javascripts/init_component.js +++ b/app/components/user_logs_add_item/javascripts/init_component.js @@ -6,7 +6,8 @@ var panel = this; var theForm = this.getForm(); var startInput = Ext.getCmp('user_logs_add_form_start'); - var hoursInput = Ext.getCmp('user_logs_add_form_hours'); + var timeInput = Ext.getCmp('user_logs_add_form_time'); + var unitsInput = Ext.getCmp('user_logs_add_form_units'); var endInput = Ext.getCmp('user_logs_add_form_end'); var startdate = startInput.items.items[0]; var starttime = startInput.items.items[1]; @@ -14,27 +15,57 @@ var endtime = endInput.items.items[1]; startdate.on('change', function(e){ - var hours = hoursInput.getValue(); + var hours = timeInput.getValue(); var startTime = starttime.getValue(); - var calculatedEndTime = Ext.Date.add(new Date(startTime), Ext.Date.HOUR, parseInt(hours)); + + if('Mins' === unitsInput.getValue()){ + var calculatedEndTime = Ext.Date.add(new Date(startTime), Ext.Date.MINUTE, parseInt(hours)); + }else{ + var calculatedEndTime = Ext.Date.add(new Date(startTime), Ext.Date.HOUR, parseInt(hours)); + } endtime.setValue(calculatedEndTime); enddate.setValue(calculatedEndTime); }); starttime.on('change', function(e){ - var hours = hoursInput.getValue(); + var hours = timeInput.getValue(); var startTime = starttime.getValue(); - var calculatedEndTime = Ext.Date.add(new Date(startTime), Ext.Date.HOUR, parseInt(hours)); + + if('Mins' === unitsInput.getValue()){ + var calculatedEndTime = Ext.Date.add(new Date(startTime), Ext.Date.MINUTE, parseInt(hours)); + }else{ + var calculatedEndTime = Ext.Date.add(new Date(startTime), Ext.Date.HOUR, parseInt(hours)); + } + endtime.setValue(calculatedEndTime); enddate.setValue(calculatedEndTime); }); - hoursInput.on('change', function(e){ - var hours = hoursInput.getValue(); + timeInput.on('change', function(e){ + var hours = timeInput.getValue(); var startTime = starttime.getValue(); - var calculatedEndTime = Ext.Date.add(new Date(startTime), Ext.Date.HOUR, parseInt(hours)); + + if('Mins' === unitsInput.getValue()){ + var calculatedEndTime = Ext.Date.add(new Date(startTime), Ext.Date.MINUTE, parseInt(hours)); + }else{ + var calculatedEndTime = Ext.Date.add(new Date(startTime), Ext.Date.HOUR, parseInt(hours)); + } + + endtime.setValue(calculatedEndTime); + enddate.setValue(calculatedEndTime); + }); + + unitsInput.on('change', function(e){ + var hours = timeInput.getValue(); + var startTime = starttime.getValue(); + + if('Mins' === unitsInput.getValue()){ + var calculatedEndTime = Ext.Date.add(new Date(startTime), Ext.Date.MINUTE, parseInt(hours)); + }else{ + var calculatedEndTime = Ext.Date.add(new Date(startTime), Ext.Date.HOUR, parseInt(hours)); + } endtime.setValue(calculatedEndTime); enddate.setValue(calculatedEndTime);