forked from saurabh/orbit4-5
new parser for pages and widgets..
This commit is contained in:
parent
f178fd963a
commit
9b008b4ead
5
Gemfile
5
Gemfile
|
|
@ -14,7 +14,8 @@ gem 'uglifier', '>= 1.3.0'
|
||||||
|
|
||||||
# Use CoffeeScript for .js.coffee assets and views
|
# Use CoffeeScript for .js.coffee assets and views
|
||||||
gem 'coffee-rails', '~> 4.0.0'
|
gem 'coffee-rails', '~> 4.0.0'
|
||||||
gem 'announcement', git: 'git@gitlab.tp.rulingcom.com:saurabh/announcement-test.git'
|
# gem 'announcement', git: 'git@gitlab.tp.rulingcom.com:saurabh/announcement-test.git'
|
||||||
|
gem 'announcement', path: "/Volumes/MyData/github/orbit4.5/announcement"
|
||||||
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
|
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
|
||||||
# gem 'therubyracer', platforms: :ruby
|
# gem 'therubyracer', platforms: :ruby
|
||||||
|
|
||||||
|
|
@ -43,4 +44,4 @@ end
|
||||||
# gem 'capistrano', group: :development
|
# gem 'capistrano', group: :development
|
||||||
|
|
||||||
# Use debugger
|
# Use debugger
|
||||||
gem 'debugger', '>= 1.6.6', group: [:development, :test]
|
gem 'debugger', '>= 1.6.6', group: [:development, :test]
|
||||||
|
|
@ -88,9 +88,10 @@ module ApplicationHelper
|
||||||
wrap_elements = doc.css("*[data-module]")
|
wrap_elements = doc.css("*[data-module]")
|
||||||
controller = "#{params[:target_controller].capitalize}Controller".classify.constantize.new
|
controller = "#{params[:target_controller].capitalize}Controller".classify.constantize.new
|
||||||
data = controller.send("#{params[:target_action]}")
|
data = controller.send("#{params[:target_action]}")
|
||||||
wrap_elements.each do |wrap_element|
|
keys = data.keys
|
||||||
html_to_render = ""
|
wrap_elements.each do |wrap_element|
|
||||||
data.each do |item|
|
html_to_render = ""
|
||||||
|
(data[keys[0]].kind_of?(Array) ? data[keys[0]] : data[keys[1]]).each do |item|
|
||||||
el = wrap_element.inner_html
|
el = wrap_element.inner_html
|
||||||
item.each do |key,value|
|
item.each do |key,value|
|
||||||
el = el.gsub("{{#{key}}}",value)
|
el = el.gsub("{{#{key}}}",value)
|
||||||
|
|
@ -100,7 +101,14 @@ module ApplicationHelper
|
||||||
end
|
end
|
||||||
wrap_element.inner_html = html_to_render
|
wrap_element.inner_html = html_to_render
|
||||||
end
|
end
|
||||||
doc.to_s.html_safe
|
html = doc.to_html
|
||||||
|
if keys[1]
|
||||||
|
(data[keys[1]].kind_of?(Array) ? data[keys[0]] : data[keys[1]]).each do |key,value|
|
||||||
|
html = html.gsub("{{#{key}}}",value)
|
||||||
|
html = html.gsub("%7B%7B#{key}%7D%7D",value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
html.html_safe
|
||||||
elsif params[:target_action] == "show"
|
elsif params[:target_action] == "show"
|
||||||
file = File.open(File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', params[:target_controller], "#{params[:target_action]}.html.erb"))
|
file = File.open(File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', params[:target_controller], "#{params[:target_action]}.html.erb"))
|
||||||
doc = Nokogiri::HTML(file, nil, "UTF-8")
|
doc = Nokogiri::HTML(file, nil, "UTF-8")
|
||||||
|
|
|
||||||
|
|
@ -18,4 +18,12 @@ module OrbitHelper
|
||||||
def self.get_site_locale
|
def self.get_site_locale
|
||||||
@site_locale
|
@site_locale
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.to_param(title)
|
||||||
|
if I18n.locale.to_s == "en"
|
||||||
|
title.parameterize
|
||||||
|
else
|
||||||
|
title
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,10 @@ module PagesHelper
|
||||||
wrap_elements = doc.css("*[data-repeat]")
|
wrap_elements = doc.css("*[data-repeat]")
|
||||||
controller = "#{controller_name.capitalize}Controller".classify.constantize.new
|
controller = "#{controller_name.capitalize}Controller".classify.constantize.new
|
||||||
data = controller.send("#{widget_method}")
|
data = controller.send("#{widget_method}")
|
||||||
|
keys = data.keys
|
||||||
wrap_elements.each do |wrap_element|
|
wrap_elements.each do |wrap_element|
|
||||||
html_to_render = ""
|
html_to_render = ""
|
||||||
data.each do |item|
|
(data[keys[0]].kind_of?(Array) ? data[keys[0]] : data[keys[1]]).each do |item|
|
||||||
el = wrap_element.inner_html
|
el = wrap_element.inner_html
|
||||||
item.each do |key,value|
|
item.each do |key,value|
|
||||||
el = el.gsub("{{#{key}}}",value)
|
el = el.gsub("{{#{key}}}",value)
|
||||||
|
|
@ -30,7 +31,15 @@ module PagesHelper
|
||||||
end
|
end
|
||||||
wrap_element.inner_html = html_to_render
|
wrap_element.inner_html = html_to_render
|
||||||
end
|
end
|
||||||
doc.to_s.html_safe
|
html = doc.to_html
|
||||||
|
if keys[1]
|
||||||
|
(data[keys[1]].kind_of?(Array) ? data[keys[0]] : data[keys[1]]).each do |key,value|
|
||||||
|
html = html.gsub("{{#{key}}}",value)
|
||||||
|
html = html.gsub("%7B%7B#{key}%7D%7D",value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
html.html_safe
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,5 @@ class ModuleApp
|
||||||
include Mongoid::Document
|
include Mongoid::Document
|
||||||
field :title, type: String
|
field :title, type: String
|
||||||
field :key, type: String
|
field :key, type: String
|
||||||
|
field :widget_methods, type: Array
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -11,3 +11,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-center"><a data-href="more" class="btn btn-primary" role="button" href="{{link_to_index}}">More</a></p>
|
<p class="text-center"><a data-href="more" class="btn btn-primary" role="button" href="{{link_to_index}}">More</a></p>
|
||||||
|
<p class="text-center">{{name}}</p>
|
||||||
|
|
@ -29,12 +29,13 @@ module OrbitApp
|
||||||
end
|
end
|
||||||
|
|
||||||
class RegisteredModule
|
class RegisteredModule
|
||||||
attr_reader :name,:key,:module_label
|
attr_reader :name,:key,:module_label, :widget_methods
|
||||||
|
|
||||||
def initialize(name,&block)
|
def initialize(name,&block)
|
||||||
@name = name
|
@name = name
|
||||||
@key = @name.underscore.singularize
|
@key = @name.underscore.singularize
|
||||||
# @module_label = 'rulingcom.errors.init.module_app_noname'
|
# @module_label = 'rulingcom.errors.init.module_app_noname'
|
||||||
|
@widget_methods = []
|
||||||
setup_module_app
|
setup_module_app
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -44,7 +45,7 @@ module OrbitApp
|
||||||
|
|
||||||
def setup_module_app
|
def setup_module_app
|
||||||
module_app = get_module_app
|
module_app = get_module_app
|
||||||
module_app = ModuleApp.new(:key=>@key,:title=>name) if module_app.nil?
|
module_app = ModuleApp.new(:key=>@key,:title=>name, :widget_methods => @widget_methods) if module_app.nil?
|
||||||
module_app.save(:validate=>false)
|
module_app.save(:validate=>false)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue