member import with plugins are done.

This commit is contained in:
Harry Bomrah 2014-07-15 18:07:28 +08:00
parent d9bf2c7ddc
commit 2e447476b3
3 changed files with 137 additions and 43 deletions

View File

@ -303,13 +303,14 @@ class Admin::ImportController < OrbitAdminController
@@import_stats["success"] = true
write_to_file
members = data["users"]
data_to_send = []
members.each do |member|
@@import_stats["current_member"] = member["user_id"]
@@import_stats["current_member_name"] = member["primary_email"]
write_to_file
check_member = MemberProfile.find_by(rss2_id: member["rss2_id"]) rescue nil
if check_member.nil?
new_member = MemberProfile.find_by(rss2_id: member["rss2_id"]) rescue nil
if new_member.nil?
new_member = MemberProfile.new(email: member["primary_email"], rss2_id: member["rss2_id"], sid: member["sid"], office_tel: member["phone_office"],)
new_member.autobiography_translations = {"en"=>member["bio"]["en"],"zh_tw"=>member["bio"]["zh-tw"]}
new_member.address_translations = {"en"=>member["address_office"]["en"],"zh_tw"=>member["address_office"]["zh-tw"]}
@ -565,20 +566,19 @@ class Admin::ImportController < OrbitAdminController
if member["user_id"].present?
user = User.new
user.user_name = member["user_id"]
user.password = "newpassword"
user.password_confirmation = "newpassword"
if member["group_id"] == 40
w = Workgroup.find_by(key: "admin") rescue nil
user.workgroup = w
end
user.member_profile = new_member
user.approved = true
user.save
user.save(:validate => false)
end
end
data_to_send << {"name" => new_member.name, "rss2_id" => new_member.rss2_id, "id" => new_member.id.to_s}
end
render :json => {"success" => true}.to_json
render :json => {"success" => true, "members" => data_to_send}.to_json
end
def rss2_galleries
@ -682,11 +682,35 @@ class Admin::ImportController < OrbitAdminController
render :json => {"success" => true}.to_json
end
def import_books
id = "1"
def import_plugin
id = params["rss2_id"]
url = params["url"]
case params["plugin"]
when "patents"
import_patents(id,url)
when "books"
import_books(id,url)
when "projects"
import_projects(id,url)
when "researches"
import_research(id,url)
when "honors"
import_honors(id,url)
when "diplomas"
import_diplomas(id,url)
when "experiences"
import_experiences(id,url)
when "journalpapers"
import_journals(id,url)
when "conferencespapers"
import_conferences(id,url)
end
end
def import_books(id,url)
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=book")
uri = URI.parse("#{url}?module=plugin&id=#{id}&plugin=book")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
@ -728,11 +752,10 @@ class Admin::ImportController < OrbitAdminController
render :json => {"succes" => true}.to_json
end
def import_projects
id = "1"
def import_projects(id,url)
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=project")
uri = URI.parse("#{url}?module=plugin&id=#{id}&plugin=project")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
@ -762,11 +785,10 @@ class Admin::ImportController < OrbitAdminController
render :json => {"succes" => true}.to_json
end
def import_patents
id = "1"
def import_patents(id,url)
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=patent")
uri = URI.parse("#{url}?module=plugin&id=#{id}&plugin=patent")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
@ -796,11 +818,10 @@ class Admin::ImportController < OrbitAdminController
render :json => {"succes" => true}.to_json
end
def import_research
id = "1"
def import_research(id,url)
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=research")
uri = URI.parse("#{url}?module=plugin&id=#{id}&plugin=research")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
@ -824,11 +845,10 @@ class Admin::ImportController < OrbitAdminController
render :json => {"succes" => true}.to_json
end
def import_diplomas
id = "1"
def import_diplomas(id,url)
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=diploma")
uri = URI.parse("#{url}?module=plugin&id=#{id}&plugin=diploma")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
@ -849,11 +869,10 @@ class Admin::ImportController < OrbitAdminController
render :json => {"succes" => true}.to_json
end
def import_experiences
id = "1"
def import_experiences(id,url)
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=experience")
uri = URI.parse("#{url}?module=plugin&id=#{id}&plugin=experience")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
@ -873,11 +892,10 @@ class Admin::ImportController < OrbitAdminController
render :json => {"succes" => true}.to_json
end
def import_honors
id = "1"
def import_honors(id,url)
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=honor")
uri = URI.parse("#{url}?module=plugin&id=#{id}&plugin=honor")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
@ -900,14 +918,13 @@ class Admin::ImportController < OrbitAdminController
end
end
I18n.locale = original_language
render :json => {"succes" => true}.to_json
render :json => {"success" => true}.to_json
end
def import_journals
id = "1"
def import_journals(id,url)
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=journal")
uri = URI.parse("#{url}?module=plugin&id=#{id}&plugin=journal")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
@ -975,14 +992,13 @@ class Admin::ImportController < OrbitAdminController
end
I18n.locale = original_language
render :json => {"succes" => true}.to_json
render :json => {"success" => true}.to_json
end
def import_conferences
id = "1"
def import_conferences(id,url)
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=conference")
uri = URI.parse("#{url}?module=plugin&id=#{id}&plugin=conference")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)

View File

@ -294,7 +294,8 @@
}
var sto = null;
var new_members_data = null;
var importMembers = function(){
$("#import-progress .bar").css('width', '0%');
$("#import-progress-text").html("Importing Member..<br/>");
@ -302,13 +303,90 @@
type: "post",
url: '<%= admin_import_rss2_members_path %>',
data : {"url" : url+'?module='+module}
}).done(function(){
}).done(function(data){
if(data.success == true){
// clearTimeout(sto);
$("#import-progress-text").html("Finished importing Members.<br/>");
$("#import-progress .bar").css('width', '100%');
new_members_data = data.members;
importPlugins(0);
}
}).fail(function(){
$("#import-progress-text").html("Importing failed, click on start to try again.");
$("#alert-msg").text("There was an unknown error");
$(".alert-danger").removeClass("hide").show();
clearTimeout(sto);
})
setTimeout("startCheckingMemberImportStatus()",700);
// sto = setTimeout("startCheckingMemberImportStatus()",700);
}
var plugins = ["patents","books", "projects", "researches", "honors", "diplomas", "experiences", "journalpapers", "conferencespapers"];
var failed_plugins = [];
var importPlugins = function(number){
var member = new_members_data[number],
member_status = (member.name == null ? "Importing plugins for id " + member.rss2_id : "Importing plugins for member " + member.name);
$("#import-progress .bar").css('width', '0%');
$("#import-progress-text").html(member_status + "<br/><div id='plugin_name'></div>");
importplugin(member.rss2_id, 0,number)
}
var importplugin = function(id,p,number){
var plugin = plugins[p];
$("#import-progress-text #plugin_name").html(plugin.charAt(0).toUpperCase() + plugin.slice(1));
$.ajax({
url : "/admin/import/import_plugin",
type : "get",
data : {"rss2_id" : id, "plugin" : plugin, "url" : url},
dataType : "json"
}).done(function(){
var percent = ((p + 1) * 100) / plugins.length;
$("#import-progress .bar").css('width', percent + '%');
if(p != plugins.length - 1){
importplugin(id, p + 1,number);
}else if(p == plugins.length - 1){
if((number + 1) != new_members_data.length){
importPlugins(number + 1);
}else{
$("#import-progress-text").html("Importing members finished.");
}
}
}).fail(function(){
failed_plugins.push(plugin);
$("#alert-msg").text("There was an unknown error importing " + plugin + ".");
$(".alert-danger").removeClass("hide").show();
if(p != plugins.length - 1){
importplugin(id, p + 1, number);
}else if(p == plugins.length - 1){
if((number + 1) != new_members_data.length){
importPlugins(number + 1);
}else{
$("#import-progress-text").html("Importing members finished.");
}
}
})
}
var importfailedplugin = function(id,p){
var plugin = failed_plugins[p];
$("#import-progress-text").append("Retrying " + plugin);
$.ajax({
url : "/admin/import_plugin",
type : "get",
data : {"rss2_id" : id, "plugin" : plugin},
dataType : "json"
}).done(function(){
var percent = ((p + failed_plugins.length + 1) * 100) / plugins.length;
$("#import-progress .bar").css('width', percent + '%');
if(p != failed_plugins.length - 1){
importfailedplugin(id, p + 1);
}
}).fail(function(){
$("#alert-msg").text("There was an unknown error importing" + plugin + ".");
$(".alert-danger").removeClass("hide").show();
if(p != failed_plugins.length - 1){
importfailedplugin(id, p + 1);
}
})
return true;
}
var startCheckingMemberImportStatus = function(){
@ -322,19 +400,19 @@
if(status.total_members != null){
var percent = (status.current_status * 100) / status.total_members;
$("#import-progress .bar").css('width',percent + "%");
$("#import-progress-text").html("Importing Member" + status.current_member_name + " .. " + status.current_status + "/" + status.total_members + "<br/>");
$("#import-progress-text").html("Importing Member " + status.current_member_name + " .. " + status.current_status + "/" + status.total_members + "<br/>");
}
if(status.total_members != status.current_status){
setTimeout("startCheckingMemberImportStatus()",700);
sto = setTimeout("startCheckingMemberImportStatus()",700);
}else{
if(status.total_members == null){
setTimeout("startCheckingMemberImportStatus()",700);
sto = setTimeout("startCheckingMemberImportStatus()",700);
}
$("#import-progress-text").html("Finished importing Members.<br/>");
}
}else if(status.success == false){
$("#import-progress-text").html("Importing failed, click on start to try again.");
$("#alert-msg").text("Error importing page " + status.current_member_name + " Email : " + status.current_member)
$("#alert-msg").text("Error importing member " + status.current_member_name + " Email : " + status.current_member)
$(".alert-danger").removeClass("hide").show();
}
}).fail(function(){

View File

@ -223,7 +223,7 @@ Orbit::Application.routes.draw do
post "import/rss2_album_image" => "import#rss2_album_image"
post "import/rss2_links" => "import#rss2_links"
post "import/rss2_members" => "import#rss2_members"
get "import/import_honors" => "import#import_honors"
get "import/import_plugin" => "import#import_plugin"
end
get 'mobile', to: 'pages#home'