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
|
||||
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
|
||||
|
||||
def page_present?(page)
|
||||
|
|
|
@ -32,13 +32,7 @@ class PagesController < ApplicationController
|
|||
impressionist(page)
|
||||
OrbitHelper.set_params params
|
||||
OrbitHelper.set_site_locale locale
|
||||
final_page = render_final_page("home",page,true)
|
||||
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
|
||||
render :html => render_final_page("home",page,true).html_safe
|
||||
end
|
||||
|
||||
def show
|
||||
|
@ -67,6 +61,10 @@ class PagesController < ApplicationController
|
|||
end
|
||||
page = Page.find_by_param(params[:page_id])
|
||||
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
|
||||
module_app = page.module.downcase.pluralize
|
||||
params[:target_controller] = "#{module_app}"
|
||||
|
@ -304,15 +302,16 @@ class PagesController < ApplicationController
|
|||
page = Page.find(params[:page][:parent_page])
|
||||
page.url = page.url == "/" ? "" : page.url
|
||||
@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
|
||||
end
|
||||
|
||||
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["menu_enabled_for"] = p["menu_enabled_for"] || []
|
||||
p["enabled_for_mobile"] = p["enabled_for_mobile"] || 0
|
||||
p
|
||||
end
|
||||
|
||||
|
@ -347,7 +346,6 @@ class PagesController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
private
|
||||
def change_to_language(final_html)
|
||||
if session[:zh_cn]
|
||||
final_html = ZhConv.convert("zh-cn", final_html)
|
||||
|
|
|
@ -1,14 +1,26 @@
|
|||
class SitemapsController < ApplicationController
|
||||
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)
|
||||
item = {}
|
||||
pages.each do |page|
|
||||
if page.child_page.size > 0
|
||||
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
|
||||
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
|
||||
else
|
||||
if page.page_type == "page"
|
||||
|
|
|
@ -73,16 +73,28 @@ module ApplicationHelper
|
|||
def render_menu
|
||||
# json_file = File.read(File.join(Rails.root, 'public', "menu.json"))
|
||||
# @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)
|
||||
item = {}
|
||||
pages.each do |page|
|
||||
if page.child_page.size > 0
|
||||
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"
|
||||
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
|
||||
else
|
||||
if page.page_type == "page"
|
||||
|
|
|
@ -13,6 +13,7 @@ class Page
|
|||
field :layout, type: String, default: "index"
|
||||
field :data_count, type: Integer, default: 10
|
||||
field :enabled_for, type: Array, default: []
|
||||
field :enabled_for_mobile, :type => Boolean, :default => true
|
||||
field :menu_enabled_for, type: Array, default: []
|
||||
field :categories, 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)
|
||||
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
|
||||
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
|
||||
|
||||
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
|
|
@ -19,7 +19,7 @@
|
|||
<% end %>
|
||||
<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: "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" %>
|
||||
<%= 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 %>
|
||||
|
|
|
@ -93,6 +93,12 @@
|
|||
<% end %>
|
||||
</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="controls">
|
||||
<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_links" => "import#rss2_links"
|
||||
post "import/rss2_members" => "import#rss2_members"
|
||||
get "import/import_books" => "import#import_books"
|
||||
end
|
||||
|
||||
get 'mobile', to: 'pages#home'
|
||||
|
|
Loading…
Reference in New Issue