added new 404 page and also fixed member import

This commit is contained in:
Harry Bomrah 2014-09-15 15:29:08 +08:00
parent 424d3fa559
commit 5d6f33c90b
6 changed files with 130 additions and 58 deletions

View File

@ -271,18 +271,14 @@ class Admin::ImportController < OrbitAdminController
render :json => settings.to_json render :json => settings.to_json
end end
def rss2_members def rss2_members_info
uri = URI.parse(params['url']) uri = URI.parse(params['url'])
# @@thread = Thread.new do # @@thread = Thread.new do
http = Net::HTTP.new(uri.host, uri.port) http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri) request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request) response = http.request(request)
data = response.body data = response.body
data = JSON.parse(data) data = JSON.parse(data)
@@import_stats["total_members"] = data["users"].count
@@import_stats["current_status"] = 0
@@import_stats["success"] = true
write_to_file
rss2_roles = data["attributes"] rss2_roles = data["attributes"]
rss2_roles.each do |key,rss2_role| rss2_roles.each do |key,rss2_role|
@ -327,13 +323,22 @@ class Admin::ImportController < OrbitAdminController
end end
end end
render :json => {"success" => true, "total_users" => data["total_users"]}.to_json
end
def rss2_members
uri = URI.parse(params['url'])
# @@thread = Thread.new do
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
data = response.body
data = JSON.parse(data)
members = data["users"] members = data["users"]
data_to_send = [] data_to_send = []
members.each do |member| members.each do |member|
@@import_stats["current_member"] = member["user_id"]
@@import_stats["current_member_name"] = member["primary_email"]
write_to_file
new_member = MemberProfile.find_by(rss2_id: member["rss2_id"]) rescue nil new_member = MemberProfile.find_by(rss2_id: member["rss2_id"]) rescue nil
if new_member.nil? if new_member.nil?
@ -505,8 +510,6 @@ class Admin::ImportController < OrbitAdminController
end end
new_member.save new_member.save
@@import_stats["current_status"] = @@import_stats["current_status"] + 1
write_to_file
if member["user_id"].present? if member["user_id"].present?
user = User.new user = User.new
user.user_name = member["user_id"] user.user_name = member["user_id"]
@ -897,8 +900,8 @@ class Admin::ImportController < OrbitAdminController
"en" => diploma["degree"]["en"], "en" => diploma["degree"]["en"],
"zh_tw" => diploma["degree"]["zh-tw"]}, "zh_tw" => diploma["degree"]["zh-tw"]},
:language => diploma["language"].gsub('-','_'), :language => diploma["language"].gsub('-','_'),
:start_date => Date.strptime(diploma["start_date"], '%Y-%m'), :start_date => (Date.strptime(diploma["start_date"], '%Y-%m') rescue nil),
:end_date => Date.strptime(diploma["end_date"], '%Y-%m'), :end_date => (Date.strptime(diploma["end_date"], '%Y-%m') rescue nil),
:rss2_id => diploma["rss2_id"]) :rss2_id => diploma["rss2_id"])
new_diploma.member_profile = member new_diploma.member_profile = member
new_diploma.save new_diploma.save

View File

@ -198,7 +198,8 @@
importLinks(); importLinks();
break; break;
case "members": case "members":
importMembers(); $(this).fadeOut();
importMembersInfo();
break; break;
default: default:
getModuleCategories(); getModuleCategories();
@ -280,7 +281,7 @@
var percent = ((number + 1) * 100) / total; var percent = ((number + 1) * 100) / total;
$("#import-progress .bar").css('width',percent + "%"); $("#import-progress .bar").css('width',percent + "%");
if(number != (total - 1)){ if(number != (total - 1)){
setTimeout(importImagesForAlbums(number + 1),300) setTimeout(importImagesForAlbums(number + 1),300);
}else{ }else{
$("#import-progress-text").html("Finished importing albums."); $("#import-progress-text").html("Finished importing albums.");
} }
@ -294,30 +295,57 @@
} }
var sto = null; var sto = null,
var new_members_data = null; new_members_data = [],
var importMembers = function(){ number_of_members_to_import = 5,
total_members = 0,
maximum_member_pages = 0;
var importMembersInfo = function(){
$("#import-progress .bar").css('width', '0%'); $("#import-progress .bar").css('width', '0%');
$("#import-progress-text").html("Importing Member..<br/>"); $("#import-progress-text").html("Getting Member Info..<br/>");
$.ajax({ $.ajax({
type: "post", type: "post",
url: '<%= admin_import_rss2_members_path %>', url: '<%= admin_import_rss2_members_info_path %>',
data : {"url" : url+'?module='+module} data : {"url" : url+'?module='+module}
}).done(function(data){ }).done(function(data){
if(data.success == true){ if(data.success == true){
// clearTimeout(sto); $("#import-progress-text").html("Now importing Members.<br/>");
$("#import-progress-text").html("Finished importing Members.<br/>"); total_members = parseInt(data.total_users);
$("#import-progress .bar").css('width', '100%'); maximum_member_pages = Math.ceil(total_members / number_of_members_to_import) - 1;
new_members_data = data.members; importMembers(0);
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();
})
}
var importMembers = function(page_number){
$("#import-progress-text").html("Importing Members..<br/>");
$.ajax({
type: "post",
url: '<%= admin_import_rss2_members_path %>',
data : {"url" : url+'?module='+module+"&page=" + page_number + "&total=" + number_of_members_to_import}
}).done(function(data){
if(data.success == true){
var percent = ((number_of_members_to_import * (page_number + 1)) * 100) / total_members;
$("#import-progress .bar").css('width', percent + "%");
new_members_data = new_members_data.concat(data.members);
if(page_number < maximum_member_pages){
importMembers(page_number + 1);
}else{
$("#import-progress .bar").css('width', '100%');
importPlugins(0);
}
} }
}).fail(function(){ }).fail(function(){
$("#import-progress-text").html("Importing failed, click on start to try again."); $("#import-progress-text").html("Importing failed, click on start to try again.");
$("#alert-msg").text("There was an unknown error"); $("#alert-msg").text("There was an unknown error");
$(".alert-danger").removeClass("hide").show(); $(".alert-danger").removeClass("hide").show();
clearTimeout(sto);
}) })
// sto = setTimeout("startCheckingMemberImportStatus()",700);
} }
var plugins = ["patents","books", "projects", "researches", "honors", "diplomas", "experiences", "journalpapers", "conferencespapers"]; var plugins = ["patents","books", "projects", "researches", "honors", "diplomas", "experiences", "journalpapers", "conferencespapers"];
var failed_plugins = []; var failed_plugins = [];
@ -326,10 +354,11 @@
member_status = (member.name == null ? "Importing plugins for id " + member.rss2_id : "Importing plugins for member " + member.name); 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 .bar").css('width', '0%');
$("#import-progress-text").html(member_status + "<br/><div id='plugin_name'></div>"); $("#import-progress-text").html(member_status + "<br/><div id='plugin_name'></div>");
importplugin(member.rss2_id, 0,number) importplugin(member.rss2_id, 0, number, member.name);
} }
var importplugin = function(id,p,number){ var importplugin = function(id,p,number,name){
console.log(name);
var plugin = plugins[p]; var plugin = plugins[p];
$("#import-progress-text #plugin_name").html(plugin.charAt(0).toUpperCase() + plugin.slice(1)); $("#import-progress-text #plugin_name").html(plugin.charAt(0).toUpperCase() + plugin.slice(1));
$.ajax({ $.ajax({
@ -351,7 +380,7 @@
} }
}).fail(function(){ }).fail(function(){
failed_plugins.push(plugin); failed_plugins.push(plugin);
$("#alert-msg").text("There was an unknown error importing " + plugin + "."); $("#alert-msg").prepend("There was an unknown error importing " + plugin + " for " + (typeof name == "undefined" ? id : name) + ". <br/>");
$(".alert-danger").removeClass("hide").show(); $(".alert-danger").removeClass("hide").show();
if(p != plugins.length - 1){ if(p != plugins.length - 1){
importplugin(id, p + 1, number); importplugin(id, p + 1, number);
@ -359,6 +388,7 @@
if((number + 1) != new_members_data.length){ if((number + 1) != new_members_data.length){
importPlugins(number + 1); importPlugins(number + 1);
}else{ }else{
$("#import-progress .bar").css('width', '100%');
$("#import-progress-text").html("Importing members finished."); $("#import-progress-text").html("Importing members finished.");
} }
} }

View File

@ -22,4 +22,7 @@ gem "site_menu_widget", git: 'http://gitlab.tp.rulingcom.com/saurabh/site-menu-w
gem "breadcrumb_widget", git: "http://gitlab.tp.rulingcom.com/saurabh/breadcrumb-widget.git" gem "breadcrumb_widget", git: "http://gitlab.tp.rulingcom.com/saurabh/breadcrumb-widget.git"
#desktop #desktop
gem "orbit_4_5_desktop", git: 'http://gitlab.tp.rulingcom.com/ray/orbit-4-5-desktop.git' gem "orbit_4_5_desktop", path: '/Volumes/MyData/github/orbit4.5/orbit-4-5-desktop'
gem "test_for_plugin", path: "/Volumes/MyData/github/orbit4.5/new_modules/test_for_plugin"

View File

@ -223,6 +223,7 @@ Orbit::Application.routes.draw do
post "import/rss2_album_image" => "import#rss2_album_image" post "import/rss2_album_image" => "import#rss2_album_image"
post "import/rss2_links" => "import#rss2_links" post "import/rss2_links" => "import#rss2_links"
post "import/rss2_members" => "import#rss2_members" post "import/rss2_members" => "import#rss2_members"
post "import/rss2_members_info" => "import#rss2_members_info"
get "import/import_plugin" => "import#import_plugin" get "import/import_plugin" => "import#import_plugin"
end end

View File

@ -1,28 +1,63 @@
<!DOCTYPE HTML> <!DOCTYPE HTML>
<html lang="en-US"> <html lang="zh-tw">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title></title> <title>Page not found</title>
<link rel="stylesheet" type="text/css" href="stylesheets/error-pages.css" media="all"/> <link href='http://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
</head> </head>
<body> <body>
<style type="text/css"> <style>
body { ::selection {
margin: 0; color: #fff;
padding: 40px 0 0 0; background: #040114;
background-color: #F3F3F3; }
} body {
</style> margin: 0;
<!-- Error Pages Start Here --> padding: 0;
<div id="error-page"> font-family: 'Roboto', sans-serif;
<div class="card"> font-size: 100%;
<div class="figure code-404"></div> background: url(/error_image/404.jpg) center center fixed no-repeat;
<div class="message"> background-size: cover;
<h1>Page not found!</h1> background-color: #000;
<p>The page you were looking for doesnt exist.</p> }
</div> #error-page {
</div> min-height: 768px;
</div> }
<!-- Error Pages End Here --> .message {
</body> text-align: center;
position: absolute;
left: 50%;
top: 25%;
margin-left: -175px;
}
.message h1 {
margin: 0 0.2em 0 0;
color: #fff;
font-size: 8.5em;
font-weight: normal;
}
.message h2 {
margin: 0;
padding: 0;
color: #fff;
}
.message p {
color: #fff;
}
.home {
color: #fff;
}
a.home:hover {
text-decoration: none;
}
</style>
<div id="error-page">
<section class="message">
<h1>404</h1>
<h2>Page not found</h2>
<p>Sorry, it seems like you're in the wrong orbit, <br>
get back to your home planet by <a class="home" href="/">clicking here!</a></p>
</section>
</div>
</body>
</html> </html>

BIN
public/error_image/404.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 622 KiB