diff --git a/app/controllers/admin/import_controller.rb b/app/controllers/admin/import_controller.rb index bf6d4ab..850263b 100644 --- a/app/controllers/admin/import_controller.rb +++ b/app/controllers/admin/import_controller.rb @@ -271,18 +271,14 @@ class Admin::ImportController < OrbitAdminController render :json => settings.to_json end - def rss2_members - uri = URI.parse(params['url']) + def rss2_members_info + 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) - @@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.each do |key,rss2_role| @@ -327,13 +323,22 @@ class Admin::ImportController < OrbitAdminController 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"] 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 new_member = MemberProfile.find_by(rss2_id: member["rss2_id"]) rescue nil if new_member.nil? @@ -505,8 +510,6 @@ class Admin::ImportController < OrbitAdminController end new_member.save - @@import_stats["current_status"] = @@import_stats["current_status"] + 1 - write_to_file if member["user_id"].present? user = User.new user.user_name = member["user_id"] @@ -897,8 +900,8 @@ class Admin::ImportController < OrbitAdminController "en" => diploma["degree"]["en"], "zh_tw" => diploma["degree"]["zh-tw"]}, :language => diploma["language"].gsub('-','_'), - :start_date => Date.strptime(diploma["start_date"], '%Y-%m'), - :end_date => Date.strptime(diploma["end_date"], '%Y-%m'), + :start_date => (Date.strptime(diploma["start_date"], '%Y-%m') rescue nil), + :end_date => (Date.strptime(diploma["end_date"], '%Y-%m') rescue nil), :rss2_id => diploma["rss2_id"]) new_diploma.member_profile = member new_diploma.save diff --git a/app/views/admin/import/index.html.erb b/app/views/admin/import/index.html.erb index e70767f..2c6a0da 100644 --- a/app/views/admin/import/index.html.erb +++ b/app/views/admin/import/index.html.erb @@ -198,7 +198,8 @@ importLinks(); break; case "members": - importMembers(); + $(this).fadeOut(); + importMembersInfo(); break; default: getModuleCategories(); @@ -280,7 +281,7 @@ var percent = ((number + 1) * 100) / total; $("#import-progress .bar").css('width',percent + "%"); if(number != (total - 1)){ - setTimeout(importImagesForAlbums(number + 1),300) + setTimeout(importImagesForAlbums(number + 1),300); }else{ $("#import-progress-text").html("Finished importing albums."); } @@ -294,30 +295,57 @@ } - var sto = null; - var new_members_data = null; - var importMembers = function(){ + var sto = null, + new_members_data = [], + number_of_members_to_import = 5, + total_members = 0, + maximum_member_pages = 0; + + var importMembersInfo = function(){ $("#import-progress .bar").css('width', '0%'); - $("#import-progress-text").html("Importing Member..
"); + $("#import-progress-text").html("Getting Member Info..
"); $.ajax({ type: "post", - url: '<%= admin_import_rss2_members_path %>', + url: '<%= admin_import_rss2_members_info_path %>', data : {"url" : url+'?module='+module} }).done(function(data){ if(data.success == true){ - // clearTimeout(sto); - $("#import-progress-text").html("Finished importing Members.
"); - $("#import-progress .bar").css('width', '100%'); - new_members_data = data.members; - importPlugins(0); + $("#import-progress-text").html("Now importing Members.
"); + total_members = parseInt(data.total_users); + maximum_member_pages = Math.ceil(total_members / number_of_members_to_import) - 1; + importMembers(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..
"); + $.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(){ $("#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); }) - // sto = setTimeout("startCheckingMemberImportStatus()",700); } var plugins = ["patents","books", "projects", "researches", "honors", "diplomas", "experiences", "journalpapers", "conferencespapers"]; 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); $("#import-progress .bar").css('width', '0%'); $("#import-progress-text").html(member_status + "
"); - 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]; $("#import-progress-text #plugin_name").html(plugin.charAt(0).toUpperCase() + plugin.slice(1)); $.ajax({ @@ -351,7 +380,7 @@ } }).fail(function(){ 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) + ".
"); $(".alert-danger").removeClass("hide").show(); if(p != plugins.length - 1){ importplugin(id, p + 1, number); @@ -359,6 +388,7 @@ if((number + 1) != new_members_data.length){ importPlugins(number + 1); }else{ + $("#import-progress .bar").css('width', '100%'); $("#import-progress-text").html("Importing members finished."); } } diff --git a/built_in_extensions.rb b/built_in_extensions.rb index c3455c6..54a27d7 100644 --- a/built_in_extensions.rb +++ b/built_in_extensions.rb @@ -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" #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" diff --git a/config/routes.rb b/config/routes.rb index e23e89d..57b00ff 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -223,6 +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" + post "import/rss2_members_info" => "import#rss2_members_info" get "import/import_plugin" => "import#import_plugin" end diff --git a/public/404.html b/public/404.html index ba2028c..2fcaa99 100644 --- a/public/404.html +++ b/public/404.html @@ -1,28 +1,63 @@ - - - - - - - - - - -
-
-
-
-

Page not found!

-

The page you were looking for doesn’t exist.

-
-
-
- - + + + + + Page not found + + + + +
+
+

404

+

Page not found

+

Sorry, it seems like you're in the wrong orbit,
+ get back to your home planet by clicking here!

+
+
+ \ No newline at end of file diff --git a/public/error_image/404.jpg b/public/error_image/404.jpg new file mode 100644 index 0000000..219d0e5 Binary files /dev/null and b/public/error_image/404.jpg differ