diff --git a/app/assets/javascripts/admin/store_manager.js b/app/assets/javascripts/admin/store_manager.js index 335aabf..5ee4dde 100644 --- a/app/assets/javascripts/admin/store_manager.js +++ b/app/assets/javascripts/admin/store_manager.js @@ -2,10 +2,11 @@ var StoreManager = function(){ var storeArea = $("#store-area"), loadingArea = storeArea.find(".loading-store"), loadingAreaStatus = loadingArea.find(".loading-status"), + waitForStoreResponseCount = 0, formArea = storeArea.find(".form-area"); var initialize = function(){ - loadingAreaStatus.text("Contacting Ruling Store"); + loadingAreaStatus.text("Contacting Ruling Store."); setTimeout(step1,1000); } @@ -16,7 +17,7 @@ var StoreManager = function(){ "url" : "/admin/store/check_credentials" }).done(function(status){ if(status.success == true){ - loadingAreaStatus.text("Checking permissions"); + loadingAreaStatus.text("Checking permissions."); setTimeout(step2,1000); }else if(status.success == false){ setTimeout(loadRegisterForm,1000); @@ -31,7 +32,7 @@ var StoreManager = function(){ "url" : "/admin/store/check_permissions" }).done(function(data){ if(data.success){ - loadingAreaStatus.text("Fetching store data") + loadingAreaStatus.text("Fetching store data."); setTimeout(loadTemplateStore,1000); }else if(!data.success){ loadingArea.find("img").hide(); @@ -47,8 +48,6 @@ var StoreManager = function(){ }).fail(showError); } - var resendEmail = function(){} - var loadTemplateStore = function(){ $.ajax({ "type" : "get", @@ -73,7 +72,7 @@ var StoreManager = function(){ form.on("submit",function(){ var email = form.find("#inputEmail").val(); if(email){ - loadingAreaStatus.text("Registering with Orbit Store") + loadingAreaStatus.text("Registering with Orbit Store.") formArea.hide(); loadingArea.show(); $.ajax({ @@ -83,9 +82,8 @@ var StoreManager = function(){ "data" : {"email" : email} }).done(function(data){ if(data.success){ - loadingArea.find("img").hide(); - loadingAreaStatus.text("Email sent to the address " + email + ". Please verify and come back."); - loadingArea.find("p").eq(1).remove(); + loadingAreaStatus.text("Waiting for Store."); + setTimeout(waitForStoreResponse,500); }else{ loadingArea.find("img").hide(); loadingAreaStatus.text(data.message); @@ -97,6 +95,50 @@ var StoreManager = function(){ }) }) } + + var waitForStoreResponse = function(){ + $.ajax({ + "type" : "get", + "dataType" : "json", + "url" : "/admin/store/check_credentials" + }).done(function(status){ + if(status.success == true){ + resendEmail(); + }else if(status.success == false){ + waitForStoreResponseCount++; + if(waitForStoreResponseCount > 5){ + loadingArea.find("img").hide(); + loadingAreaStatus.text("Orbit Store couldn't contact your server."); + loadingArea.find("p").eq(1).html("Please try again later or contact www.rulingcom.com."); + }else{ + setTimeout(waitForStoreResponse,500); + } + } + }).fail(showError); + } + + var resendEmail = function(){ + loadingArea.find("img").show(); + loadingAreaStatus.text("Sending verification email."); + loadingArea.find("p").eq(1).html("Please wait..."); + $.ajax({ + "url" : "/admin/store/send_email", + "dataType" : "json", + "type" : "get" + }).done(function(data){ + if(data.success){ + loadingArea.find("img").hide(); + loadingAreaStatus.text("Email sent to the address " + email + ". Please verify and come back."); + loadingArea.find("p").eq(1).hide(); + }else{ + loadingArea.find("img").hide(); + loadingAreaStatus.text("Email couldn't be sent to " + email + ". You can try again or contact www.rulingcom.com"); + loadingArea.find("p").eq(1).html("Please contact www.rulingcom.com."); + } + }).fail(showError); + } + + var showError = function(){ loadingArea.find("img").hide(); loadingAreaStatus.text("There was some unknown error."); diff --git a/app/controllers/admin/store_controller.rb b/app/controllers/admin/store_controller.rb index dbb3b09..de4a946 100644 --- a/app/controllers/admin/store_controller.rb +++ b/app/controllers/admin/store_controller.rb @@ -19,6 +19,17 @@ class Admin::StoreController < OrbitAdminController end + def send_email + params_to_send = {'store_token' => current_site.store_token} + uri = URI.parse(@store_url) + http = Net::HTTP.new(uri.host,uri.port) + request = Net::HTTP::Get.new("/site/send_email") + request.body = params_to_send.to_query + response = http.request(request) + data = JSON.parse(response.body) + render :json => data.to_json + end + def check_permissions params_to_send = {'store_token' => current_site.store_token} uri = URI.parse(@store_url) @@ -48,6 +59,7 @@ class Admin::StoreController < OrbitAdminController private def store_url - @store_url = "http://store.tp.rulingcom.com" + # @store_url = "http://store.tp.rulingcom.com" + @store_url = "http://localhost:3000" end end \ No newline at end of file diff --git a/app/views/email/user_confirmation_email.html.erb b/app/views/email/user_confirmation_email.html.erb index 7f0bd9f..3cd25ec 100644 --- a/app/views/email/user_confirmation_email.html.erb +++ b/app/views/email/user_confirmation_email.html.erb @@ -1,2 +1,2 @@ -
Thank you for registering your site with Orbit! Please click on the following link and confirm. This is to make sure we could provide you with a spam free experience. Thanks a lot.
+Thank you for registering! Please click on the following link and confirm. This is to make sure we could provide you with a spam free experience. Thanks a lot.
Please click to confirm \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index dec9784..11ab02f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -225,6 +225,7 @@ Orbit::Application.routes.draw do post "/store/register_site" => "store#register_site" get "/store/check_permissions" => "store#check_permissions" get "/store/template_store" => "store#template_store" + get "/store/send_email" => "store#send_email" get "import" => "import#index"