Moved to new business_hours format.
This commit is contained in:
parent
50546fa2d4
commit
a77b3f77fe
6 changed files with 281 additions and 76 deletions
|
@ -35,6 +35,16 @@ class Index extends App.ControllerContent
|
||||||
)
|
)
|
||||||
for calendar in calendars
|
for calendar in calendars
|
||||||
|
|
||||||
|
# validate config
|
||||||
|
for day in ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']
|
||||||
|
if !calendar.business_hours[day]
|
||||||
|
calendar.business_hours[day] = {}
|
||||||
|
for day, meta of calendar.business_hours
|
||||||
|
if !meta.active
|
||||||
|
meta.active = false
|
||||||
|
if !meta.timeframes
|
||||||
|
meta.timeframes = []
|
||||||
|
|
||||||
# get preview public holidays
|
# get preview public holidays
|
||||||
public_holidays_preview = {}
|
public_holidays_preview = {}
|
||||||
if calendar.public_holidays
|
if calendar.public_holidays
|
||||||
|
|
|
@ -20,6 +20,16 @@ class App.BusinessHours extends Spine.Controller
|
||||||
sat: App.i18n.translateInline('Saturday')
|
sat: App.i18n.translateInline('Saturday')
|
||||||
sun: App.i18n.translateInline('Sunday')
|
sun: App.i18n.translateInline('Sunday')
|
||||||
|
|
||||||
|
# validate config
|
||||||
|
for day of @days
|
||||||
|
if !@hours[day]
|
||||||
|
@hours[day] = {}
|
||||||
|
for day, meta of @hours
|
||||||
|
if !meta.active
|
||||||
|
meta.active = false
|
||||||
|
if !meta.timeframes
|
||||||
|
meta.timeframes = []
|
||||||
|
|
||||||
render: =>
|
render: =>
|
||||||
@updateMaxTimeframes()
|
@updateMaxTimeframes()
|
||||||
|
|
||||||
|
@ -73,7 +83,6 @@ class App.BusinessHours extends Spine.Controller
|
||||||
validate: =>
|
validate: =>
|
||||||
for day, hours of @options.hours
|
for day, hours of @options.hours
|
||||||
break if !hours.active
|
break if !hours.active
|
||||||
break if !hours.timeframes
|
|
||||||
|
|
||||||
# edge case: full day
|
# edge case: full day
|
||||||
if hours.timeframes[0][0] is '00:00' and hours.timeframes[hours.timeframes.length - 1][1] is '00:00'
|
if hours.timeframes[0][0] is '00:00' and hours.timeframes[hours.timeframes.length - 1][1] is '00:00'
|
||||||
|
|
|
@ -28,25 +28,25 @@
|
||||||
<div class="label"><%- @T('Business Hours') %></div>
|
<div class="label"><%- @T('Business Hours') %></div>
|
||||||
<table class="table table-fluid">
|
<table class="table table-fluid">
|
||||||
<tr>
|
<tr>
|
||||||
<td><%- @T('Monday') %></td><td><% if _.isEmpty(calendar.business_hours['mon']): %>-<% else: %><% for from, till of calendar.business_hours['mon']: %><%= from %>-<%= till %> </td><td><% end %><% end %></td>
|
<td><%- @T('Monday') %></td><td><% if !calendar.business_hours['mon'].active || _.isEmpty(calendar.business_hours['mon'].timeframes): %>-<% else: %><% for frame in calendar.business_hours['mon'].timeframes: %><%= frame[0] %>-<%= frame[1] %> </td><td><% end %><% end %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%- @T('Tuesday') %></td><td><% if _.isEmpty(calendar.business_hours['tue']): %>-<% else: %><% for from, till of calendar.business_hours['tue']: %><%= from %>-<%= till %> </td><td><% end %><% end %></td>
|
<td><%- @T('Tuesday') %></td><td><% if !calendar.business_hours['tue'].active || _.isEmpty(calendar.business_hours['tue'].timeframes): %>-<% else: %><% for frame in calendar.business_hours['tue'].timeframes: %><%= frame[0] %>-<%= frame[1] %> </td><td><% end %><% end %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%- @T('Wednesday') %></td><td><% if _.isEmpty(calendar.business_hours['wed']): %>-<% else: %><% for from, till of calendar.business_hours['wed']: %><%= from %>-<%= till %> </td><td><% end %><% end %></td>
|
<td><%- @T('Wednesday') %></td><td><% if !calendar.business_hours['wed'].active || _.isEmpty(calendar.business_hours['wed'].timeframes): %>-<% else: %><% for frame in calendar.business_hours['wed'].timeframes: %><%= frame[0] %>-<%= frame[1] %> </td><td><% end %><% end %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%- @T('Thursday') %></td><td><% if _.isEmpty(calendar.business_hours['thu']): %>-<% else: %><% for from, till of calendar.business_hours['thu']: %><%= from %>-<%= till %> </td><td><% end %><% end %></td>
|
<td><%- @T('Thursday') %></td><td><% if !calendar.business_hours['thu'].active || _.isEmpty(calendar.business_hours['thu'].timeframes): %>-<% else: %><% for frame in calendar.business_hours['thu'].timeframes: %><%= frame[0] %>-<%= frame[1] %> </td><td><% end %><% end %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%- @T('Friday') %></td><td><% if _.isEmpty(calendar.business_hours['fri']): %>-<% else: %><% for from, till of calendar.business_hours['fri']: %><%= from %>-<%= till %> </td><td><% end %><% end %></td>
|
<td><%- @T('Friday') %></td><td><% if !calendar.business_hours['fri'].active || _.isEmpty(calendar.business_hours['fri'].timeframes): %>-<% else: %><% for frame in calendar.business_hours['fri'].timeframes: %><%= frame[0] %>-<%= frame[1] %> </td><td><% end %><% end %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%- @T('Saturday') %></td><td><% if _.isEmpty(calendar.business_hours['sat']): %>-<% else: %><% for from, till of calendar.business_hours['sat']: %><%= from %>-<%= till %> </td><td><% end %><% end %></td>
|
<td><%- @T('Saturday') %></td><td><% if !calendar.business_hours['sat'].active || _.isEmpty(calendar.business_hours['sat'].timeframes): %>-<% else: %><% for frame in calendar.business_hours['sat'].timeframes: %><%= frame[0] %>-<%= frame[1] %> </td><td><% end %><% end %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%- @T('Sunday') %></td><td><% if _.isEmpty(calendar.business_hours['sun']): %>-<% else: %><% for from, till of calendar.business_hours['sun']: %><%= from %>-<%= till %> </td><td><% end %><% end %></td>
|
<td><%- @T('Sunday') %></td><td><% if !calendar.business_hours['sun'].active || _.isEmpty(calendar.business_hours['sun'].timeframes): %>-<% else: %><% for frame in calendar.business_hours['sun'].timeframes: %><%= frame[0] %>-<%= frame[1] %> </td><td><% end %><% end %></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -68,7 +68,18 @@ returns
|
||||||
self.close_time_escal_date = nil
|
self.close_time_escal_date = nil
|
||||||
|
|
||||||
biz = Biz::Schedule.new do |config|
|
biz = Biz::Schedule.new do |config|
|
||||||
config.hours = calendar.business_hours.symbolize_keys
|
hours = {}
|
||||||
|
calendar.business_hours.each {|day, meta|
|
||||||
|
next if !meta[:active]
|
||||||
|
next if !meta[:timeframes]
|
||||||
|
hours[day.to_sym] = {}
|
||||||
|
meta[:timeframes].each {|frame|
|
||||||
|
next if !frame[0]
|
||||||
|
next if !frame[1]
|
||||||
|
hours[day.to_sym][frame[0]] = frame[1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
config.hours = hours
|
||||||
#config.holidays = [Date.new(2014, 1, 1), Date.new(2014, 12, 25)]
|
#config.holidays = [Date.new(2014, 1, 1), Date.new(2014, 12, 25)]
|
||||||
config.time_zone = calendar.timezone
|
config.time_zone = calendar.timezone
|
||||||
end
|
end
|
||||||
|
@ -124,8 +135,8 @@ returns
|
||||||
|
|
||||||
# close time
|
# close time
|
||||||
# calculate close time escalation
|
# calculate close time escalation
|
||||||
if sla.close_time
|
if sla.solution_time
|
||||||
self.close_time_escal_date = biz.time(sla.close_time, :minutes).after(created_at)
|
self.close_time_escal_date = biz.time(sla.solution_time, :minutes).after(created_at)
|
||||||
pending_time = pending_minutes(created_at, first_response_escal_date, biz)
|
pending_time = pending_minutes(created_at, first_response_escal_date, biz)
|
||||||
if pending_time && pending_time > 0
|
if pending_time && pending_time > 0
|
||||||
self.close_time_escal_date = biz.time(pending_time, :minutes).after(close_time_escal_date)
|
self.close_time_escal_date = biz.time(pending_time, :minutes).after(close_time_escal_date)
|
||||||
|
@ -142,8 +153,8 @@ returns
|
||||||
end
|
end
|
||||||
|
|
||||||
# set time to show if sla is raised or not
|
# set time to show if sla is raised or not
|
||||||
if sla.close_time && close_time_in_min
|
if sla.solution_time && close_time_in_min
|
||||||
self.close_time_diff_in_min = sla.close_time - close_time_in_min
|
self.close_time_diff_in_min = sla.solution_time - close_time_in_min
|
||||||
end
|
end
|
||||||
|
|
||||||
if escalation_disabled
|
if escalation_disabled
|
||||||
|
|
5
db/migrate/20150974000001_update_sla1.rb
Normal file
5
db/migrate/20150974000001_update_sla1.rb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
class UpdateSla1 < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
rename_column :slas, :close_time, :solution_time
|
||||||
|
end
|
||||||
|
end
|
|
@ -29,11 +29,34 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
name: 'EU 1',
|
name: 'EU 1',
|
||||||
timezone: 'Europe/Berlin',
|
timezone: 'Europe/Berlin',
|
||||||
business_hours: {
|
business_hours: {
|
||||||
mon: { '09:00' => '17:00' },
|
mon: {
|
||||||
tue: { '09:00' => '17:00' },
|
active: true,
|
||||||
wed: { '09:00' => '17:00' },
|
timeframes: [ ['09:00', '17:00'] ]
|
||||||
thu: { '09:00' => '17:00' },
|
},
|
||||||
fri: { '09:00' => '17:00' }
|
tue: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
wed: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
thu: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
fri: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
sat: {
|
||||||
|
active: false,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
sun: {
|
||||||
|
active: false,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
},
|
},
|
||||||
default: true,
|
default: true,
|
||||||
ical_url: nil,
|
ical_url: nil,
|
||||||
|
@ -46,7 +69,7 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
condition: {},
|
condition: {},
|
||||||
first_response_time: 120,
|
first_response_time: 120,
|
||||||
update_time: 180,
|
update_time: 180,
|
||||||
close_time: 240,
|
solution_time: 240,
|
||||||
calendar_id: calendar1.id,
|
calendar_id: calendar1.id,
|
||||||
updated_by_id: 1,
|
updated_by_id: 1,
|
||||||
created_by_id: 1,
|
created_by_id: 1,
|
||||||
|
@ -63,13 +86,34 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
name: 'EU 2',
|
name: 'EU 2',
|
||||||
timezone: 'Europe/Berlin',
|
timezone: 'Europe/Berlin',
|
||||||
business_hours: {
|
business_hours: {
|
||||||
mon: { '08:00' => '18:00' },
|
mon: {
|
||||||
tue: { '08:00' => '18:00' },
|
active: true,
|
||||||
wed: { '08:00' => '18:00' },
|
timeframes: [ ['08:00', '18:00'] ]
|
||||||
thu: { '08:00' => '18:00' },
|
},
|
||||||
fri: { '08:00' => '18:00' },
|
tue: {
|
||||||
sat: { '08:00' => '18:00' },
|
active: true,
|
||||||
sun: { '08:00' => '18:00' },
|
timeframes: [ ['08:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
wed: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
thu: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
fri: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
sat: {
|
||||||
|
active: false,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
sun: {
|
||||||
|
active: false,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
},
|
},
|
||||||
default: true,
|
default: true,
|
||||||
ical_url: nil,
|
ical_url: nil,
|
||||||
|
@ -82,7 +126,7 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
calendar_id: calendar2.id,
|
calendar_id: calendar2.id,
|
||||||
first_response_time: 60,
|
first_response_time: 60,
|
||||||
update_time: 120,
|
update_time: 120,
|
||||||
close_time: 180,
|
solution_time: 180,
|
||||||
updated_by_id: 1,
|
updated_by_id: 1,
|
||||||
created_by_id: 1,
|
created_by_id: 1,
|
||||||
)
|
)
|
||||||
|
@ -382,13 +426,34 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
name: 'EU 3',
|
name: 'EU 3',
|
||||||
timezone: 'Europe/Berlin',
|
timezone: 'Europe/Berlin',
|
||||||
business_hours: {
|
business_hours: {
|
||||||
mon: { '08:00' => '17:00' },
|
mon: {
|
||||||
tue: { '08:00' => '17:00' },
|
active: true,
|
||||||
wed: { '08:00' => '17:00' },
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
thu: { '08:00' => '17:00' },
|
},
|
||||||
fri: { '08:00' => '17:00' },
|
tue: {
|
||||||
sat: { '08:00' => '17:00' },
|
active: true,
|
||||||
sun: { '08:00' => '17:00' },
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
wed: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
thu: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
fri: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
sat: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
sun: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
},
|
},
|
||||||
default: true,
|
default: true,
|
||||||
ical_url: nil,
|
ical_url: nil,
|
||||||
|
@ -401,7 +466,7 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
calendar_id: calendar.id,
|
calendar_id: calendar.id,
|
||||||
first_response_time: 120,
|
first_response_time: 120,
|
||||||
update_time: 180,
|
update_time: 180,
|
||||||
close_time: 240,
|
solution_time: 240,
|
||||||
updated_by_id: 1,
|
updated_by_id: 1,
|
||||||
created_by_id: 1,
|
created_by_id: 1,
|
||||||
)
|
)
|
||||||
|
@ -435,13 +500,34 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
name: 'EU 4',
|
name: 'EU 4',
|
||||||
timezone: 'Europe/Berlin',
|
timezone: 'Europe/Berlin',
|
||||||
business_hours: {
|
business_hours: {
|
||||||
mon: { '08:00' => '17:00' },
|
mon: {
|
||||||
tue: { '08:00' => '17:00' },
|
active: true,
|
||||||
wed: { '08:00' => '17:00' },
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
thu: { '08:00' => '17:00' },
|
},
|
||||||
fri: { '08:00' => '17:00' },
|
tue: {
|
||||||
sat: { '08:00' => '17:00' },
|
active: true,
|
||||||
sun: { '08:00' => '17:00' },
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
wed: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
thu: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
fri: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
sat: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
|
sun: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['08:00', '17:00'] ]
|
||||||
|
},
|
||||||
},
|
},
|
||||||
default: true,
|
default: true,
|
||||||
ical_url: nil,
|
ical_url: nil,
|
||||||
|
@ -454,7 +540,7 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
calendar_id: calendar.id,
|
calendar_id: calendar.id,
|
||||||
first_response_time: 120,
|
first_response_time: 120,
|
||||||
update_time: 180,
|
update_time: 180,
|
||||||
close_time: 240,
|
solution_time: 240,
|
||||||
updated_by_id: 1,
|
updated_by_id: 1,
|
||||||
created_by_id: 1,
|
created_by_id: 1,
|
||||||
)
|
)
|
||||||
|
@ -492,7 +578,7 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
calendar_id: calendar.id,
|
calendar_id: calendar.id,
|
||||||
first_response_time: 120,
|
first_response_time: 120,
|
||||||
update_time: 180,
|
update_time: 180,
|
||||||
close_time: 240,
|
solution_time: 240,
|
||||||
updated_by_id: 1,
|
updated_by_id: 1,
|
||||||
created_by_id: 1,
|
created_by_id: 1,
|
||||||
)
|
)
|
||||||
|
@ -588,13 +674,34 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
name: 'EU 5',
|
name: 'EU 5',
|
||||||
timezone: 'Europe/Berlin',
|
timezone: 'Europe/Berlin',
|
||||||
business_hours: {
|
business_hours: {
|
||||||
mon: { '09:00' => '18:00' },
|
mon: {
|
||||||
tue: { '09:00' => '18:00' },
|
active: true,
|
||||||
wed: { '09:00' => '18:00' },
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
thu: { '09:00' => '18:00' },
|
},
|
||||||
fri: { '09:00' => '18:00' },
|
tue: {
|
||||||
sat: { '09:00' => '18:00' },
|
active: true,
|
||||||
sun: { '09:00' => '18:00' },
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
wed: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
thu: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
fri: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
sat: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
sun: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
},
|
},
|
||||||
default: true,
|
default: true,
|
||||||
ical_url: nil,
|
ical_url: nil,
|
||||||
|
@ -607,7 +714,7 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
calendar_id: calendar.id,
|
calendar_id: calendar.id,
|
||||||
first_response_time: 120,
|
first_response_time: 120,
|
||||||
update_time: 180,
|
update_time: 180,
|
||||||
close_time: 250,
|
solution_time: 250,
|
||||||
updated_by_id: 1,
|
updated_by_id: 1,
|
||||||
created_by_id: 1,
|
created_by_id: 1,
|
||||||
)
|
)
|
||||||
|
@ -663,13 +770,34 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
name: 'EU 5',
|
name: 'EU 5',
|
||||||
timezone: 'Europe/Berlin',
|
timezone: 'Europe/Berlin',
|
||||||
business_hours: {
|
business_hours: {
|
||||||
mon: { '09:00' => '18:00' },
|
mon: {
|
||||||
tue: { '09:00' => '18:00' },
|
active: true,
|
||||||
wed: { '09:00' => '18:00' },
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
thu: { '09:00' => '18:00' },
|
},
|
||||||
fri: { '09:00' => '18:00' },
|
tue: {
|
||||||
sat: { '09:00' => '18:00' },
|
active: true,
|
||||||
sun: { '09:00' => '18:00' },
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
wed: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
thu: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
fri: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
sat: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
sun: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
},
|
},
|
||||||
default: true,
|
default: true,
|
||||||
ical_url: nil,
|
ical_url: nil,
|
||||||
|
@ -682,7 +810,7 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
calendar_id: calendar.id,
|
calendar_id: calendar.id,
|
||||||
first_response_time: 120,
|
first_response_time: 120,
|
||||||
update_time: 180,
|
update_time: 180,
|
||||||
close_time: 240,
|
solution_time: 240,
|
||||||
updated_by_id: 1,
|
updated_by_id: 1,
|
||||||
created_by_id: 1,
|
created_by_id: 1,
|
||||||
)
|
)
|
||||||
|
@ -769,13 +897,34 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
name: 'EU 5',
|
name: 'EU 5',
|
||||||
timezone: 'Europe/Berlin',
|
timezone: 'Europe/Berlin',
|
||||||
business_hours: {
|
business_hours: {
|
||||||
mon: { '09:00' => '18:00' },
|
mon: {
|
||||||
tue: { '09:00' => '18:00' },
|
active: true,
|
||||||
wed: { '09:00' => '18:00' },
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
thu: { '09:00' => '18:00' },
|
},
|
||||||
fri: { '09:00' => '18:00' },
|
tue: {
|
||||||
sat: { '09:00' => '18:00' },
|
active: true,
|
||||||
sun: { '09:00' => '18:00' },
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
wed: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
thu: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
fri: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
sat: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
sun: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
},
|
},
|
||||||
default: true,
|
default: true,
|
||||||
ical_url: nil,
|
ical_url: nil,
|
||||||
|
@ -788,7 +937,7 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
calendar_id: calendar.id,
|
calendar_id: calendar.id,
|
||||||
first_response_time: 120,
|
first_response_time: 120,
|
||||||
update_time: 180,
|
update_time: 180,
|
||||||
close_time: 240,
|
solution_time: 240,
|
||||||
updated_by_id: 1,
|
updated_by_id: 1,
|
||||||
created_by_id: 1,
|
created_by_id: 1,
|
||||||
)
|
)
|
||||||
|
@ -891,13 +1040,34 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
name: 'EU 5',
|
name: 'EU 5',
|
||||||
timezone: 'Europe/Berlin',
|
timezone: 'Europe/Berlin',
|
||||||
business_hours: {
|
business_hours: {
|
||||||
mon: { '09:00' => '18:00' },
|
mon: {
|
||||||
tue: { '09:00' => '18:00' },
|
active: true,
|
||||||
wed: { '09:00' => '18:00' },
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
thu: { '09:00' => '18:00' },
|
},
|
||||||
fri: { '09:00' => '18:00' },
|
tue: {
|
||||||
sat: { '09:00' => '18:00' },
|
active: true,
|
||||||
sun: { '09:00' => '18:00' },
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
wed: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
thu: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
fri: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
sat: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
|
sun: {
|
||||||
|
active: true,
|
||||||
|
timeframes: [ ['09:00', '18:00'] ]
|
||||||
|
},
|
||||||
},
|
},
|
||||||
default: true,
|
default: true,
|
||||||
ical_url: nil,
|
ical_url: nil,
|
||||||
|
@ -910,7 +1080,7 @@ class TicketSlaTest < ActiveSupport::TestCase
|
||||||
calendar_id: calendar.id,
|
calendar_id: calendar.id,
|
||||||
first_response_time: 120,
|
first_response_time: 120,
|
||||||
update_time: 180,
|
update_time: 180,
|
||||||
close_time: 240,
|
solution_time: 240,
|
||||||
updated_by_id: 1,
|
updated_by_id: 1,
|
||||||
created_by_id: 1,
|
created_by_id: 1,
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue