forked from saurabh/orbit4-5
important update with some fixes in member import and also site preferences and page imports
This commit is contained in:
parent
5b3b009f65
commit
fe1a87aae4
|
@ -197,6 +197,7 @@ class Admin::ImportController < OrbitAdminController
|
||||||
render :json => {"success" => true, "pages" => data["pages"], "total_pages" => data["totalpages"]}.to_json
|
render :json => {"success" => true, "pages" => data["pages"], "total_pages" => data["totalpages"]}.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def rss2_pages
|
def rss2_pages
|
||||||
uri = URI.parse(params['url'])
|
uri = URI.parse(params['url'])
|
||||||
http = Net::HTTP.new(uri.host, uri.port)
|
http = Net::HTTP.new(uri.host, uri.port)
|
||||||
|
@ -222,37 +223,41 @@ class Admin::ImportController < OrbitAdminController
|
||||||
p = Page.find_by(:rss2_id => page["page_id"])
|
p = Page.find_by(:rss2_id => page["page_id"])
|
||||||
page_id = p.page_id
|
page_id = p.page_id
|
||||||
end
|
end
|
||||||
if !page["childpages"].blank?
|
render :json => {"success"=>true,"childpages" => page["childpages"],"page_id" => p.id.to_s,"site_url" => data["site_url"]}.to_json
|
||||||
childpages = page["childpages"]
|
end
|
||||||
childpages.each_with_index do |childpage,i|
|
|
||||||
if Page.where(:rss2_id => childpage["page_id"]).count == 0
|
def rss2_child_page
|
||||||
p_id = page_id + "_" + i.to_s
|
childpage = params["childpage"]
|
||||||
case childpage["type"]
|
page_id = params["page_id"]
|
||||||
when "page"
|
site_url = params["site_url"]
|
||||||
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"])
|
current_index = params["current_index"]
|
||||||
cp.save
|
page = Page.find(page_id)
|
||||||
en = smart_downloader(childpage["content"]["en"],data["site_url"])
|
if !childpage.blank?
|
||||||
zh_tw = smart_downloader(childpage["content"]["zh_tw"],data["site_url"])
|
p_id = page.page_id + "_" + current_index
|
||||||
page_context = PageContext.new(:content_translations => {"en" => en,"zh_tw" => zh_tw}, :version => 1, :update_user_id => current_user.id, :page_id => cp.id)
|
case childpage["type"]
|
||||||
page_context.save
|
when "page"
|
||||||
when "exturl"
|
cp = Page.new(:page_id => p_id, :parent_page_id => page.id, :page_type => "page", :url => "/#{page.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 = 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
|
||||||
cp.save
|
en = smart_downloader(childpage["content"]["en"],site_url)
|
||||||
when "file"
|
zh_tw = smart_downloader(childpage["content"]["zh_tw"],site_url)
|
||||||
asset = Asset.new
|
page_context = PageContext.new(:content_translations => {"en" => en,"zh_tw" => zh_tw}, :version => 1, :update_user_id => current_user.id, :page_id => cp.id)
|
||||||
asset.remote_data_url = childpage["filename"]
|
page_context.save
|
||||||
asset.title_translations = {"en" => childpage["file_title"], "zh_tw" =>childpage["file_title"]}
|
when "exturl"
|
||||||
asset.save!
|
cp = Page.new(:page_id => p_id, :parent_page_id => page.id, :page_type => "link", "url" => "/#{page.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"])
|
||||||
@user.assets << asset
|
cp.save
|
||||||
@user.save
|
when "file"
|
||||||
external_url = asset.data.url
|
asset = Asset.new
|
||||||
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"])
|
asset.remote_data_url = childpage["filename"]
|
||||||
cp.save
|
asset.title_translations = {"en" => childpage["file_title"], "zh_tw" =>childpage["file_title"]}
|
||||||
end
|
asset.save!
|
||||||
|
@user.assets << asset
|
||||||
|
@user.save
|
||||||
|
external_url = asset.data.url
|
||||||
|
cp = Page.new(:page_id => p_id, :parent_page_id => page.id, :page_type => "link", "url" => "/#{page.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
|
||||||
end
|
render :json => {"success"=>true}.to_json
|
||||||
render :json => {"success"=>true}.to_json
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_import_status
|
def get_import_status
|
||||||
|
@ -457,7 +462,7 @@ class Admin::ImportController < OrbitAdminController
|
||||||
|
|
||||||
if field.nil?
|
if field.nil?
|
||||||
field = AttributeField.new(key: key, title_translations: {"en"=>rss2_field["name"]["en"],"zh_tw"=>rss2_field["name"]["zh-tw"]})
|
field = AttributeField.new(key: key, title_translations: {"en"=>rss2_field["name"]["en"],"zh_tw"=>rss2_field["name"]["zh-tw"]})
|
||||||
field["markup"] = rss2_field["type"]
|
field["markup"] = rss2_field["type"] || "text_field"
|
||||||
role.attribute_fields << field
|
role.attribute_fields << field
|
||||||
field.save
|
field.save
|
||||||
end
|
end
|
||||||
|
@ -484,6 +489,10 @@ class Admin::ImportController < OrbitAdminController
|
||||||
value = new_member.attribute_values.build(key: key, attribute_field_id: field.id, value: index)
|
value = new_member.attribute_values.build(key: key, attribute_field_id: field.id, value: index)
|
||||||
value.save
|
value.save
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
field_value = rss2_field["value"].is_a?(Hash) ? {"en"=>rss2_field["value"]["en"],"zh_tw"=>rss2_field["value"]["zh-tw"]} : {"en"=>rss2_field["value"],"zh_tw"=>rss2_field["value"]} rescue nil
|
||||||
|
value = new_member.attribute_values.build(key: field.key, attribute_field_id: field.id, value: field_value)
|
||||||
|
value.save
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
# Role status
|
# Role status
|
||||||
|
|
|
@ -20,7 +20,7 @@ module AttributeFieldsHelper
|
||||||
@new_attribute = @attribute_value.nil?
|
@new_attribute = @attribute_value.nil?
|
||||||
@attribute_value = @attribute_value || (attribute_type.eql?("role") ? @member.attribute_values.build(attribute_field_id: id) : @member.member_profile_field_values.build(member_profile_field: id))
|
@attribute_value = @attribute_value || (attribute_type.eql?("role") ? @member.attribute_values.build(attribute_field_id: id) : @member.member_profile_field_values.build(member_profile_field: id))
|
||||||
@prefiled_value = @attribute_value.value rescue nil
|
@prefiled_value = @attribute_value.value rescue nil
|
||||||
return instance_eval("render_#{markup}") #rescue ""
|
return instance_eval("render_#{markup}") rescue ""
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
class Site
|
class Site
|
||||||
include Mongoid::Document
|
include Mongoid::Document
|
||||||
include Mongoid::Timestamps
|
include Mongoid::Timestamps
|
||||||
|
include Slug
|
||||||
|
|
||||||
field :title, type: String, localize: true
|
field :title, as: :slug_title, type: String, localize: true
|
||||||
field :school, type: String
|
field :school, type: String
|
||||||
field :department, type: String
|
field :department, type: String
|
||||||
field :address, type: String
|
field :address, type: String
|
||||||
|
@ -40,10 +41,6 @@ class Site
|
||||||
mount_uploader :site_logo, ImageUploader
|
mount_uploader :site_logo, ImageUploader
|
||||||
mount_uploader :favicon, ImageUploader
|
mount_uploader :favicon, ImageUploader
|
||||||
mount_uploader :mobile_icon, ImageUploader
|
mount_uploader :mobile_icon, ImageUploader
|
||||||
def to_param
|
|
||||||
I18n.locale = :en
|
|
||||||
title.parameterize
|
|
||||||
end
|
|
||||||
|
|
||||||
def confirm_store(site_token)
|
def confirm_store(site_token)
|
||||||
if self.site_token.eql?(site_token)
|
if self.site_token.eql?(site_token)
|
||||||
|
|
|
@ -217,6 +217,7 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
var pagesData = null;
|
var pagesData = null;
|
||||||
|
var childPagesData = null;
|
||||||
var getPagesInfo = function(){
|
var getPagesInfo = function(){
|
||||||
$("#import-progress .bar").css('width','0%');
|
$("#import-progress .bar").css('width','0%');
|
||||||
$("#import-progress-text").html("Importing Pages...<br/>");
|
$("#import-progress-text").html("Importing Pages...<br/>");
|
||||||
|
@ -249,12 +250,15 @@
|
||||||
dataType : "json",
|
dataType : "json",
|
||||||
data : {"url" : url+'?module=' + module + "&page_id=" + current_page.ID},
|
data : {"url" : url+'?module=' + module + "&page_id=" + current_page.ID},
|
||||||
url : "<%= admin_import_rss2_pages_path %>"
|
url : "<%= admin_import_rss2_pages_path %>"
|
||||||
}).done(function(status){
|
}).done(function(data){
|
||||||
if(status.success == true){
|
if(data.success == true){
|
||||||
var percent = ((number + 1) * 100) / pagesData.length;
|
var percent = ((number + 1) * 100) / pagesData.length;
|
||||||
$("#import-progress .bar").css('width',percent + "%");
|
$("#import-progress .bar").css('width',percent + "%");
|
||||||
$("#import-progress-text").html("Importing page " + current_page.ID + "<br/>");
|
$("#import-progress-text").html("Importing page " + current_page.ID + "<br/>");
|
||||||
if((number + 1) < pagesData.length){
|
if(data.childpages.length > 0){
|
||||||
|
childPagesData = data.childpages;
|
||||||
|
importChildPage(0,number,data.site_url,data.page_id, current_page.ID);
|
||||||
|
}else if((number + 1) < pagesData.length){
|
||||||
importPage(number + 1);
|
importPage(number + 1);
|
||||||
}else{
|
}else{
|
||||||
$("#import-progress .bar").css('width',"100%");
|
$("#import-progress .bar").css('width',"100%");
|
||||||
|
@ -273,6 +277,39 @@
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var importChildPage = function(childPageNumber, parentPageNumber, site_url, page_id, current_page_id){
|
||||||
|
var current_page = childPagesData[childPageNumber];
|
||||||
|
$("#import-progress-text").html("Importing child pages for page " + current_page_id + ". This may take a while.<br/>");
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
dataType : "json",
|
||||||
|
data : {"childpage" : current_page, "site_url" : site_url, "page_id" : page_id, "current_index" : childPageNumber},
|
||||||
|
url : "<%= admin_import_rss2_child_page_path %>"
|
||||||
|
}).done(function(data){
|
||||||
|
if(data.success == true){
|
||||||
|
if((childPageNumber + 1) < childPagesData.length){
|
||||||
|
importChildPage((childPageNumber + 1), parentPageNumber, site_url, page_id, current_page_id);
|
||||||
|
}else if((parentPageNumber + 1) < pagesData.length){
|
||||||
|
importPage(parentPageNumber + 1)
|
||||||
|
}else{
|
||||||
|
$("#import-progress .bar").css('width',"100%");
|
||||||
|
$("#import-progress-text").html("Finished importing pages.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).fail(function(){
|
||||||
|
$("#alert-msg").append("Importing failed for page " + current_page[title][zh_tw] + ", please try manually or retry.<br />");
|
||||||
|
$(".alert-danger").removeClass("hide").show();
|
||||||
|
if((childPageNumber + 1) < childPagesData.length){
|
||||||
|
importChildPage((childPageNumber + 1), parentPageNumber);
|
||||||
|
}else if((parentPageNumber + 1) < pagesData.length){
|
||||||
|
importPage(parentPageNumber + 1)
|
||||||
|
}else{
|
||||||
|
$("#import-progress .bar").css('width',"100%");
|
||||||
|
$("#import-progress-text").html("Finished importing pages.");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
var importLinks = function(){
|
var importLinks = function(){
|
||||||
$("#import-progress .bar").css('width','0%');
|
$("#import-progress .bar").css('width','0%');
|
||||||
$("#import-progress-text").html("Importing Links...<br/>");
|
$("#import-progress-text").html("Importing Links...<br/>");
|
||||||
|
|
|
@ -218,6 +218,7 @@ Orbit::Application.routes.draw do
|
||||||
post "import/rss2_news" => "import#rss2_news"
|
post "import/rss2_news" => "import#rss2_news"
|
||||||
post "import/rss2_archive" => "import#rss2_archive"
|
post "import/rss2_archive" => "import#rss2_archive"
|
||||||
get "import/rss2_pages" => "import#rss2_pages"
|
get "import/rss2_pages" => "import#rss2_pages"
|
||||||
|
post "import/rss2_child_page" => "import#rss2_child_page"
|
||||||
get "import/rss2_pages_info" => "import#rss2_pages_info"
|
get "import/rss2_pages_info" => "import#rss2_pages_info"
|
||||||
get "import/get_import_status" => "import#get_import_status"
|
get "import/get_import_status" => "import#get_import_status"
|
||||||
post "import/rss2_galleries" => "import#rss2_galleries"
|
post "import/rss2_galleries" => "import#rss2_galleries"
|
||||||
|
|
Loading…
Reference in New Issue