forked from saurabh/orbit4-5
book import complete with mobile page enable and disable
This commit is contained in:
parent
e94ee50674
commit
e00ec26409
|
@ -682,6 +682,46 @@ class Admin::ImportController < OrbitAdminController
|
||||||
render :json => {"success" => true}.to_json
|
render :json => {"success" => true}.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def import_books
|
||||||
|
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=1&plugin=book")
|
||||||
|
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)
|
||||||
|
books = data["books"]
|
||||||
|
member = MemberProfile.where(:rss2_id => "1").first
|
||||||
|
books.each do |book|
|
||||||
|
author_types = book["author_type"]
|
||||||
|
book_types = book["book_types"]
|
||||||
|
|
||||||
|
new_book = Book.new(:book_title_translations => {"en" => book["book_title"]["en"], "zh_tw" => book["book_title"]["zh-tw"]}, :extracted_chapters_translations => {"en" => book["extracted_chapters"]["en"], "zh_tw" => book["extracted_chapters"]["zh-tw"]}, :publisher_translations => {"en" => book["publishers"]["en"], "zh_tw" => book["publishers"]["zh-tw"]}, :editor_translations => {"en" => book["editor"]["en"], "zh_tw" => book["editor"]["zh-tw"]}, :year => book["year"], :language => book["language"].sub("-","_"), :pages => book["number_of_pages"], :isbn => book["issn"], :publication_date => book["publication_date"], :url => book["reference_url"], :note => book["note"], :rss2_id => book["rss2_id"])
|
||||||
|
new_book.member_profile = member
|
||||||
|
book_file = new_book.book_files.new
|
||||||
|
book_file.remote_member_book_file_url = book["file"]["file"]
|
||||||
|
book_file.title_translations = {"en" => book["file"]["name"], "zh_tw" => book["file"]["name"]}
|
||||||
|
book_file.save
|
||||||
|
author_types.each do |author|
|
||||||
|
bat = BookAuthorType.where(:title => author).first
|
||||||
|
if bat.nil?
|
||||||
|
bat = BookAuthorType.new(:title_translations => {"en" => author, "zh_tw" => author})
|
||||||
|
bat.save
|
||||||
|
end
|
||||||
|
new_book.book_author_types << bat
|
||||||
|
end
|
||||||
|
book_types.each do |type|
|
||||||
|
bt = BookType.where(:title => type["zh-tw"]).first
|
||||||
|
if bt.nil?
|
||||||
|
bt = BookType.new(:title_translations => {"en" => type["en"], "zh_tw" => type["zh-tw"]})
|
||||||
|
bt.save
|
||||||
|
end
|
||||||
|
new_book.book_type = bt
|
||||||
|
end
|
||||||
|
new_book.save
|
||||||
|
end
|
||||||
|
render :json => {"succes" => true}.to_json
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def page_present?(page)
|
def page_present?(page)
|
||||||
|
|
|
@ -32,13 +32,7 @@ class PagesController < ApplicationController
|
||||||
impressionist(page)
|
impressionist(page)
|
||||||
OrbitHelper.set_params params
|
OrbitHelper.set_params params
|
||||||
OrbitHelper.set_site_locale locale
|
OrbitHelper.set_site_locale locale
|
||||||
final_page = render_final_page("home",page,true)
|
render :html => render_final_page("home",page,true).html_safe
|
||||||
if session[:zh_cn]
|
|
||||||
final_page = ZhConv.convert("zh-cn", final_page)
|
|
||||||
final_page.gsub!('/zh_tw/','/zh_cn/')
|
|
||||||
final_page.sub!('<a href="/zh_cn/news">繁体中文</a>','<a href="/zh_tw/news">繁体中文</a>')
|
|
||||||
end
|
|
||||||
render :html => final_page.html_safe
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
@ -67,6 +61,10 @@ class PagesController < ApplicationController
|
||||||
end
|
end
|
||||||
page = Page.find_by_param(params[:page_id])
|
page = Page.find_by_param(params[:page_id])
|
||||||
if !page.nil?
|
if !page.nil?
|
||||||
|
if !page.enabled_for_mobile && !$mobile.blank?
|
||||||
|
render :file => "#{Rails.root}/public/404.html", :layout => false, :status => :not_found
|
||||||
|
return
|
||||||
|
end
|
||||||
if page.enabled_for.include? I18n.locale.to_s
|
if page.enabled_for.include? I18n.locale.to_s
|
||||||
module_app = page.module.downcase.pluralize
|
module_app = page.module.downcase.pluralize
|
||||||
params[:target_controller] = "#{module_app}"
|
params[:target_controller] = "#{module_app}"
|
||||||
|
@ -304,15 +302,16 @@ class PagesController < ApplicationController
|
||||||
page = Page.find(params[:page][:parent_page])
|
page = Page.find(params[:page][:parent_page])
|
||||||
page.url = page.url == "/" ? "" : page.url
|
page.url = page.url == "/" ? "" : page.url
|
||||||
@url = page.url + "/#{params[:page][:page_id]}"
|
@url = page.url + "/#{params[:page][:page_id]}"
|
||||||
p = params.require(:page).permit(:number, :page_type, :page_id, :module, :layout, :parent_page, :data_count, enabled_for_sitemap: [], enabled_for: [], menu_enabled_for: [], categories: [], name_translations: [:en, :zh_tw],external_url_translations: [:en, :zh_tw])
|
p = params.require(:page).permit(:number, :page_type, :page_id, :module, :layout, :parent_page, :data_count, :enabled_for_mobile, enabled_for_sitemap: [], enabled_for: [], menu_enabled_for: [], categories: [], name_translations: [:en, :zh_tw],external_url_translations: [:en, :zh_tw])
|
||||||
p["url"] = @url
|
p["url"] = @url
|
||||||
p
|
p
|
||||||
end
|
end
|
||||||
|
|
||||||
def page_update_params
|
def page_update_params
|
||||||
p = params.require(:page).permit(:number, :page_type, :page_id, :module, :layout, :parent_page, :data_count, enabled_for_sitemap: [], enabled_for: [],menu_enabled_for: [], categories: [], name_translations: [:en, :zh_tw], external_url_translations: [:en, :zh_tw])
|
p = params.require(:page).permit(:number, :page_type, :page_id, :module, :layout, :parent_page, :data_count, :enabled_for_mobile, enabled_for_sitemap: [], enabled_for: [],menu_enabled_for: [], categories: [], name_translations: [:en, :zh_tw], external_url_translations: [:en, :zh_tw])
|
||||||
p["enabled_for"] = p["enabled_for"] || []
|
p["enabled_for"] = p["enabled_for"] || []
|
||||||
p["menu_enabled_for"] = p["menu_enabled_for"] || []
|
p["menu_enabled_for"] = p["menu_enabled_for"] || []
|
||||||
|
p["enabled_for_mobile"] = p["enabled_for_mobile"] || 0
|
||||||
p
|
p
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -346,8 +345,7 @@ class PagesController < ApplicationController
|
||||||
redirect_to '/admin/dashboards'
|
redirect_to '/admin/dashboards'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
def change_to_language(final_html)
|
def change_to_language(final_html)
|
||||||
if session[:zh_cn]
|
if session[:zh_cn]
|
||||||
final_html = ZhConv.convert("zh-cn", final_html)
|
final_html = ZhConv.convert("zh-cn", final_html)
|
||||||
|
|
|
@ -1,14 +1,26 @@
|
||||||
class SitemapsController < ApplicationController
|
class SitemapsController < ApplicationController
|
||||||
def index
|
def index
|
||||||
pages = Page.root.child_pages_enabled_for_sitemap
|
if $mobile.blank?
|
||||||
|
pages = Page.root.child_pages_enabled_for_sitemap
|
||||||
|
else
|
||||||
|
pages = Page.root.child_pages_enabled_for_sitemap_for_mobile
|
||||||
|
end
|
||||||
def create_json(pages)
|
def create_json(pages)
|
||||||
item = {}
|
item = {}
|
||||||
pages.each do |page|
|
pages.each do |page|
|
||||||
if page.child_page.size > 0
|
if page.child_page.size > 0
|
||||||
if page.page_type == "page"
|
if page.page_type == "page"
|
||||||
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "children"=>create_json(page.sorted_published_child_pages), "target"=>"_self"}
|
if $mobile.blank?
|
||||||
|
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "children"=>create_json(page.sorted_published_child_pages), "target"=>"_self"}
|
||||||
|
else
|
||||||
|
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "children"=>create_json(page.sorted_published_child_pages_for_mobile), "target"=>"_self"}
|
||||||
|
end
|
||||||
else
|
else
|
||||||
item["#{page.name}"] = {"url"=> page.external_url, "children"=>create_json(page.sorted_published_child_pages), "target"=>"_blank"}
|
if $mobile.blank?
|
||||||
|
item["#{page.name}"] = {"url"=> page.external_url, "children"=>create_json(page.sorted_published_child_pages), "target"=>"_blank"}
|
||||||
|
else
|
||||||
|
item["#{page.name}"] = {"url"=> page.external_url, "children"=>create_json(page.sorted_published_child_pages_for_mobile), "target"=>"_blank"}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if page.page_type == "page"
|
if page.page_type == "page"
|
||||||
|
|
|
@ -73,16 +73,28 @@ module ApplicationHelper
|
||||||
def render_menu
|
def render_menu
|
||||||
# json_file = File.read(File.join(Rails.root, 'public', "menu.json"))
|
# json_file = File.read(File.join(Rails.root, 'public', "menu.json"))
|
||||||
# @items = JSON.parse(json_file)
|
# @items = JSON.parse(json_file)
|
||||||
@pages = Page.root.sorted_published_child_pages
|
if $mobile.blank?
|
||||||
|
@pages = Page.root.sorted_published_child_pages
|
||||||
|
else
|
||||||
|
@pages = Page.root.sorted_published_child_pages_for_mobile
|
||||||
|
end
|
||||||
|
|
||||||
def create_json(pages)
|
def create_json(pages)
|
||||||
item = {}
|
item = {}
|
||||||
pages.each do |page|
|
pages.each do |page|
|
||||||
if page.child_page.size > 0
|
if page.child_page.size > 0
|
||||||
if page.page_type == "page"
|
if page.page_type == "page"
|
||||||
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "children"=>create_json(page.sorted_published_child_pages), "target" => "_self"}
|
if $mobile.blank?
|
||||||
|
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "children"=>create_json(page.sorted_published_child_pages), "target" => "_self"}
|
||||||
|
else
|
||||||
|
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "children"=>create_json(page.sorted_published_child_pages_for_mobile), "target" => "_self"}
|
||||||
|
end
|
||||||
elsif page.page_type == "link"
|
elsif page.page_type == "link"
|
||||||
item["#{page.name}"] = {"url"=> page.external_url, "children"=>create_json(page.sorted_published_child_pages), "target" => "_blank"}
|
if $mobile.blank?
|
||||||
|
item["#{page.name}"] = {"url"=> page.external_url, "children"=>create_json(page.sorted_published_child_pages), "target" => "_blank"}
|
||||||
|
else
|
||||||
|
item["#{page.name}"] = {"url"=> page.external_url, "children"=>create_json(page.sorted_published_child_pages_for_mobile), "target" => "_blank"}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if page.page_type == "page"
|
if page.page_type == "page"
|
||||||
|
|
|
@ -13,6 +13,7 @@ class Page
|
||||||
field :layout, type: String, default: "index"
|
field :layout, type: String, default: "index"
|
||||||
field :data_count, type: Integer, default: 10
|
field :data_count, type: Integer, default: 10
|
||||||
field :enabled_for, type: Array, default: []
|
field :enabled_for, type: Array, default: []
|
||||||
|
field :enabled_for_mobile, :type => Boolean, :default => true
|
||||||
field :menu_enabled_for, type: Array, default: []
|
field :menu_enabled_for, type: Array, default: []
|
||||||
field :categories, type: Array, :default => []
|
field :categories, type: Array, :default => []
|
||||||
field :enabled_for_sitemap, type: Array, :default => []
|
field :enabled_for_sitemap, type: Array, :default => []
|
||||||
|
@ -46,11 +47,23 @@ class Page
|
||||||
self.child_page.where(:menu_enabled_for => I18n.locale).asc(:number)
|
self.child_page.where(:menu_enabled_for => I18n.locale).asc(:number)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def sorted_published_child_pages_for_mobile
|
||||||
|
self.child_page.where(:menu_enabled_for => I18n.locale).and(:enabled_for_mobile => true).asc(:number)
|
||||||
|
end
|
||||||
|
|
||||||
def child_pages_enabled_for_sitemap
|
def child_pages_enabled_for_sitemap
|
||||||
self.child_page.where(:enabled_for_sitemap => I18n.locale)
|
self.child_page.where(:enabled_for_sitemap => I18n.locale).asc(:number)
|
||||||
|
end
|
||||||
|
|
||||||
|
def child_pages_enabled_for_sitemap_for_mobile
|
||||||
|
self.child_page.where(:enabled_for_sitemap => I18n.locale).and(:enabled_for_mobile => true).asc(:number)
|
||||||
end
|
end
|
||||||
|
|
||||||
def published_child_pages
|
def published_child_pages
|
||||||
self.child_page.where(:menu_enabled_for => I18n.locale)
|
self.child_page.where(:menu_enabled_for => I18n.locale).asc(:number)
|
||||||
|
end
|
||||||
|
|
||||||
|
def published_child_pages_for_mobile
|
||||||
|
self.child_page.where(:menu_enabled_for => I18n.locale).and(:enabled_for_mobile => true).asc(:number)
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -19,7 +19,7 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="item-menu">
|
<div class="item-menu">
|
||||||
<%= link_to content_tag(:i, nil, class: "icon-eye-open"), pages_edit_view_path(:id => node.id.to_s), class: "view-page open-slide tip", title: "View", data: {title: node.name} if node.page_type.eql?('page') %>
|
<%= link_to content_tag(:i, nil, class: "icon-eye-open"), pages_edit_view_path(:id => node.id.to_s), class: "view-page open-slide tip", title: "View", data: {title: node.name} if node.page_type.eql?('page') %>
|
||||||
<%= link_to content_tag(:i, nil, class: "icons-mobile"), pages_edit_view_path(:id => node.id.to_s, :mobile_view=>1), class: "view-page open-slide tip mobile-view-btn", title: "Edit Mobile Page", data: {title: "Edit Mobile Page"} if node.page_type.eql?("page") && current_site.mobile_on%>
|
<%= link_to content_tag(:i, nil, class: "icons-mobile"), pages_edit_view_path(:id => node.id.to_s, :mobile_view=>1), class: "view-page open-slide tip mobile-view-btn", title: "Edit Mobile Page", data: {title: "Edit Mobile Page"} if node.page_type.eql?("page") && current_site.mobile_on && node.enabled_for_mobile %>
|
||||||
<% unless name.eql? "sitemap" %>
|
<% unless name.eql? "sitemap" %>
|
||||||
<%= link_to content_tag(:i, nil, class: "icon-edit"), edit_page_path(node.id,:type => node.page_type), class: "open-slide tip page edit", title: "Edit #{node.page_type.capitalize}", data: {title: "Edit #{node.page_type.capitalize}"} if node.class.to_s.downcase.eql?("page") && !node.root? %>
|
<%= link_to content_tag(:i, nil, class: "icon-edit"), edit_page_path(node.id,:type => node.page_type), class: "open-slide tip page edit", title: "Edit #{node.page_type.capitalize}", data: {title: "Edit #{node.page_type.capitalize}"} if node.class.to_s.downcase.eql?("page") && !node.root? %>
|
||||||
<%= link_to content_tag(:i, nil, class: "icons-link"), new_page_path(:parent_page => node.id.to_s,:type => "link"), class: "open-slide tip link", title: "Add Link", data: {title: "Add Link", id: 'new', parent: node.id.to_s} if node.class.to_s.eql?('Page') && level < 3 %>
|
<%= link_to content_tag(:i, nil, class: "icons-link"), new_page_path(:parent_page => node.id.to_s,:type => "link"), class: "open-slide tip link", title: "Add Link", data: {title: "Add Link", id: 'new', parent: node.id.to_s} if node.class.to_s.eql?('Page') && level < 3 %>
|
||||||
|
|
|
@ -93,6 +93,12 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="checkbox">
|
||||||
|
Enable for mobile
|
||||||
|
<input type="checkbox" name="page[enabled_for_mobile]" value="1" class="main-enable-parent" for="<%= "checkbox_for_enabled_for_mobile" %>" <%= "checked" if @page.enabled_for_mobile %> />
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
<div class="control-group" id="enable-menu">
|
<div class="control-group" id="enable-menu">
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<label class="control-label">Activation :</label>
|
<label class="control-label">Activation :</label>
|
||||||
|
|
|
@ -223,6 +223,7 @@ Orbit::Application.routes.draw do
|
||||||
post "import/rss2_album_image" => "import#rss2_album_image"
|
post "import/rss2_album_image" => "import#rss2_album_image"
|
||||||
post "import/rss2_links" => "import#rss2_links"
|
post "import/rss2_links" => "import#rss2_links"
|
||||||
post "import/rss2_members" => "import#rss2_members"
|
post "import/rss2_members" => "import#rss2_members"
|
||||||
|
get "import/import_books" => "import#import_books"
|
||||||
end
|
end
|
||||||
|
|
||||||
get 'mobile', to: 'pages#home'
|
get 'mobile', to: 'pages#home'
|
||||||
|
|
Loading…
Reference in New Issue