forked from saurabh/orbit4-5
fixed widget text image insert problem with chinese and also page import is changed to per page
This commit is contained in:
parent
b94f3ca2a1
commit
e558b916fe
|
@ -41,11 +41,13 @@ $(document).ready(function(){
|
|||
t = getUrlParam('CKEditor').split("_"),
|
||||
language = t[t.length-1];
|
||||
|
||||
language = (language == "tw" ? "zh_tw" : language);
|
||||
language = decodeURIComponent(language);
|
||||
language = (language == "tw" || language == "tw]" ? "zh_tw" : language);
|
||||
|
||||
if(language.endsWith("]")){
|
||||
var re = ("\\[(.*)]"),
|
||||
matches = language.match(re);
|
||||
console.log(matches)
|
||||
if(matches){
|
||||
language = matches[1];
|
||||
}
|
||||
|
|
|
@ -187,82 +187,71 @@ class Admin::ImportController < OrbitAdminController
|
|||
bulletin.save!
|
||||
end
|
||||
|
||||
def rss2_pages
|
||||
delete_import_file
|
||||
def rss2_pages_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)
|
||||
pages = data["pages"]
|
||||
@@import_stats["total_pages"] = data["total_pages"].to_i
|
||||
@@import_stats["current_status"] = 0
|
||||
@@import_stats["success"] = true
|
||||
write_to_file
|
||||
pages.each do |page|
|
||||
@@import_stats["current_page"] = page["page_id"]
|
||||
@@import_stats["current_page_name"] = page["title"]["zh_tw"]
|
||||
write_to_file
|
||||
if Page.where(:rss2_id => page["page_id"]).count == 0
|
||||
page_id = page["page_id"]
|
||||
number = 0
|
||||
while page_present?page_id
|
||||
page_id = page_id + "_" + (number + 1).to_s
|
||||
end
|
||||
p = Page.new(:page_id => page_id, :parent_page_id => Page.root.id, :page_type => "page", :url => "/#{page_id}", :module => "page_content", :enabled_for => ["en", "zh_tw"], :menu_enabled_for => ["en", "zh_tw"], :enabled_for_sitemap => ["en","zh_tw"], :name_translations => {"en"=>page["title"]["en"], "zh_tw" => page["title"]["zh_tw"]},:rss2_id => page["page_id"])
|
||||
p.save
|
||||
en = smart_downloader(page["content"]["en"],data["site_url"])
|
||||
zh_tw = smart_downloader(page["content"]["zh_tw"],data["site_url"])
|
||||
page_context = PageContext.new(:content_translations => {"en" => en,"zh_tw" => zh_tw}, :version => 1, :update_user_id => current_user.id, :page_id => p.id)
|
||||
page_context.save
|
||||
else
|
||||
p = Page.find_by(:rss2_id => page["page_id"])
|
||||
page_id = p.page_id
|
||||
end
|
||||
@@import_stats["current_status"] = @@import_stats["current_status"] + 1
|
||||
write_to_file
|
||||
if !page["childpages"].blank?
|
||||
childpages = page["childpages"]
|
||||
childpages.each_with_index do |childpage,i|
|
||||
@@import_stats["current_page"] = childpage["page_id"]
|
||||
@@import_stats["current_page_name"] = page["title"]["zh_tw"]
|
||||
write_to_file
|
||||
if Page.where(:rss2_id => childpage["page_id"]).count == 0
|
||||
p_id = page_id + "_" + i.to_s
|
||||
case childpage["type"]
|
||||
when "page"
|
||||
cp = Page.new(:page_id => p_id, :parent_page_id => p.id, :page_type => "page", :url => "/#{p.page_id}/#{p_id}", :module => "page_content", "enabled_for" => ["en", "zh_tw"], :menu_enabled_for => ["en", "zh_tw"], :enabled_for_sitemap => ["en","zh_tw"], :name_translations => {"en"=>childpage["title"]["en"], "zh_tw" => childpage["title"]["zh_tw"]},:rss2_id => childpage["page_id"])
|
||||
cp.save
|
||||
en = smart_downloader(childpage["content"]["en"],data["site_url"])
|
||||
zh_tw = smart_downloader(childpage["content"]["zh_tw"],data["site_url"])
|
||||
page_context = PageContext.new(:content_translations => {"en" => en,"zh_tw" => zh_tw}, :version => 1, :update_user_id => current_user.id, :page_id => cp.id)
|
||||
page_context.save
|
||||
when "exturl"
|
||||
cp = Page.new(:page_id => p_id, :parent_page_id => p.id, :page_type => "link", "url" => "/#{p.page_id}/#{p_id}", :enabled_for => ["en", "zh_tw"], :menu_enabled_for => ["en", "zh_tw"], :enabled_for_sitemap => ["en","zh_tw"], :name_translations => {"en"=>childpage["title"]["en"], "zh_tw" => childpage["title"]["zh_tw"]}, :external_url_translations => {"en" => childpage["url"], "zh_tw" => childpage["url"]},:rss2_id => childpage["page_id"])
|
||||
cp.save
|
||||
when "file"
|
||||
asset = Asset.new
|
||||
asset.remote_data_url = childpage["filename"]
|
||||
asset.title_translations = {"en" => childpage["file_title"], "zh_tw" =>childpage["file_title"]}
|
||||
asset.save!
|
||||
@user.assets << asset
|
||||
@user.save
|
||||
external_url = asset.data.url
|
||||
cp = Page.new(:page_id => p_id, :parent_page_id => p.id, :page_type => "link", "url" => "/#{p.page_id}/#{p_id}", :enabled_for => ["en", "zh_tw"], :menu_enabled_for => ["en", "zh_tw"], :enabled_for_sitemap => ["en","zh_tw"], :name_translations => {"en"=>childpage["title"]["en"], "zh_tw" => childpage["title"]["zh_tw"]}, :external_url_translations => {"en" => external_url, "zh_tw" => external_url},:rss2_id => childpage["page_id"])
|
||||
cp.save
|
||||
end
|
||||
end
|
||||
@@import_stats["current_status"] = @@import_stats["current_status"] + 1
|
||||
write_to_file
|
||||
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)
|
||||
render :json => {"success" => true, "pages" => data["pages"], "total_pages" => data["totalpages"]}.to_json
|
||||
end
|
||||
|
||||
def rss2_pages
|
||||
uri = URI.parse(params['url'])
|
||||
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)
|
||||
page = data["page"]
|
||||
|
||||
if Page.where(:rss2_id => page["page_id"]).count == 0
|
||||
page_id = page["page_id"]
|
||||
number = 0
|
||||
while page_present?page_id
|
||||
page_id = page_id + "_" + (number + 1).to_s
|
||||
end
|
||||
p = Page.new(:page_id => page_id, :parent_page_id => Page.root.id, :page_type => "page", :url => "/#{page_id}", :module => "page_content", :enabled_for => ["en", "zh_tw"], :menu_enabled_for => ["en", "zh_tw"], :enabled_for_sitemap => ["en","zh_tw"], :name_translations => {"en"=>page["title"]["en"], "zh_tw" => page["title"]["zh_tw"]},:rss2_id => page["page_id"])
|
||||
p.save
|
||||
en = smart_downloader(page["content"]["en"],data["site_url"])
|
||||
zh_tw = smart_downloader(page["content"]["zh_tw"],data["site_url"])
|
||||
page_context = PageContext.new(:content_translations => {"en" => en,"zh_tw" => zh_tw}, :version => 1, :update_user_id => current_user.id, :page_id => p.id)
|
||||
page_context.save
|
||||
else
|
||||
p = Page.find_by(:rss2_id => page["page_id"])
|
||||
page_id = p.page_id
|
||||
end
|
||||
if !page["childpages"].blank?
|
||||
childpages = page["childpages"]
|
||||
childpages.each_with_index do |childpage,i|
|
||||
if Page.where(:rss2_id => childpage["page_id"]).count == 0
|
||||
p_id = page_id + "_" + i.to_s
|
||||
case childpage["type"]
|
||||
when "page"
|
||||
cp = Page.new(:page_id => p_id, :parent_page_id => p.id, :page_type => "page", :url => "/#{p.page_id}/#{p_id}", :module => "page_content", "enabled_for" => ["en", "zh_tw"], :menu_enabled_for => ["en", "zh_tw"], :enabled_for_sitemap => ["en","zh_tw"], :name_translations => {"en"=>childpage["title"]["en"], "zh_tw" => childpage["title"]["zh_tw"]},:rss2_id => childpage["page_id"])
|
||||
cp.save
|
||||
en = smart_downloader(childpage["content"]["en"],data["site_url"])
|
||||
zh_tw = smart_downloader(childpage["content"]["zh_tw"],data["site_url"])
|
||||
page_context = PageContext.new(:content_translations => {"en" => en,"zh_tw" => zh_tw}, :version => 1, :update_user_id => current_user.id, :page_id => cp.id)
|
||||
page_context.save
|
||||
when "exturl"
|
||||
cp = Page.new(:page_id => p_id, :parent_page_id => p.id, :page_type => "link", "url" => "/#{p.page_id}/#{p_id}", :enabled_for => ["en", "zh_tw"], :menu_enabled_for => ["en", "zh_tw"], :enabled_for_sitemap => ["en","zh_tw"], :name_translations => {"en"=>childpage["title"]["en"], "zh_tw" => childpage["title"]["zh_tw"]}, :external_url_translations => {"en" => childpage["url"], "zh_tw" => childpage["url"]},:rss2_id => childpage["page_id"])
|
||||
cp.save
|
||||
when "file"
|
||||
asset = Asset.new
|
||||
asset.remote_data_url = childpage["filename"]
|
||||
asset.title_translations = {"en" => childpage["file_title"], "zh_tw" =>childpage["file_title"]}
|
||||
asset.save!
|
||||
@user.assets << asset
|
||||
@user.save
|
||||
external_url = asset.data.url
|
||||
cp = Page.new(:page_id => p_id, :parent_page_id => p.id, :page_type => "link", "url" => "/#{p.page_id}/#{p_id}", :enabled_for => ["en", "zh_tw"], :menu_enabled_for => ["en", "zh_tw"], :enabled_for_sitemap => ["en","zh_tw"], :name_translations => {"en"=>childpage["title"]["en"], "zh_tw" => childpage["title"]["zh_tw"]}, :external_url_translations => {"en" => external_url, "zh_tw" => external_url},:rss2_id => childpage["page_id"])
|
||||
cp.save
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# end
|
||||
# @@thread.join
|
||||
# @@thread.abort_on_exception = true
|
||||
end
|
||||
render :json => {"success"=>true}.to_json
|
||||
end
|
||||
|
||||
|
|
|
@ -189,7 +189,8 @@
|
|||
$("#import-start-btn").click(function(){
|
||||
switch(module){
|
||||
case "pages":
|
||||
importPages();
|
||||
$(this).fadeOut();
|
||||
getPagesInfo();
|
||||
break;
|
||||
case "gallery":
|
||||
importGallery();
|
||||
|
@ -213,21 +214,56 @@
|
|||
});
|
||||
});
|
||||
|
||||
var importPages = function(){
|
||||
var pagesData = null;
|
||||
var getPagesInfo = function(){
|
||||
$("#import-progress .bar").css('width','0%');
|
||||
$("#import-progress-text").html("Importing Pages...<br/>");
|
||||
$.ajax({
|
||||
type: "post",
|
||||
type: "get",
|
||||
dataType: "json",
|
||||
url: '<%= admin_import_rss2_pages_path %>',
|
||||
url: '<%= admin_import_rss2_pages_info_path %>',
|
||||
data : {"url" : url+'?module='+module}
|
||||
}).done(function(){
|
||||
}).done(function(data){
|
||||
if(data.success){
|
||||
pagesData = data.pages;
|
||||
importPage(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();
|
||||
})
|
||||
startCheckingImportStatus();
|
||||
}
|
||||
|
||||
var importPage = function(number){
|
||||
var current_page = pagesData[number];
|
||||
$.ajax({
|
||||
type : "get",
|
||||
dataType : "json",
|
||||
data : {"url" : url+'?module=' + module + "&page_id=" + current_page.ID},
|
||||
url : "<%= admin_import_rss2_pages_path %>"
|
||||
}).done(function(status){
|
||||
if(status.success == true){
|
||||
var percent = ((number + 1) * 100) / pagesData.length;
|
||||
$("#import-progress .bar").css('width',percent + "%");
|
||||
$("#import-progress-text").html("Importing page " + current_page.ID + "<br/>");
|
||||
if((number + 1) < pagesData.length){
|
||||
importPage(number + 1);
|
||||
}else{
|
||||
$("#import-progress .bar").css('width',"100%");
|
||||
$("#import-progress-text").html("Finished importing pages.");
|
||||
}
|
||||
}
|
||||
}).fail(function(){
|
||||
$("#alert-msg").append("Error importing page " + current_page.ID + "<br />");
|
||||
$(".alert-danger").removeClass("hide").show();
|
||||
if((number + 1) < pagesData.length){
|
||||
importPage(number + 1);
|
||||
}else{
|
||||
$("#import-progress .bar").css('width',"100%");
|
||||
$("#import-progress-text").html("Finished importing pages.");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
var importLinks = function(){
|
||||
|
@ -490,38 +526,7 @@
|
|||
})
|
||||
}
|
||||
|
||||
var startCheckingImportStatus = function(){
|
||||
$.ajax({
|
||||
type : "get",
|
||||
dataType : "json",
|
||||
data : {"module" : module},
|
||||
url : "<%= admin_import_get_import_status_path %>"
|
||||
}).done(function(status){
|
||||
if(status.success == true){
|
||||
if(status.total_pages != null){
|
||||
var percent = (status.current_status * 100) / status.total_pages;
|
||||
$("#import-progress .bar").css('width',percent + "%");
|
||||
$("#import-progress-text").html("Importing page " + status.current_page_name + " .. " + status.current_status + "/" + status.total_pages + "<br/>");
|
||||
}
|
||||
if(status.total_pages != status.current_status){
|
||||
setTimeout("startCheckingImportStatus()",700);
|
||||
}else{
|
||||
if(status.total_pages == null){
|
||||
setTimeout("startCheckingImportStatus()",700);
|
||||
}
|
||||
$("#import-progress-text").html("Finished importing pages.<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_page_name + " ID : " + status.current_page)
|
||||
$(".alert-danger").removeClass("hide").show();
|
||||
}
|
||||
}).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 importModule = function(m){
|
||||
module = m;
|
||||
|
|
|
@ -217,7 +217,8 @@ Orbit::Application.routes.draw do
|
|||
get "import/module_data" => "import#module_data"
|
||||
post "import/rss2_news" => "import#rss2_news"
|
||||
post "import/rss2_archive" => "import#rss2_archive"
|
||||
post "import/rss2_pages" => "import#rss2_pages"
|
||||
get "import/rss2_pages" => "import#rss2_pages"
|
||||
get "import/rss2_pages_info" => "import#rss2_pages_info"
|
||||
get "import/get_import_status" => "import#get_import_status"
|
||||
post "import/rss2_galleries" => "import#rss2_galleries"
|
||||
post "import/rss2_album_image" => "import#rss2_album_image"
|
||||
|
|
Loading…
Reference in New Issue