forked from saurabh/orbit4-5
191 lines
5.5 KiB
JavaScript
191 lines
5.5 KiB
JavaScript
var StoreManager = function(section){
|
|
var storeArea = $("#store-area"),
|
|
loadingArea = storeArea.find(".loading-store"),
|
|
loadingAreaStatus = loadingArea.find(".loading-status"),
|
|
waitForStoreResponseCount = 0,
|
|
section = section,
|
|
formArea = storeArea.find(".form-area");
|
|
|
|
var initialize = function(){
|
|
loadingArea.find("img").show();
|
|
loadingAreaStatus.text("Contacting Ruling Store.");
|
|
loadingArea.find("p").eq(1).html("Please wait...");
|
|
setTimeout(step1,1000);
|
|
}
|
|
|
|
var step1 = function(){
|
|
$.ajax({
|
|
"type" : "get",
|
|
"dataType" : "json",
|
|
"url" : "/admin/store/check_credentials"
|
|
}).done(function(status){
|
|
if(status.success == true){
|
|
loadingAreaStatus.text("Checking permissions.");
|
|
setTimeout(step2,1000);
|
|
}else if(status.success == false){
|
|
setTimeout(loadRegisterForm,1000);
|
|
}
|
|
}).fail(showError);
|
|
}
|
|
|
|
var step2 = function(){
|
|
$.ajax({
|
|
"type" : "get",
|
|
"dataType" : "json",
|
|
"url" : "/admin/store/check_permissions"
|
|
}).done(function(data){
|
|
if(data.success){
|
|
loadingAreaStatus.text("Fetching store data.");
|
|
if(section == "templates"){
|
|
setTimeout(loadTemplateStore,1000);
|
|
}else if(section == "apps"){
|
|
setTimeout(loadAppStore,1000);
|
|
}
|
|
}else if(!data.success){
|
|
loadingArea.find("img").hide();
|
|
loadingAreaStatus.text(data.message);
|
|
if(data.error == "SITE_NOT_CONFIRMED"){
|
|
var resentBtn = $("<a href=''>Resend Email</a>");
|
|
resentBtn.on("click",function(){
|
|
resendEmail();
|
|
return false;
|
|
})
|
|
loadingArea.find("p").eq(1).html(resentBtn);
|
|
}else if(data.error == "SITE_PERMISSION_DENIED"){
|
|
loadingArea.find("p").eq(1).html("Please contact <a href='http://www.rulingcom.com/'>www.rulingcom.com</a>.");
|
|
}else{
|
|
loadingArea.find("p").eq(1).html("Please contact <a href='http://www.rulingcom.com/'>www.rulingcom.com</a>.");
|
|
}
|
|
}
|
|
}).fail(showError);
|
|
}
|
|
|
|
var loadTemplateStore = function(){
|
|
$.ajax({
|
|
"type" : "get",
|
|
"dataType" : "html",
|
|
"url" : "/admin/store/template_store"
|
|
}).done(function(html){
|
|
storeArea.html(html);
|
|
}).fail(showError);
|
|
}
|
|
|
|
var loadAppStore = function(){
|
|
$.ajax({
|
|
"type" : "get",
|
|
"dataType" : "html",
|
|
"url" : "/admin/store/app_store"
|
|
}).done(function(html){
|
|
storeArea.html(html);
|
|
}).fail(showError);
|
|
}
|
|
|
|
var loadTemplateStore = function(){
|
|
$.ajax({
|
|
"type" : "get",
|
|
"dataType" : "html",
|
|
"url" : "/admin/store/template_store"
|
|
}).done(function(html){
|
|
storeArea.html(html);
|
|
}).fail(showError);
|
|
}
|
|
|
|
var loadRegisterForm = function(){
|
|
loadingAreaStatus.text("Loading registeration form.")
|
|
$.ajax({
|
|
"type" : "get",
|
|
"dataType" : "html",
|
|
"url" : "/admin/store/register_form"
|
|
}).done(function(html){
|
|
loadingArea.hide();
|
|
formArea.html(html);
|
|
var form = formArea.find("form");
|
|
new FormValidator(form);
|
|
form.on("submit",function(){
|
|
var email = form.find("#inputEmail").val();
|
|
if(email){
|
|
loadingAreaStatus.text("Registering with Orbit Store.")
|
|
formArea.hide();
|
|
loadingArea.show();
|
|
$.ajax({
|
|
"type" : "post",
|
|
"url" : form.attr("action"),
|
|
"dataType" : "json",
|
|
"data" : {"email" : email}
|
|
}).done(function(data){
|
|
if(data.success){
|
|
loadingAreaStatus.text("Waiting for Store.");
|
|
setTimeout(waitForStoreResponse,500);
|
|
}else{
|
|
loadingArea.find("img").hide();
|
|
loadingAreaStatus.text(data.message);
|
|
loadingArea.find("p").eq(1).html("Please contact <a href='http://www.rulingcom.com/'>www.rulingcom.com</a>.");
|
|
}
|
|
}).fail(showError)
|
|
}
|
|
return false;
|
|
})
|
|
})
|
|
}
|
|
|
|
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 <a href='http://www.rulingcom.com/'>www.rulingcom.com</a>.");
|
|
}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. Please confirm and click on link below or refresh the page.");
|
|
var checkAgainBtn = $("<a href=''>Check Again</a>");
|
|
checkAgainBtn.on("click",function(){
|
|
initialize();
|
|
return false;
|
|
})
|
|
loadingArea.find("p").eq(1).html(checkAgainBtn);
|
|
}else{
|
|
loadingArea.find("img").hide();
|
|
loadingAreaStatus.text("Email couldn't be sent. You can try again or contact <a href='http://www.rulingcom.com'>www.rulingcom.com</a>");
|
|
loadingArea.find("p").eq(1).html("Please contact <a href='http://www.rulingcom.com/'>www.rulingcom.com</a>.");
|
|
}
|
|
}).fail(showError);
|
|
}
|
|
|
|
|
|
var showError = function(){
|
|
loadingArea.find("img").hide();
|
|
loadingAreaStatus.text("There was some unknown error.");
|
|
loadingArea.find("p").eq(1).html("Please try again later or contact <a href='http://www.rulingcom.com/'>www.rulingcom.com</a>.");
|
|
}
|
|
|
|
initialize();
|
|
}
|
|
|
|
|
|
|
|
// step 1 -> check connection to store server
|
|
// step 2 -> check for site confirmation and access permission
|