Merge branch 'develop' of github.com:martini/zammad into develop
This commit is contained in:
commit
d38c02e48b
3 changed files with 35 additions and 59 deletions
|
@ -151,7 +151,11 @@ class Index extends App.ControllerContent
|
||||||
success: (data, status, xhr) =>
|
success: (data, status, xhr) =>
|
||||||
|
|
||||||
if data.result is 'import_done'
|
if data.result is 'import_done'
|
||||||
window.location.reload()
|
delay = 0
|
||||||
|
if @Config.get('developer_mode') is true
|
||||||
|
delay = 5000
|
||||||
|
|
||||||
|
@delay(window.location.reload, delay)
|
||||||
return
|
return
|
||||||
|
|
||||||
if data.result is 'error'
|
if data.result is 'error'
|
||||||
|
|
|
@ -148,7 +148,7 @@ module Import::Zendesk
|
||||||
initialize_client
|
initialize_client
|
||||||
|
|
||||||
# retrive statistic
|
# retrive statistic
|
||||||
statistic = {
|
result = {
|
||||||
'Tickets' => 0,
|
'Tickets' => 0,
|
||||||
'TicketFields' => 0,
|
'TicketFields' => 0,
|
||||||
'UserFields' => 0,
|
'UserFields' => 0,
|
||||||
|
@ -162,20 +162,20 @@ module Import::Zendesk
|
||||||
'Automations' => 0,
|
'Automations' => 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
statistic.each { |object, _score|
|
result.each { |object, _score|
|
||||||
|
|
||||||
counter = 0
|
counter = 0
|
||||||
@client.send( object.underscore.to_sym ).all do |_resource|
|
@client.send( object.underscore.to_sym ).all do |_resource|
|
||||||
counter += 1
|
counter += 1
|
||||||
end
|
end
|
||||||
|
|
||||||
statistic[ object ] = counter
|
result[ object ] = counter
|
||||||
}
|
}
|
||||||
|
|
||||||
if statistic
|
if result
|
||||||
Cache.write('import_zendesk_stats', statistic)
|
Cache.write('import_zendesk_stats', result)
|
||||||
end
|
end
|
||||||
statistic
|
result
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -317,12 +317,7 @@ module Import::Zendesk
|
||||||
|
|
||||||
local_fields = local_object.constantize.column_names
|
local_fields = local_object.constantize.column_names
|
||||||
|
|
||||||
zendesk_object_fields = []
|
|
||||||
@client.send("#{local_object.downcase}_fields").all { |zendesk_object_field|
|
@client.send("#{local_object.downcase}_fields").all { |zendesk_object_field|
|
||||||
zendesk_object_fields.push(zendesk_object_field)
|
|
||||||
}
|
|
||||||
|
|
||||||
zendesk_object_fields.each { |zendesk_object_field|
|
|
||||||
|
|
||||||
if local_object == 'Ticket'
|
if local_object == 'Ticket'
|
||||||
mapped_object_field = method("mapping_#{local_object.downcase}_field").call( zendesk_object_field.type )
|
mapped_object_field = method("mapping_#{local_object.downcase}_field").call( zendesk_object_field.type )
|
||||||
|
@ -472,13 +467,7 @@ module Import::Zendesk
|
||||||
def import_groups
|
def import_groups
|
||||||
|
|
||||||
@zendesk_group_mapping = {}
|
@zendesk_group_mapping = {}
|
||||||
zendesk_groups = []
|
|
||||||
@client.groups.all { |zendesk_group|
|
@client.groups.all { |zendesk_group|
|
||||||
zendesk_groups.push(zendesk_group)
|
|
||||||
}
|
|
||||||
|
|
||||||
zendesk_groups.each { |zendesk_group|
|
|
||||||
|
|
||||||
local_group = Group.create_if_not_exists(
|
local_group = Group.create_if_not_exists(
|
||||||
name: zendesk_group.name,
|
name: zendesk_group.name,
|
||||||
active: !zendesk_group.deleted,
|
active: !zendesk_group.deleted,
|
||||||
|
@ -526,12 +515,7 @@ module Import::Zendesk
|
||||||
role_agent = Role.lookup(name: 'Agent')
|
role_agent = Role.lookup(name: 'Agent')
|
||||||
role_customer = Role.lookup(name: 'Customer')
|
role_customer = Role.lookup(name: 'Customer')
|
||||||
|
|
||||||
zendesk_users = []
|
|
||||||
@client.users.all { |zendesk_user|
|
@client.users.all { |zendesk_user|
|
||||||
zendesk_users.push(zendesk_user)
|
|
||||||
}
|
|
||||||
|
|
||||||
zendesk_users.each { |zendesk_user|
|
|
||||||
|
|
||||||
local_user_fields = {
|
local_user_fields = {
|
||||||
login: zendesk_user.id.to_s, # Zendesk users may have no other identifier than the ID, e.g. twitter users
|
login: zendesk_user.id.to_s, # Zendesk users may have no other identifier than the ID, e.g. twitter users
|
||||||
|
@ -602,12 +586,7 @@ module Import::Zendesk
|
||||||
|
|
||||||
@zendesk_user_group_mapping = {}
|
@zendesk_user_group_mapping = {}
|
||||||
|
|
||||||
zendesk_group_memberships = []
|
|
||||||
@client.group_memberships.all { |zendesk_group_membership|
|
@client.group_memberships.all { |zendesk_group_membership|
|
||||||
zendesk_group_memberships.push(zendesk_group_membership)
|
|
||||||
}
|
|
||||||
|
|
||||||
zendesk_group_memberships.each { |zendesk_group_membership|
|
|
||||||
|
|
||||||
@zendesk_user_group_mapping[ zendesk_group_membership.user_id ] ||= []
|
@zendesk_user_group_mapping[ zendesk_group_membership.user_id ] ||= []
|
||||||
@zendesk_user_group_mapping[ zendesk_group_membership.user_id ].push( zendesk_group_membership.group_id )
|
@zendesk_user_group_mapping[ zendesk_group_membership.user_id ].push( zendesk_group_membership.group_id )
|
||||||
|
@ -641,12 +620,7 @@ module Import::Zendesk
|
||||||
article_type_facebook_feed_post = Ticket::Article::Type.lookup(name: 'facebook feed post')
|
article_type_facebook_feed_post = Ticket::Article::Type.lookup(name: 'facebook feed post')
|
||||||
article_type_facebook_feed_comment = Ticket::Article::Type.lookup(name: 'facebook feed comment')
|
article_type_facebook_feed_comment = Ticket::Article::Type.lookup(name: 'facebook feed comment')
|
||||||
|
|
||||||
zendesk_tickets = []
|
|
||||||
@client.tickets.all { |zendesk_ticket|
|
@client.tickets.all { |zendesk_ticket|
|
||||||
zendesk_tickets.push(zendesk_ticket)
|
|
||||||
}
|
|
||||||
|
|
||||||
zendesk_tickets.each { |zendesk_ticket|
|
|
||||||
|
|
||||||
zendesk_ticket_fields = {}
|
zendesk_ticket_fields = {}
|
||||||
zendesk_ticket.custom_fields.each { |zendesk_ticket_field|
|
zendesk_ticket.custom_fields.each { |zendesk_ticket_field|
|
||||||
|
@ -763,7 +737,6 @@ module Import::Zendesk
|
||||||
elsif zendesk_article.via.channel == 'twitter'
|
elsif zendesk_article.via.channel == 'twitter'
|
||||||
local_article_fields[:message_id] = zendesk_article.id
|
local_article_fields[:message_id] = zendesk_article.id
|
||||||
|
|
||||||
# TODO
|
|
||||||
local_article_fields[:type_id] = if zendesk_article.via.source.rel == 'mention'
|
local_article_fields[:type_id] = if zendesk_article.via.source.rel == 'mention'
|
||||||
article_type_twitter_status.id
|
article_type_twitter_status.id
|
||||||
else
|
else
|
||||||
|
@ -776,7 +749,6 @@ module Import::Zendesk
|
||||||
local_article_fields[:to] = zendesk_article.via.source.to.facebook_id
|
local_article_fields[:to] = zendesk_article.via.source.to.facebook_id
|
||||||
local_article_fields[:message_id] = zendesk_article.id
|
local_article_fields[:message_id] = zendesk_article.id
|
||||||
|
|
||||||
# TODO
|
|
||||||
local_article_fields[:type_id] = if zendesk_article.via.source.rel == 'post'
|
local_article_fields[:type_id] = if zendesk_article.via.source.rel == 'post'
|
||||||
article_type_facebook_feed_post.id
|
article_type_facebook_feed_post.id
|
||||||
else
|
else
|
||||||
|
@ -842,12 +814,7 @@ module Import::Zendesk
|
||||||
# https://developer.zendesk.com/rest_api/docs/core/macros
|
# https://developer.zendesk.com/rest_api/docs/core/macros
|
||||||
def import_macros
|
def import_macros
|
||||||
|
|
||||||
zendesk_macros = []
|
|
||||||
@client.macros.all { |zendesk_macro|
|
@client.macros.all { |zendesk_macro|
|
||||||
zendesk_macros.push(zendesk_macro)
|
|
||||||
}
|
|
||||||
|
|
||||||
zendesk_macros.each { |zendesk_macro|
|
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
next if !zendesk_macro.active
|
next if !zendesk_macro.active
|
||||||
|
@ -899,12 +866,7 @@ module Import::Zendesk
|
||||||
# https://developer.zendesk.com/rest_api/docs/core/views
|
# https://developer.zendesk.com/rest_api/docs/core/views
|
||||||
def import_views
|
def import_views
|
||||||
|
|
||||||
zendesk_views = []
|
|
||||||
@client.views.all { |zendesk_view|
|
@client.views.all { |zendesk_view|
|
||||||
zendesk_views.push(zendesk_view)
|
|
||||||
}
|
|
||||||
|
|
||||||
zendesk_views.each { |zendesk_view|
|
|
||||||
|
|
||||||
# "url" => "https://example.zendesk.com/api/v2/views/59511071.json"
|
# "url" => "https://example.zendesk.com/api/v2/views/59511071.json"
|
||||||
# "id" => 59511071
|
# "id" => 59511071
|
||||||
|
@ -1033,12 +995,7 @@ module Import::Zendesk
|
||||||
# https://developer.zendesk.com/rest_api/docs/core/automations
|
# https://developer.zendesk.com/rest_api/docs/core/automations
|
||||||
def import_automations
|
def import_automations
|
||||||
|
|
||||||
zendesk_automations = []
|
|
||||||
@client.automations.all { |zendesk_automation|
|
@client.automations.all { |zendesk_automation|
|
||||||
zendesk_automations.push(zendesk_automation)
|
|
||||||
}
|
|
||||||
|
|
||||||
zendesk_automations.each { |zendesk_automation|
|
|
||||||
|
|
||||||
# "url" => "https://example.zendesk.com/api/v2/automations/60037892.json"
|
# "url" => "https://example.zendesk.com/api/v2/automations/60037892.json"
|
||||||
# "id" => 60037892
|
# "id" => 60037892
|
||||||
|
|
|
@ -79,17 +79,32 @@ class ZendeskImportBrowserTest < TestCase
|
||||||
click(css: '.js-migration-start')
|
click(css: '.js-migration-start')
|
||||||
|
|
||||||
watch_for(
|
watch_for(
|
||||||
css: 'body',
|
css: '.js-group .js-done',
|
||||||
value: 'login',
|
value: '2',
|
||||||
|
timeout: 60,
|
||||||
|
)
|
||||||
|
|
||||||
|
watch_for(
|
||||||
|
css: '.js-organization .js-done',
|
||||||
|
value: '1',
|
||||||
|
timeout: 60,
|
||||||
|
)
|
||||||
|
|
||||||
|
watch_for(
|
||||||
|
css: '.js-user .js-done',
|
||||||
|
value: '141',
|
||||||
|
timeout: 60,
|
||||||
|
)
|
||||||
|
|
||||||
|
watch_for(
|
||||||
|
css: '.js-ticket .js-done',
|
||||||
|
value: '143',
|
||||||
timeout: 300,
|
timeout: 300,
|
||||||
)
|
)
|
||||||
|
|
||||||
assert_equal( 143, User.count, 'users' )
|
watch_for(
|
||||||
assert_equal( 3, Group.count, 'groups' )
|
css: 'body',
|
||||||
assert_equal( 5, Role.count, 'roles' )
|
value: 'login',
|
||||||
assert_equal( 2, Organization.count, 'organizations' )
|
)
|
||||||
assert_equal( 144, Ticket.count, 'tickets' )
|
|
||||||
assert_equal( 151, Ticket::Article.count, 'ticket articles' )
|
|
||||||
assert_equal( 2, Store.count, 'ticket article attachments' )
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue