forked from saurabh/orbit4-5
member import with plugins are done.
This commit is contained in:
parent
d9bf2c7ddc
commit
2e447476b3
|
@ -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)
|
||||
|
|
|
@ -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(){
|
||||
|
|
|
@ -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'
|
||||
|
|
Loading…
Reference in New Issue